js/jsd/test/test_bug617870-callhooks.html

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 <!DOCTYPE HTML>
     2 <html>
     3 <head>
     4   <!-- The bug number is pulled from the test URL -->
     5   <title>JSD Test for Bug AUTOFILLED</title>
     6   <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
     7   <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
     8   <script type="application/javascript" src="jsd-test.js"></script>
     9   <script type="application/javascript">
    10 var BUG = 617870;
    11 var TEST_SCRIPT = "test-bug617870-callhooks.js";
    12 document.getElementsByTagName("title")[0].innerHTML = "JSD Test for Bug " + BUG;
    14 SimpleTest.waitForExplicitFinish();
    16 var hits = { gn: [], ge: [], fn: [], fe: [] };
    17 var numGlobalNonevals = 0;
    18 var numFunctionNonevals = 0;
    19 var numGlobalEvals = 0;
    20 var numFunctionEvals = 0;
    21 function runTest() {
    22     jsd.topLevelHook = {
    23         onCall: function(frame,type) {
    24             if (frame.script.fileName.indexOf(TEST_SCRIPT) != -1) {
    25                 var desc = frame.script.fileName + ":" + frame.line + " (" + frame.functionName + ")";
    26                 if (type == Ci.jsdICallHook.TYPE_TOPLEVEL_START) {
    27                     if (frame.callingFrame === null) {
    28                         numGlobalNonevals++;
    29                         hits.gn.push(desc);
    30                     } else if (frame.callee === null) {
    31                         numGlobalEvals++;
    32                         hits.ge.push(desc);
    33                     } else {
    34                         numFunctionEvals++;
    35                         hits.fe.push(desc);
    36                     }
    37                 }
    38                 dumpStack(frame, "TOPLEVEL(" + type + ")");
    39            }
    40         }
    41     };
    42     jsd.functionHook = {
    43         onCall: function(frame,type) {
    44             if (frame.script.fileName.indexOf(TEST_SCRIPT) != -1) {
    45                 if (type == Ci.jsdICallHook.TYPE_FUNCTION_CALL) {
    46                     var desc = frame.script.fileName + ":" + frame.line + " (" + frame.functionName + ")";
    47                     numFunctionNonevals++;
    48                     hits.fn.push(desc);
    49                 }
    50                 dumpStack(frame, "FUNCTION(" + type + ")");
    51             }
    52         }
    53     };
    54     loadScript(TEST_SCRIPT, document.getElementById("test"));
    55 }
    57 function setupTest() {
    58   var buglink = document.getElementById("buglink");
    59   buglink.href = "https://bugzilla.mozilla.org/show_bug.cgi?id=" + BUG;
    60   buglink.innerHTML = "Mozilla Bug " + BUG;
    61 }
    62   </script>
    63 </head>
    64 <body onLoad='setupTest(); setupJSD();'>
    66 <a id="buglink" target="_blank"></a>
    67 <p id="display"></p>
    69 <div id="content" style="display: none">
    70   <pre id='test'>
    71   </pre>
    72 </div>
    74 <div id='test-output'>
    75 </div>
    77 </body>
    78 </html>

mercurial