Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(72)

Unified Diff: content/browser/service_worker/link_header_support_unittest.cc

Issue 2638313002: Manage ServiceWorkerDispatcherHost in ServiceWorkerContextCore (Closed)
Patch Set: Rebase Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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(

Powered by Google App Engine
This is Rietveld 408576698