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.
michael@0 | 1 | /* This Source Code Form is subject to the terms of the Mozilla Public |
michael@0 | 2 | * License, v. 2.0. If a copy of the MPL was not distributed with this |
michael@0 | 3 | * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
michael@0 | 4 | |
michael@0 | 5 | function referencesVia(from, edge, to) { |
michael@0 | 6 | if (typeof findReferences !== 'function') |
michael@0 | 7 | return true; |
michael@0 | 8 | |
michael@0 | 9 | edge = "edge: " + edge; |
michael@0 | 10 | var edges = findReferences(to); |
michael@0 | 11 | if (edge in edges && edges[edge].indexOf(from) != -1) |
michael@0 | 12 | return true; |
michael@0 | 13 | |
michael@0 | 14 | // Be nice: make it easy to fix if the edge name has just changed. |
michael@0 | 15 | var alternatives = []; |
michael@0 | 16 | for (var e in edges) { |
michael@0 | 17 | if (edges[e].indexOf(from) != -1) |
michael@0 | 18 | alternatives.push(e); |
michael@0 | 19 | } |
michael@0 | 20 | if (alternatives.length == 0) { |
michael@0 | 21 | print("referent not referred to by referrer after all"); |
michael@0 | 22 | } else { |
michael@0 | 23 | print("referent is not referenced via: " + uneval(edge)); |
michael@0 | 24 | print("but it is referenced via: " + uneval(alternatives)); |
michael@0 | 25 | } |
michael@0 | 26 | print("all incoming edges, from any object:"); |
michael@0 | 27 | for (var e in edges) |
michael@0 | 28 | print(e); |
michael@0 | 29 | return false; |
michael@0 | 30 | } |