| Index: content/browser/devtools/protocol/target_handler.cc
|
| diff --git a/content/browser/devtools/protocol/target_handler.cc b/content/browser/devtools/protocol/target_handler.cc
|
| index ffd83ae259e574e3336dd500d12faa608a4bf1d3..d8f88d2098ff74edc2b9294ffeabd1c547deb819 100644
|
| --- a/content/browser/devtools/protocol/target_handler.cc
|
| +++ b/content/browser/devtools/protocol/target_handler.cc
|
| @@ -87,6 +87,7 @@ ServiceWorkerDevToolsAgentHost::Map GetMatchingServiceWorkers(
|
|
|
| TargetHandler::TargetHandler()
|
| : enabled_(false),
|
| + wait_for_debugger_on_start_(false),
|
| render_frame_host_(nullptr) {
|
| }
|
|
|
| @@ -107,6 +108,10 @@ void TargetHandler::Detached() {
|
| }
|
|
|
| void TargetHandler::UpdateServiceWorkers() {
|
| + UpdateServiceWorkers(false);
|
| +}
|
| +
|
| +void TargetHandler::UpdateServiceWorkers(bool waiting_for_debugger) {
|
| if (!enabled_)
|
| return;
|
|
|
| @@ -135,7 +140,7 @@ void TargetHandler::UpdateServiceWorkers() {
|
|
|
| for (const auto& pair : new_hosts) {
|
| if (old_hosts.find(pair.first) == old_hosts.end())
|
| - AttachToTargetInternal(pair.second.get(), true);
|
| + AttachToTargetInternal(pair.second.get(), waiting_for_debugger);
|
| }
|
| }
|
|
|
| @@ -177,6 +182,7 @@ Response TargetHandler::Disable() {
|
| if (!enabled_)
|
| return Response::OK();
|
| enabled_ = false;
|
| + wait_for_debugger_on_start_ = false;
|
| ServiceWorkerDevToolsManager::GetInstance()->RemoveObserver(this);
|
| for (const auto& pair : attached_hosts_)
|
| pair.second->DetachClient(this);
|
| @@ -185,7 +191,7 @@ Response TargetHandler::Disable() {
|
| }
|
|
|
| Response TargetHandler::SetWaitForDebuggerOnStart(bool value) {
|
| - // TODO(dgozman): implement this.
|
| + wait_for_debugger_on_start_ = value;
|
| return Response::OK();
|
| }
|
|
|
| @@ -255,7 +261,7 @@ void TargetHandler::WorkerCreated(
|
| browser_context = render_frame_host_->GetProcess()->GetBrowserContext();
|
| auto hosts = GetMatchingServiceWorkers(browser_context, frame_urls_);
|
| if (hosts.find(host->GetId()) != hosts.end() && !host->IsAttached() &&
|
| - !host->IsPausedForDebugOnStart()) {
|
| + !host->IsPausedForDebugOnStart() && wait_for_debugger_on_start_) {
|
| host->PauseForDebugOnStart();
|
| }
|
| }
|
| @@ -268,7 +274,7 @@ void TargetHandler::WorkerReadyForInspection(
|
| // be opened in ServiceWorkerDevToolsManager::WorkerReadyForInspection.
|
| return;
|
| }
|
| - UpdateServiceWorkers();
|
| + UpdateServiceWorkers(host->IsPausedForDebugOnStart());
|
| }
|
|
|
| void TargetHandler::WorkerVersionInstalled(
|
|
|