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

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

Issue 2779763004: Create ServiceWorkerProviderHost before starting worker (Closed)
Patch Set: Rebased Created 3 years, 7 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/service_worker_version_unittest.cc
diff --git a/content/browser/service_worker/service_worker_version_unittest.cc b/content/browser/service_worker/service_worker_version_unittest.cc
index 5dc91dc05d06ae48c4f1990595461bde9776f237..e2df36af77c4d8cbec5638fd1b506b772bf86a7c 100644
--- a/content/browser/service_worker/service_worker_version_unittest.cc
+++ b/content/browser/service_worker/service_worker_version_unittest.cc
@@ -18,6 +18,7 @@
#include "content/browser/service_worker/embedded_worker_status.h"
#include "content/browser/service_worker/embedded_worker_test_helper.h"
#include "content/browser/service_worker/service_worker_context_core.h"
+#include "content/browser/service_worker/service_worker_dispatcher_host.h"
#include "content/browser/service_worker/service_worker_registration.h"
#include "content/browser/service_worker/service_worker_test_utils.h"
#include "content/common/service_worker/service_worker_utils.h"
@@ -269,14 +270,15 @@ class MessageReceiverDisallowStart : public MessageReceiver {
enum class StartMode { STALL, FAIL, SUCCEED };
- void OnStartWorker(int embedded_worker_id,
- int64_t service_worker_version_id,
- const GURL& scope,
- const GURL& script_url,
- bool pause_after_download,
- mojom::ServiceWorkerEventDispatcherRequest request,
- mojom::EmbeddedWorkerInstanceHostAssociatedPtrInfo
- instance_host) override {
+ void OnStartWorker(
+ int embedded_worker_id,
+ int64_t service_worker_version_id,
+ const GURL& scope,
+ const GURL& script_url,
+ bool pause_after_download,
+ mojom::ServiceWorkerEventDispatcherRequest request,
+ mojom::EmbeddedWorkerInstanceHostAssociatedPtrInfo instance_host,
+ mojom::ServiceWorkerProviderClientInfoPtr provider_client_info) override {
switch (mode_) {
case StartMode::STALL:
// Prepare for OnStopWorker().
@@ -292,7 +294,8 @@ class MessageReceiverDisallowStart : public MessageReceiver {
case StartMode::SUCCEED:
MessageReceiver::OnStartWorker(
embedded_worker_id, service_worker_version_id, scope, script_url,
- pause_after_download, std::move(request), std::move(instance_host));
+ pause_after_download, std::move(request), std::move(instance_host),
+ std::move(provider_client_info));
break;
}
current_mock_instance_index_++;
@@ -697,6 +700,11 @@ TEST_F(ServiceWorkerVersionTest, StoppingBeforeDestruct) {
EXPECT_EQ(EmbeddedWorkerStatus::RUNNING, version_->running_status());
EXPECT_EQ(EmbeddedWorkerStatus::RUNNING, listener.last_status);
+ // Release the reference to |version_|.
+ // Hosting provider has the reference to the |version_|.
+ helper_->context()->RemoveProviderHost(
+ version_->running_controller()->process_id(),
+ version_->running_controller()->provider_id());
version_ = nullptr;
EXPECT_EQ(EmbeddedWorkerStatus::STOPPING, listener.last_status);
}
@@ -1103,9 +1111,10 @@ TEST_F(ServiceWorkerFailToStartTest, RendererCrash) {
EXPECT_EQ(SERVICE_WORKER_ERROR_NETWORK, status);
EXPECT_EQ(EmbeddedWorkerStatus::STARTING, version_->running_status());
- // Simulate renderer crash: do what
+ // Simulate renderer crash: remove DispatcherHost like what
// ServiceWorkerDispatcherHost::OnFilterRemoved does.
- helper_->context()->RemoveDispatcherHost(helper_->mock_render_process_id());
+ helper_->RegisterMockDispatcherHost(helper_->mock_render_process_id(),
+ nullptr);
base::RunLoop().RunUntilIdle();
// Callback completed.
@@ -1313,9 +1322,10 @@ TEST_F(ServiceWorkerVersionTest, RendererCrashDuringEvent) {
// Callback has not completed yet.
EXPECT_EQ(SERVICE_WORKER_OK, status);
- // Simulate renderer crash: do what
+ // Simulate renderer crash: remove DispatcherHost like what
// ServiceWorkerDispatcherHost::OnFilterRemoved does.
- helper_->context()->RemoveDispatcherHost(helper_->mock_render_process_id());
+ helper_->RegisterMockDispatcherHost(helper_->mock_render_process_id(),
+ nullptr);
base::RunLoop().RunUntilIdle();
// Callback completed.

Powered by Google App Engine
This is Rietveld 408576698