Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(40)

Side by Side Diff: content/public/browser/render_frame_host.h

Issue 2310563002: Adds routed interface support between RenderFrameHost and RenderFrame (Closed)
Patch Set: . Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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_PUBLIC_BROWSER_RENDER_FRAME_HOST_H_ 5 #ifndef CONTENT_PUBLIC_BROWSER_RENDER_FRAME_HOST_H_
6 #define CONTENT_PUBLIC_BROWSER_RENDER_FRAME_HOST_H_ 6 #define CONTENT_PUBLIC_BROWSER_RENDER_FRAME_HOST_H_
7 7
8 #include <string> 8 #include <string>
9 9
10 #include "base/callback_forward.h" 10 #include "base/callback_forward.h"
11 #include "build/build_config.h" 11 #include "build/build_config.h"
12 #include "content/common/content_export.h" 12 #include "content/common/content_export.h"
13 #include "content/public/browser/render_process_host.h"
13 #include "content/public/common/console_message_level.h" 14 #include "content/public/common/console_message_level.h"
14 #include "content/public/common/file_chooser_params.h" 15 #include "content/public/common/file_chooser_params.h"
15 #include "ipc/ipc_listener.h" 16 #include "ipc/ipc_listener.h"
16 #include "ipc/ipc_sender.h" 17 #include "ipc/ipc_sender.h"
18 #include "mojo/public/cpp/bindings/associated_interface_ptr.h"
Sam McNally 2016/09/09 05:33:14 I don't think these extra includes are needed anym
Ken Rockot(use gerrit already) 2016/09/09 16:01:50 Removed
19 #include "mojo/public/cpp/bindings/scoped_interface_endpoint_handle.h"
17 #include "third_party/WebKit/public/platform/WebPageVisibilityState.h" 20 #include "third_party/WebKit/public/platform/WebPageVisibilityState.h"
18 #include "ui/gfx/geometry/rect.h" 21 #include "ui/gfx/geometry/rect.h"
19 #include "ui/gfx/native_widget_types.h" 22 #include "ui/gfx/native_widget_types.h"
20 #include "url/gurl.h" 23 #include "url/gurl.h"
21 #include "url/origin.h" 24 #include "url/origin.h"
22 25
23 namespace base { 26 namespace base {
24 class Value; 27 class Value;
25 } 28 }
26 29
27 namespace shell { 30 namespace shell {
28 class InterfaceRegistry; 31 class InterfaceRegistry;
29 class InterfaceProvider; 32 class InterfaceProvider;
30 } 33 }
31 34
32 namespace content { 35 namespace content {
33 class RenderProcessHost; 36 class AssociatedInterfaceProvider;
37 class AssociatedInterfaceRegistry;
34 class RenderViewHost; 38 class RenderViewHost;
35 class RenderWidgetHostView; 39 class RenderWidgetHostView;
36 class SiteInstance; 40 class SiteInstance;
37 struct FileChooserFileInfo; 41 struct FileChooserFileInfo;
38 42
39 // The interface provides a communication conduit with a frame in the renderer. 43 // The interface provides a communication conduit with a frame in the renderer.
40 class CONTENT_EXPORT RenderFrameHost : public IPC::Listener, 44 class CONTENT_EXPORT RenderFrameHost : public IPC::Listener,
41 public IPC::Sender { 45 public IPC::Sender {
42 public: 46 public:
43 // Returns the RenderFrameHost given its ID and the ID of its render process. 47 // Returns the RenderFrameHost given its ID and the ID of its render process.
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after
184 virtual RenderViewHost* GetRenderViewHost() = 0; 188 virtual RenderViewHost* GetRenderViewHost() = 0;
185 189
186 // Returns the InterfaceRegistry that this process uses to expose interfaces 190 // Returns the InterfaceRegistry that this process uses to expose interfaces
187 // to the application running in this frame. 191 // to the application running in this frame.
188 virtual shell::InterfaceRegistry* GetInterfaceRegistry() = 0; 192 virtual shell::InterfaceRegistry* GetInterfaceRegistry() = 0;
189 193
190 // Returns the InterfaceProvider that this process can use to bind 194 // Returns the InterfaceProvider that this process can use to bind
191 // interfaces exposed to it by the application running in this frame. 195 // interfaces exposed to it by the application running in this frame.
192 virtual shell::InterfaceProvider* GetRemoteInterfaces() = 0; 196 virtual shell::InterfaceProvider* GetRemoteInterfaces() = 0;
193 197
198 // Returns the AssociatedInterfaceRegistry for this frame. This can be used
199 // to add frame-specific Channel-associated interfaces to this frame.
200 virtual AssociatedInterfaceRegistry* GetAssociatedInterfaceRegistry() = 0;
201
202 // Returns the AssociatedInterfaceProvider that this process can use to access
203 // remote frame-specific Channel-associated interfaces for this frame.
204 virtual AssociatedInterfaceProvider* GetRemoteAssociatedInterfaces() = 0;
205
194 // Returns the visibility state of the frame. The different visibility states 206 // Returns the visibility state of the frame. The different visibility states
195 // of a frame are defined in Blink. 207 // of a frame are defined in Blink.
196 virtual blink::WebPageVisibilityState GetVisibilityState() = 0; 208 virtual blink::WebPageVisibilityState GetVisibilityState() = 0;
197 209
198 // Returns whether the RenderFrame in the renderer process has been created 210 // Returns whether the RenderFrame in the renderer process has been created
199 // and still has a connection. This is valid for all frames. 211 // and still has a connection. This is valid for all frames.
200 virtual bool IsRenderFrameLive() = 0; 212 virtual bool IsRenderFrameLive() = 0;
201 213
202 // Get the number of proxies to this frame, in all processes. Exposed for 214 // Get the number of proxies to this frame, in all processes. Exposed for
203 // use by resource metrics. 215 // use by resource metrics.
(...skipping 16 matching lines...) Expand all
220 232
221 private: 233 private:
222 // This interface should only be implemented inside content. 234 // This interface should only be implemented inside content.
223 friend class RenderFrameHostImpl; 235 friend class RenderFrameHostImpl;
224 RenderFrameHost() {} 236 RenderFrameHost() {}
225 }; 237 };
226 238
227 } // namespace content 239 } // namespace content
228 240
229 #endif // CONTENT_PUBLIC_BROWSER_RENDER_FRAME_HOST_H_ 241 #endif // CONTENT_PUBLIC_BROWSER_RENDER_FRAME_HOST_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698