From 6be88fd03808ec941a95bae39d1f365d7cd4dbd0 Mon Sep 17 00:00:00 2001 From: Eric Willigers Date: Thu, 24 Sep 2020 01:28:16 -0700 Subject: [PATCH] Web Share: restrict URL scheme to http and https We now follow the recent spec change limiting the permitted scheme for shared urls to http and https - see https://github.com/w3c/web-share/issues/173 https://github.com/w3c/web-share/pull/174 https://github.com/w3c/web-share/pull/177 We make an exception if the page performing the share it itself loaded from a different scheme (e.g. file) - in that case we allow the same scheme to be used for the shared url. Bug: 1131755 Change-Id: I6abf0f9acd40ef79ec49379314e2ef3a81d3467e --- web-share/canShare.tentative.https.html | 34 ++++++++++++------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/web-share/canShare.tentative.https.html b/web-share/canShare.tentative.https.html index bb263e542559d86..f89ec82ec7823fb 100644 --- a/web-share/canShare.tentative.https.html +++ b/web-share/canShare.tentative.https.html @@ -11,74 +11,74 @@ 'use strict'; test(() => { - assert_equals(navigator.canShare(), false); + assert_false(navigator.canShare()); }, 'canShare with no arguments (same as empty dictionary)'); test(() => { - assert_equals(navigator.canShare({}), false); + assert_false(navigator.canShare({})); }, 'canShare with an empty dictionary'); test(() => { - assert_equals(navigator.canShare(undefined), false); + assert_false(navigator.canShare(undefined)); }, 'canShare with a undefined argument (same as empty dictionary)'); test(() => { - assert_equals(navigator.canShare(null), false); + assert_false(navigator.canShare(null)); }, 'canShare with a null argument (same as empty dictionary)'); test(() => { - assert_equals(navigator.canShare({unused: 'unexpected field'}), false); + assert_false(navigator.canShare({unused: 'unexpected field'})); }, 'canShare with a dictionary containing only surplus fields'); test(() => { // URL is invalid in that the URL Parser returns failure (port is too // large). const url = 'http://example.com:65536'; - assert_equals(navigator.canShare({url}), false); + assert_false(navigator.canShare({url})); }, 'canShare with an invalid URL'); test(() => { - assert_equals(navigator.canShare({title: undefined}), false); + assert_false(navigator.canShare({title: undefined})); }, 'canShare with attribute undefined is equivalent to omitting the attribute'); test(() => { - assert_equals(navigator.canShare({title: 'subject'}), true); + assert_true(navigator.canShare({title: 'subject'})); }, 'canShare with title'); test(() => { - assert_equals(navigator.canShare({text: 'body'}), true); + assert_true(navigator.canShare({text: 'body'})); }, 'canShare with text'); test(() => { - assert_equals(navigator.canShare({url: 'https://www.example.com/some/path?some_query#some_fragment'}), true); + assert_true(navigator.canShare({url: 'https://www.example.com/some/path?some_query#some_fragment'})); }, 'canShare with URL'); test(() => { - assert_equals(navigator.canShare({title: null}), true); + assert_true(navigator.canShare({title: null})); }, 'canShare with null attribute'); test(() => { - assert_equals(navigator.canShare({text: 123}), true); + assert_true(navigator.canShare({text: 123})); }, 'canShare with number'); test(() => { - assert_equals(navigator.canShare({url: {toString() { return 'https://example.com/'; }}}), true); + assert_true(navigator.canShare({url: {toString() { return 'https://example.com/'; }}})); }, 'canShare with object'); test(() => { - assert_equals(navigator.canShare({title: 'subject', text: 'body', url: 'https://example.com/', unused: 'unexpected field'}), true); + assert_true(navigator.canShare({title: 'subject', text: 'body', url: 'https://example.com/', unused: 'unexpected field'})); }, 'canShare with unexpected field'); test(() => { - assert_equals(navigator.canShare({url: 'data:the url'}), true); + assert_false(navigator.canShare({url: 'data:the url'})); }, 'canShare with data URL'); test(() => { - assert_equals(navigator.canShare({url: ''}), true); + assert_true(navigator.canShare({url: ''})); }, 'canShare with empty URL'); test(() => { - assert_equals(navigator.canShare({url: '//www.example.com/some/path?some_query#some_fragment'}), true); + assert_true(navigator.canShare({url: '//www.example.com/some/path?some_query#some_fragment'})); }, 'canShare with URL having no scheme');