Closed Bug 1610196 Opened 6 years ago Closed 6 years ago

[wpt-sync] Sync PR 21252 - Enforce character restrictions for registerProtocolHandler scheme

Categories

(Core :: DOM: Core & HTML, task, P4)

task

Tracking

()

RESOLVED FIXED
mozilla74
Tracking Status
firefox74 --- fixed

People

(Reporter: wpt-sync, Unassigned)

References

()

Details

(Whiteboard: [wptsync downstream])

Sync web-platform-tests PR 21252 into mozilla-central (this bug is closed when the sync is complete).

PR: https://github.com/web-platform-tests/wpt/pull/21252
Details from upstream follow.

Eric Lawrence <ericlaw@microsoft.com> wrote:

Enforce character restrictions for registerProtocolHandler scheme

Schemes that begin with the prefix "web+" must contain one or more ASCII
lower alphas, forbidding other characters. Chrome previously allowed any
character otherwise valid in URI schemes. Now, it matches the HTML5 spec
and Firefox.

Bug: 1019995
Change-Id: Id1b86eb75ca2159fc6b2c2bd1b96adac6ba494c8
Reviewed-on: https://chromium-review.googlesource.com/2009825
WPT-Export-Revision: dd84a4778cdb5b7a6c5a957a8e7910e3aaba06bb

Component: web-platform-tests → DOM: Core & HTML
Product: Testing → Core

CI Results

Ran 13 Firefox configurations based on mozilla-central, and Firefox, Chrome, and Safari on GitHub CI

Total 42 tests

Status Summary

Firefox

OK : 1
PASS: 41[Gecko-android-em-7.0-x86_64-debug-geckoview, Gecko-android-em-7.0-x86_64-opt-geckoview, Gecko-linux1804-64-asan-opt, Gecko-linux1804-64-debug, Gecko-linux1804-64-opt, Gecko-linux1804-64-qr-debug, Gecko-linux1804-64-qr-opt, Gecko-windows10-64-debug, Gecko-windows10-64-opt, Gecko-windows10-64-qr-debug, Gecko-windows10-64-qr-opt, Gecko-windows7-32-debug, Gecko-windows7-32-opt] 90[GitHub]
FAIL: 94

Chrome

OK : 1
PASS: 178
FAIL: 6

Safari

OK : 1
FAIL: 184

Links

Gecko CI (Treeherder)
GitHub PR Head
GitHub PR Base

Details

New Tests That Don't Pass

/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html: OK [GitHub], SKIP [Gecko-android-em-7.0-x86_64-debug-geckoview, Gecko-android-em-7.0-x86_64-opt-geckoview, Gecko-linux1804-64-asan-opt, Gecko-linux1804-64-debug, Gecko-linux1804-64-opt, Gecko-linux1804-64-qr-debug, Gecko-linux1804-64-qr-opt, Gecko-windows10-64-debug, Gecko-windows10-64-opt, Gecko-windows10-64-qr-debug, Gecko-windows10-64-qr-opt, Gecko-windows7-32-debug, Gecko-windows7-32-opt] (Chrome: OK, Safari: OK)
unregisterProtocolHandler: Valid URL "https://web-platform.test:8443/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html/%s" should work.: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: Invalid URL "http://example.com/%s" should throw SECURITY_ERR.: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: Attempting to override the "mid" protocol should throw SECURITY_ERR.: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: Attempting to override the "ssh:/" protocol should throw SECURITY_ERR.: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: Attempting to override the "vbscript" protocol should throw SECURITY_ERR.: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: overriding the "bitcoin" protocol should work: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: overriding the "nntp" protocol should work: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: overriding the "web+myprotocol" protocol should work: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: Attempting to override the "https" protocol should throw SECURITY_ERR.: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: Invalid URL "http://%s.com" should throw SECURITY_ERR.: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: Attempting to override the "view-source" protocol should throw SECURITY_ERR.: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: Invalid URL "mailto:%s" should throw SECURITY_ERR.: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: Attempting to override the "mailto:" protocol should throw SECURITY_ERR.: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: Attempting to override the "web+digits123areforbidden" protocol should throw SECURITY_ERR.: FAIL (Chrome: FAIL, Safari: FAIL)
unregisterProtocolHandler: overriding the "im" protocol should work: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: Attempting to override the "web+" protocol should throw SECURITY_ERR.: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: Attempting to override the "livescript" protocol should throw SECURITY_ERR.: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: Attempting to override the "javascript" protocol should throw SECURITY_ERR.: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: Attempting to override the "mаilto" protocol should throw SECURITY_ERR.: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: Valid URL "https://web-platform.test:8443/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html?foo=%s" should work.: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: Invalid URL "%S" should throw SYNTAX_ERR.: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: overriding the "geo" protocol should work: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: Valid URL "https://web-platform.test:8443/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html/%s/bar/baz/" should work.: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: Invalid URL "https://web-platform.test:8443/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html/%" should throw SYNTAX_ERR.: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: Invalid URL "http://foobar.example.com/%s" should throw SECURITY_ERR.: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: Attempting to override the "about" protocol should throw SECURITY_ERR.: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: Attempting to override the "ftp" protocol should throw SECURITY_ERR.: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: overriding the "mms" protocol should work: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: Attempting to override the "mocha" protocol should throw SECURITY_ERR.: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: overriding the "MagneT" protocol should work: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: Valid URL "https://web-platform.test:8443/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html/%s/foo/%s/" should work.: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: Attempting to override the "ws" protocol should throw SECURITY_ERR.: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: overriding the "news" protocol should work: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: Attempting to override the "wss" protocol should throw SECURITY_ERR.: FAIL (Chrome: PASS, Safari: FAIL)
the unregisterProtocolHandler method should exist on the navigator object: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: overriding the "openpgp4fpr" protocol should work: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: Invalid URL "" should throw SYNTAX_ERR.: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: overriding the "sms" protocol should work: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: Attempting to override the "wyciwyg" protocol should throw SECURITY_ERR.: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: overriding the "irc" protocol should work: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: Invalid URL "mailto:%s@example.com" should throw SECURITY_ERR.: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: overriding the "BitcoIn" protocol should work: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: Attempting to override the "res" protocol should throw SECURITY_ERR.: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: Attempting to override the "mailto://" protocol should throw SECURITY_ERR.: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: Attempting to override the "operamail" protocol should throw SECURITY_ERR.: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: Valid URL "%s" should work.: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: Attempting to override the "data" protocol should throw SECURITY_ERR.: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: overriding the "webcal" protocol should work: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: overriding the "ssh" protocol should work: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: Attempting to override the "tcl" protocol should throw SECURITY_ERR.: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: Attempting to override the "mailtoo" protocol should throw SECURITY_ERR.: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: Attempting to override the "resource" protocol should throw SECURITY_ERR.: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: Invalid URL "https://web-platform.test:8443/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html" should throw SYNTAX_ERR.: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: overriding the "WTAI" protocol should work: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: overriding the "magnet" protocol should work: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: overriding the "teL" protocol should work: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: Attempting to override the "web+dots.are.forbidden" protocol should throw SECURITY_ERR.: FAIL (Chrome: FAIL, Safari: FAIL)
unregisterProtocolHandler: overriding the "Irc" protocol should work: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: Attempting to override the "attachment" protocol should throw SECURITY_ERR.: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: Attempting to override the "magnet:+" protocol should throw SECURITY_ERR.: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: Attempting to override the "opera" protocol should throw SECURITY_ERR.: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: Valid URL "https://web-platform.test:8443/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html/%s/bar/baz/?foo=1337&bar#baz" should work.: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: Invalid URL "http://example.com" should throw SYNTAX_ERR.: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: overriding the "mailto" protocol should work: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: overriding the "xmpp" protocol should work: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: overriding the "wtai" protocol should work: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: Attempting to override the "tel:sip" protocol should throw SECURITY_ERR.: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: Attempting to override the "chrome" protocol should throw SECURITY_ERR.: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: Invalid URL "http://[v8.:::]//url=%s" should throw SYNTAX_ERR.: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: overriding the "urn" protocol should work: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: Attempting to override the "unrecognized" protocol should throw SECURITY_ERR.: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: Attempting to override the "blob" protocol should throw SECURITY_ERR.: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: Attempting to override the "http://" protocol should throw SECURITY_ERR.: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: Attempting to override the "file" protocol should throw SECURITY_ERR.: FAIL (Chrome: PASS, Safari: FAIL)
registerProtocolHandler: Invalid URL "http://%s.example.com" should throw SECURITY_ERR.: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: Attempting to override the "mailto<" protocol should throw SECURITY_ERR.: FAIL (Chrome: PASS, Safari: FAIL)
registerProtocolHandler: Invalid URL "http://%s.com" should throw SECURITY_ERR.: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: Attempting to override the "shttp" protocol should throw SECURITY_ERR.: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: Invalid URL "https://example.com/%s" should throw SECURITY_ERR.: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: Attempting to override the "http" protocol should throw SECURITY_ERR.: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: Invalid URL "https://web-platform.test:8443/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html/%a" should throw SYNTAX_ERR.: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: overriding the "TEL" protocol should work: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: overriding the "SmsTo" protocol should work: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: Attempting to override the "cid" protocol should throw SECURITY_ERR.: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: overriding the "sip" protocol should work: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: Attempting to override the "mailto
" protocol should throw SECURITY_ERR.: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: overriding the "ircs" protocol should work: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: Valid URL "https://web-platform.test:8443/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html?foo=%s&bar" should work.: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: Attempting to override the "web+dashes-are-forbidden" protocol should throw SECURITY_ERR.: FAIL (Chrome: FAIL, Safari: FAIL)
unregisterProtocolHandler: overriding the "WebCAL" protocol should work: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: Invalid URL "http://%s.example.com" should throw SECURITY_ERR.: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: Valid URL "https://web-platform.test:8443/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html#%s" should work.: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: overriding the "smsto" protocol should work: FAIL (Chrome: PASS, Safari: FAIL)
unregisterProtocolHandler: overriding the "tel" protocol should work: FAIL (Chrome: PASS, Safari: FAIL)

Tests Disabled in Gecko Infrastructure

/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html: OK [GitHub], SKIP [Gecko-android-em-7.0-x86_64-debug-geckoview, Gecko-android-em-7.0-x86_64-opt-geckoview, Gecko-linux1804-64-asan-opt, Gecko-linux1804-64-debug, Gecko-linux1804-64-opt, Gecko-linux1804-64-qr-debug, Gecko-linux1804-64-qr-opt, Gecko-windows10-64-debug, Gecko-windows10-64-opt, Gecko-windows10-64-qr-debug, Gecko-windows10-64-qr-opt, Gecko-windows7-32-debug, Gecko-windows7-32-opt] (Chrome: OK, Safari: OK)

Pushed by wptsync@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/7efbeabe4b95 [wpt PR 21252] - Enforce character restrictions for registerProtocolHandler scheme, a=testonly
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla74
You need to log in before you can comment on or make changes to this bug.