Chromium Code Reviews| 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..18df3009ef95572b897b5e69b4d34072061caf8e 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,26 @@ 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(bool is_parent_frame_secure = true) { |
| + // An empty host. |
| + std::unique_ptr<ServiceWorkerProviderHost> host = |
| + CreateProviderHostForWindow(render_process_id(), kMockProviderId, |
| + 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 +158,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 +172,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 +187,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 +204,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 +216,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 +228,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 +239,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 +255,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 +267,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 +287,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 +303,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 +318,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 +339,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 +354,8 @@ TEST_F(LinkHeaderServiceWorkerTest, |
| TEST_F(LinkHeaderServiceWorkerTest, |
| InstallServiceWorker_NavigationToInsecureHttpsContext) { |
| + CreateDocumentProviderHost(false); |
|
falken
2017/02/13 05:59:24
nit: slightly prefer making a CreateInsecureDocume
shimazu
2017/02/13 08:20:19
Thanks, I've added CreateInsecureDocumentProviderH
|
| 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 +383,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( |