| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef CONTENT_BROWSER_DEVTOOLS_RENDER_FRAME_DEVTOOLS_AGENT_HOST_H_ | 5 #ifndef CONTENT_BROWSER_DEVTOOLS_RENDER_FRAME_DEVTOOLS_AGENT_HOST_H_ |
| 6 #define CONTENT_BROWSER_DEVTOOLS_RENDER_FRAME_DEVTOOLS_AGENT_HOST_H_ | 6 #define CONTENT_BROWSER_DEVTOOLS_RENDER_FRAME_DEVTOOLS_AGENT_HOST_H_ |
| 7 | 7 |
| 8 #include <map> | 8 #include <map> |
| 9 | 9 |
| 10 #include "base/compiler_specific.h" | 10 #include "base/compiler_specific.h" |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 48 class CONTENT_EXPORT RenderFrameDevToolsAgentHost | 48 class CONTENT_EXPORT RenderFrameDevToolsAgentHost |
| 49 : public DevToolsAgentHostImpl, | 49 : public DevToolsAgentHostImpl, |
| 50 private WebContentsObserver { | 50 private WebContentsObserver { |
| 51 public: | 51 public: |
| 52 static void AddAllAgentHosts(DevToolsAgentHost::List* result); | 52 static void AddAllAgentHosts(DevToolsAgentHost::List* result); |
| 53 | 53 |
| 54 static void OnCancelPendingNavigation(RenderFrameHost* pending, | 54 static void OnCancelPendingNavigation(RenderFrameHost* pending, |
| 55 RenderFrameHost* current); | 55 RenderFrameHost* current); |
| 56 static void OnBeforeNavigation(RenderFrameHost* current, | 56 static void OnBeforeNavigation(RenderFrameHost* current, |
| 57 RenderFrameHost* pending); | 57 RenderFrameHost* pending); |
| 58 static void OnBeforeNavigation(NavigationHandle* navigation_handle); |
| 58 | 59 |
| 59 void SynchronousSwapCompositorFrame( | 60 void SynchronousSwapCompositorFrame( |
| 60 const cc::CompositorFrameMetadata& frame_metadata); | 61 const cc::CompositorFrameMetadata& frame_metadata); |
| 61 | 62 |
| 62 bool HasRenderFrameHost(RenderFrameHost* host); | 63 bool HasRenderFrameHost(RenderFrameHost* host); |
| 63 | 64 |
| 65 FrameTreeNode* frame_tree_node() { return frame_tree_node_; } |
| 66 |
| 64 // DevTooolsAgentHost overrides. | 67 // DevTooolsAgentHost overrides. |
| 65 void DisconnectWebContents() override; | 68 void DisconnectWebContents() override; |
| 66 void ConnectWebContents(WebContents* web_contents) override; | 69 void ConnectWebContents(WebContents* web_contents) override; |
| 67 BrowserContext* GetBrowserContext() override; | 70 BrowserContext* GetBrowserContext() override; |
| 68 WebContents* GetWebContents() override; | 71 WebContents* GetWebContents() override; |
| 69 Type GetType() override; | 72 Type GetType() override; |
| 70 std::string GetTitle() override; | 73 std::string GetTitle() override; |
| 71 GURL GetURL() override; | 74 GURL GetURL() override; |
| 72 bool Activate() override; | 75 bool Activate() override; |
| 73 bool Close() override; | 76 bool Close() override; |
| 74 bool DispatchProtocolMessage(const std::string& message) override; | 77 bool DispatchProtocolMessage(const std::string& message) override; |
| 75 | 78 |
| 76 private: | 79 private: |
| 77 friend class DevToolsAgentHost; | 80 friend class DevToolsAgentHost; |
| 78 explicit RenderFrameDevToolsAgentHost(RenderFrameHostImpl*); | 81 explicit RenderFrameDevToolsAgentHost(RenderFrameHostImpl*); |
| 79 ~RenderFrameDevToolsAgentHost() override; | 82 ~RenderFrameDevToolsAgentHost() override; |
| 80 | 83 |
| 81 static scoped_refptr<DevToolsAgentHost> GetOrCreateFor( | 84 static scoped_refptr<DevToolsAgentHost> GetOrCreateFor( |
| 82 RenderFrameHostImpl* host); | 85 RenderFrameHostImpl* host); |
| 83 static void AppendAgentHostForFrameIfApplicable( | 86 static void AppendAgentHostForFrameIfApplicable( |
| 84 DevToolsAgentHost::List* result, | 87 DevToolsAgentHost::List* result, |
| 85 RenderFrameHost* host); | 88 RenderFrameHost* host); |
| 86 | 89 |
| 87 // DevToolsAgentHostImpl overrides. | 90 // DevToolsAgentHostImpl overrides. |
| 88 void Attach() override; | 91 void Attach() override; |
| 89 void Detach() override; | 92 void Detach() override; |
| 90 void InspectElement(int x, int y) override; | 93 void InspectElement(int x, int y) override; |
| 91 | 94 |
| 92 // WebContentsObserver overrides. | 95 // WebContentsObserver overrides. |
| 93 void DidStartNavigation(NavigationHandle* navigation_handle) override; | |
| 94 void ReadyToCommitNavigation(NavigationHandle* navigation_handle) override; | 96 void ReadyToCommitNavigation(NavigationHandle* navigation_handle) override; |
| 95 void DidFinishNavigation(NavigationHandle* navigation_handle) override; | 97 void DidFinishNavigation(NavigationHandle* navigation_handle) override; |
| 96 void RenderFrameHostChanged(RenderFrameHost* old_host, | 98 void RenderFrameHostChanged(RenderFrameHost* old_host, |
| 97 RenderFrameHost* new_host) override; | 99 RenderFrameHost* new_host) override; |
| 98 void FrameDeleted(RenderFrameHost* rfh) override; | 100 void FrameDeleted(RenderFrameHost* rfh) override; |
| 99 void RenderFrameDeleted(RenderFrameHost* rfh) override; | 101 void RenderFrameDeleted(RenderFrameHost* rfh) override; |
| 100 void RenderProcessGone(base::TerminationStatus status) override; | 102 void RenderProcessGone(base::TerminationStatus status) override; |
| 101 bool OnMessageReceived(const IPC::Message& message, | 103 bool OnMessageReceived(const IPC::Message& message, |
| 102 RenderFrameHost* render_frame_host) override; | 104 RenderFrameHost* render_frame_host) override; |
| 103 bool OnMessageReceived(const IPC::Message& message) override; | 105 bool OnMessageReceived(const IPC::Message& message) override; |
| 104 void DidAttachInterstitialPage() override; | 106 void DidAttachInterstitialPage() override; |
| 105 void DidDetachInterstitialPage() override; | 107 void DidDetachInterstitialPage() override; |
| 106 void DidCommitProvisionalLoadForFrame( | 108 void DidCommitProvisionalLoadForFrame( |
| 107 RenderFrameHost* render_frame_host, | 109 RenderFrameHost* render_frame_host, |
| 108 const GURL& url, | 110 const GURL& url, |
| 109 ui::PageTransition transition_type) override; | 111 ui::PageTransition transition_type) override; |
| 110 void DidFailProvisionalLoad( | 112 void DidFailProvisionalLoad( |
| 111 RenderFrameHost* render_frame_host, | 113 RenderFrameHost* render_frame_host, |
| 112 const GURL& validated_url, | 114 const GURL& validated_url, |
| 113 int error_code, | 115 int error_code, |
| 114 const base::string16& error_description, | 116 const base::string16& error_description, |
| 115 bool was_ignored_by_handler) override; | 117 bool was_ignored_by_handler) override; |
| 116 | 118 |
| 117 void AboutToNavigateRenderFrame(RenderFrameHost* old_host, | 119 void AboutToNavigateRenderFrame(RenderFrameHost* old_host, |
| 118 RenderFrameHost* new_host); | 120 RenderFrameHost* new_host); |
| 121 void AboutToNavigate(NavigationHandle* navigation_handle); |
| 119 | 122 |
| 120 void DispatchBufferedProtocolMessagesIfNecessary(); | 123 void DispatchBufferedProtocolMessagesIfNecessary(); |
| 121 | 124 |
| 122 void SetPending(RenderFrameHostImpl* host); | 125 void SetPending(RenderFrameHostImpl* host); |
| 123 void CommitPending(); | 126 void CommitPending(); |
| 124 void DiscardPending(); | 127 void DiscardPending(); |
| 125 void UpdateProtocolHandlers(RenderFrameHostImpl* host); | 128 void UpdateProtocolHandlers(RenderFrameHostImpl* host); |
| 126 | 129 |
| 127 bool IsChildFrame(); | 130 bool IsChildFrame(); |
| 128 | 131 |
| 129 void OnClientAttached(); | 132 void OnClientAttached(); |
| 130 void OnClientDetached(); | 133 void OnClientDetached(); |
| 131 | 134 |
| 132 void RenderFrameCrashed(); | 135 void RenderFrameCrashed(); |
| 133 void OnSwapCompositorFrame(const IPC::Message& message); | 136 void OnSwapCompositorFrame(const IPC::Message& message); |
| 134 void OnDispatchOnInspectorFrontend( | 137 void OnDispatchOnInspectorFrontend( |
| 135 RenderFrameHost* sender, | 138 RenderFrameHost* sender, |
| 136 const DevToolsMessageChunk& message); | 139 const DevToolsMessageChunk& message); |
| 137 void OnRequestNewWindow(RenderFrameHost* sender, int new_routing_id); | 140 void OnRequestNewWindow(RenderFrameHost* sender, int new_routing_id); |
| 138 void DestroyOnRenderFrameGone(); | 141 void DestroyOnRenderFrameGone(); |
| 139 | 142 |
| 140 bool MatchesMyTreeNode(NavigationHandle* navigation_handle); | |
| 141 | |
| 142 class FrameHostHolder; | 143 class FrameHostHolder; |
| 143 | 144 |
| 144 scoped_ptr<FrameHostHolder> current_; | 145 scoped_ptr<FrameHostHolder> current_; |
| 145 scoped_ptr<FrameHostHolder> pending_; | 146 scoped_ptr<FrameHostHolder> pending_; |
| 146 | 147 |
| 147 // Stores per-host state between DisconnectWebContents and ConnectWebContents. | 148 // Stores per-host state between DisconnectWebContents and ConnectWebContents. |
| 148 scoped_ptr<FrameHostHolder> disconnected_; | 149 scoped_ptr<FrameHostHolder> disconnected_; |
| 149 | 150 |
| 150 scoped_ptr<devtools::dom::DOMHandler> dom_handler_; | 151 scoped_ptr<devtools::dom::DOMHandler> dom_handler_; |
| 151 scoped_ptr<devtools::input::InputHandler> input_handler_; | 152 scoped_ptr<devtools::input::InputHandler> input_handler_; |
| (...skipping 11 matching lines...) Expand all Loading... |
| 163 scoped_ptr<PowerSaveBlockerImpl> power_save_blocker_; | 164 scoped_ptr<PowerSaveBlockerImpl> power_save_blocker_; |
| 164 #endif | 165 #endif |
| 165 scoped_ptr<DevToolsProtocolHandler> protocol_handler_; | 166 scoped_ptr<DevToolsProtocolHandler> protocol_handler_; |
| 166 bool current_frame_crashed_; | 167 bool current_frame_crashed_; |
| 167 | 168 |
| 168 // PlzNavigate | 169 // PlzNavigate |
| 169 | 170 |
| 170 // Handle that caused the setting of pending_. | 171 // Handle that caused the setting of pending_. |
| 171 NavigationHandle* pending_handle_; | 172 NavigationHandle* pending_handle_; |
| 172 | 173 |
| 173 // Navigation counter and queue for buffering protocol messages during a | 174 // List of handles currently navigating. |
| 174 // navigation. | 175 std::set<NavigationHandle*> navigating_handles_; |
| 175 int in_navigation_; | |
| 176 | 176 |
| 177 // <call_id> -> <session_id, message> | 177 // <call_id> -> <session_id, message> |
| 178 std::map<int, std::pair<int, std::string>> | 178 std::map<int, std::pair<int, std::string>> |
| 179 in_navigation_protocol_message_buffer_; | 179 in_navigation_protocol_message_buffer_; |
| 180 | 180 |
| 181 // The FrameTreeNode associated with this agent. | 181 // The FrameTreeNode associated with this agent. |
| 182 FrameTreeNode* frame_tree_node_; | 182 FrameTreeNode* frame_tree_node_; |
| 183 | 183 |
| 184 DISALLOW_COPY_AND_ASSIGN(RenderFrameDevToolsAgentHost); | 184 DISALLOW_COPY_AND_ASSIGN(RenderFrameDevToolsAgentHost); |
| 185 }; | 185 }; |
| 186 | 186 |
| 187 } // namespace content | 187 } // namespace content |
| 188 | 188 |
| 189 #endif // CONTENT_BROWSER_DEVTOOLS_RENDER_FRAME_DEVTOOLS_AGENT_HOST_H_ | 189 #endif // CONTENT_BROWSER_DEVTOOLS_RENDER_FRAME_DEVTOOLS_AGENT_HOST_H_ |
| OLD | NEW |