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