Index: chrome/browser/renderer_host/render_view_host.h |
=================================================================== |
--- chrome/browser/renderer_host/render_view_host.h (revision 75488) |
+++ chrome/browser/renderer_host/render_view_host.h (working copy) |
@@ -6,736 +6,7 @@ |
#define CHROME_BROWSER_RENDERER_HOST_RENDER_VIEW_HOST_H_ |
#pragma once |
-#include <string> |
-#include <vector> |
+// TODO(jam): remove this file when all files have been converted. |
+#include "content/browser/renderer_host/render_view_host.h" |
-#include "base/process_util.h" |
-#include "base/scoped_ptr.h" |
-#include "chrome/browser/renderer_host/render_widget_host.h" |
-#include "chrome/browser/ui/find_bar/find_bar_controller.h" |
-#include "chrome/common/content_settings_types.h" |
-#include "chrome/common/page_zoom.h" |
-#include "chrome/common/render_view_commands.h" |
-#include "chrome/common/translate_errors.h" |
-#include "chrome/common/view_types.h" |
-#include "chrome/common/window_container_type.h" |
-#include "net/base/load_states.h" |
-#include "third_party/WebKit/Source/WebKit/chromium/public/WebConsoleMessage.h" |
-#include "third_party/WebKit/Source/WebKit/chromium/public/WebDragOperation.h" |
-#include "third_party/WebKit/Source/WebKit/chromium/public/WebPopupType.h" |
-#include "third_party/WebKit/Source/WebKit/chromium/public/WebTextDirection.h" |
-#include "webkit/glue/webaccessibility.h" |
-#include "webkit/glue/window_open_disposition.h" |
- |
-class ChildProcessSecurityPolicy; |
-class FilePath; |
-class GURL; |
-class ListValue; |
-class RenderViewHostDelegate; |
-class SessionStorageNamespace; |
-class SiteInstance; |
-class SkBitmap; |
-class ViewMsg_Navigate; |
-struct ContentSettings; |
-struct ContextMenuParams; |
-struct MediaPlayerAction; |
-struct ThumbnailScore; |
-struct ViewHostMsg_AccessibilityNotification_Params; |
-struct ViewHostMsg_CreateWindow_Params; |
-struct ViewHostMsg_DomMessage_Params; |
-struct ViewHostMsg_ShowPopup_Params; |
-struct ViewMsg_Navigate_Params; |
-struct WebApplicationInfo; |
-struct WebDropData; |
-struct WebPreferences; |
-struct UserMetricsAction; |
- |
-namespace gfx { |
-class Point; |
-} // namespace gfx |
- |
-namespace webkit_glue { |
-struct CustomContextMenuContext; |
-struct WebAccessibility; |
-} // namespace webkit_glue |
- |
-namespace WebKit { |
-struct WebMediaPlayerAction; |
-} // namespace WebKit |
- |
-class URLRequestContextGetter; |
- |
-// |
-// RenderViewHost |
-// |
-// A RenderViewHost is responsible for creating and talking to a RenderView |
-// object in a child process. It exposes a high level API to users, for things |
-// like loading pages, adjusting the display and other browser functionality, |
-// which it translates into IPC messages sent over the IPC channel with the |
-// RenderView. It responds to all IPC messages sent by that RenderView and |
-// cracks them, calling a delegate object back with higher level types where |
-// possible. |
-// |
-// The intent of this class is to provide a view-agnostic communication |
-// conduit with a renderer. This is so we can build HTML views not only as |
-// TabContents (see TabContents for an example) but also as views, etc. |
-// |
-// The exact API of this object needs to be more thoroughly designed. Right |
-// now it mimics what TabContents exposed, which is a fairly large API and may |
-// contain things that are not relevant to a common subset of views. See also |
-// the comment in render_view_host_delegate.h about the size and scope of the |
-// delegate API. |
-// |
-// Right now, the concept of page navigation (both top level and frame) exists |
-// in the TabContents still, so if you instantiate one of these elsewhere, you |
-// will not be able to traverse pages back and forward. We need to determine |
-// if we want to bring that and other functionality down into this object so |
-// it can be shared by others. |
-// |
-class RenderViewHost : public RenderWidgetHost { |
- public: |
- // Returns the RenderViewHost given its ID and the ID of its render process. |
- // Returns NULL if the IDs do not correspond to a live RenderViewHost. |
- static RenderViewHost* FromID(int render_process_id, int render_view_id); |
- |
- // routing_id could be a valid route id, or it could be MSG_ROUTING_NONE, in |
- // which case RenderWidgetHost will create a new one. |
- // |
- // The session storage namespace parameter allows multiple render views and |
- // tab contentses to share the same session storage (part of the WebStorage |
- // spec) space. This is useful when restoring tabs, but most callers should |
- // pass in NULL which will cause a new SessionStorageNamespace to be created. |
- RenderViewHost(SiteInstance* instance, |
- RenderViewHostDelegate* delegate, |
- int routing_id, |
- SessionStorageNamespace* session_storage_namespace); |
- virtual ~RenderViewHost(); |
- |
- SiteInstance* site_instance() const { return instance_; } |
- RenderViewHostDelegate* delegate() const { return delegate_; } |
- void set_delegate(RenderViewHostDelegate* d) { delegate_ = d; } |
- |
- // Set up the RenderView child process. Virtual because it is overridden by |
- // TestRenderViewHost. If the |frame_name| parameter is non-empty, it is used |
- // as the name of the new top-level frame. |
- virtual bool CreateRenderView(const string16& frame_name); |
- |
- // Returns true if the RenderView is active and has not crashed. Virtual |
- // because it is overridden by TestRenderViewHost. |
- virtual bool IsRenderViewLive() const; |
- |
- base::TerminationStatus render_view_termination_status() const { |
- return render_view_termination_status_; |
- } |
- |
- // Send the renderer process the current preferences supplied by the |
- // RenderViewHostDelegate. |
- void SyncRendererPrefs(); |
- |
- // Sends the given navigation message. Use this rather than sending it |
- // yourself since this does the internal bookkeeping described below. This |
- // function takes ownership of the provided message pointer. |
- // |
- // If a cross-site request is in progress, we may be suspended while waiting |
- // for the onbeforeunload handler, so this function might buffer the message |
- // rather than sending it. |
- void Navigate(const ViewMsg_Navigate_Params& message); |
- |
- // Load the specified URL, this is a shortcut for Navigate(). |
- void NavigateToURL(const GURL& url); |
- |
- // Returns whether navigation messages are currently suspended for this |
- // RenderViewHost. Only true during a cross-site navigation, while waiting |
- // for the onbeforeunload handler. |
- bool are_navigations_suspended() const { return navigations_suspended_; } |
- |
- // Suspends (or unsuspends) any navigation messages from being sent from this |
- // RenderViewHost. This is called when a pending RenderViewHost is created |
- // for a cross-site navigation, because we must suspend any navigations until |
- // we hear back from the old renderer's onbeforeunload handler. Note that it |
- // is important that only one navigation event happen after calling this |
- // method with |suspend| equal to true. If |suspend| is false and there is |
- // a suspended_nav_message_, this will send the message. This function |
- // should only be called to toggle the state; callers should check |
- // are_navigations_suspended() first. |
- void SetNavigationsSuspended(bool suspend); |
- |
- // Causes the renderer to invoke the onbeforeunload event handler. The |
- // result will be returned via ViewMsg_ShouldClose. See also ClosePage which |
- // will fire the PageUnload event. |
- // |
- // Set bool for_cross_site_transition when this close is just for the current |
- // RenderView in the case of a cross-site transition. False means we're |
- // closing the entire tab. |
- void FirePageBeforeUnload(bool for_cross_site_transition); |
- |
- // Causes the renderer to close the current page, including running its |
- // onunload event handler. A ClosePage_ACK message will be sent to the |
- // ResourceDispatcherHost when it is finished. |
- // |
- // Please see ViewMsg_ClosePage in resource_messages_internal.h for a |
- // description of the parameters. |
- void ClosePage(bool for_cross_site_transition, |
- int new_render_process_host_id, |
- int new_request_id); |
- |
- // Close the page ignoring whether it has unload events registers. |
- // This is called after the beforeunload and unload events have fired |
- // and the user has agreed to continue with closing the page. |
- void ClosePageIgnoringUnloadEvents(); |
- |
- // Sets whether this RenderViewHost has an outstanding cross-site request, |
- // for which another renderer will need to run an onunload event handler. |
- // This is called before the first navigation event for this RenderViewHost, |
- // and again after the corresponding OnCrossSiteResponse. |
- void SetHasPendingCrossSiteRequest(bool has_pending_request, int request_id); |
- |
- // Returns the request_id for the pending cross-site request. |
- // This is just needed in case the unload of the current page |
- // hangs, in which case we need to swap to the pending RenderViewHost. |
- int GetPendingRequestId(); |
- |
- struct CommandState { |
- bool is_enabled; |
- RenderViewCommandCheckedState checked_state; |
- }; |
- CommandState GetStateForCommand(RenderViewCommand command) const; |
- |
- // Stops the current load. |
- void Stop(); |
- |
- // Reloads the current frame. |
- void ReloadFrame(); |
- |
- // Asks the renderer to "render" printed pages and initiate printing on our |
- // behalf. |
- bool PrintPages(); |
- |
- // Asks the renderer to render pages for print preview. |
- bool PrintPreview(); |
- |
- // Notify renderer of success/failure of print job. |
- void PrintingDone(int document_cookie, bool success); |
- |
- // Start looking for a string within the content of the page, with the |
- // specified options. |
- void StartFinding(int request_id, |
- const string16& search_string, |
- bool forward, |
- bool match_case, |
- bool find_next); |
- |
- // Cancel a pending find operation. |
- void StopFinding(FindBarController::SelectionAction selection_action); |
- |
- // Increment, decrement, or reset the zoom level of a page. |
- void Zoom(PageZoom::Function function); |
- |
- // Change the zoom level of a page to a specific value. |
- void SetZoomLevel(double zoom_level); |
- |
- // Change the encoding of the page. |
- void SetPageEncoding(const std::string& encoding); |
- |
- // Reset any override encoding on the page and change back to default. |
- void ResetPageEncodingToDefault(); |
- |
- // Change the alternate error page URL. An empty GURL disables the use of |
- // alternate error pages. |
- void SetAlternateErrorPageURL(const GURL& url); |
- |
- // D&d drop target messages that get sent to WebKit. |
- void DragTargetDragEnter(const WebDropData& drop_data, |
- const gfx::Point& client_pt, |
- const gfx::Point& screen_pt, |
- WebKit::WebDragOperationsMask operations_allowed); |
- void DragTargetDragOver(const gfx::Point& client_pt, |
- const gfx::Point& screen_pt, |
- WebKit::WebDragOperationsMask operations_allowed); |
- void DragTargetDragLeave(); |
- void DragTargetDrop(const gfx::Point& client_pt, |
- const gfx::Point& screen_pt); |
- |
- // Tell the RenderView to reserve a range of page ids of the given size. |
- void ReservePageIDRange(int size); |
- |
- // Runs some javascript within the context of a frame in the page. |
- void ExecuteJavascriptInWebFrame(const string16& frame_xpath, |
- const string16& jscript); |
- |
- // Runs some javascript within the context of a frame in the page. The result |
- // is sent back via the notification EXECUTE_JAVASCRIPT_RESULT. |
- int ExecuteJavascriptInWebFrameNotifyResult(const string16& frame_xpath, |
- const string16& jscript); |
- |
- // Insert some css into a frame in the page. |id| is optional, and specifies |
- // the element id given when inserting/replacing the style element. |
- void InsertCSSInWebFrame(const std::wstring& frame_xpath, |
- const std::string& css, |
- const std::string& id); |
- |
- // Logs a message to the console of a frame in the page. |
- void AddMessageToConsole(const string16& frame_xpath, |
- const string16& message, |
- const WebKit::WebConsoleMessage::Level&); |
- |
- // Edit operations. |
- void Undo(); |
- void Redo(); |
- void Cut(); |
- void Copy(); |
- void CopyToFindPboard(); |
- void Paste(); |
- void ToggleSpellCheck(); |
- void Delete(); |
- void SelectAll(); |
- void ToggleSpellPanel(bool is_currently_visible); |
- |
- // Downloads an image notifying the FavIcon delegate appropriately. The |
- // returned integer uniquely identifies the download for the lifetime of the |
- // browser. |
- int DownloadFavIcon(const GURL& url, int image_size); |
- |
- // Requests application info for the specified page. This is an asynchronous |
- // request. The delegate is notified by way of OnDidGetApplicationInfo when |
- // the data is available. |
- void GetApplicationInfo(int32 page_id); |
- |
- // Captures a thumbnail representation of the page. |
- void CaptureThumbnail(); |
- |
- // Captures a snapshot of the page. |
- void CaptureSnapshot(); |
- |
- // Notifies the RenderView that the JavaScript message that was shown was |
- // closed by the user. |
- void JavaScriptMessageBoxClosed(IPC::Message* reply_msg, |
- bool success, |
- const std::wstring& prompt); |
- |
- // Notifies the RenderView that the modal html dialog has been closed. |
- void ModalHTMLDialogClosed(IPC::Message* reply_msg, |
- const std::string& json_retval); |
- |
- // Send an action to the media player element located at |location|. |
- void MediaPlayerActionAt(const gfx::Point& location, |
- const WebKit::WebMediaPlayerAction& action); |
- |
- // Notifies the renderer that the context menu has closed. |
- void ContextMenuClosed( |
- const webkit_glue::CustomContextMenuContext& custom_context); |
- |
- // Prints the node that's under the context menu. |
- void PrintNodeUnderContextMenu(); |
- |
- // Triggers printing of the preview PDF. |
- void PrintForPrintPreview(); |
- |
- // Copies the image at the specified point. |
- void CopyImageAt(int x, int y); |
- |
- // Notifies the renderer that a a drag operation that it started has ended, |
- // either in a drop or by being cancelled. |
- void DragSourceEndedAt( |
- int client_x, int client_y, int screen_x, int screen_y, |
- WebKit::WebDragOperation operation); |
- |
- // Notifies the renderer that a drag and drop operation is in progress, with |
- // droppable items positioned over the renderer's view. |
- void DragSourceMovedTo( |
- int client_x, int client_y, int screen_x, int screen_y); |
- |
- // Notifies the renderer that we're done with the drag and drop operation. |
- // This allows the renderer to reset some state. |
- void DragSourceSystemDragEnded(); |
- |
- // Tell the render view to enable a set of javascript bindings. The argument |
- // should be a combination of values from BindingsPolicy. |
- void AllowBindings(int binding_flags); |
- |
- // Returns a bitwise OR of bindings types that have been enabled for this |
- // RenderView. See BindingsPolicy for details. |
- int enabled_bindings() const { return enabled_bindings_; } |
- |
- // See variable comment. |
- bool is_extension_process() const { return is_extension_process_; } |
- void set_is_extension_process(bool is_extension_process) { |
- is_extension_process_ = is_extension_process; |
- } |
- |
- // Sets a property with the given name and value on the Web UI binding object. |
- // Must call AllowWebUIBindings() on this renderer first. |
- void SetWebUIProperty(const std::string& name, const std::string& value); |
- |
- // Tells the renderer view to focus the first (last if reverse is true) node. |
- void SetInitialFocus(bool reverse); |
- |
- // Clears the node that is currently focused (if any). |
- void ClearFocusedNode(); |
- |
- // Tells the renderer view to scroll to the focused node. |
- void ScrollFocusedEditableNodeIntoView(); |
- |
- // Update render view specific (WebKit) preferences. |
- void UpdateWebPreferences(const WebPreferences& prefs); |
- |
- // Request the Renderer to ask the default plugin to start installation of |
- // missing plugin. Called by PluginInstallerInfoBarDelegate. |
- void InstallMissingPlugin(); |
- |
- // Load all blocked plugins in the RenderView. |
- void LoadBlockedPlugins(); |
- |
- // Get all script and frame urls from all frames in the current document. |
- // Called when a malware interstitial page is shown. |
- void GetMalwareDOMDetails(); |
- |
- // Get all savable resource links from current webpage, include main |
- // frame and sub-frame. |
- void GetAllSavableResourceLinksForCurrentPage(const GURL& page_url); |
- |
- // Get html data by serializing all frames of current page with lists |
- // which contain all resource links that have local copy. |
- // The parameter links contain original URLs of all saved links. |
- // The parameter local_paths contain corresponding local file paths of |
- // all saved links, which matched with vector:links one by one. |
- // The parameter local_directory_name is relative path of directory which |
- // contain all saved auxiliary files included all sub frames and resouces. |
- void GetSerializedHtmlDataForCurrentPageWithLocalLinks( |
- const std::vector<GURL>& links, |
- const std::vector<FilePath>& local_paths, |
- const FilePath& local_directory_name); |
- |
- // Notifies the Listener that one or more files have been chosen by the user |
- // from an Open File dialog for the form. |
- void FilesSelectedInChooser(const std::vector<FilePath>& files); |
- |
- // Notifies the RenderViewHost that its load state changed. |
- void LoadStateChanged(const GURL& url, net::LoadState load_state, |
- uint64 upload_position, uint64 upload_size); |
- |
- bool SuddenTerminationAllowed() const; |
- void set_sudden_termination_allowed(bool enabled) { |
- sudden_termination_allowed_ = enabled; |
- } |
- |
- // Forward a message from external host to chrome renderer. |
- void ForwardMessageFromExternalHost(const std::string& message, |
- const std::string& origin, |
- const std::string& target); |
- |
- // Message the renderer that we should be counted as a new document and not |
- // as a popup. |
- void DisassociateFromPopupCount(); |
- |
- // Tells the renderer whether it should allow window.close. This is initially |
- // set to false when creating a renderer-initiated window via window.open. |
- void AllowScriptToClose(bool visible); |
- |
- // Notifies the Renderer that a move or resize of its containing window has |
- // started (this is used to hide the autocomplete popups if any). |
- void WindowMoveOrResizeStarted(); |
- |
- // RenderWidgetHost public overrides. |
- virtual void Shutdown(); |
- virtual bool IsRenderView() const; |
- virtual bool OnMessageReceived(const IPC::Message& msg); |
- virtual void GotFocus(); |
- virtual void LostCapture(); |
- virtual void ForwardMouseEvent(const WebKit::WebMouseEvent& mouse_event); |
- virtual void OnMouseActivate(); |
- virtual void ForwardKeyboardEvent(const NativeWebKeyboardEvent& key_event); |
- virtual void ForwardEditCommand(const std::string& name, |
- const std::string& value); |
- virtual void ForwardEditCommandsForNextKeyEvent( |
- const EditCommands& edit_commands); |
- |
- // Creates a new RenderView with the given route id. |
- void CreateNewWindow(int route_id, |
- const ViewHostMsg_CreateWindow_Params& params); |
- |
- // Creates a new RenderWidget with the given route id. |popup_type| indicates |
- // if this widget is a popup and what kind of popup it is (select, autofill). |
- void CreateNewWidget(int route_id, WebKit::WebPopupType popup_type); |
- |
- // Creates a full screen RenderWidget. |
- void CreateNewFullscreenWidget(int route_id); |
- |
- // Sends the response to an extension api call. |
- void SendExtensionResponse(int request_id, bool success, |
- const std::string& response, |
- const std::string& error); |
- |
- // Sends a response to an extension api call that it was blocked for lack of |
- // permission. |
- void BlockExtensionRequest(int request_id); |
- |
- // Tells the renderer which browser window it is being attached to. |
- void UpdateBrowserWindowId(int window_id); |
- |
- // Tells the render view that a custom context action has been selected. |
- void PerformCustomContextMenuAction( |
- const webkit_glue::CustomContextMenuContext& custom_context, |
- unsigned action); |
- |
- // Informs renderer of updated content settings. |
- void SendContentSettings(const GURL& url, |
- const ContentSettings& settings); |
- |
- // Tells the renderer to notify us when the page contents preferred size |
- // changed. |flags| is a combination of |
- // |ViewHostMsg_EnablePreferredSizeChangedMode_Flags| values, which is defined |
- // in render_messages.h. |
- void EnablePreferredSizeChangedMode(int flags); |
- |
-#if defined(OS_MACOSX) |
- // Select popup menu related methods (for external popup menus). |
- void DidSelectPopupMenuItem(int selected_index); |
- void DidCancelPopupMenu(); |
-#endif |
- |
- // SearchBox notifications. |
- void SearchBoxChange(const string16& value, |
- bool verbatim, |
- int selection_start, |
- int selection_end); |
- void SearchBoxSubmit(const string16& value, |
- bool verbatim); |
- void SearchBoxCancel(); |
- void SearchBoxResize(const gfx::Rect& search_box_bounds); |
- void DetermineIfPageSupportsInstant(const string16& value, |
- bool verbatim, |
- int selection_start, |
- int selection_end); |
- |
- // Send a notification to the V8 JavaScript engine to change its parameters |
- // while performing stress testing. |cmd| is one of the values defined by |
- // |ViewHostMsg_JavaScriptStressTestControl_Commands|, which is defined |
- // in render_messages.h. |
- void JavaScriptStressTestControl(int cmd, int param); |
- |
-#if defined(UNIT_TEST) |
- // These functions shouldn't be necessary outside of testing. |
- |
- void set_save_accessibility_tree_for_testing(bool save) { |
- save_accessibility_tree_for_testing_ = save; |
- } |
- |
- const webkit_glue::WebAccessibility& accessibility_tree() { |
- return accessibility_tree_; |
- } |
- |
- bool is_waiting_for_unload_ack() { return is_waiting_for_unload_ack_; } |
-#endif |
- |
- // Checks that the given renderer can request |url|, if not it sets it to an |
- // empty url. |
- static void FilterURL(ChildProcessSecurityPolicy* policy, |
- int renderer_id, |
- GURL* url); |
- |
- protected: |
- // RenderWidgetHost protected overrides. |
- virtual bool PreHandleKeyboardEvent(const NativeWebKeyboardEvent& event, |
- bool* is_keyboard_shortcut); |
- virtual void UnhandledKeyboardEvent(const NativeWebKeyboardEvent& event); |
- virtual void OnUserGesture(); |
- virtual void NotifyRendererUnresponsive(); |
- virtual void NotifyRendererResponsive(); |
- virtual void OnMsgFocusedNodeChanged(bool is_editable_node); |
- virtual void OnMsgFocus(); |
- virtual void OnMsgBlur(); |
- |
- // IPC message handlers. |
- void OnMsgShowView(int route_id, |
- WindowOpenDisposition disposition, |
- const gfx::Rect& initial_pos, |
- bool user_gesture); |
- void OnMsgShowWidget(int route_id, const gfx::Rect& initial_pos); |
- void OnMsgShowFullscreenWidget(int route_id); |
- void OnMsgRunModal(IPC::Message* reply_msg); |
- void OnMsgRenderViewReady(); |
- void OnMsgRenderViewGone(int status, int error_code); |
- void OnMsgNavigate(const IPC::Message& msg); |
- void OnMsgUpdateState(int32 page_id, |
- const std::string& state); |
- void OnMsgUpdateTitle(int32 page_id, const std::wstring& title); |
- void OnMsgUpdateEncoding(const std::string& encoding); |
- void OnMsgUpdateTargetURL(int32 page_id, const GURL& url); |
- void OnMsgThumbnail(const GURL& url, |
- const ThumbnailScore& score, |
- const SkBitmap& bitmap); |
- void OnMsgScreenshot(const SkBitmap& bitmap); |
- void OnMsgClose(); |
- void OnMsgRequestMove(const gfx::Rect& pos); |
- void OnMsgDidStartLoading(); |
- void OnMsgDidStopLoading(); |
- void OnMsgDidChangeLoadProgress(double load_progress); |
- void OnMsgDocumentAvailableInMainFrame(); |
- void OnMsgDocumentOnLoadCompletedInMainFrame(int32 page_id); |
- void OnExecuteCodeFinished(int request_id, bool success); |
- void OnMsgUpdateFavIconURL(int32 page_id, const GURL& icon_url); |
- void OnMsgDidDownloadFavIcon(int id, |
- const GURL& image_url, |
- bool errored, |
- const SkBitmap& image_data); |
- void OnMsgContextMenu(const ContextMenuParams& params); |
- void OnMsgOpenURL(const GURL& url, const GURL& referrer, |
- WindowOpenDisposition disposition); |
- void OnMsgDidContentsPreferredSizeChange(const gfx::Size& new_size); |
- void OnMsgDomOperationResponse(const std::string& json_string, |
- int automation_id); |
- void OnMsgWebUISend(const GURL& source_url, |
- const std::string& message, |
- const std::string& content); |
- void OnMsgForwardMessageToExternalHost(const std::string& message, |
- const std::string& origin, |
- const std::string& target); |
- void OnMsgSetTooltipText(const std::wstring& tooltip_text, |
- WebKit::WebTextDirection text_direction_hint); |
- void OnMsgSelectionChanged(const std::string& text); |
- void OnMsgPasteFromSelectionClipboard(); |
- void OnMsgRunJavaScriptMessage(const std::wstring& message, |
- const std::wstring& default_prompt, |
- const GURL& frame_url, |
- const int flags, |
- IPC::Message* reply_msg); |
- void OnMsgRunBeforeUnloadConfirm(const GURL& frame_url, |
- const std::wstring& message, |
- IPC::Message* reply_msg); |
- void OnMsgShowModalHTMLDialog(const GURL& url, int width, int height, |
- const std::string& json_arguments, |
- IPC::Message* reply_msg); |
- void OnMsgStartDragging(const WebDropData& drop_data, |
- WebKit::WebDragOperationsMask operations_allowed, |
- const SkBitmap& image, |
- const gfx::Point& image_offset); |
- void OnUpdateDragCursor(WebKit::WebDragOperation drag_operation); |
- void OnTakeFocus(bool reverse); |
- void OnAddMessageToConsole(const std::wstring& message, |
- int32 line_no, |
- const std::wstring& source_id); |
- void OnUpdateInspectorSetting(const std::string& key, |
- const std::string& value); |
- void OnForwardToDevToolsAgent(const IPC::Message& message); |
- void OnForwardToDevToolsClient(const IPC::Message& message); |
- void OnActivateDevToolsWindow(); |
- void OnCloseDevToolsWindow(); |
- void OnRequestDockDevToolsWindow(); |
- void OnRequestUndockDevToolsWindow(); |
- void OnDevToolsRuntimePropertyChanged(const std::string& name, |
- const std::string& value); |
- void OnMsgShouldCloseACK(bool proceed); |
- |
- void OnExtensionRequest(const ViewHostMsg_DomMessage_Params& params); |
- void OnExtensionPostMessage(int port_id, const std::string& message); |
- void OnAccessibilityNotifications( |
- const std::vector<ViewHostMsg_AccessibilityNotification_Params>& params); |
- void OnCSSInserted(); |
- void OnContentBlocked(ContentSettingsType type, |
- const std::string& resource_identifier); |
- void OnAppCacheAccessed(const GURL& manifest_url, bool blocked_by_policy); |
- void OnWebDatabaseAccessed(const GURL& url, |
- const string16& name, |
- const string16& display_name, |
- unsigned long estimated_size, |
- bool blocked_by_policy); |
- void OnUpdateZoomLimits(int minimum_percent, |
- int maximum_percent, |
- bool remember); |
- void OnScriptEvalResponse(int id, const ListValue& result); |
- void OnCommandStateChanged(int command, |
- bool is_enabled, |
- int checked_state); |
- |
-#if defined(OS_MACOSX) |
- void OnMsgShowPopup(const ViewHostMsg_ShowPopup_Params& params); |
-#endif |
- |
- private: |
- friend class TestRenderViewHost; |
- |
- // The SiteInstance associated with this RenderViewHost. All pages drawn |
- // in this RenderViewHost are part of this SiteInstance. Should not change |
- // over time. |
- scoped_refptr<SiteInstance> instance_; |
- |
- // Our delegate, which wants to know about changes in the RenderView. |
- RenderViewHostDelegate* delegate_; |
- |
- // true if we are currently waiting for a response for drag context |
- // information. |
- bool waiting_for_drag_context_response_; |
- |
- // A bitwise OR of bindings types that have been enabled for this RenderView. |
- // See BindingsPolicy for details. |
- int enabled_bindings_; |
- |
- // The request_id for the pending cross-site request. Set to -1 if |
- // there is a pending request, but we have not yet started the unload |
- // for the current page. Set to the request_id value of the pending |
- // request once we have gotten the some data for the pending page |
- // and thus started the unload process. |
- int pending_request_id_; |
- |
- // Whether we should buffer outgoing Navigate messages rather than sending |
- // them. This will be true when a RenderViewHost is created for a cross-site |
- // request, until we hear back from the onbeforeunload handler of the old |
- // RenderViewHost. |
- bool navigations_suspended_; |
- |
- // We only buffer a suspended navigation message while we a pending RVH for a |
- // TabContents. There will only ever be one suspended navigation, because |
- // TabContents will destroy the pending RVH and create a new one if a second |
- // navigation occurs. |
- scoped_ptr<ViewMsg_Navigate> suspended_nav_message_; |
- |
- // If we were asked to RunModal, then this will hold the reply_msg that we |
- // must return to the renderer to unblock it. |
- IPC::Message* run_modal_reply_msg_; |
- |
- // Set to true when there is a pending ViewMsg_ShouldClose message. This |
- // ensures we don't spam the renderer with multiple beforeunload requests. |
- // When either this value or is_waiting_for_unload_ack_ is true, the value of |
- // unload_ack_is_for_cross_site_transition_ indicates whether this is for a |
- // cross-site transition or a tab close attempt. |
- bool is_waiting_for_beforeunload_ack_; |
- |
- // Set to true when there is a pending ViewMsg_Close message. Also see |
- // is_waiting_for_beforeunload_ack_, unload_ack_is_for_cross_site_transition_. |
- bool is_waiting_for_unload_ack_; |
- |
- // Valid only when is_waiting_for_beforeunload_ack_ or |
- // is_waiting_for_unload_ack_ is true. This tells us if the unload request |
- // is for closing the entire tab ( = false), or only this RenderViewHost in |
- // the case of a cross-site transition ( = true). |
- bool unload_ack_is_for_cross_site_transition_; |
- |
- bool are_javascript_messages_suppressed_; |
- |
- // True if the render view can be shut down suddenly. |
- bool sudden_termination_allowed_; |
- |
- // The session storage namespace to be used by the associated render view. |
- scoped_refptr<SessionStorageNamespace> session_storage_namespace_; |
- |
- // Whether this render view will get extension api bindings. This controls |
- // what process type we use. |
- bool is_extension_process_; |
- |
- // Whether the accessibility tree should be saved, for unit testing. |
- bool save_accessibility_tree_for_testing_; |
- |
- // The most recently received accessibility tree - for unit testing only. |
- webkit_glue::WebAccessibility accessibility_tree_; |
- |
- // The termination status of the last render view that terminated. |
- base::TerminationStatus render_view_termination_status_; |
- |
- // The enabled/disabled states of various commands. |
- std::map<RenderViewCommand, CommandState> command_states_; |
- |
- DISALLOW_COPY_AND_ASSIGN(RenderViewHost); |
-}; |
- |
#endif // CHROME_BROWSER_RENDERER_HOST_RENDER_VIEW_HOST_H_ |