Sat, 03 Jan 2015 20:18:00 +0100
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 2013 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 #ifndef GrSimpleTextureEffect_DEFINED
9 #define GrSimpleTextureEffect_DEFINED
11 #include "GrSingleTextureEffect.h"
13 class GrGLSimpleTextureEffect;
15 /**
16 * The output color of this effect is a modulation of the input color and a sample from a texture.
17 * It allows explicit specification of the filtering and wrap modes (GrTextureParams). It can use
18 * local coords, positions, or a custom vertex attribute as input texture coords. The input coords
19 * can have a matrix applied in the VS in both the local and position cases but not with a custom
20 * attribute coords at this time. It will add a varying to input interpolate texture coords to the
21 * FS.
22 */
23 class GrSimpleTextureEffect : public GrSingleTextureEffect {
24 public:
25 /* unfiltered, clamp mode */
26 static GrEffectRef* Create(GrTexture* tex,
27 const SkMatrix& matrix,
28 GrCoordSet coordSet = kLocal_GrCoordSet) {
29 AutoEffectUnref effect(SkNEW_ARGS(GrSimpleTextureEffect, (tex, matrix, GrTextureParams::kNone_FilterMode, coordSet)));
30 return CreateEffectRef(effect);
31 }
33 /* clamp mode */
34 static GrEffectRef* Create(GrTexture* tex,
35 const SkMatrix& matrix,
36 GrTextureParams::FilterMode filterMode,
37 GrCoordSet coordSet = kLocal_GrCoordSet) {
38 AutoEffectUnref effect(
39 SkNEW_ARGS(GrSimpleTextureEffect, (tex, matrix, filterMode, coordSet)));
40 return CreateEffectRef(effect);
41 }
43 static GrEffectRef* Create(GrTexture* tex,
44 const SkMatrix& matrix,
45 const GrTextureParams& p,
46 GrCoordSet coordSet = kLocal_GrCoordSet) {
47 AutoEffectUnref effect(SkNEW_ARGS(GrSimpleTextureEffect, (tex, matrix, p, coordSet)));
48 return CreateEffectRef(effect);
49 }
51 virtual ~GrSimpleTextureEffect() {}
53 static const char* Name() { return "Texture"; }
55 virtual void getConstantColorComponents(GrColor* color, uint32_t* validFlags) const SK_OVERRIDE;
57 typedef GrGLSimpleTextureEffect GLEffect;
59 virtual const GrBackendEffectFactory& getFactory() const SK_OVERRIDE;
61 private:
62 GrSimpleTextureEffect(GrTexture* texture,
63 const SkMatrix& matrix,
64 GrTextureParams::FilterMode filterMode,
65 GrCoordSet coordSet)
66 : GrSingleTextureEffect(texture, matrix, filterMode, coordSet) {
67 }
69 GrSimpleTextureEffect(GrTexture* texture,
70 const SkMatrix& matrix,
71 const GrTextureParams& params,
72 GrCoordSet coordSet)
73 : GrSingleTextureEffect(texture, matrix, params, coordSet) {
74 }
76 virtual bool onIsEqual(const GrEffect& other) const SK_OVERRIDE {
77 const GrSimpleTextureEffect& ste = CastEffect<GrSimpleTextureEffect>(other);
78 return this->hasSameTextureParamsMatrixAndSourceCoords(ste);
79 }
81 GR_DECLARE_EFFECT_TEST;
83 typedef GrSingleTextureEffect INHERITED;
84 };
86 #endif