Chromium Code Reviews| Index: content/browser/service_worker/service_worker_registration.cc |
| diff --git a/content/browser/service_worker/service_worker_registration.cc b/content/browser/service_worker/service_worker_registration.cc |
| index 0445f08f7e646ba73497be4257adeb4d6ad008c3..742486429a8fa1d3e005b4fb5f759ed62bb084b8 100644 |
| --- a/content/browser/service_worker/service_worker_registration.cc |
| +++ b/content/browser/service_worker/service_worker_registration.cc |
| @@ -154,7 +154,8 @@ void ServiceWorkerRegistration::UnsetVersionInternal( |
| void ServiceWorkerRegistration::ActivateWaitingVersionWhenReady() { |
| DCHECK(waiting_version()); |
| should_activate_when_ready_ = true; |
| - if (!active_version() || !active_version()->HasControllee()) |
| + if (!active_version() || !active_version()->HasControllee() |
| + || waiting_version()->skip_waiting()) |
| ActivateWaitingVersion(); |
| } |
| @@ -210,7 +211,7 @@ void ServiceWorkerRegistration::OnNoControllees(ServiceWorkerVersion* version) { |
| void ServiceWorkerRegistration::ActivateWaitingVersion() { |
| DCHECK(context_); |
| DCHECK(waiting_version()); |
| - DCHECK(should_activate_when_ready_); |
| + CHECK(should_activate_when_ready_); |
|
falken
2014/11/19 04:19:56
why not DCHECK?
xiang
2014/11/24 07:04:01
Done.
|
| should_activate_when_ready_ = false; |
| scoped_refptr<ServiceWorkerVersion> activating_version = waiting_version(); |
| scoped_refptr<ServiceWorkerVersion> exiting_version = active_version(); |
| @@ -220,6 +221,9 @@ void ServiceWorkerRegistration::ActivateWaitingVersion() { |
| return; // Activation is no longer relevant. |
| } |
| + if (activating_version->skip_waiting()) |
| + FOR_EACH_OBSERVER(Listener, listeners_, OnSkippedWaiting(this)); |
| + |
| // "4. If exitingWorker is not null, |
| if (exiting_version.get()) { |
| DCHECK(!exiting_version->HasControllee()); |
| @@ -239,10 +243,9 @@ void ServiceWorkerRegistration::ActivateWaitingVersion() { |
| // "7. Run the [[UpdateState]] algorithm passing registration.activeWorker and |
| // "activating" as arguments." |
| + // "8. Fire a simple event named controllerchange..." |
|
falken
2014/11/19 04:19:56
these line numbers are now out of the sync with th
xiang
2014/11/24 07:04:01
Done.
|
| activating_version->SetStatus(ServiceWorkerVersion::ACTIVATING); |
| - // TODO(nhiroki): "8. Fire a simple event named controllerchange..." |
| - |
| // "9. Queue a task to fire an event named activate..." |
| activating_version->DispatchActivateEvent( |
| base::Bind(&ServiceWorkerRegistration::OnActivateEventFinished, |