Index: content/browser/service_worker/link_header_support_unittest.cc |
diff --git a/content/browser/service_worker/link_header_support_unittest.cc b/content/browser/service_worker/link_header_support_unittest.cc |
index ba66b30d0f34a6176ea9e0f5e6883965cfb2597b..869ea41882d6c83b9aaf3b7bb1f55c94b211451c 100644 |
--- a/content/browser/service_worker/link_header_support_unittest.cc |
+++ b/content/browser/service_worker/link_header_support_unittest.cc |
@@ -65,16 +65,6 @@ class LinkHeaderServiceWorkerTest : public ::testing::Test { |
void SetUp() override { |
helper_.reset(new EmbeddedWorkerTestHelper(base::FilePath())); |
- |
- // An empty host. |
- std::unique_ptr<ServiceWorkerProviderHost> host( |
- new ServiceWorkerProviderHost( |
- render_process_id(), MSG_ROUTING_NONE, kMockProviderId, |
- SERVICE_WORKER_PROVIDER_FOR_WINDOW, |
- ServiceWorkerProviderHost::FrameSecurityLevel::UNINITIALIZED, |
- context()->AsWeakPtr(), nullptr)); |
- provider_host_ = host->AsWeakPtr(); |
- context()->AddProviderHost(std::move(host)); |
} |
void TearDown() override { helper_.reset(); } |
@@ -86,15 +76,38 @@ class LinkHeaderServiceWorkerTest : public ::testing::Test { |
ServiceWorkerProviderHost* provider_host() { return provider_host_.get(); } |
int render_process_id() const { return helper_->mock_render_process_id(); } |
+ void CreateDocumentProviderHost() { |
+ // An empty host. |
+ std::unique_ptr<ServiceWorkerProviderHost> host = |
+ CreateProviderHostForWindow(render_process_id(), kMockProviderId, |
+ true /* is_parent_frame_secure */, |
+ context()->AsWeakPtr()); |
+ provider_host_ = host->AsWeakPtr(); |
+ EXPECT_FALSE( |
+ context()->GetProviderHost(host->process_id(), host->provider_id())); |
+ context()->AddProviderHost(std::move(host)); |
+ } |
+ |
+ void CreateInsecureDocumentProviderHost() { |
+ // An empty host. |
+ std::unique_ptr<ServiceWorkerProviderHost> host = |
+ CreateProviderHostForWindow(render_process_id(), kMockProviderId, |
+ false /* is_parent_frame_secure */, |
+ context()->AsWeakPtr()); |
+ provider_host_ = host->AsWeakPtr(); |
+ EXPECT_FALSE( |
+ context()->GetProviderHost(host->process_id(), host->provider_id())); |
+ context()->AddProviderHost(std::move(host)); |
+ } |
+ |
void CreateServiceWorkerProviderHost() { |
- std::unique_ptr<ServiceWorkerProviderHost> host( |
- new ServiceWorkerProviderHost( |
- render_process_id(), MSG_ROUTING_NONE, kMockProviderId, |
- SERVICE_WORKER_PROVIDER_FOR_CONTROLLER, |
- ServiceWorkerProviderHost::FrameSecurityLevel::UNINITIALIZED, |
- context()->AsWeakPtr(), nullptr)); |
+ std::unique_ptr<ServiceWorkerProviderHost> host = |
+ CreateProviderHostForServiceWorkerContext( |
+ render_process_id(), kMockProviderId, |
+ true /* is_parent_frame_secure */, context()->AsWeakPtr()); |
provider_host_ = host->AsWeakPtr(); |
- context()->RemoveProviderHost(host->process_id(), host->provider_id()); |
+ EXPECT_FALSE( |
+ context()->GetProviderHost(host->process_id(), host->provider_id())); |
context()->AddProviderHost(std::move(host)); |
scoped_refptr<ServiceWorkerRegistration> registration = |
@@ -157,6 +170,7 @@ class LinkHeaderServiceWorkerTest : public ::testing::Test { |
}; |
TEST_F(LinkHeaderServiceWorkerTest, InstallServiceWorker_Basic) { |
+ CreateDocumentProviderHost(); |
ProcessLinkHeaderForRequest( |
CreateSubresourceRequest(GURL("https://example.com/foo/bar/")).get(), |
"<../foo.js>; rel=serviceworker", context_wrapper()); |
@@ -170,6 +184,7 @@ TEST_F(LinkHeaderServiceWorkerTest, InstallServiceWorker_Basic) { |
} |
TEST_F(LinkHeaderServiceWorkerTest, InstallServiceWorker_ScopeWithFragment) { |
+ CreateDocumentProviderHost(); |
ProcessLinkHeaderForRequest( |
CreateSubresourceRequest(GURL("https://example.com/foo/bar/")).get(), |
"<../bar.js>; rel=serviceworker; scope=\"scope#ref\"", context_wrapper()); |
@@ -184,6 +199,7 @@ TEST_F(LinkHeaderServiceWorkerTest, InstallServiceWorker_ScopeWithFragment) { |
} |
TEST_F(LinkHeaderServiceWorkerTest, InstallServiceWorker_ScopeAbsoluteUrl) { |
+ CreateDocumentProviderHost(); |
ProcessLinkHeaderForRequest( |
CreateSubresourceRequest(GURL("https://example.com/foo/bar/")).get(), |
"<bar.js>; rel=serviceworker; " |
@@ -200,6 +216,7 @@ TEST_F(LinkHeaderServiceWorkerTest, InstallServiceWorker_ScopeAbsoluteUrl) { |
} |
TEST_F(LinkHeaderServiceWorkerTest, InstallServiceWorker_ScopeDifferentOrigin) { |
+ CreateDocumentProviderHost(); |
ProcessLinkHeaderForRequest( |
CreateSubresourceRequest(GURL("https://example.com/foobar/")).get(), |
"<bar.js>; rel=serviceworker; scope=\"https://google.com/scope\"", |
@@ -211,6 +228,7 @@ TEST_F(LinkHeaderServiceWorkerTest, InstallServiceWorker_ScopeDifferentOrigin) { |
} |
TEST_F(LinkHeaderServiceWorkerTest, InstallServiceWorker_ScopeUrlEncodedSlash) { |
+ CreateDocumentProviderHost(); |
ProcessLinkHeaderForRequest( |
CreateSubresourceRequest(GURL("https://example.com/foobar/")).get(), |
"<bar.js>; rel=serviceworker; scope=\"./foo%2Fbar\"", context_wrapper()); |
@@ -222,6 +240,7 @@ TEST_F(LinkHeaderServiceWorkerTest, InstallServiceWorker_ScopeUrlEncodedSlash) { |
TEST_F(LinkHeaderServiceWorkerTest, |
InstallServiceWorker_ScriptUrlEncodedSlash) { |
+ CreateDocumentProviderHost(); |
ProcessLinkHeaderForRequest( |
CreateSubresourceRequest(GURL("https://example.com/foobar/")).get(), |
"<foo%2Fbar.js>; rel=serviceworker", context_wrapper()); |
@@ -232,6 +251,7 @@ TEST_F(LinkHeaderServiceWorkerTest, |
} |
TEST_F(LinkHeaderServiceWorkerTest, InstallServiceWorker_ScriptAbsoluteUrl) { |
+ CreateDocumentProviderHost(); |
ProcessLinkHeaderForRequest( |
CreateSubresourceRequest(GURL("https://example.com/foobar/")).get(), |
"<https://example.com/bar.js>; rel=serviceworker; scope=foo", |
@@ -247,6 +267,7 @@ TEST_F(LinkHeaderServiceWorkerTest, InstallServiceWorker_ScriptAbsoluteUrl) { |
TEST_F(LinkHeaderServiceWorkerTest, |
InstallServiceWorker_ScriptDifferentOrigin) { |
+ CreateDocumentProviderHost(); |
ProcessLinkHeaderForRequest( |
CreateSubresourceRequest(GURL("https://example.com/foobar/")).get(), |
"<https://google.com/bar.js>; rel=serviceworker; scope=foo", |
@@ -258,6 +279,7 @@ TEST_F(LinkHeaderServiceWorkerTest, |
} |
TEST_F(LinkHeaderServiceWorkerTest, InstallServiceWorker_MultipleWorkers) { |
+ CreateDocumentProviderHost(); |
ProcessLinkHeaderForRequest( |
CreateSubresourceRequest(GURL("https://example.com/foobar/")).get(), |
"<bar.js>; rel=serviceworker; scope=foo, <baz.js>; " |
@@ -277,6 +299,7 @@ TEST_F(LinkHeaderServiceWorkerTest, InstallServiceWorker_MultipleWorkers) { |
TEST_F(LinkHeaderServiceWorkerTest, |
InstallServiceWorker_ValidAndInvalidValues) { |
+ CreateDocumentProviderHost(); |
ProcessLinkHeaderForRequest( |
CreateSubresourceRequest(GURL("https://example.com/foobar/")).get(), |
"<https://google.com/bar.js>; rel=serviceworker; scope=foo, <baz.js>; " |
@@ -292,6 +315,7 @@ TEST_F(LinkHeaderServiceWorkerTest, |
} |
TEST_F(LinkHeaderServiceWorkerTest, InstallServiceWorker_InsecureContext) { |
+ CreateDocumentProviderHost(); |
std::unique_ptr<net::URLRequest> request = |
CreateSubresourceRequest(GURL("https://example.com/foo/bar/")); |
ResourceRequestInfoImpl::ForRequest(request.get()) |
@@ -306,13 +330,13 @@ TEST_F(LinkHeaderServiceWorkerTest, InstallServiceWorker_InsecureContext) { |
TEST_F(LinkHeaderServiceWorkerTest, |
InstallServiceWorker_NavigationFromInsecureContextToSecureContext) { |
+ CreateDocumentProviderHost(); |
std::unique_ptr<net::URLRequest> request = CreateRequest( |
GURL("https://example.com/foo/bar/"), RESOURCE_TYPE_MAIN_FRAME); |
ResourceRequestInfoImpl::ForRequest(request.get()) |
->set_initiated_in_secure_context_for_testing(false); |
provider_host()->SetDocumentUrl(GURL("https://example.com/foo/bar/")); |
- provider_host()->set_parent_frame_secure(true); |
ProcessLinkHeaderForRequest(request.get(), "<../foo.js>; rel=serviceworker", |
context_wrapper()); |
@@ -327,8 +351,8 @@ TEST_F(LinkHeaderServiceWorkerTest, |
TEST_F(LinkHeaderServiceWorkerTest, |
InstallServiceWorker_NavigationToInsecureContext) { |
+ CreateDocumentProviderHost(); |
provider_host()->SetDocumentUrl(GURL("http://example.com/foo/bar/")); |
- provider_host()->set_parent_frame_secure(true); |
ProcessLinkHeaderForRequest(CreateRequest(GURL("http://example.com/foo/bar/"), |
RESOURCE_TYPE_MAIN_FRAME) |
.get(), |
@@ -342,8 +366,8 @@ TEST_F(LinkHeaderServiceWorkerTest, |
TEST_F(LinkHeaderServiceWorkerTest, |
InstallServiceWorker_NavigationToInsecureHttpsContext) { |
+ CreateInsecureDocumentProviderHost(); |
provider_host()->SetDocumentUrl(GURL("https://example.com/foo/bar/")); |
- provider_host()->set_parent_frame_secure(false); |
ProcessLinkHeaderForRequest( |
CreateRequest(GURL("https://example.com/foo/bar/"), |
RESOURCE_TYPE_MAIN_FRAME) |
@@ -371,12 +395,10 @@ TEST_F(LinkHeaderServiceWorkerTest, |
InstallServiceWorker_FromWorkerWithControllees) { |
CreateServiceWorkerProviderHost(); |
- std::unique_ptr<ServiceWorkerProviderHost> controllee( |
- new ServiceWorkerProviderHost( |
- render_process_id(), MSG_ROUTING_NONE, kMockProviderId, |
- SERVICE_WORKER_PROVIDER_FOR_WINDOW, |
- ServiceWorkerProviderHost::FrameSecurityLevel::UNINITIALIZED, |
- context()->AsWeakPtr(), nullptr)); |
+ std::unique_ptr<ServiceWorkerProviderHost> controllee = |
+ CreateProviderHostForWindow(render_process_id(), kMockProviderId, |
+ true /* is_parent_frame_secure */, |
+ context()->AsWeakPtr()); |
provider_host()->running_hosted_version()->AddControllee(controllee.get()); |
ProcessLinkHeaderForRequest( |