tor-browser

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

language-model-create-user-activation.tentative.https.window.js (1262B)


      1 // META: title=Language Model Create User Activation
      2 // META: script=/resources/testdriver.js
      3 // META: script=/resources/testdriver-vendor.js
      4 // META: script=../resources/util.js
      5 // META: timeout=long
      6 
      7 'use strict';
      8 
      9 // Mocked model download state may be shared between test cases in the same file
     10 // (see e.g. `EchoAIManagerImpl`), so this test case is kept in a separate file.
     11 // TODO(crbug.com/390246212): Support model state controls for WPTs.
     12 promise_test(async t => {
     13  // Create requires user activation when availability is 'downloadable'.
     14  assert_implements_optional(await LanguageModel.availability() == 'downloadable');
     15  assert_false(navigator.userActivation.isActive);
     16  await promise_rejects_dom(t, 'NotAllowedError', LanguageModel.create());
     17  await test_driver.bless('LanguageModel.create', LanguageModel.create);
     18  // User activation is not consumed by the create call.
     19  assert_true(navigator.userActivation.isActive);
     20  consumeTransientUserActivation();
     21 
     22  // Create does not require transient user activation.
     23  assert_equals(await LanguageModel.availability(), 'available');
     24  assert_false(navigator.userActivation.isActive);
     25  await LanguageModel.create();
     26 }, 'Create requires sticky user activation when availability is "downloadable"');