OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "content/browser/service_worker/link_header_support.h" | 5 #include "content/browser/service_worker/link_header_support.h" |
6 | 6 |
7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
8 #include "base/logging.h" | 8 #include "base/logging.h" |
9 #include "base/run_loop.h" | 9 #include "base/run_loop.h" |
10 #include "content/browser/loader/resource_request_info_impl.h" | 10 #include "content/browser/loader/resource_request_info_impl.h" |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
60 resource_context_(&request_context_) { | 60 resource_context_(&request_context_) { |
61 base::CommandLine::ForCurrentProcess()->AppendSwitch( | 61 base::CommandLine::ForCurrentProcess()->AppendSwitch( |
62 switches::kEnableExperimentalWebPlatformFeatures); | 62 switches::kEnableExperimentalWebPlatformFeatures); |
63 } | 63 } |
64 ~LinkHeaderServiceWorkerTest() override {} | 64 ~LinkHeaderServiceWorkerTest() override {} |
65 | 65 |
66 void SetUp() override { | 66 void SetUp() override { |
67 helper_.reset(new EmbeddedWorkerTestHelper(base::FilePath())); | 67 helper_.reset(new EmbeddedWorkerTestHelper(base::FilePath())); |
68 | 68 |
69 // An empty host. | 69 // An empty host. |
70 std::unique_ptr<ServiceWorkerProviderHost> host( | 70 std::unique_ptr<ServiceWorkerProviderHost> host = |
71 new ServiceWorkerProviderHost( | 71 ServiceWorkerProviderHost::CreateForTesting( |
72 render_process_id(), MSG_ROUTING_NONE, kMockProviderId, | 72 render_process_id(), kMockProviderId, |
73 SERVICE_WORKER_PROVIDER_FOR_WINDOW, | 73 SERVICE_WORKER_PROVIDER_FOR_WINDOW, context()->AsWeakPtr()); |
74 ServiceWorkerProviderHost::FrameSecurityLevel::UNINITIALIZED, | |
75 context()->AsWeakPtr(), nullptr)); | |
76 provider_host_ = host->AsWeakPtr(); | 74 provider_host_ = host->AsWeakPtr(); |
77 context()->AddProviderHost(std::move(host)); | 75 context()->AddProviderHost(std::move(host)); |
78 } | 76 } |
79 | 77 |
80 void TearDown() override { helper_.reset(); } | 78 void TearDown() override { helper_.reset(); } |
81 | 79 |
82 ServiceWorkerContextCore* context() { return helper_->context(); } | 80 ServiceWorkerContextCore* context() { return helper_->context(); } |
83 ServiceWorkerContextWrapper* context_wrapper() { | 81 ServiceWorkerContextWrapper* context_wrapper() { |
84 return helper_->context_wrapper(); | 82 return helper_->context_wrapper(); |
85 } | 83 } |
86 ServiceWorkerProviderHost* provider_host() { return provider_host_.get(); } | 84 ServiceWorkerProviderHost* provider_host() { return provider_host_.get(); } |
87 int render_process_id() const { return helper_->mock_render_process_id(); } | 85 int render_process_id() const { return helper_->mock_render_process_id(); } |
88 | 86 |
89 void CreateServiceWorkerProviderHost() { | 87 void CreateServiceWorkerProviderHost() { |
90 std::unique_ptr<ServiceWorkerProviderHost> host( | 88 std::unique_ptr<ServiceWorkerProviderHost> host = |
91 new ServiceWorkerProviderHost( | 89 ServiceWorkerProviderHost::CreateForTesting( |
92 render_process_id(), MSG_ROUTING_NONE, kMockProviderId, | 90 render_process_id(), kMockProviderId, |
93 SERVICE_WORKER_PROVIDER_FOR_CONTROLLER, | 91 SERVICE_WORKER_PROVIDER_FOR_CONTROLLER, context()->AsWeakPtr()); |
94 ServiceWorkerProviderHost::FrameSecurityLevel::UNINITIALIZED, | |
95 context()->AsWeakPtr(), nullptr)); | |
96 provider_host_ = host->AsWeakPtr(); | 92 provider_host_ = host->AsWeakPtr(); |
97 context()->RemoveProviderHost(host->process_id(), host->provider_id()); | 93 context()->RemoveProviderHost(host->process_id(), host->provider_id()); |
98 context()->AddProviderHost(std::move(host)); | 94 context()->AddProviderHost(std::move(host)); |
99 | 95 |
100 scoped_refptr<ServiceWorkerRegistration> registration = | 96 scoped_refptr<ServiceWorkerRegistration> registration = |
101 new ServiceWorkerRegistration(GURL("https://host/scope"), 1L, | 97 new ServiceWorkerRegistration(GURL("https://host/scope"), 1L, |
102 context()->AsWeakPtr()); | 98 context()->AsWeakPtr()); |
103 scoped_refptr<ServiceWorkerVersion> version = new ServiceWorkerVersion( | 99 scoped_refptr<ServiceWorkerVersion> version = new ServiceWorkerVersion( |
104 registration.get(), GURL("https://host/script.js"), 1L, | 100 registration.get(), GURL("https://host/script.js"), 1L, |
105 context()->AsWeakPtr()); | 101 context()->AsWeakPtr()); |
(...skipping 258 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
364 base::RunLoop().RunUntilIdle(); | 360 base::RunLoop().RunUntilIdle(); |
365 | 361 |
366 std::vector<ServiceWorkerRegistrationInfo> registrations = GetRegistrations(); | 362 std::vector<ServiceWorkerRegistrationInfo> registrations = GetRegistrations(); |
367 ASSERT_EQ(0u, registrations.size()); | 363 ASSERT_EQ(0u, registrations.size()); |
368 } | 364 } |
369 | 365 |
370 TEST_F(LinkHeaderServiceWorkerTest, | 366 TEST_F(LinkHeaderServiceWorkerTest, |
371 InstallServiceWorker_FromWorkerWithControllees) { | 367 InstallServiceWorker_FromWorkerWithControllees) { |
372 CreateServiceWorkerProviderHost(); | 368 CreateServiceWorkerProviderHost(); |
373 | 369 |
374 std::unique_ptr<ServiceWorkerProviderHost> controllee( | 370 std::unique_ptr<ServiceWorkerProviderHost> controllee = |
375 new ServiceWorkerProviderHost( | 371 ServiceWorkerProviderHost::CreateForTesting( |
376 render_process_id(), MSG_ROUTING_NONE, kMockProviderId, | 372 render_process_id(), kMockProviderId, |
377 SERVICE_WORKER_PROVIDER_FOR_WINDOW, | 373 SERVICE_WORKER_PROVIDER_FOR_WINDOW, context()->AsWeakPtr()); |
378 ServiceWorkerProviderHost::FrameSecurityLevel::UNINITIALIZED, | |
379 context()->AsWeakPtr(), nullptr)); | |
380 provider_host()->running_hosted_version()->AddControllee(controllee.get()); | 374 provider_host()->running_hosted_version()->AddControllee(controllee.get()); |
381 | 375 |
382 ProcessLinkHeaderForRequest( | 376 ProcessLinkHeaderForRequest( |
383 CreateSubresourceRequest(GURL("https://example.com/foo/bar/")).get(), | 377 CreateSubresourceRequest(GURL("https://example.com/foo/bar/")).get(), |
384 "<../foo.js>; rel=serviceworker", context_wrapper()); | 378 "<../foo.js>; rel=serviceworker", context_wrapper()); |
385 base::RunLoop().RunUntilIdle(); | 379 base::RunLoop().RunUntilIdle(); |
386 | 380 |
387 std::vector<ServiceWorkerRegistrationInfo> registrations = GetRegistrations(); | 381 std::vector<ServiceWorkerRegistrationInfo> registrations = GetRegistrations(); |
388 ASSERT_EQ(1u, registrations.size()); | 382 ASSERT_EQ(1u, registrations.size()); |
389 } | 383 } |
390 | 384 |
391 } // namespace content | 385 } // namespace content |
OLD | NEW |