Title: [220507] trunk
Revision
220507
Author
cdu...@apple.com
Date
2017-08-09 21:19:34 -0700 (Wed, 09 Aug 2017)

Log Message

Disable Beacon API on WK1 DRT and WK2 when not using NETWORK_SESSION
https://bugs.webkit.org/show_bug.cgi?id=175401

Reviewed by Brady Eidson.

Source/WebKit:

* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetBeaconAPIEnabled):
(WKPreferencesGetBeaconAPIEnabled):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
* config.h:

Source/WebKitLegacy/mac:

* WebView/WebPreferenceKeysPrivate.h:
* WebView/WebPreferences.mm:
(+[WebPreferences initialize]):
(-[WebPreferences beaconAPIEnabled]): Deleted.
(-[WebPreferences setBeaconAPIEnabled:]): Deleted.
* WebView/WebPreferencesPrivate.h:
* WebView/WebView.mm:
(-[WebView _preferencesChanged:]):

Tools:

* DumpRenderTree/mac/DumpRenderTree.mm:
(enableExperimentalFeatures):

LayoutTests:

* platform/mac-elcapitan-wk2/fast/dom/navigator-detached-no-crash-expected.txt: Copied from LayoutTests/platform/mac-wk1/fast/dom/navigator-detached-no-crash-expected.txt.
* platform/mac-elcapitan-wk2/imported/w3c/web-platform-tests/url/failure-expected.txt: Added.
* platform/mac-wk1/TestExpectations:
* platform/mac-wk1/fast/dom/navigator-detached-no-crash-expected.txt:
* platform/mac-wk1/imported/w3c/web-platform-tests/url/failure-expected.txt: Added.
* platform/mac-wk2/TestExpectations:
* platform/win/TestExpectations:
* platform/win/fast/dom/navigator-detached-no-crash-expected.txt: Copied from LayoutTests/platform/mac-wk1/fast/dom/navigator-detached-no-crash-expected.txt.
* platform/win/imported/w3c/web-platform-tests/url/failure-expected.txt: Added.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (220506 => 220507)


--- trunk/LayoutTests/ChangeLog	2017-08-10 04:13:08 UTC (rev 220506)
+++ trunk/LayoutTests/ChangeLog	2017-08-10 04:19:34 UTC (rev 220507)
@@ -1,5 +1,22 @@
 2017-08-09  Chris Dumez  <cdu...@apple.com>
 
+        Disable Beacon API on WK1 DRT and WK2 when not using NETWORK_SESSION
+        https://bugs.webkit.org/show_bug.cgi?id=175401
+
+        Reviewed by Brady Eidson.
+
+        * platform/mac-elcapitan-wk2/fast/dom/navigator-detached-no-crash-expected.txt: Copied from LayoutTests/platform/mac-wk1/fast/dom/navigator-detached-no-crash-expected.txt.
+        * platform/mac-elcapitan-wk2/imported/w3c/web-platform-tests/url/failure-expected.txt: Added.
+        * platform/mac-wk1/TestExpectations:
+        * platform/mac-wk1/fast/dom/navigator-detached-no-crash-expected.txt:
+        * platform/mac-wk1/imported/w3c/web-platform-tests/url/failure-expected.txt: Added.
+        * platform/mac-wk2/TestExpectations:
+        * platform/win/TestExpectations:
+        * platform/win/fast/dom/navigator-detached-no-crash-expected.txt: Copied from LayoutTests/platform/mac-wk1/fast/dom/navigator-detached-no-crash-expected.txt.
+        * platform/win/imported/w3c/web-platform-tests/url/failure-expected.txt: Added.
+
+2017-08-09  Chris Dumez  <cdu...@apple.com>
+
         [Beacon][NetworkSession] Support CORS-preflighting on redirects
         https://bugs.webkit.org/show_bug.cgi?id=175386
         <rdar://problem/33801370>

Copied: trunk/LayoutTests/platform/mac-elcapitan-wk2/fast/dom/navigator-detached-no-crash-expected.txt (from rev 220506, trunk/LayoutTests/platform/mac-wk1/fast/dom/navigator-detached-no-crash-expected.txt) (0 => 220507)


--- trunk/LayoutTests/platform/mac-elcapitan-wk2/fast/dom/navigator-detached-no-crash-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/platform/mac-elcapitan-wk2/fast/dom/navigator-detached-no-crash-expected.txt	2017-08-10 04:19:34 UTC (rev 220507)
@@ -0,0 +1,41 @@
+This tests that the navigator object of a deleted frame is disconnected properly. Accessing fields or methods shouldn't crash the browser. 
+ Check Navigator
+navigator.appCodeName is OK
+navigator.appName is OK
+navigator.appVersion is OK
+navigator.cookieEnabled is OK
+navigator.getStorageUpdates() is OK
+navigator.javaEnabled() is OK
+navigator.language is OK
+navigator.languages is OK
+navigator.mimeTypes is OK
+navigator.onLine is OK
+navigator.platform is OK
+navigator.plugins is OK
+navigator.product is OK
+navigator.productSub is OK
+navigator.serviceWorker is OK
+navigator.userAgent is OK
+navigator.vendor is OK
+navigator.vendorSub is OK
+navigator.webdriver is OK
+navigator.appCodeName is OK
+navigator.appName is OK
+navigator.appVersion is OK
+navigator.cookieEnabled is OK
+navigator.getStorageUpdates() is OK
+navigator.javaEnabled() is OK
+navigator.language is OK
+navigator.languages is OK
+navigator.mimeTypes is OK
+navigator.onLine is OK
+navigator.platform is OK
+navigator.plugins is OK
+navigator.product is OK
+navigator.productSub is OK
+navigator.serviceWorker is OK
+navigator.userAgent is OK
+navigator.vendor is OK
+navigator.vendorSub is OK
+navigator.webdriver is OK
+

Added: trunk/LayoutTests/platform/mac-elcapitan-wk2/imported/w3c/web-platform-tests/url/failure-expected.txt (0 => 220507)


--- trunk/LayoutTests/platform/mac-elcapitan-wk2/imported/w3c/web-platform-tests/url/failure-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/platform/mac-elcapitan-wk2/imported/w3c/web-platform-tests/url/failure-expected.txt	2017-08-10 04:19:34 UTC (rev 220507)
@@ -0,0 +1,307 @@
+CONSOLE MESSAGE: line 38: Not allowed to load local resource: example:1
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL ''.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL ''.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL ''.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'http://user:pass@/'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'http://foo:-80/'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'http://user@/www.example.com'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'http://@/www.example.com'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'https:@/www.example.com'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'http://a:b@/www.example.com'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'http://@:www.example.com'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'https://�'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'https://%EF%BF%BD'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'https://x x:12'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'http://[www.google.com]/'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'sc://
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'sc:// /'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'sc://@/'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'sc://te@s:t@/'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'sc://:/'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'sc://:12/'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'sc://[/'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'sc://\/'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'sc://]/'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'ftp://example.com%80/'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'ftp://example.com%A0/'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'https://example.com%80/'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'https://example.com%A0/'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'https://[0::0::0]'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'https://[0:.0]'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'https://[0:0:]'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'https://[0:1:2:3:4:5:6:7.0.0.0.1]'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'https://[0:1.00.0.0.0]'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'https://[0:1.290.0.0.0]'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'https://[0:1.23.23]'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'http://?'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'http://#'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'non-special://[:80/'.
+
+
+PASS Loading data… 
+FAIL URL's href: file://example:1/ should throw assert_throws: function "() => url.href = "" did not throw
+FAIL XHR: file://example:1/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): file://example:1/ should throw 
+FAIL Location's href: file://example:1/ should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): file://example:1/ should throw assert_throws: function "() => self.open(test.input).close()" did not throw
+PASS URL's href: file://example:test/ should throw 
+FAIL XHR: file://example:test/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): file://example:test/ should throw 
+FAIL Location's href: file://example:test/ should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): file://example:test/ should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: file://example%/ should throw 
+FAIL XHR: file://example%/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): file://example%/ should throw 
+FAIL Location's href: file://example%/ should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): file://example%/ should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: file://[example]/ should throw 
+FAIL XHR: file://[example]/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): file://[example]/ should throw 
+FAIL Location's href: file://[example]/ should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): file://[example]/ should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: http://user:pass@/ should throw 
+FAIL XHR: http://user:pass@/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): http://user:pass@/ should throw 
+FAIL Location's href: http://user:pass@/ should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http://user:pass@/ should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: http://foo:-80/ should throw 
+FAIL XHR: http://foo:-80/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): http://foo:-80/ should throw 
+FAIL Location's href: http://foo:-80/ should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http://foo:-80/ should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: http:/:@/www.example.com should throw 
+FAIL XHR: http:/:@/www.example.com should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): http:/:@/www.example.com should throw 
+FAIL Location's href: http:/:@/www.example.com should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http:/:@/www.example.com should throw assert_throws: function "() => self.open(test.input).close()" did not throw
+PASS URL's href: http://user@/www.example.com should throw 
+FAIL XHR: http://user@/www.example.com should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): http://user@/www.example.com should throw 
+FAIL Location's href: http://user@/www.example.com should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http://user@/www.example.com should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: http:@/www.example.com should throw 
+FAIL XHR: http:@/www.example.com should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): http:@/www.example.com should throw 
+FAIL Location's href: http:@/www.example.com should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http:@/www.example.com should throw assert_throws: function "() => self.open(test.input).close()" did not throw
+PASS URL's href: http:/@/www.example.com should throw 
+FAIL XHR: http:/@/www.example.com should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): http:/@/www.example.com should throw 
+FAIL Location's href: http:/@/www.example.com should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http:/@/www.example.com should throw assert_throws: function "() => self.open(test.input).close()" did not throw
+PASS URL's href: http://@/www.example.com should throw 
+FAIL XHR: http://@/www.example.com should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): http://@/www.example.com should throw 
+FAIL Location's href: http://@/www.example.com should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http://@/www.example.com should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: https:@/www.example.com should throw 
+FAIL XHR: https:@/www.example.com should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): https:@/www.example.com should throw 
+FAIL Location's href: https:@/www.example.com should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): https:@/www.example.com should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: http:a:b@/www.example.com should throw 
+FAIL XHR: http:a:b@/www.example.com should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): http:a:b@/www.example.com should throw 
+FAIL Location's href: http:a:b@/www.example.com should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http:a:b@/www.example.com should throw assert_throws: function "() => self.open(test.input).close()" did not throw
+PASS URL's href: http:/a:b@/www.example.com should throw 
+FAIL XHR: http:/a:b@/www.example.com should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): http:/a:b@/www.example.com should throw 
+FAIL Location's href: http:/a:b@/www.example.com should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http:/a:b@/www.example.com should throw assert_throws: function "() => self.open(test.input).close()" did not throw
+PASS URL's href: http://a:b@/www.example.com should throw 
+FAIL XHR: http://a:b@/www.example.com should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): http://a:b@/www.example.com should throw 
+FAIL Location's href: http://a:b@/www.example.com should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http://a:b@/www.example.com should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: http::@/www.example.com should throw 
+FAIL XHR: http::@/www.example.com should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): http::@/www.example.com should throw 
+FAIL Location's href: http::@/www.example.com should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http::@/www.example.com should throw assert_throws: function "() => self.open(test.input).close()" did not throw
+PASS URL's href: http:@:www.example.com should throw 
+FAIL XHR: http:@:www.example.com should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): http:@:www.example.com should throw 
+FAIL Location's href: http:@:www.example.com should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http:@:www.example.com should throw assert_throws: function "() => self.open(test.input).close()" did not throw
+PASS URL's href: http:/@:www.example.com should throw 
+FAIL XHR: http:/@:www.example.com should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): http:/@:www.example.com should throw 
+FAIL Location's href: http:/@:www.example.com should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http:/@:www.example.com should throw assert_throws: function "() => self.open(test.input).close()" did not throw
+PASS URL's href: http://@:www.example.com should throw 
+FAIL XHR: http://@:www.example.com should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): http://@:www.example.com should throw 
+FAIL Location's href: http://@:www.example.com should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http://@:www.example.com should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: https://� should throw 
+FAIL XHR: https://� should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): https://� should throw 
+FAIL Location's href: https://� should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): https://� should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: https://%EF%BF%BD should throw 
+FAIL XHR: https://%EF%BF%BD should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): https://%EF%BF%BD should throw 
+FAIL Location's href: https://%EF%BF%BD should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): https://%EF%BF%BD should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: https://x x:12 should throw 
+FAIL XHR: https://x x:12 should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): https://x x:12 should throw 
+FAIL Location's href: https://x x:12 should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): https://x x:12 should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: http://[www.google.com]/ should throw 
+FAIL XHR: http://[www.google.com]/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): http://[www.google.com]/ should throw 
+FAIL Location's href: http://[www.google.com]/ should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http://[www.google.com]/ should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: sc://\0/ should throw 
+FAIL XHR: sc://\0/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): sc://\0/ should throw 
+FAIL Location's href: sc://\0/ should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): sc://\0/ should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: sc:// / should throw 
+FAIL XHR: sc:// / should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): sc:// / should throw 
+FAIL Location's href: sc:// / should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): sc:// / should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: sc://@/ should throw 
+FAIL XHR: sc://@/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): sc://@/ should throw 
+FAIL Location's href: sc://@/ should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): sc://@/ should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: sc://te@s:t@/ should throw 
+FAIL XHR: sc://te@s:t@/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): sc://te@s:t@/ should throw 
+FAIL Location's href: sc://te@s:t@/ should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): sc://te@s:t@/ should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: sc://:/ should throw 
+FAIL XHR: sc://:/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): sc://:/ should throw 
+FAIL Location's href: sc://:/ should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): sc://:/ should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: sc://:12/ should throw 
+FAIL XHR: sc://:12/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): sc://:12/ should throw 
+FAIL Location's href: sc://:12/ should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): sc://:12/ should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: sc://[/ should throw 
+FAIL XHR: sc://[/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): sc://[/ should throw 
+FAIL Location's href: sc://[/ should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): sc://[/ should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: sc://\/ should throw 
+FAIL XHR: sc://\/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): sc://\/ should throw 
+FAIL Location's href: sc://\/ should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): sc://\/ should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: sc://]/ should throw 
+FAIL XHR: sc://]/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): sc://]/ should throw 
+FAIL Location's href: sc://]/ should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): sc://]/ should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: ftp://example.com%80/ should throw 
+FAIL XHR: ftp://example.com%80/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): ftp://example.com%80/ should throw 
+FAIL Location's href: ftp://example.com%80/ should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): ftp://example.com%80/ should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: ftp://example.com%A0/ should throw 
+FAIL XHR: ftp://example.com%A0/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): ftp://example.com%A0/ should throw 
+FAIL Location's href: ftp://example.com%A0/ should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): ftp://example.com%A0/ should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: https://example.com%80/ should throw 
+FAIL XHR: https://example.com%80/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): https://example.com%80/ should throw 
+FAIL Location's href: https://example.com%80/ should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): https://example.com%80/ should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: https://example.com%A0/ should throw 
+FAIL XHR: https://example.com%A0/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): https://example.com%A0/ should throw 
+FAIL Location's href: https://example.com%A0/ should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): https://example.com%A0/ should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: https://[0::0::0] should throw 
+FAIL XHR: https://[0::0::0] should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): https://[0::0::0] should throw 
+FAIL Location's href: https://[0::0::0] should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): https://[0::0::0] should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: https://[0:.0] should throw 
+FAIL XHR: https://[0:.0] should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): https://[0:.0] should throw 
+FAIL Location's href: https://[0:.0] should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): https://[0:.0] should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: https://[0:0:] should throw 
+FAIL XHR: https://[0:0:] should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): https://[0:0:] should throw 
+FAIL Location's href: https://[0:0:] should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): https://[0:0:] should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: https://[0:1:2:3:4:5:6:7.0.0.0.1] should throw 
+FAIL XHR: https://[0:1:2:3:4:5:6:7.0.0.0.1] should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): https://[0:1:2:3:4:5:6:7.0.0.0.1] should throw 
+FAIL Location's href: https://[0:1:2:3:4:5:6:7.0.0.0.1] should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): https://[0:1:2:3:4:5:6:7.0.0.0.1] should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: https://[0:1.00.0.0.0] should throw 
+FAIL XHR: https://[0:1.00.0.0.0] should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): https://[0:1.00.0.0.0] should throw 
+FAIL Location's href: https://[0:1.00.0.0.0] should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): https://[0:1.00.0.0.0] should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: https://[0:1.290.0.0.0] should throw 
+FAIL XHR: https://[0:1.290.0.0.0] should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): https://[0:1.290.0.0.0] should throw 
+FAIL Location's href: https://[0:1.290.0.0.0] should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): https://[0:1.290.0.0.0] should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: https://[0:1.23.23] should throw 
+FAIL XHR: https://[0:1.23.23] should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): https://[0:1.23.23] should throw 
+FAIL Location's href: https://[0:1.23.23] should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): https://[0:1.23.23] should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: http://? should throw 
+FAIL XHR: http://? should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): http://? should throw 
+FAIL Location's href: http://? should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http://? should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: http://# should throw 
+FAIL XHR: http://# should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): http://# should throw 
+FAIL Location's href: http://# should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http://# should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: non-special://[:80/ should throw 
+FAIL XHR: non-special://[:80/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): non-special://[:80/ should throw 
+FAIL Location's href: non-special://[:80/ should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): non-special://[:80/ should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+

Modified: trunk/LayoutTests/platform/mac-wk1/TestExpectations (220506 => 220507)


--- trunk/LayoutTests/platform/mac-wk1/TestExpectations	2017-08-10 04:13:08 UTC (rev 220506)
+++ trunk/LayoutTests/platform/mac-wk1/TestExpectations	2017-08-10 04:19:34 UTC (rev 220507)
@@ -360,8 +360,11 @@
 
 webkit.org/b/170877 [ Debug ] webgl/1.0.2/conformance/glsl/misc/shader-with-reserved-words.html [ Pass Timeout ]
 
-# CORS-preflighting for Beacon is not supported on WK1.
-webkit.org/b/175330 http/wpt/beacon/cors/ [ Skip ]
+# Beacon is not supported on WK1.
+http/tests/blink/sendbeacon/ [ Skip ]
+http/wpt/beacon/ [ Skip ]
+imported/blink/fast/beacon/ [ Skip ]
+imported/w3c/web-platform-tests/beacon/ [ Skip ]
 
 # This was a WK2-only fix.
 http/tests/css/filters-on-iframes.html [ Skip ]

Modified: trunk/LayoutTests/platform/mac-wk1/fast/dom/navigator-detached-no-crash-expected.txt (220506 => 220507)


--- trunk/LayoutTests/platform/mac-wk1/fast/dom/navigator-detached-no-crash-expected.txt	2017-08-10 04:13:08 UTC (rev 220506)
+++ trunk/LayoutTests/platform/mac-wk1/fast/dom/navigator-detached-no-crash-expected.txt	2017-08-10 04:19:34 UTC (rev 220507)
@@ -14,7 +14,6 @@
 navigator.plugins is OK
 navigator.product is OK
 navigator.productSub is OK
-navigator.sendBeacon() threw err TypeError: Not enough arguments
 navigator.userAgent is OK
 navigator.vendor is OK
 navigator.vendorSub is OK
@@ -33,7 +32,6 @@
 navigator.plugins is OK
 navigator.product is OK
 navigator.productSub is OK
-navigator.sendBeacon() threw err TypeError: Not enough arguments
 navigator.userAgent is OK
 navigator.vendor is OK
 navigator.vendorSub is OK

Added: trunk/LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/url/failure-expected.txt (0 => 220507)


--- trunk/LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/url/failure-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/url/failure-expected.txt	2017-08-10 04:19:34 UTC (rev 220507)
@@ -0,0 +1,307 @@
+CONSOLE MESSAGE: line 38: Not allowed to load local resource: example:1
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL ''.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL ''.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL ''.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'http://user:pass@/'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'http://foo:-80/'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'http://user@/www.example.com'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'http://@/www.example.com'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'https:@/www.example.com'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'http://a:b@/www.example.com'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'http://@:www.example.com'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'https://�'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'https://%EF%BF%BD'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'https://x x:12'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'http://[www.google.com]/'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'sc://
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'sc:// /'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'sc://@/'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'sc://te@s:t@/'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'sc://:/'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'sc://:12/'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'sc://[/'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'sc://\/'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'sc://]/'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'ftp://example.com%80/'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'ftp://example.com%A0/'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'https://example.com%80/'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'https://example.com%A0/'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'https://[0::0::0]'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'https://[0:.0]'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'https://[0:0:]'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'https://[0:1:2:3:4:5:6:7.0.0.0.1]'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'https://[0:1.00.0.0.0]'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'https://[0:1.290.0.0.0]'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'https://[0:1.23.23]'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'http://?'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'http://#'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'non-special://[:80/'.
+
+
+PASS Loading data… 
+FAIL URL's href: file://example:1/ should throw assert_throws: function "() => url.href = "" did not throw
+FAIL XHR: file://example:1/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): file://example:1/ should throw 
+FAIL Location's href: file://example:1/ should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): file://example:1/ should throw assert_throws: function "() => self.open(test.input).close()" did not throw
+PASS URL's href: file://example:test/ should throw 
+FAIL XHR: file://example:test/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): file://example:test/ should throw 
+FAIL Location's href: file://example:test/ should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): file://example:test/ should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: file://example%/ should throw 
+FAIL XHR: file://example%/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): file://example%/ should throw 
+FAIL Location's href: file://example%/ should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): file://example%/ should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: file://[example]/ should throw 
+FAIL XHR: file://[example]/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): file://[example]/ should throw 
+FAIL Location's href: file://[example]/ should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): file://[example]/ should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: http://user:pass@/ should throw 
+FAIL XHR: http://user:pass@/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): http://user:pass@/ should throw 
+FAIL Location's href: http://user:pass@/ should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http://user:pass@/ should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: http://foo:-80/ should throw 
+FAIL XHR: http://foo:-80/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): http://foo:-80/ should throw 
+FAIL Location's href: http://foo:-80/ should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http://foo:-80/ should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: http:/:@/www.example.com should throw 
+FAIL XHR: http:/:@/www.example.com should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): http:/:@/www.example.com should throw 
+FAIL Location's href: http:/:@/www.example.com should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http:/:@/www.example.com should throw assert_throws: function "() => self.open(test.input).close()" did not throw
+PASS URL's href: http://user@/www.example.com should throw 
+FAIL XHR: http://user@/www.example.com should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): http://user@/www.example.com should throw 
+FAIL Location's href: http://user@/www.example.com should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http://user@/www.example.com should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: http:@/www.example.com should throw 
+FAIL XHR: http:@/www.example.com should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): http:@/www.example.com should throw 
+FAIL Location's href: http:@/www.example.com should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http:@/www.example.com should throw assert_throws: function "() => self.open(test.input).close()" did not throw
+PASS URL's href: http:/@/www.example.com should throw 
+FAIL XHR: http:/@/www.example.com should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): http:/@/www.example.com should throw 
+FAIL Location's href: http:/@/www.example.com should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http:/@/www.example.com should throw assert_throws: function "() => self.open(test.input).close()" did not throw
+PASS URL's href: http://@/www.example.com should throw 
+FAIL XHR: http://@/www.example.com should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): http://@/www.example.com should throw 
+FAIL Location's href: http://@/www.example.com should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http://@/www.example.com should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: https:@/www.example.com should throw 
+FAIL XHR: https:@/www.example.com should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): https:@/www.example.com should throw 
+FAIL Location's href: https:@/www.example.com should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): https:@/www.example.com should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: http:a:b@/www.example.com should throw 
+FAIL XHR: http:a:b@/www.example.com should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): http:a:b@/www.example.com should throw 
+FAIL Location's href: http:a:b@/www.example.com should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http:a:b@/www.example.com should throw assert_throws: function "() => self.open(test.input).close()" did not throw
+PASS URL's href: http:/a:b@/www.example.com should throw 
+FAIL XHR: http:/a:b@/www.example.com should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): http:/a:b@/www.example.com should throw 
+FAIL Location's href: http:/a:b@/www.example.com should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http:/a:b@/www.example.com should throw assert_throws: function "() => self.open(test.input).close()" did not throw
+PASS URL's href: http://a:b@/www.example.com should throw 
+FAIL XHR: http://a:b@/www.example.com should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): http://a:b@/www.example.com should throw 
+FAIL Location's href: http://a:b@/www.example.com should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http://a:b@/www.example.com should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: http::@/www.example.com should throw 
+FAIL XHR: http::@/www.example.com should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): http::@/www.example.com should throw 
+FAIL Location's href: http::@/www.example.com should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http::@/www.example.com should throw assert_throws: function "() => self.open(test.input).close()" did not throw
+PASS URL's href: http:@:www.example.com should throw 
+FAIL XHR: http:@:www.example.com should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): http:@:www.example.com should throw 
+FAIL Location's href: http:@:www.example.com should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http:@:www.example.com should throw assert_throws: function "() => self.open(test.input).close()" did not throw
+PASS URL's href: http:/@:www.example.com should throw 
+FAIL XHR: http:/@:www.example.com should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): http:/@:www.example.com should throw 
+FAIL Location's href: http:/@:www.example.com should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http:/@:www.example.com should throw assert_throws: function "() => self.open(test.input).close()" did not throw
+PASS URL's href: http://@:www.example.com should throw 
+FAIL XHR: http://@:www.example.com should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): http://@:www.example.com should throw 
+FAIL Location's href: http://@:www.example.com should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http://@:www.example.com should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: https://� should throw 
+FAIL XHR: https://� should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): https://� should throw 
+FAIL Location's href: https://� should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): https://� should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: https://%EF%BF%BD should throw 
+FAIL XHR: https://%EF%BF%BD should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): https://%EF%BF%BD should throw 
+FAIL Location's href: https://%EF%BF%BD should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): https://%EF%BF%BD should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: https://x x:12 should throw 
+FAIL XHR: https://x x:12 should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): https://x x:12 should throw 
+FAIL Location's href: https://x x:12 should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): https://x x:12 should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: http://[www.google.com]/ should throw 
+FAIL XHR: http://[www.google.com]/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): http://[www.google.com]/ should throw 
+FAIL Location's href: http://[www.google.com]/ should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http://[www.google.com]/ should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: sc://\0/ should throw 
+FAIL XHR: sc://\0/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): sc://\0/ should throw 
+FAIL Location's href: sc://\0/ should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): sc://\0/ should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: sc:// / should throw 
+FAIL XHR: sc:// / should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): sc:// / should throw 
+FAIL Location's href: sc:// / should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): sc:// / should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: sc://@/ should throw 
+FAIL XHR: sc://@/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): sc://@/ should throw 
+FAIL Location's href: sc://@/ should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): sc://@/ should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: sc://te@s:t@/ should throw 
+FAIL XHR: sc://te@s:t@/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): sc://te@s:t@/ should throw 
+FAIL Location's href: sc://te@s:t@/ should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): sc://te@s:t@/ should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: sc://:/ should throw 
+FAIL XHR: sc://:/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): sc://:/ should throw 
+FAIL Location's href: sc://:/ should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): sc://:/ should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: sc://:12/ should throw 
+FAIL XHR: sc://:12/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): sc://:12/ should throw 
+FAIL Location's href: sc://:12/ should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): sc://:12/ should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: sc://[/ should throw 
+FAIL XHR: sc://[/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): sc://[/ should throw 
+FAIL Location's href: sc://[/ should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): sc://[/ should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: sc://\/ should throw 
+FAIL XHR: sc://\/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): sc://\/ should throw 
+FAIL Location's href: sc://\/ should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): sc://\/ should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: sc://]/ should throw 
+FAIL XHR: sc://]/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): sc://]/ should throw 
+FAIL Location's href: sc://]/ should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): sc://]/ should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: ftp://example.com%80/ should throw 
+FAIL XHR: ftp://example.com%80/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): ftp://example.com%80/ should throw 
+FAIL Location's href: ftp://example.com%80/ should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): ftp://example.com%80/ should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: ftp://example.com%A0/ should throw 
+FAIL XHR: ftp://example.com%A0/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): ftp://example.com%A0/ should throw 
+FAIL Location's href: ftp://example.com%A0/ should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): ftp://example.com%A0/ should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: https://example.com%80/ should throw 
+FAIL XHR: https://example.com%80/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): https://example.com%80/ should throw 
+FAIL Location's href: https://example.com%80/ should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): https://example.com%80/ should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: https://example.com%A0/ should throw 
+FAIL XHR: https://example.com%A0/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): https://example.com%A0/ should throw 
+FAIL Location's href: https://example.com%A0/ should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): https://example.com%A0/ should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: https://[0::0::0] should throw 
+FAIL XHR: https://[0::0::0] should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): https://[0::0::0] should throw 
+FAIL Location's href: https://[0::0::0] should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): https://[0::0::0] should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: https://[0:.0] should throw 
+FAIL XHR: https://[0:.0] should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): https://[0:.0] should throw 
+FAIL Location's href: https://[0:.0] should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): https://[0:.0] should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: https://[0:0:] should throw 
+FAIL XHR: https://[0:0:] should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): https://[0:0:] should throw 
+FAIL Location's href: https://[0:0:] should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): https://[0:0:] should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: https://[0:1:2:3:4:5:6:7.0.0.0.1] should throw 
+FAIL XHR: https://[0:1:2:3:4:5:6:7.0.0.0.1] should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): https://[0:1:2:3:4:5:6:7.0.0.0.1] should throw 
+FAIL Location's href: https://[0:1:2:3:4:5:6:7.0.0.0.1] should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): https://[0:1:2:3:4:5:6:7.0.0.0.1] should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: https://[0:1.00.0.0.0] should throw 
+FAIL XHR: https://[0:1.00.0.0.0] should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): https://[0:1.00.0.0.0] should throw 
+FAIL Location's href: https://[0:1.00.0.0.0] should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): https://[0:1.00.0.0.0] should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: https://[0:1.290.0.0.0] should throw 
+FAIL XHR: https://[0:1.290.0.0.0] should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): https://[0:1.290.0.0.0] should throw 
+FAIL Location's href: https://[0:1.290.0.0.0] should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): https://[0:1.290.0.0.0] should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: https://[0:1.23.23] should throw 
+FAIL XHR: https://[0:1.23.23] should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): https://[0:1.23.23] should throw 
+FAIL Location's href: https://[0:1.23.23] should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): https://[0:1.23.23] should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: http://? should throw 
+FAIL XHR: http://? should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): http://? should throw 
+FAIL Location's href: http://? should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http://? should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: http://# should throw 
+FAIL XHR: http://# should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): http://# should throw 
+FAIL Location's href: http://# should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http://# should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: non-special://[:80/ should throw 
+FAIL XHR: non-special://[:80/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): non-special://[:80/ should throw 
+FAIL Location's href: non-special://[:80/ should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): non-special://[:80/ should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+

Modified: trunk/LayoutTests/platform/mac-wk2/TestExpectations (220506 => 220507)


--- trunk/LayoutTests/platform/mac-wk2/TestExpectations	2017-08-10 04:13:08 UTC (rev 220506)
+++ trunk/LayoutTests/platform/mac-wk2/TestExpectations	2017-08-10 04:19:34 UTC (rev 220507)
@@ -722,10 +722,12 @@
 
 webkit.org/b/172834 [ ElCapitan ] imported/w3c/web-platform-tests/IndexedDB/idbobjectstore_getAllKeys.html [ Pass Failure ]
 
+# Beacon is not supported on WK2 for the non NETWORK_SESSION code path.
+[ ElCapitan ] http/tests/blink/sendbeacon/ [ Skip ]
+[ ElCapitan ] http/wpt/beacon/ [ Skip ]
+[ ElCapitan ] imported/blink/fast/beacon/ [ Skip ]
+[ ElCapitan ] imported/w3c/web-platform-tests/beacon/ [ Skip ]
 
-# CORS-preflighting for Beacon is not supported on WK2 for non NETWORK_SESSION code path.
-webkit.org/b/175330 [ ElCapitan ] http/wpt/beacon/cors/ [ Skip ]
-
 webkit.org/b/172201 webaudio/silent-audio-interrupted-in-background.html [ Pass Timeout ]
 
 webkit.org/b/167757 workers/bomb.html [ Pass Timeout ]

Modified: trunk/LayoutTests/platform/win/TestExpectations (220506 => 220507)


--- trunk/LayoutTests/platform/win/TestExpectations	2017-08-10 04:13:08 UTC (rev 220506)
+++ trunk/LayoutTests/platform/win/TestExpectations	2017-08-10 04:19:34 UTC (rev 220507)
@@ -4047,8 +4047,11 @@
 # This test requires Skia, which isn't available on Windows.
 webkit.org/b/174079 fast/text/variations/skia-postscript-name.html [ ImageOnlyFailure ]
 
-# CORS-preflighting for Beacon is not supported on WK1.
-webkit.org/b/175330 http/wpt/beacon/cors/ [ Skip ]
+# Beacon is not supported on WK1.
+http/tests/blink/sendbeacon/ [ Skip ]
+http/wpt/beacon/ [ Skip ]
+imported/blink/fast/beacon/ [ Skip ]
+imported/w3c/web-platform-tests/beacon/ [ Skip ]
 
 # Async image tests are currently failing on Windows.
 webkit.org/b/174653 fast/images/async-image-background-image-repeated.html [ Timeout ]

Copied: trunk/LayoutTests/platform/win/fast/dom/navigator-detached-no-crash-expected.txt (from rev 220506, trunk/LayoutTests/platform/mac-wk1/fast/dom/navigator-detached-no-crash-expected.txt) (0 => 220507)


--- trunk/LayoutTests/platform/win/fast/dom/navigator-detached-no-crash-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/platform/win/fast/dom/navigator-detached-no-crash-expected.txt	2017-08-10 04:19:34 UTC (rev 220507)
@@ -0,0 +1,39 @@
+This tests that the navigator object of a deleted frame is disconnected properly. Accessing fields or methods shouldn't crash the browser. 
+ Check Navigator
+navigator.appCodeName is OK
+navigator.appName is OK
+navigator.appVersion is OK
+navigator.cookieEnabled is OK
+navigator.getStorageUpdates() is OK
+navigator.javaEnabled() is OK
+navigator.language is OK
+navigator.languages is OK
+navigator.mimeTypes is OK
+navigator.onLine is OK
+navigator.platform is OK
+navigator.plugins is OK
+navigator.product is OK
+navigator.productSub is OK
+navigator.userAgent is OK
+navigator.vendor is OK
+navigator.vendorSub is OK
+navigator.webdriver is OK
+navigator.appCodeName is OK
+navigator.appName is OK
+navigator.appVersion is OK
+navigator.cookieEnabled is OK
+navigator.getStorageUpdates() is OK
+navigator.javaEnabled() is OK
+navigator.language is OK
+navigator.languages is OK
+navigator.mimeTypes is OK
+navigator.onLine is OK
+navigator.platform is OK
+navigator.plugins is OK
+navigator.product is OK
+navigator.productSub is OK
+navigator.userAgent is OK
+navigator.vendor is OK
+navigator.vendorSub is OK
+navigator.webdriver is OK
+

Added: trunk/LayoutTests/platform/win/imported/w3c/web-platform-tests/url/failure-expected.txt (0 => 220507)


--- trunk/LayoutTests/platform/win/imported/w3c/web-platform-tests/url/failure-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/platform/win/imported/w3c/web-platform-tests/url/failure-expected.txt	2017-08-10 04:19:34 UTC (rev 220507)
@@ -0,0 +1,307 @@
+CONSOLE MESSAGE: line 38: Not allowed to load local resource: example:1
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL ''.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL ''.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL ''.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'http://user:pass@/'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'http://foo:-80/'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'http://user@/www.example.com'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'http://@/www.example.com'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'https:@/www.example.com'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'http://a:b@/www.example.com'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'http://@:www.example.com'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'https://�'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'https://%EF%BF%BD'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'https://x x:12'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'http://[www.google.com]/'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'sc://
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'sc:// /'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'sc://@/'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'sc://te@s:t@/'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'sc://:/'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'sc://:12/'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'sc://[/'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'sc://\/'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'sc://]/'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'ftp://example.com%80/'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'ftp://example.com%A0/'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'https://example.com%80/'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'https://example.com%A0/'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'https://[0::0::0]'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'https://[0:.0]'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'https://[0:0:]'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'https://[0:1:2:3:4:5:6:7.0.0.0.1]'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'https://[0:1.00.0.0.0]'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'https://[0:1.290.0.0.0]'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'https://[0:1.23.23]'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'http://?'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'http://#'.
+
+CONSOLE MESSAGE: line 38: Unable to open a window with invalid URL 'non-special://[:80/'.
+
+
+PASS Loading data… 
+FAIL URL's href: file://example:1/ should throw assert_throws: function "() => url.href = "" did not throw
+FAIL XHR: file://example:1/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): file://example:1/ should throw 
+FAIL Location's href: file://example:1/ should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): file://example:1/ should throw assert_throws: function "() => self.open(test.input).close()" did not throw
+PASS URL's href: file://example:test/ should throw 
+FAIL XHR: file://example:test/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): file://example:test/ should throw 
+FAIL Location's href: file://example:test/ should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): file://example:test/ should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: file://example%/ should throw 
+FAIL XHR: file://example%/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): file://example%/ should throw 
+FAIL Location's href: file://example%/ should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): file://example%/ should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: file://[example]/ should throw 
+FAIL XHR: file://[example]/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): file://[example]/ should throw 
+FAIL Location's href: file://[example]/ should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): file://[example]/ should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: http://user:pass@/ should throw 
+FAIL XHR: http://user:pass@/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): http://user:pass@/ should throw 
+FAIL Location's href: http://user:pass@/ should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http://user:pass@/ should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: http://foo:-80/ should throw 
+FAIL XHR: http://foo:-80/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): http://foo:-80/ should throw 
+FAIL Location's href: http://foo:-80/ should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http://foo:-80/ should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: http:/:@/www.example.com should throw 
+FAIL XHR: http:/:@/www.example.com should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): http:/:@/www.example.com should throw 
+FAIL Location's href: http:/:@/www.example.com should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http:/:@/www.example.com should throw assert_throws: function "() => self.open(test.input).close()" did not throw
+PASS URL's href: http://user@/www.example.com should throw 
+FAIL XHR: http://user@/www.example.com should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): http://user@/www.example.com should throw 
+FAIL Location's href: http://user@/www.example.com should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http://user@/www.example.com should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: http:@/www.example.com should throw 
+FAIL XHR: http:@/www.example.com should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): http:@/www.example.com should throw 
+FAIL Location's href: http:@/www.example.com should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http:@/www.example.com should throw assert_throws: function "() => self.open(test.input).close()" did not throw
+PASS URL's href: http:/@/www.example.com should throw 
+FAIL XHR: http:/@/www.example.com should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): http:/@/www.example.com should throw 
+FAIL Location's href: http:/@/www.example.com should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http:/@/www.example.com should throw assert_throws: function "() => self.open(test.input).close()" did not throw
+PASS URL's href: http://@/www.example.com should throw 
+FAIL XHR: http://@/www.example.com should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): http://@/www.example.com should throw 
+FAIL Location's href: http://@/www.example.com should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http://@/www.example.com should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: https:@/www.example.com should throw 
+FAIL XHR: https:@/www.example.com should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): https:@/www.example.com should throw 
+FAIL Location's href: https:@/www.example.com should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): https:@/www.example.com should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: http:a:b@/www.example.com should throw 
+FAIL XHR: http:a:b@/www.example.com should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): http:a:b@/www.example.com should throw 
+FAIL Location's href: http:a:b@/www.example.com should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http:a:b@/www.example.com should throw assert_throws: function "() => self.open(test.input).close()" did not throw
+PASS URL's href: http:/a:b@/www.example.com should throw 
+FAIL XHR: http:/a:b@/www.example.com should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): http:/a:b@/www.example.com should throw 
+FAIL Location's href: http:/a:b@/www.example.com should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http:/a:b@/www.example.com should throw assert_throws: function "() => self.open(test.input).close()" did not throw
+PASS URL's href: http://a:b@/www.example.com should throw 
+FAIL XHR: http://a:b@/www.example.com should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): http://a:b@/www.example.com should throw 
+FAIL Location's href: http://a:b@/www.example.com should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http://a:b@/www.example.com should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: http::@/www.example.com should throw 
+FAIL XHR: http::@/www.example.com should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): http::@/www.example.com should throw 
+FAIL Location's href: http::@/www.example.com should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http::@/www.example.com should throw assert_throws: function "() => self.open(test.input).close()" did not throw
+PASS URL's href: http:@:www.example.com should throw 
+FAIL XHR: http:@:www.example.com should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): http:@:www.example.com should throw 
+FAIL Location's href: http:@:www.example.com should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http:@:www.example.com should throw assert_throws: function "() => self.open(test.input).close()" did not throw
+PASS URL's href: http:/@:www.example.com should throw 
+FAIL XHR: http:/@:www.example.com should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): http:/@:www.example.com should throw 
+FAIL Location's href: http:/@:www.example.com should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http:/@:www.example.com should throw assert_throws: function "() => self.open(test.input).close()" did not throw
+PASS URL's href: http://@:www.example.com should throw 
+FAIL XHR: http://@:www.example.com should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): http://@:www.example.com should throw 
+FAIL Location's href: http://@:www.example.com should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http://@:www.example.com should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: https://� should throw 
+FAIL XHR: https://� should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): https://� should throw 
+FAIL Location's href: https://� should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): https://� should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: https://%EF%BF%BD should throw 
+FAIL XHR: https://%EF%BF%BD should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): https://%EF%BF%BD should throw 
+FAIL Location's href: https://%EF%BF%BD should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): https://%EF%BF%BD should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: https://x x:12 should throw 
+FAIL XHR: https://x x:12 should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): https://x x:12 should throw 
+FAIL Location's href: https://x x:12 should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): https://x x:12 should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: http://[www.google.com]/ should throw 
+FAIL XHR: http://[www.google.com]/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): http://[www.google.com]/ should throw 
+FAIL Location's href: http://[www.google.com]/ should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http://[www.google.com]/ should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: sc://\0/ should throw 
+FAIL XHR: sc://\0/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): sc://\0/ should throw 
+FAIL Location's href: sc://\0/ should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): sc://\0/ should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: sc:// / should throw 
+FAIL XHR: sc:// / should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): sc:// / should throw 
+FAIL Location's href: sc:// / should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): sc:// / should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: sc://@/ should throw 
+FAIL XHR: sc://@/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): sc://@/ should throw 
+FAIL Location's href: sc://@/ should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): sc://@/ should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: sc://te@s:t@/ should throw 
+FAIL XHR: sc://te@s:t@/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): sc://te@s:t@/ should throw 
+FAIL Location's href: sc://te@s:t@/ should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): sc://te@s:t@/ should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: sc://:/ should throw 
+FAIL XHR: sc://:/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): sc://:/ should throw 
+FAIL Location's href: sc://:/ should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): sc://:/ should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: sc://:12/ should throw 
+FAIL XHR: sc://:12/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): sc://:12/ should throw 
+FAIL Location's href: sc://:12/ should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): sc://:12/ should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: sc://[/ should throw 
+FAIL XHR: sc://[/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): sc://[/ should throw 
+FAIL Location's href: sc://[/ should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): sc://[/ should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: sc://\/ should throw 
+FAIL XHR: sc://\/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): sc://\/ should throw 
+FAIL Location's href: sc://\/ should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): sc://\/ should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: sc://]/ should throw 
+FAIL XHR: sc://]/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): sc://]/ should throw 
+FAIL Location's href: sc://]/ should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): sc://]/ should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: ftp://example.com%80/ should throw 
+FAIL XHR: ftp://example.com%80/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): ftp://example.com%80/ should throw 
+FAIL Location's href: ftp://example.com%80/ should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): ftp://example.com%80/ should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: ftp://example.com%A0/ should throw 
+FAIL XHR: ftp://example.com%A0/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): ftp://example.com%A0/ should throw 
+FAIL Location's href: ftp://example.com%A0/ should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): ftp://example.com%A0/ should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: https://example.com%80/ should throw 
+FAIL XHR: https://example.com%80/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): https://example.com%80/ should throw 
+FAIL Location's href: https://example.com%80/ should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): https://example.com%80/ should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: https://example.com%A0/ should throw 
+FAIL XHR: https://example.com%A0/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): https://example.com%A0/ should throw 
+FAIL Location's href: https://example.com%A0/ should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): https://example.com%A0/ should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: https://[0::0::0] should throw 
+FAIL XHR: https://[0::0::0] should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): https://[0::0::0] should throw 
+FAIL Location's href: https://[0::0::0] should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): https://[0::0::0] should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: https://[0:.0] should throw 
+FAIL XHR: https://[0:.0] should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): https://[0:.0] should throw 
+FAIL Location's href: https://[0:.0] should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): https://[0:.0] should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: https://[0:0:] should throw 
+FAIL XHR: https://[0:0:] should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): https://[0:0:] should throw 
+FAIL Location's href: https://[0:0:] should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): https://[0:0:] should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: https://[0:1:2:3:4:5:6:7.0.0.0.1] should throw 
+FAIL XHR: https://[0:1:2:3:4:5:6:7.0.0.0.1] should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): https://[0:1:2:3:4:5:6:7.0.0.0.1] should throw 
+FAIL Location's href: https://[0:1:2:3:4:5:6:7.0.0.0.1] should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): https://[0:1:2:3:4:5:6:7.0.0.0.1] should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: https://[0:1.00.0.0.0] should throw 
+FAIL XHR: https://[0:1.00.0.0.0] should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): https://[0:1.00.0.0.0] should throw 
+FAIL Location's href: https://[0:1.00.0.0.0] should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): https://[0:1.00.0.0.0] should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: https://[0:1.290.0.0.0] should throw 
+FAIL XHR: https://[0:1.290.0.0.0] should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): https://[0:1.290.0.0.0] should throw 
+FAIL Location's href: https://[0:1.290.0.0.0] should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): https://[0:1.290.0.0.0] should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: https://[0:1.23.23] should throw 
+FAIL XHR: https://[0:1.23.23] should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): https://[0:1.23.23] should throw 
+FAIL Location's href: https://[0:1.23.23] should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): https://[0:1.23.23] should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: http://? should throw 
+FAIL XHR: http://? should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): http://? should throw 
+FAIL Location's href: http://? should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http://? should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: http://# should throw 
+FAIL XHR: http://# should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): http://# should throw 
+FAIL Location's href: http://# should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): http://# should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+PASS URL's href: non-special://[:80/ should throw 
+FAIL XHR: non-special://[:80/ should throw assert_throws: function "() => client.open("GET", test.input)" did not throw
+PASS sendBeacon(): non-special://[:80/ should throw 
+FAIL Location's href: non-special://[:80/ should throw assert_throws: function "() => self[0].location = test.input" did not throw
+FAIL window.open(): non-special://[:80/ should throw assert_throws: function "() => self.open(test.input).close()" threw object "TypeError: null is not an object (evaluating 'self.open(test.input).close')" that is not a DOMException SyntaxError: property "code" is equal to undefined, expected 12
+

Modified: trunk/Source/WebKit/ChangeLog (220506 => 220507)


--- trunk/Source/WebKit/ChangeLog	2017-08-10 04:13:08 UTC (rev 220506)
+++ trunk/Source/WebKit/ChangeLog	2017-08-10 04:19:34 UTC (rev 220507)
@@ -1,3 +1,17 @@
+2017-08-09  Chris Dumez  <cdu...@apple.com>
+
+        Disable Beacon API on WK1 DRT and WK2 when not using NETWORK_SESSION
+        https://bugs.webkit.org/show_bug.cgi?id=175401
+
+        Reviewed by Brady Eidson.
+
+        * UIProcess/API/C/WKPreferences.cpp:
+        (WKPreferencesSetBeaconAPIEnabled):
+        (WKPreferencesGetBeaconAPIEnabled):
+        * WebProcess/WebPage/WebPage.cpp:
+        (WebKit::WebPage::updatePreferences):
+        * config.h:
+
 2017-08-09  Yoshiaki Jitsukawa  <yoshiaki.jitsuk...@sony.com>
 
         [PAL] Move spi/cocoa and spi/cg directories into PAL

Modified: trunk/Source/WebKit/UIProcess/API/C/WKPreferences.cpp (220506 => 220507)


--- trunk/Source/WebKit/UIProcess/API/C/WKPreferences.cpp	2017-08-10 04:13:08 UTC (rev 220506)
+++ trunk/Source/WebKit/UIProcess/API/C/WKPreferences.cpp	2017-08-10 04:19:34 UTC (rev 220507)
@@ -826,12 +826,18 @@
 
 void WKPreferencesSetBeaconAPIEnabled(WKPreferencesRef preferencesRef, bool flag)
 {
+#if ENABLE(BEACON_API)
     toImpl(preferencesRef)->setBeaconAPIEnabled(flag);
+#endif
 }
 
 bool WKPreferencesGetBeaconAPIEnabled(WKPreferencesRef preferencesRef)
 {
+#if ENABLE(BEACON_API)
     return toImpl(preferencesRef)->beaconAPIEnabled();
+#else
+    return false;
+#endif
 }
 
 void WKPreferencesSetMediaControlsScaleWithPageZoom(WKPreferencesRef preferencesRef, bool flag)

Modified: trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp (220506 => 220507)


--- trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp	2017-08-10 04:13:08 UTC (rev 220506)
+++ trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp	2017-08-10 04:19:34 UTC (rev 220507)
@@ -3366,7 +3366,10 @@
     }
 
     settings.setSubresourceIntegrityEnabled(store.getBoolValueForKey(WebPreferencesKey::subresourceIntegrityEnabledKey()));
+
+#if ENABLE(BEACON_API)
     settings.setBeaconAPIEnabled(store.getBoolValueForKey(WebPreferencesKey::beaconAPIEnabledKey()));
+#endif
 
     platformPreferencesDidChange(store);
 

Modified: trunk/Source/WebKit/config.h (220506 => 220507)


--- trunk/Source/WebKit/config.h	2017-08-10 04:13:08 UTC (rev 220506)
+++ trunk/Source/WebKit/config.h	2017-08-10 04:19:34 UTC (rev 220507)
@@ -78,6 +78,10 @@
 #define USE_NETWORK_SESSION 1
 #endif
 
+#ifndef ENABLE_BEACON_API
+#define ENABLE_BEACON_API 1
+#endif
+
 // FIXME: We should work towards not using CredentialStorage in WebKit2 to not have problems with digest authentication.
 #ifndef USE_CREDENTIAL_STORAGE_WITH_NETWORK_SESSION
 #define USE_CREDENTIAL_STORAGE_WITH_NETWORK_SESSION 1

Modified: trunk/Source/WebKitLegacy/mac/ChangeLog (220506 => 220507)


--- trunk/Source/WebKitLegacy/mac/ChangeLog	2017-08-10 04:13:08 UTC (rev 220506)
+++ trunk/Source/WebKitLegacy/mac/ChangeLog	2017-08-10 04:19:34 UTC (rev 220507)
@@ -1,3 +1,19 @@
+2017-08-09  Chris Dumez  <cdu...@apple.com>
+
+        Disable Beacon API on WK1 DRT and WK2 when not using NETWORK_SESSION
+        https://bugs.webkit.org/show_bug.cgi?id=175401
+
+        Reviewed by Brady Eidson.
+
+        * WebView/WebPreferenceKeysPrivate.h:
+        * WebView/WebPreferences.mm:
+        (+[WebPreferences initialize]):
+        (-[WebPreferences beaconAPIEnabled]): Deleted.
+        (-[WebPreferences setBeaconAPIEnabled:]): Deleted.
+        * WebView/WebPreferencesPrivate.h:
+        * WebView/WebView.mm:
+        (-[WebView _preferencesChanged:]):
+
 2017-08-09  Yoshiaki Jitsukawa  <yoshiaki.jitsuk...@sony.com>
 
         [PAL] Move spi/cocoa and spi/cg directories into PAL

Modified: trunk/Source/WebKitLegacy/mac/WebView/WebPreferenceKeysPrivate.h (220506 => 220507)


--- trunk/Source/WebKitLegacy/mac/WebView/WebPreferenceKeysPrivate.h	2017-08-10 04:13:08 UTC (rev 220506)
+++ trunk/Source/WebKitLegacy/mac/WebView/WebPreferenceKeysPrivate.h	2017-08-10 04:19:34 UTC (rev 220507)
@@ -110,7 +110,6 @@
 #define WebKitSimpleLineLayoutDebugBordersEnabledPreferenceKey @"WebKitSimpleLineLayoutDebugBordersEnabled"
 #define WebKitShowRepaintCounterPreferenceKey @"WebKitShowRepaintCounter"
 #define WebKitWebAudioEnabledPreferenceKey @"WebKitWebAudioEnabled"
-#define WebKitBeaconAPIEnabledPreferenceKey @"WebKitBeaconAPIEnabled"
 #define WebKitWebGLEnabledPreferenceKey @"WebKitWebGLEnabled"
 #define WebKitWebGL2EnabledPreferenceKey @"WebKitWebGL2Enabled"
 #define WebKitWebGPUEnabledPreferenceKey @"WebKitWebGPUEnabled"

Modified: trunk/Source/WebKitLegacy/mac/WebView/WebPreferences.mm (220506 => 220507)


--- trunk/Source/WebKitLegacy/mac/WebView/WebPreferences.mm	2017-08-10 04:13:08 UTC (rev 220506)
+++ trunk/Source/WebKitLegacy/mac/WebView/WebPreferences.mm	2017-08-10 04:19:34 UTC (rev 220507)
@@ -625,7 +625,6 @@
         [NSNumber numberWithBool:YES], WebKitShadowDOMEnabledPreferenceKey,
         [NSNumber numberWithBool:YES], WebKitCustomElementsEnabledPreferenceKey,
         [NSNumber numberWithBool:YES], WebKitModernMediaControlsEnabledPreferenceKey,
-        [NSNumber numberWithBool:NO], WebKitBeaconAPIEnabledPreferenceKey,
 #if ENABLE(WEBGL2)
         [NSNumber numberWithBool:NO], WebKitWebGL2EnabledPreferenceKey,
 #endif
@@ -2072,16 +2071,6 @@
     [self _setBoolValue:enabled forKey:WebKitWebGL2EnabledPreferenceKey];
 }
 
-- (BOOL)beaconAPIEnabled
-{
-    return [self _boolValueForKey:WebKitBeaconAPIEnabledPreferenceKey];
-}
-
-- (void)setBeaconAPIEnabled:(BOOL)enabled
-{
-    [self _setBoolValue:enabled forKey:WebKitBeaconAPIEnabledPreferenceKey];
-}
-
 - (BOOL)forceSoftwareWebGLRendering
 {
     return [self _boolValueForKey:WebKitForceSoftwareWebGLRenderingPreferenceKey];

Modified: trunk/Source/WebKitLegacy/mac/WebView/WebPreferencesPrivate.h (220506 => 220507)


--- trunk/Source/WebKitLegacy/mac/WebView/WebPreferencesPrivate.h	2017-08-10 04:13:08 UTC (rev 220506)
+++ trunk/Source/WebKitLegacy/mac/WebView/WebPreferencesPrivate.h	2017-08-10 04:19:34 UTC (rev 220507)
@@ -266,9 +266,6 @@
 - (BOOL)webGL2Enabled;
 - (void)setWebGL2Enabled:(BOOL)enabled;
 
-- (BOOL)beaconAPIEnabled;
-- (void)setBeaconAPIEnabled:(BOOL)enabled;
-
 - (BOOL)forceSoftwareWebGLRendering;
 - (void)setForceSoftwareWebGLRendering:(BOOL)forced;
 

Modified: trunk/Source/WebKitLegacy/mac/WebView/WebView.mm (220506 => 220507)


--- trunk/Source/WebKitLegacy/mac/WebView/WebView.mm	2017-08-10 04:13:08 UTC (rev 220506)
+++ trunk/Source/WebKitLegacy/mac/WebView/WebView.mm	2017-08-10 04:19:34 UTC (rev 220507)
@@ -2982,8 +2982,6 @@
     settings.setViewportFitEnabled([preferences viewportFitEnabled]);
     settings.setConstantPropertiesEnabled([preferences constantPropertiesEnabled]);
 
-    settings.setBeaconAPIEnabled([preferences beaconAPIEnabled]);
-
 #if ENABLE(GAMEPAD)
     RuntimeEnabledFeatures::sharedFeatures().setGamepadsEnabled([preferences gamepadsEnabled]);
 #endif

Modified: trunk/Tools/ChangeLog (220506 => 220507)


--- trunk/Tools/ChangeLog	2017-08-10 04:13:08 UTC (rev 220506)
+++ trunk/Tools/ChangeLog	2017-08-10 04:19:34 UTC (rev 220507)
@@ -1,3 +1,13 @@
+2017-08-09  Chris Dumez  <cdu...@apple.com>
+
+        Disable Beacon API on WK1 DRT and WK2 when not using NETWORK_SESSION
+        https://bugs.webkit.org/show_bug.cgi?id=175401
+
+        Reviewed by Brady Eidson.
+
+        * DumpRenderTree/mac/DumpRenderTree.mm:
+        (enableExperimentalFeatures):
+
 2017-08-09  Yoshiaki Jitsukawa  <yoshiaki.jitsuk...@sony.com>
 
         [PAL] Move spi/cocoa and spi/cg directories into PAL

Modified: trunk/Tools/DumpRenderTree/mac/DumpRenderTree.mm (220506 => 220507)


--- trunk/Tools/DumpRenderTree/mac/DumpRenderTree.mm	2017-08-10 04:13:08 UTC (rev 220506)
+++ trunk/Tools/DumpRenderTree/mac/DumpRenderTree.mm	2017-08-10 04:19:34 UTC (rev 220507)
@@ -847,7 +847,6 @@
     [preferences setMediaPreloadingEnabled:YES];
     // FIXME: InputEvents
     [preferences setWebAnimationsEnabled:YES];
-    [preferences setBeaconAPIEnabled:YES];
     [preferences setWebGL2Enabled:YES];
     [preferences setWebGPUEnabled:YES];
     // FIXME: AsyncFrameScrollingEnabled
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to