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 1b8997253a338ffaed60de231d8b78f282297681..c8ddb59f652f7d5e80edc5ed4b469413e228affa 100644 |
| --- a/content/browser/service_worker/service_worker_version.cc |
| +++ b/content/browser/service_worker/service_worker_version.cc |
| @@ -614,8 +614,12 @@ void ServiceWorkerVersion::SetStartWorkerStatusCode( |
| void ServiceWorkerVersion::Doom() { |
| DCHECK(!HasControllee()); |
| SetStatus(REDUNDANT); |
| - if (running_status() == STARTING || running_status() == RUNNING) |
| - embedded_worker_->Stop(); |
| + if (running_status() == STARTING || running_status() == RUNNING) { |
| + if (embedded_worker()->devtools_attached()) |
| + stop_when_devtools_detached_ = true; |
| + else |
| + embedded_worker_->Stop(); |
| + } |
| if (!context_) |
| return; |
| std::vector<ServiceWorkerDatabase::ResourceRecord> resources; |
| @@ -625,6 +629,10 @@ void ServiceWorkerVersion::Doom() { |
| void ServiceWorkerVersion::SetDevToolsAttached(bool attached) { |
| embedded_worker()->set_devtools_attached(attached); |
| + if (stop_when_devtools_detached_ && !attached) { |
|
falken
2016/04/20 07:24:56
DCHECK that it's REDUNDANT so we know we don't hav
horo
2016/04/20 07:39:19
Done.
|
| + embedded_worker_->Stop(); |
| + return; |
| + } |
| if (attached) { |
| // TODO(falken): Canceling the timeouts when debugging could cause |
| // heisenbugs; we should instead run them as normal show an educational |