From 562f4715b302ee6a53a534d1c5e40e56c1f0e772 Mon Sep 17 00:00:00 2001 From: Chris Mills Date: Tue, 10 Oct 2023 18:02:28 +0100 Subject: [PATCH 1/7] Update Chrome beforeunload dialog control behavior --- api/Window.json | 15 ++++-- package-lock.json | 119 ---------------------------------------------- 2 files changed, 10 insertions(+), 124 deletions(-) diff --git a/api/Window.json b/api/Window.json index 18d0d4e4fd8fe1..ea6bb17cbcfeae 100644 --- a/api/Window.json +++ b/api/Window.json @@ -434,16 +434,21 @@ "description": "Activation using event.preventDefault()", "support": { "chrome": { - "version_added": false + "version_added": "119" }, "chrome_android": "mirror", "deno": { "version_added": false }, - "edge": { - "version_added": "12", - "version_removed": "79" - }, + "edge": [ + { + "version_added": "119" + }, + { + "version_added": "12", + "version_removed": "79" + } + ], "firefox": { "version_added": "6" }, diff --git a/package-lock.json b/package-lock.json index 7d34bcdcc8b524..5e052a4819212a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1739,23 +1739,6 @@ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "6.7.4", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.7.4.tgz", - "integrity": "sha512-SdGqSLUPTXAXi7c3Ob7peAGVnmMoGzZ361VswK2Mqf8UOYcODiYvs8rs5ILqEdfvX1lE7wEZbLyELCW+Yrql1A==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.7.4", - "@typescript-eslint/visitor-keys": "6.7.4" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, "node_modules/@typescript-eslint/type-utils": { "version": "6.7.5", "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.7.5.tgz", @@ -1885,79 +1868,6 @@ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, - "node_modules/@typescript-eslint/types": { - "version": "6.7.4", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.7.4.tgz", - "integrity": "sha512-o9XWK2FLW6eSS/0r/tgjAGsYasLAnOWg7hvZ/dGYSSNjCh+49k5ocPN8OmG5aZcSJ8pclSOyVKP2x03Sj+RrCA==", - "dev": true, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "6.7.4", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.7.4.tgz", - "integrity": "sha512-ty8b5qHKatlNYd9vmpHooQz3Vki3gG+3PchmtsA4TgrZBKWHNjWfkQid7K7xQogBqqc7/BhGazxMD5vr6Ha+iQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.7.4", - "@typescript-eslint/visitor-keys": "6.7.4", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "node_modules/@typescript-eslint/utils": { "version": "6.7.5", "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.7.5.tgz", @@ -2102,35 +2012,6 @@ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "6.7.4", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.7.4.tgz", - "integrity": "sha512-pOW37DUhlTZbvph50x5zZCkFn3xzwkGtNoJHzIM3svpiSkJzwOYr/kVBaXmf+RAQiUDs1AHEZVNPg6UJCJpwRA==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.7.4", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, "node_modules/acorn": { "version": "8.10.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", From bf80bfa18056b8db2304373eadbf2ca97b751a9f Mon Sep 17 00:00:00 2001 From: Chris Mills Date: Wed, 11 Oct 2023 08:25:38 +0100 Subject: [PATCH 2/7] Clarify empty string returnValue behavior change in Chromium --- api/Window.json | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/api/Window.json b/api/Window.json index ea6bb17cbcfeae..138a212d1b45ef 100644 --- a/api/Window.json +++ b/api/Window.json @@ -358,16 +358,21 @@ "__compat": { "description": "Activation using event.returnValue = \"string\";", "support": { - "chrome": { - "version_added": "30" - }, + "chrome": [ + { + "version_added": "119" + }, + { + "version_added": "30", + "partial_implementation": true, + "notes": "Incorrectly activated the dialog with an empty string value of returnValue." + } + ], "chrome_android": "mirror", "deno": { "version_added": false }, - "edge": { - "version_added": "12" - }, + "edge": "mirror", "firefox": { "version_added": "6" }, From 5d807e4ab5ee66a5291bee372e925801e685667f Mon Sep 17 00:00:00 2001 From: Chris Mills Date: Wed, 11 Oct 2023 11:02:11 +0100 Subject: [PATCH 3/7] update deprecated status for consistency, add remove data --- api/BeforeUnloadEvent.json | 2 +- api/Window.json | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/api/BeforeUnloadEvent.json b/api/BeforeUnloadEvent.json index 38df09c5335213..4ae6187b72db18 100644 --- a/api/BeforeUnloadEvent.json +++ b/api/BeforeUnloadEvent.json @@ -76,7 +76,7 @@ "status": { "experimental": false, "standard_track": true, - "deprecated": false + "deprecated": true } } }, diff --git a/api/Window.json b/api/Window.json index 138a212d1b45ef..71145dba506b67 100644 --- a/api/Window.json +++ b/api/Window.json @@ -364,6 +364,7 @@ }, { "version_added": "30", + "version_removed": "118", "partial_implementation": true, "notes": "Incorrectly activated the dialog with an empty string value of returnValue." } From 34db4570f6c0786af84d606773dc667c1a798cb4 Mon Sep 17 00:00:00 2001 From: Chris Mills Date: Wed, 11 Oct 2023 11:29:22 +0100 Subject: [PATCH 4/7] Make information about returnValue consistent --- api/BeforeUnloadEvent.json | 14 +++++++++++--- api/Window.json | 2 +- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/api/BeforeUnloadEvent.json b/api/BeforeUnloadEvent.json index 4ae6187b72db18..b5bcdfcc82df9a 100644 --- a/api/BeforeUnloadEvent.json +++ b/api/BeforeUnloadEvent.json @@ -44,9 +44,17 @@ "__compat": { "spec_url": "https://html.spec.whatwg.org/multipage/browsing-the-web.html#dom-beforeunloadevent-returnvalue", "support": { - "chrome": { - "version_added": "30" - }, + "chrome": [ + { + "version_added": "119" + }, + { + "version_added": "30", + "version_removed": "118", + "partial_implementation": true, + "notes": "Incorrectly activated the dialog with an empty string value." + } + ], "chrome_android": "mirror", "deno": { "version_added": false diff --git a/api/Window.json b/api/Window.json index 71145dba506b67..83e0d96b7041ff 100644 --- a/api/Window.json +++ b/api/Window.json @@ -366,7 +366,7 @@ "version_added": "30", "version_removed": "118", "partial_implementation": true, - "notes": "Incorrectly activated the dialog with an empty string value of returnValue." + "notes": "Incorrectly activated the dialog with an empty string value." } ], "chrome_android": "mirror", From 2803b316555ef0e4d840259ac0b32932654bea35 Mon Sep 17 00:00:00 2001 From: Chris Mills Date: Thu, 12 Oct 2023 08:42:38 +0100 Subject: [PATCH 5/7] activation works with any truthy value --- api/Window.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/api/Window.json b/api/Window.json index 83e0d96b7041ff..81cafb02edd4c6 100644 --- a/api/Window.json +++ b/api/Window.json @@ -356,7 +356,7 @@ }, "event_returnvalue_activation": { "__compat": { - "description": "Activation using event.returnValue = \"string\";", + "description": "Activation using event.returnValue = ;", "support": { "chrome": [ { @@ -483,7 +483,7 @@ }, "return_string_activation": { "__compat": { - "description": "Activation using return \"string\";", + "description": "Activation using return ;", "support": { "chrome": { "version_added": "1" From 3002de18513e591b22baa8efdd4fe6f6b3480974 Mon Sep 17 00:00:00 2001 From: Chris Mills Date: Thu, 12 Oct 2023 09:16:54 +0100 Subject: [PATCH 6/7] Update api/BeforeUnloadEvent.json Co-authored-by: Queen Vinyl Da.i'gyu-Kazotetsu --- api/BeforeUnloadEvent.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/BeforeUnloadEvent.json b/api/BeforeUnloadEvent.json index b5bcdfcc82df9a..067e2be218178f 100644 --- a/api/BeforeUnloadEvent.json +++ b/api/BeforeUnloadEvent.json @@ -50,7 +50,7 @@ }, { "version_added": "30", - "version_removed": "118", + "version_removed": "119", "partial_implementation": true, "notes": "Incorrectly activated the dialog with an empty string value." } From 037ab769840acf4694389027ae100d3761fd41ac Mon Sep 17 00:00:00 2001 From: Chris Mills Date: Thu, 12 Oct 2023 09:17:17 +0100 Subject: [PATCH 7/7] Update api/BeforeUnloadEvent.json Co-authored-by: Queen Vinyl Da.i'gyu-Kazotetsu --- api/BeforeUnloadEvent.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/BeforeUnloadEvent.json b/api/BeforeUnloadEvent.json index 067e2be218178f..ae621f44fb5f5c 100644 --- a/api/BeforeUnloadEvent.json +++ b/api/BeforeUnloadEvent.json @@ -52,7 +52,7 @@ "version_added": "30", "version_removed": "119", "partial_implementation": true, - "notes": "Incorrectly activated the dialog with an empty string value." + "notes": "Before Chrome 119, an empty string incorrectly activated the confirmation dialog." } ], "chrome_android": "mirror",