| OLD | NEW |
| (Empty) |
| 1 // Copyright (c) 2012 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 #ifndef CONTENT_BROWSER_DEVTOOLS_RENDER_VIEW_DEVTOOLS_AGENT_HOST_H_ | |
| 6 #define CONTENT_BROWSER_DEVTOOLS_RENDER_VIEW_DEVTOOLS_AGENT_HOST_H_ | |
| 7 | |
| 8 #include <map> | |
| 9 | |
| 10 #include "base/basictypes.h" | |
| 11 #include "base/compiler_specific.h" | |
| 12 #include "base/memory/scoped_ptr.h" | |
| 13 #include "content/browser/devtools/ipc_devtools_agent_host.h" | |
| 14 #include "content/common/content_export.h" | |
| 15 #include "content/public/browser/notification_observer.h" | |
| 16 #include "content/public/browser/notification_registrar.h" | |
| 17 #include "content/public/browser/web_contents_observer.h" | |
| 18 | |
| 19 namespace cc { | |
| 20 class CompositorFrameMetadata; | |
| 21 } | |
| 22 | |
| 23 namespace content { | |
| 24 | |
| 25 class BrowserContext; | |
| 26 class DevToolsProtocolHandler; | |
| 27 class RenderFrameHost; | |
| 28 class RenderFrameHostImpl; | |
| 29 | |
| 30 #if defined(OS_ANDROID) | |
| 31 class PowerSaveBlockerImpl; | |
| 32 #endif | |
| 33 | |
| 34 namespace devtools { | |
| 35 namespace dom { class DOMHandler; } | |
| 36 namespace input { class InputHandler; } | |
| 37 namespace inspector { class InspectorHandler; } | |
| 38 namespace network { class NetworkHandler; } | |
| 39 namespace page { class PageHandler; } | |
| 40 namespace power { class PowerHandler; } | |
| 41 namespace tracing { class TracingHandler; } | |
| 42 } | |
| 43 | |
| 44 class CONTENT_EXPORT RenderViewDevToolsAgentHost | |
| 45 : public IPCDevToolsAgentHost, | |
| 46 private WebContentsObserver, | |
| 47 public NotificationObserver { | |
| 48 public: | |
| 49 static void OnCancelPendingNavigation(RenderFrameHost* pending, | |
| 50 RenderFrameHost* current); | |
| 51 | |
| 52 void SynchronousSwapCompositorFrame( | |
| 53 const cc::CompositorFrameMetadata& frame_metadata); | |
| 54 | |
| 55 bool HasRenderFrameHost(RenderFrameHost* host); | |
| 56 | |
| 57 // DevTooolsAgentHost overrides. | |
| 58 void DisconnectWebContents() override; | |
| 59 void ConnectWebContents(WebContents* web_contents) override; | |
| 60 BrowserContext* GetBrowserContext() override; | |
| 61 WebContents* GetWebContents() override; | |
| 62 Type GetType() override; | |
| 63 std::string GetTitle() override; | |
| 64 GURL GetURL() override; | |
| 65 bool Activate() override; | |
| 66 bool Close() override; | |
| 67 | |
| 68 private: | |
| 69 friend class DevToolsAgentHost; | |
| 70 explicit RenderViewDevToolsAgentHost(RenderFrameHost*); | |
| 71 ~RenderViewDevToolsAgentHost() override; | |
| 72 | |
| 73 // IPCDevToolsAgentHost overrides. | |
| 74 void DispatchProtocolMessage(const std::string& message) override; | |
| 75 void SendMessageToAgent(IPC::Message* msg) override; | |
| 76 void OnClientAttached() override; | |
| 77 void OnClientDetached() override; | |
| 78 | |
| 79 // WebContentsObserver overrides. | |
| 80 void AboutToNavigateRenderFrame(RenderFrameHost* old_host, | |
| 81 RenderFrameHost* new_host) override; | |
| 82 void RenderFrameHostChanged(RenderFrameHost* old_host, | |
| 83 RenderFrameHost* new_host) override; | |
| 84 void RenderFrameDeleted(RenderFrameHost* rvh) override; | |
| 85 void RenderProcessGone(base::TerminationStatus status) override; | |
| 86 bool OnMessageReceived(const IPC::Message& message, | |
| 87 RenderFrameHost* render_frame_host) override; | |
| 88 bool OnMessageReceived(const IPC::Message& message) override; | |
| 89 void DidAttachInterstitialPage() override; | |
| 90 void DidDetachInterstitialPage() override; | |
| 91 void TitleWasSet(NavigationEntry* entry, bool explicit_set) override; | |
| 92 void NavigationEntryCommitted( | |
| 93 const LoadCommittedDetails& load_details) override; | |
| 94 | |
| 95 // NotificationObserver overrides: | |
| 96 void Observe(int type, | |
| 97 const NotificationSource& source, | |
| 98 const NotificationDetails& details) override; | |
| 99 | |
| 100 void DisconnectRenderFrameHost(); | |
| 101 void ConnectRenderFrameHost(RenderFrameHost* rvh); | |
| 102 void ReattachToRenderFrameHost(RenderFrameHost* rvh); | |
| 103 | |
| 104 void SetRenderFrameHost(RenderFrameHost* rvh); | |
| 105 void ClearRenderFrameHost(); | |
| 106 | |
| 107 void RenderFrameCrashed(); | |
| 108 void OnSwapCompositorFrame(const IPC::Message& message); | |
| 109 bool OnSetTouchEventEmulationEnabled(const IPC::Message& message); | |
| 110 | |
| 111 void OnDispatchOnInspectorFrontend(const DevToolsMessageChunk& message); | |
| 112 void DispatchOnInspectorFrontend(const std::string& message); | |
| 113 | |
| 114 void ClientDetachedFromRenderer(); | |
| 115 | |
| 116 void InnerOnClientAttached(); | |
| 117 void InnerClientDetachedFromRenderer(); | |
| 118 | |
| 119 RenderFrameHostImpl* render_frame_host_; | |
| 120 scoped_ptr<devtools::dom::DOMHandler> dom_handler_; | |
| 121 scoped_ptr<devtools::input::InputHandler> input_handler_; | |
| 122 scoped_ptr<devtools::inspector::InspectorHandler> inspector_handler_; | |
| 123 scoped_ptr<devtools::network::NetworkHandler> network_handler_; | |
| 124 scoped_ptr<devtools::page::PageHandler> page_handler_; | |
| 125 scoped_ptr<devtools::power::PowerHandler> power_handler_; | |
| 126 scoped_ptr<devtools::tracing::TracingHandler> tracing_handler_; | |
| 127 scoped_ptr<DevToolsProtocolHandler> protocol_handler_; | |
| 128 #if defined(OS_ANDROID) | |
| 129 scoped_ptr<PowerSaveBlockerImpl> power_save_blocker_; | |
| 130 #endif | |
| 131 NotificationRegistrar registrar_; | |
| 132 bool reattaching_; | |
| 133 | |
| 134 DISALLOW_COPY_AND_ASSIGN(RenderViewDevToolsAgentHost); | |
| 135 }; | |
| 136 | |
| 137 } // namespace content | |
| 138 | |
| 139 #endif // CONTENT_BROWSER_DEVTOOLS_RENDER_VIEW_DEVTOOLS_AGENT_HOST_H_ | |
| OLD | NEW |