tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

external-script.https.html (1620B)


      1 <!DOCTYPE html>
      2 <html>
      3 <head>
      4  <script src="/resources/testharness.js"></script>
      5  <script src="/resources/testharnessreport.js"></script>
      6 
      7  <script src="resources/profile-utils.js"></script>
      8 
      9  <script id="external-script" src="resources/external-script.js"></script>
     10 </head>
     11 <body>
     12  <script>
     13    promise_test(async t => {
     14      const trace = await ProfileUtils.profileFunction(function trampoline(sample) {
     15        externalScriptFunction(sample);
     16      });
     17 
     18      const scriptUrl = document.querySelector('#external-script').src;
     19      assert_true(ProfileUtils.containsResource(trace, scriptUrl),
     20                  'external resource is included');
     21 
     22      const expectedTrampolineFrame = {
     23        name: 'trampoline',
     24        resourceId: trace.resources.indexOf(
     25          location.href,
     26        ),
     27      };
     28      const expectedExternalFrame = {
     29        name: 'externalScriptFunction',
     30        resourceId: trace.resources.indexOf(scriptUrl),
     31        line: EXTERNAL_SCRIPT_FUNCTION_LINE,
     32        column: EXTERNAL_SCRIPT_FUNCTION_COLUMN,
     33      };
     34 
     35      assert_true(ProfileUtils.containsFrame(trace, expectedTrampolineFrame),
     36                  'trampoline function included');
     37 
     38      assert_true(ProfileUtils.containsFrame(trace, expectedExternalFrame),
     39                  'external script function included');
     40 
     41      assert_true(ProfileUtils.containsSubstack(trace, [
     42                    externalScriptFunction,
     43                    expectedTrampolineFrame,
     44                  ]),
     45                  'stack exists with external script function');
     46 
     47    }, 'external script function details');
     48  </script>
     49 </body>
     50 </html>