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) 2012 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 #include "compiler/depgraph/DependencyGraph.h"
9 // These methods do a breadth-first traversal through the graph and mark visited nodes.
11 void TGraphNode::traverse(TDependencyGraphTraverser* graphTraverser)
12 {
13 graphTraverser->markVisited(this);
14 }
16 void TGraphParentNode::traverse(TDependencyGraphTraverser* graphTraverser)
17 {
18 TGraphNode::traverse(graphTraverser);
20 graphTraverser->incrementDepth();
22 // Visit the parent node's children.
23 for (TGraphNodeSet::const_iterator iter = mDependentNodes.begin();
24 iter != mDependentNodes.end();
25 ++iter)
26 {
27 TGraphNode* node = *iter;
28 if (!graphTraverser->isVisited(node))
29 node->traverse(graphTraverser);
30 }
32 graphTraverser->decrementDepth();
33 }
35 void TGraphArgument::traverse(TDependencyGraphTraverser* graphTraverser)
36 {
37 graphTraverser->visitArgument(this);
38 TGraphParentNode::traverse(graphTraverser);
39 }
41 void TGraphFunctionCall::traverse(TDependencyGraphTraverser* graphTraverser)
42 {
43 graphTraverser->visitFunctionCall(this);
44 TGraphParentNode::traverse(graphTraverser);
45 }
47 void TGraphSymbol::traverse(TDependencyGraphTraverser* graphTraverser)
48 {
49 graphTraverser->visitSymbol(this);
50 TGraphParentNode::traverse(graphTraverser);
51 }
53 void TGraphSelection::traverse(TDependencyGraphTraverser* graphTraverser)
54 {
55 graphTraverser->visitSelection(this);
56 TGraphNode::traverse(graphTraverser);
57 }
59 void TGraphLoop::traverse(TDependencyGraphTraverser* graphTraverser)
60 {
61 graphTraverser->visitLoop(this);
62 TGraphNode::traverse(graphTraverser);
63 }
65 void TGraphLogicalOp::traverse(TDependencyGraphTraverser* graphTraverser)
66 {
67 graphTraverser->visitLogicalOp(this);
68 TGraphNode::traverse(graphTraverser);
69 }