| 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
|
|
|