render_view_impl.h revision d0247b1b59f9c528cb6df88b4f2b9afaf80d181e
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 3995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // IPC::Listener implementation ---------------------------------------------- 4005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool OnMessageReceived(const IPC::Message& msg) OVERRIDE; 4025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // WebKit::WebWidgetClient implementation ------------------------------------ 4045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Most methods are handled by RenderWidget. 4065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didFocus(); 4075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didBlur(); 4085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void show(WebKit::WebNavigationPolicy policy); 4095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void runModal(); 4105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool enterFullScreen(); 4115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void exitFullScreen(); 4125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool requestPointerLock(); 4135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void requestPointerUnlock(); 4145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool isPointerLocked(); 4155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didActivateCompositor(int input_handler_identifier); 4162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual void didHandleGestureEvent(const WebKit::WebGestureEvent& event, 4172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) bool event_cancelled) OVERRIDE; 418a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch virtual void initializeLayerTreeView() OVERRIDE; 4195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // WebKit::WebViewClient implementation -------------------------------------- 4215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual WebKit::WebView* createView( 4235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebFrame* creator, 4245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebURLRequest& request, 4255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebWindowFeatures& features, 4265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebString& frame_name, 4275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebNavigationPolicy policy); 4285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual WebKit::WebWidget* createPopupMenu(WebKit::WebPopupType popup_type); 4295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual WebKit::WebExternalPopupMenu* createExternalPopupMenu( 4305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebPopupMenuInfo& popup_menu_info, 4315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebExternalPopupMenuClient* popup_menu_client); 432eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch virtual WebKit::WebStorageNamespace* createSessionStorageNamespace(); 4333551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) virtual bool shouldReportDetailedMessageForSource( 4343551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) const WebKit::WebString& source); 4355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didAddMessageToConsole( 4365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebConsoleMessage& message, 4375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebString& source_name, 438424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) unsigned source_line, 439424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) const WebKit::WebString& stack_trace); 4405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void printPage(WebKit::WebFrame* frame); 4415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual WebKit::WebNotificationPresenter* notificationPresenter(); 4425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool enumerateChosenDirectory( 4435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebString& path, 4445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebFileChooserCompletion* chooser_completion); 4455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void initializeHelperPluginWebFrame(WebKit::WebHelperPlugin*); 4465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didStartLoading(); 4475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didStopLoading(); 4485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didChangeLoadProgress(WebKit::WebFrame* frame, 4495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) double load_progress); 4502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual void didCancelCompositionOnSelectionChange(); 4515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didChangeSelection(bool is_selection_empty); 4525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didExecuteCommand(const WebKit::WebString& command_name); 4535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool handleCurrentKeyboardEvent(); 4545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual WebKit::WebColorChooser* createColorChooser( 4555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebColorChooserClient*, const WebKit::WebColor& initial_color); 4565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool runFileChooser( 4575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebFileChooserParams& params, 4585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebFileChooserCompletion* chooser_completion); 4595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void runModalAlertDialog(WebKit::WebFrame* frame, 4605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebString& message); 4615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool runModalConfirmDialog(WebKit::WebFrame* frame, 4625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebString& message); 4635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool runModalPromptDialog(WebKit::WebFrame* frame, 4645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebString& message, 4655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebString& default_value, 4665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebString* actual_value); 4675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool runModalBeforeUnloadDialog(WebKit::WebFrame* frame, 468a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) bool is_reload, 469a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) const WebKit::WebString& message); 470a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) // DEPRECATED 471a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) virtual bool runModalBeforeUnloadDialog(WebKit::WebFrame* frame, 4725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebString& message); 4735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void showContextMenu(WebKit::WebFrame* frame, 4745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebContextMenuData& data); 4753551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) virtual void clearContextMenu(); 4765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void setStatusText(const WebKit::WebString& text); 4775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void setMouseOverURL(const WebKit::WebURL& url); 4785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void setKeyboardFocusURL(const WebKit::WebURL& url); 4795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void startDragging(WebKit::WebFrame* frame, 4805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebDragData& data, 4815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebDragOperationsMask mask, 4825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebImage& image, 4835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebPoint& imageOffset); 4845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool acceptsLoadDrops(); 4855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void focusNext(); 4865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void focusPrevious(); 4875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void focusedNodeChanged(const WebKit::WebNode& node); 4885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void numberOfWheelEventHandlersChanged(unsigned num_handlers); 4895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didUpdateLayout(); 4905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_ANDROID) 4915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool didTapMultipleTargets( 4925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebGestureEvent& event, 4935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebVector<WebKit::WebRect>& target_rects); 4945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 4955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void navigateBackForwardSoon(int offset); 4965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual int historyBackListCount(); 4975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual int historyForwardListCount(); 49858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) virtual void postAccessibilityEvent( 49958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) const WebKit::WebAXObject& obj, WebKit::WebAXEvent event); 5005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didUpdateInspectorSetting(const WebKit::WebString& key, 5015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebString& value); 5025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual WebKit::WebGeolocationClient* geolocationClient(); 5035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual WebKit::WebSpeechInputController* speechInputController( 5045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebSpeechInputListener* listener); 5055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual WebKit::WebSpeechRecognizer* speechRecognizer(); 5065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual WebKit::WebDeviceOrientationClient* deviceOrientationClient(); 5075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void zoomLimitsChanged(double minimum_level, double maximum_level); 5085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void zoomLevelChanged(); 50958e6fbe4ee35d65e14b626c557d37565bf8ad179Ben Murdoch virtual double zoomLevelToZoomFactor(double zoom_level) const; 51058e6fbe4ee35d65e14b626c557d37565bf8ad179Ben Murdoch virtual double zoomFactorToZoomLevel(double factor) const; 5115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void registerProtocolHandler(const WebKit::WebString& scheme, 5125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebString& base_url, 5135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebString& url, 5145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebString& title); 5155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual WebKit::WebPageVisibilityState visibilityState() const; 5165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual WebKit::WebUserMediaClient* userMediaClient(); 51758e6fbe4ee35d65e14b626c557d37565bf8ad179Ben Murdoch virtual WebKit::WebMIDIClient* webMIDIClient(); 5185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void draggableRegionsChanged(); 5195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 5205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_ANDROID) 5215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void scheduleContentIntent(const WebKit::WebURL& intent); 5225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void cancelScheduledContentIntents(); 5235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual WebKit::WebContentDetectionResult detectContentAround( 5245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebHitTestResult& touch_hit); 5252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 5262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Only used on Android since all other platforms implement 5272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // date and time input fields using MULTIPLE_FIELDS_UI 5282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual bool openDateTimeChooser(const WebKit::WebDateTimeChooserParams&, 5292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) WebKit::WebDateTimeChooserCompletion*); 5307d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) virtual void didScrollWithKeyboard(const WebKit::WebSize& delta); 5315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 5325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 5335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // WebKit::WebFrameClient implementation ------------------------------------- 5345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 5355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual WebKit::WebMediaPlayer* createMediaPlayer( 5365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebFrame* frame, 5375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebURL& url, 5385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebMediaPlayerClient* client); 5395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual WebKit::WebCookieJar* cookieJar(WebKit::WebFrame* frame); 540868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) virtual void didAccessInitialDocument(WebKit::WebFrame* frame); 5412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual void didDisownOpener(WebKit::WebFrame* frame); 5425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void frameDetached(WebKit::WebFrame* frame); 5435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void willClose(WebKit::WebFrame* frame); 544c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 545c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // The WebDataSource::ExtraData* is assumed to be a DocumentState* subclass. 546c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) virtual WebKit::WebNavigationPolicy decidePolicyForNavigation( 547c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) WebKit::WebFrame* frame, 548c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) WebKit::WebDataSource::ExtraData* extraData, 549c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const WebKit::WebURLRequest& request, 550c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) WebKit::WebNavigationType type, 551c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) WebKit::WebNavigationPolicy default_policy, 552c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) bool is_redirect); 553c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // DEPRECATED. 5545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual WebKit::WebNavigationPolicy decidePolicyForNavigation( 5555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebFrame* frame, 5565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebURLRequest& request, 5575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebNavigationType type, 5585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebNavigationPolicy default_policy, 5595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool is_redirect); 5605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void willSendSubmitEvent(WebKit::WebFrame* frame, 5615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebFormElement& form); 5625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void willSubmitForm(WebKit::WebFrame* frame, 5635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebFormElement& form); 5645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didCreateDataSource(WebKit::WebFrame* frame, 5655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebDataSource* datasource); 5665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didStartProvisionalLoad(WebKit::WebFrame* frame); 5675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didReceiveServerRedirectForProvisionalLoad( 5685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebFrame* frame); 5695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didFailProvisionalLoad(WebKit::WebFrame* frame, 5705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebURLError& error); 5715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didCommitProvisionalLoad(WebKit::WebFrame* frame, 5725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool is_new_navigation); 5735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didClearWindowObject(WebKit::WebFrame* frame); 5745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didCreateDocumentElement(WebKit::WebFrame* frame); 5755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didReceiveTitle(WebKit::WebFrame* frame, 5765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebString& title, 5775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebTextDirection direction); 5785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didChangeIcon(WebKit::WebFrame*, 579eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch WebKit::WebIconURL::Type); 5805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didFinishDocumentLoad(WebKit::WebFrame* frame); 5815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didHandleOnloadEvents(WebKit::WebFrame* frame); 5825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didFailLoad(WebKit::WebFrame* frame, 5835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebURLError& error); 5845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didFinishLoad(WebKit::WebFrame* frame); 5855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didNavigateWithinPage(WebKit::WebFrame* frame, 5865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool is_new_navigation); 5875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didUpdateCurrentHistoryItem(WebKit::WebFrame* frame); 5885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void willSendRequest(WebKit::WebFrame* frame, 5895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) unsigned identifier, 5905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebURLRequest& request, 5915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebURLResponse& redirect_response); 5925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didReceiveResponse(WebKit::WebFrame* frame, 5935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) unsigned identifier, 5945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebURLResponse& response); 5955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didFinishResourceLoad(WebKit::WebFrame* frame, 5965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) unsigned identifier); 5975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didLoadResourceFromMemoryCache( 5985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebFrame* frame, 5995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebURLRequest& request, 6005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebURLResponse&); 6015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didDisplayInsecureContent(WebKit::WebFrame* frame); 6025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didRunInsecureContent( 6035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebFrame* frame, 6045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebSecurityOrigin& origin, 6055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebURL& target); 6065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didExhaustMemoryAvailableForScript(WebKit::WebFrame* frame); 6075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didCreateScriptContext(WebKit::WebFrame* frame, 6085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) v8::Handle<v8::Context>, 6095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int extension_group, 6105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int world_id); 6115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void willReleaseScriptContext(WebKit::WebFrame* frame, 6125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) v8::Handle<v8::Context>, 6135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int world_id); 6145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didChangeScrollOffset(WebKit::WebFrame* frame); 615eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch virtual void willInsertBody(WebKit::WebFrame* frame); 616eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch virtual void didFirstVisuallyNonEmptyLayout(WebKit::WebFrame*); 6175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didChangeContentsSize(WebKit::WebFrame* frame, 6185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebSize& size); 6195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void reportFindInPageMatchCount(int request_id, 6205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int count, 6215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool final_update); 6225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void reportFindInPageSelection(int request_id, 6235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int active_match_ordinal, 6245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebRect& sel); 6255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void requestStorageQuota( 6265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebFrame* frame, 6275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebStorageQuotaType type, 6285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) unsigned long long requested_size, 6295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebStorageQuotaCallbacks* callbacks); 6305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void willOpenSocketStream( 6315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebSocketStreamHandle* handle); 6325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void willStartUsingPeerConnectionHandler(WebKit::WebFrame* frame, 633eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch WebKit::WebRTCPeerConnectionHandler* handler); 6345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool willCheckAndDispatchMessageEvent( 6355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebFrame* sourceFrame, 6365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebFrame* targetFrame, 6375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebSecurityOrigin targetOrigin, 638eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch WebKit::WebDOMMessageEvent event); 639eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch virtual WebKit::WebString acceptLanguages(); 6405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual WebKit::WebString userAgentOverride( 6415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebFrame* frame, 642eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch const WebKit::WebURL& url); 643eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch virtual WebKit::WebString doNotTrackValue(WebKit::WebFrame* frame); 644eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch virtual bool allowWebGL(WebKit::WebFrame* frame, bool default_value); 6452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual void didLoseWebGLContext( 6462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) WebKit::WebFrame* frame, 647eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch int arb_robustness_status_code); 6485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 6495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // WebKit::WebPageSerializerClient implementation ---------------------------- 6505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 6515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didSerializeDataForFrame( 6525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebURL& frame_url, 6535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebCString& data, 6545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PageSerializationStatus status) OVERRIDE; 6555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 6565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // RenderView implementation ------------------------------------------------- 6575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 6585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool Send(IPC::Message* message) OVERRIDE; 6595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual int GetRoutingID() const OVERRIDE; 6605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual int GetPageId() const OVERRIDE; 6615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual gfx::Size GetSize() const OVERRIDE; 662c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) virtual WebPreferences& GetWebkitPreferences() OVERRIDE; 663c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) virtual void SetWebkitPreferences(const WebPreferences& preferences) OVERRIDE; 6645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual WebKit::WebView* GetWebView() OVERRIDE; 6655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual WebKit::WebNode GetFocusedNode() const OVERRIDE; 6665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual WebKit::WebNode GetContextMenuNode() const OVERRIDE; 6675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool IsEditableNode(const WebKit::WebNode& node) const OVERRIDE; 6685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual WebKit::WebPlugin* CreatePlugin( 6695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebFrame* frame, 670ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch const WebPluginInfo& info, 6715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebPluginParams& params) OVERRIDE; 6725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void EvaluateScript(const string16& frame_xpath, 6735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const string16& jscript, 6745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int id, 6755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool notify_result) OVERRIDE; 6765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool ShouldDisplayScrollbars(int width, int height) const OVERRIDE; 6775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual int GetEnabledBindings() const OVERRIDE; 6785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool GetContentStateImmediately() const OVERRIDE; 6795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual float GetFilteredTimePerFrame() const OVERRIDE; 6805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual int ShowContextMenu(ContextMenuClient* client, 6815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const ContextMenuParams& params) OVERRIDE; 6825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void CancelContextMenu(int request_id) OVERRIDE; 6835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual WebKit::WebPageVisibilityState GetVisibilityState() const OVERRIDE; 6845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void RunModalAlertDialog(WebKit::WebFrame* frame, 6855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebString& message) OVERRIDE; 6865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void LoadURLExternally( 6875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebFrame* frame, 6885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebURLRequest& request, 6895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebNavigationPolicy policy) OVERRIDE; 690ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch virtual void DidStartLoading() OVERRIDE; 691ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch virtual void DidStopLoading() OVERRIDE; 6925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void Repaint(const gfx::Size& size) OVERRIDE; 6935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void SetEditCommandForNextKeyEvent(const std::string& name, 6945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& value) OVERRIDE; 6955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void ClearEditCommands() OVERRIDE; 6962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual SSLStatus GetSSLStatusOfFrame(WebKit::WebFrame* frame) const OVERRIDE; 6972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if defined(OS_ANDROID) 69890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) virtual void UpdateTopControlsState(TopControlsState constraints, 69990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) TopControlsState current, 70090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) bool animate) OVERRIDE; 7012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 7025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 7037dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch // WebMediaPlayerDelegate implementation ----------------------- 7045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 7055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void DidPlay(WebKit::WebMediaPlayer* player) OVERRIDE; 7065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void DidPause(WebKit::WebMediaPlayer* player) OVERRIDE; 7075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void PlayerGone(WebKit::WebMediaPlayer* player) OVERRIDE; 7085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 7095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Please do not add your stuff randomly to the end here. If there is an 7105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // appropriate section, add it there. If not, there are some random functions 7115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // nearer to the top you can add it to. 7125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 7135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Cannot use std::set unfortunately since linked_ptr<> does not support 7145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // operator<. 715a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) typedef std::vector<linked_ptr<ImageResourceFetcher> > 7165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ImageResourceFetcherList; 7175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 7185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) protected: 7195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // RenderWidget overrides: 7205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void Close() OVERRIDE; 72190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) virtual void OnResize(const ViewMsg_Resize_Params& params) OVERRIDE; 7225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void WillInitiatePaint() OVERRIDE; 7235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void DidInitiatePaint() OVERRIDE; 7245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void DidFlushPaint() OVERRIDE; 72558e6fbe4ee35d65e14b626c557d37565bf8ad179Ben Murdoch virtual PepperPluginInstanceImpl* GetBitmapForOptimizedPluginPaint( 7265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const gfx::Rect& paint_bounds, 7275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) TransportDIB** dib, 7285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) gfx::Rect* location, 7295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) gfx::Rect* clip, 7305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) float* scale_factor) OVERRIDE; 7315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual gfx::Vector2d GetScrollOffset() OVERRIDE; 7325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void DidHandleKeyEvent() OVERRIDE; 7335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool WillHandleMouseEvent( 7345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebMouseEvent& event) OVERRIDE; 7357d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) virtual bool WillHandleKeyEvent( 7367d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) const WebKit::WebKeyboardEvent& event) OVERRIDE; 7375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool WillHandleGestureEvent( 7385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebGestureEvent& event) OVERRIDE; 7395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void DidHandleMouseEvent(const WebKit::WebMouseEvent& event) OVERRIDE; 7405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void DidHandleTouchEvent(const WebKit::WebTouchEvent& event) OVERRIDE; 7412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual bool HasTouchEventHandlersAt(const gfx::Point& point) const OVERRIDE; 7425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void OnSetFocus(bool enable) OVERRIDE; 7435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void OnWasHidden() OVERRIDE; 7445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void OnWasShown(bool needs_repainting) OVERRIDE; 7452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual GURL GetURLForGraphicsContext3D() OVERRIDE; 7465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool ForceCompositingModeEnabled() OVERRIDE; 7475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void OnImeSetComposition( 7485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const string16& text, 7495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::vector<WebKit::WebCompositionUnderline>& underlines, 7505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int selection_start, 7515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int selection_end) OVERRIDE; 7527dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch virtual void OnImeConfirmComposition(const string16& text, 75358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) const gfx::Range& replacement_range, 7547dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch bool keep_selection) OVERRIDE; 7552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual void SetDeviceScaleFactor(float device_scale_factor) OVERRIDE; 7565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual ui::TextInputType GetTextInputType() OVERRIDE; 7575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void GetSelectionBounds(gfx::Rect* start, gfx::Rect* end) OVERRIDE; 7587dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#if defined(OS_MACOSX) || defined(OS_WIN) || defined(USE_AURA) 7595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void GetCompositionCharacterBounds( 7605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::vector<gfx::Rect>* character_bounds) OVERRIDE; 76158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) virtual void GetCompositionRange(gfx::Range* range) OVERRIDE; 7627dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#endif 7635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool CanComposeInline() OVERRIDE; 7642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual void DidCommitCompositorFrame() OVERRIDE; 7652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual void InstrumentWillBeginFrame() OVERRIDE; 7662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual void InstrumentDidBeginFrame() OVERRIDE; 7672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual void InstrumentDidCancelFrame() OVERRIDE; 7682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual void InstrumentWillComposite() OVERRIDE; 7692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual bool AllowPartialSwap() const OVERRIDE; 7702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 7712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) protected: 7722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) explicit RenderViewImpl(RenderViewImplParams* params); 7732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 7742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void Initialize(RenderViewImplParams* params); 7752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 7762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Do not delete directly. This class is reference counted. 7772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual ~RenderViewImpl(); 7785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 7795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private: 7805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // For unit tests. 7815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) friend class ExternalPopupMenuTest; 7825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) friend class PepperDeviceTest; 7835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) friend class RendererAccessibilityTest; 7845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) friend class RenderViewTest; 7855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 786bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch // TODO(nasko): Temporarily friend RenderFrameImpl, so we don't duplicate 787bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch // utility functions needed in both classes, while we move frame specific 788bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch // code away from this class. 789bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch friend class RenderFrameImpl; 790bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch 7915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(ExternalPopupMenuRemoveTest, RemoveOnChange); 7925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(ExternalPopupMenuTest, NormalCase); 7935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(ExternalPopupMenuTest, ShowPopupThenNavigate); 794eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch FRIEND_TEST_ALL_PREFIXES(RendererAccessibilityTest, 795eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch AccessibilityMessagesQueueWhileSwappedOut); 7965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, DecideNavigationPolicyForWebUI); 7975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, 798c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) DidFailProvisionalLoadWithErrorForError); 799c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, 800c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) DidFailProvisionalLoadWithErrorForCancellation); 801c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, 8025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DontIgnoreBackAfterNavEntryLimit); 8035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, ImeComposition); 8045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, InsertCharacters); 8055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, JSBlockSentAfterPageLoad); 8065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, LastCommittedUpdateState); 8075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, OnExtendSelectionAndDelete); 8085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, OnHandleKeyboardEvent); 8097d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, OnImeTypeChanged); 8105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, OnNavStateChanged); 8115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, OnSetTextDirection); 8125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, OnUpdateWebPreferences); 8135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, SendSwapOutACK); 8142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, ReloadWhileSwappedOut); 8155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, 8165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SetEditableSelectionAndComposition); 8175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, StaleNavigationsIgnored); 8185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, UpdateTargetURLWithInvalidURL); 8195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, 8205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GetCompositionCharacterBoundsTest); 8215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, OnNavigationHttpPost); 8225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_MACOSX) 8235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewTest, MacTestCmdUp); 8245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 8255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, SetHistoryLengthAndPrune); 8265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, ZoomLimit); 8272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, NavigateFrame); 8282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, 8292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ShouldUpdateSelectionTextFromContextMenuParams); 830868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, BasicRenderFrame); 8319ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, TextInputTypeWithPepper); 8325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 8335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) typedef std::map<GURL, double> HostZoomLevels; 8345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 8355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) enum ErrorPageType { 8365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DNS_ERROR, 8375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) HTTP_404, 8385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) CONNECTION_ERROR, 8395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) }; 8405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 841bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch static WebKit::WebReferrerPolicy GetReferrerPolicyFromRequest( 842bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch WebKit::WebFrame* frame, 843bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch const WebKit::WebURLRequest& request); 844bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch 845bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch static Referrer GetReferrerFromRequest( 846bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch WebKit::WebFrame* frame, 847bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch const WebKit::WebURLRequest& request); 848bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch 849bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch static webkit_glue::WebURLResponseExtraDataImpl* GetExtraDataFromResponse( 850bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch const WebKit::WebURLResponse& response); 851bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch 8525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void UpdateURL(WebKit::WebFrame* frame); 8535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void UpdateTitle(WebKit::WebFrame* frame, const string16& title, 8545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebTextDirection title_direction); 8555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void UpdateSessionHistory(WebKit::WebFrame* frame); 8565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void SendUpdateState(const WebKit::WebHistoryItem& item); 8575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 8585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Update current main frame's encoding and send it to browser window. 8595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Since we want to let users see the right encoding info from menu 8605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // before finishing loading, we call the UpdateEncoding in 8615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // a) function:DidCommitLoadForFrame. When this function is called, 8625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // that means we have got first data. In here we try to get encoding 8635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // of page if it has been specified in http header. 8645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // b) function:DidReceiveTitle. When this function is called, 8655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // that means we have got specified title. Because in most of webpages, 8665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // title tags will follow meta tags. In here we try to get encoding of 8675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // page if it has been specified in meta tag. 8685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // c) function:DidFinishDocumentLoadForFrame. When this function is 8695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // called, that means we have got whole html page. In here we should 8705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // finally get right encoding of page. 8715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void UpdateEncoding(WebKit::WebFrame* frame, 8725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& encoding_name); 8735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 8745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OpenURL(WebKit::WebFrame* frame, 8755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const GURL& url, 8765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const Referrer& referrer, 8775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebNavigationPolicy policy); 8785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 8795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool RunJavaScriptMessage(JavaScriptMessageType type, 8805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const string16& message, 8815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const string16& default_value, 8825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const GURL& frame_url, 8835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) string16* result); 8845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 8855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Sends a message and runs a nested message loop. 8865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool SendAndRunNestedMessageLoop(IPC::SyncMessage* message); 8875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 8885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Called when the "pinned to left/right edge" state needs to be updated. 8895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void UpdateScrollState(WebKit::WebFrame* frame); 8905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 8915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // IPC message handlers ------------------------------------------------------ 8925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // 8935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The documentation for these functions should be in 894c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // content/common/*_messages.h for the message that the function is handling. 895c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 896c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void OnCopy(); 897c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void OnCut(); 898c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void OnDelete(); 899c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void OnExecuteEditCommand(const std::string& name, const std::string& value); 900c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void OnMoveCaret(const gfx::Point& point); 901c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void OnPaste(); 902c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void OnPasteAndMatchStyle(); 903c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void OnRedo(); 904c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void OnReplace(const string16& text); 905c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void OnReplaceMisspelling(const string16& text); 906c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void OnScrollFocusedEditableNodeIntoRect(const gfx::Rect& rect); 907c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void OnSelectAll(); 908c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void OnSelectRange(const gfx::Point& start, const gfx::Point& end); 909c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void OnSetEditCommandsForNextKeyEvent(const EditCommands& edit_commands); 910c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void OnUndo(); 911c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void OnUnselect(); 9125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 9132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void OnAllowBindings(int enabled_bindings_flags); 9145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnAllowScriptToClose(bool script_can_close); 9155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnCancelDownload(int32 download_id); 9165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnClearFocusedNode(); 9175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnClosePage(); 9185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnContextMenuClosed(const CustomContextMenuContext& custom_context); 9197d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) void OnShowContextMenu(const gfx::Point& location); 9205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnCopyImageAt(int x, int y); 9215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnCSSInsertRequest(const string16& frame_xpath, 9225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& css); 9235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnCustomContextMenuAction(const CustomContextMenuContext& custom_context, 9245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) unsigned action); 9252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void OnSetName(const std::string& name); 9265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnDeterminePageLanguage(); 9275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnDisableScrollbarsForSmallWindows( 9285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const gfx::Size& disable_scrollbars_size_limit); 9295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnDragSourceEndedOrMoved(const gfx::Point& client_point, 9305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const gfx::Point& screen_point, 9315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool ended, 9325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebDragOperation drag_operation); 9335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnDragSourceSystemDragEnded(); 9345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnDragTargetDrop(const gfx::Point& client_pt, 9355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const gfx::Point& screen_pt, 9365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int key_modifiers); 937eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch void OnDragTargetDragEnter(const DropData& drop_data, 9385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const gfx::Point& client_pt, 9395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const gfx::Point& screen_pt, 9405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebDragOperationsMask operations_allowed, 9415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int key_modifiers); 9425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnDragTargetDragLeave(); 9435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnDragTargetDragOver(const gfx::Point& client_pt, 9445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const gfx::Point& screen_pt, 9455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebDragOperationsMask operations_allowed, 9465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int key_modifiers); 9475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnEnablePreferredSizeChangedMode(); 9485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnEnableAutoResize(const gfx::Size& min_size, const gfx::Size& max_size); 9495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnDisableAutoResize(const gfx::Size& new_size); 9502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void OnEnumerateDirectoryResponse(int id, 9512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const std::vector<base::FilePath>& paths); 9522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void OnExtendSelectionAndDelete(int before, int after); 9535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnFileChooserResponse( 9545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::vector<ui::SelectedFileInfo>& files); 9555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnFind(int request_id, const string16&, const WebKit::WebFindOptions&); 9565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnGetAllSavableResourceLinksForCurrentPage(const GURL& page_url); 9575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnGetSerializedHtmlDataForCurrentPageWithLocalLinks( 9585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::vector<GURL>& links, 9592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const std::vector<base::FilePath>& local_paths, 9602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const base::FilePath& local_directory_name); 9615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnMediaPlayerActionAt(const gfx::Point& location, 9625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebMediaPlayerAction& action); 9635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 9645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Screen has rotated. 0 = default (portrait), 90 = one turn right, and so on. 9655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnOrientationChangeEvent(int orientation); 9665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 9675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnPluginActionAt(const gfx::Point& location, 9685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebPluginAction& action); 9695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnMoveOrResizeStarted(); 9702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void OnNavigate(const ViewMsg_Navigate_Params& params); 9715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnPostMessageEvent(const ViewMsg_PostMessage_Params& params); 9725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnReleaseDisambiguationPopupDIB(TransportDIB::Handle dib_handle); 9735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnReloadFrame(); 9745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnResetPageEncodingToDefault(); 9755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnScriptEvalRequest(const string16& frame_xpath, 9765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const string16& jscript, 9775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int id, 9785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool notify_result); 9792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void OnSetAccessibilityMode(AccessibilityMode new_mode); 9805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnSetActive(bool active); 9815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnSetAltErrorPageURL(const GURL& gurl); 9825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnSetBackground(const SkBitmap& background); 9832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void OnSetCompositionFromExistingText( 9845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int start, int end, 9855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::vector<WebKit::WebCompositionUnderline>& underlines); 986c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void OnExitFullscreen(); 9872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void OnSetEditableSelectionOffsets(int start, int end); 9882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void OnSetHistoryLengthAndPrune(int history_length, int32 minimum_page_id); 9895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnSetInitialFocus(bool reverse); 9905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnSetPageEncoding(const std::string& encoding_name); 9915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnSetRendererPrefs(const RendererPreferences& renderer_prefs); 992c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void OnSetWebUIProperty(const std::string& name, const std::string& value); 9935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnSetZoomLevel(double zoom_level); 9942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void OnSetZoomLevelForLoadingURL(const GURL& url, double zoom_level); 9955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnShouldClose(); 9965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnStop(); 9975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnStopFinding(StopFindAction action); 9987d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) void OnSwapOut(); 9995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnThemeChanged(); 10005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnUpdateTargetURLAck(); 10015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnUpdateTimezone(); 1002c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void OnUpdateWebPreferences(const WebPreferences& prefs); 10035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnZoom(PageZoom zoom); 10055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnZoomFactor(PageZoom zoom, int zoom_center_x, int zoom_center_y); 10065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnEnableViewSourceMode(); 10085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnJavaBridgeInit(); 10105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void OnDisownOpener(); 10125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_ANDROID) 10145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnActivateNearestFindResult(int request_id, float x, float y); 10155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnFindMatchRects(int current_version); 10165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnSelectPopupMenuItems(bool canceled, 10175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::vector<int>& selected_indices); 10185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnUndoScrollFocusedEditableNodeIntoRect(); 1019c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void OnUpdateTopControlsState(bool enable_hiding, 1020c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) bool enable_showing, 1021c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) bool animate); 10225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#elif defined(OS_MACOSX) 10235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnCopyToFindPboard(); 10245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnPluginImeCompositionCompleted(const string16& text, int plugin_id); 10252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void OnSelectPopupMenuItem(int selected_index); 10265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnSetInLiveResize(bool in_live_resize); 10275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnSetWindowVisibility(bool visible); 10285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnWindowFrameChanged(const gfx::Rect& window_frame, 10295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const gfx::Rect& view_frame); 10305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 10315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void OnWindowSnapshotCompleted(const int snapshot_id, 10332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const gfx::Size& size, const std::vector<unsigned char>& png); 10342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 10355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Adding a new message handler? Please add it in alphabetical order above 10375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // and put it in the same position in the .cc file. 10385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Misc private functions ---------------------------------------------------- 10405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void ZoomFactorHelper(PageZoom zoom, int zoom_center_x, int zoom_center_y, 10415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) float scaling_increment); 10425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void AltErrorPageFinished(WebKit::WebFrame* frame, 1044c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const WebKit::WebURLRequest& original_request, 10455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebURLError& original_error, 10465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& html); 10475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Check whether the preferred size has changed. 10495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void CheckPreferredSize(); 10505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 105158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) // Initializes |media_stream_client_|, returning true if successful. Returns 105258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) // false if it wasn't possible to create a MediaStreamClient (e.g., WebRTC is 105358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) // disabled) in which case |media_stream_client_| is NULL. 105458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) bool InitializeMediaStreamClient(); 10555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // This callback is triggered when DownloadFavicon completes, either 10575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // succesfully or with a failure. See DownloadFavicon for more 10585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // details. 1059a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) void DidDownloadFavicon(ImageResourceFetcher* fetcher, 10605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const SkBitmap& image); 10615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Requests to download a favicon image. When done, the RenderView is notified 10635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // by way of DidDownloadFavicon. Returns true if the request was successfully 10645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // started, false otherwise. id is used to uniquely identify the request and 10655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // passed back to the DidDownloadFavicon method. If the image has multiple 10665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // frames, the frame whose size is image_size is returned. If the image 10675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // doesn't have a frame at the specified size, the first is returned. 10685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool DownloadFavicon(int id, const GURL& image_url, int image_size); 10695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GURL GetAlternateErrorPageURL(const GURL& failed_url, 10715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ErrorPageType error_type); 10725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Locates a sub frame with given xpath 10745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebFrame* GetChildFrame(const string16& frame_xpath) const; 10755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Returns the URL being loaded by the given frame's request. 10775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GURL GetLoadingUrl(WebKit::WebFrame* frame) const; 10785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Should only be called if this object wraps a PluginDocument. 10805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebPlugin* GetWebPluginFromPluginDocument(); 10815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Returns true if the |params| navigation is to an entry that has been 10835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // cropped due to a recent navigation the browser did not know about. 10845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool IsBackForwardToStaleEntry(const ViewMsg_Navigate_Params& params, 10855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool is_reload); 10865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool MaybeLoadAlternateErrorPage(WebKit::WebFrame* frame, 10885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebURLError& error, 10895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool replace); 10905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Make this RenderView show an empty, unscriptable page. 10925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void NavigateToSwappedOutURL(WebKit::WebFrame* frame); 10935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // If we initiated a navigation, this function will populate |document_state| 10955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // with the navigation information saved in OnNavigate(). 10965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void PopulateDocumentStateFromPending(DocumentState* document_state); 10975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Returns a new NavigationState populated with the navigation information 10995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // saved in OnNavigate(). 11005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) NavigationState* CreateNavigationStateFromPending(); 11015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 11022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Processes the command-line flags --enable-viewport, 11032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // --enable-fixed-layout[=w,h] and --enable-pinch. 11045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void ProcessViewLayoutFlags(const CommandLine& command_line); 11055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 11065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_ANDROID) 11075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Launch an Android content intent with the given URL. 11085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void LaunchAndroidContentIntent(const GURL& intent_url, size_t request_id); 11095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 11105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 11115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Sends a reply to the current find operation handling if it was a 11125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // synchronous find request. 11135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void SendFindReply(int request_id, 11145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int match_count, 11155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int ordinal, 11165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebRect& selection_rect, 11175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool final_status_update); 11185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 11192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Returns whether |params.selection_text| should be synchronized to the 11202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // browser before bringing up the context menu. Static for testing. 11212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) static bool ShouldUpdateSelectionTextFromContextMenuParams( 11222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const string16& selection_text, 11232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) size_t selection_text_offset, 112458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) const gfx::Range& selection_range, 11252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const ContextMenuParams& params); 11262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 11275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Starts nav_state_sync_timer_ if it isn't already running. 11285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void StartNavStateSyncTimerIfNecessary(); 11295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 11305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Dispatches the current state of selection on the webpage to the browser if 11315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // it has changed. 11325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // TODO(varunjain): delete this method once we figure out how to keep 11335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // selection handles in sync with the webpage. 11345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void SyncSelectionIfRequired(); 11355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 11365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_POSIX) && !defined(OS_MACOSX) 11375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void UpdateFontRenderingFromRendererPrefs(); 11385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else 11395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void UpdateFontRenderingFromRendererPrefs() {} 11405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 11415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 11425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Update the target url and tell the browser that the target URL has changed. 11435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // If |url| is empty, show |fallback_url|. 11445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void UpdateTargetURL(const GURL& url, const GURL& fallback_url); 11455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1146c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // Tells the browser what the new list of favicons for the webpage is. 1147c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void SendUpdateFaviconURL(const std::vector<FaviconURL>& urls); 1148c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 1149c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // Invoked from DidStopLoading(). Sends the current list of loaded favicons to 1150c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // the browser. 1151c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void DidStopLoadingIcons(); 1152c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 11532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Coordinate conversion ----------------------------------------------------- 11542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 11552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) gfx::RectF ClientRectToPhysicalWindowRect(const gfx::RectF& rect) const; 11562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 11575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // --------------------------------------------------------------------------- 11585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // ADDING NEW FUNCTIONS? Please keep private functions alphabetized and put 11595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // it in the same order in the .cc file as it was in the header. 11605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // --------------------------------------------------------------------------- 11615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 11625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Settings ------------------------------------------------------------------ 11635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1164c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) WebPreferences webkit_preferences_; 11655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) RendererPreferences renderer_preferences_; 11665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 11675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) HostZoomLevels host_zoom_levels_; 11685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 11695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Whether content state (such as form state, scroll position and page 11705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // contents) should be sent to the browser immediately. This is normally 11715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // false, but set to true by some tests. 11725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool send_content_state_immediately_; 11735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 11745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Bitwise-ORed set of extra bindings that have been enabled. See 11755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // BindingsPolicy for details. 11765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int enabled_bindings_; 11775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 11785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The alternate error page URL, if one exists. 11795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GURL alternate_error_page_url_; 11805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 11815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // If true, we send IPC messages when |preferred_size_| changes. 11825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool send_preferred_size_changes_; 11835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 11845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // If non-empty, and |send_preferred_size_changes_| is true, disable drawing 11855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // scroll bars on windows smaller than this size. Used for windows that the 11865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // browser resizes to the size of the content, such as browser action popups. 11875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // If a render view is set to the minimum size of its content, webkit may add 11885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // scroll bars. This makes sense for fixed sized windows, but it does not 11895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // make sense when the size of the view was chosen to fit the content. 11905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // This setting ensures that no scroll bars are drawn. The size limit exists 11915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // because if the view grows beyond a size known to the browser, scroll bars 11925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // should be drawn. 11935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) gfx::Size disable_scrollbars_size_limit_; 11945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 11955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Loading state ------------------------------------------------------------- 11965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 11975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // True if the top level frame is currently being loaded. 11985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool is_loading_; 11995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The gesture that initiated the current navigation. 12015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) NavigationGesture navigation_gesture_; 12025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Used for popups. 12045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool opened_by_user_gesture_; 12055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Whether this RenderView was created by a frame that was suppressing its 12075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // opener. If so, we may want to load pages in a separate process. See 12085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // decidePolicyForNavigation for details. 12095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool opener_suppressed_; 12105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Holds state pertaining to a navigation that we initiated. This is held by 12125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // the WebDataSource::ExtraData attribute. We use pending_navigation_state_ 12135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // as a temporary holder for the state until the WebDataSource corresponding 12145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // to the new navigation is created. See DidCreateDataSource. 12155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) scoped_ptr<ViewMsg_Navigate_Params> pending_navigation_params_; 12165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Timer used to delay the updating of nav state (see SyncNavigationState). 12185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) base::OneShotTimer<RenderViewImpl> nav_state_sync_timer_; 12195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Page IDs ------------------------------------------------------------------ 12215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // See documentation in RenderView. 12225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int32 page_id_; 12235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Indicates the ID of the last page that we sent a FrameNavigate to the 12255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // browser for. This is used to determine if the most recent transition 12265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // generated a history entry (less than page_id_), or not (equal to or 12275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // greater than). Note that this will be greater than page_id_ if the user 12285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // goes back. 12295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int32 last_page_id_sent_to_browser_; 12305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The next available page ID to use for this RenderView. These IDs are 12325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // specific to a given RenderView and the frames within it. 12335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int32 next_page_id_; 12345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The offset of the current item in the history list. 12365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int history_list_offset_; 12375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The RenderView's current impression of the history length. This includes 12395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // any items that have committed in this process, but because of cross-process 12405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // navigations, the history may have some entries that were committed in other 12415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // processes. We won't know about them until the next navigation in this 12425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // process. 12435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int history_list_length_; 12445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The list of page IDs for each history item this RenderView knows about. 12465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Some entries may be -1 if they were rendered by other processes or were 12475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // restored from a previous session. This lets us detect attempts to 12485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // navigate to stale entries that have been cropped from our history. 12495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::vector<int32> history_page_ids_; 12505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Page info ----------------------------------------------------------------- 12525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The last gotten main frame's encoding. 12545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::string last_encoding_name_; 12555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // UI state ------------------------------------------------------------------ 12575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The state of our target_url transmissions. When we receive a request to 12595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // send a URL to the browser, we set this to TARGET_INFLIGHT until an ACK 12605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // comes back - if a new request comes in before the ACK, we store the new 12615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // URL in pending_target_url_ and set the status to TARGET_PENDING. If an 12625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // ACK comes back and we are in TARGET_PENDING, we send the stored URL and 12635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // revert to TARGET_INFLIGHT. 12645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // 12655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // We don't need a queue of URLs to send, as only the latest is useful. 12665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) enum { 12675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) TARGET_NONE, 12685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) TARGET_INFLIGHT, // We have a request in-flight, waiting for an ACK 12695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) TARGET_PENDING // INFLIGHT + we have a URL waiting to be sent 12705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } target_url_status_; 12715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The URL we show the user in the status bar. We use this to determine if we 12735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // want to send a new one (we do not need to send duplicates). It will be 12745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // equal to either |mouse_over_url_| or |focus_url_|, depending on which was 12755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // updated last. 12765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GURL target_url_; 12775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The URL the user's mouse is hovering over. 12795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GURL mouse_over_url_; 12805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The URL that has keyboard focus. 12825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GURL focus_url_; 12835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The next target URL we want to send to the browser. 12855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GURL pending_target_url_; 12865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // The text selection the last time DidChangeSelection got called. May contain 12882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // additional characters before and after the selected text, for IMEs. The 12892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // portion of this string that is the actual selected text starts at index 12902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // |selection_range_.GetMin() - selection_text_offset_| and has length 12912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // |selection_range_.length()|. 12925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) string16 selection_text_; 12932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // The offset corresponding to the start of |selection_text_| in the document. 12945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) size_t selection_text_offset_; 12952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Range over the document corresponding to the actual selected text (which 12962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // could correspond to a substring of |selection_text_|; see above). 129758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) gfx::Range selection_range_; 12985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // External context menu requests we're waiting for. "Internal" 13005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // (WebKit-originated) context menu events will have an ID of 0 and will not 13015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // be in this map. 13025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // 13035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // We don't want to add internal ones since some of the "special" page 13045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // handlers in the browser process just ignore the context menu requests so 13055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // avoid showing context menus, and so this will cause right clicks to leak 13065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // entries in this map. Most users of the custom context menu (e.g. Pepper 13075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // plugins) are normally only on "regular" pages and the regular pages will 13085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // always respond properly to the request, so we don't have to worry so 13095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // much about leaks. 13105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IDMap<ContextMenuClient, IDMapExternalPointer> pending_context_menus_; 13115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13127d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#if defined(OS_ANDROID) 13137d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) // Cache the old top controls state constraints. Used when updating 13147d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) // current value only without altering the constraints. 13157d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) cc::TopControlsState top_controls_constraints_; 13167d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#endif 13177d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 13185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // View ---------------------------------------------------------------------- 13195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Cache the preferred size of the page in order to prevent sending the IPC 13215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // when layout() recomputes but doesn't actually change sizes. 13225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) gfx::Size preferred_size_; 13235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Used to delay determining the preferred size (to avoid intermediate 13255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // states for the sizes). 13265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) base::OneShotTimer<RenderViewImpl> check_preferred_size_timer_; 13275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // These store the "is main frame is scrolled all the way to the left 13295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // or right" state that was last sent to the browser. 13305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool cached_is_main_frame_pinned_to_left_; 13315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool cached_is_main_frame_pinned_to_right_; 13325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // These store the "has scrollbars" state last sent to the browser. 13345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool cached_has_main_frame_horizontal_scrollbar_; 13355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool cached_has_main_frame_vertical_scrollbar_; 13365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Helper objects ------------------------------------------------------------ 13385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1339868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) scoped_ptr<RenderFrameImpl> main_render_frame_; 1340868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) 13415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) RendererWebCookieJarImpl cookie_jar_; 13425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The next group of objects all implement RenderViewObserver, so are deleted 13445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // along with the RenderView automatically. This is why we just store 13455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // weak references. 13465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Holds a reference to the service which provides desktop notifications. 13485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) NotificationProvider* notification_provider_; 13495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The geolocation dispatcher attached to this view, lazily initialized. 13515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GeolocationDispatcher* geolocation_dispatcher_; 13525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The speech dispatcher attached to this view, lazily initialized. 13545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) InputTagSpeechDispatcher* input_tag_speech_dispatcher_; 13555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The speech recognition dispatcher attached to this view, lazily 13575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // initialized. 13585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SpeechRecognitionDispatcher* speech_recognition_dispatcher_; 13595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Device orientation dispatcher attached to this view; lazily initialized. 13615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DeviceOrientationDispatcher* device_orientation_dispatcher_; 13625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // MediaStream dispatcher attached to this view; lazily initialized. 13645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MediaStreamDispatcher* media_stream_dispatcher_; 13655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // BrowserPluginManager attached to this view; lazily initialized. 13672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) scoped_refptr<BrowserPluginManager> browser_plugin_manager_; 13682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 13697dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch // MediaStreamClient attached to this view; lazily initialized. 13707dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch MediaStreamClient* media_stream_client_; 13717dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch WebKit::WebUserMediaClient* web_user_media_client_; 13725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 137358e6fbe4ee35d65e14b626c557d37565bf8ad179Ben Murdoch // MIDIClient attached to this view; lazily initialized. 137458e6fbe4ee35d65e14b626c557d37565bf8ad179Ben Murdoch MIDIDispatcher* midi_dispatcher_; 137558e6fbe4ee35d65e14b626c557d37565bf8ad179Ben Murdoch 13765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DevToolsAgent* devtools_agent_; 13775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The current accessibility mode. 13795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AccessibilityMode accessibility_mode_; 13805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Only valid if |accessibility_mode_| is anything other than 13825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // AccessibilityModeOff. 13835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) RendererAccessibility* renderer_accessibility_; 13845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Java Bridge dispatcher attached to this view; lazily initialized. 13865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) JavaBridgeDispatcher* java_bridge_dispatcher_; 13875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Mouse Lock dispatcher attached to this view. 13895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MouseLockDispatcher* mouse_lock_dispatcher_; 13905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_ANDROID) 13925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Android Specific --------------------------------------------------------- 13935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The background color of the document body element. This is used as the 13955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // default background color for filling the screen areas for which we don't 13965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // have the actual content. 13975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SkColor body_background_color_; 13985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Expected id of the next content intent launched. Used to prevent scheduled 14005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // intents to be launched if aborted. 14015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) size_t expected_content_intent_id_; 14025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 14035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // List of click-based content detectors. 14045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) typedef std::vector< linked_ptr<ContentDetector> > ContentDetectorList; 14055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ContentDetectorList content_detectors_; 14065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 14075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Proxy class for WebMediaPlayer to communicate with the real media player 14085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // objects in browser process. 1409eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch WebMediaPlayerProxyAndroid* media_player_proxy_; 14105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 14115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The media player manager for managing all the media players on this view. 14127dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch scoped_ptr<RendererMediaPlayerManager> media_player_manager_; 14135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 14142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // A date/time picker object for date and time related input elements. 14152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) scoped_ptr<RendererDateTimePicker> date_time_picker_client_; 14165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 14175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1418c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // Plugins ------------------------------------------------------------------- 1419c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 1420c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // All the currently active plugin delegates for this RenderView; kept so 1421c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // that we can enumerate them to send updates about things like window 1422c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // location or tab focus and visibily. These are non-owning references. 1423c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) std::set<WebPluginDelegateProxy*> plugin_delegates_; 1424c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 1425c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#if defined(OS_WIN) 1426c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // The ID of the focused NPAPI plug-in. 1427c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) int focused_plugin_id_; 1428c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#endif 1429c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 14303240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch#if defined(ENABLE_PLUGINS) 14313240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch typedef std::set<PepperPluginInstanceImpl*> PepperPluginSet; 14323240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch PepperPluginSet active_pepper_instances_; 14333240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch 14343240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch // Whether or not the focus is on a PPAPI plugin 14353240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch PepperPluginInstanceImpl* focused_pepper_plugin_; 14363240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch 14373240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch // Current text input composition text. Empty if no composition is in 14383240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch // progress. 14393240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch string16 pepper_composition_text_; 14403240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch 14413240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch // The plugin instance that received the last mouse event. It is set to NULL 14423240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch // if the last mouse event went to elements other than Pepper plugins. 14433240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch // |pepper_last_mouse_event_target_| is not owned by this class. We can know 14443240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch // about when it is destroyed via InstanceDeleted(). 14453240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch PepperPluginInstanceImpl* pepper_last_mouse_event_target_; 14463240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch#endif 14473240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch 14485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Misc ---------------------------------------------------------------------- 14495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 14505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The current and pending file chooser completion objects. If the queue is 14515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // nonempty, the first item represents the currently running file chooser 14525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // callback, and the remaining elements are the other file chooser completion 14535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // still waiting to be run (in order). 14545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) struct PendingFileChooser; 14555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::deque< linked_ptr<PendingFileChooser> > file_chooser_completions_; 14565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 14575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The current directory enumeration callback 14585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::map<int, WebKit::WebFileChooserCompletion*> enumeration_completions_; 14595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int enumeration_completion_id_; 14605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 14615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Reports load progress to the browser. 14625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) scoped_ptr<LoadProgressTracker> load_progress_tracker_; 14635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 14645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The SessionStorage namespace that we're assigned to has an ID, and that ID 14655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // is passed to us upon creation. WebKit asks for this ID upon first use and 14665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // uses it whenever asking the browser process to allocate new storage areas. 14675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int64 session_storage_namespace_id_; 14685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 14695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Stores edit commands associated to the next key event. 14705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Shall be cleared as soon as the next key event is processed. 14715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EditCommands edit_commands_; 14725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 14735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The external popup for the currently showing select popup. 14745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) scoped_ptr<ExternalPopupMenu> external_popup_menu_; 14755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 14765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The node that the context menu was pressed over. 14775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebNode context_menu_node_; 14785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 14795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // All the registered observers. We expect this list to be small, so vector 14805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // is fine. 14815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ObserverList<RenderViewObserver> observers_; 14825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 14835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Used to inform didChangeSelection() when it is called in the context 1484c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // of handling a InputMsg_SelectRange IPC. 14855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool handling_select_range_; 14865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 14875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Wraps the |webwidget_| as a MouseLockDispatcher::LockTarget interface. 14885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) scoped_ptr<MouseLockDispatcher::LockTarget> webwidget_mouse_lock_target_; 14895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 14902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // State associated with the GetWindowSnapshot function. 14912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int next_snapshot_id_; 14923240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch typedef std::map<int, WindowSnapshotCallback> PendingSnapshotMap; 14932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PendingSnapshotMap pending_snapshots_; 14942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1495c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // Allows to selectively disable partial buffer swap for this renderer's 1496c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // compositor. 14972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) bool allow_partial_swap_; 14982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 14995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Allows JS to access DOM automation. The JS object is only exposed when the 15005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // DOM automation bindings are enabled. 15015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) scoped_ptr<DomAutomationController> dom_automation_controller_; 15025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 150358e6fbe4ee35d65e14b626c557d37565bf8ad179Ben Murdoch // Allows JS to read out a variety of internal various metrics. The JS object 150458e6fbe4ee35d65e14b626c557d37565bf8ad179Ben Murdoch // is only exposed when the stats collection bindings are enabled. 150558e6fbe4ee35d65e14b626c557d37565bf8ad179Ben Murdoch scoped_ptr<StatsCollectionController> stats_collection_controller_; 1506868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) 15075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // This field stores drag/drop related info for the event that is currently 15085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // being handled. If the current event results in starting a drag/drop 15095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // session, this info is sent to the browser along with other drag/drop info. 15105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DragEventSourceInfo possible_drag_event_info_; 15115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 15123240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch // NOTE: stats_collection_observer_ should be the last members because their 15133240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch // constructors call the AddObservers method of RenderViewImpl. 1514868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) scoped_ptr<StatsCollectionObserver> stats_collection_observer_; 15152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1516eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch ui::MenuSourceType context_menu_source_type_; 15177d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) gfx::Point touch_editing_context_menu_location_; 15187d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 15195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // --------------------------------------------------------------------------- 15205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // ADDING NEW DATA? Please see if it fits appropriately in one of the above 15215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // sections rather than throwing it randomly at the end. If you're adding a 15225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // bunch of stuff, you should probably create a helper class and put your 15235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // data and methods on that to avoid bloating RenderView more. You can 15245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // use the Observer interface to filter IPC messages and receive frame change 15255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // notifications. 15265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // --------------------------------------------------------------------------- 15275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 15285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(RenderViewImpl); 15295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 15305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 15315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace content 15325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 15335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif // CONTENT_RENDERER_RENDER_VIEW_IMPL_H_ 1534