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 s = newGlobal('');
2 function f(code) {
3 try {
4 evalcx(code, s)
5 } catch (e) {}
6 }
7 f("\
8 options('strict');\
9 var x;\
10 y='';\
11 Object.preventExtensions(this);\
12 y=new String;\
13 y.toString=(function(){x=new Iterator});\
14 ");
15 f("var z;");
16 f("var z;");
17 f("var z;");
18 f("var z;");
19 f("var z;");
20 f("var z;");
21 f("var z;");
22 f("var z;");
23 f("var z;");
24 f("var z;");
25 f("var z;");
26 f("var z;");
27 f("var z;");
28 f("var z;");
29 f("var z;");
30 f("var z;");
31 f("var z;");
32 f("var z;");
33 f("var z;");
34 f("var z;");
35 f("var z;");
36 f("var z;");
37 f("var z;");
38 f("var z;");
39 f("var z;");
40 f("var z;");
41 f("var z;");
42 f("var z;");
43 f("var z;");
44 f("var z;");
45 f("var z;");
46 f("var z;");
47 f("var z;");
48 f("var z;");
49 f("var z;");
50 f("var z;");
51 f("var z;");
52 f("var z;");
53 f("var z;");
54 f("\
55 Iterator=String.prototype.toUpperCase;\
56 v=(function(){});\
57 Object.defineProperty(Function,0,({enumerable:x}));\
58 ")