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 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* This Source Code Form is subject to the terms of the Mozilla Public
3 * License, v. 2.0. If a copy of the MPL was not distributed with this
4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
6 //-----------------------------------------------------------------------------
7 var BUGNUMBER = 446026;
8 var summary = 'brian loves eval(s, o)';
9 var actual = '';
10 var expect = '';
12 printBugNumber(BUGNUMBER);
13 printStatus (summary);
15 var b = 45;
17 // Getting "private" variables
18 var obj = (function() {
19 var a = 21;
20 return {
21 // public function must reference 'a'
22 fn: function() {a;}
23 };
24 })();
26 expect = 'ReferenceError: a is not defined | undefined | 45';
27 actual = '';
29 var foo;
31 try {
32 eval('bar = b; foo=a', obj.fn);
33 } catch (e) {
34 actual = e;
35 }
36 print(actual += " | " + foo + " | " + bar); // 21
37 reportCompare(expect, actual, summary);
39 expect = 'No Error';
40 actual = 'No Error';
42 try
43 {
44 eval("", {print:1});
45 print(1);
46 }
47 catch(ex)
48 {
49 actual = ex + '';
50 }
51 reportCompare(expect, actual, summary);