render_view_impl.h revision 8bcbed890bc3ce4d7a057a8f32cab53fa534672e
15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef CONTENT_RENDERER_RENDER_VIEW_IMPL_H_ 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define CONTENT_RENDERER_RENDER_VIEW_IMPL_H_ 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include <deque> 92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include <map> 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <set> 112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include <string> 122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include <vector> 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/basictypes.h" 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/gtest_prod_util.h" 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/id_map.h" 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/memory/linked_ptr.h" 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/memory/weak_ptr.h" 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/observer_list.h" 20bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch#include "base/process/process.h" 213551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#include "base/strings/string16.h" 22eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "base/timer/timer.h" 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "build/build_config.h" 2490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)#include "cc/input/top_controls_state.h" 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/common/content_export.h" 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/common/drag_event_source_info.h" 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/common/edit_command.h" 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/common/gpu/client/webgraphicscontext3d_command_buffer_impl.h" 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/common/navigation_gesture.h" 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/common/view_message_enums.h" 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/public/common/javascript_message_type.h" 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/public/common/page_zoom.h" 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/public/common/referrer.h" 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/public/common/renderer_preferences.h" 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/public/common/stop_find_action.h" 3690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)#include "content/public/common/top_controls_state.h" 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/public/renderer/render_view.h" 387dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "content/renderer/media/webmediaplayer_delegate.h" 392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "content/renderer/mouse_lock_dispatcher.h" 40868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "content/renderer/render_frame_impl.h" 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/renderer/render_widget.h" 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/renderer/renderer_webcookiejar_impl.h" 43868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "content/renderer/stats_collection_observer.h" 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ipc/ipc_platform_file.h" 45868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "third_party/WebKit/public/platform/WebGraphicsContext3D.h" 4658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)#include "third_party/WebKit/public/web/WebAXObject.h" 477d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include "third_party/WebKit/public/web/WebConsoleMessage.h" 487d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include "third_party/WebKit/public/web/WebDataSource.h" 497d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include "third_party/WebKit/public/web/WebFrameClient.h" 507d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include "third_party/WebKit/public/web/WebHistoryItem.h" 517d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include "third_party/WebKit/public/web/WebIconURL.h" 527d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include "third_party/WebKit/public/web/WebInputEvent.h" 537d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include "third_party/WebKit/public/web/WebNavigationType.h" 547d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include "third_party/WebKit/public/web/WebNode.h" 557d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include "third_party/WebKit/public/web/WebPageSerializerClient.h" 567d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include "third_party/WebKit/public/web/WebPageVisibilityState.h" 577d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include "third_party/WebKit/public/web/WebSecurityOrigin.h" 587d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include "third_party/WebKit/public/web/WebViewClient.h" 59eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "ui/base/ui_base_types.h" 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ui/surface/transport_dib.h" 61868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "webkit/common/webpreferences.h" 625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_ANDROID) 645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/renderer/android/content_detector.h" 657d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include "third_party/WebKit/public/web/WebContentDetectionResult.h" 665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(COMPILER_MSVC) 695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// RenderViewImpl is a diamond-shaped hierarchy, with WebWidgetClient at the 705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// root. VS warns when we inherit the WebWidgetClient method implementations 715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// from RenderWidget. It's safe to ignore that warning. 725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#pragma warning(disable: 4250) 735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class CommandLine; 765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class PepperDeviceTest; 775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class SkBitmap; 785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct PP_NetAddress_Private; 795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct ViewMsg_Navigate_Params; 805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct ViewMsg_PostMessage_Params; 815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct ViewMsg_StopFinding_Params; 825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace ui { 845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct SelectedFileInfo; 855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace ui 865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace WebKit { 885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class WebApplicationCacheHost; 895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class WebApplicationCacheHostClient; 905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class WebDOMMessageEvent; 915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class WebDataSource; 922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class WebDateTimeChooserCompletion; 935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class WebDragData; 945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class WebGeolocationClient; 955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class WebGestureEvent; 965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class WebIconURL; 975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class WebImage; 985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class WebPeerConnection00Handler; 995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class WebPeerConnection00HandlerClient; 1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class WebMediaPlayer; 1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class WebMediaPlayerClient; 1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class WebMouseEvent; 1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class WebPeerConnectionHandler; 1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class WebPeerConnectionHandlerClient; 1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class WebSocketStreamHandle; 1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class WebSpeechInputController; 1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class WebSpeechInputListener; 1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class WebSpeechRecognizer; 1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class WebStorageNamespace; 1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class WebTouchEvent; 1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class WebURLRequest; 1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class WebUserMediaClient; 1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct WebActiveWheelFlingParameters; 1143240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdochstruct WebCursorInfo; 1152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)struct WebDateTimeChooserParams; 1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct WebFileChooserParams; 1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct WebFindOptions; 1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct WebMediaPlayerAction; 1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct WebPluginAction; 1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct WebPoint; 1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct WebWindowFeatures; 1225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_ANDROID) 1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class WebHitTestResult; 1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 128bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdochnamespace webkit_glue { 129bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdochclass WebURLResponseExtraDataImpl; 130bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch} 131bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch 1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace content { 1332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class BrowserPluginManager; 1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class DeviceOrientationDispatcher; 1355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class DevToolsAgent; 1365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class DocumentState; 1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class DomAutomationController; 1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class ExternalPopupMenu; 1392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class FaviconHelper; 1405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class GeolocationDispatcher; 141a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)class ImageResourceFetcher; 1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class InputTagSpeechDispatcher; 1435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class JavaBridgeDispatcher; 1445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class LoadProgressTracker; 14558e6fbe4ee35d65e14b626c557d37565bf8ad179Ben Murdochclass MIDIDispatcher; 1467dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochclass MediaStreamClient; 1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class MediaStreamDispatcher; 1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class MouseLockDispatcher; 1495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class NavigationState; 1505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class NotificationProvider; 15158e6fbe4ee35d65e14b626c557d37565bf8ad179Ben Murdochclass PepperPluginInstanceImpl; 1525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class RenderViewObserver; 1535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class RenderViewTest; 1545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class RendererAccessibility; 1552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class RendererDateTimePicker; 1565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class RendererPpapiHost; 1575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class RendererWebColorChooserImpl; 1585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class RenderWidgetFullscreenPepper; 1595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class SpeechRecognitionDispatcher; 160868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)class StatsCollectionController; 1615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class WebPluginDelegateProxy; 1625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct CustomContextMenuContext; 163eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochstruct DropData; 164c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)struct FaviconURL; 1655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct FileChooserParams; 1662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)struct RenderViewImplParams; 1675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_ANDROID) 1697dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochclass RendererMediaPlayerManager; 170eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochclass WebMediaPlayerProxyAndroid; 1715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 1725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// 1745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// RenderView is an object that manages a WebView object, and provides a 1755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// communication interface with an embedding application process 1765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// 1772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class CONTENT_EXPORT RenderViewImpl 1782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) : public RenderWidget, 1792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) NON_EXPORTED_BASE(public WebKit::WebViewClient), 1802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) NON_EXPORTED_BASE(public WebKit::WebFrameClient), 1812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) NON_EXPORTED_BASE(public WebKit::WebPageSerializerClient), 1822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) public RenderView, 1837dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch NON_EXPORTED_BASE(public WebMediaPlayerDelegate), 1842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) public base::SupportsWeakPtr<RenderViewImpl> { 1855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 186d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) // Creates a new RenderView. |opener_id| is the routing ID of the RenderView 187d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) // responsible for creating this RenderView. 1882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) static RenderViewImpl* Create( 1895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int32 opener_id, 1905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const RendererPreferences& renderer_prefs, 191c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const WebPreferences& webkit_prefs, 1925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int32 routing_id, 193868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) int32 main_frame_routing_id, 1945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int32 surface_id, 1955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int64 session_storage_namespace_id, 1965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const string16& frame_name, 1975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool is_renderer_created, 1985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool swapped_out, 1993551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) bool hidden, 2005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int32 next_page_id, 2015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebScreenInfo& screen_info, 2022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) AccessibilityMode accessibility_mode, 2032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) bool allow_partial_swap); 2045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Used by content_layouttest_support to hook into the creation of 2062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // RenderViewImpls. 2072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) static void InstallCreateHook( 2082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) RenderViewImpl* (*create_render_view_impl)(RenderViewImplParams*)); 2095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Returns the RenderViewImpl containing the given WebView. 2112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) static RenderViewImpl* FromWebView(WebKit::WebView* webview); 2125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Returns the RenderViewImpl for the given routing ID. 2142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) static RenderViewImpl* FromRoutingID(int routing_id); 2155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // May return NULL when the view is closing. 2172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) WebKit::WebView* webview() const; 2185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int history_list_offset() const { return history_list_offset_; } 2205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 221c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const WebPreferences& webkit_preferences() const { 2225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return webkit_preferences_; 2235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 2245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void set_send_content_state_immediately(bool value) { 2265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) send_content_state_immediately_ = value; 2275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 2285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MediaStreamDispatcher* media_stream_dispatcher() { 2305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return media_stream_dispatcher_; 2315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 2325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MouseLockDispatcher* mouse_lock_dispatcher() { 2345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return mouse_lock_dispatcher_; 2355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 2365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 237ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch RendererWebCookieJarImpl* cookie_jar() { return &cookie_jar_; } 238ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch 2395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_ANDROID) 2407dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch RendererMediaPlayerManager* media_player_manager() { 2415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return media_player_manager_.get(); 2425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 2435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 2445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Lazily initialize this view's BrowserPluginManager and return it. 246c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) BrowserPluginManager* GetBrowserPluginManager(); 2472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 2485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Functions to add and remove observers for this object. 2495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void AddObserver(RenderViewObserver* observer); 2505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void RemoveObserver(RenderViewObserver* observer); 2515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 252868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) // Returns the StatsCollectionObserver associated with this view, or NULL 253868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) // if one wasn't created; 254868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) StatsCollectionObserver* GetStatsCollectionObserver() { 255868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) return stats_collection_observer_.get(); 256868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) } 257868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) 2585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Adds the given file chooser request to the file_chooser_completion_ queue 2595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // (see that var for more) and requests the chooser be displayed if there are 2605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // no other waiting items in the queue. 2615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // 2625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Returns true if the chooser was successfully scheduled. False means we 2635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // didn't schedule anything. 2645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool ScheduleFileChooser(const FileChooserParams& params, 2655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebFileChooserCompletion* completion); 2665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void LoadNavigationErrorPage( 2685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebFrame* frame, 2695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebURLRequest& failed_request, 2705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebURLError& error, 2715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& html, 2725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool replace); 2735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Plugin-related functions -------------------------------------------------- 2755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2763240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch#if defined(ENABLE_PLUGINS) 2773240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch // Indicates that the given instance has been created. 2783240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch void PepperInstanceCreated(PepperPluginInstanceImpl* instance); 2795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2803240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch // Indicates that the given instance is being destroyed. This is called from 2813240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch // the destructor, so it's important that the instance is not dereferenced 2823240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch // from this call. 2833240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch void PepperInstanceDeleted(PepperPluginInstanceImpl* instance); 2845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2853240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch // Notifies that |instance| has changed the cursor. 2863240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch // This will update the cursor appearance if it is currently over the plugin 2873240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch // instance. 2883240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch void PepperDidChangeCursor(PepperPluginInstanceImpl* instance, 2893240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch const WebKit::WebCursorInfo& cursor); 2903240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch 2913240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch // Notifies that |instance| has received a mouse event. 2923240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch void PepperDidReceiveMouseEvent(PepperPluginInstanceImpl* instance); 2933240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch 2943240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch // Notification that the given plugin is focused or unfocused. 2953240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch void PepperFocusChanged(PepperPluginInstanceImpl* instance, bool focused); 2965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Informs the render view that a PPAPI plugin has changed text input status. 2983240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch void PepperTextInputTypeChanged(PepperPluginInstanceImpl* instance); 2993240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch void PepperCaretPositionChanged(PepperPluginInstanceImpl* instance); 3005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Cancels current composition. 3023240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch void PepperCancelComposition(PepperPluginInstanceImpl* instance); 3035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Informs the render view that a PPAPI plugin has changed selection. 3053240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch void PepperSelectionChanged(PepperPluginInstanceImpl* instance); 3063240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch 3073240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch // Creates a fullscreen container for a pepper plugin instance. 3083240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch RenderWidgetFullscreenPepper* CreatePepperFullscreenContainer( 3093240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch PepperPluginInstanceImpl* plugin); 3105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Notification that a PPAPI plugin has been created. 3123240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch void PepperPluginCreated(RendererPpapiHost* host); 3135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Retrieves the current caret position if a PPAPI plugin has focus. 3153240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch bool GetPepperCaretBounds(gfx::Rect* rect); 3163240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch 3173240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch bool IsPepperAcceptingCompositionEvents() const; 3183240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch 3193240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch // Notification that the given plugin has crashed. 3203240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch void PluginCrashed(const base::FilePath& plugin_path, 3213240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch base::ProcessId plugin_pid); 3225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Simulates IME events for testing purpose. 3245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void SimulateImeSetComposition( 3255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const string16& text, 3265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::vector<WebKit::WebCompositionUnderline>& underlines, 3275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int selection_start, 3285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int selection_end); 3295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void SimulateImeConfirmComposition(const string16& text, 33058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) const gfx::Range& replacement_range); 3315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_MACOSX) || defined(OS_WIN) 3335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Informs the render view that the given plugin has gained or lost focus. 3345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void PluginFocusChanged(bool focused, int plugin_id); 3355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 3365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_MACOSX) 3385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Starts plugin IME. 3395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void StartPluginIme(); 3405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 3415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void RegisterPluginDelegate(WebPluginDelegateProxy* delegate); 3435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void UnregisterPluginDelegate(WebPluginDelegateProxy* delegate); 3445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Helper function to retrieve information about a plugin for a URL and mime 3465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // type. Returns false if no plugin was found. 3475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // |actual_mime_type| is the actual mime type supported by the 3485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // plugin found that match the URL given (one for each item in 3495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // |info|). 3502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) bool GetPluginInfo(const GURL& url, 3512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const GURL& page_url, 3522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const std::string& mime_type, 353ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch WebPluginInfo* plugin_info, 3542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) std::string* actual_mime_type); 3555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 356bb1529ce867d8845a77ec7cdf3e3003ef1771a40Ben Murdoch#endif // ENABLE_PLUGINS 357bb1529ce867d8845a77ec7cdf3e3003ef1771a40Ben Murdoch 3585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void TransferActiveWheelFlingAnimation( 3595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebActiveWheelFlingParameters& params); 3605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Returns true if the focused element is editable text from the perspective 3625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // of IME support (also used for on-screen keyboard). Works correctly inside 3635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // supported PPAPI plug-ins. 3645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool HasIMETextFocus(); 3655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Callback for use with GetWindowSnapshot. 3672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) typedef base::Callback<void( 3682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const gfx::Size&, const std::vector<unsigned char>&)> 3692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) WindowSnapshotCallback; 3702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 3712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void GetWindowSnapshot(const WindowSnapshotCallback& callback); 3722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 3732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Dispatches the current navigation state to the browser. Called on a 3742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // periodic timer so we don't send too many messages. 3752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void SyncNavigationState(); 3762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 3772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Returns the length of the session history of this RenderView. Note that 3782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // this only coincides with the actual length of the session history if this 3792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // RenderView is the currently active RenderView of a WebContents. 3802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) unsigned GetLocalSessionHistoryLengthForTesting() const; 3812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 3822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Invokes OnSetFocus and marks the widget as active depending on the value 3832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // of |enable|. This is used for layout tests that need to control the focus 3842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // synchronously from the renderer. 3852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void SetFocusAndActivateForTesting(bool enable); 3862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 3872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Change the device scale factor and force the compositor to resize. 3882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void SetDeviceScaleFactorForTesting(float factor); 3892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 39090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) // Control autoresize mode. 39190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) void EnableAutoResizeForTesting(const gfx::Size& min_size, 39290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) const gfx::Size& max_size); 39390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) void DisableAutoResizeForTesting(const gfx::Size& new_size); 39490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 3957dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch // Overrides the MediaStreamClient used when creating MediaStream players. 3967dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch // Must be called before any players are created. 3977dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch void SetMediaStreamClientForTesting(MediaStreamClient* media_stream_client); 3987dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 39968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) // Determines whether plugins are allowed to enter fullscreen mode. 40068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) bool IsPluginFullscreenAllowed(); 40168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) 4025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // IPC::Listener implementation ---------------------------------------------- 4035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool OnMessageReceived(const IPC::Message& msg) OVERRIDE; 4055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // WebKit::WebWidgetClient implementation ------------------------------------ 4075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Most methods are handled by RenderWidget. 4095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didFocus(); 4105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didBlur(); 4115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void show(WebKit::WebNavigationPolicy policy); 4125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void runModal(); 4135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool enterFullScreen(); 4145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void exitFullScreen(); 4155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool requestPointerLock(); 4165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void requestPointerUnlock(); 4175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool isPointerLocked(); 4185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didActivateCompositor(int input_handler_identifier); 4192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual void didHandleGestureEvent(const WebKit::WebGestureEvent& event, 4202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) bool event_cancelled) OVERRIDE; 421a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch virtual void initializeLayerTreeView() OVERRIDE; 4225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // WebKit::WebViewClient implementation -------------------------------------- 4245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual WebKit::WebView* createView( 4265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebFrame* creator, 4275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebURLRequest& request, 4285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebWindowFeatures& features, 4295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebString& frame_name, 4305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebNavigationPolicy policy); 4315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual WebKit::WebWidget* createPopupMenu(WebKit::WebPopupType popup_type); 4325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual WebKit::WebExternalPopupMenu* createExternalPopupMenu( 4335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebPopupMenuInfo& popup_menu_info, 4345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebExternalPopupMenuClient* popup_menu_client); 435eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch virtual WebKit::WebStorageNamespace* createSessionStorageNamespace(); 4363551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) virtual bool shouldReportDetailedMessageForSource( 4373551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) const WebKit::WebString& source); 4385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didAddMessageToConsole( 4395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebConsoleMessage& message, 4405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebString& source_name, 441424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) unsigned source_line, 442424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) const WebKit::WebString& stack_trace); 4435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void printPage(WebKit::WebFrame* frame); 4445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual WebKit::WebNotificationPresenter* notificationPresenter(); 4455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool enumerateChosenDirectory( 4465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebString& path, 4475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebFileChooserCompletion* chooser_completion); 4485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void initializeHelperPluginWebFrame(WebKit::WebHelperPlugin*); 4495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didStartLoading(); 4505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didStopLoading(); 4515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didChangeLoadProgress(WebKit::WebFrame* frame, 4525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) double load_progress); 4532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual void didCancelCompositionOnSelectionChange(); 4545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didChangeSelection(bool is_selection_empty); 4555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didExecuteCommand(const WebKit::WebString& command_name); 4565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool handleCurrentKeyboardEvent(); 4575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual WebKit::WebColorChooser* createColorChooser( 4585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebColorChooserClient*, const WebKit::WebColor& initial_color); 4595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool runFileChooser( 4605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebFileChooserParams& params, 4615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebFileChooserCompletion* chooser_completion); 4625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void runModalAlertDialog(WebKit::WebFrame* frame, 4635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebString& message); 4645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool runModalConfirmDialog(WebKit::WebFrame* frame, 4655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebString& message); 4665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool runModalPromptDialog(WebKit::WebFrame* frame, 4675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebString& message, 4685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebString& default_value, 4695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebString* actual_value); 4705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool runModalBeforeUnloadDialog(WebKit::WebFrame* frame, 471a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) bool is_reload, 472a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) const WebKit::WebString& message); 473a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) // DEPRECATED 474a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) virtual bool runModalBeforeUnloadDialog(WebKit::WebFrame* frame, 4755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebString& message); 4765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void showContextMenu(WebKit::WebFrame* frame, 4775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebContextMenuData& data); 4783551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) virtual void clearContextMenu(); 4795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void setStatusText(const WebKit::WebString& text); 4805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void setMouseOverURL(const WebKit::WebURL& url); 4815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void setKeyboardFocusURL(const WebKit::WebURL& url); 4825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void startDragging(WebKit::WebFrame* frame, 4835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebDragData& data, 4845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebDragOperationsMask mask, 4855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebImage& image, 4865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebPoint& imageOffset); 4875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool acceptsLoadDrops(); 4885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void focusNext(); 4895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void focusPrevious(); 4905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void focusedNodeChanged(const WebKit::WebNode& node); 4915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void numberOfWheelEventHandlersChanged(unsigned num_handlers); 4925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didUpdateLayout(); 4935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_ANDROID) 4945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool didTapMultipleTargets( 4955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebGestureEvent& event, 4965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebVector<WebKit::WebRect>& target_rects); 4975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 4985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void navigateBackForwardSoon(int offset); 4995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual int historyBackListCount(); 5005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual int historyForwardListCount(); 50158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) virtual void postAccessibilityEvent( 50258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) const WebKit::WebAXObject& obj, WebKit::WebAXEvent event); 5035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didUpdateInspectorSetting(const WebKit::WebString& key, 5045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebString& value); 5055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual WebKit::WebGeolocationClient* geolocationClient(); 5065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual WebKit::WebSpeechInputController* speechInputController( 5075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebSpeechInputListener* listener); 5085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual WebKit::WebSpeechRecognizer* speechRecognizer(); 5095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void zoomLimitsChanged(double minimum_level, double maximum_level); 5105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void zoomLevelChanged(); 51158e6fbe4ee35d65e14b626c557d37565bf8ad179Ben Murdoch virtual double zoomLevelToZoomFactor(double zoom_level) const; 51258e6fbe4ee35d65e14b626c557d37565bf8ad179Ben Murdoch virtual double zoomFactorToZoomLevel(double factor) const; 5135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void registerProtocolHandler(const WebKit::WebString& scheme, 5145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebString& base_url, 5155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebString& url, 5165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebString& title); 5175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual WebKit::WebPageVisibilityState visibilityState() const; 5185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual WebKit::WebUserMediaClient* userMediaClient(); 51958e6fbe4ee35d65e14b626c557d37565bf8ad179Ben Murdoch virtual WebKit::WebMIDIClient* webMIDIClient(); 5205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void draggableRegionsChanged(); 5215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 5225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_ANDROID) 5235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void scheduleContentIntent(const WebKit::WebURL& intent); 5245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void cancelScheduledContentIntents(); 5255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual WebKit::WebContentDetectionResult detectContentAround( 5265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebHitTestResult& touch_hit); 5272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 5282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Only used on Android since all other platforms implement 5292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // date and time input fields using MULTIPLE_FIELDS_UI 5302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual bool openDateTimeChooser(const WebKit::WebDateTimeChooserParams&, 5312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) WebKit::WebDateTimeChooserCompletion*); 5327d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) virtual void didScrollWithKeyboard(const WebKit::WebSize& delta); 5335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 5345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 5355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // WebKit::WebFrameClient implementation ------------------------------------- 5365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 5375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual WebKit::WebMediaPlayer* createMediaPlayer( 5385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebFrame* frame, 5395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebURL& url, 5405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebMediaPlayerClient* client); 5415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual WebKit::WebCookieJar* cookieJar(WebKit::WebFrame* frame); 542868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) virtual void didAccessInitialDocument(WebKit::WebFrame* frame); 5432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual void didDisownOpener(WebKit::WebFrame* frame); 5445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void frameDetached(WebKit::WebFrame* frame); 5455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void willClose(WebKit::WebFrame* frame); 5464e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) virtual void didMatchCSS( 5474e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) WebKit::WebFrame* frame, 5484e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) const WebKit::WebVector<WebKit::WebString>& newly_matching_selectors, 5494e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) const WebKit::WebVector<WebKit::WebString>& stopped_matching_selectors); 550c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 551c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // The WebDataSource::ExtraData* is assumed to be a DocumentState* subclass. 552c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) virtual WebKit::WebNavigationPolicy decidePolicyForNavigation( 553c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) WebKit::WebFrame* frame, 554c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) WebKit::WebDataSource::ExtraData* extraData, 555c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const WebKit::WebURLRequest& request, 556c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) WebKit::WebNavigationType type, 557c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) WebKit::WebNavigationPolicy default_policy, 558c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) bool is_redirect); 559c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // DEPRECATED. 5605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual WebKit::WebNavigationPolicy decidePolicyForNavigation( 5615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebFrame* frame, 5625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebURLRequest& request, 5635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebNavigationType type, 5645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebNavigationPolicy default_policy, 5655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool is_redirect); 5665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void willSendSubmitEvent(WebKit::WebFrame* frame, 5675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebFormElement& form); 5685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void willSubmitForm(WebKit::WebFrame* frame, 5695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebFormElement& form); 5705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didCreateDataSource(WebKit::WebFrame* frame, 5715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebDataSource* datasource); 5725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didStartProvisionalLoad(WebKit::WebFrame* frame); 5735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didReceiveServerRedirectForProvisionalLoad( 5745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebFrame* frame); 5755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didFailProvisionalLoad(WebKit::WebFrame* frame, 5765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebURLError& error); 5775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didCommitProvisionalLoad(WebKit::WebFrame* frame, 5785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool is_new_navigation); 5795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didClearWindowObject(WebKit::WebFrame* frame); 5805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didCreateDocumentElement(WebKit::WebFrame* frame); 5815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didReceiveTitle(WebKit::WebFrame* frame, 5825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebString& title, 5835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebTextDirection direction); 5845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didChangeIcon(WebKit::WebFrame*, 585eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch WebKit::WebIconURL::Type); 5865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didFinishDocumentLoad(WebKit::WebFrame* frame); 5875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didHandleOnloadEvents(WebKit::WebFrame* frame); 5885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didFailLoad(WebKit::WebFrame* frame, 5895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebURLError& error); 5905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didFinishLoad(WebKit::WebFrame* frame); 5915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didNavigateWithinPage(WebKit::WebFrame* frame, 5925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool is_new_navigation); 5935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didUpdateCurrentHistoryItem(WebKit::WebFrame* frame); 5945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void willSendRequest(WebKit::WebFrame* frame, 5955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) unsigned identifier, 5965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebURLRequest& request, 5975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebURLResponse& redirect_response); 5985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didReceiveResponse(WebKit::WebFrame* frame, 5995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) unsigned identifier, 6005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebURLResponse& response); 6015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didFinishResourceLoad(WebKit::WebFrame* frame, 6025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) unsigned identifier); 6035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didLoadResourceFromMemoryCache( 6045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebFrame* frame, 6055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebURLRequest& request, 6065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebURLResponse&); 6075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didDisplayInsecureContent(WebKit::WebFrame* frame); 6085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didRunInsecureContent( 6095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebFrame* frame, 6105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebSecurityOrigin& origin, 6115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebURL& target); 6125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didExhaustMemoryAvailableForScript(WebKit::WebFrame* frame); 6135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didCreateScriptContext(WebKit::WebFrame* frame, 6145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) v8::Handle<v8::Context>, 6155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int extension_group, 6165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int world_id); 6175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void willReleaseScriptContext(WebKit::WebFrame* frame, 6185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) v8::Handle<v8::Context>, 6195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int world_id); 6205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didChangeScrollOffset(WebKit::WebFrame* frame); 621eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch virtual void willInsertBody(WebKit::WebFrame* frame); 622eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch virtual void didFirstVisuallyNonEmptyLayout(WebKit::WebFrame*); 6235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didChangeContentsSize(WebKit::WebFrame* frame, 6245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebSize& size); 6255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void reportFindInPageMatchCount(int request_id, 6265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int count, 6275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool final_update); 6285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void reportFindInPageSelection(int request_id, 6295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int active_match_ordinal, 6305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebRect& sel); 6315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void requestStorageQuota( 6325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebFrame* frame, 6335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebStorageQuotaType type, 6345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) unsigned long long requested_size, 6355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebStorageQuotaCallbacks* callbacks); 6365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void willOpenSocketStream( 6375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebSocketStreamHandle* handle); 6385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void willStartUsingPeerConnectionHandler(WebKit::WebFrame* frame, 639eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch WebKit::WebRTCPeerConnectionHandler* handler); 6405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool willCheckAndDispatchMessageEvent( 6415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebFrame* sourceFrame, 6425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebFrame* targetFrame, 6435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebSecurityOrigin targetOrigin, 644eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch WebKit::WebDOMMessageEvent event); 645eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch virtual WebKit::WebString acceptLanguages(); 6465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual WebKit::WebString userAgentOverride( 6475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebFrame* frame, 648eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch const WebKit::WebURL& url); 649eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch virtual WebKit::WebString doNotTrackValue(WebKit::WebFrame* frame); 650eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch virtual bool allowWebGL(WebKit::WebFrame* frame, bool default_value); 6512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual void didLoseWebGLContext( 6522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) WebKit::WebFrame* frame, 653eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch int arb_robustness_status_code); 6545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 6555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // WebKit::WebPageSerializerClient implementation ---------------------------- 6565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 6575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didSerializeDataForFrame( 6585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebURL& frame_url, 6595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebCString& data, 6605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PageSerializationStatus status) OVERRIDE; 6615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 6625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // RenderView implementation ------------------------------------------------- 6635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 6645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool Send(IPC::Message* message) OVERRIDE; 6655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual int GetRoutingID() const OVERRIDE; 6665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual int GetPageId() const OVERRIDE; 6675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual gfx::Size GetSize() const OVERRIDE; 668c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) virtual WebPreferences& GetWebkitPreferences() OVERRIDE; 669c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) virtual void SetWebkitPreferences(const WebPreferences& preferences) OVERRIDE; 6705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual WebKit::WebView* GetWebView() OVERRIDE; 6715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual WebKit::WebNode GetFocusedNode() const OVERRIDE; 6725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual WebKit::WebNode GetContextMenuNode() const OVERRIDE; 6735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool IsEditableNode(const WebKit::WebNode& node) const OVERRIDE; 6745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual WebKit::WebPlugin* CreatePlugin( 6755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebFrame* frame, 676ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch const WebPluginInfo& info, 6775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebPluginParams& params) OVERRIDE; 6785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void EvaluateScript(const string16& frame_xpath, 6795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const string16& jscript, 6805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int id, 6815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool notify_result) OVERRIDE; 6825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool ShouldDisplayScrollbars(int width, int height) const OVERRIDE; 6835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual int GetEnabledBindings() const OVERRIDE; 6845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool GetContentStateImmediately() const OVERRIDE; 6855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual float GetFilteredTimePerFrame() const OVERRIDE; 6865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual int ShowContextMenu(ContextMenuClient* client, 6875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const ContextMenuParams& params) OVERRIDE; 6885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void CancelContextMenu(int request_id) OVERRIDE; 6895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual WebKit::WebPageVisibilityState GetVisibilityState() const OVERRIDE; 6905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void RunModalAlertDialog(WebKit::WebFrame* frame, 6915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebString& message) OVERRIDE; 6925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void LoadURLExternally( 6935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebFrame* frame, 6945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebURLRequest& request, 6955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebNavigationPolicy policy) OVERRIDE; 696ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch virtual void DidStartLoading() OVERRIDE; 697ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch virtual void DidStopLoading() OVERRIDE; 6985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void Repaint(const gfx::Size& size) OVERRIDE; 6995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void SetEditCommandForNextKeyEvent(const std::string& name, 7005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& value) OVERRIDE; 7015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void ClearEditCommands() OVERRIDE; 7022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual SSLStatus GetSSLStatusOfFrame(WebKit::WebFrame* frame) const OVERRIDE; 7034e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) virtual const std::string& GetAcceptLanguages() const OVERRIDE; 7042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if defined(OS_ANDROID) 70590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) virtual void UpdateTopControlsState(TopControlsState constraints, 70690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) TopControlsState current, 70790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) bool animate) OVERRIDE; 7082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 7095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 7107dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch // WebMediaPlayerDelegate implementation ----------------------- 7115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 7125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void DidPlay(WebKit::WebMediaPlayer* player) OVERRIDE; 7135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void DidPause(WebKit::WebMediaPlayer* player) OVERRIDE; 7145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void PlayerGone(WebKit::WebMediaPlayer* player) OVERRIDE; 7155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 7165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Please do not add your stuff randomly to the end here. If there is an 7175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // appropriate section, add it there. If not, there are some random functions 7185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // nearer to the top you can add it to. 7195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 7205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Cannot use std::set unfortunately since linked_ptr<> does not support 7215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // operator<. 722a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) typedef std::vector<linked_ptr<ImageResourceFetcher> > 7235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ImageResourceFetcherList; 7245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 7255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) protected: 7265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // RenderWidget overrides: 7275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void Close() OVERRIDE; 72890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) virtual void OnResize(const ViewMsg_Resize_Params& params) OVERRIDE; 7295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void DidInitiatePaint() OVERRIDE; 7305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void DidFlushPaint() OVERRIDE; 73158e6fbe4ee35d65e14b626c557d37565bf8ad179Ben Murdoch virtual PepperPluginInstanceImpl* GetBitmapForOptimizedPluginPaint( 7325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const gfx::Rect& paint_bounds, 7335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) TransportDIB** dib, 7345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) gfx::Rect* location, 7355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) gfx::Rect* clip, 7365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) float* scale_factor) OVERRIDE; 7375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual gfx::Vector2d GetScrollOffset() OVERRIDE; 7385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void DidHandleKeyEvent() OVERRIDE; 7395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool WillHandleMouseEvent( 7405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebMouseEvent& event) OVERRIDE; 7417d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) virtual bool WillHandleKeyEvent( 7427d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) const WebKit::WebKeyboardEvent& event) OVERRIDE; 7435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool WillHandleGestureEvent( 7445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebGestureEvent& event) OVERRIDE; 7455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void DidHandleMouseEvent(const WebKit::WebMouseEvent& event) OVERRIDE; 7465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void DidHandleTouchEvent(const WebKit::WebTouchEvent& event) OVERRIDE; 7472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual bool HasTouchEventHandlersAt(const gfx::Point& point) const OVERRIDE; 7485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void OnSetFocus(bool enable) OVERRIDE; 7495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void OnWasHidden() OVERRIDE; 7505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void OnWasShown(bool needs_repainting) OVERRIDE; 7512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual GURL GetURLForGraphicsContext3D() OVERRIDE; 7525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool ForceCompositingModeEnabled() OVERRIDE; 7535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void OnImeSetComposition( 7545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const string16& text, 7555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::vector<WebKit::WebCompositionUnderline>& underlines, 7565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int selection_start, 7575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int selection_end) OVERRIDE; 7587dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch virtual void OnImeConfirmComposition(const string16& text, 75958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) const gfx::Range& replacement_range, 7607dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch bool keep_selection) OVERRIDE; 7612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual void SetDeviceScaleFactor(float device_scale_factor) OVERRIDE; 7625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual ui::TextInputType GetTextInputType() OVERRIDE; 7635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void GetSelectionBounds(gfx::Rect* start, gfx::Rect* end) OVERRIDE; 7647dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#if defined(OS_MACOSX) || defined(OS_WIN) || defined(USE_AURA) 7655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void GetCompositionCharacterBounds( 7665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::vector<gfx::Rect>* character_bounds) OVERRIDE; 76758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) virtual void GetCompositionRange(gfx::Range* range) OVERRIDE; 7687dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#endif 7695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool CanComposeInline() OVERRIDE; 7702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual void DidCommitCompositorFrame() OVERRIDE; 7712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual void InstrumentWillBeginFrame() OVERRIDE; 7722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual void InstrumentDidBeginFrame() OVERRIDE; 7732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual void InstrumentDidCancelFrame() OVERRIDE; 7742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual void InstrumentWillComposite() OVERRIDE; 7752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual bool AllowPartialSwap() const OVERRIDE; 7762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 7772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) protected: 7782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) explicit RenderViewImpl(RenderViewImplParams* params); 7792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 7802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void Initialize(RenderViewImplParams* params); 7814e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) virtual void SetScreenMetricsEmulationParameters( 7824e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) float device_scale_factor, float root_layer_scale) OVERRIDE; 7832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 7842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Do not delete directly. This class is reference counted. 7852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual ~RenderViewImpl(); 7865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 7875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private: 7885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // For unit tests. 7895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) friend class ExternalPopupMenuTest; 7905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) friend class PepperDeviceTest; 7915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) friend class RendererAccessibilityTest; 7925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) friend class RenderViewTest; 7935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 794bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch // TODO(nasko): Temporarily friend RenderFrameImpl, so we don't duplicate 795bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch // utility functions needed in both classes, while we move frame specific 796bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch // code away from this class. 797bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch friend class RenderFrameImpl; 798bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch 7995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(ExternalPopupMenuRemoveTest, RemoveOnChange); 8005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(ExternalPopupMenuTest, NormalCase); 8015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(ExternalPopupMenuTest, ShowPopupThenNavigate); 802eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch FRIEND_TEST_ALL_PREFIXES(RendererAccessibilityTest, 803eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch AccessibilityMessagesQueueWhileSwappedOut); 8045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, DecideNavigationPolicyForWebUI); 8055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, 806c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) DidFailProvisionalLoadWithErrorForError); 807c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, 808c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) DidFailProvisionalLoadWithErrorForCancellation); 809c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, 8105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DontIgnoreBackAfterNavEntryLimit); 8115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, ImeComposition); 8125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, InsertCharacters); 8135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, JSBlockSentAfterPageLoad); 8145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, LastCommittedUpdateState); 8155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, OnExtendSelectionAndDelete); 8165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, OnHandleKeyboardEvent); 8177d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, OnImeTypeChanged); 8185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, OnNavStateChanged); 8195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, OnSetTextDirection); 8205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, OnUpdateWebPreferences); 8215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, SendSwapOutACK); 8222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, ReloadWhileSwappedOut); 8235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, 8245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SetEditableSelectionAndComposition); 8255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, StaleNavigationsIgnored); 8265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, UpdateTargetURLWithInvalidURL); 8275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, 8285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GetCompositionCharacterBoundsTest); 8295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, OnNavigationHttpPost); 8305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_MACOSX) 8315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewTest, MacTestCmdUp); 8325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 8335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, SetHistoryLengthAndPrune); 8345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, ZoomLimit); 8352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, NavigateFrame); 8362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, 8372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ShouldUpdateSelectionTextFromContextMenuParams); 838868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, BasicRenderFrame); 8399ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, TextInputTypeWithPepper); 8404e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(SuppressErrorPageTest, Suppresses); 8414e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(SuppressErrorPageTest, DoesNotSuppress); 8425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 8435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) typedef std::map<GURL, double> HostZoomLevels; 8445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 8455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) enum ErrorPageType { 8465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DNS_ERROR, 8475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) HTTP_404, 8485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) CONNECTION_ERROR, 8495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) }; 8505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 851bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch static WebKit::WebReferrerPolicy GetReferrerPolicyFromRequest( 852bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch WebKit::WebFrame* frame, 853bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch const WebKit::WebURLRequest& request); 854bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch 855bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch static Referrer GetReferrerFromRequest( 856bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch WebKit::WebFrame* frame, 857bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch const WebKit::WebURLRequest& request); 858bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch 859bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch static webkit_glue::WebURLResponseExtraDataImpl* GetExtraDataFromResponse( 860bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch const WebKit::WebURLResponse& response); 861bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch 8625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void UpdateURL(WebKit::WebFrame* frame); 8635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void UpdateTitle(WebKit::WebFrame* frame, const string16& title, 8645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebTextDirection title_direction); 8655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void UpdateSessionHistory(WebKit::WebFrame* frame); 8665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void SendUpdateState(const WebKit::WebHistoryItem& item); 8675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 8685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Update current main frame's encoding and send it to browser window. 8695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Since we want to let users see the right encoding info from menu 8705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // before finishing loading, we call the UpdateEncoding in 8715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // a) function:DidCommitLoadForFrame. When this function is called, 8725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // that means we have got first data. In here we try to get encoding 8735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // of page if it has been specified in http header. 8745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // b) function:DidReceiveTitle. When this function is called, 8755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // that means we have got specified title. Because in most of webpages, 8765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // title tags will follow meta tags. In here we try to get encoding of 8775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // page if it has been specified in meta tag. 8785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // c) function:DidFinishDocumentLoadForFrame. When this function is 8795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // called, that means we have got whole html page. In here we should 8805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // finally get right encoding of page. 8815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void UpdateEncoding(WebKit::WebFrame* frame, 8825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& encoding_name); 8835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 8845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OpenURL(WebKit::WebFrame* frame, 8855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const GURL& url, 8865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const Referrer& referrer, 8875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebNavigationPolicy policy); 8885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 8895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool RunJavaScriptMessage(JavaScriptMessageType type, 8905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const string16& message, 8915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const string16& default_value, 8925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const GURL& frame_url, 8935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) string16* result); 8945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 8955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Sends a message and runs a nested message loop. 8965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool SendAndRunNestedMessageLoop(IPC::SyncMessage* message); 8975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 8985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Called when the "pinned to left/right edge" state needs to be updated. 8995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void UpdateScrollState(WebKit::WebFrame* frame); 9005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 9015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // IPC message handlers ------------------------------------------------------ 9025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // 9035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The documentation for these functions should be in 904c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // content/common/*_messages.h for the message that the function is handling. 905c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 906c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void OnCopy(); 907c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void OnCut(); 908c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void OnDelete(); 909c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void OnExecuteEditCommand(const std::string& name, const std::string& value); 910c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void OnMoveCaret(const gfx::Point& point); 911c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void OnPaste(); 912c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void OnPasteAndMatchStyle(); 913c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void OnRedo(); 914c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void OnReplace(const string16& text); 915c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void OnReplaceMisspelling(const string16& text); 916c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void OnScrollFocusedEditableNodeIntoRect(const gfx::Rect& rect); 917c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void OnSelectAll(); 918c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void OnSelectRange(const gfx::Point& start, const gfx::Point& end); 919c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void OnSetEditCommandsForNextKeyEvent(const EditCommands& edit_commands); 920c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void OnUndo(); 921c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void OnUnselect(); 9225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 9232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void OnAllowBindings(int enabled_bindings_flags); 9245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnAllowScriptToClose(bool script_can_close); 9255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnCancelDownload(int32 download_id); 9265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnClearFocusedNode(); 9275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnClosePage(); 9285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnContextMenuClosed(const CustomContextMenuContext& custom_context); 9297d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) void OnShowContextMenu(const gfx::Point& location); 9305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnCopyImageAt(int x, int y); 9315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnCSSInsertRequest(const string16& frame_xpath, 9325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& css); 9335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnCustomContextMenuAction(const CustomContextMenuContext& custom_context, 9345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) unsigned action); 9352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void OnSetName(const std::string& name); 9365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnDeterminePageLanguage(); 9375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnDisableScrollbarsForSmallWindows( 9385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const gfx::Size& disable_scrollbars_size_limit); 9395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnDragSourceEndedOrMoved(const gfx::Point& client_point, 9405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const gfx::Point& screen_point, 9415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool ended, 9425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebDragOperation drag_operation); 9435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnDragSourceSystemDragEnded(); 9445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnDragTargetDrop(const gfx::Point& client_pt, 9455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const gfx::Point& screen_pt, 9465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int key_modifiers); 947eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch void OnDragTargetDragEnter(const DropData& drop_data, 9485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const gfx::Point& client_pt, 9495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const gfx::Point& screen_pt, 9505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebDragOperationsMask operations_allowed, 9515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int key_modifiers); 9525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnDragTargetDragLeave(); 9535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnDragTargetDragOver(const gfx::Point& client_pt, 9545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const gfx::Point& screen_pt, 9555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebDragOperationsMask operations_allowed, 9565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int key_modifiers); 9575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnEnablePreferredSizeChangedMode(); 9585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnEnableAutoResize(const gfx::Size& min_size, const gfx::Size& max_size); 9595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnDisableAutoResize(const gfx::Size& new_size); 9602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void OnEnumerateDirectoryResponse(int id, 9612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const std::vector<base::FilePath>& paths); 9622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void OnExtendSelectionAndDelete(int before, int after); 9635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnFileChooserResponse( 9645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::vector<ui::SelectedFileInfo>& files); 9655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnFind(int request_id, const string16&, const WebKit::WebFindOptions&); 9665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnGetAllSavableResourceLinksForCurrentPage(const GURL& page_url); 9675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnGetSerializedHtmlDataForCurrentPageWithLocalLinks( 9685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::vector<GURL>& links, 9692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const std::vector<base::FilePath>& local_paths, 9702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const base::FilePath& local_directory_name); 9715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnMediaPlayerActionAt(const gfx::Point& location, 9725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebMediaPlayerAction& action); 9735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 9745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Screen has rotated. 0 = default (portrait), 90 = one turn right, and so on. 9755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnOrientationChangeEvent(int orientation); 9765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 9775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnPluginActionAt(const gfx::Point& location, 9785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebPluginAction& action); 9795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnMoveOrResizeStarted(); 9802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void OnNavigate(const ViewMsg_Navigate_Params& params); 9815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnPostMessageEvent(const ViewMsg_PostMessage_Params& params); 9825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnReleaseDisambiguationPopupDIB(TransportDIB::Handle dib_handle); 9835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnReloadFrame(); 9845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnResetPageEncodingToDefault(); 9855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnScriptEvalRequest(const string16& frame_xpath, 9865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const string16& jscript, 9875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int id, 9885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool notify_result); 9892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void OnSetAccessibilityMode(AccessibilityMode new_mode); 9905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnSetActive(bool active); 9915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnSetAltErrorPageURL(const GURL& gurl); 9925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnSetBackground(const SkBitmap& background); 9932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void OnSetCompositionFromExistingText( 9945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int start, int end, 9955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::vector<WebKit::WebCompositionUnderline>& underlines); 996c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void OnExitFullscreen(); 9972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void OnSetEditableSelectionOffsets(int start, int end); 9982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void OnSetHistoryLengthAndPrune(int history_length, int32 minimum_page_id); 9995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnSetInitialFocus(bool reverse); 10005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnSetPageEncoding(const std::string& encoding_name); 10015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnSetRendererPrefs(const RendererPreferences& renderer_prefs); 1002c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void OnSetWebUIProperty(const std::string& name, const std::string& value); 10035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnSetZoomLevel(double zoom_level); 10042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void OnSetZoomLevelForLoadingURL(const GURL& url, double zoom_level); 10055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnShouldClose(); 10065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnStop(); 10075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnStopFinding(StopFindAction action); 10087d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) void OnSwapOut(); 10095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnThemeChanged(); 10105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnUpdateTargetURLAck(); 10115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnUpdateTimezone(); 1012c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void OnUpdateWebPreferences(const WebPreferences& prefs); 10135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnZoom(PageZoom zoom); 10155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnZoomFactor(PageZoom zoom, int zoom_center_x, int zoom_center_y); 10165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnEnableViewSourceMode(); 10185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnJavaBridgeInit(); 10205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void OnDisownOpener(); 10225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_ANDROID) 10245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnActivateNearestFindResult(int request_id, float x, float y); 10255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnFindMatchRects(int current_version); 10265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnSelectPopupMenuItems(bool canceled, 10275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::vector<int>& selected_indices); 10285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnUndoScrollFocusedEditableNodeIntoRect(); 1029c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void OnUpdateTopControlsState(bool enable_hiding, 1030c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) bool enable_showing, 1031c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) bool animate); 103268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) void OnPauseVideo(); 103368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) 10345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#elif defined(OS_MACOSX) 10355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnCopyToFindPboard(); 10365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnPluginImeCompositionCompleted(const string16& text, int plugin_id); 10372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void OnSelectPopupMenuItem(int selected_index); 10385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnSetInLiveResize(bool in_live_resize); 10395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnSetWindowVisibility(bool visible); 10405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnWindowFrameChanged(const gfx::Rect& window_frame, 10415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const gfx::Rect& view_frame); 10425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 10435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void OnWindowSnapshotCompleted(const int snapshot_id, 10452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const gfx::Size& size, const std::vector<unsigned char>& png); 10462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 10475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Adding a new message handler? Please add it in alphabetical order above 10495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // and put it in the same position in the .cc file. 10505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Misc private functions ---------------------------------------------------- 10525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void ZoomFactorHelper(PageZoom zoom, int zoom_center_x, int zoom_center_y, 10535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) float scaling_increment); 10545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void AltErrorPageFinished(WebKit::WebFrame* frame, 1056c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const WebKit::WebURLRequest& original_request, 10575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebURLError& original_error, 10585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& html); 10595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Check whether the preferred size has changed. 10615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void CheckPreferredSize(); 10625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 106358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) // Initializes |media_stream_client_|, returning true if successful. Returns 106458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) // false if it wasn't possible to create a MediaStreamClient (e.g., WebRTC is 106558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) // disabled) in which case |media_stream_client_| is NULL. 106658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) bool InitializeMediaStreamClient(); 10675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // This callback is triggered when DownloadFavicon completes, either 10695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // succesfully or with a failure. See DownloadFavicon for more 10705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // details. 1071a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) void DidDownloadFavicon(ImageResourceFetcher* fetcher, 10725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const SkBitmap& image); 10735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Requests to download a favicon image. When done, the RenderView is notified 10755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // by way of DidDownloadFavicon. Returns true if the request was successfully 10765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // started, false otherwise. id is used to uniquely identify the request and 10775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // passed back to the DidDownloadFavicon method. If the image has multiple 10785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // frames, the frame whose size is image_size is returned. If the image 10795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // doesn't have a frame at the specified size, the first is returned. 10805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool DownloadFavicon(int id, const GURL& image_url, int image_size); 10815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GURL GetAlternateErrorPageURL(const GURL& failed_url, 10835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ErrorPageType error_type); 10845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Locates a sub frame with given xpath 10865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebFrame* GetChildFrame(const string16& frame_xpath) const; 10875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Returns the URL being loaded by the given frame's request. 10895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GURL GetLoadingUrl(WebKit::WebFrame* frame) const; 10905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Should only be called if this object wraps a PluginDocument. 10925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebPlugin* GetWebPluginFromPluginDocument(); 10935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Returns true if the |params| navigation is to an entry that has been 10955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // cropped due to a recent navigation the browser did not know about. 10965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool IsBackForwardToStaleEntry(const ViewMsg_Navigate_Params& params, 10975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool is_reload); 10985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool MaybeLoadAlternateErrorPage(WebKit::WebFrame* frame, 11005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebURLError& error, 11015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool replace); 11025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 11035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Make this RenderView show an empty, unscriptable page. 11045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void NavigateToSwappedOutURL(WebKit::WebFrame* frame); 11055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 11065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // If we initiated a navigation, this function will populate |document_state| 11075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // with the navigation information saved in OnNavigate(). 11085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void PopulateDocumentStateFromPending(DocumentState* document_state); 11095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 11105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Returns a new NavigationState populated with the navigation information 11115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // saved in OnNavigate(). 11125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) NavigationState* CreateNavigationStateFromPending(); 11135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 11142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Processes the command-line flags --enable-viewport, 11152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // --enable-fixed-layout[=w,h] and --enable-pinch. 11165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void ProcessViewLayoutFlags(const CommandLine& command_line); 11175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 11185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_ANDROID) 11195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Launch an Android content intent with the given URL. 11205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void LaunchAndroidContentIntent(const GURL& intent_url, size_t request_id); 11215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 11225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 11235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Sends a reply to the current find operation handling if it was a 11245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // synchronous find request. 11255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void SendFindReply(int request_id, 11265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int match_count, 11275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int ordinal, 11285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebRect& selection_rect, 11295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool final_status_update); 11305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 11312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Returns whether |params.selection_text| should be synchronized to the 11322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // browser before bringing up the context menu. Static for testing. 11332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) static bool ShouldUpdateSelectionTextFromContextMenuParams( 11342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const string16& selection_text, 11352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) size_t selection_text_offset, 113658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) const gfx::Range& selection_range, 11372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const ContextMenuParams& params); 11382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 11395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Starts nav_state_sync_timer_ if it isn't already running. 11405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void StartNavStateSyncTimerIfNecessary(); 11415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 11425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Dispatches the current state of selection on the webpage to the browser if 11435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // it has changed. 11445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // TODO(varunjain): delete this method once we figure out how to keep 11455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // selection handles in sync with the webpage. 11465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void SyncSelectionIfRequired(); 11475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 11485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_POSIX) && !defined(OS_MACOSX) 11495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void UpdateFontRenderingFromRendererPrefs(); 11505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else 11515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void UpdateFontRenderingFromRendererPrefs() {} 11525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 11535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 11545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Update the target url and tell the browser that the target URL has changed. 11555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // If |url| is empty, show |fallback_url|. 11565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void UpdateTargetURL(const GURL& url, const GURL& fallback_url); 11575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1158c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // Tells the browser what the new list of favicons for the webpage is. 1159c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void SendUpdateFaviconURL(const std::vector<FaviconURL>& urls); 1160c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 1161c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // Invoked from DidStopLoading(). Sends the current list of loaded favicons to 1162c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // the browser. 1163c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void DidStopLoadingIcons(); 1164c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 11652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Coordinate conversion ----------------------------------------------------- 11662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 11672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) gfx::RectF ClientRectToPhysicalWindowRect(const gfx::RectF& rect) const; 11682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 11694e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) // Helper for LatencyInfo construction. 11704e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) int64 GetLatencyComponentId(); 11714e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 11728bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) // RenderFrameImpl accessible state ------------------------------------------ 11738bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) // The following section is the set of methods that RenderFrameImpl needs 11748bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) // to access RenderViewImpl state. The set of state variables are page-level 11758bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) // specific, so they don't belong in RenderFrameImpl and should remain in 11768bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) // this object. 11778bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) ObserverList<RenderViewObserver>& observers() { 11788bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) return observers_; 11798bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) } 11808bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) 11818bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) // TODO(nasko): Remove this method when we move to frame proxy objects, since 11828bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) // the concept of swapped out will be eliminated. 11838bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) void set_is_swapped_out(bool swapped_out) { 11848bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) is_swapped_out_ = swapped_out; 11858bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) } 11868bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) 11878bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) NavigationGesture navigation_gesture() { 11888bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) return navigation_gesture_; 11898bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) } 11908bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) void set_navigation_gesture(NavigationGesture gesture) { 11918bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) navigation_gesture_ = gesture; 11928bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) } 11938bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) 11945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // --------------------------------------------------------------------------- 11955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // ADDING NEW FUNCTIONS? Please keep private functions alphabetized and put 11965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // it in the same order in the .cc file as it was in the header. 11975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // --------------------------------------------------------------------------- 11985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 11995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Settings ------------------------------------------------------------------ 12005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1201c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) WebPreferences webkit_preferences_; 12025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) RendererPreferences renderer_preferences_; 12035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) HostZoomLevels host_zoom_levels_; 12055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Whether content state (such as form state, scroll position and page 12075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // contents) should be sent to the browser immediately. This is normally 12085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // false, but set to true by some tests. 12095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool send_content_state_immediately_; 12105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Bitwise-ORed set of extra bindings that have been enabled. See 12125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // BindingsPolicy for details. 12135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int enabled_bindings_; 12145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The alternate error page URL, if one exists. 12165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GURL alternate_error_page_url_; 12175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // If true, we send IPC messages when |preferred_size_| changes. 12195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool send_preferred_size_changes_; 12205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // If non-empty, and |send_preferred_size_changes_| is true, disable drawing 12225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // scroll bars on windows smaller than this size. Used for windows that the 12235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // browser resizes to the size of the content, such as browser action popups. 12245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // If a render view is set to the minimum size of its content, webkit may add 12255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // scroll bars. This makes sense for fixed sized windows, but it does not 12265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // make sense when the size of the view was chosen to fit the content. 12275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // This setting ensures that no scroll bars are drawn. The size limit exists 12285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // because if the view grows beyond a size known to the browser, scroll bars 12295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // should be drawn. 12305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) gfx::Size disable_scrollbars_size_limit_; 12315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Loading state ------------------------------------------------------------- 12335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // True if the top level frame is currently being loaded. 12355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool is_loading_; 12365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The gesture that initiated the current navigation. 12385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) NavigationGesture navigation_gesture_; 12395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Used for popups. 12415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool opened_by_user_gesture_; 12425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Whether this RenderView was created by a frame that was suppressing its 12445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // opener. If so, we may want to load pages in a separate process. See 12455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // decidePolicyForNavigation for details. 12465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool opener_suppressed_; 12475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Holds state pertaining to a navigation that we initiated. This is held by 12495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // the WebDataSource::ExtraData attribute. We use pending_navigation_state_ 12505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // as a temporary holder for the state until the WebDataSource corresponding 12515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // to the new navigation is created. See DidCreateDataSource. 12525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) scoped_ptr<ViewMsg_Navigate_Params> pending_navigation_params_; 12535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Timer used to delay the updating of nav state (see SyncNavigationState). 12555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) base::OneShotTimer<RenderViewImpl> nav_state_sync_timer_; 12565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Page IDs ------------------------------------------------------------------ 12585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // See documentation in RenderView. 12595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int32 page_id_; 12605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Indicates the ID of the last page that we sent a FrameNavigate to the 12625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // browser for. This is used to determine if the most recent transition 12635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // generated a history entry (less than page_id_), or not (equal to or 12645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // greater than). Note that this will be greater than page_id_ if the user 12655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // goes back. 12665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int32 last_page_id_sent_to_browser_; 12675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The next available page ID to use for this RenderView. These IDs are 12695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // specific to a given RenderView and the frames within it. 12705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int32 next_page_id_; 12715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The offset of the current item in the history list. 12735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int history_list_offset_; 12745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The RenderView's current impression of the history length. This includes 12765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // any items that have committed in this process, but because of cross-process 12775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // navigations, the history may have some entries that were committed in other 12785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // processes. We won't know about them until the next navigation in this 12795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // process. 12805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int history_list_length_; 12815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The list of page IDs for each history item this RenderView knows about. 12835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Some entries may be -1 if they were rendered by other processes or were 12845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // restored from a previous session. This lets us detect attempts to 12855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // navigate to stale entries that have been cropped from our history. 12865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::vector<int32> history_page_ids_; 12875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Page info ----------------------------------------------------------------- 12895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The last gotten main frame's encoding. 12915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::string last_encoding_name_; 12925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // UI state ------------------------------------------------------------------ 12945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The state of our target_url transmissions. When we receive a request to 12965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // send a URL to the browser, we set this to TARGET_INFLIGHT until an ACK 12975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // comes back - if a new request comes in before the ACK, we store the new 12985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // URL in pending_target_url_ and set the status to TARGET_PENDING. If an 12995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // ACK comes back and we are in TARGET_PENDING, we send the stored URL and 13005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // revert to TARGET_INFLIGHT. 13015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // 13025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // We don't need a queue of URLs to send, as only the latest is useful. 13035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) enum { 13045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) TARGET_NONE, 13055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) TARGET_INFLIGHT, // We have a request in-flight, waiting for an ACK 13065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) TARGET_PENDING // INFLIGHT + we have a URL waiting to be sent 13075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } target_url_status_; 13085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The URL we show the user in the status bar. We use this to determine if we 13105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // want to send a new one (we do not need to send duplicates). It will be 13115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // equal to either |mouse_over_url_| or |focus_url_|, depending on which was 13125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // updated last. 13135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GURL target_url_; 13145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The URL the user's mouse is hovering over. 13165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GURL mouse_over_url_; 13175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The URL that has keyboard focus. 13195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GURL focus_url_; 13205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The next target URL we want to send to the browser. 13225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GURL pending_target_url_; 13235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // The text selection the last time DidChangeSelection got called. May contain 13252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // additional characters before and after the selected text, for IMEs. The 13262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // portion of this string that is the actual selected text starts at index 13272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // |selection_range_.GetMin() - selection_text_offset_| and has length 13282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // |selection_range_.length()|. 13295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) string16 selection_text_; 13302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // The offset corresponding to the start of |selection_text_| in the document. 13315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) size_t selection_text_offset_; 13322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Range over the document corresponding to the actual selected text (which 13332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // could correspond to a substring of |selection_text_|; see above). 133458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) gfx::Range selection_range_; 13355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // External context menu requests we're waiting for. "Internal" 13375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // (WebKit-originated) context menu events will have an ID of 0 and will not 13385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // be in this map. 13395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // 13405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // We don't want to add internal ones since some of the "special" page 13415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // handlers in the browser process just ignore the context menu requests so 13425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // avoid showing context menus, and so this will cause right clicks to leak 13435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // entries in this map. Most users of the custom context menu (e.g. Pepper 13445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // plugins) are normally only on "regular" pages and the regular pages will 13455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // always respond properly to the request, so we don't have to worry so 13465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // much about leaks. 13475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IDMap<ContextMenuClient, IDMapExternalPointer> pending_context_menus_; 13485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13497d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#if defined(OS_ANDROID) 13507d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) // Cache the old top controls state constraints. Used when updating 13517d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) // current value only without altering the constraints. 13527d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) cc::TopControlsState top_controls_constraints_; 13537d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#endif 13547d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 13555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // View ---------------------------------------------------------------------- 13565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Cache the preferred size of the page in order to prevent sending the IPC 13585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // when layout() recomputes but doesn't actually change sizes. 13595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) gfx::Size preferred_size_; 13605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Used to delay determining the preferred size (to avoid intermediate 13625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // states for the sizes). 13635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) base::OneShotTimer<RenderViewImpl> check_preferred_size_timer_; 13645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // These store the "is main frame is scrolled all the way to the left 13665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // or right" state that was last sent to the browser. 13675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool cached_is_main_frame_pinned_to_left_; 13685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool cached_is_main_frame_pinned_to_right_; 13695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // These store the "has scrollbars" state last sent to the browser. 13715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool cached_has_main_frame_horizontal_scrollbar_; 13725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool cached_has_main_frame_vertical_scrollbar_; 13735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Helper objects ------------------------------------------------------------ 13755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1376868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) scoped_ptr<RenderFrameImpl> main_render_frame_; 1377868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) 13785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) RendererWebCookieJarImpl cookie_jar_; 13795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The next group of objects all implement RenderViewObserver, so are deleted 13815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // along with the RenderView automatically. This is why we just store 13825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // weak references. 13835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Holds a reference to the service which provides desktop notifications. 13855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) NotificationProvider* notification_provider_; 13865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The geolocation dispatcher attached to this view, lazily initialized. 13885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GeolocationDispatcher* geolocation_dispatcher_; 13895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The speech dispatcher attached to this view, lazily initialized. 13915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) InputTagSpeechDispatcher* input_tag_speech_dispatcher_; 13925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The speech recognition dispatcher attached to this view, lazily 13945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // initialized. 13955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SpeechRecognitionDispatcher* speech_recognition_dispatcher_; 13965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Device orientation dispatcher attached to this view; lazily initialized. 13985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DeviceOrientationDispatcher* device_orientation_dispatcher_; 13995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 14005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // MediaStream dispatcher attached to this view; lazily initialized. 14015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MediaStreamDispatcher* media_stream_dispatcher_; 14025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 14032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // BrowserPluginManager attached to this view; lazily initialized. 14042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) scoped_refptr<BrowserPluginManager> browser_plugin_manager_; 14052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 14067dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch // MediaStreamClient attached to this view; lazily initialized. 14077dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch MediaStreamClient* media_stream_client_; 14087dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch WebKit::WebUserMediaClient* web_user_media_client_; 14095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 141058e6fbe4ee35d65e14b626c557d37565bf8ad179Ben Murdoch // MIDIClient attached to this view; lazily initialized. 141158e6fbe4ee35d65e14b626c557d37565bf8ad179Ben Murdoch MIDIDispatcher* midi_dispatcher_; 141258e6fbe4ee35d65e14b626c557d37565bf8ad179Ben Murdoch 14135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DevToolsAgent* devtools_agent_; 14145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 14155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The current accessibility mode. 14165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AccessibilityMode accessibility_mode_; 14175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 14185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Only valid if |accessibility_mode_| is anything other than 14195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // AccessibilityModeOff. 14205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) RendererAccessibility* renderer_accessibility_; 14215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 14225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Java Bridge dispatcher attached to this view; lazily initialized. 14235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) JavaBridgeDispatcher* java_bridge_dispatcher_; 14245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 14255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Mouse Lock dispatcher attached to this view. 14265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MouseLockDispatcher* mouse_lock_dispatcher_; 14275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 14285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_ANDROID) 14295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Android Specific --------------------------------------------------------- 14305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 14315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The background color of the document body element. This is used as the 14325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // default background color for filling the screen areas for which we don't 14335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // have the actual content. 14345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SkColor body_background_color_; 14355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 14365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Expected id of the next content intent launched. Used to prevent scheduled 14375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // intents to be launched if aborted. 14385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) size_t expected_content_intent_id_; 14395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 14405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // List of click-based content detectors. 14415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) typedef std::vector< linked_ptr<ContentDetector> > ContentDetectorList; 14425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ContentDetectorList content_detectors_; 14435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 14445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Proxy class for WebMediaPlayer to communicate with the real media player 14455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // objects in browser process. 1446eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch WebMediaPlayerProxyAndroid* media_player_proxy_; 14475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 14485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The media player manager for managing all the media players on this view. 14497dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch scoped_ptr<RendererMediaPlayerManager> media_player_manager_; 14505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 14512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // A date/time picker object for date and time related input elements. 14522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) scoped_ptr<RendererDateTimePicker> date_time_picker_client_; 14535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 14545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1455c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // Plugins ------------------------------------------------------------------- 1456c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 1457c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // All the currently active plugin delegates for this RenderView; kept so 1458c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // that we can enumerate them to send updates about things like window 1459c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // location or tab focus and visibily. These are non-owning references. 1460c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) std::set<WebPluginDelegateProxy*> plugin_delegates_; 1461c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 1462c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#if defined(OS_WIN) 1463c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // The ID of the focused NPAPI plug-in. 1464c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) int focused_plugin_id_; 1465c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#endif 1466c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 14673240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch#if defined(ENABLE_PLUGINS) 14683240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch typedef std::set<PepperPluginInstanceImpl*> PepperPluginSet; 14693240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch PepperPluginSet active_pepper_instances_; 14703240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch 14713240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch // Whether or not the focus is on a PPAPI plugin 14723240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch PepperPluginInstanceImpl* focused_pepper_plugin_; 14733240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch 14743240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch // Current text input composition text. Empty if no composition is in 14753240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch // progress. 14763240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch string16 pepper_composition_text_; 14773240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch 14783240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch // The plugin instance that received the last mouse event. It is set to NULL 14793240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch // if the last mouse event went to elements other than Pepper plugins. 14803240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch // |pepper_last_mouse_event_target_| is not owned by this class. We can know 14813240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch // about when it is destroyed via InstanceDeleted(). 14823240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch PepperPluginInstanceImpl* pepper_last_mouse_event_target_; 14833240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch#endif 14843240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch 14855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Misc ---------------------------------------------------------------------- 14865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 14875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The current and pending file chooser completion objects. If the queue is 14885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // nonempty, the first item represents the currently running file chooser 14895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // callback, and the remaining elements are the other file chooser completion 14905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // still waiting to be run (in order). 14915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) struct PendingFileChooser; 14925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::deque< linked_ptr<PendingFileChooser> > file_chooser_completions_; 14935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 14945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The current directory enumeration callback 14955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::map<int, WebKit::WebFileChooserCompletion*> enumeration_completions_; 14965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int enumeration_completion_id_; 14975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 14985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Reports load progress to the browser. 14995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) scoped_ptr<LoadProgressTracker> load_progress_tracker_; 15005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 15015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The SessionStorage namespace that we're assigned to has an ID, and that ID 15025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // is passed to us upon creation. WebKit asks for this ID upon first use and 15035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // uses it whenever asking the browser process to allocate new storage areas. 15045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int64 session_storage_namespace_id_; 15055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 15065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Stores edit commands associated to the next key event. 15075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Shall be cleared as soon as the next key event is processed. 15085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EditCommands edit_commands_; 15095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 15105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The external popup for the currently showing select popup. 15115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) scoped_ptr<ExternalPopupMenu> external_popup_menu_; 15125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 15135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The node that the context menu was pressed over. 15145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebNode context_menu_node_; 15155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 15165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // All the registered observers. We expect this list to be small, so vector 15175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // is fine. 15185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ObserverList<RenderViewObserver> observers_; 15195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 15205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Used to inform didChangeSelection() when it is called in the context 1521c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // of handling a InputMsg_SelectRange IPC. 15225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool handling_select_range_; 15235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 15245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Wraps the |webwidget_| as a MouseLockDispatcher::LockTarget interface. 15255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) scoped_ptr<MouseLockDispatcher::LockTarget> webwidget_mouse_lock_target_; 15265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 15272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // State associated with the GetWindowSnapshot function. 15282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int next_snapshot_id_; 15293240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch typedef std::map<int, WindowSnapshotCallback> PendingSnapshotMap; 15302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PendingSnapshotMap pending_snapshots_; 15312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1532c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // Allows to selectively disable partial buffer swap for this renderer's 1533c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // compositor. 15342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) bool allow_partial_swap_; 15352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 15365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Allows JS to access DOM automation. The JS object is only exposed when the 15375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // DOM automation bindings are enabled. 15385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) scoped_ptr<DomAutomationController> dom_automation_controller_; 15395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 154058e6fbe4ee35d65e14b626c557d37565bf8ad179Ben Murdoch // Allows JS to read out a variety of internal various metrics. The JS object 154158e6fbe4ee35d65e14b626c557d37565bf8ad179Ben Murdoch // is only exposed when the stats collection bindings are enabled. 154258e6fbe4ee35d65e14b626c557d37565bf8ad179Ben Murdoch scoped_ptr<StatsCollectionController> stats_collection_controller_; 1543868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) 15445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // This field stores drag/drop related info for the event that is currently 15455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // being handled. If the current event results in starting a drag/drop 15465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // session, this info is sent to the browser along with other drag/drop info. 15475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DragEventSourceInfo possible_drag_event_info_; 15485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 15493240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch // NOTE: stats_collection_observer_ should be the last members because their 15503240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch // constructors call the AddObservers method of RenderViewImpl. 1551868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) scoped_ptr<StatsCollectionObserver> stats_collection_observer_; 15522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1553eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch ui::MenuSourceType context_menu_source_type_; 15547d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) gfx::Point touch_editing_context_menu_location_; 15557d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 15565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // --------------------------------------------------------------------------- 15575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // ADDING NEW DATA? Please see if it fits appropriately in one of the above 15585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // sections rather than throwing it randomly at the end. If you're adding a 15595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // bunch of stuff, you should probably create a helper class and put your 15605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // data and methods on that to avoid bloating RenderView more. You can 15615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // use the Observer interface to filter IPC messages and receive frame change 15625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // notifications. 15635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // --------------------------------------------------------------------------- 15645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 15655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(RenderViewImpl); 15665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 15675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 15685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace content 15695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 15705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif // CONTENT_RENDERER_RENDER_VIEW_IMPL_H_ 1571