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 = 354541;
8 var summary = 'Regression to standard class constructors in case labels';
9 var actual = '';
10 var expect = '';
13 printBugNumber(BUGNUMBER);
14 printStatus (summary + ': top level');
16 String.prototype.trim = function() { print('hallo'); };
18 String.prototype.trim = function() { return 'hallo'; };
20 const S = String;
21 const Sp = String.prototype;
23 expect = 'hallo';
24 var expectStringInvariant = true
25 var actualStringInvariant;
26 var expectStringPrototypeInvariant = true;
27 var actualStringPrototypeInvariant;
29 if (typeof Script == 'undefined')
30 {
31 print('Test skipped. Script not defined.');
32 reportCompare("Script not defined, Test skipped.",
33 "Script not defined, Test skipped.",
34 summary);
35 }
36 else
37 {
38 var s = Script('var tmp = function(o) { switch(o) { case String: case 1: return ""; } }; actualStringInvariant = (String === S); actualStringPrototypeInvariant = (String.prototype === Sp); actual = "".trim();');
39 try
40 {
41 s();
42 }
43 catch(ex)
44 {
45 actual = ex + '';
46 }
47 reportCompare(expect, actual, 'trim() returned');
48 reportCompare(expectStringInvariant, actualStringInvariant,
49 'String invariant');
50 reportCompare(expectStringPrototypeInvariant,
51 actualStringPrototypeInvariant,
52 'String.prototype invariant');
54 }