| 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_
|
|
|