gfx/skia/trunk/src/image/SkImage_Picture.cpp

Sat, 03 Jan 2015 20:18:00 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Sat, 03 Jan 2015 20:18:00 +0100
branch
TOR_BUG_3246
changeset 7
129ffea94266
permissions
-rw-r--r--

Conditionally enable double key logic according to:
private browsing mode or privacy.thirdparty.isolate preference and
implement in GetCookieStringCommon and FindCookie where it counts...
With some reservations of how to convince FindCookie users to test
condition and pass a nullptr when disabling double key logic.

     1 /*
     2  * Copyright 2012 Google Inc.
     3  *
     4  * Use of this source code is governed by a BSD-style license that can be
     5  * found in the LICENSE file.
     6  */
     8 #include "SkImage_Base.h"
     9 #include "SkImagePriv.h"
    10 #include "SkPicture.h"
    12 class SkImage_Picture : public SkImage_Base {
    13 public:
    14     SkImage_Picture(SkPicture*);
    15     virtual ~SkImage_Picture();
    17     virtual void onDraw(SkCanvas*, SkScalar, SkScalar, const SkPaint*) SK_OVERRIDE;
    18     virtual void onDrawRectToRect(SkCanvas*, const SkRect*, const SkRect&, const SkPaint*) SK_OVERRIDE;
    20     SkPicture* getPicture() { return fPicture; }
    22 private:
    23     SkPicture*  fPicture;
    25     typedef SkImage_Base INHERITED;
    26 };
    28 ///////////////////////////////////////////////////////////////////////////////
    30 SkImage_Picture::SkImage_Picture(SkPicture* pict) : INHERITED(pict->width(), pict->height()) {
    31     pict->endRecording();
    32     pict->ref();
    33     fPicture = pict;
    34 }
    36 SkImage_Picture::~SkImage_Picture() {
    37     fPicture->unref();
    38 }
    40 void SkImage_Picture::onDraw(SkCanvas* canvas, SkScalar x, SkScalar y,
    41                              const SkPaint* paint) {
    42     SkImagePrivDrawPicture(canvas, fPicture, x, y, paint);
    43 }
    45 void SkImage_Picture::onDrawRectToRect(SkCanvas* canvas, const SkRect* src, const SkRect& dst,
    46                              const SkPaint* paint) {
    47     SkImagePrivDrawPicture(canvas, fPicture, src, dst, paint);
    48 }
    50 SkImage* SkNewImageFromPicture(const SkPicture* srcPicture) {
    51     /**
    52      *  We want to snapshot the playback status of the picture, w/o affecting
    53      *  its ability to continue recording (if needed).
    54      *
    55      *  Optimally this will shared as much data/buffers as it can with
    56      *  srcPicture, and srcPicture will perform a copy-on-write as needed if it
    57      *  needs to mutate them later on.
    58      */
    59     SkAutoTUnref<SkPicture> playback(SkNEW_ARGS(SkPicture, (*srcPicture)));
    61     return SkNEW_ARGS(SkImage_Picture, (playback));
    62 }
    64 SkPicture* SkPictureImageGetPicture(SkImage* pictureImage) {
    65     return static_cast<SkImage_Picture*>(pictureImage)->getPicture();
    66 }

mercurial