Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(935)

Unified Diff: content/browser/service_worker/service_worker_browsertest.cc

Issue 702843004: Transfer serviceworker state during cross site navigations too. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/browser/service_worker/service_worker_browsertest.cc
diff --git a/content/browser/service_worker/service_worker_browsertest.cc b/content/browser/service_worker/service_worker_browsertest.cc
index b11353e5cc571f9f8cc236096a20ae3be4623b5d..ef49893734253fe81797091b7c9d74daa3c75e9e 100644
--- a/content/browser/service_worker/service_worker_browsertest.cc
+++ b/content/browser/service_worker/service_worker_browsertest.cc
@@ -29,6 +29,7 @@
#include "content/public/test/content_browser_test.h"
#include "content/public/test/content_browser_test_utils.h"
#include "content/shell/browser/shell.h"
+#include "content/shell/browser/shell_content_browser_client.h"
#include "net/test/embedded_test_server/embedded_test_server.h"
#include "net/test/embedded_test_server/http_request.h"
#include "net/test/embedded_test_server/http_response.h"
@@ -947,4 +948,31 @@ IN_PROC_BROWSER_TEST_F(ServiceWorkerBlackBoxBrowserTest, MAYBE_Registration) {
}
}
+IN_PROC_BROWSER_TEST_F(ServiceWorkerBrowserTest, CrossSiteTransfer) {
+ // The first page registers a service worker.
+ const std::string kRegisterPageUrl = "/service_worker/cross_site_xfer.html";
+ const base::string16 kOKTitle1(base::ASCIIToUTF16("OK_1"));
+ const base::string16 kFailTitle1(base::ASCIIToUTF16("FAIL_1"));
+ content::TitleWatcher title_watcher1(shell()->web_contents(), kOKTitle1);
+ title_watcher1.AlsoWaitForTitle(kFailTitle1);
+
+ NavigateToURL(shell(), embedded_test_server()->GetURL(kRegisterPageUrl));
+ ASSERT_EQ(kOKTitle1, title_watcher1.WaitAndGetTitle());
+
+ // Force process swapping behavior.
+ ShellContentBrowserClient::SetSwapProcessesForRedirect(true);
+
+ // The second pages loads via the serviceworker including a subresource.
+ const std::string kConfirmPageUrl =
+ "/service_worker/cross_site_xfer_scope/"
+ "cross_site_xfer_confirm_via_serviceworker.html";
+ const base::string16 kOKTitle2(base::ASCIIToUTF16("OK_2"));
+ const base::string16 kFailTitle2(base::ASCIIToUTF16("FAIL_2"));
+ content::TitleWatcher title_watcher2(shell()->web_contents(), kOKTitle2);
+ title_watcher2.AlsoWaitForTitle(kFailTitle2);
+
+ NavigateToURL(shell(), embedded_test_server()->GetURL(kConfirmPageUrl));
+ EXPECT_EQ(kOKTitle2, title_watcher2.WaitAndGetTitle());
+}
+
} // namespace content

Powered by Google App Engine
This is Rietveld 408576698