js/src/tests/js1_5/extensions/regress-367121.js

Sat, 03 Jan 2015 20:18:00 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Sat, 03 Jan 2015 20:18:00 +0100
branch
TOR_BUG_3246
changeset 7
129ffea94266
permissions
-rw-r--r--

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 = 367121;
     8 var summary = 'self modifying script detection';
     9 var actual = 'No Crash';
    10 var expect = 'No Crash';
    13 //-----------------------------------------------------------------------------
    14 test();
    15 //-----------------------------------------------------------------------------
    17 function test()
    18 {
    19   enterFunc ('test');
    20   printBugNumber(BUGNUMBER);
    21   printStatus (summary);
    23   if (typeof window == 'undefined')
    24   {
    25     actual = expect = 'Test skipped - Test must be run in the browser.';
    26     reportCompare(expect, actual, summary);
    27   }
    28   else if (typeof Script == 'undefined')
    29   {
    30     actual = expect = 'Test skipped - Test requires Script object..';
    31     reportCompare(expect, actual, summary);
    32   }
    33   else
    34   {
    35     gDelayTestDriverEnd = true;
    36   }
    38   exitFunc ('test');
    39 }
    41 function handleLoad()
    42 {
    43   var iframe = document.body.appendChild(document.createElement('iframe'));
    44 	var d = iframe.contentDocument;
    46 	d.addEventListener("test", function(e) {
    47       s.compile("");
    48       Array(11).join(Array(11).join(Array(101).join("aaaaa")));
    49     }, true);
    51 	var e = d.createEvent("Events");
    52 	e.initEvent("test", true, true);
    53 	var s = new Script("d.dispatchEvent(e);");
    54 	s.exec();
    56   gDelayTestDriverEnd = false;
    57   reportCompare(expect, actual, summary);
    58   jsTestDriverEnd();
    59 }
    61 if (typeof window != 'undefined')
    62 {
    63   window.onload = handleLoad;
    64 }

mercurial