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 /*
2 * Any copyright is dedicated to the Public Domain.
3 * http://creativecommons.org/licenses/publicdomain/
4 * Contributor: haytjes <hv1989@gmail.com>
5 */
7 /* Check the undefined pattern is equivalent to empty string. */
9 assertEq(RegExp(undefined).source, '');
10 assertEq(RegExp(undefined).global, false);
11 assertEq("test".replace(RegExp(undefined), "*"), '*test');
12 assertEq(new RegExp(undefined).source, '');
13 assertEq(new RegExp(undefined).global, false);
14 assertEq('test'.replace(new RegExp(undefined), "*"), '*test');
16 /* Global flags. */
18 assertEq(new RegExp(undefined, "g").global, true);
19 assertEq("test".replace(new RegExp(undefined, "g"), "*"), "*t*e*s*t*");
20 assertEq(RegExp(undefined, "g").global, true);
21 assertEq("test".replace(RegExp(undefined, "g"), "*"), "*t*e*s*t*");
23 /* Undefined flags. */
25 var re = new RegExp(undefined, undefined);
26 assertEq(re.multiline, false);
27 assertEq(re.global, false);
28 assertEq(re.ignoreCase, false);
30 var re = new RegExp("test", undefined);
31 assertEq(re.multiline, false);
32 assertEq(re.global, false);
33 assertEq(re.ignoreCase, false);
35 /* Flags argument that requires toString. */
37 function Flags() {};
39 Flags.prototype.toString = function dogToString() { return ""; }
41 var re = new RegExp(undefined, new Flags());
42 assertEq(re.multiline, false);
43 assertEq(re.global, false);
44 assertEq(re.ignoreCase, false);
46 Flags.prototype.toString = function dogToString() { return "gim"; }
48 var re = new RegExp(undefined, new Flags());
49 assertEq(re.multiline, true);
50 assertEq(re.global, true);
51 assertEq(re.ignoreCase, true);