Skip to content

Commit 5425a3b

Browse files
Isaac Ahoumachromium-wpt-export-bot
authored andcommitted
Reland "[Built-In APIs] Enable kAIRelaxUserActivationReqs by default."
This is a reland of commit 145c695c20b8f2d96f8238633cf45624ca0439a0 Original change's description: > [Built-In APIs] Enable kAIRelaxUserActivationReqs by default. > > This change enables the AIRelaxUserActivationReqs feature flag by > default, relaxing user activation requirements for Built-In AI APIs. The > virtual test suite and associated tests designed to verify behavior when > this feature was disabled have been removed. Existing user activation > tests are updated to reflect that user activation is now present during > the test execution. > > Bug: 454435239 > Change-Id: Ic4b56d6e09bc8ca91f29619faaad409ba9b9c9ca > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7186624 > Reviewed-by: Reilly Grant <[email protected]> > Reviewed-by: Nathan Memmott <[email protected]> > Reviewed-by: Kent Tamura <[email protected]> > Commit-Queue: Isaac Ahouma <[email protected]> > Cr-Commit-Position: refs/heads/main@{#1550111} Bug: 454435239 Change-Id: Ib5d7e20377af9d6c7f460e97b4fb6264ffafa529 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7212760 Reviewed-by: Reilly Grant <[email protected]> Reviewed-by: Kent Tamura <[email protected]> Commit-Queue: Nathan Memmott <[email protected]> Cr-Commit-Position: refs/heads/main@{#1552994}
1 parent de0ed73 commit 5425a3b

8 files changed

+35
-44
lines changed

ai/language-model/language-model-create-sticky-user-activation.tentative.https.window.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,7 @@ promise_test(async t => {
2121
await test_driver.bless('Enable LanguageModel create()');
2222

2323
// Consume transient activation.
24-
const win = window.open('about:blank', '_blank');
25-
if (win)
26-
win.close();
24+
consumeTransientUserActivation();
2725
assert_true(navigator.userActivation.hasBeenActive);
2826
assert_false(navigator.userActivation.isActive);
2927

ai/language-model/language-model-create-transient-user-activation.tentative.https.window.js

Lines changed: 0 additions & 31 deletions
This file was deleted.

ai/language-model/language-model-create-user-activation.tentative.https.window.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,12 @@ promise_test(async t => {
1515
assert_false(navigator.userActivation.isActive);
1616
await promise_rejects_dom(t, 'NotAllowedError', LanguageModel.create());
1717
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();
1821

19-
// Create does not require user activation when availability is 'available'.
22+
// Create does not require transient user activation.
2023
assert_equals(await LanguageModel.availability(), 'available');
2124
assert_false(navigator.userActivation.isActive);
2225
await LanguageModel.create();
23-
}, 'Create requires user activation when availability is "downloadable"');
26+
}, 'Create requires sticky user activation when availability is "downloadable"');

ai/language_detection/detector.https.window.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,15 @@ promise_test(async t => {
1515
assert_false(navigator.userActivation.isActive);
1616
await promise_rejects_dom(t, 'NotAllowedError', LanguageDetector.create());
1717
await test_driver.bless('LanguageDetector.create', LanguageDetector.create);
18+
// User activation is not consumed by the create call.
19+
assert_true(navigator.userActivation.isActive);
20+
consumeTransientUserActivation();
1821

19-
// Create does not require user activation when availability is 'available'.
22+
// Create does not require transient user activation.
2023
assert_equals(await LanguageDetector.availability(), 'available');
2124
assert_false(navigator.userActivation.isActive);
2225
await LanguageDetector.create();
23-
}, 'Create requires user activation when availability is "downloadable"');
26+
}, 'Create requires sticky user activation when availability is "downloadable"');
2427

2528
promise_test(async t => {
2629
const detector = await createLanguageDetector();

ai/resources/util.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -287,3 +287,9 @@ async function testCreateAbort(t, createMethod, options, instanceMethods) {
287287
await promise_rejects_exactly(t, error, promise);
288288
}
289289
}
290+
291+
function consumeTransientUserActivation() {
292+
const win = window.open('about:blank', '_blank');
293+
if (win)
294+
win.close();
295+
}

ai/rewriter/rewriter-create-user-activation.tentative.https.window.js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
// META: title=Rewriter Create User Activation
22
// META: script=/resources/testdriver.js
3+
// META: script=../resources/util.js
34
// META: timeout=long
45

56
'use strict';
@@ -13,9 +14,12 @@ promise_test(async t => {
1314
assert_false(navigator.userActivation.isActive);
1415
await promise_rejects_dom(t, 'NotAllowedError', Rewriter.create());
1516
await test_driver.bless('Rewriter.create', Rewriter.create);
17+
// User activation is not consumed by the first create call.
18+
assert_true(navigator.userActivation.isActive);
19+
consumeTransientUserActivation();
1620

17-
// Create does not require user activation when availability is 'available'.
21+
// Create does not require transient user activation.
1822
assert_equals(await Rewriter.availability(), 'available');
1923
assert_false(navigator.userActivation.isActive);
2024
await Rewriter.create();
21-
}, 'Create requires user activation when availability is "downloadable"');
25+
}, 'Create requires sticky user activation when availability is "downloadable"');

ai/summarizer/summarizer-create-user-activation.tentative.https.window.js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
// META: title=Summarizer Create User Activation
22
// META: script=/resources/testdriver.js
3+
// META: script=../resources/util.js
34
// META: timeout=long
45

56
'use strict';
@@ -13,9 +14,12 @@ promise_test(async t => {
1314
assert_false(navigator.userActivation.isActive);
1415
await promise_rejects_dom(t, 'NotAllowedError', Summarizer.create());
1516
await test_driver.bless('Summarizer.create', Summarizer.create);
17+
// User activation is not consumed by the create call.
18+
assert_true(navigator.userActivation.isActive);
19+
consumeTransientUserActivation();
1620

17-
// Create does not require user activation when availability is 'available'.
21+
// Create does not require transient user activation.
1822
assert_equals(await Summarizer.availability(), 'available');
1923
assert_false(navigator.userActivation.isActive);
2024
await Summarizer.create();
21-
}, 'Create requires user activation when availability is "downloadable"');
25+
}, 'Create requires sticky user activation when availability is "downloadable"');

ai/writer/writer-create-user-activation.tentative.https.window.js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
// META: title=Writer Create User Activation
22
// META: script=/resources/testdriver.js
3+
// META: script=../resources/util.js
34
// META: timeout=long
45

56
'use strict';
@@ -13,9 +14,12 @@ promise_test(async t => {
1314
assert_false(navigator.userActivation.isActive);
1415
await promise_rejects_dom(t, 'NotAllowedError', Writer.create());
1516
await test_driver.bless('Writer.create', Writer.create);
17+
// User activation is not consumed by the create call.
18+
assert_true(navigator.userActivation.isActive);
19+
consumeTransientUserActivation();
1620

17-
// Create does not require user activation when availability is 'available'.
21+
// Create does not require transient user activation.
1822
assert_equals(await Writer.availability(), 'available');
1923
assert_false(navigator.userActivation.isActive);
2024
await Writer.create();
21-
}, 'Create requires user activation when availability is "downloadable"');
25+
}, 'Create requires sticky user activation when availability is "downloadable"');

0 commit comments

Comments
 (0)