• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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)15 DevToolsFrontendHost* 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)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 
~DevToolsFrontendHostImpl()30 DevToolsFrontendHostImpl::~DevToolsFrontendHostImpl() {
31 }
32 
OnMessageReceived(const IPC::Message & message)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 
OnDispatchOnInspectorBackend(const std::string & message)46 void DevToolsFrontendHostImpl::OnDispatchOnInspectorBackend(
47     const std::string& message) {
48   delegate_->HandleMessageFromDevToolsFrontendToBackend(message);
49 }
50 
OnDispatchOnEmbedder(const std::string & message)51 void DevToolsFrontendHostImpl::OnDispatchOnEmbedder(
52     const std::string& message) {
53   delegate_->HandleMessageFromDevToolsFrontend(message);
54 }
55 
56 }  // namespace content
57