| Index: content/public/browser/render_view_host_delegate.h
|
| ===================================================================
|
| --- content/public/browser/render_view_host_delegate.h (revision 138799)
|
| +++ content/public/browser/render_view_host_delegate.h (working copy)
|
| @@ -1,392 +0,0 @@
|
| -// Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#ifndef CONTENT_PUBLIC_BROWSER_RENDER_VIEW_HOST_DELEGATE_H_
|
| -#define CONTENT_PUBLIC_BROWSER_RENDER_VIEW_HOST_DELEGATE_H_
|
| -#pragma once
|
| -
|
| -#include <string>
|
| -
|
| -#include "base/basictypes.h"
|
| -#include "base/i18n/rtl.h"
|
| -#include "base/process_util.h"
|
| -#include "base/string16.h"
|
| -#include "content/common/content_export.h"
|
| -#include "ipc/ipc_channel.h"
|
| -#include "net/base/load_states.h"
|
| -#include "third_party/WebKit/Source/WebKit/chromium/public/WebPopupType.h"
|
| -#include "ui/base/javascript_message_type.h"
|
| -#include "webkit/glue/window_open_disposition.h"
|
| -
|
| -class GURL;
|
| -class SkBitmap;
|
| -class WebContentsImpl;
|
| -class WebKeyboardEvent;
|
| -struct ViewHostMsg_CreateWindow_Params;
|
| -struct ViewHostMsg_DidFailProvisionalLoadWithError_Params;
|
| -struct ViewHostMsg_FrameNavigate_Params;
|
| -struct ViewMsg_PostMessage_Params;
|
| -
|
| -namespace webkit_glue {
|
| -struct WebPreferences;
|
| -}
|
| -
|
| -namespace base {
|
| -class ListValue;
|
| -class TimeTicks;
|
| -}
|
| -
|
| -namespace gfx {
|
| -class Point;
|
| -class Rect;
|
| -class Size;
|
| -}
|
| -
|
| -namespace content {
|
| -
|
| -class BrowserContext;
|
| -class RenderViewHost;
|
| -class RenderViewHostDelegateView;
|
| -class WebContents;
|
| -struct ContextMenuParams;
|
| -struct FileChooserParams;
|
| -struct GlobalRequestID;
|
| -struct NativeWebKeyboardEvent;
|
| -struct Referrer;
|
| -struct RendererPreferences;
|
| -
|
| -//
|
| -// RenderViewHostDelegate
|
| -//
|
| -// An interface implemented by an object interested in knowing about the state
|
| -// of the RenderViewHost.
|
| -//
|
| -// This interface currently encompasses every type of message that was
|
| -// previously being sent by WebContents itself. Some of these notifications
|
| -// may not be relevant to all users of RenderViewHost and we should consider
|
| -// exposing a more generic Send function on RenderViewHost and a response
|
| -// listener here to serve that need.
|
| -//
|
| -// TODO(joi): See if we can hide most or all of this from chrome/.
|
| -class CONTENT_EXPORT RenderViewHostDelegate : public IPC::Channel::Listener {
|
| - public:
|
| - // RendererManagerment -------------------------------------------------------
|
| - // Functions for managing switching of Renderers. For WebContents, this is
|
| - // implemented by the RenderViewHostManager.
|
| -
|
| - class CONTENT_EXPORT RendererManagement {
|
| - public:
|
| - // Notification whether we should close the page, after an explicit call to
|
| - // AttemptToClosePage. This is called before a cross-site request or before
|
| - // a tab/window is closed (as indicated by the first parameter) to allow the
|
| - // appropriate renderer to approve or deny the request. |proceed| indicates
|
| - // whether the user chose to proceed. |proceed_time| is the time when the
|
| - // request was allowed to proceed.
|
| - virtual void ShouldClosePage(
|
| - bool for_cross_site_transition,
|
| - bool proceed,
|
| - const base::TimeTicks& proceed_time) = 0;
|
| -
|
| - // Called by ResourceDispatcherHost when a response for a pending cross-site
|
| - // request is received. The ResourceDispatcherHost will pause the response
|
| - // until the onunload handler of the previous renderer is run.
|
| - virtual void OnCrossSiteResponse(int new_render_process_host_id,
|
| - int new_request_id) = 0;
|
| -
|
| - protected:
|
| - virtual ~RendererManagement() {}
|
| - };
|
| -
|
| - // ---------------------------------------------------------------------------
|
| -
|
| - // Returns the current delegate associated with a feature. May return NULL if
|
| - // there is no corresponding delegate.
|
| - virtual RenderViewHostDelegateView* GetDelegateView();
|
| - virtual RendererManagement* GetRendererManagementDelegate();
|
| -
|
| - // IPC::Channel::Listener implementation.
|
| - // This is used to give the delegate a chance to filter IPC messages.
|
| - virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE;
|
| -
|
| - // Gets the URL that is currently being displayed, if there is one.
|
| - virtual const GURL& GetURL() const;
|
| -
|
| - // Return this object cast to a WebContents, if it is one. If the object is
|
| - // not a WebContents, returns NULL. DEPRECATED: Be sure to include brettw or
|
| - // jam as reviewers before you use this method. http://crbug.com/82582
|
| - virtual content::WebContents* GetAsWebContents();
|
| -
|
| - // Return the rect where to display the resize corner, if any, otherwise
|
| - // an empty rect.
|
| - virtual gfx::Rect GetRootWindowResizerRect() const = 0;
|
| -
|
| - // The RenderView is being constructed (message sent to the renderer process
|
| - // to construct a RenderView). Now is a good time to send other setup events
|
| - // to the RenderView. This precedes any other commands to the RenderView.
|
| - virtual void RenderViewCreated(RenderViewHost* render_view_host) {}
|
| -
|
| - // The RenderView has been constructed.
|
| - virtual void RenderViewReady(RenderViewHost* render_view_host) {}
|
| -
|
| - // The RenderView died somehow (crashed or was killed by the user).
|
| - virtual void RenderViewGone(RenderViewHost* render_view_host,
|
| - base::TerminationStatus status,
|
| - int error_code) {}
|
| -
|
| - // The RenderView is going to be deleted. This is called when each
|
| - // RenderView is going to be destroyed
|
| - virtual void RenderViewDeleted(RenderViewHost* render_view_host) {}
|
| -
|
| - // The RenderView started a provisional load for a given frame.
|
| - virtual void DidStartProvisionalLoadForFrame(
|
| - content::RenderViewHost* render_view_host,
|
| - int64 frame_id,
|
| - bool main_frame,
|
| - const GURL& opener_url,
|
| - const GURL& url) {}
|
| -
|
| - // The RenderView processed a redirect during a provisional load.
|
| - //
|
| - // TODO(creis): Remove this method and have the pre-rendering code listen to
|
| - // the ResourceDispatcherHost's RESOURCE_RECEIVED_REDIRECT notification
|
| - // instead. See http://crbug.com/78512.
|
| - virtual void DidRedirectProvisionalLoad(
|
| - content::RenderViewHost* render_view_host,
|
| - int32 page_id,
|
| - const GURL& opener_url,
|
| - const GURL& source_url,
|
| - const GURL& target_url) {}
|
| -
|
| - // A provisional load in the RenderView failed.
|
| - virtual void DidFailProvisionalLoadWithError(
|
| - content::RenderViewHost* render_view_host,
|
| - const ViewHostMsg_DidFailProvisionalLoadWithError_Params& params) {}
|
| -
|
| - // The RenderView was navigated to a different page.
|
| - virtual void DidNavigate(RenderViewHost* render_view_host,
|
| - const ViewHostMsg_FrameNavigate_Params& params) {}
|
| -
|
| - // The state for the page changed and should be updated.
|
| - virtual void UpdateState(RenderViewHost* render_view_host,
|
| - int32 page_id,
|
| - const std::string& state) {}
|
| -
|
| - // The page's title was changed and should be updated.
|
| - virtual void UpdateTitle(RenderViewHost* render_view_host,
|
| - int32 page_id,
|
| - const string16& title,
|
| - base::i18n::TextDirection title_direction) {}
|
| -
|
| - // The page's encoding was changed and should be updated.
|
| - virtual void UpdateEncoding(RenderViewHost* render_view_host,
|
| - const std::string& encoding) {}
|
| -
|
| - // The destination URL has changed should be updated
|
| - virtual void UpdateTargetURL(int32 page_id, const GURL& url) {}
|
| -
|
| - // The page is trying to close the RenderView's representation in the client.
|
| - virtual void Close(RenderViewHost* render_view_host) {}
|
| -
|
| - // The RenderViewHost has been swapped out.
|
| - virtual void SwappedOut(RenderViewHost* render_view_host) {}
|
| -
|
| - // The page is trying to move the RenderView's representation in the client.
|
| - virtual void RequestMove(const gfx::Rect& new_bounds) {}
|
| -
|
| - // The RenderView began loading a new page. This corresponds to WebKit's
|
| - // notion of the throbber starting.
|
| - virtual void DidStartLoading() {}
|
| -
|
| - // The RenderView stopped loading a page. This corresponds to WebKit's
|
| - // notion of the throbber stopping.
|
| - virtual void DidStopLoading() {}
|
| -
|
| - // The pending page load was canceled.
|
| - virtual void DidCancelLoading() {}
|
| -
|
| - // The RenderView made progress loading a page's top frame.
|
| - // |progress| is a value between 0 (nothing loaded) to 1.0 (top frame
|
| - // entirely loaded).
|
| - virtual void DidChangeLoadProgress(double progress) {}
|
| -
|
| - // The RenderView's main frame document element is ready. This happens when
|
| - // the document has finished parsing.
|
| - virtual void DocumentAvailableInMainFrame(RenderViewHost* render_view_host) {}
|
| -
|
| - // The onload handler in the RenderView's main frame has completed.
|
| - virtual void DocumentOnLoadCompletedInMainFrame(
|
| - RenderViewHost* render_view_host,
|
| - int32 page_id) {}
|
| -
|
| - // The page wants to open a URL with the specified disposition.
|
| - virtual void RequestOpenURL(RenderViewHost* rvh,
|
| - const GURL& url,
|
| - const content::Referrer& referrer,
|
| - WindowOpenDisposition disposition,
|
| - int64 source_frame_id) {}
|
| -
|
| - // The page wants to transfer the request to a new renderer.
|
| - virtual void RequestTransferURL(
|
| - const GURL& url,
|
| - const content::Referrer& referrer,
|
| - WindowOpenDisposition disposition,
|
| - int64 source_frame_id,
|
| - const content::GlobalRequestID& old_request_id) {}
|
| -
|
| - // The page wants to close the active view in this tab.
|
| - virtual void RouteCloseEvent(RenderViewHost* rvh) {}
|
| -
|
| - // The page wants to post a message to the active view in this tab.
|
| - virtual void RouteMessageEvent(
|
| - RenderViewHost* rvh,
|
| - const ViewMsg_PostMessage_Params& params) {}
|
| -
|
| - // A javascript message, confirmation or prompt should be shown.
|
| - virtual void RunJavaScriptMessage(RenderViewHost* rvh,
|
| - const string16& message,
|
| - const string16& default_prompt,
|
| - const GURL& frame_url,
|
| - ui::JavascriptMessageType type,
|
| - IPC::Message* reply_msg,
|
| - bool* did_suppress_message) {}
|
| -
|
| - virtual void RunBeforeUnloadConfirm(RenderViewHost* rvh,
|
| - const string16& message,
|
| - bool is_reload,
|
| - IPC::Message* reply_msg) {}
|
| -
|
| - // Return a dummy RendererPreferences object that will be used by the renderer
|
| - // associated with the owning RenderViewHost.
|
| - virtual content::RendererPreferences GetRendererPrefs(
|
| - content::BrowserContext* browser_context) const = 0;
|
| -
|
| - // Returns a WebPreferences object that will be used by the renderer
|
| - // associated with the owning render view host.
|
| - virtual webkit_glue::WebPreferences GetWebkitPrefs();
|
| -
|
| - // Notification the user has made a gesture while focus was on the
|
| - // page. This is used to avoid uninitiated user downloads (aka carpet
|
| - // bombing), see DownloadRequestLimiter for details.
|
| - virtual void OnUserGesture() {}
|
| -
|
| - // Notification from the renderer host that blocked UI event occurred.
|
| - // This happens when there are tab-modal dialogs. In this case, the
|
| - // notification is needed to let us draw attention to the dialog (i.e.
|
| - // refocus on the modal dialog, flash title etc).
|
| - virtual void OnIgnoredUIEvent() {}
|
| -
|
| - // Notification that the renderer has become unresponsive. The
|
| - // delegate can use this notification to show a warning to the user.
|
| - virtual void RendererUnresponsive(RenderViewHost* render_view_host,
|
| - bool is_during_unload) {}
|
| -
|
| - // Notification that a previously unresponsive renderer has become
|
| - // responsive again. The delegate can use this notification to end the
|
| - // warning shown to the user.
|
| - virtual void RendererResponsive(RenderViewHost* render_view_host) {}
|
| -
|
| - // Notification that the RenderViewHost's load state changed.
|
| - virtual void LoadStateChanged(const GURL& url,
|
| - const net::LoadStateWithParam& load_state,
|
| - uint64 upload_position,
|
| - uint64 upload_size) {}
|
| -
|
| - // Notification that a worker process has crashed.
|
| - virtual void WorkerCrashed() {}
|
| -
|
| - // The page wants the hosting window to activate/deactivate itself (it
|
| - // called the JavaScript window.focus()/blur() method).
|
| - virtual void Activate() {}
|
| - virtual void Deactivate() {}
|
| -
|
| - // Notification that the view has lost capture.
|
| - virtual void LostCapture() {}
|
| -
|
| - // Notifications about mouse events in this view. This is useful for
|
| - // implementing global 'on hover' features external to the view.
|
| - virtual void HandleMouseMove() {}
|
| - virtual void HandleMouseDown() {}
|
| - virtual void HandleMouseLeave() {}
|
| - virtual void HandleMouseUp() {}
|
| - virtual void HandleMouseActivate() {}
|
| -
|
| - // Called when a file selection is to be done.
|
| - virtual void RunFileChooser(
|
| - RenderViewHost* render_view_host,
|
| - const content::FileChooserParams& params) {}
|
| -
|
| - // Notification that the page wants to go into or out of fullscreen mode.
|
| - virtual void ToggleFullscreenMode(bool enter_fullscreen) {}
|
| - virtual bool IsFullscreenForCurrentTab() const;
|
| -
|
| - // The contents' preferred size changed.
|
| - virtual void UpdatePreferredSize(const gfx::Size& pref_size) {}
|
| -
|
| - // The contents auto-resized and the container should match it.
|
| - virtual void ResizeDueToAutoResize(const gfx::Size& new_size) {}
|
| -
|
| - // Requests to lock the mouse. Once the request is approved or rejected,
|
| - // GotResponseToLockMouseRequest() will be called on the requesting render
|
| - // view host.
|
| - virtual void RequestToLockMouse(bool user_gesture) {}
|
| -
|
| - // Notification that the view has lost the mouse lock.
|
| - virtual void LostMouseLock() {}
|
| -
|
| - // The page is trying to open a new page (e.g. a popup window). The window
|
| - // should be created associated with the given route, but it should not be
|
| - // shown yet. That should happen in response to ShowCreatedWindow.
|
| - // |params.window_container_type| describes the type of RenderViewHost
|
| - // container that is requested -- in particular, the window.open call may
|
| - // have specified 'background' and 'persistent' in the feature string.
|
| - //
|
| - // The passed |params.frame_name| parameter is the name parameter that was
|
| - // passed to window.open(), and will be empty if none was passed.
|
| - //
|
| - // Note: this is not called "CreateWindow" because that will clash with
|
| - // the Windows function which is actually a #define.
|
| - virtual void CreateNewWindow(
|
| - int route_id,
|
| - const ViewHostMsg_CreateWindow_Params& params) {}
|
| -
|
| - // The page is trying to open a new widget (e.g. a select popup). The
|
| - // widget should be created associated with the given route, but it should
|
| - // not be shown yet. That should happen in response to ShowCreatedWidget.
|
| - // |popup_type| indicates if the widget is a popup and what kind of popup it
|
| - // is (select, autofill...).
|
| - virtual void CreateNewWidget(int route_id,
|
| - WebKit::WebPopupType popup_type) {}
|
| -
|
| - // Creates a full screen RenderWidget. Similar to above.
|
| - virtual void CreateNewFullscreenWidget(int route_id) {}
|
| -
|
| - // Show a previously created page with the specified disposition and bounds.
|
| - // The window is identified by the route_id passed to CreateNewWindow.
|
| - //
|
| - // Note: this is not called "ShowWindow" because that will clash with
|
| - // the Windows function which is actually a #define.
|
| - virtual void ShowCreatedWindow(int route_id,
|
| - WindowOpenDisposition disposition,
|
| - const gfx::Rect& initial_pos,
|
| - bool user_gesture) {}
|
| -
|
| - // Show the newly created widget with the specified bounds.
|
| - // The widget is identified by the route_id passed to CreateNewWidget.
|
| - virtual void ShowCreatedWidget(int route_id,
|
| - const gfx::Rect& initial_pos) {}
|
| -
|
| - // Show the newly created full screen widget. Similar to above.
|
| - virtual void ShowCreatedFullscreenWidget(int route_id) {}
|
| -
|
| - // A context menu should be shown, to be built using the context information
|
| - // provided in the supplied params.
|
| - virtual void ShowContextMenu(const content::ContextMenuParams& params) {}
|
| -
|
| - protected:
|
| - virtual ~RenderViewHostDelegate() {}
|
| -};
|
| -
|
| -} // namespace content
|
| -
|
| -#endif // CONTENT_PUBLIC_BROWSER_RENDER_VIEW_HOST_DELEGATE_H_
|
|
|