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 3 // found in the LICENSE file. 4 5 #include "content/browser/devtools/devtools_frontend_host_impl.h" 6 7 #include "content/common/devtools_messages.h" 8 #include "content/public/browser/navigation_entry.h" 9 #include "content/public/browser/render_view_host.h" 10 #include "content/public/browser/web_contents.h" 11 12 namespace content { 13 14 // static Create(RenderViewHost * frontend_rvh,DevToolsFrontendHost::Delegate * delegate)15DevToolsFrontendHost* DevToolsFrontendHost::Create( 16 RenderViewHost* frontend_rvh, 17 DevToolsFrontendHost::Delegate* delegate) { 18 return new DevToolsFrontendHostImpl(frontend_rvh, delegate); 19 } 20 DevToolsFrontendHostImpl(RenderViewHost * frontend_rvh,DevToolsFrontendHost::Delegate * delegate)21DevToolsFrontendHostImpl::DevToolsFrontendHostImpl( 22 RenderViewHost* frontend_rvh, 23 DevToolsFrontendHost::Delegate* delegate) 24 : WebContentsObserver(WebContents::FromRenderViewHost(frontend_rvh)), 25 delegate_(delegate) { 26 frontend_rvh->Send(new DevToolsMsg_SetupDevToolsClient( 27 frontend_rvh->GetRoutingID())); 28 } 29 ~DevToolsFrontendHostImpl()30DevToolsFrontendHostImpl::~DevToolsFrontendHostImpl() { 31 } 32 OnMessageReceived(const IPC::Message & message)33bool DevToolsFrontendHostImpl::OnMessageReceived( 34 const IPC::Message& message) { 35 bool handled = true; 36 IPC_BEGIN_MESSAGE_MAP(DevToolsFrontendHostImpl, message) 37 IPC_MESSAGE_HANDLER(DevToolsAgentMsg_DispatchOnInspectorBackend, 38 OnDispatchOnInspectorBackend) 39 IPC_MESSAGE_HANDLER(DevToolsHostMsg_DispatchOnEmbedder, 40 OnDispatchOnEmbedder) 41 IPC_MESSAGE_UNHANDLED(handled = false) 42 IPC_END_MESSAGE_MAP() 43 return handled; 44 } 45 OnDispatchOnInspectorBackend(const std::string & message)46void DevToolsFrontendHostImpl::OnDispatchOnInspectorBackend( 47 const std::string& message) { 48 delegate_->HandleMessageFromDevToolsFrontendToBackend(message); 49 } 50 OnDispatchOnEmbedder(const std::string & message)51void DevToolsFrontendHostImpl::OnDispatchOnEmbedder( 52 const std::string& message) { 53 delegate_->HandleMessageFromDevToolsFrontend(message); 54 } 55 56 } // namespace content 57