Title: [249648] trunk
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()
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to