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 = 273931;
8 var summary = 'Pop scope chain in exception handling';
9 var actual = '';
10 var expect = 'ReferenceError';
12 printBugNumber(BUGNUMBER);
13 printStatus (summary);
15 status = summary + ' ' + inSection(1) + ' ';
16 try
17 {
18 with ({foo:"bar"})
19 throw 42;
20 }
21 catch (e)
22 {
23 try
24 {
25 printStatus(foo);
26 }
27 catch(ee)
28 {
29 actual = ee.name;
30 }
31 }
33 reportCompare(expect, actual, status);
35 status = summary + ' ' + inSection(2) + ' ';
36 try
37 {
38 with ({foo:"bar"})
39 eval("throw 42");
40 }
41 catch (e)
42 {
43 try
44 {
45 printStatus(foo);
46 }
47 catch(ee)
48 {
49 actual = ee.name;
50 }
51 }
53 reportCompare(expect, actual, status);
55 status = summary + ' ' + inSection(3) + ' ';
56 try
57 {
58 var s = "throw 42";
59 with ({foo:"bar"})
60 eval(s);
61 }
62 catch (e)
63 {
64 try
65 {
66 printStatus(foo);
67 }
68 catch(ee)
69 {
70 actual = ee.name;
71 }
72 }
74 reportCompare(expect, actual, status);