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