| // 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/browser/devtools/devtools_frontend_host_impl.h" |
| |
| #include "content/common/devtools_messages.h" |
| #include "content/public/browser/navigation_entry.h" |
| #include "content/public/browser/render_view_host.h" |
| #include "content/public/browser/web_contents.h" |
| |
| namespace content { |
| |
| // static |
| DevToolsFrontendHost* DevToolsFrontendHost::Create( |
| RenderViewHost* frontend_rvh, |
| DevToolsFrontendHost::Delegate* delegate) { |
| return new DevToolsFrontendHostImpl(frontend_rvh, delegate); |
| } |
| |
| DevToolsFrontendHostImpl::DevToolsFrontendHostImpl( |
| RenderViewHost* frontend_rvh, |
| DevToolsFrontendHost::Delegate* delegate) |
| : WebContentsObserver(WebContents::FromRenderViewHost(frontend_rvh)), |
| delegate_(delegate) { |
| frontend_rvh->Send(new DevToolsMsg_SetupDevToolsClient( |
| frontend_rvh->GetRoutingID())); |
| } |
| |
| DevToolsFrontendHostImpl::~DevToolsFrontendHostImpl() { |
| } |
| |
| bool DevToolsFrontendHostImpl::OnMessageReceived( |
| const IPC::Message& message) { |
| bool handled = true; |
| IPC_BEGIN_MESSAGE_MAP(DevToolsFrontendHostImpl, message) |
| IPC_MESSAGE_HANDLER(DevToolsAgentMsg_DispatchOnInspectorBackend, |
| OnDispatchOnInspectorBackend) |
| IPC_MESSAGE_HANDLER(DevToolsHostMsg_DispatchOnEmbedder, |
| OnDispatchOnEmbedder) |
| IPC_MESSAGE_UNHANDLED(handled = false) |
| IPC_END_MESSAGE_MAP() |
| return handled; |
| } |
| |
| void DevToolsFrontendHostImpl::OnDispatchOnInspectorBackend( |
| const std::string& message) { |
| delegate_->HandleMessageFromDevToolsFrontendToBackend(message); |
| } |
| |
| void DevToolsFrontendHostImpl::OnDispatchOnEmbedder( |
| const std::string& message) { |
| delegate_->HandleMessageFromDevToolsFrontend(message); |
| } |
| |
| } // namespace content |