Home | History | Annotate | Download | only in devtools
      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
     15 DevToolsFrontendHost* DevToolsFrontendHost::Create(
     16     RenderViewHost* frontend_rvh,
     17     DevToolsFrontendHost::Delegate* delegate) {
     18   return new DevToolsFrontendHostImpl(frontend_rvh, delegate);
     19 }
     20 
     21 DevToolsFrontendHostImpl::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 
     30 DevToolsFrontendHostImpl::~DevToolsFrontendHostImpl() {
     31 }
     32 
     33 bool 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 
     46 void DevToolsFrontendHostImpl::OnDispatchOnInspectorBackend(
     47     const std::string& message) {
     48   delegate_->HandleMessageFromDevToolsFrontendToBackend(message);
     49 }
     50 
     51 void DevToolsFrontendHostImpl::OnDispatchOnEmbedder(
     52     const std::string& message) {
     53   delegate_->HandleMessageFromDevToolsFrontend(message);
     54 }
     55 
     56 }  // namespace content
     57