Index: content/browser/service_worker/embedded_worker_test_helper.cc |
diff --git a/content/browser/service_worker/embedded_worker_test_helper.cc b/content/browser/service_worker/embedded_worker_test_helper.cc |
index 2b9644ca92a59ec6e175f9ef020e6422283563be..d70420a970e8010fe37c27ca98796d690d6b327d 100644 |
--- a/content/browser/service_worker/embedded_worker_test_helper.cc |
+++ b/content/browser/service_worker/embedded_worker_test_helper.cc |
@@ -24,7 +24,6 @@ |
#include "content/common/service_worker/embedded_worker_start_params.h" |
#include "content/common/service_worker/fetch_event_dispatcher.mojom.h" |
#include "content/common/service_worker/service_worker_messages.h" |
-#include "content/common/service_worker/service_worker_status_code.h" |
#include "content/public/common/push_event_payload.h" |
#include "content/public/test/mock_render_process_host.h" |
#include "content/public/test/test_browser_context.h" |
@@ -61,18 +60,16 @@ class MockMessagePortMessageFilter : public MessagePortMessageFilter { |
class EmbeddedWorkerTestHelper::MockEmbeddedWorkerSetup |
: public mojom::EmbeddedWorkerSetup { |
public: |
+ explicit MockEmbeddedWorkerSetup( |
+ const base::WeakPtr<EmbeddedWorkerTestHelper>& helper) |
+ : helper_(helper) {} |
+ |
static void Create(const base::WeakPtr<EmbeddedWorkerTestHelper>& helper, |
mojom::EmbeddedWorkerSetupRequest request) { |
mojo::MakeStrongBinding(base::MakeUnique<MockEmbeddedWorkerSetup>(helper), |
std::move(request)); |
} |
- explicit MockEmbeddedWorkerSetup( |
- const base::WeakPtr<EmbeddedWorkerTestHelper>& helper) |
- : helper_(helper) {} |
- |
- ~MockEmbeddedWorkerSetup() override {} |
- |
void ExchangeInterfaceProviders( |
int32_t thread_id, |
shell::mojom::InterfaceProviderRequest request, |
@@ -109,10 +106,23 @@ void EmbeddedWorkerTestHelper::MockEmbeddedWorkerInstanceClient::StartWorker( |
base::ThreadTaskRunnerHandle::Get()->PostTask( |
FROM_HERE, |
- base::Bind(&EmbeddedWorkerTestHelper::OnStartWorker, |
- helper_->weak_factory_.GetWeakPtr(), params.embedded_worker_id, |
- params.service_worker_version_id, params.scope, |
- params.script_url, params.pause_after_download)); |
+ base::Bind(&EmbeddedWorkerTestHelper::OnStartWorker, helper_->AsWeakPtr(), |
+ params.embedded_worker_id, params.service_worker_version_id, |
+ params.scope, params.script_url, params.pause_after_download)); |
+} |
+ |
+void EmbeddedWorkerTestHelper::MockEmbeddedWorkerInstanceClient::StopWorker( |
+ const StopWorkerCallback& callback) { |
+ if (!helper_) |
+ return; |
+ |
+ ASSERT_TRUE(embedded_worker_id_); |
+ EmbeddedWorkerInstance* worker = |
+ helper_->registry()->GetWorker(embedded_worker_id_.value()); |
+ ASSERT_TRUE(worker != NULL); |
+ EXPECT_EQ(EmbeddedWorkerStatus::STOPPING, worker->status()); |
+ |
+ callback.Run(); |
} |
// static |
@@ -234,6 +244,11 @@ bool EmbeddedWorkerTestHelper::OnMessageReceived(const IPC::Message& message) { |
return handled; |
} |
+void EmbeddedWorkerTestHelper::RegisterMockInstanceClient( |
+ std::unique_ptr<MockEmbeddedWorkerInstanceClient> client) { |
+ mock_instance_clients_.push_back(std::move(client)); |
+} |
+ |
ServiceWorkerContextCore* EmbeddedWorkerTestHelper::context() { |
return wrapper_->context(); |
} |
@@ -420,10 +435,9 @@ void EmbeddedWorkerTestHelper::OnStartWorkerStub( |
EXPECT_EQ(EmbeddedWorkerStatus::STARTING, worker->status()); |
base::ThreadTaskRunnerHandle::Get()->PostTask( |
FROM_HERE, |
- base::Bind(&EmbeddedWorkerTestHelper::OnStartWorker, |
- weak_factory_.GetWeakPtr(), params.embedded_worker_id, |
- params.service_worker_version_id, params.scope, |
- params.script_url, params.pause_after_download)); |
+ base::Bind(&EmbeddedWorkerTestHelper::OnStartWorker, AsWeakPtr(), |
+ params.embedded_worker_id, params.service_worker_version_id, |
+ params.scope, params.script_url, params.pause_after_download)); |
} |
void EmbeddedWorkerTestHelper::OnResumeAfterDownloadStub( |
@@ -432,7 +446,7 @@ void EmbeddedWorkerTestHelper::OnResumeAfterDownloadStub( |
ASSERT_TRUE(worker); |
base::ThreadTaskRunnerHandle::Get()->PostTask( |
FROM_HERE, base::Bind(&EmbeddedWorkerTestHelper::OnResumeAfterDownload, |
- weak_factory_.GetWeakPtr(), embedded_worker_id)); |
+ AsWeakPtr(), embedded_worker_id)); |
} |
void EmbeddedWorkerTestHelper::OnStopWorkerStub(int embedded_worker_id) { |
@@ -440,7 +454,7 @@ void EmbeddedWorkerTestHelper::OnStopWorkerStub(int embedded_worker_id) { |
ASSERT_TRUE(worker != NULL); |
base::ThreadTaskRunnerHandle::Get()->PostTask( |
FROM_HERE, base::Bind(&EmbeddedWorkerTestHelper::OnStopWorker, |
- weak_factory_.GetWeakPtr(), embedded_worker_id)); |
+ AsWeakPtr(), embedded_worker_id)); |
} |
void EmbeddedWorkerTestHelper::OnMessageToWorkerStub( |
@@ -454,30 +468,30 @@ void EmbeddedWorkerTestHelper::OnMessageToWorkerStub( |
FROM_HERE, |
base::Bind( |
base::IgnoreResult(&EmbeddedWorkerTestHelper::OnMessageToWorker), |
- weak_factory_.GetWeakPtr(), thread_id, embedded_worker_id, message)); |
+ AsWeakPtr(), thread_id, embedded_worker_id, message)); |
} |
void EmbeddedWorkerTestHelper::OnActivateEventStub(int request_id) { |
base::ThreadTaskRunnerHandle::Get()->PostTask( |
- FROM_HERE, base::Bind(&EmbeddedWorkerTestHelper::OnActivateEvent, |
- weak_factory_.GetWeakPtr(), |
- current_embedded_worker_id_, request_id)); |
+ FROM_HERE, |
+ base::Bind(&EmbeddedWorkerTestHelper::OnActivateEvent, AsWeakPtr(), |
+ current_embedded_worker_id_, request_id)); |
} |
void EmbeddedWorkerTestHelper::OnExtendableMessageEventStub( |
int request_id, |
const ServiceWorkerMsg_ExtendableMessageEvent_Params& params) { |
base::ThreadTaskRunnerHandle::Get()->PostTask( |
- FROM_HERE, base::Bind(&EmbeddedWorkerTestHelper::OnExtendableMessageEvent, |
- weak_factory_.GetWeakPtr(), |
- current_embedded_worker_id_, request_id)); |
+ FROM_HERE, |
+ base::Bind(&EmbeddedWorkerTestHelper::OnExtendableMessageEvent, |
+ AsWeakPtr(), current_embedded_worker_id_, request_id)); |
} |
void EmbeddedWorkerTestHelper::OnInstallEventStub(int request_id) { |
base::ThreadTaskRunnerHandle::Get()->PostTask( |
- FROM_HERE, base::Bind(&EmbeddedWorkerTestHelper::OnInstallEvent, |
- weak_factory_.GetWeakPtr(), |
- current_embedded_worker_id_, request_id)); |
+ FROM_HERE, |
+ base::Bind(&EmbeddedWorkerTestHelper::OnInstallEvent, AsWeakPtr(), |
+ current_embedded_worker_id_, request_id)); |
} |
void EmbeddedWorkerTestHelper::OnFetchEventStub( |
@@ -486,18 +500,17 @@ void EmbeddedWorkerTestHelper::OnFetchEventStub( |
const ServiceWorkerFetchRequest& request, |
const FetchCallback& callback) { |
base::ThreadTaskRunnerHandle::Get()->PostTask( |
- FROM_HERE, base::Bind(&EmbeddedWorkerTestHelper::OnFetchEvent, |
- weak_factory_.GetWeakPtr(), |
- thread_id_embedded_worker_id_map_[thread_id], |
- response_id, request, callback)); |
+ FROM_HERE, |
+ base::Bind(&EmbeddedWorkerTestHelper::OnFetchEvent, AsWeakPtr(), |
+ thread_id_embedded_worker_id_map_[thread_id], response_id, |
+ request, callback)); |
} |
void EmbeddedWorkerTestHelper::OnPushEventStub( |
int request_id, |
const PushEventPayload& payload) { |
base::ThreadTaskRunnerHandle::Get()->PostTask( |
- FROM_HERE, base::Bind(&EmbeddedWorkerTestHelper::OnPushEvent, |
- weak_factory_.GetWeakPtr(), |
+ FROM_HERE, base::Bind(&EmbeddedWorkerTestHelper::OnPushEvent, AsWeakPtr(), |
current_embedded_worker_id_, request_id, payload)); |
} |
@@ -536,9 +549,9 @@ EmbeddedWorkerTestHelper::CreateInterfaceRegistry(MockRenderProcessHost* rph) { |
std::unique_ptr<shell::InterfaceRegistry> registry( |
new shell::InterfaceRegistry); |
registry->AddInterface( |
- base::Bind(&MockEmbeddedWorkerSetup::Create, weak_factory_.GetWeakPtr())); |
- registry->AddInterface(base::Bind(&MockEmbeddedWorkerInstanceClient::Bind, |
- weak_factory_.GetWeakPtr())); |
+ base::Bind(&MockEmbeddedWorkerSetup::Create, AsWeakPtr())); |
+ registry->AddInterface( |
+ base::Bind(&MockEmbeddedWorkerInstanceClient::Bind, AsWeakPtr())); |
shell::mojom::InterfaceProviderPtr interfaces; |
registry->Bind(mojo::GetProxy(&interfaces)); |