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

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

Issue 2628553002: ServiceWorker: OnSimpleEventFinished could be called after timed out (Closed)
Patch Set: Fix comments Created 3 years, 11 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/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 b2f802133e3304c61d69a9c05e8eebff7d25e177..93abef456f330cac6d41d9a786eb8b32b5f68e41 100644
--- a/content/browser/service_worker/embedded_worker_test_helper.cc
+++ b/content/browser/service_worker/embedded_worker_test_helper.cc
@@ -61,26 +61,17 @@ 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));
+ // TODO(shimazu): Remove this mock after EmbeddedWorkerSetup is removed.
+ NOTREACHED();
}
void AttachServiceWorkerEventDispatcher(
int32_t thread_id,
mojom::ServiceWorkerEventDispatcherRequest request) override {
- if (!helper_)
- return;
- helper_->OnSetupMojo(thread_id, std::move(request));
+ NOTREACHED();
}
-
- private:
- base::WeakPtr<EmbeddedWorkerTestHelper> helper_;
};
EmbeddedWorkerTestHelper::MockEmbeddedWorkerInstanceClient::
@@ -101,18 +92,10 @@ void EmbeddedWorkerTestHelper::MockEmbeddedWorkerInstanceClient::StartWorker(
EmbeddedWorkerInstance* worker =
helper_->registry()->GetWorker(params.embedded_worker_id);
- ASSERT_TRUE(worker != NULL);
+ ASSERT_TRUE(worker);
EXPECT_EQ(EmbeddedWorkerStatus::STARTING, worker->status());
- base::ThreadTaskRunnerHandle::Get()->PostTask(
- FROM_HERE,
- base::Bind(&EmbeddedWorkerTestHelper::OnStartWorker, helper_->AsWeakPtr(),
- params.embedded_worker_id, params.service_worker_version_id,
- params.scope, params.script_url, params.pause_after_download));
- base::ThreadTaskRunnerHandle::Get()->PostTask(
- FROM_HERE,
- base::Bind(&EmbeddedWorkerTestHelper::OnSetupMojo, helper_->AsWeakPtr(),
- worker->thread_id(), base::Passed(&dispatcher_request)));
+ helper_->OnStartWorkerStub(params, std::move(dispatcher_request));
}
void EmbeddedWorkerTestHelper::MockEmbeddedWorkerInstanceClient::StopWorker(
@@ -127,7 +110,7 @@ void EmbeddedWorkerTestHelper::MockEmbeddedWorkerInstanceClient::StopWorker(
// is removed right after sending StopWorker.
if (worker)
EXPECT_EQ(EmbeddedWorkerStatus::STOPPING, worker->status());
- callback.Run();
+ helper_->OnStopWorkerStub(callback);
}
// static
@@ -256,10 +239,8 @@ bool EmbeddedWorkerTestHelper::Send(IPC::Message* message) {
bool EmbeddedWorkerTestHelper::OnMessageReceived(const IPC::Message& message) {
bool handled = true;
IPC_BEGIN_MESSAGE_MAP(EmbeddedWorkerTestHelper, message)
- IPC_MESSAGE_HANDLER(EmbeddedWorkerMsg_StartWorker, OnStartWorkerStub)
IPC_MESSAGE_HANDLER(EmbeddedWorkerMsg_ResumeAfterDownload,
OnResumeAfterDownloadStub)
- IPC_MESSAGE_HANDLER(EmbeddedWorkerMsg_StopWorker, OnStopWorkerStub)
IPC_MESSAGE_HANDLER(EmbeddedWorkerContextMsg_MessageToWorker,
OnMessageToWorkerStub)
IPC_MESSAGE_UNHANDLED(handled = false)
@@ -298,11 +279,18 @@ net::HttpResponseInfo EmbeddedWorkerTestHelper::CreateHttpResponseInfo() {
return info;
}
-void EmbeddedWorkerTestHelper::OnStartWorker(int embedded_worker_id,
- int64_t service_worker_version_id,
- const GURL& scope,
- const GURL& script_url,
- bool pause_after_download) {
+void EmbeddedWorkerTestHelper::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) {
+ EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id);
+ ASSERT_TRUE(worker);
+ MockServiceWorkerEventDispatcher::Create(AsWeakPtr(), worker->thread_id(),
+ std::move(request));
+
embedded_worker_id_service_worker_version_id_map_[embedded_worker_id] =
service_worker_version_id;
SimulateWorkerReadyForInspection(embedded_worker_id);
@@ -318,9 +306,10 @@ void EmbeddedWorkerTestHelper::OnResumeAfterDownload(int embedded_worker_id) {
SimulateWorkerStarted(embedded_worker_id);
}
-void EmbeddedWorkerTestHelper::OnStopWorker(int embedded_worker_id) {
+void EmbeddedWorkerTestHelper::OnStopWorker(
+ const mojom::EmbeddedWorkerInstanceClient::StopWorkerCallback& callback) {
// By default just notify the sender that the worker is stopped.
- SimulateWorkerStopped(embedded_worker_id);
+ callback.Run();
}
bool EmbeddedWorkerTestHelper::OnMessageToWorker(int thread_id,
@@ -339,13 +328,6 @@ bool EmbeddedWorkerTestHelper::OnMessageToWorker(int thread_id,
return handled;
}
-void EmbeddedWorkerTestHelper::OnSetupMojo(
- int thread_id,
- mojom::ServiceWorkerEventDispatcherRequest dispatcher_request) {
- MockServiceWorkerEventDispatcher::Create(AsWeakPtr(), thread_id,
- std::move(dispatcher_request));
-}
-
void EmbeddedWorkerTestHelper::OnActivateEvent(int embedded_worker_id,
int request_id) {
SimulateSend(new ServiceWorkerHostMsg_ActivateEventFinished(
@@ -403,7 +385,7 @@ void EmbeddedWorkerTestHelper::OnPushEvent(int embedded_worker_id,
void EmbeddedWorkerTestHelper::SimulateWorkerReadyForInspection(
int embedded_worker_id) {
EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id);
- ASSERT_TRUE(worker != NULL);
+ ASSERT_TRUE(worker);
registry()->OnWorkerReadyForInspection(worker->process_id(),
embedded_worker_id);
}
@@ -428,7 +410,7 @@ void EmbeddedWorkerTestHelper::SimulateWorkerScriptCached(
void EmbeddedWorkerTestHelper::SimulateWorkerScriptLoaded(
int embedded_worker_id) {
EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id);
- ASSERT_TRUE(worker != NULL);
+ ASSERT_TRUE(worker);
registry()->OnWorkerScriptLoaded(worker->process_id(), embedded_worker_id);
}
@@ -437,7 +419,7 @@ void EmbeddedWorkerTestHelper::SimulateWorkerThreadStarted(
int embedded_worker_id) {
thread_id_embedded_worker_id_map_[thread_id] = embedded_worker_id;
EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id);
- ASSERT_TRUE(worker != NULL);
+ ASSERT_TRUE(worker);
registry()->OnWorkerThreadStarted(worker->process_id(), thread_id,
embedded_worker_id);
}
@@ -446,20 +428,20 @@ void EmbeddedWorkerTestHelper::SimulateWorkerScriptEvaluated(
int embedded_worker_id,
bool success) {
EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id);
- ASSERT_TRUE(worker != NULL);
+ ASSERT_TRUE(worker);
registry()->OnWorkerScriptEvaluated(worker->process_id(), embedded_worker_id,
success);
}
void EmbeddedWorkerTestHelper::SimulateWorkerStarted(int embedded_worker_id) {
EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id);
- ASSERT_TRUE(worker != NULL);
+ ASSERT_TRUE(worker);
registry()->OnWorkerStarted(worker->process_id(), embedded_worker_id);
}
void EmbeddedWorkerTestHelper::SimulateWorkerStopped(int embedded_worker_id) {
EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id);
- if (worker != NULL)
+ if (worker)
registry()->OnWorkerStopped(worker->process_id(), embedded_worker_id);
}
@@ -469,16 +451,18 @@ void EmbeddedWorkerTestHelper::SimulateSend(IPC::Message* message) {
}
void EmbeddedWorkerTestHelper::OnStartWorkerStub(
- const EmbeddedWorkerStartParams& params) {
+ const EmbeddedWorkerStartParams& params,
+ mojom::ServiceWorkerEventDispatcherRequest request) {
EmbeddedWorkerInstance* worker =
registry()->GetWorker(params.embedded_worker_id);
- ASSERT_TRUE(worker != NULL);
+ ASSERT_TRUE(worker);
EXPECT_EQ(EmbeddedWorkerStatus::STARTING, worker->status());
base::ThreadTaskRunnerHandle::Get()->PostTask(
FROM_HERE,
base::Bind(&EmbeddedWorkerTestHelper::OnStartWorker, AsWeakPtr(),
params.embedded_worker_id, params.service_worker_version_id,
- params.scope, params.script_url, params.pause_after_download));
+ params.scope, params.script_url, params.pause_after_download,
+ base::Passed(&request)));
}
void EmbeddedWorkerTestHelper::OnResumeAfterDownloadStub(
@@ -490,12 +474,11 @@ void EmbeddedWorkerTestHelper::OnResumeAfterDownloadStub(
AsWeakPtr(), embedded_worker_id));
}
-void EmbeddedWorkerTestHelper::OnStopWorkerStub(int embedded_worker_id) {
- EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id);
- ASSERT_TRUE(worker != NULL);
+void EmbeddedWorkerTestHelper::OnStopWorkerStub(
+ const mojom::EmbeddedWorkerInstanceClient::StopWorkerCallback& callback) {
base::ThreadTaskRunnerHandle::Get()->PostTask(
FROM_HERE, base::Bind(&EmbeddedWorkerTestHelper::OnStopWorker,
- AsWeakPtr(), embedded_worker_id));
+ AsWeakPtr(), callback));
}
void EmbeddedWorkerTestHelper::OnMessageToWorkerStub(
@@ -503,7 +486,7 @@ void EmbeddedWorkerTestHelper::OnMessageToWorkerStub(
int embedded_worker_id,
const IPC::Message& message) {
EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id);
- ASSERT_TRUE(worker != NULL);
+ ASSERT_TRUE(worker);
EXPECT_EQ(worker->thread_id(), thread_id);
base::ThreadTaskRunnerHandle::Get()->PostTask(
FROM_HERE,

Powered by Google App Engine
This is Rietveld 408576698