Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "content/browser/devtools/embedded_worker_devtools_agent_host.h" | 5 #include "content/browser/devtools/embedded_worker_devtools_agent_host.h" |
| 6 | 6 |
| 7 #include "base/strings/utf_string_conversions.h" | 7 #include "base/strings/utf_string_conversions.h" |
| 8 #include "content/browser/devtools/protocol/devtools_protocol_handler_impl.h" | 8 #include "content/browser/devtools/protocol/devtools_protocol_handler_impl.h" |
| 9 #include "content/browser/service_worker/service_worker_context_core.h" | 9 #include "content/browser/service_worker/service_worker_context_core.h" |
| 10 #include "content/browser/service_worker/service_worker_version.h" | 10 #include "content/browser/service_worker/service_worker_version.h" |
| (...skipping 17 matching lines...) Expand all Loading... | |
| 28 | 28 |
| 29 void TerminateServiceWorkerOnIO( | 29 void TerminateServiceWorkerOnIO( |
| 30 base::WeakPtr<ServiceWorkerContextCore> context_weak, | 30 base::WeakPtr<ServiceWorkerContextCore> context_weak, |
| 31 int64 version_id) { | 31 int64 version_id) { |
| 32 if (ServiceWorkerContextCore* context = context_weak.get()) { | 32 if (ServiceWorkerContextCore* context = context_weak.get()) { |
| 33 if (ServiceWorkerVersion* version = context->GetLiveVersion(version_id)) | 33 if (ServiceWorkerVersion* version = context->GetLiveVersion(version_id)) |
| 34 version->StopWorker(base::Bind(&StatusNoOp)); | 34 version->StopWorker(base::Bind(&StatusNoOp)); |
| 35 } | 35 } |
| 36 } | 36 } |
| 37 | 37 |
| 38 void SetDevToolsAttachedOnIO( | |
| 39 base::WeakPtr<ServiceWorkerContextCore> context_weak, | |
| 40 int64 version_id, | |
| 41 bool attached) { | |
| 42 if (ServiceWorkerContextCore* context = context_weak.get()) { | |
| 43 if (ServiceWorkerVersion* version = context->GetLiveVersion(version_id)) | |
| 44 version->SetDevToolsAttached(attached); | |
| 45 } | |
| 38 } | 46 } |
| 39 | 47 |
| 48 } // namespace | |
| 49 | |
| 40 EmbeddedWorkerDevToolsAgentHost::EmbeddedWorkerDevToolsAgentHost( | 50 EmbeddedWorkerDevToolsAgentHost::EmbeddedWorkerDevToolsAgentHost( |
| 41 WorkerId worker_id, | 51 WorkerId worker_id, |
| 42 const SharedWorkerInstance& shared_worker) | 52 const SharedWorkerInstance& shared_worker) |
| 43 : shared_worker_(new SharedWorkerInstance(shared_worker)), | 53 : shared_worker_(new SharedWorkerInstance(shared_worker)), |
| 44 state_(WORKER_UNINSPECTED), | 54 state_(WORKER_UNINSPECTED), |
| 45 worker_id_(worker_id) { | 55 worker_id_(worker_id) { |
| 46 WorkerCreated(); | 56 WorkerCreated(); |
| 47 } | 57 } |
| 48 | 58 |
| 49 EmbeddedWorkerDevToolsAgentHost::EmbeddedWorkerDevToolsAgentHost( | 59 EmbeddedWorkerDevToolsAgentHost::EmbeddedWorkerDevToolsAgentHost( |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 118 void EmbeddedWorkerDevToolsAgentHost::Attach() { | 128 void EmbeddedWorkerDevToolsAgentHost::Attach() { |
| 119 if (state_ != WORKER_INSPECTED) { | 129 if (state_ != WORKER_INSPECTED) { |
| 120 state_ = WORKER_INSPECTED; | 130 state_ = WORKER_INSPECTED; |
| 121 AttachToWorker(); | 131 AttachToWorker(); |
| 122 } | 132 } |
| 123 IPCDevToolsAgentHost::Attach(); | 133 IPCDevToolsAgentHost::Attach(); |
| 124 } | 134 } |
| 125 | 135 |
| 126 void EmbeddedWorkerDevToolsAgentHost::OnClientAttached() { | 136 void EmbeddedWorkerDevToolsAgentHost::OnClientAttached() { |
| 127 DevToolsAgentHostImpl::NotifyCallbacks(this, true); | 137 DevToolsAgentHostImpl::NotifyCallbacks(this, true); |
| 138 if (service_worker_) { | |
|
pfeldman
2014/12/15 06:11:08
Is this always true?
kinuko
2014/12/15 06:39:13
Looks like it's not, the same code is used for Sha
pfeldman
2014/12/15 07:05:04
Oh. I was not familiar with the code and did not r
| |
| 139 BrowserThread::PostTask(BrowserThread::IO, FROM_HERE, | |
| 140 base::Bind(&SetDevToolsAttachedOnIO, | |
| 141 service_worker_->context_weak(), | |
| 142 service_worker_->version_id(), | |
| 143 true)); | |
| 144 } | |
| 128 } | 145 } |
| 129 | 146 |
| 130 void EmbeddedWorkerDevToolsAgentHost::OnClientDetached() { | 147 void EmbeddedWorkerDevToolsAgentHost::OnClientDetached() { |
| 131 if (state_ == WORKER_INSPECTED) { | 148 if (state_ == WORKER_INSPECTED) { |
| 132 state_ = WORKER_UNINSPECTED; | 149 state_ = WORKER_UNINSPECTED; |
| 133 DetachFromWorker(); | 150 DetachFromWorker(); |
| 134 } else if (state_ == WORKER_PAUSED_FOR_REATTACH) { | 151 } else if (state_ == WORKER_PAUSED_FOR_REATTACH) { |
| 135 state_ = WORKER_UNINSPECTED; | 152 state_ = WORKER_UNINSPECTED; |
| 136 } | 153 } |
| 137 DevToolsAgentHostImpl::NotifyCallbacks(this, false); | 154 DevToolsAgentHostImpl::NotifyCallbacks(this, false); |
| 155 if (service_worker_) { | |
|
pfeldman
2014/12/15 06:11:08
ditto
| |
| 156 BrowserThread::PostTask(BrowserThread::IO, FROM_HERE, | |
| 157 base::Bind(&SetDevToolsAttachedOnIO, | |
| 158 service_worker_->context_weak(), | |
| 159 service_worker_->version_id(), | |
| 160 false)); | |
| 161 } | |
| 138 } | 162 } |
| 139 | 163 |
| 140 bool EmbeddedWorkerDevToolsAgentHost::OnMessageReceived( | 164 bool EmbeddedWorkerDevToolsAgentHost::OnMessageReceived( |
| 141 const IPC::Message& msg) { | 165 const IPC::Message& msg) { |
| 142 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 166 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 143 bool handled = true; | 167 bool handled = true; |
| 144 IPC_BEGIN_MESSAGE_MAP(EmbeddedWorkerDevToolsAgentHost, msg) | 168 IPC_BEGIN_MESSAGE_MAP(EmbeddedWorkerDevToolsAgentHost, msg) |
| 145 IPC_MESSAGE_HANDLER(DevToolsClientMsg_DispatchOnInspectorFrontend, | 169 IPC_MESSAGE_HANDLER(DevToolsClientMsg_DispatchOnInspectorFrontend, |
| 146 OnDispatchOnInspectorFrontend) | 170 OnDispatchOnInspectorFrontend) |
| 147 IPC_MESSAGE_HANDLER(DevToolsHostMsg_SaveAgentRuntimeState, | 171 IPC_MESSAGE_HANDLER(DevToolsHostMsg_SaveAgentRuntimeState, |
| (...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 234 RenderProcessHost* rph = RenderProcessHost::FromID(worker_id_.first); | 258 RenderProcessHost* rph = RenderProcessHost::FromID(worker_id_.first); |
| 235 return rph ? rph->GetBrowserContext() : nullptr; | 259 return rph ? rph->GetBrowserContext() : nullptr; |
| 236 } | 260 } |
| 237 | 261 |
| 238 void EmbeddedWorkerDevToolsAgentHost::OnSaveAgentRuntimeState( | 262 void EmbeddedWorkerDevToolsAgentHost::OnSaveAgentRuntimeState( |
| 239 const std::string& state) { | 263 const std::string& state) { |
| 240 saved_agent_state_ = state; | 264 saved_agent_state_ = state; |
| 241 } | 265 } |
| 242 | 266 |
| 243 } // namespace content | 267 } // namespace content |
| OLD | NEW |