OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 CHROME_BROWSER_RENDERER_HOST_RENDER_VIEW_HOST_DELEGATE_H_ | 5 #ifndef CHROME_BROWSER_RENDERER_HOST_RENDER_VIEW_HOST_DELEGATE_H_ |
6 #define CHROME_BROWSER_RENDERER_HOST_RENDER_VIEW_HOST_DELEGATE_H_ | 6 #define CHROME_BROWSER_RENDERER_HOST_RENDER_VIEW_HOST_DELEGATE_H_ |
7 #pragma once | 7 #pragma once |
8 | 8 |
9 #include <string> | 9 // TODO(jam): remove this file when all files have been converted. |
10 #include <vector> | 10 #include "content/browser/renderer_host/render_view_host_delegate.h" |
11 | |
12 #include "base/basictypes.h" | |
13 #include "base/process_util.h" | |
14 #include "base/ref_counted.h" | |
15 #include "base/string16.h" | |
16 #include "chrome/common/content_settings_types.h" | |
17 #include "chrome/common/dom_storage_common.h" | |
18 #include "chrome/common/translate_errors.h" | |
19 #include "chrome/common/view_types.h" | |
20 #include "chrome/common/window_container_type.h" | |
21 #include "ipc/ipc_channel.h" | |
22 #include "net/base/load_states.h" | |
23 #include "third_party/WebKit/Source/WebKit/chromium/public/WebDragOperation.h" | |
24 #include "third_party/WebKit/Source/WebKit/chromium/public/WebPopupType.h" | |
25 #include "webkit/glue/window_open_disposition.h" | |
26 | |
27 | |
28 class AutomationResourceRoutingDelegate; | |
29 class BackgroundContents; | |
30 struct BookmarkNodeData; | |
31 class BookmarkNode; | |
32 struct ContextMenuParams; | |
33 class FilePath; | |
34 class GURL; | |
35 class ListValue; | |
36 struct NativeWebKeyboardEvent; | |
37 class NavigationEntry; | |
38 class Profile; | |
39 struct RendererPreferences; | |
40 class RenderProcessHost; | |
41 class RenderViewHost; | |
42 class ResourceRedirectDetails; | |
43 class ResourceRequestDetails; | |
44 class SkBitmap; | |
45 class SSLClientAuthHandler; | |
46 class SSLAddCertHandler; | |
47 class TabContents; | |
48 struct ThumbnailScore; | |
49 struct ViewHostMsg_CreateWindow_Params; | |
50 struct ViewHostMsg_DomMessage_Params; | |
51 struct ViewHostMsg_FrameNavigate_Params; | |
52 struct WebApplicationInfo; | |
53 struct WebDropData; | |
54 struct WebMenuItem; | |
55 class WebKeyboardEvent; | |
56 struct WebPreferences; | |
57 | |
58 namespace base { | |
59 class WaitableEvent; | |
60 } | |
61 | |
62 namespace gfx { | |
63 class Point; | |
64 class Rect; | |
65 class Size; | |
66 } | |
67 | |
68 namespace IPC { | |
69 class Message; | |
70 } | |
71 | |
72 namespace net { | |
73 class CookieList; | |
74 class CookieOptions; | |
75 } | |
76 | |
77 namespace webkit_glue { | |
78 struct FormData; | |
79 class FormField; | |
80 struct PasswordForm; | |
81 } | |
82 | |
83 // | |
84 // RenderViewHostDelegate | |
85 // | |
86 // An interface implemented by an object interested in knowing about the state | |
87 // of the RenderViewHost. | |
88 // | |
89 // This interface currently encompasses every type of message that was | |
90 // previously being sent by TabContents itself. Some of these notifications | |
91 // may not be relevant to all users of RenderViewHost and we should consider | |
92 // exposing a more generic Send function on RenderViewHost and a response | |
93 // listener here to serve that need. | |
94 // | |
95 class RenderViewHostDelegate : public IPC::Channel::Listener { | |
96 public: | |
97 // View ---------------------------------------------------------------------- | |
98 // Functions that can be routed directly to a view-specific class. | |
99 | |
100 class View { | |
101 public: | |
102 // The page is trying to open a new page (e.g. a popup window). The window | |
103 // should be created associated with the given route, but it should not be | |
104 // shown yet. That should happen in response to ShowCreatedWindow. | |
105 // |params.window_container_type| describes the type of RenderViewHost | |
106 // container that is requested -- in particular, the window.open call may | |
107 // have specified 'background' and 'persistent' in the feature string. | |
108 // | |
109 // The passed |params.frame_name| parameter is the name parameter that was | |
110 // passed to window.open(), and will be empty if none was passed. | |
111 // | |
112 // Note: this is not called "CreateWindow" because that will clash with | |
113 // the Windows function which is actually a #define. | |
114 // | |
115 // NOTE: this takes ownership of @modal_dialog_event | |
116 virtual void CreateNewWindow( | |
117 int route_id, | |
118 const ViewHostMsg_CreateWindow_Params& params) = 0; | |
119 | |
120 // The page is trying to open a new widget (e.g. a select popup). The | |
121 // widget should be created associated with the given route, but it should | |
122 // not be shown yet. That should happen in response to ShowCreatedWidget. | |
123 // |popup_type| indicates if the widget is a popup and what kind of popup it | |
124 // is (select, autofill...). | |
125 virtual void CreateNewWidget(int route_id, | |
126 WebKit::WebPopupType popup_type) = 0; | |
127 | |
128 // Creates a full screen RenderWidget. Similar to above. | |
129 virtual void CreateNewFullscreenWidget(int route_id) = 0; | |
130 | |
131 // Show a previously created page with the specified disposition and bounds. | |
132 // The window is identified by the route_id passed to CreateNewWindow. | |
133 // | |
134 // Note: this is not called "ShowWindow" because that will clash with | |
135 // the Windows function which is actually a #define. | |
136 virtual void ShowCreatedWindow(int route_id, | |
137 WindowOpenDisposition disposition, | |
138 const gfx::Rect& initial_pos, | |
139 bool user_gesture) = 0; | |
140 | |
141 // Show the newly created widget with the specified bounds. | |
142 // The widget is identified by the route_id passed to CreateNewWidget. | |
143 virtual void ShowCreatedWidget(int route_id, | |
144 const gfx::Rect& initial_pos) = 0; | |
145 | |
146 // Show the newly created full screen widget. Similar to above. | |
147 virtual void ShowCreatedFullscreenWidget(int route_id) = 0; | |
148 | |
149 // A context menu should be shown, to be built using the context information | |
150 // provided in the supplied params. | |
151 virtual void ShowContextMenu(const ContextMenuParams& params) = 0; | |
152 | |
153 // Shows a popup menu with the specified items. | |
154 // This method should call RenderViewHost::DidSelectPopupMenuItemAt() or | |
155 // RenderViewHost::DidCancelPopupMenu() ased on the user action. | |
156 virtual void ShowPopupMenu(const gfx::Rect& bounds, | |
157 int item_height, | |
158 double item_font_size, | |
159 int selected_item, | |
160 const std::vector<WebMenuItem>& items, | |
161 bool right_aligned) = 0; | |
162 | |
163 // The user started dragging content of the specified type within the | |
164 // RenderView. Contextual information about the dragged content is supplied | |
165 // by WebDropData. | |
166 virtual void StartDragging(const WebDropData& drop_data, | |
167 WebKit::WebDragOperationsMask allowed_ops, | |
168 const SkBitmap& image, | |
169 const gfx::Point& image_offset) = 0; | |
170 | |
171 // The page wants to update the mouse cursor during a drag & drop operation. | |
172 // |operation| describes the current operation (none, move, copy, link.) | |
173 virtual void UpdateDragCursor(WebKit::WebDragOperation operation) = 0; | |
174 | |
175 // Notification that view for this delegate got the focus. | |
176 virtual void GotFocus() = 0; | |
177 | |
178 // Callback to inform the browser that the page is returning the focus to | |
179 // the browser's chrome. If reverse is true, it means the focus was | |
180 // retrieved by doing a Shift-Tab. | |
181 virtual void TakeFocus(bool reverse) = 0; | |
182 | |
183 // Notification that the view has lost capture. | |
184 virtual void LostCapture() = 0; | |
185 | |
186 // The page wants the hosting window to activate/deactivate itself (it | |
187 // called the JavaScript window.focus()/blur() method). | |
188 virtual void Activate() = 0; | |
189 virtual void Deactivate() = 0; | |
190 | |
191 // Callback to give the browser a chance to handle the specified keyboard | |
192 // event before sending it to the renderer. | |
193 // Returns true if the |event| was handled. Otherwise, if the |event| would | |
194 // be handled in HandleKeyboardEvent() method as a normal keyboard shortcut, | |
195 // |*is_keyboard_shortcut| should be set to true. | |
196 virtual bool PreHandleKeyboardEvent(const NativeWebKeyboardEvent& event, | |
197 bool* is_keyboard_shortcut) = 0; | |
198 | |
199 // Callback to inform the browser that the renderer did not process the | |
200 // specified events. This gives an opportunity to the browser to process the | |
201 // event (used for keyboard shortcuts). | |
202 virtual void HandleKeyboardEvent(const NativeWebKeyboardEvent& event) = 0; | |
203 | |
204 // Notifications about mouse events in this view. This is useful for | |
205 // implementing global 'on hover' features external to the view. | |
206 virtual void HandleMouseMove() = 0; | |
207 virtual void HandleMouseDown() = 0; | |
208 virtual void HandleMouseLeave() = 0; | |
209 virtual void HandleMouseUp() = 0; | |
210 virtual void HandleMouseActivate() = 0; | |
211 | |
212 // The contents' preferred size changed. | |
213 virtual void UpdatePreferredSize(const gfx::Size& pref_size) = 0; | |
214 | |
215 protected: | |
216 virtual ~View() {} | |
217 }; | |
218 | |
219 // RendererManagerment ------------------------------------------------------- | |
220 // Functions for managing switching of Renderers. For TabContents, this is | |
221 // implemented by the RenderViewHostManager | |
222 | |
223 class RendererManagement { | |
224 public: | |
225 // Notification whether we should close the page, after an explicit call to | |
226 // AttemptToClosePage. This is called before a cross-site request or before | |
227 // a tab/window is closed (as indicated by the first parameter) to allow the | |
228 // appropriate renderer to approve or deny the request. |proceed| indicates | |
229 // whether the user chose to proceed. | |
230 virtual void ShouldClosePage(bool for_cross_site_transition, | |
231 bool proceed) = 0; | |
232 | |
233 // Called by ResourceDispatcherHost when a response for a pending cross-site | |
234 // request is received. The ResourceDispatcherHost will pause the response | |
235 // until the onunload handler of the previous renderer is run. | |
236 virtual void OnCrossSiteResponse(int new_render_process_host_id, | |
237 int new_request_id) = 0; | |
238 | |
239 // Called the ResourceDispatcherHost's associate CrossSiteRequestHandler | |
240 // when a cross-site navigation has been canceled. | |
241 virtual void OnCrossSiteNavigationCanceled() = 0; | |
242 | |
243 protected: | |
244 virtual ~RendererManagement() {} | |
245 }; | |
246 | |
247 // ContentSettings------------------------------------------------------------ | |
248 // Interface for content settings related events. | |
249 | |
250 class ContentSettings { | |
251 public: | |
252 // Called when content in the current page was blocked due to the user's | |
253 // content settings. | |
254 virtual void OnContentBlocked(ContentSettingsType type, | |
255 const std::string& resource_identifier) = 0; | |
256 | |
257 // Called when cookies for the given URL were read either from within the | |
258 // current page or while loading it. |blocked_by_policy| should be true, if | |
259 // reading cookies was blocked due to the user's content settings. In that | |
260 // case, this function should invoke OnContentBlocked. | |
261 virtual void OnCookiesRead( | |
262 const GURL& url, | |
263 const net::CookieList& cookie_list, | |
264 bool blocked_by_policy) = 0; | |
265 | |
266 // Called when a specific cookie in the current page was changed. | |
267 // |blocked_by_policy| should be true, if the cookie was blocked due to the | |
268 // user's content settings. In that case, this function should invoke | |
269 // OnContentBlocked. | |
270 virtual void OnCookieChanged(const GURL& url, | |
271 const std::string& cookie_line, | |
272 const net::CookieOptions& options, | |
273 bool blocked_by_policy) = 0; | |
274 | |
275 // Called when a specific indexed db factory in the current page was | |
276 // accessed. If access was blocked due to the user's content settings, | |
277 // |blocked_by_policy| should be true, and this function should invoke | |
278 // OnContentBlocked. | |
279 virtual void OnIndexedDBAccessed(const GURL& url, | |
280 const string16& description, | |
281 bool blocked_by_policy) = 0; | |
282 | |
283 // Called when a specific local storage area in the current page was | |
284 // accessed. If access was blocked due to the user's content settings, | |
285 // |blocked_by_policy| should be true, and this function should invoke | |
286 // OnContentBlocked. | |
287 virtual void OnLocalStorageAccessed(const GURL& url, | |
288 DOMStorageType storage_type, | |
289 bool blocked_by_policy) = 0; | |
290 | |
291 // Called when a specific Web database in the current page was accessed. If | |
292 // access was blocked due to the user's content settings, | |
293 // |blocked_by_policy| should eb true, and this function should invoke | |
294 // OnContentBlocked. | |
295 virtual void OnWebDatabaseAccessed(const GURL& url, | |
296 const string16& name, | |
297 const string16& display_name, | |
298 unsigned long estimated_size, | |
299 bool blocked_by_policy) = 0; | |
300 | |
301 // Called when a specific appcache in the current page was accessed. If | |
302 // access was blocked due to the user's content settings, | |
303 // |blocked_by_policy| should eb true, and this function should invoke | |
304 // OnContentBlocked. | |
305 virtual void OnAppCacheAccessed(const GURL& manifest_url, | |
306 bool blocked_by_policy) = 0; | |
307 | |
308 // Called when geolocation permission was set in a frame on the current | |
309 // page. | |
310 virtual void OnGeolocationPermissionSet(const GURL& requesting_frame, | |
311 bool allowed) = 0; | |
312 | |
313 protected: | |
314 virtual ~ContentSettings() {} | |
315 }; | |
316 | |
317 // BookmarkDrag -------------------------------------------------------------- | |
318 // Interface for forwarding bookmark drag and drop to extenstions. | |
319 | |
320 class BookmarkDrag { | |
321 public: | |
322 virtual void OnDragEnter(const BookmarkNodeData& data) = 0; | |
323 virtual void OnDragOver(const BookmarkNodeData& data) = 0; | |
324 virtual void OnDragLeave(const BookmarkNodeData& data) = 0; | |
325 virtual void OnDrop(const BookmarkNodeData& data) = 0; | |
326 | |
327 protected: | |
328 virtual ~BookmarkDrag() {} | |
329 }; | |
330 | |
331 // SSL ----------------------------------------------------------------------- | |
332 // Interface for UI and other RenderViewHost-specific interactions with SSL. | |
333 | |
334 class SSL { | |
335 public: | |
336 // Displays a dialog to select client certificates from |request_info|, | |
337 // returning them to |handler|. | |
338 virtual void ShowClientCertificateRequestDialog( | |
339 scoped_refptr<SSLClientAuthHandler> handler) = 0; | |
340 | |
341 // Called when |handler| encounters an error in verifying a | |
342 // received client certificate. Note that, because CAs often will | |
343 // not send us intermediate certificates, the verification we can | |
344 // do is minimal: we verify the certificate is parseable, that we | |
345 // have the corresponding private key, and that the certificate | |
346 // has not expired. | |
347 virtual void OnVerifyClientCertificateError( | |
348 scoped_refptr<SSLAddCertHandler> handler, int error_code) = 0; | |
349 | |
350 // Called when |handler| requests the user's confirmation in adding a | |
351 // client certificate. | |
352 virtual void AskToAddClientCertificate( | |
353 scoped_refptr<SSLAddCertHandler> handler) = 0; | |
354 | |
355 // Called when |handler| successfully adds a client certificate. | |
356 virtual void OnAddClientCertificateSuccess( | |
357 scoped_refptr<SSLAddCertHandler> handler) = 0; | |
358 | |
359 // Called when |handler| encounters an error adding a client certificate. | |
360 virtual void OnAddClientCertificateError( | |
361 scoped_refptr<SSLAddCertHandler> handler, int error_code) = 0; | |
362 | |
363 // Called when |handler| has completed, so the delegate may release any | |
364 // state accumulated. | |
365 virtual void OnAddClientCertificateFinished( | |
366 scoped_refptr<SSLAddCertHandler> handler) = 0; | |
367 | |
368 protected: | |
369 virtual ~SSL() {} | |
370 }; | |
371 | |
372 // --------------------------------------------------------------------------- | |
373 | |
374 // Returns the current delegate associated with a feature. May return NULL if | |
375 // there is no corresponding delegate. | |
376 virtual View* GetViewDelegate(); | |
377 virtual RendererManagement* GetRendererManagementDelegate(); | |
378 virtual ContentSettings* GetContentSettingsDelegate(); | |
379 | |
380 virtual BookmarkDrag* GetBookmarkDragDelegate(); | |
381 virtual SSL* GetSSLDelegate(); | |
382 | |
383 // Return the delegate for registering RenderViewHosts for automation resource | |
384 // routing. | |
385 virtual AutomationResourceRoutingDelegate* | |
386 GetAutomationResourceRoutingDelegate(); | |
387 | |
388 // IPC::Channel::Listener implementation. | |
389 // This is used to give the delegate a chance to filter IPC messages. | |
390 virtual bool OnMessageReceived(const IPC::Message& message); | |
391 | |
392 // Gets the URL that is currently being displayed, if there is one. | |
393 virtual const GURL& GetURL() const; | |
394 | |
395 // Return this object cast to a TabContents, if it is one. If the object is | |
396 // not a TabContents, returns NULL. DEPRECATED: Be sure to include brettw and | |
397 // jam as reviewers before you use this method. | |
398 virtual TabContents* GetAsTabContents(); | |
399 | |
400 // Return this object cast to a BackgroundContents, if it is one. If the | |
401 // object is not a BackgroundContents, returns NULL. | |
402 virtual BackgroundContents* GetAsBackgroundContents(); | |
403 | |
404 // Return id number of browser window which this object is attached to. If no | |
405 // browser window is attached to, just return -1. | |
406 virtual int GetBrowserWindowID() const = 0; | |
407 | |
408 // Return type of RenderView which is attached with this object. | |
409 virtual ViewType::Type GetRenderViewType() const = 0; | |
410 | |
411 // The RenderView is being constructed (message sent to the renderer process | |
412 // to construct a RenderView). Now is a good time to send other setup events | |
413 // to the RenderView. This precedes any other commands to the RenderView. | |
414 virtual void RenderViewCreated(RenderViewHost* render_view_host) {} | |
415 | |
416 // The RenderView has been constructed. | |
417 virtual void RenderViewReady(RenderViewHost* render_view_host) {} | |
418 | |
419 // The RenderView died somehow (crashed or was killed by the user). | |
420 virtual void RenderViewGone(RenderViewHost* render_view_host, | |
421 base::TerminationStatus status, | |
422 int error_code) {} | |
423 | |
424 // The RenderView is going to be deleted. This is called when each | |
425 // RenderView is going to be destroyed | |
426 virtual void RenderViewDeleted(RenderViewHost* render_view_host) {} | |
427 | |
428 // The RenderView was navigated to a different page. | |
429 virtual void DidNavigate(RenderViewHost* render_view_host, | |
430 const ViewHostMsg_FrameNavigate_Params& params) {} | |
431 | |
432 // The state for the page changed and should be updated. | |
433 virtual void UpdateState(RenderViewHost* render_view_host, | |
434 int32 page_id, | |
435 const std::string& state) {} | |
436 | |
437 // The page's title was changed and should be updated. | |
438 virtual void UpdateTitle(RenderViewHost* render_view_host, | |
439 int32 page_id, | |
440 const std::wstring& title) {} | |
441 | |
442 // The page's encoding was changed and should be updated. | |
443 virtual void UpdateEncoding(RenderViewHost* render_view_host, | |
444 const std::string& encoding) {} | |
445 | |
446 // The destination URL has changed should be updated | |
447 virtual void UpdateTargetURL(int32 page_id, const GURL& url) {} | |
448 | |
449 // The thumbnail representation of the page changed and should be updated. | |
450 virtual void UpdateThumbnail(const GURL& url, | |
451 const SkBitmap& bitmap, | |
452 const ThumbnailScore& score) {} | |
453 | |
454 // Inspector setting was changed and should be persisted. | |
455 virtual void UpdateInspectorSetting(const std::string& key, | |
456 const std::string& value) = 0; | |
457 | |
458 virtual void ClearInspectorSettings() = 0; | |
459 | |
460 // The page is trying to close the RenderView's representation in the client. | |
461 virtual void Close(RenderViewHost* render_view_host) {} | |
462 | |
463 // The page is trying to move the RenderView's representation in the client. | |
464 virtual void RequestMove(const gfx::Rect& new_bounds) {} | |
465 | |
466 // The RenderView began loading a new page. This corresponds to WebKit's | |
467 // notion of the throbber starting. | |
468 virtual void DidStartLoading() {} | |
469 | |
470 // The RenderView stopped loading a page. This corresponds to WebKit's | |
471 // notion of the throbber stopping. | |
472 virtual void DidStopLoading() {} | |
473 | |
474 // The RenderView made progress loading a page's top frame. | |
475 // |progress| is a value between 0 (nothing loaded) to 1.0 (top frame | |
476 // entirely loaded). | |
477 virtual void DidChangeLoadProgress(double progress) {} | |
478 | |
479 // The RenderView's main frame document element is ready. This happens when | |
480 // the document has finished parsing. | |
481 virtual void DocumentAvailableInMainFrame(RenderViewHost* render_view_host) {} | |
482 | |
483 // The onload handler in the RenderView's main frame has completed. | |
484 virtual void DocumentOnLoadCompletedInMainFrame( | |
485 RenderViewHost* render_view_host, | |
486 int32 page_id) {} | |
487 | |
488 // The page wants to open a URL with the specified disposition. | |
489 virtual void RequestOpenURL(const GURL& url, | |
490 const GURL& referrer, | |
491 WindowOpenDisposition disposition) {} | |
492 | |
493 // A DOM automation operation completed. The result of the operation is | |
494 // expressed in a json string. | |
495 virtual void DomOperationResponse(const std::string& json_string, | |
496 int automation_id) {} | |
497 | |
498 // A message was sent from HTML-based UI. | |
499 // By default we ignore such messages. | |
500 virtual void ProcessWebUIMessage( | |
501 const ViewHostMsg_DomMessage_Params& params) {} | |
502 | |
503 // A message for external host. By default we ignore such messages. | |
504 // |receiver| can be a receiving script and |message| is any | |
505 // arbitrary string that makes sense to the receiver. | |
506 virtual void ProcessExternalHostMessage(const std::string& message, | |
507 const std::string& origin, | |
508 const std::string& target) {} | |
509 | |
510 // A javascript message, confirmation or prompt should be shown. | |
511 virtual void RunJavaScriptMessage(const std::wstring& message, | |
512 const std::wstring& default_prompt, | |
513 const GURL& frame_url, | |
514 const int flags, | |
515 IPC::Message* reply_msg, | |
516 bool* did_suppress_message) {} | |
517 | |
518 virtual void RunBeforeUnloadConfirm(const std::wstring& message, | |
519 IPC::Message* reply_msg) {} | |
520 | |
521 virtual void ShowModalHTMLDialog(const GURL& url, int width, int height, | |
522 const std::string& json_arguments, | |
523 IPC::Message* reply_msg) {} | |
524 | |
525 // |url| is assigned to a server that can provide alternate error pages. If | |
526 // the returned URL is empty, the default error page built into WebKit will | |
527 // be used. | |
528 virtual GURL GetAlternateErrorPageURL() const; | |
529 | |
530 // Return a dummy RendererPreferences object that will be used by the renderer | |
531 // associated with the owning RenderViewHost. | |
532 virtual RendererPreferences GetRendererPrefs(Profile* profile) const = 0; | |
533 | |
534 // Returns a WebPreferences object that will be used by the renderer | |
535 // associated with the owning render view host. | |
536 virtual WebPreferences GetWebkitPrefs(); | |
537 | |
538 // Notification the user has made a gesture while focus was on the | |
539 // page. This is used to avoid uninitiated user downloads (aka carpet | |
540 // bombing), see DownloadRequestLimiter for details. | |
541 virtual void OnUserGesture() {} | |
542 | |
543 // Notification from the renderer host that blocked UI event occurred. | |
544 // This happens when there are tab-modal dialogs. In this case, the | |
545 // notification is needed to let us draw attention to the dialog (i.e. | |
546 // refocus on the modal dialog, flash title etc). | |
547 virtual void OnIgnoredUIEvent() {} | |
548 | |
549 // Notification that the renderer has become unresponsive. The | |
550 // delegate can use this notification to show a warning to the user. | |
551 virtual void RendererUnresponsive(RenderViewHost* render_view_host, | |
552 bool is_during_unload) {} | |
553 | |
554 // Notification that a previously unresponsive renderer has become | |
555 // responsive again. The delegate can use this notification to end the | |
556 // warning shown to the user. | |
557 virtual void RendererResponsive(RenderViewHost* render_view_host) {} | |
558 | |
559 // Notification that the RenderViewHost's load state changed. | |
560 virtual void LoadStateChanged(const GURL& url, net::LoadState load_state, | |
561 uint64 upload_position, uint64 upload_size) {} | |
562 | |
563 // Returns true if this view is used to host an external tab container. | |
564 virtual bool IsExternalTabContainer() const; | |
565 | |
566 // The RenderView has inserted one css file into page. | |
567 virtual void DidInsertCSS() {} | |
568 | |
569 // A different node in the page got focused. | |
570 virtual void FocusedNodeChanged(bool is_editable_node) {} | |
571 | |
572 // Updates the minimum and maximum zoom percentages. | |
573 virtual void UpdateZoomLimits(int minimum_percent, | |
574 int maximum_percent, | |
575 bool remember) {} | |
576 | |
577 // Notification that a worker process has crashed. | |
578 void WorkerCrashed() {} | |
579 | |
580 protected: | |
581 virtual ~RenderViewHostDelegate() {} | |
582 }; | |
583 | 11 |
584 #endif // CHROME_BROWSER_RENDERER_HOST_RENDER_VIEW_HOST_DELEGATE_H_ | 12 #endif // CHROME_BROWSER_RENDERER_HOST_RENDER_VIEW_HOST_DELEGATE_H_ |
OLD | NEW |