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