diff options
Diffstat (limited to 'chromium/content/child/shared_worker_devtools_agent.cc')
-rw-r--r-- | chromium/content/child/shared_worker_devtools_agent.cc | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/chromium/content/child/shared_worker_devtools_agent.cc b/chromium/content/child/shared_worker_devtools_agent.cc new file mode 100644 index 00000000000..fc5a1c363f7 --- /dev/null +++ b/chromium/content/child/shared_worker_devtools_agent.cc @@ -0,0 +1,83 @@ +// Copyright 2014 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "content/child/shared_worker_devtools_agent.h" + +#include "content/child/child_thread.h" +#include "content/common/devtools_messages.h" +#include "third_party/WebKit/public/platform/WebCString.h" +#include "third_party/WebKit/public/platform/WebString.h" +#include "third_party/WebKit/public/web/WebSharedWorker.h" + +using blink::WebSharedWorker; +using blink::WebString; + +namespace content { + +SharedWorkerDevToolsAgent::SharedWorkerDevToolsAgent( + int route_id, + WebSharedWorker* webworker) + : route_id_(route_id), + webworker_(webworker) { +} + +SharedWorkerDevToolsAgent::~SharedWorkerDevToolsAgent() { +} + +// Called on the Worker thread. +bool SharedWorkerDevToolsAgent::OnMessageReceived(const IPC::Message& message) { + bool handled = true; + IPC_BEGIN_MESSAGE_MAP(SharedWorkerDevToolsAgent, message) + IPC_MESSAGE_HANDLER(DevToolsAgentMsg_Attach, OnAttach) + IPC_MESSAGE_HANDLER(DevToolsAgentMsg_Reattach, OnReattach) + IPC_MESSAGE_HANDLER(DevToolsAgentMsg_Detach, OnDetach) + IPC_MESSAGE_HANDLER(DevToolsAgentMsg_DispatchOnInspectorBackend, + OnDispatchOnInspectorBackend) + IPC_MESSAGE_HANDLER(DevToolsAgentMsg_ResumeWorkerContext, + OnResumeWorkerContext) + IPC_MESSAGE_UNHANDLED(handled = false) + IPC_END_MESSAGE_MAP() + return handled; +} + +void SharedWorkerDevToolsAgent::SendDevToolsMessage( + const blink::WebString& message) { + Send(new DevToolsClientMsg_DispatchOnInspectorFrontend( + route_id_, + message.utf8())); +} + +void SharedWorkerDevToolsAgent::SaveDevToolsAgentState( + const blink::WebString& state) { + Send(new DevToolsHostMsg_SaveAgentRuntimeState(route_id_, + state.utf8())); +} + +void SharedWorkerDevToolsAgent::OnAttach(const std::string& host_id) { + webworker_->attachDevTools(); +} + +void SharedWorkerDevToolsAgent::OnReattach(const std::string& host_id, + const std::string& state) { + webworker_->reattachDevTools(WebString::fromUTF8(state)); +} + +void SharedWorkerDevToolsAgent::OnDetach() { + webworker_->detachDevTools(); +} + +void SharedWorkerDevToolsAgent::OnDispatchOnInspectorBackend( + const std::string& message) { + webworker_->dispatchDevToolsMessage(WebString::fromUTF8(message)); +} + +void SharedWorkerDevToolsAgent::OnResumeWorkerContext() { + webworker_->resumeWorkerContext(); +} + +bool SharedWorkerDevToolsAgent::Send(IPC::Message* message) { + return ChildThread::current()->Send(message); +} + +} // namespace content |