#include "content/browser/renderer_host/render_view_host_delegate.h"
#include "content/browser/renderer_host/render_widget_host_delegate.h"
#include "content/common/content_export.h"
+#include "content/public/browser/ax_event_notification_details.h"
#include "content/public/browser/notification_observer.h"
#include "content/public/browser/notification_registrar.h"
#include "content/public/browser/web_contents.h"
class WebContentsObserver;
class WebContentsViewPort;
class WebContentsViewDelegate;
+struct AXEventNotificationDetails;
struct ColorSuggestion;
struct FaviconURL;
struct LoadNotificationDetails;
#endif
// Expose the render manager for testing.
+ // TODO(creis): Remove this now that we can get to it via FrameTreeNode.
RenderFrameHostManager* GetRenderManagerForTesting();
// Returns guest browser plugin object, or NULL if this WebContents is not a
virtual BrowserContext* GetBrowserContext() const OVERRIDE;
virtual RenderProcessHost* GetRenderProcessHost() const OVERRIDE;
virtual RenderFrameHost* GetMainFrame() OVERRIDE;
+ virtual RenderFrameHost* GetFocusedFrame() OVERRIDE;
virtual void ForEachFrame(
const base::Callback<void(RenderFrameHost*)>& on_frame) OVERRIDE;
virtual void SendToAllFrames(IPC::Message* message) OVERRIDE;
virtual RenderViewHost* GetRenderViewHost() const OVERRIDE;
- virtual void GetRenderViewHostAtPosition(
- int x,
- int y,
- const GetRenderViewHostCallback& callback) OVERRIDE;
virtual WebContents* GetEmbedderWebContents() const OVERRIDE;
virtual int GetEmbeddedInstanceID() const OVERRIDE;
virtual int GetRoutingID() const OVERRIDE;
virtual std::set<GURL> GetSitesInTab() const OVERRIDE;
virtual const std::string& GetEncoding() const OVERRIDE;
virtual bool DisplayedInsecureContent() const OVERRIDE;
- virtual void IncrementCapturerCount() OVERRIDE;
+ virtual void IncrementCapturerCount(const gfx::Size& capture_size) OVERRIDE;
virtual void DecrementCapturerCount() OVERRIDE;
virtual int GetCapturerCount() const OVERRIDE;
virtual bool IsCrashed() const OVERRIDE;
virtual base::TerminationStatus GetCrashedStatus() const OVERRIDE;
virtual bool IsBeingDestroyed() const OVERRIDE;
virtual void NotifyNavigationStateChanged(unsigned changed_flags) OVERRIDE;
- virtual base::TimeTicks GetLastSelectedTime() const OVERRIDE;
+ virtual base::TimeTicks GetLastActiveTime() const OVERRIDE;
virtual void WasShown() OVERRIDE;
virtual void WasHidden() OVERRIDE;
virtual bool NeedToFireBeforeUnload() OVERRIDE;
const IPC::Message& message) OVERRIDE;
virtual void RenderFrameCreated(RenderFrameHost* render_frame_host) OVERRIDE;
virtual void RenderFrameDeleted(RenderFrameHost* render_frame_host) OVERRIDE;
- virtual void WorkerCrashed() OVERRIDE;
+ virtual void DidStartLoading(RenderFrameHost* render_frame_host,
+ bool to_different_document) OVERRIDE;
+ virtual void DidStopLoading(RenderFrameHost* render_frame_host) OVERRIDE;
+ virtual void SwappedOut(RenderFrameHost* render_frame_host) OVERRIDE;
+ virtual void WorkerCrashed(RenderFrameHost* render_frame_host) OVERRIDE;
+ virtual void ShowContextMenu(RenderFrameHost* render_frame_host,
+ const ContextMenuParams& params) OVERRIDE;
virtual WebContents* GetAsWebContents() OVERRIDE;
// RenderViewHostDelegate ----------------------------------------------------
virtual RenderViewHostDelegateView* GetDelegateView() OVERRIDE;
- virtual RenderViewHostDelegate::RendererManagement*
- GetRendererManagementDelegate() OVERRIDE;
virtual bool OnMessageReceived(RenderViewHost* render_view_host,
const IPC::Message& message) OVERRIDE;
virtual const GURL& GetURL() const OVERRIDE;
base::TerminationStatus status,
int error_code) OVERRIDE;
virtual void RenderViewDeleted(RenderViewHost* render_view_host) OVERRIDE;
- virtual void DidNavigate(
- RenderViewHost* render_view_host,
- const ViewHostMsg_FrameNavigate_Params& params) OVERRIDE;
virtual void UpdateState(RenderViewHost* render_view_host,
int32 page_id,
const PageState& page_state) OVERRIDE;
virtual void UpdateTargetURL(int32 page_id, const GURL& url) OVERRIDE;
virtual void Close(RenderViewHost* render_view_host) OVERRIDE;
virtual void RequestMove(const gfx::Rect& new_bounds) OVERRIDE;
- virtual void SwappedOut(RenderViewHost* render_view_host) OVERRIDE;
- virtual void DidStartLoading(RenderViewHost* render_view_host) OVERRIDE;
- virtual void DidStopLoading(RenderViewHost* render_view_host) OVERRIDE;
virtual void DidCancelLoading() OVERRIDE;
virtual void DidChangeLoadProgress(double progress) OVERRIDE;
virtual void DidDisownOpener(RenderViewHost* rvh) OVERRIDE;
virtual void DocumentOnLoadCompletedInMainFrame(
RenderViewHost* render_view_host,
int32 page_id) OVERRIDE;
- virtual void RequestOpenURL(RenderViewHost* rvh,
- const GURL& url,
- const Referrer& referrer,
- WindowOpenDisposition disposition,
- int64 source_frame_id,
- bool should_replace_current_entry,
- bool user_gesture) OVERRIDE;
- virtual void RequestTransferURL(
- const GURL& url,
- const std::vector<GURL>& redirect_chain,
- const Referrer& referrer,
- PageTransition page_transition,
- WindowOpenDisposition disposition,
- int64 source_frame_id,
- const GlobalRequestID& transferred_global_request_id,
- bool should_replace_current_entry,
- bool user_gesture) OVERRIDE;
virtual void RouteCloseEvent(RenderViewHost* rvh) OVERRIDE;
virtual void RouteMessageEvent(
RenderViewHost* rvh,
virtual void ShowCreatedWidget(int route_id,
const gfx::Rect& initial_pos) OVERRIDE;
virtual void ShowCreatedFullscreenWidget(int route_id) OVERRIDE;
- virtual void ShowContextMenu(const ContextMenuParams& params) OVERRIDE;
virtual void RequestMediaAccessPermission(
const MediaStreamRequest& request,
const MediaResponseCallback& callback) OVERRIDE;
virtual SessionStorageNamespace* GetSessionStorageNamespace(
SiteInstance* instance) OVERRIDE;
virtual FrameTree* GetFrameTree() OVERRIDE;
+ virtual void AccessibilityEventReceived(
+ const std::vector<AXEventNotificationDetails>& details) OVERRIDE;
// NavigatorDelegate ---------------------------------------------------------
virtual void DidStartProvisionalLoad(
RenderFrameHostImpl* render_frame_host,
- int64 frame_id,
- int64 parent_frame_id,
- bool is_main_frame,
+ int parent_routing_id,
const GURL& validated_url,
bool is_error_page,
bool is_iframe_srcdoc) OVERRIDE;
RenderFrameHostImpl* render_frame_host,
const FrameHostMsg_DidFailProvisionalLoadWithError_Params& params)
OVERRIDE;
+ virtual void DidFailLoadWithError(
+ RenderFrameHostImpl* render_frame_host,
+ const GURL& url,
+ int error_code,
+ const base::string16& error_description) OVERRIDE;
virtual void DidRedirectProvisionalLoad(
RenderFrameHostImpl* render_frame_host,
const GURL& validated_target_url) OVERRIDE;
+ virtual void DidCommitProvisionalLoad(
+ RenderFrameHostImpl* render_frame_host,
+ const base::string16& frame_unique_name,
+ bool is_main_frame,
+ const GURL& url,
+ PageTransition transition_type) OVERRIDE;
+ virtual void DidNavigateMainFramePreCommit(
+ const FrameHostMsg_DidCommitProvisionalLoad_Params& params) OVERRIDE;
+ virtual void DidNavigateMainFramePostCommit(
+ const LoadCommittedDetails& details,
+ const FrameHostMsg_DidCommitProvisionalLoad_Params& params) OVERRIDE;
+ virtual void DidNavigateAnyFramePostCommit(
+ RenderFrameHostImpl* render_frame_host,
+ const LoadCommittedDetails& details,
+ const FrameHostMsg_DidCommitProvisionalLoad_Params& params) OVERRIDE;
+ virtual void SetMainFrameMimeType(const std::string& mime_type) OVERRIDE;
+ virtual bool CanOverscrollContent() OVERRIDE;
virtual void NotifyChangedNavigationState(
InvalidateTypes changed_flags) OVERRIDE;
virtual void AboutToNavigateRenderFrame(
RenderFrameHostImpl* render_frame_host,
const GURL& url,
NavigationController::ReloadType reload_type) OVERRIDE;
+ virtual void RequestOpenURL(RenderFrameHostImpl* render_frame_host,
+ const OpenURLParams& params) OVERRIDE;
// RenderWidgetHostDelegate --------------------------------------------------
bool* is_keyboard_shortcut) OVERRIDE;
virtual void HandleKeyboardEvent(
const NativeWebKeyboardEvent& event) OVERRIDE;
- virtual bool PreHandleWheelEvent(
+ virtual bool HandleWheelEvent(
const blink::WebMouseWheelEvent& event) OVERRIDE;
+ virtual bool PreHandleGestureEvent(
+ const blink::WebGestureEvent& event) OVERRIDE;
virtual void DidSendScreenRects(RenderWidgetHostImpl* rwh) OVERRIDE;
#if defined(OS_WIN)
virtual gfx::NativeViewAccessible GetParentNativeViewAccessible() OVERRIDE;
// (but can be null if not applicable).
virtual void SetIsLoading(RenderViewHost* render_view_host,
bool is_loading,
+ bool to_different_document,
LoadNotificationDetails* details) OVERRIDE;
typedef base::Callback<void(WebContents*)> CreatedCallback;
CrossSiteCantPreemptAfterUnload);
FRIEND_TEST_ALL_PREFIXES(WebContentsImplTest, PendingContents);
FRIEND_TEST_ALL_PREFIXES(WebContentsImplTest, FrameTreeShape);
+ FRIEND_TEST_ALL_PREFIXES(WebContentsImplTest, GetLastActiveTime);
FRIEND_TEST_ALL_PREFIXES(FormStructureBrowserTest, HTMLFiles);
FRIEND_TEST_ALL_PREFIXES(NavigationControllerTest, HistoryNavigate);
FRIEND_TEST_ALL_PREFIXES(RenderFrameHostManagerTest, PageDoesBackAndReload);
// watching |web_contents|. No-op if there is no such observer.
void RemoveDestructionObserver(WebContentsImpl* web_contents);
- // Callback function when showing JS dialogs.
- void OnDialogClosed(RenderViewHost* rvh,
+ // Callback function when showing JavaScript dialogs. Takes in a routing ID
+ // pair to identify the RenderViewHost that opened the dialog, because it's
+ // possible for the RenderViewHost to be deleted by the time this is called.
+ void OnDialogClosed(int render_process_id,
+ int render_view_id,
IPC::Message* reply_msg,
bool success,
const base::string16& user_input);
void OnDidDisplayInsecureContent();
void OnDidRunInsecureContent(const std::string& security_origin,
const GURL& target_url);
- void OnDocumentLoadedInFrame(int64 frame_id);
- void OnDidFinishLoad(int64 frame_id,
- const GURL& url,
- bool is_main_frame);
- void OnDidFailLoadWithError(int64 frame_id,
- const GURL& url,
- bool is_main_frame,
- int error_code,
- const base::string16& error_description);
+ void OnDocumentLoadedInFrame();
+ void OnDidFinishLoad(const GURL& url);
void OnGoToEntryAtOffset(int offset);
void OnUpdateZoomLimits(int minimum_percent,
int maximum_percent,
bool remember);
void OnEnumerateDirectory(int request_id, const base::FilePath& path);
- void OnJSOutOfMemory();
void OnRegisterProtocolHandler(const std::string& protocol,
const GURL& url,
bool is_hung);
void OnPluginCrashed(const base::FilePath& plugin_path,
base::ProcessId plugin_pid);
+ void OnDomOperationResponse(const std::string& json_string,
+ int automation_id);
void OnAppCacheAccessed(const GURL& manifest_url, bool blocked_by_policy);
void OnOpenColorChooser(int color_chooser_id,
SkColor color,
void OnUpdateFaviconURL(int32 page_id,
const std::vector<FaviconURL>& candidates);
void OnFirstVisuallyNonEmptyPaint(int32 page_id);
- void OnMediaNotification(int64 player_cookie,
- bool has_video,
- bool has_audio,
- bool is_playing);
+ void OnMediaPlayingNotification(int64 player_cookie,
+ bool has_video,
+ bool has_audio);
+ void OnMediaPausedNotification(int64 player_cookie);
void OnShowValidationMessage(const gfx::Rect& anchor_in_root_view,
const base::string16& main_text,
const base::string16& sub_text);
// committed to the navigation controller. Note that the navigation entry is
// not provided since it may be invalid/changed after being committed. The
// current navigation entry is in the NavigationController at this point.
- void DidNavigateMainFramePostCommit(
- const LoadCommittedDetails& details,
- const ViewHostMsg_FrameNavigate_Params& params);
- void DidNavigateAnyFramePostCommit(
- RenderViewHost* render_view_host,
- const LoadCommittedDetails& details,
- const ViewHostMsg_FrameNavigate_Params& params);
-
- // Specifies whether the passed in URL should be assigned as the site of the
- // current SiteInstance, if it does not yet have a site.
- bool ShouldAssignSiteForURL(const GURL& url);
// If our controller was restored, update the max page ID associated with the
// given RenderViewHost to be larger than the number of restored entries.
// Helper function to invoke WebContentsDelegate::GetSizeForNewRenderView().
gfx::Size GetSizeForNewRenderView() const;
- void OnFrameRemoved(RenderViewHostImpl* render_view_host, int64 frame_id);
+ void OnFrameRemoved(RenderViewHostImpl* render_view_host,
+ int frame_routing_id);
+
+ // Helper method that's called whenever |preferred_size_| or
+ // |preferred_size_for_capture_| changes, to propagate the new value to the
+ // |delegate_|.
+ void OnPreferredSizeChanged(const gfx::Size& old_size);
// Adds/removes a callback called on creation of each new WebContents.
// Deprecated, about to remove.
// Settings that get passed to the renderer process.
RendererPreferences renderer_preferences_;
- // The time that this tab was last selected.
- base::TimeTicks last_selected_time_;
+ // The time that this WebContents was last made active. The initial value is
+ // the WebContents creation time.
+ base::TimeTicks last_active_time_;
// See description above setter.
bool closed_by_user_gesture_;
// The intrinsic size of the page.
gfx::Size preferred_size_;
+ // The preferred size for content screen capture. When |capturer_count_| > 0,
+ // this overrides |preferred_size_|.
+ gfx::Size preferred_size_for_capture_;
+
#if defined(OS_ANDROID)
// Date time chooser opened by this tab.
// Only used in Android since all other platforms use a multi field UI.
// member variables that are gone.
NotificationRegistrar registrar_;
- // Used during IPC message dispatching from the RenderView so that the
- // handlers can get a pointer to the RVH through which the message was
+ // Used during IPC message dispatching from the RenderView/RenderFrame so that
+ // the handlers can get a pointer to the RVH through which the message was
// received.
RenderViewHost* render_view_message_source_;
+ RenderFrameHost* render_frame_message_source_;
// All live RenderWidgetHostImpls that are created by this object and may
// outlive it.