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 (c) 2002-2010 The ANGLE Project Authors. All rights reserved.
3 // Use of this source code is governed by a BSD-style license that can be
4 // found in the LICENSE file.
5 //
7 #ifndef COMPILER_VERSIONGLSL_H_
8 #define COMPILER_VERSIONGLSL_H_
10 #include "GLSLANG/ShaderLang.h"
11 #include "compiler/intermediate.h"
13 // Traverses the intermediate tree to return the minimum GLSL version
14 // required to legally access all built-in features used in the shader.
15 // GLSL 1.1 which is mandated by OpenGL 2.0 provides:
16 // - #version and #extension to declare version and extensions.
17 // - built-in functions refract, exp, and log.
18 // - updated step() to compare x < edge instead of x <= edge.
19 // GLSL 1.2 which is mandated by OpenGL 2.1 provides:
20 // - many changes to reduce differences when compared to the ES specification.
21 // - invariant keyword and its support.
22 // - c++ style name hiding rules.
23 // - built-in variable gl_PointCoord for fragment shaders.
24 // - matrix constructors taking matrix as argument.
25 // - array as "out" function parameters
26 //
27 class TVersionGLSL : public TIntermTraverser {
28 public:
29 TVersionGLSL(ShShaderType type);
31 // Returns 120 if the following is used the shader:
32 // - "invariant",
33 // - "gl_PointCoord",
34 // - matrix/matrix constructors
35 // - array "out" parameters
36 // Else 110 is returned.
37 int getVersion() { return mVersion; }
39 virtual void visitSymbol(TIntermSymbol*);
40 virtual void visitConstantUnion(TIntermConstantUnion*);
41 virtual bool visitBinary(Visit, TIntermBinary*);
42 virtual bool visitUnary(Visit, TIntermUnary*);
43 virtual bool visitSelection(Visit, TIntermSelection*);
44 virtual bool visitAggregate(Visit, TIntermAggregate*);
45 virtual bool visitLoop(Visit, TIntermLoop*);
46 virtual bool visitBranch(Visit, TIntermBranch*);
48 protected:
49 void updateVersion(int version);
51 private:
52 ShShaderType mShaderType;
53 int mVersion;
54 };
56 #endif // COMPILER_VERSIONGLSL_H_