| 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_RENDERER_HOST_RENDER_VIEW_HOST_DELEGATE_H_ | 5 #ifndef CONTENT_BROWSER_RENDERER_HOST_RENDER_VIEW_HOST_DELEGATE_H_ |
| 6 #define CONTENT_BROWSER_RENDERER_HOST_RENDER_VIEW_HOST_DELEGATE_H_ | 6 #define CONTENT_BROWSER_RENDERER_HOST_RENDER_VIEW_HOST_DELEGATE_H_ |
| 7 #pragma once | 7 #pragma once |
| 8 | 8 |
| 9 #include <string> | 9 #include <string> |
| 10 | 10 |
| 11 #include "base/basictypes.h" | 11 #include "base/basictypes.h" |
| 12 #include "base/i18n/rtl.h" | 12 #include "base/i18n/rtl.h" |
| 13 #include "base/process_util.h" | 13 #include "base/process_util.h" |
| 14 #include "base/string16.h" | 14 #include "base/string16.h" |
| 15 #include "content/common/content_export.h" | 15 #include "content/common/content_export.h" |
| 16 #include "content/public/common/javascript_message_type.h" | 16 #include "content/public/common/javascript_message_type.h" |
| 17 #include "content/public/common/media_stream_request.h" |
| 17 #include "ipc/ipc_channel.h" | 18 #include "ipc/ipc_channel.h" |
| 18 #include "net/base/load_states.h" | 19 #include "net/base/load_states.h" |
| 19 #include "third_party/WebKit/Source/WebKit/chromium/public/WebPopupType.h" | 20 #include "third_party/WebKit/Source/WebKit/chromium/public/WebPopupType.h" |
| 20 #include "webkit/glue/window_open_disposition.h" | 21 #include "webkit/glue/window_open_disposition.h" |
| 21 | 22 |
| 22 class GURL; | 23 class GURL; |
| 23 class SkBitmap; | 24 class SkBitmap; |
| 24 class WebContentsImpl; | 25 class WebContentsImpl; |
| 25 class WebKeyboardEvent; | 26 class WebKeyboardEvent; |
| 26 struct ViewHostMsg_CreateWindow_Params; | 27 struct ViewHostMsg_CreateWindow_Params; |
| (...skipping 23 matching lines...) Expand all Loading... |
| 50 class RenderViewHostDelegateView; | 51 class RenderViewHostDelegateView; |
| 51 class SessionStorageNamespace; | 52 class SessionStorageNamespace; |
| 52 class WebContents; | 53 class WebContents; |
| 53 struct ContextMenuParams; | 54 struct ContextMenuParams; |
| 54 struct FileChooserParams; | 55 struct FileChooserParams; |
| 55 struct GlobalRequestID; | 56 struct GlobalRequestID; |
| 56 struct NativeWebKeyboardEvent; | 57 struct NativeWebKeyboardEvent; |
| 57 struct Referrer; | 58 struct Referrer; |
| 58 struct RendererPreferences; | 59 struct RendererPreferences; |
| 59 | 60 |
| 61 typedef base::Callback< void(const MediaStreamDevices&) > MediaResponseCallback; |
| 62 |
| 60 // | 63 // |
| 61 // RenderViewHostDelegate | 64 // RenderViewHostDelegate |
| 62 // | 65 // |
| 63 // An interface implemented by an object interested in knowing about the state | 66 // An interface implemented by an object interested in knowing about the state |
| 64 // of the RenderViewHost. | 67 // of the RenderViewHost. |
| 65 // | 68 // |
| 66 // This interface currently encompasses every type of message that was | 69 // This interface currently encompasses every type of message that was |
| 67 // previously being sent by WebContents itself. Some of these notifications | 70 // previously being sent by WebContents itself. Some of these notifications |
| 68 // may not be relevant to all users of RenderViewHost and we should consider | 71 // may not be relevant to all users of RenderViewHost and we should consider |
| 69 // exposing a more generic Send function on RenderViewHost and a response | 72 // exposing a more generic Send function on RenderViewHost and a response |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 107 // IPC::Channel::Listener implementation. | 110 // IPC::Channel::Listener implementation. |
| 108 // This is used to give the delegate a chance to filter IPC messages. | 111 // This is used to give the delegate a chance to filter IPC messages. |
| 109 virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE; | 112 virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE; |
| 110 | 113 |
| 111 // Gets the URL that is currently being displayed, if there is one. | 114 // Gets the URL that is currently being displayed, if there is one. |
| 112 virtual const GURL& GetURL() const; | 115 virtual const GURL& GetURL() const; |
| 113 | 116 |
| 114 // Return this object cast to a WebContents, if it is one. If the object is | 117 // Return this object cast to a WebContents, if it is one. If the object is |
| 115 // not a WebContents, returns NULL. DEPRECATED: Be sure to include brettw or | 118 // not a WebContents, returns NULL. DEPRECATED: Be sure to include brettw or |
| 116 // jam as reviewers before you use this method. http://crbug.com/82582 | 119 // jam as reviewers before you use this method. http://crbug.com/82582 |
| 117 virtual content::WebContents* GetAsWebContents(); | 120 virtual WebContents* GetAsWebContents(); |
| 118 | 121 |
| 119 // Return the rect where to display the resize corner, if any, otherwise | 122 // Return the rect where to display the resize corner, if any, otherwise |
| 120 // an empty rect. | 123 // an empty rect. |
| 121 virtual gfx::Rect GetRootWindowResizerRect() const = 0; | 124 virtual gfx::Rect GetRootWindowResizerRect() const = 0; |
| 122 | 125 |
| 123 // The RenderView is being constructed (message sent to the renderer process | 126 // The RenderView is being constructed (message sent to the renderer process |
| 124 // to construct a RenderView). Now is a good time to send other setup events | 127 // to construct a RenderView). Now is a good time to send other setup events |
| 125 // to the RenderView. This precedes any other commands to the RenderView. | 128 // to the RenderView. This precedes any other commands to the RenderView. |
| 126 virtual void RenderViewCreated(RenderViewHost* render_view_host) {} | 129 virtual void RenderViewCreated(RenderViewHost* render_view_host) {} |
| 127 | 130 |
| 128 // The RenderView has been constructed. | 131 // The RenderView has been constructed. |
| 129 virtual void RenderViewReady(RenderViewHost* render_view_host) {} | 132 virtual void RenderViewReady(RenderViewHost* render_view_host) {} |
| 130 | 133 |
| 131 // The RenderView died somehow (crashed or was killed by the user). | 134 // The RenderView died somehow (crashed or was killed by the user). |
| 132 virtual void RenderViewGone(RenderViewHost* render_view_host, | 135 virtual void RenderViewGone(RenderViewHost* render_view_host, |
| 133 base::TerminationStatus status, | 136 base::TerminationStatus status, |
| 134 int error_code) {} | 137 int error_code) {} |
| 135 | 138 |
| 136 // The RenderView is going to be deleted. This is called when each | 139 // The RenderView is going to be deleted. This is called when each |
| 137 // RenderView is going to be destroyed | 140 // RenderView is going to be destroyed |
| 138 virtual void RenderViewDeleted(RenderViewHost* render_view_host) {} | 141 virtual void RenderViewDeleted(RenderViewHost* render_view_host) {} |
| 139 | 142 |
| 140 // The RenderView started a provisional load for a given frame. | 143 // The RenderView started a provisional load for a given frame. |
| 141 virtual void DidStartProvisionalLoadForFrame( | 144 virtual void DidStartProvisionalLoadForFrame( |
| 142 content::RenderViewHost* render_view_host, | 145 RenderViewHost* render_view_host, |
| 143 int64 frame_id, | 146 int64 frame_id, |
| 144 bool main_frame, | 147 bool main_frame, |
| 145 const GURL& opener_url, | 148 const GURL& opener_url, |
| 146 const GURL& url) {} | 149 const GURL& url) {} |
| 147 | 150 |
| 148 // The RenderView processed a redirect during a provisional load. | 151 // The RenderView processed a redirect during a provisional load. |
| 149 // | 152 // |
| 150 // TODO(creis): Remove this method and have the pre-rendering code listen to | 153 // TODO(creis): Remove this method and have the pre-rendering code listen to |
| 151 // the ResourceDispatcherHost's RESOURCE_RECEIVED_REDIRECT notification | 154 // the ResourceDispatcherHost's RESOURCE_RECEIVED_REDIRECT notification |
| 152 // instead. See http://crbug.com/78512. | 155 // instead. See http://crbug.com/78512. |
| 153 virtual void DidRedirectProvisionalLoad( | 156 virtual void DidRedirectProvisionalLoad( |
| 154 content::RenderViewHost* render_view_host, | 157 RenderViewHost* render_view_host, |
| 155 int32 page_id, | 158 int32 page_id, |
| 156 const GURL& opener_url, | 159 const GURL& opener_url, |
| 157 const GURL& source_url, | 160 const GURL& source_url, |
| 158 const GURL& target_url) {} | 161 const GURL& target_url) {} |
| 159 | 162 |
| 160 // A provisional load in the RenderView failed. | 163 // A provisional load in the RenderView failed. |
| 161 virtual void DidFailProvisionalLoadWithError( | 164 virtual void DidFailProvisionalLoadWithError( |
| 162 content::RenderViewHost* render_view_host, | 165 RenderViewHost* render_view_host, |
| 163 const ViewHostMsg_DidFailProvisionalLoadWithError_Params& params) {} | 166 const ViewHostMsg_DidFailProvisionalLoadWithError_Params& params) {} |
| 164 | 167 |
| 165 // The RenderView was navigated to a different page. | 168 // The RenderView was navigated to a different page. |
| 166 virtual void DidNavigate(RenderViewHost* render_view_host, | 169 virtual void DidNavigate(RenderViewHost* render_view_host, |
| 167 const ViewHostMsg_FrameNavigate_Params& params) {} | 170 const ViewHostMsg_FrameNavigate_Params& params) {} |
| 168 | 171 |
| 169 // The state for the page changed and should be updated. | 172 // The state for the page changed and should be updated. |
| 170 virtual void UpdateState(RenderViewHost* render_view_host, | 173 virtual void UpdateState(RenderViewHost* render_view_host, |
| 171 int32 page_id, | 174 int32 page_id, |
| 172 const std::string& state) {} | 175 const std::string& state) {} |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 214 virtual void DocumentAvailableInMainFrame(RenderViewHost* render_view_host) {} | 217 virtual void DocumentAvailableInMainFrame(RenderViewHost* render_view_host) {} |
| 215 | 218 |
| 216 // The onload handler in the RenderView's main frame has completed. | 219 // The onload handler in the RenderView's main frame has completed. |
| 217 virtual void DocumentOnLoadCompletedInMainFrame( | 220 virtual void DocumentOnLoadCompletedInMainFrame( |
| 218 RenderViewHost* render_view_host, | 221 RenderViewHost* render_view_host, |
| 219 int32 page_id) {} | 222 int32 page_id) {} |
| 220 | 223 |
| 221 // The page wants to open a URL with the specified disposition. | 224 // The page wants to open a URL with the specified disposition. |
| 222 virtual void RequestOpenURL(RenderViewHost* rvh, | 225 virtual void RequestOpenURL(RenderViewHost* rvh, |
| 223 const GURL& url, | 226 const GURL& url, |
| 224 const content::Referrer& referrer, | 227 const Referrer& referrer, |
| 225 WindowOpenDisposition disposition, | 228 WindowOpenDisposition disposition, |
| 226 int64 source_frame_id) {} | 229 int64 source_frame_id) {} |
| 227 | 230 |
| 228 // The page wants to transfer the request to a new renderer. | 231 // The page wants to transfer the request to a new renderer. |
| 229 virtual void RequestTransferURL( | 232 virtual void RequestTransferURL( |
| 230 const GURL& url, | 233 const GURL& url, |
| 231 const content::Referrer& referrer, | 234 const Referrer& referrer, |
| 232 WindowOpenDisposition disposition, | 235 WindowOpenDisposition disposition, |
| 233 int64 source_frame_id, | 236 int64 source_frame_id, |
| 234 const content::GlobalRequestID& old_request_id) {} | 237 const GlobalRequestID& old_request_id) {} |
| 235 | 238 |
| 236 // The page wants to close the active view in this tab. | 239 // The page wants to close the active view in this tab. |
| 237 virtual void RouteCloseEvent(RenderViewHost* rvh) {} | 240 virtual void RouteCloseEvent(RenderViewHost* rvh) {} |
| 238 | 241 |
| 239 // The page wants to post a message to the active view in this tab. | 242 // The page wants to post a message to the active view in this tab. |
| 240 virtual void RouteMessageEvent( | 243 virtual void RouteMessageEvent( |
| 241 RenderViewHost* rvh, | 244 RenderViewHost* rvh, |
| 242 const ViewMsg_PostMessage_Params& params) {} | 245 const ViewMsg_PostMessage_Params& params) {} |
| 243 | 246 |
| 244 // A javascript message, confirmation or prompt should be shown. | 247 // A javascript message, confirmation or prompt should be shown. |
| 245 virtual void RunJavaScriptMessage(RenderViewHost* rvh, | 248 virtual void RunJavaScriptMessage(RenderViewHost* rvh, |
| 246 const string16& message, | 249 const string16& message, |
| 247 const string16& default_prompt, | 250 const string16& default_prompt, |
| 248 const GURL& frame_url, | 251 const GURL& frame_url, |
| 249 content::JavaScriptMessageType type, | 252 JavaScriptMessageType type, |
| 250 IPC::Message* reply_msg, | 253 IPC::Message* reply_msg, |
| 251 bool* did_suppress_message) {} | 254 bool* did_suppress_message) {} |
| 252 | 255 |
| 253 virtual void RunBeforeUnloadConfirm(RenderViewHost* rvh, | 256 virtual void RunBeforeUnloadConfirm(RenderViewHost* rvh, |
| 254 const string16& message, | 257 const string16& message, |
| 255 bool is_reload, | 258 bool is_reload, |
| 256 IPC::Message* reply_msg) {} | 259 IPC::Message* reply_msg) {} |
| 257 | 260 |
| 258 // A message was added to to the console. | 261 // A message was added to to the console. |
| 259 virtual bool AddMessageToConsole(int32 level, | 262 virtual bool AddMessageToConsole(int32 level, |
| 260 const string16& message, | 263 const string16& message, |
| 261 int32 line_no, | 264 int32 line_no, |
| 262 const string16& source_id); | 265 const string16& source_id); |
| 263 | 266 |
| 264 // Return a dummy RendererPreferences object that will be used by the renderer | 267 // Return a dummy RendererPreferences object that will be used by the renderer |
| 265 // associated with the owning RenderViewHost. | 268 // associated with the owning RenderViewHost. |
| 266 virtual content::RendererPreferences GetRendererPrefs( | 269 virtual RendererPreferences GetRendererPrefs( |
| 267 content::BrowserContext* browser_context) const = 0; | 270 BrowserContext* browser_context) const = 0; |
| 268 | 271 |
| 269 // Returns a WebPreferences object that will be used by the renderer | 272 // Returns a WebPreferences object that will be used by the renderer |
| 270 // associated with the owning render view host. | 273 // associated with the owning render view host. |
| 271 virtual webkit_glue::WebPreferences GetWebkitPrefs(); | 274 virtual webkit_glue::WebPreferences GetWebkitPrefs(); |
| 272 | 275 |
| 273 // Notification the user has made a gesture while focus was on the | 276 // Notification the user has made a gesture while focus was on the |
| 274 // page. This is used to avoid uninitiated user downloads (aka carpet | 277 // page. This is used to avoid uninitiated user downloads (aka carpet |
| 275 // bombing), see DownloadRequestLimiter for details. | 278 // bombing), see DownloadRequestLimiter for details. |
| 276 virtual void OnUserGesture() {} | 279 virtual void OnUserGesture() {} |
| 277 | 280 |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 312 // implementing global 'on hover' features external to the view. | 315 // implementing global 'on hover' features external to the view. |
| 313 virtual void HandleMouseMove() {} | 316 virtual void HandleMouseMove() {} |
| 314 virtual void HandleMouseDown() {} | 317 virtual void HandleMouseDown() {} |
| 315 virtual void HandleMouseLeave() {} | 318 virtual void HandleMouseLeave() {} |
| 316 virtual void HandleMouseUp() {} | 319 virtual void HandleMouseUp() {} |
| 317 virtual void HandleMouseActivate() {} | 320 virtual void HandleMouseActivate() {} |
| 318 | 321 |
| 319 // Called when a file selection is to be done. | 322 // Called when a file selection is to be done. |
| 320 virtual void RunFileChooser( | 323 virtual void RunFileChooser( |
| 321 RenderViewHost* render_view_host, | 324 RenderViewHost* render_view_host, |
| 322 const content::FileChooserParams& params) {} | 325 const FileChooserParams& params) {} |
| 323 | 326 |
| 324 // Notification that the page wants to go into or out of fullscreen mode. | 327 // Notification that the page wants to go into or out of fullscreen mode. |
| 325 virtual void ToggleFullscreenMode(bool enter_fullscreen) {} | 328 virtual void ToggleFullscreenMode(bool enter_fullscreen) {} |
| 326 virtual bool IsFullscreenForCurrentTab() const; | 329 virtual bool IsFullscreenForCurrentTab() const; |
| 327 | 330 |
| 328 // The contents' preferred size changed. | 331 // The contents' preferred size changed. |
| 329 virtual void UpdatePreferredSize(const gfx::Size& pref_size) {} | 332 virtual void UpdatePreferredSize(const gfx::Size& pref_size) {} |
| 330 | 333 |
| 331 // The contents auto-resized and the container should match it. | 334 // The contents auto-resized and the container should match it. |
| 332 virtual void ResizeDueToAutoResize(const gfx::Size& new_size) {} | 335 virtual void ResizeDueToAutoResize(const gfx::Size& new_size) {} |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 381 // Show the newly created widget with the specified bounds. | 384 // Show the newly created widget with the specified bounds. |
| 382 // The widget is identified by the route_id passed to CreateNewWidget. | 385 // The widget is identified by the route_id passed to CreateNewWidget. |
| 383 virtual void ShowCreatedWidget(int route_id, | 386 virtual void ShowCreatedWidget(int route_id, |
| 384 const gfx::Rect& initial_pos) {} | 387 const gfx::Rect& initial_pos) {} |
| 385 | 388 |
| 386 // Show the newly created full screen widget. Similar to above. | 389 // Show the newly created full screen widget. Similar to above. |
| 387 virtual void ShowCreatedFullscreenWidget(int route_id) {} | 390 virtual void ShowCreatedFullscreenWidget(int route_id) {} |
| 388 | 391 |
| 389 // A context menu should be shown, to be built using the context information | 392 // A context menu should be shown, to be built using the context information |
| 390 // provided in the supplied params. | 393 // provided in the supplied params. |
| 391 virtual void ShowContextMenu(const content::ContextMenuParams& params) {} | 394 virtual void ShowContextMenu(const ContextMenuParams& params) {} |
| 395 |
| 396 // The render view has requested access to media devices listed in |
| 397 // |request|, and the client should grant or deny that permission by |
| 398 // calling |callback|. |
| 399 virtual void RequestMediaAccessPermission( |
| 400 const MediaStreamRequest* request, |
| 401 const MediaResponseCallback& callback) {} |
| 392 | 402 |
| 393 protected: | 403 protected: |
| 394 virtual ~RenderViewHostDelegate() {} | 404 virtual ~RenderViewHostDelegate() {} |
| 395 }; | 405 }; |
| 396 | 406 |
| 397 } // namespace content | 407 } // namespace content |
| 398 | 408 |
| 399 #endif // CONTENT_BROWSER_RENDERER_HOST_RENDER_VIEW_HOST_DELEGATE_H_ | 409 #endif // CONTENT_BROWSER_RENDERER_HOST_RENDER_VIEW_HOST_DELEGATE_H_ |
| OLD | NEW |