Chromium Code Reviews| Index: content/browser/service_worker/service_worker_version.cc |
| diff --git a/content/browser/service_worker/service_worker_version.cc b/content/browser/service_worker/service_worker_version.cc |
| index 69952dea4ee3d4561a998bc01122185b2dfae8da..9af0ad64dfcff8df580ba0b4e82d5cab0f5b093d 100644 |
| --- a/content/browser/service_worker/service_worker_version.cc |
| +++ b/content/browser/service_worker/service_worker_version.cc |
| @@ -242,12 +242,7 @@ class ServiceWorkerVersion::PingController { |
| if (ping_state_ != PINGING || !ping_time_.is_null()) |
| return; |
| - if (version_->PingWorker() != SERVICE_WORKER_OK) { |
| - // TODO(falken): Maybe try resending Ping a few times first? |
| - ping_state_ = PING_TIMED_OUT; |
| - version_->OnPingTimeout(); |
| - return; |
| - } |
| + version_->PingWorker(); |
| version_->RestartTick(&ping_time_); |
| } |
| @@ -968,7 +963,6 @@ bool ServiceWorkerVersion::OnMessageReceived(const IPC::Message& message) { |
| OnSkipWaiting) |
| IPC_MESSAGE_HANDLER(ServiceWorkerHostMsg_ClaimClients, |
| OnClaimClients) |
| - IPC_MESSAGE_HANDLER(ServiceWorkerHostMsg_Pong, OnPongFromWorker) |
| IPC_MESSAGE_HANDLER(ServiceWorkerHostMsg_RegisterForeignFetchScopes, |
| OnRegisterForeignFetchScopes) |
| IPC_MESSAGE_UNHANDLED(handled = false) |
| @@ -1658,10 +1652,12 @@ void ServiceWorkerVersion::OnTimeoutTimer() { |
| ping_controller_->CheckPingStatus(); |
| } |
| -ServiceWorkerStatusCode ServiceWorkerVersion::PingWorker() { |
| +void ServiceWorkerVersion::PingWorker() { |
| DCHECK(running_status() == EmbeddedWorkerStatus::STARTING || |
| running_status() == EmbeddedWorkerStatus::RUNNING); |
| - return embedded_worker_->SendMessage(ServiceWorkerMsg_Ping()); |
| + // base::Unretained here is safe because event_dispatcher is owned by |this|. |
| + event_dispatcher()->Ping(base::Bind(&ServiceWorkerVersion::OnPongFromWorker, |
|
leonhsl(Using Gerrit)
2017/03/20 03:47:15
I can confirm that |event_dispatcher_| here should
falken
2017/03/21 06:54:04
Yes I wasn't entirely sure myself. Sender::Send()
|
| + base::Unretained(this))); |
| } |
| void ServiceWorkerVersion::OnPingTimeout() { |