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"');