- Revision
- 249648
- Author
- cdu...@apple.com
- Date
- 2019-09-09 10:18:25 -0700 (Mon, 09 Sep 2019)
Log Message
Stop using testRunner.setPrivateBrowsingEnabled_DEPRECATED() in http/tests/workers/service/basic-register.html
https://bugs.webkit.org/show_bug.cgi?id=201590
Reviewed by Youenn Fablet.
Tools:
Add a new API test to check that if the default session registers a service worker, the
hasServiceWorkerRegistration flag is still false in an ephemeral session.
* TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:
LayoutTests:
Split the layout test in 2 to test both the default and the ephemeral session without relying on the
testRunner.setPrivateBrowsingEnabled_DEPRECATED() hack.
* http/tests/workers/service/basic-register-expected.txt:
* http/tests/workers/service/basic-register-private-expected.txt: Copied from LayoutTests/http/tests/workers/service/basic-register-expected.txt.
* http/tests/workers/service/basic-register-private.html: Added.
* http/tests/workers/service/resources/basic-register.js:
(async.test):
Modified Paths
Added Paths
Diff
Modified: trunk/LayoutTests/ChangeLog (249647 => 249648)
--- trunk/LayoutTests/ChangeLog 2019-09-09 17:02:14 UTC (rev 249647)
+++ trunk/LayoutTests/ChangeLog 2019-09-09 17:18:25 UTC (rev 249648)
@@ -1,3 +1,19 @@
+2019-09-09 Chris Dumez <cdu...@apple.com>
+
+ Stop using testRunner.setPrivateBrowsingEnabled_DEPRECATED() in http/tests/workers/service/basic-register.html
+ https://bugs.webkit.org/show_bug.cgi?id=201590
+
+ Reviewed by Youenn Fablet.
+
+ Split the layout test in 2 to test both the default and the ephemeral session without relying on the
+ testRunner.setPrivateBrowsingEnabled_DEPRECATED() hack.
+
+ * http/tests/workers/service/basic-register-expected.txt:
+ * http/tests/workers/service/basic-register-private-expected.txt: Copied from LayoutTests/http/tests/workers/service/basic-register-expected.txt.
+ * http/tests/workers/service/basic-register-private.html: Added.
+ * http/tests/workers/service/resources/basic-register.js:
+ (async.test):
+
2019-09-09 Rob Buis <rb...@igalia.com>
[GTK][WPE] Remove attributes deprecated from MathML3
Modified: trunk/LayoutTests/http/tests/workers/service/basic-register-expected.txt (249647 => 249648)
--- trunk/LayoutTests/http/tests/workers/service/basic-register-expected.txt 2019-09-09 17:02:14 UTC (rev 249647)
+++ trunk/LayoutTests/http/tests/workers/service/basic-register-expected.txt 2019-09-09 17:18:25 UTC (rev 249648)
@@ -1,9 +1,7 @@
PASS: No service worker is initially registered for this origin
-PASS: No service worker is initially registered for this origin in private session
Registered!
PASS: registration object's scope is valid
PASS: registration object's updateViaCache is valid
PASS: A service worker is now registered for this origin
-PASS: No service worker is registered for this origin in private session
PASS: registering a script which does not exist rejected the promise
Copied: trunk/LayoutTests/http/tests/workers/service/basic-register-private-expected.txt (from rev 249647, trunk/LayoutTests/http/tests/workers/service/basic-register-expected.txt) (0 => 249648)
--- trunk/LayoutTests/http/tests/workers/service/basic-register-private-expected.txt (rev 0)
+++ trunk/LayoutTests/http/tests/workers/service/basic-register-private-expected.txt 2019-09-09 17:18:25 UTC (rev 249648)
@@ -0,0 +1,7 @@
+PASS: No service worker is initially registered for this origin
+Registered!
+PASS: registration object's scope is valid
+PASS: registration object's updateViaCache is valid
+PASS: A service worker is now registered for this origin
+PASS: registering a script which does not exist rejected the promise
+
Added: trunk/LayoutTests/http/tests/workers/service/basic-register-private.html (0 => 249648)
--- trunk/LayoutTests/http/tests/workers/service/basic-register-private.html (rev 0)
+++ trunk/LayoutTests/http/tests/workers/service/basic-register-private.html 2019-09-09 17:18:25 UTC (rev 249648)
@@ -0,0 +1,10 @@
+<!-- webkit-test-runner [ useEphemeralSession=true ] -->
+<html>
+<head>
+<script src=""
+</head>
+<body>
+
+<script src=""
+</body>
+</html>
Modified: trunk/LayoutTests/http/tests/workers/service/resources/basic-register.js (249647 => 249648)
--- trunk/LayoutTests/http/tests/workers/service/resources/basic-register.js 2019-09-09 17:02:14 UTC (rev 249647)
+++ trunk/LayoutTests/http/tests/workers/service/resources/basic-register.js 2019-09-09 17:18:25 UTC (rev 249648)
@@ -10,14 +10,6 @@
else
log("FAIL: A service worker is initially registered for this origin");
- testRunner.setPrivateBrowsingEnabled_DEPRECATED(true);
-
- if (!await internals.hasServiceWorkerRegistration(self.origin))
- log("PASS: No service worker is initially registered for this origin in private session");
- else
- log("FAIL: A service worker is initially registered for this origin in private session");
-
- testRunner.setPrivateBrowsingEnabled_DEPRECATED(false);
try {
r = await navigator.serviceWorker.register("resources/empty-worker.js", { scope: "/workers/service/resources/test", updateViaCache: "none" })
log("Registered!");
@@ -36,15 +28,6 @@
log("PASS: A service worker is now registered for this origin");
else
log("FAIL: No service worker is registered for this origin");
-
- testRunner.setPrivateBrowsingEnabled_DEPRECATED(true);
-
- if (!await internals.hasServiceWorkerRegistration("/test"))
- log("PASS: No service worker is registered for this origin in private session");
- else
- log("FAIL: A service worker is registered for this origin in private session");
-
- testRunner.setPrivateBrowsingEnabled_DEPRECATED(false);
} catch (e) {
log("Exception registering: " + e);
}
Modified: trunk/Tools/ChangeLog (249647 => 249648)
--- trunk/Tools/ChangeLog 2019-09-09 17:02:14 UTC (rev 249647)
+++ trunk/Tools/ChangeLog 2019-09-09 17:18:25 UTC (rev 249648)
@@ -1,3 +1,15 @@
+2019-09-09 Chris Dumez <cdu...@apple.com>
+
+ Stop using testRunner.setPrivateBrowsingEnabled_DEPRECATED() in http/tests/workers/service/basic-register.html
+ https://bugs.webkit.org/show_bug.cgi?id=201590
+
+ Reviewed by Youenn Fablet.
+
+ Add a new API test to check that if the default session registers a service worker, the
+ hasServiceWorkerRegistration flag is still false in an ephemeral session.
+
+ * TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:
+
2019-09-09 Jonathan Bedard <jbed...@apple.com>
results.webkit.org: mobile-sidebar-control should override button
Modified: trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm (249647 => 249648)
--- trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm 2019-09-09 17:02:14 UTC (rev 249647)
+++ trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm 2019-09-09 17:18:25 UTC (rev 249648)
@@ -1430,6 +1430,90 @@
done = false;
}
+static const char* differentSessionsUseDifferentRegistrationsMainBytes = R"SWRESOURCE(
+<script>
+try {
+ navigator.serviceWorker.register("empty-worker.js", { scope : "/test" }).then((registration) => {
+ activeWorker = registration.installing;
+ activeWorker.addEventListener('statechange', () => {
+ if (activeWorker.state === "activated")
+ webkit.messageHandlers.sw.postMessage("PASS");
+ });
+ });
+} catch (e) {
+ webkit.messageHandlers.sw.postMessage("" + e);
+}
+</script>
+)SWRESOURCE";
+
+static const char* defaultPageMainBytes = R"SWRESOURCE(
+<script>
+async function getResult()
+{
+ var result = await internals.hasServiceWorkerRegistration("/test");
+ window.webkit.messageHandlers.sw.postMessage(result ? "PASS" : "FAIL");
+}
+getResult();
+</script>
+)SWRESOURCE";
+
+static const char* privatePageMainBytes = R"SWRESOURCE(
+<script>
+async function getResult()
+{
+ var result = await internals.hasServiceWorkerRegistration("/test");
+ window.webkit.messageHandlers.sw.postMessage(result ? "FAIL" : "PASS");
+}
+getResult();
+</script>
+)SWRESOURCE";
+
+TEST(ServiceWorkers, DifferentSessionsUseDifferentRegistrations)
+{
+ [WKWebsiteDataStore _allowWebsiteDataRecordsForAllOrigins];
+
+ // Start with a clean slate data store
+ [[WKWebsiteDataStore defaultDataStore] removeDataOfTypes:[WKWebsiteDataStore allWebsiteDataTypes] modifiedSince:[NSDate distantPast] completionHandler:^() {
+ done = true;
+ }];
+ TestWebKitAPI::Util::run(&done);
+ done = false;
+
+ auto configuration = adoptNS([[WKWebViewConfiguration alloc] init]);
+ setConfigurationInjectedBundlePath(configuration.get());
+
+ auto messageHandler = adoptNS([[SWMessageHandlerForCacheStorage alloc] init]);
+ [[configuration userContentController] addScriptMessageHandler:messageHandler.get() name:@"sw"];
+
+ auto handler = adoptNS([[SWSchemes alloc] init]);
+ handler->resources.set("sw://host/main.html", ResourceInfo { @"text/html", differentSessionsUseDifferentRegistrationsMainBytes });
+ handler->resources.set("sw://host/main2.html", ResourceInfo { @"text/html", defaultPageMainBytes });
+ handler->resources.set("sw://host/empty-worker.js", ResourceInfo { @"application/_javascript_", "" });
+ handler->resources.set("sw://host/private.html", ResourceInfo { @"text/html", privatePageMainBytes });
+ [configuration setURLSchemeHandler:handler.get() forURLScheme:@"SW"];
+
+ auto defaultWebView = adoptNS([[TestWKWebView alloc] initWithFrame:NSMakeRect(0, 0, 800, 600) configuration:configuration.get()]);
+ NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"sw://host/main.html"]];
+ [defaultWebView synchronouslyLoadRequest:request];
+
+ TestWebKitAPI::Util::run(&done);
+ done = false;
+
+ request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"sw://host/main2.html"]];
+ [defaultWebView synchronouslyLoadRequest:request];
+
+ TestWebKitAPI::Util::run(&done);
+ done = false;
+
+ configuration.get().websiteDataStore = [WKWebsiteDataStore nonPersistentDataStore];
+ auto ephemeralWebView = adoptNS([[WKWebView alloc] initWithFrame:NSMakeRect(0, 0, 800, 600) configuration:configuration.get()]);
+ request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"sw://host/private.html"]];
+ [ephemeralWebView synchronouslyLoadRequest:request];
+
+ TestWebKitAPI::Util::run(&done);
+ done = false;
+}
+
static const char* regularPageGrabbingCacheStorageDirectory = R"SWRESOURCE(
<script>
async function getResult()