| Index: content/renderer/render_view.h
|
| ===================================================================
|
| --- content/renderer/render_view.h (revision 104727)
|
| +++ content/renderer/render_view.h (working copy)
|
| @@ -1,1210 +0,0 @@
|
| -// Copyright (c) 2011 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_RENDERER_RENDER_VIEW_H_
|
| -#define CONTENT_RENDERER_RENDER_VIEW_H_
|
| -#pragma once
|
| -
|
| -#include <deque>
|
| -#include <map>
|
| -#include <queue>
|
| -#include <set>
|
| -#include <string>
|
| -#include <vector>
|
| -
|
| -#include "base/basictypes.h"
|
| -#include "base/gtest_prod_util.h"
|
| -#include "base/id_map.h"
|
| -#include "base/memory/linked_ptr.h"
|
| -#include "base/memory/weak_ptr.h"
|
| -#include "base/observer_list.h"
|
| -#include "base/timer.h"
|
| -#include "build/build_config.h"
|
| -#include "content/renderer/render_view_selection.h"
|
| -#include "content/renderer/renderer_webcookiejar_impl.h"
|
| -#include "content/common/content_export.h"
|
| -#include "content/common/edit_command.h"
|
| -#include "content/common/navigation_gesture.h"
|
| -#include "content/common/page_zoom.h"
|
| -#include "content/common/renderer_preferences.h"
|
| -#include "content/public/renderer/render_view.h"
|
| -#include "content/renderer/pepper_plugin_delegate_impl.h"
|
| -#include "content/renderer/render_widget.h"
|
| -#include "ipc/ipc_platform_file.h"
|
| -#include "third_party/WebKit/Source/WebKit/chromium/public/WebConsoleMessage.h"
|
| -#include "third_party/WebKit/Source/WebKit/chromium/public/WebFileSystem.h"
|
| -#include "third_party/WebKit/Source/WebKit/chromium/public/WebFrameClient.h"
|
| -#include "third_party/WebKit/Source/WebKit/chromium/public/WebIconURL.h"
|
| -#include "third_party/WebKit/Source/WebKit/chromium/public/WebNode.h"
|
| -#include "third_party/WebKit/Source/WebKit/chromium/public/WebPageSerializerClient.h"
|
| -#include "third_party/WebKit/Source/WebKit/chromium/public/WebPageVisibilityState.h"
|
| -#include "third_party/WebKit/Source/WebKit/chromium/public/WebTextDirection.h"
|
| -#include "third_party/WebKit/Source/WebKit/chromium/public/WebViewClient.h"
|
| -#include "third_party/WebKit/Source/WebKit/chromium/public/WebNavigationType.h"
|
| -#include "ui/gfx/surface/transport_dib.h"
|
| -#include "webkit/glue/webpreferences.h"
|
| -#include "webkit/plugins/npapi/webplugin_page_delegate.h"
|
| -
|
| -#if defined(OS_WIN)
|
| -// RenderView is a diamond-shaped hierarchy, with WebWidgetClient at the root.
|
| -// VS warns when we inherit the WebWidgetClient method implementations from
|
| -// RenderWidget. It's safe to ignore that warning.
|
| -#pragma warning(disable: 4250)
|
| -#endif
|
| -
|
| -class AudioMessageFilter;
|
| -class DeviceOrientationDispatcher;
|
| -class DevToolsAgent;
|
| -class ExternalPopupMenu;
|
| -class GeolocationDispatcher;
|
| -class GURL;
|
| -class IntentsDispatcher;
|
| -class LoadProgressTracker;
|
| -class MediaStreamImpl;
|
| -class NotificationProvider;
|
| -class PepperDeviceTest;
|
| -class PrintWebViewHelper;
|
| -class RenderWidgetFullscreenPepper;
|
| -class RendererAccessibility;
|
| -class SkBitmap;
|
| -class SpeechInputDispatcher;
|
| -class WebPluginDelegateProxy;
|
| -class WebUIBindings;
|
| -struct ContextMenuMediaParams;
|
| -struct PP_Flash_NetAddress;
|
| -struct ViewHostMsg_RunFileChooser_Params;
|
| -struct ViewMsg_SwapOut_Params;
|
| -struct ViewMsg_Navigate_Params;
|
| -struct ViewMsg_StopFinding_Params;
|
| -struct WebDropData;
|
| -
|
| -namespace base {
|
| -class WaitableEvent;
|
| -} // namespace base
|
| -
|
| -namespace content {
|
| -class NavigationState;
|
| -class P2PSocketDispatcher;
|
| -class RenderViewObserver;
|
| -class RenderViewVisitor;
|
| -} // namespace content
|
| -
|
| -namespace gfx {
|
| -class Point;
|
| -class Rect;
|
| -} // namespace gfx
|
| -
|
| -namespace webkit {
|
| -
|
| -namespace ppapi {
|
| -class PluginInstance;
|
| -class PluginModule;
|
| -} // namespace ppapi
|
| -
|
| -} // namespace webkit
|
| -
|
| -namespace webkit_glue {
|
| -struct CustomContextMenuContext;
|
| -class ImageResourceFetcher;
|
| -struct FileUploadData;
|
| -struct FormData;
|
| -struct PasswordFormFillData;
|
| -class ResourceFetcher;
|
| -}
|
| -
|
| -namespace WebKit {
|
| -class WebApplicationCacheHost;
|
| -class WebApplicationCacheHostClient;
|
| -class WebDataSource;
|
| -class WebDocument;
|
| -class WebDragData;
|
| -class WebGeolocationClient;
|
| -class WebGeolocationServiceInterface;
|
| -class WebIconURL;
|
| -class WebImage;
|
| -class WebInputElement;
|
| -class WebKeyboardEvent;
|
| -class WebMediaPlayer;
|
| -class WebMediaPlayerClient;
|
| -class WebMouseEvent;
|
| -class WebSpeechInputController;
|
| -class WebSpeechInputListener;
|
| -class WebStorageNamespace;
|
| -class WebTouchEvent;
|
| -class WebURLLoader;
|
| -class WebURLRequest;
|
| -struct WebFileChooserParams;
|
| -struct WebFindOptions;
|
| -struct WebMediaPlayerAction;
|
| -struct WebPoint;
|
| -struct WebWindowFeatures;
|
| -}
|
| -
|
| -// We need to prevent a page from trying to create infinite popups. It is not
|
| -// as simple as keeping a count of the number of immediate children
|
| -// popups. Having an html file that window.open()s itself would create
|
| -// an unlimited chain of RenderViews who only have one RenderView child.
|
| -//
|
| -// Therefore, each new top level RenderView creates a new counter and shares it
|
| -// with all its children and grandchildren popup RenderViews created with
|
| -// createView() to have a sort of global limit for the page so no more than
|
| -// kMaximumNumberOfPopups popups are created.
|
| -//
|
| -// This is a RefCounted holder of an int because I can't say
|
| -// scoped_refptr<int>.
|
| -typedef base::RefCountedData<int> SharedRenderViewCounter;
|
| -
|
| -//
|
| -// RenderView is an object that manages a WebView object, and provides a
|
| -// communication interface with an embedding application process
|
| -//
|
| -class RenderView : public RenderWidget,
|
| - public WebKit::WebViewClient,
|
| - public WebKit::WebFrameClient,
|
| - public WebKit::WebPageSerializerClient,
|
| - public content::RenderView,
|
| - public webkit::npapi::WebPluginPageDelegate,
|
| - public base::SupportsWeakPtr<RenderView> {
|
| - public:
|
| - // Creates a new RenderView. The parent_hwnd specifies a HWND to use as the
|
| - // parent of the WebView HWND that will be created. If this is a blocked
|
| - // popup or as a new tab, opener_id is the routing ID of the RenderView
|
| - // responsible for creating this RenderView (corresponding to parent_hwnd).
|
| - // |counter| is either a currently initialized counter, or NULL (in which case
|
| - // we treat this RenderView as a top level window).
|
| - CONTENT_EXPORT static RenderView* Create(
|
| - gfx::NativeViewId parent_hwnd,
|
| - int32 opener_id,
|
| - const RendererPreferences& renderer_prefs,
|
| - const WebPreferences& webkit_prefs,
|
| - SharedRenderViewCounter* counter,
|
| - int32 routing_id,
|
| - int64 session_storage_namespace_id,
|
| - const string16& frame_name);
|
| -
|
| - // Returns the RenderView containing the given WebView.
|
| - CONTENT_EXPORT static RenderView* FromWebView(WebKit::WebView* webview);
|
| -
|
| - // Sets the "next page id" counter.
|
| - static void SetNextPageID(int32 next_page_id);
|
| -
|
| - // May return NULL when the view is closing.
|
| - CONTENT_EXPORT WebKit::WebView* webview() const;
|
| -
|
| - // Called by a GraphicsContext associated with this view when swapbuffers
|
| - // is posted, completes or is aborted.
|
| - void OnViewContextSwapBuffersPosted();
|
| - void OnViewContextSwapBuffersComplete();
|
| - void OnViewContextSwapBuffersAborted();
|
| -
|
| - int history_list_offset() const { return history_list_offset_; }
|
| -
|
| - const WebPreferences& webkit_preferences() const {
|
| - return webkit_preferences_;
|
| - }
|
| -
|
| - void set_send_content_state_immediately(bool value) {
|
| - send_content_state_immediately_ = value;
|
| - }
|
| -
|
| - // Current P2PSocketDispatcher. Set to NULL if P2P API is disabled.
|
| - content::P2PSocketDispatcher* p2p_socket_dispatcher() {
|
| - return p2p_socket_dispatcher_;
|
| - }
|
| -
|
| - // Functions to add and remove observers for this object.
|
| - void AddObserver(content::RenderViewObserver* observer);
|
| - void RemoveObserver(content::RenderViewObserver* observer);
|
| -
|
| - // Adds the given file chooser request to the file_chooser_completion_ queue
|
| - // (see that var for more) and requests the chooser be displayed if there are
|
| - // no other waiting items in the queue.
|
| - //
|
| - // Returns true if the chooser was successfully scheduled. False means we
|
| - // didn't schedule anything.
|
| - bool ScheduleFileChooser(const ViewHostMsg_RunFileChooser_Params& params,
|
| - WebKit::WebFileChooserCompletion* completion);
|
| -
|
| - // Sets whether the renderer should report load progress to the browser.
|
| - void SetReportLoadProgressEnabled(bool enabled);
|
| -
|
| - void LoadNavigationErrorPage(
|
| - WebKit::WebFrame* frame,
|
| - const WebKit::WebURLRequest& failed_request,
|
| - const WebKit::WebURLError& error,
|
| - const std::string& html,
|
| - bool replace);
|
| -
|
| - // Plugin-related functions --------------------------------------------------
|
| - // (See also WebPluginPageDelegate implementation.)
|
| -
|
| - // Notification that the given plugin has crashed.
|
| - void PluginCrashed(const FilePath& plugin_path);
|
| -
|
| - // Creates a fullscreen container for a pepper plugin instance.
|
| - RenderWidgetFullscreenPepper* CreatePepperFullscreenContainer(
|
| - webkit::ppapi::PluginInstance* plugin);
|
| -
|
| - // Informs the render view that a PPAPI plugin has gained or lost focus.
|
| - void PpapiPluginFocusChanged();
|
| -
|
| - // Request updated policy regarding firewall NAT traversal being enabled.
|
| - void RequestRemoteAccessClientFirewallTraversal();
|
| -
|
| -#if defined(OS_MACOSX) || defined(OS_WIN)
|
| - // Informs the render view that the given plugin has gained or lost focus.
|
| - void PluginFocusChanged(bool focused, int plugin_id);
|
| -#endif
|
| -
|
| -#if defined(OS_MACOSX)
|
| - // Starts plugin IME.
|
| - void StartPluginIme();
|
| -
|
| - // Helper routines for accelerated plugin support. Used by the
|
| - // WebPluginDelegateProxy, which has a pointer to the RenderView.
|
| - gfx::PluginWindowHandle AllocateFakePluginWindowHandle(bool opaque,
|
| - bool root);
|
| - void DestroyFakePluginWindowHandle(gfx::PluginWindowHandle window);
|
| - void AcceleratedSurfaceSetIOSurface(gfx::PluginWindowHandle window,
|
| - int32 width,
|
| - int32 height,
|
| - uint64 io_surface_identifier);
|
| - TransportDIB::Handle AcceleratedSurfaceAllocTransportDIB(size_t size);
|
| - void AcceleratedSurfaceFreeTransportDIB(TransportDIB::Id dib_id);
|
| - void AcceleratedSurfaceSetTransportDIB(gfx::PluginWindowHandle window,
|
| - int32 width,
|
| - int32 height,
|
| - TransportDIB::Handle transport_dib);
|
| - void AcceleratedSurfaceBuffersSwapped(gfx::PluginWindowHandle window,
|
| - uint64 surface_id);
|
| -#endif
|
| -
|
| - void RegisterPluginDelegate(WebPluginDelegateProxy* delegate);
|
| - void UnregisterPluginDelegate(WebPluginDelegateProxy* delegate);
|
| -
|
| - // Helper function to retrieve information about a plugin for a URL and mime
|
| - // type. Returns false if no plugin was found.
|
| - // |actual_mime_type| is the actual mime type supported by the
|
| - // plugin found that match the URL given (one for each item in
|
| - // |info|).
|
| - CONTENT_EXPORT bool GetPluginInfo(const GURL& url,
|
| - const GURL& page_url,
|
| - const std::string& mime_type,
|
| - webkit::WebPluginInfo* plugin_info,
|
| - std::string* actual_mime_type);
|
| -
|
| - // IPC::Channel::Listener implementation -------------------------------------
|
| -
|
| - virtual bool OnMessageReceived(const IPC::Message& msg);
|
| -
|
| - // WebKit::WebWidgetClient implementation ------------------------------------
|
| -
|
| - // Most methods are handled by RenderWidget.
|
| - virtual void didFocus();
|
| - virtual void didBlur();
|
| - virtual void show(WebKit::WebNavigationPolicy policy);
|
| - virtual void runModal();
|
| -
|
| - // WebKit::WebViewClient implementation --------------------------------------
|
| -
|
| - virtual WebKit::WebView* createView(
|
| - WebKit::WebFrame* creator,
|
| - const WebKit::WebURLRequest& request,
|
| - const WebKit::WebWindowFeatures& features,
|
| - const WebKit::WebString& frame_name);
|
| - virtual WebKit::WebWidget* createPopupMenu(WebKit::WebPopupType popup_type);
|
| - virtual WebKit::WebWidget* createPopupMenu(
|
| - const WebKit::WebPopupMenuInfo& info);
|
| - virtual WebKit::WebExternalPopupMenu* createExternalPopupMenu(
|
| - const WebKit::WebPopupMenuInfo& popup_menu_info,
|
| - WebKit::WebExternalPopupMenuClient* popup_menu_client);
|
| - virtual WebKit::WebStorageNamespace* createSessionStorageNamespace(
|
| - unsigned quota);
|
| - virtual void didAddMessageToConsole(
|
| - const WebKit::WebConsoleMessage& message,
|
| - const WebKit::WebString& source_name,
|
| - unsigned source_line);
|
| - virtual void printPage(WebKit::WebFrame* frame);
|
| - virtual WebKit::WebNotificationPresenter* notificationPresenter();
|
| - virtual bool enumerateChosenDirectory(
|
| - const WebKit::WebString& path,
|
| - WebKit::WebFileChooserCompletion* chooser_completion);
|
| - virtual void didStartLoading();
|
| - virtual void didStopLoading();
|
| - virtual void didChangeLoadProgress(WebKit::WebFrame* frame,
|
| - double load_progress);
|
| - virtual bool isSmartInsertDeleteEnabled();
|
| - virtual bool isSelectTrailingWhitespaceEnabled();
|
| - virtual void didChangeSelection(bool is_selection_empty);
|
| - virtual void didExecuteCommand(const WebKit::WebString& command_name);
|
| - virtual bool handleCurrentKeyboardEvent();
|
| - virtual bool runFileChooser(
|
| - const WebKit::WebFileChooserParams& params,
|
| - WebKit::WebFileChooserCompletion* chooser_completion);
|
| - virtual void runModalAlertDialog(WebKit::WebFrame* frame,
|
| - const WebKit::WebString& message);
|
| - virtual bool runModalConfirmDialog(WebKit::WebFrame* frame,
|
| - const WebKit::WebString& message);
|
| - virtual bool runModalPromptDialog(WebKit::WebFrame* frame,
|
| - const WebKit::WebString& message,
|
| - const WebKit::WebString& default_value,
|
| - WebKit::WebString* actual_value);
|
| - virtual bool runModalBeforeUnloadDialog(WebKit::WebFrame* frame,
|
| - const WebKit::WebString& message);
|
| - virtual void showContextMenu(WebKit::WebFrame* frame,
|
| - const WebKit::WebContextMenuData& data);
|
| - virtual bool supportsFullscreen();
|
| - virtual void enterFullscreenForNode(const WebKit::WebNode&);
|
| - virtual void exitFullscreenForNode(const WebKit::WebNode&);
|
| - virtual void enterFullscreen() OVERRIDE;
|
| - virtual void exitFullscreen() OVERRIDE;
|
| - virtual void setStatusText(const WebKit::WebString& text);
|
| - virtual void setMouseOverURL(const WebKit::WebURL& url);
|
| - virtual void setKeyboardFocusURL(const WebKit::WebURL& url);
|
| - virtual void startDragging(const WebKit::WebDragData& data,
|
| - WebKit::WebDragOperationsMask mask,
|
| - const WebKit::WebImage& image,
|
| - const WebKit::WebPoint& imageOffset);
|
| - virtual bool acceptsLoadDrops();
|
| - virtual void focusNext();
|
| - virtual void focusPrevious();
|
| - virtual void focusedNodeChanged(const WebKit::WebNode& node);
|
| - virtual void navigateBackForwardSoon(int offset);
|
| - virtual int historyBackListCount();
|
| - virtual int historyForwardListCount();
|
| - virtual void postAccessibilityNotification(
|
| - const WebKit::WebAccessibilityObject& obj,
|
| - WebKit::WebAccessibilityNotification notification);
|
| - virtual void didUpdateInspectorSetting(const WebKit::WebString& key,
|
| - const WebKit::WebString& value);
|
| - virtual WebKit::WebGeolocationClient* geolocationClient();
|
| - virtual WebKit::WebSpeechInputController* speechInputController(
|
| - WebKit::WebSpeechInputListener* listener);
|
| - virtual WebKit::WebDeviceOrientationClient* deviceOrientationClient();
|
| - virtual void zoomLimitsChanged(double minimum_level, double maximum_level);
|
| - virtual void zoomLevelChanged();
|
| - virtual void registerProtocolHandler(const WebKit::WebString& scheme,
|
| - const WebKit::WebString& base_url,
|
| - const WebKit::WebString& url,
|
| - const WebKit::WebString& title);
|
| - virtual void registerIntentHandler(const WebKit::WebString& action,
|
| - const WebKit::WebString& type,
|
| - const WebKit::WebString& href,
|
| - const WebKit::WebString& title);
|
| - virtual WebKit::WebPageVisibilityState visibilityState() const;
|
| - virtual void startActivity(const WebKit::WebString& action,
|
| - const WebKit::WebString& type,
|
| - const WebKit::WebString& data,
|
| - int intent_id);
|
| -
|
| - // WebKit::WebFrameClient implementation -------------------------------------
|
| -
|
| - virtual WebKit::WebPlugin* createPlugin(
|
| - WebKit::WebFrame* frame,
|
| - const WebKit::WebPluginParams& params);
|
| - virtual WebKit::WebWorker* createWorker(WebKit::WebFrame* frame,
|
| - WebKit::WebWorkerClient* client);
|
| - virtual WebKit::WebSharedWorker* createSharedWorker(
|
| - WebKit::WebFrame* frame, const WebKit::WebURL& url,
|
| - const WebKit::WebString& name, unsigned long long documentId);
|
| - virtual WebKit::WebMediaPlayer* createMediaPlayer(
|
| - WebKit::WebFrame* frame,
|
| - WebKit::WebMediaPlayerClient* client);
|
| - virtual WebKit::WebApplicationCacheHost* createApplicationCacheHost(
|
| - WebKit::WebFrame* frame,
|
| - WebKit::WebApplicationCacheHostClient* client);
|
| - virtual WebKit::WebCookieJar* cookieJar(WebKit::WebFrame* frame);
|
| - virtual void frameDetached(WebKit::WebFrame* frame);
|
| - virtual void willClose(WebKit::WebFrame* frame);
|
| - virtual void loadURLExternally(WebKit::WebFrame* frame,
|
| - const WebKit::WebURLRequest& request,
|
| - WebKit::WebNavigationPolicy policy);
|
| - virtual void loadURLExternally(WebKit::WebFrame* frame,
|
| - const WebKit::WebURLRequest& request,
|
| - WebKit::WebNavigationPolicy policy,
|
| - const WebKit::WebString& suggested_name);
|
| - virtual WebKit::WebNavigationPolicy decidePolicyForNavigation(
|
| - WebKit::WebFrame* frame,
|
| - const WebKit::WebURLRequest& request,
|
| - WebKit::WebNavigationType type,
|
| - const WebKit::WebNode&,
|
| - WebKit::WebNavigationPolicy default_policy,
|
| - bool is_redirect);
|
| - virtual bool canHandleRequest(WebKit::WebFrame* frame,
|
| - const WebKit::WebURLRequest& request);
|
| - virtual WebKit::WebURLError cannotHandleRequestError(
|
| - WebKit::WebFrame* frame,
|
| - const WebKit::WebURLRequest& request);
|
| - virtual WebKit::WebURLError cancelledError(
|
| - WebKit::WebFrame* frame,
|
| - const WebKit::WebURLRequest& request);
|
| - virtual void unableToImplementPolicyWithError(
|
| - WebKit::WebFrame* frame,
|
| - const WebKit::WebURLError& error);
|
| - virtual void willSendSubmitEvent(WebKit::WebFrame* frame,
|
| - const WebKit::WebFormElement& form);
|
| - virtual void willSubmitForm(WebKit::WebFrame* frame,
|
| - const WebKit::WebFormElement& form);
|
| - virtual void willPerformClientRedirect(WebKit::WebFrame* frame,
|
| - const WebKit::WebURL& from,
|
| - const WebKit::WebURL& to,
|
| - double interval,
|
| - double fire_time);
|
| - virtual void didCancelClientRedirect(WebKit::WebFrame* frame);
|
| - virtual void didCompleteClientRedirect(WebKit::WebFrame* frame,
|
| - const WebKit::WebURL& from);
|
| - virtual void didCreateDataSource(WebKit::WebFrame* frame,
|
| - WebKit::WebDataSource* datasource);
|
| - virtual void didStartProvisionalLoad(WebKit::WebFrame* frame);
|
| - virtual void didReceiveServerRedirectForProvisionalLoad(
|
| - WebKit::WebFrame* frame);
|
| - virtual void didFailProvisionalLoad(WebKit::WebFrame* frame,
|
| - const WebKit::WebURLError& error);
|
| - virtual void didReceiveDocumentData(WebKit::WebFrame* frame,
|
| - const char* data, size_t length,
|
| - bool& prevent_default);
|
| - virtual void didCommitProvisionalLoad(WebKit::WebFrame* frame,
|
| - bool is_new_navigation);
|
| - virtual void didClearWindowObject(WebKit::WebFrame* frame);
|
| - virtual void didCreateDocumentElement(WebKit::WebFrame* frame);
|
| - virtual void didReceiveTitle(WebKit::WebFrame* frame,
|
| - const WebKit::WebString& title,
|
| - WebKit::WebTextDirection direction);
|
| - virtual void didChangeIcon(WebKit::WebFrame*,
|
| - WebKit::WebIconURL::Type) OVERRIDE;
|
| - virtual void didFinishDocumentLoad(WebKit::WebFrame* frame);
|
| - virtual void didHandleOnloadEvents(WebKit::WebFrame* frame);
|
| - virtual void didFailLoad(WebKit::WebFrame* frame,
|
| - const WebKit::WebURLError& error);
|
| - virtual void didFinishLoad(WebKit::WebFrame* frame);
|
| - virtual void didNavigateWithinPage(WebKit::WebFrame* frame,
|
| - bool is_new_navigation);
|
| - virtual void didUpdateCurrentHistoryItem(WebKit::WebFrame* frame);
|
| - virtual void assignIdentifierToRequest(WebKit::WebFrame* frame,
|
| - unsigned identifier,
|
| - const WebKit::WebURLRequest& request);
|
| - virtual void willSendRequest(WebKit::WebFrame* frame,
|
| - unsigned identifier,
|
| - WebKit::WebURLRequest& request,
|
| - const WebKit::WebURLResponse& redirect_response);
|
| - virtual void didReceiveResponse(WebKit::WebFrame* frame,
|
| - unsigned identifier,
|
| - const WebKit::WebURLResponse& response);
|
| - virtual void didFinishResourceLoad(WebKit::WebFrame* frame,
|
| - unsigned identifier);
|
| - virtual void didFailResourceLoad(WebKit::WebFrame* frame,
|
| - unsigned identifier,
|
| - const WebKit::WebURLError& error);
|
| - virtual void didLoadResourceFromMemoryCache(
|
| - WebKit::WebFrame* frame,
|
| - const WebKit::WebURLRequest& request,
|
| - const WebKit::WebURLResponse&);
|
| - virtual void didDisplayInsecureContent(WebKit::WebFrame* frame);
|
| - virtual void didRunInsecureContent(
|
| - WebKit::WebFrame* frame,
|
| - const WebKit::WebSecurityOrigin& origin,
|
| - const WebKit::WebURL& target);
|
| - virtual void didAdoptURLLoader(WebKit::WebURLLoader* loader);
|
| - virtual void didExhaustMemoryAvailableForScript(WebKit::WebFrame* frame);
|
| - virtual void didCreateScriptContext(WebKit::WebFrame* frame,
|
| - v8::Handle<v8::Context>,
|
| - int world_id);
|
| - virtual void willReleaseScriptContext(WebKit::WebFrame* frame,
|
| - v8::Handle<v8::Context>,
|
| - int world_id);
|
| - virtual void didUpdateLayout(WebKit::WebFrame* frame);
|
| - virtual void didChangeScrollOffset(WebKit::WebFrame* frame);
|
| - virtual void numberOfWheelEventHandlersChanged(unsigned num_handlers);
|
| - virtual void didChangeContentsSize(WebKit::WebFrame* frame,
|
| - const WebKit::WebSize& size);
|
| - virtual void reportFindInPageMatchCount(int request_id,
|
| - int count,
|
| - bool final_update);
|
| - virtual void reportFindInPageSelection(int request_id,
|
| - int active_match_ordinal,
|
| - const WebKit::WebRect& sel);
|
| -
|
| - virtual void openFileSystem(WebKit::WebFrame* frame,
|
| - WebKit::WebFileSystem::Type type,
|
| - long long size,
|
| - bool create,
|
| - WebKit::WebFileSystemCallbacks* callbacks);
|
| -
|
| - virtual void queryStorageUsageAndQuota(
|
| - WebKit::WebFrame* frame,
|
| - WebKit::WebStorageQuotaType type,
|
| - WebKit::WebStorageQuotaCallbacks* callbacks);
|
| -
|
| - virtual void requestStorageQuota(
|
| - WebKit::WebFrame* frame,
|
| - WebKit::WebStorageQuotaType type,
|
| - unsigned long long requested_size,
|
| - WebKit::WebStorageQuotaCallbacks* callbacks);
|
| -
|
| - // WebKit::WebPageSerializerClient implementation ----------------------------
|
| -
|
| - virtual void didSerializeDataForFrame(
|
| - const WebKit::WebURL& frame_url,
|
| - const WebKit::WebCString& data,
|
| - PageSerializationStatus status) OVERRIDE;
|
| -
|
| - // content::RenderView implementation ----------------------------------------
|
| -
|
| - virtual bool Send(IPC::Message* message) OVERRIDE;
|
| - virtual int GetRoutingId() const OVERRIDE;
|
| - virtual int GetPageId() OVERRIDE;
|
| - virtual gfx::Size GetSize() OVERRIDE;
|
| - virtual gfx::NativeViewId GetHostWindow() OVERRIDE;
|
| - virtual WebPreferences& GetWebkitPreferences() OVERRIDE;
|
| - virtual WebKit::WebView* GetWebView() OVERRIDE;
|
| - virtual WebKit::WebNode GetFocusedNode() const OVERRIDE;
|
| - virtual WebKit::WebNode GetContextMenuNode() const OVERRIDE;
|
| - virtual bool IsEditableNode(const WebKit::WebNode& node) OVERRIDE;
|
| - virtual WebKit::WebPlugin* CreatePlugin(
|
| - WebKit::WebFrame* frame,
|
| - const webkit::WebPluginInfo& info,
|
| - const WebKit::WebPluginParams& params) OVERRIDE;
|
| - virtual void EvaluateScript(const string16& frame_xpath,
|
| - const string16& jscript,
|
| - int id,
|
| - bool notify_result) OVERRIDE;
|
| - virtual bool ShouldDisplayScrollbars(int width, int height) const OVERRIDE;
|
| - virtual int GetEnabledBindings() OVERRIDE;
|
| - virtual void SetEnabledBindings(int enabled_bindings) OVERRIDE;
|
| - virtual bool GetContentStateImmediately() OVERRIDE;
|
| - virtual float GetFilteredTimePerFrame() OVERRIDE;
|
| - virtual void ShowContextMenu(WebKit::WebFrame* frame,
|
| - const WebKit::WebContextMenuData& data) OVERRIDE;
|
| - virtual WebKit::WebPageVisibilityState GetVisibilityState() const OVERRIDE;
|
| - virtual void RunModalAlertDialog(WebKit::WebFrame* frame,
|
| - const WebKit::WebString& message) OVERRIDE;
|
| - virtual void LoadURLExternally(
|
| - WebKit::WebFrame* frame,
|
| - const WebKit::WebURLRequest& request,
|
| - WebKit::WebNavigationPolicy policy) OVERRIDE;
|
| -
|
| - // webkit_glue::WebPluginPageDelegate implementation -------------------------
|
| -
|
| - virtual webkit::npapi::WebPluginDelegate* CreatePluginDelegate(
|
| - const FilePath& file_path,
|
| - const std::string& mime_type);
|
| - virtual void CreatedPluginWindow(gfx::PluginWindowHandle handle);
|
| - virtual void WillDestroyPluginWindow(gfx::PluginWindowHandle handle);
|
| - virtual void DidMovePlugin(const webkit::npapi::WebPluginGeometry& move);
|
| - virtual void DidStartLoadingForPlugin();
|
| - virtual void DidStopLoadingForPlugin();
|
| - virtual WebKit::WebCookieJar* GetCookieJar();
|
| -
|
| - // Please do not add your stuff randomly to the end here. If there is an
|
| - // appropriate section, add it there. If not, there are some random functions
|
| - // nearer to the top you can add it to.
|
| - virtual void DidFlushPaint();
|
| -
|
| - // Cannot use std::set unfortunately since linked_ptr<> does not support
|
| - // operator<.
|
| - typedef std::vector<linked_ptr<webkit_glue::ImageResourceFetcher> >
|
| - ImageResourceFetcherList;
|
| -
|
| - protected:
|
| - // RenderWidget overrides:
|
| - virtual void Close();
|
| - virtual void OnResize(const gfx::Size& new_size,
|
| - const gfx::Rect& resizer_rect);
|
| - virtual void DidInitiatePaint();
|
| - virtual webkit::ppapi::PluginInstance* GetBitmapForOptimizedPluginPaint(
|
| - const gfx::Rect& paint_bounds,
|
| - TransportDIB** dib,
|
| - gfx::Rect* location,
|
| - gfx::Rect* clip);
|
| - virtual gfx::Point GetScrollOffset();
|
| - virtual void DidHandleKeyEvent();
|
| - virtual bool WillHandleMouseEvent(
|
| - const WebKit::WebMouseEvent& event) OVERRIDE;
|
| - virtual void DidHandleMouseEvent(const WebKit::WebMouseEvent& event);
|
| - virtual void DidHandleTouchEvent(const WebKit::WebTouchEvent& event);
|
| - virtual void OnSetFocus(bool enable);
|
| - virtual void OnWasHidden();
|
| - virtual void OnWasRestored(bool needs_repainting);
|
| - virtual bool SupportsAsynchronousSwapBuffers() OVERRIDE;
|
| - virtual void OnImeSetComposition(
|
| - const string16& text,
|
| - const std::vector<WebKit::WebCompositionUnderline>& underlines,
|
| - int selection_start,
|
| - int selection_end) OVERRIDE;
|
| - virtual void OnImeConfirmComposition(const string16& text) OVERRIDE;
|
| - virtual ui::TextInputType GetTextInputType() OVERRIDE;
|
| - virtual bool CanComposeInline() OVERRIDE;
|
| - virtual bool WebWidgetHandlesCompositorScheduling() const OVERRIDE;
|
| -
|
| - private:
|
| - // For unit tests.
|
| - friend class ExternalPopupMenuTest;
|
| - friend class PepperDeviceTest;
|
| - friend class RenderViewTest;
|
| -
|
| - FRIEND_TEST_ALL_PREFIXES(ExternalPopupMenuRemoveTest, RemoveOnChange);
|
| - FRIEND_TEST_ALL_PREFIXES(ExternalPopupMenuTest, NormalCase);
|
| - FRIEND_TEST_ALL_PREFIXES(ExternalPopupMenuTest, ShowPopupThenNavigate);
|
| - FRIEND_TEST_ALL_PREFIXES(RenderViewTest, DontIgnoreBackAfterNavEntryLimit);
|
| - FRIEND_TEST_ALL_PREFIXES(RenderViewTest, ImeComposition);
|
| - FRIEND_TEST_ALL_PREFIXES(RenderViewTest, InsertCharacters);
|
| - FRIEND_TEST_ALL_PREFIXES(RenderViewTest, JSBlockSentAfterPageLoad);
|
| - FRIEND_TEST_ALL_PREFIXES(RenderViewTest, LastCommittedUpdateState);
|
| - FRIEND_TEST_ALL_PREFIXES(RenderViewTest, OnHandleKeyboardEvent);
|
| - FRIEND_TEST_ALL_PREFIXES(RenderViewTest, OnImeStateChanged);
|
| - FRIEND_TEST_ALL_PREFIXES(RenderViewTest, OnNavStateChanged);
|
| - FRIEND_TEST_ALL_PREFIXES(RenderViewTest, OnSetTextDirection);
|
| - FRIEND_TEST_ALL_PREFIXES(RenderViewTest, OnUpdateWebPreferences);
|
| - FRIEND_TEST_ALL_PREFIXES(RenderViewTest, StaleNavigationsIgnored);
|
| - FRIEND_TEST_ALL_PREFIXES(RenderViewTest, UpdateTargetURLWithInvalidURL);
|
| -#if defined(OS_MACOSX)
|
| - FRIEND_TEST_ALL_PREFIXES(RenderViewTest, MacTestCmdUp);
|
| -#endif
|
| - FRIEND_TEST_ALL_PREFIXES(RenderViewTest, SetHistoryLengthAndPrune);
|
| -
|
| - typedef std::map<GURL, double> HostZoomLevels;
|
| -
|
| - enum ErrorPageType {
|
| - DNS_ERROR,
|
| - HTTP_404,
|
| - CONNECTION_ERROR,
|
| - };
|
| -
|
| - RenderView(gfx::NativeViewId parent_hwnd,
|
| - int32 opener_id,
|
| - const RendererPreferences& renderer_prefs,
|
| - const WebPreferences& webkit_prefs,
|
| - SharedRenderViewCounter* counter,
|
| - int32 routing_id,
|
| - int64 session_storage_namespace_id,
|
| - const string16& frame_name);
|
| -
|
| - // Do not delete directly. This class is reference counted.
|
| - virtual ~RenderView();
|
| -
|
| - void UpdateURL(WebKit::WebFrame* frame);
|
| - void UpdateTitle(WebKit::WebFrame* frame, const string16& title,
|
| - WebKit::WebTextDirection title_direction);
|
| - void UpdateSessionHistory(WebKit::WebFrame* frame);
|
| -
|
| - // Update current main frame's encoding and send it to browser window.
|
| - // Since we want to let users see the right encoding info from menu
|
| - // before finishing loading, we call the UpdateEncoding in
|
| - // a) function:DidCommitLoadForFrame. When this function is called,
|
| - // that means we have got first data. In here we try to get encoding
|
| - // of page if it has been specified in http header.
|
| - // b) function:DidReceiveTitle. When this function is called,
|
| - // that means we have got specified title. Because in most of webpages,
|
| - // title tags will follow meta tags. In here we try to get encoding of
|
| - // page if it has been specified in meta tag.
|
| - // c) function:DidFinishDocumentLoadForFrame. When this function is
|
| - // called, that means we have got whole html page. In here we should
|
| - // finally get right encoding of page.
|
| - void UpdateEncoding(WebKit::WebFrame* frame,
|
| - const std::string& encoding_name);
|
| -
|
| - void OpenURL(WebKit::WebFrame* frame,
|
| - const GURL& url,
|
| - const GURL& referrer,
|
| - WebKit::WebNavigationPolicy policy);
|
| -
|
| - bool RunJavaScriptMessage(int type,
|
| - const string16& message,
|
| - const string16& default_value,
|
| - const GURL& frame_url,
|
| - string16* result);
|
| -
|
| - // Sends a message and runs a nested message loop.
|
| - bool SendAndRunNestedMessageLoop(IPC::SyncMessage* message);
|
| -
|
| - // Called when the "pinned to left/right edge" state needs to be updated.
|
| - void UpdateScrollState(WebKit::WebFrame* frame);
|
| -
|
| - // IPC message handlers ------------------------------------------------------
|
| - //
|
| - // The documentation for these functions should be in
|
| - // render_messages_internal.h for the message that the function is handling.
|
| -
|
| - void OnAllowBindings(int enabled_bindings_flags);
|
| - void OnAllowScriptToClose(bool script_can_close);
|
| - void OnAsyncFileOpened(base::PlatformFileError error_code,
|
| - IPC::PlatformFileForTransit file_for_transit,
|
| - int message_id);
|
| - void OnPpapiBrokerChannelCreated(int request_id,
|
| - base::ProcessHandle broker_process_handle,
|
| - const IPC::ChannelHandle& handle);
|
| - void OnCancelDownload(int32 download_id);
|
| - void OnClearFocusedNode();
|
| - void OnClosePage();
|
| -#if defined(ENABLE_FLAPPER_HACKS)
|
| - void OnConnectTcpACK(int request_id,
|
| - IPC::PlatformFileForTransit socket_for_transit,
|
| - const PP_Flash_NetAddress& local_addr,
|
| - const PP_Flash_NetAddress& remote_addr);
|
| -#endif
|
| - void OnContextMenuClosed(
|
| - const webkit_glue::CustomContextMenuContext& custom_context);
|
| - void OnCopy();
|
| - void OnCopyImageAt(int x, int y);
|
| -#if defined(OS_MACOSX)
|
| - void OnCopyToFindPboard();
|
| -#endif
|
| - void OnCut();
|
| - void OnCSSInsertRequest(const string16& frame_xpath,
|
| - const std::string& css);
|
| - void OnCustomContextMenuAction(
|
| - const webkit_glue::CustomContextMenuContext& custom_context,
|
| - unsigned action);
|
| - void OnDelete();
|
| - void OnDeterminePageLanguage();
|
| - void OnDisableScrollbarsForSmallWindows(
|
| - const gfx::Size& disable_scrollbars_size_limit);
|
| - void OnDisassociateFromPopupCount();
|
| - void OnDragSourceEndedOrMoved(const gfx::Point& client_point,
|
| - const gfx::Point& screen_point,
|
| - bool ended,
|
| - WebKit::WebDragOperation drag_operation);
|
| - void OnDragSourceSystemDragEnded();
|
| - void OnDragTargetDrop(const gfx::Point& client_pt,
|
| - const gfx::Point& screen_pt);
|
| - void OnDragTargetDragEnter(const WebDropData& drop_data,
|
| - const gfx::Point& client_pt,
|
| - const gfx::Point& screen_pt,
|
| - WebKit::WebDragOperationsMask operations_allowed);
|
| - void OnDragTargetDragLeave();
|
| - void OnDragTargetDragOver(const gfx::Point& client_pt,
|
| - const gfx::Point& screen_pt,
|
| - WebKit::WebDragOperationsMask operations_allowed);
|
| - void OnEnablePreferredSizeChangedMode(int flags);
|
| - void OnEnumerateDirectoryResponse(int id, const std::vector<FilePath>& paths);
|
| - void OnExecuteEditCommand(const std::string& name, const std::string& value);
|
| - void OnFileChooserResponse(const std::vector<FilePath>& paths);
|
| - void OnFind(int request_id, const string16&, const WebKit::WebFindOptions&);
|
| - void OnFindReplyAck();
|
| - void OnGetAllSavableResourceLinksForCurrentPage(const GURL& page_url);
|
| - void OnGetSerializedHtmlDataForCurrentPageWithLocalLinks(
|
| - const std::vector<GURL>& links,
|
| - const std::vector<FilePath>& local_paths,
|
| - const FilePath& local_directory_name);
|
| - void OnLockMouseACK(bool succeeded);
|
| - void OnMediaPlayerActionAt(const gfx::Point& location,
|
| - const WebKit::WebMediaPlayerAction& action);
|
| - void OnMouseLockLost();
|
| - void OnMoveOrResizeStarted();
|
| - CONTENT_EXPORT void OnNavigate(const ViewMsg_Navigate_Params& params);
|
| - void OnPaste();
|
| -#if defined(OS_MACOSX)
|
| - void OnPluginImeCompositionCompleted(const string16& text, int plugin_id);
|
| -#endif
|
| - void OnRedo();
|
| - void OnReloadFrame();
|
| - void OnReplace(const string16& text);
|
| - void OnReservePageIDRange(int size_of_range);
|
| - void OnResetPageEncodingToDefault();
|
| - void OnScriptEvalRequest(const string16& frame_xpath,
|
| - const string16& jscript,
|
| - int id,
|
| - bool notify_result);
|
| - void OnSelectAll();
|
| - void OnSelectRange(const gfx::Point& start, const gfx::Point& end);
|
| - void OnSetActive(bool active);
|
| - void OnSetAltErrorPageURL(const GURL& gurl);
|
| - void OnSetBackground(const SkBitmap& background);
|
| - void OnSetWebUIProperty(const std::string& name, const std::string& value);
|
| - void OnSetEditCommandsForNextKeyEvent(const EditCommands& edit_commands);
|
| - CONTENT_EXPORT void OnSetHistoryLengthAndPrune(int history_length,
|
| - int32 minimum_page_id);
|
| - void OnSetInitialFocus(bool reverse);
|
| -#if defined(OS_MACOSX)
|
| - void OnSetInLiveResize(bool in_live_resize);
|
| -#endif
|
| - void OnScrollFocusedEditableNodeIntoRect(const gfx::Rect& rect);
|
| - void OnSetPageEncoding(const std::string& encoding_name);
|
| - void OnSetRendererPrefs(const RendererPreferences& renderer_prefs);
|
| -#if defined(OS_MACOSX)
|
| - void OnSetWindowVisibility(bool visible);
|
| -#endif
|
| - void OnSetZoomLevel(double zoom_level);
|
| - void OnSetZoomLevelForLoadingURL(const GURL& url, double zoom_level);
|
| - void OnExitFullscreen();
|
| - void OnShouldClose();
|
| - void OnStop();
|
| - void OnStopFinding(const ViewMsg_StopFinding_Params& params);
|
| - void OnSwapOut(const ViewMsg_SwapOut_Params& params);
|
| - void OnThemeChanged();
|
| - void OnUndo();
|
| - void OnUpdateTargetURLAck();
|
| - void OnUpdateWebPreferences(const WebPreferences& prefs);
|
| - void OnUpdateRemoteAccessClientFirewallTraversal(const std::string& policy);
|
| -
|
| -#if defined(OS_MACOSX)
|
| - void OnWindowFrameChanged(const gfx::Rect& window_frame,
|
| - const gfx::Rect& view_frame);
|
| - void OnSelectPopupMenuItem(int selected_index);
|
| -#endif
|
| - void OnZoom(PageZoom::Function function);
|
| - void OnEnableViewSourceMode();
|
| -
|
| - // Adding a new message handler? Please add it in alphabetical order above
|
| - // and put it in the same position in the .cc file.
|
| -
|
| - // Misc private functions ----------------------------------------------------
|
| -
|
| - void AltErrorPageFinished(WebKit::WebFrame* frame,
|
| - const WebKit::WebURLError& original_error,
|
| - const std::string& html);
|
| -
|
| - // Check whether the preferred size has changed.
|
| - void CheckPreferredSize();
|
| -
|
| - // This callback is triggered when DownloadFavicon completes, either
|
| - // succesfully or with a failure. See DownloadFavicon for more
|
| - // details.
|
| - void DidDownloadFavicon(webkit_glue::ImageResourceFetcher* fetcher,
|
| - const SkBitmap& image);
|
| -
|
| - // Requests to download a favicon image. When done, the RenderView
|
| - // is notified by way of DidDownloadFavicon. Returns true if the
|
| - // request was successfully started, false otherwise. id is used to
|
| - // uniquely identify the request and passed back to the
|
| - // DidDownloadFavicon method. If the image has multiple frames, the
|
| - // frame whose size is image_size is returned. If the image doesn't
|
| - // have a frame at the specified size, the first is returned.
|
| - bool DownloadFavicon(int id, const GURL& image_url, int image_size);
|
| -
|
| - GURL GetAlternateErrorPageURL(const GURL& failed_url,
|
| - ErrorPageType error_type);
|
| -
|
| - // Locates a sub frame with given xpath
|
| - WebKit::WebFrame* GetChildFrame(const string16& frame_xpath) const;
|
| -
|
| - // Returns the opener url if present, else an empty url.
|
| - GURL GetOpenerUrl() const;
|
| -
|
| - WebUIBindings* GetWebUIBindings();
|
| -
|
| - // Should only be called if this object wraps a PluginDocument.
|
| - WebKit::WebPlugin* GetWebPluginFromPluginDocument();
|
| -
|
| - // Returns true if the |params| navigation is to an entry that has been
|
| - // cropped due to a recent navigation the browser did not know about.
|
| - bool IsBackForwardToStaleEntry(const ViewMsg_Navigate_Params& params,
|
| - bool is_reload);
|
| -
|
| - // Returns false unless this is a top-level navigation that crosses origins.
|
| - bool IsNonLocalTopLevelNavigation(const GURL& url,
|
| - WebKit::WebFrame* frame,
|
| - WebKit::WebNavigationType type);
|
| -
|
| - bool MaybeLoadAlternateErrorPage(WebKit::WebFrame* frame,
|
| - const WebKit::WebURLError& error,
|
| - bool replace);
|
| -
|
| - // Starts nav_state_sync_timer_ if it isn't already running.
|
| - void StartNavStateSyncTimerIfNecessary();
|
| -
|
| - // Dispatches the current navigation state to the browser. Called on a
|
| - // periodic timer so we don't send too many messages.
|
| - void SyncNavigationState();
|
| -
|
| - // Dispatches the current state of selection on the webpage to the browser if
|
| - // it has changed.
|
| - // TODO(varunjain): delete this method once we figure out how to keep
|
| - // selection handles in sync with the webpage.
|
| - void SyncSelectionIfRequired();
|
| -
|
| -#if defined(OS_POSIX) && !defined(OS_MACOSX)
|
| - void UpdateFontRenderingFromRendererPrefs();
|
| -#else
|
| - void UpdateFontRenderingFromRendererPrefs() {}
|
| -#endif
|
| -
|
| - // Update the target url and tell the browser that the target URL has changed.
|
| - // If |url| is empty, show |fallback_url|.
|
| - void UpdateTargetURL(const GURL& url, const GURL& fallback_url);
|
| -
|
| - // ---------------------------------------------------------------------------
|
| - // ADDING NEW FUNCTIONS? Please keep private functions alphabetized and put
|
| - // it in the same order in the .cc file as it was in the header.
|
| - // ---------------------------------------------------------------------------
|
| -
|
| - // Settings ------------------------------------------------------------------
|
| -
|
| - WebPreferences webkit_preferences_;
|
| - RendererPreferences renderer_preferences_;
|
| -
|
| - HostZoomLevels host_zoom_levels_;
|
| -
|
| - // Whether content state (such as form state, scroll position and page
|
| - // contents) should be sent to the browser immediately. This is normally
|
| - // false, but set to true by some tests.
|
| - bool send_content_state_immediately_;
|
| -
|
| - // Bitwise-ORed set of extra bindings that have been enabled. See
|
| - // BindingsPolicy for details.
|
| - int enabled_bindings_;
|
| -
|
| - // The alternate error page URL, if one exists.
|
| - GURL alternate_error_page_url_;
|
| -
|
| - // If true, we send IPC messages when |preferred_size_| changes.
|
| - bool send_preferred_size_changes_;
|
| -
|
| - // If non-empty, and |send_preferred_size_changes_| is true, disable drawing
|
| - // scroll bars on windows smaller than this size. Used for windows that the
|
| - // browser resizes to the size of the content, such as browser action popups.
|
| - // If a render view is set to the minimum size of its content, webkit may add
|
| - // scroll bars. This makes sense for fixed sized windows, but it does not
|
| - // make sense when the size of the view was chosen to fit the content.
|
| - // This setting ensures that no scroll bars are drawn. The size limit exists
|
| - // because if the view grows beyond a size known to the browser, scroll bars
|
| - // should be drawn.
|
| - gfx::Size disable_scrollbars_size_limit_;
|
| -
|
| - // Loading state -------------------------------------------------------------
|
| -
|
| - // True if the top level frame is currently being loaded.
|
| - bool is_loading_;
|
| -
|
| - // The gesture that initiated the current navigation.
|
| - NavigationGesture navigation_gesture_;
|
| -
|
| - // Used for popups.
|
| - bool opened_by_user_gesture_;
|
| - GURL creator_url_;
|
| -
|
| - // Whether this RenderView was created by a frame that was suppressing its
|
| - // opener. If so, we may want to load pages in a separate process. See
|
| - // decidePolicyForNavigation for details.
|
| - bool opener_suppressed_;
|
| -
|
| - // If we are handling a top-level client-side redirect, this tracks the URL
|
| - // of the page that initiated it. Specifically, when a load is committed this
|
| - // is used to determine if that load originated from a client-side redirect.
|
| - // It is empty if there is no top-level client-side redirect.
|
| - GURL completed_client_redirect_src_;
|
| -
|
| - // Holds state pertaining to a navigation that we initiated. This is held by
|
| - // the WebDataSource::ExtraData attribute. We use pending_navigation_state_
|
| - // as a temporary holder for the state until the WebDataSource corresponding
|
| - // to the new navigation is created. See DidCreateDataSource.
|
| - scoped_ptr<content::NavigationState> pending_navigation_state_;
|
| -
|
| - // Timer used to delay the updating of nav state (see SyncNavigationState).
|
| - base::OneShotTimer<RenderView> nav_state_sync_timer_;
|
| -
|
| - // Page IDs ------------------------------------------------------------------
|
| - // See documentation in content::RenderView.
|
| - int32 page_id_;
|
| -
|
| - // Indicates the ID of the last page that we sent a FrameNavigate to the
|
| - // browser for. This is used to determine if the most recent transition
|
| - // generated a history entry (less than page_id_), or not (equal to or
|
| - // greater than). Note that this will be greater than page_id_ if the user
|
| - // goes back.
|
| - int32 last_page_id_sent_to_browser_;
|
| -
|
| - // The next available page ID to use. This ensures that the page IDs are
|
| - // globally unique in the renderer.
|
| - static int32 next_page_id_;
|
| -
|
| - // The offset of the current item in the history list.
|
| - int history_list_offset_;
|
| -
|
| - // The RenderView's current impression of the history length. This includes
|
| - // any items that have committed in this process, but because of cross-process
|
| - // navigations, the history may have some entries that were committed in other
|
| - // processes. We won't know about them until the next navigation in this
|
| - // process.
|
| - int history_list_length_;
|
| -
|
| - // The list of page IDs for each history item this RenderView knows about.
|
| - // Some entries may be -1 if they were rendered by other processes or were
|
| - // restored from a previous session. This lets us detect attempts to
|
| - // navigate to stale entries that have been cropped from our history.
|
| - std::vector<int32> history_page_ids_;
|
| -
|
| - // Page info -----------------------------------------------------------------
|
| -
|
| - // The last gotten main frame's encoding.
|
| - std::string last_encoding_name_;
|
| -
|
| - // UI state ------------------------------------------------------------------
|
| -
|
| - // The state of our target_url transmissions. When we receive a request to
|
| - // send a URL to the browser, we set this to TARGET_INFLIGHT until an ACK
|
| - // comes back - if a new request comes in before the ACK, we store the new
|
| - // URL in pending_target_url_ and set the status to TARGET_PENDING. If an
|
| - // ACK comes back and we are in TARGET_PENDING, we send the stored URL and
|
| - // revert to TARGET_INFLIGHT.
|
| - //
|
| - // We don't need a queue of URLs to send, as only the latest is useful.
|
| - enum {
|
| - TARGET_NONE,
|
| - TARGET_INFLIGHT, // We have a request in-flight, waiting for an ACK
|
| - TARGET_PENDING // INFLIGHT + we have a URL waiting to be sent
|
| - } target_url_status_;
|
| -
|
| - // The URL we show the user in the status bar. We use this to determine if we
|
| - // want to send a new one (we do not need to send duplicates). It will be
|
| - // equal to either |mouse_over_url_| or |focus_url_|, depending on which was
|
| - // updated last.
|
| - GURL target_url_;
|
| -
|
| - // The URL the user's mouse is hovering over.
|
| - GURL mouse_over_url_;
|
| -
|
| - // The URL that has keyboard focus.
|
| - GURL focus_url_;
|
| -
|
| - // The next target URL we want to send to the browser.
|
| - GURL pending_target_url_;
|
| -
|
| - // The text selection the last time DidChangeSelection got called.
|
| - RenderViewSelection last_selection_;
|
| -
|
| - // View ----------------------------------------------------------------------
|
| -
|
| - // Cache the preferred size of the page in order to prevent sending the IPC
|
| - // when layout() recomputes but doesn't actually change sizes.
|
| - gfx::Size preferred_size_;
|
| -
|
| - // Used to delay determining the preferred size (to avoid intermediate
|
| - // states for the sizes).
|
| - base::OneShotTimer<RenderView> check_preferred_size_timer_;
|
| -
|
| - // These store the "is main frame is scrolled all the way to the left
|
| - // or right" state that was last sent to the browser.
|
| - bool cached_is_main_frame_pinned_to_left_;
|
| - bool cached_is_main_frame_pinned_to_right_;
|
| -
|
| - // These store the "has scrollbars" state last sent to the browser.
|
| - bool cached_has_main_frame_horizontal_scrollbar_;
|
| - bool cached_has_main_frame_vertical_scrollbar_;
|
| -
|
| -#if defined(OS_MACOSX)
|
| - // Track the fake plugin window handles allocated on the browser side for
|
| - // the accelerated compositor and (currently) accelerated plugins so that
|
| - // we can discard them when the view goes away.
|
| - std::set<gfx::PluginWindowHandle> fake_plugin_window_handles_;
|
| -#endif
|
| -
|
| - // Plugins -------------------------------------------------------------------
|
| -
|
| - PepperPluginDelegateImpl pepper_delegate_;
|
| -
|
| - // All the currently active plugin delegates for this RenderView; kept so that
|
| - // we can enumerate them to send updates about things like window location
|
| - // or tab focus and visibily. These are non-owning references.
|
| - std::set<WebPluginDelegateProxy*> plugin_delegates_;
|
| -
|
| -#if defined(OS_WIN)
|
| - // The ID of the focused NPAPI plug-in.
|
| - int focused_plugin_id_;
|
| -#endif
|
| -
|
| - // Helper objects ------------------------------------------------------------
|
| -
|
| - RendererWebCookieJarImpl cookie_jar_;
|
| -
|
| - // The next group of objects all implement RenderViewObserver, so are deleted
|
| - // along with the RenderView automatically. This is why we just store weak
|
| - // references.
|
| -
|
| - // Holds a reference to the service which provides desktop notifications.
|
| - NotificationProvider* notification_provider_;
|
| -
|
| - // The geolocation dispatcher attached to this view, lazily initialized.
|
| - GeolocationDispatcher* geolocation_dispatcher_;
|
| -
|
| - // The intents dispatcher attached to this view. Not lazily initialized.
|
| - IntentsDispatcher* intents_dispatcher_;
|
| -
|
| - // The speech dispatcher attached to this view, lazily initialized.
|
| - SpeechInputDispatcher* speech_input_dispatcher_;
|
| -
|
| - // Device orientation dispatcher attached to this view; lazily initialized.
|
| - DeviceOrientationDispatcher* device_orientation_dispatcher_;
|
| -
|
| - // MediaStreamImpl attached to this view; lazily initialized.
|
| - scoped_refptr<MediaStreamImpl> media_stream_impl_;
|
| -
|
| - // Dispatches all P2P socket used by the renderer.
|
| - content::P2PSocketDispatcher* p2p_socket_dispatcher_;
|
| -
|
| - DevToolsAgent* devtools_agent_;
|
| -
|
| - RendererAccessibility* renderer_accessibility_;
|
| -
|
| - // Misc ----------------------------------------------------------------------
|
| -
|
| - // The current and pending file chooser completion objects. If the queue is
|
| - // nonempty, the first item represents the currently running file chooser
|
| - // callback, and the remaining elements are the other file chooser completion
|
| - // still waiting to be run (in order).
|
| - struct PendingFileChooser;
|
| - std::deque< linked_ptr<PendingFileChooser> > file_chooser_completions_;
|
| -
|
| - // The current directory enumeration callback
|
| - std::map<int, WebKit::WebFileChooserCompletion*> enumeration_completions_;
|
| - int enumeration_completion_id_;
|
| -
|
| - // The SessionStorage namespace that we're assigned to has an ID, and that ID
|
| - // is passed to us upon creation. WebKit asks for this ID upon first use and
|
| - // uses it whenever asking the browser process to allocate new storage areas.
|
| - int64 session_storage_namespace_id_;
|
| -
|
| - // The total number of unrequested popups that exist and can be followed back
|
| - // to a common opener. This count is shared among all RenderViews created
|
| - // with createView(). All popups are treated as unrequested until
|
| - // specifically instructed otherwise by the Browser process.
|
| - scoped_refptr<SharedRenderViewCounter> shared_popup_counter_;
|
| -
|
| - // Whether this is a top level window (instead of a popup). Top level windows
|
| - // shouldn't count against their own |shared_popup_counter_|.
|
| - bool decrement_shared_popup_at_destruction_;
|
| -
|
| - // If the browser hasn't sent us an ACK for the last FindReply we sent
|
| - // to it, then we need to queue up the message (keeping only the most
|
| - // recent message if new ones come in).
|
| - scoped_ptr<IPC::Message> queued_find_reply_message_;
|
| -
|
| - // Stores edit commands associated to the next key event.
|
| - // Shall be cleared as soon as the next key event is processed.
|
| - EditCommands edit_commands_;
|
| -
|
| - // Allows Web UI pages (new tab page, etc.) to talk to the browser. The JS
|
| - // object is only exposed when Web UI bindings are enabled.
|
| - scoped_ptr<WebUIBindings> web_ui_bindings_;
|
| -
|
| - // The external popup for the currently showing select popup.
|
| - scoped_ptr<ExternalPopupMenu> external_popup_menu_;
|
| -
|
| - // The node that the context menu was pressed over.
|
| - WebKit::WebNode context_menu_node_;
|
| -
|
| - // Reports load progress to the browser.
|
| - scoped_ptr<LoadProgressTracker> load_progress_tracker_;
|
| -
|
| - // All the registered observers. We expect this list to be small, so vector
|
| - // is fine.
|
| - ObserverList<content::RenderViewObserver> observers_;
|
| -
|
| - // Used to inform didChangeSelection() when it is called in the context
|
| - // of handling a ViewMsg_SelectRange IPC.
|
| - bool handling_select_range_;
|
| -
|
| - // ---------------------------------------------------------------------------
|
| - // ADDING NEW DATA? Please see if it fits appropriately in one of the above
|
| - // sections rather than throwing it randomly at the end. If you're adding a
|
| - // bunch of stuff, you should probably create a helper class and put your
|
| - // data and methods on that to avoid bloating RenderView more. You can use
|
| - // the Observer interface to filter IPC messages and receive frame change
|
| - // notifications.
|
| - // ---------------------------------------------------------------------------
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(RenderView);
|
| -};
|
| -
|
| -#endif // CONTENT_RENDERER_RENDER_VIEW_H_
|
|
|