tor-browser

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

compute_pressure_multiple.https.window.js (1472B)


      1 // META: variant=?globalScope=window
      2 // META: variant=?globalScope=dedicated_worker
      3 // META: script=/resources/testdriver.js
      4 // META: script=/resources/testdriver-vendor.js
      5 // META: script=/common/utils.js
      6 // META: script=/common/dispatcher/dispatcher.js
      7 // META: script=./resources/common.js
      8 
      9 'use strict';
     10 
     11 pressure_test(async t => {
     12  await create_virtual_pressure_source('cpu');
     13  t.add_cleanup(async () => {
     14    await remove_virtual_pressure_source('cpu');
     15  });
     16 
     17  const changes1_promise = new Promise((resolve, reject) => {
     18    const observer = new PressureObserver(resolve);
     19    t.add_cleanup(() => observer.disconnect());
     20    observer.observe('cpu').catch(reject);
     21  });
     22 
     23  const changes2_promise = new Promise((resolve, reject) => {
     24    const observer = new PressureObserver(resolve);
     25    t.add_cleanup(() => observer.disconnect());
     26    observer.observe('cpu').catch(reject);
     27  });
     28 
     29  const changes3_promise = new Promise((resolve, reject) => {
     30    const observer = new PressureObserver(resolve);
     31    t.add_cleanup(() => observer.disconnect());
     32    observer.observe('cpu').catch(reject);
     33  });
     34 
     35  await update_virtual_pressure_source('cpu', 'critical');
     36 
     37  const [changes1, changes2, changes3] =
     38      await Promise.all([changes1_promise, changes2_promise, changes3_promise]);
     39 
     40  for (const changes of [changes1, changes2, changes3]) {
     41    assert_equals(changes[0].state, 'critical');
     42  }
     43 }, 'Three PressureObserver instances receive changes');
     44 
     45 mark_as_done();