summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/credential-management/support/fedcm-helper.sub.js
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/credential-management/support/fedcm-helper.sub.js')
-rw-r--r--testing/web-platform/tests/credential-management/support/fedcm-helper.sub.js15
1 files changed, 13 insertions, 2 deletions
diff --git a/testing/web-platform/tests/credential-management/support/fedcm-helper.sub.js b/testing/web-platform/tests/credential-management/support/fedcm-helper.sub.js
index 765b3cc48a..f0031fa531 100644
--- a/testing/web-platform/tests/credential-management/support/fedcm-helper.sub.js
+++ b/testing/web-platform/tests/credential-management/support/fedcm-helper.sub.js
@@ -8,7 +8,9 @@ export function open_and_wait_for_popup(origin, path) {
// We rely on the popup page to send us a message when done.
const popup_message_handler = (event) => {
- if (event.origin == origin) {
+ // We use new URL() to ensure the two origins are normalized the same
+ // way (especially so that default ports are handled identically).
+ if (new URL(event.origin).toString() == new URL(origin).toString()) {
popup_window.close();
window.removeEventListener('message', popup_message_handler);
resolve();
@@ -22,7 +24,7 @@ export function open_and_wait_for_popup(origin, path) {
// Set the identity provider cookie.
export function set_fedcm_cookie(host) {
if (host == undefined) {
- document.cookie = 'cookie=1; SameSite=Strict; Path=/credential-management/support; Secure';
+ document.cookie = 'cookie=1; SameSite=None; Path=/credential-management/support; Secure';
return Promise.resolve();
} else {
return open_and_wait_for_popup(host, '/credential-management/support/set_cookie');
@@ -102,6 +104,15 @@ credential-management/support/fedcm/${manifest_filename}`;
// Test wrapper which does FedCM-specific setup.
export function fedcm_test(test_func, test_name) {
promise_test(async t => {
+ // Ensure we start from a clean slate.
+ await test_driver.delete_all_cookies();
+ // Turn off delays that are not useful in tests.
+ try {
+ await test_driver.set_fedcm_delay_enabled(false);
+ } catch (e) {
+ // Failure is not critical; it just might slow down tests.
+ }
+
await set_fedcm_cookie();
await set_alt_fedcm_cookie();
await test_func(t);