| Index: content/browser/devtools/protocol/service_worker_handler.cc
|
| diff --git a/content/browser/devtools/protocol/service_worker_handler.cc b/content/browser/devtools/protocol/service_worker_handler.cc
|
| index b2ac98ae250a91751e46c56ed4f7386a32ee8bde..1e50c9a30b43f7ad742fd8a86473dc751a2558ad 100644
|
| --- a/content/browser/devtools/protocol/service_worker_handler.cc
|
| +++ b/content/browser/devtools/protocol/service_worker_handler.cc
|
| @@ -79,6 +79,13 @@ const std::string GetVersionStatusString(
|
|
|
| scoped_refptr<ServiceWorkerVersion> CreateVersionDictionaryValue(
|
| const ServiceWorkerVersionInfo& version_info) {
|
| + std::string workerId = "";
|
| + DevToolsAgentHostImpl* agent =
|
| + ServiceWorkerDevToolsManager::GetInstance()
|
| + ->GetDevToolsAgentHostForWorker(version_info.process_id,
|
| + version_info.devtools_agent_route_id);
|
| + if (agent)
|
| + workerId = agent->GetId();
|
| scoped_refptr<ServiceWorkerVersion> version(
|
| ServiceWorkerVersion::Create()
|
| ->set_version_id(base::Int64ToString(version_info.version_id))
|
| @@ -91,7 +98,8 @@ scoped_refptr<ServiceWorkerVersion> CreateVersionDictionaryValue(
|
| ->set_script_last_modified(
|
| version_info.script_last_modified.ToDoubleT())
|
| ->set_script_response_time(
|
| - version_info.script_response_time.ToDoubleT()));
|
| + version_info.script_response_time.ToDoubleT())
|
| + ->set_worker_id(workerId));
|
| return version;
|
| }
|
|
|
| @@ -338,7 +346,6 @@ Response ServiceWorkerHandler::InspectWorker(const std::string& version_id) {
|
| return Response::OK();
|
| if (!context_)
|
| return CreateContextErrorResoponse();
|
| -
|
| int64 id = 0;
|
| if (!base::StringToInt64(version_id, &id))
|
| return CreateInvalidVersionIdErrorResoponse();
|
| @@ -350,6 +357,22 @@ Response ServiceWorkerHandler::InspectWorker(const std::string& version_id) {
|
| return Response::OK();
|
| }
|
|
|
| +Response ServiceWorkerHandler::DetachWorker(const std::string& worker_id) {
|
| + if (!enabled_)
|
| + return Response::OK();
|
| + if (!context_)
|
| + return CreateContextErrorResoponse();
|
| + auto it = attached_hosts_.find(worker_id);
|
| + if (it == attached_hosts_.end())
|
| + return Response::OK(); // Already disconnected.
|
| + scoped_refptr<ServiceWorkerDevToolsAgentHost> host(it->second);
|
| + client_->WorkerTerminated(
|
| + WorkerTerminatedParams::Create()->set_worker_id(worker_id));
|
| + host->DetachClient();
|
| + attached_hosts_.erase(worker_id);
|
| + return Response::OK();
|
| +}
|
| +
|
| Response ServiceWorkerHandler::SetDebugOnStart(bool debug_on_start) {
|
| ServiceWorkerDevToolsManager::GetInstance()
|
| ->set_debug_service_worker_on_start(debug_on_start);
|
|
|