render_view_impl.h revision a02191e04bc25c4935f804f2c080ae28663d096d
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/page_zoom.h" 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/public/common/referrer.h" 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/public/common/renderer_preferences.h" 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/public/common/stop_find_action.h" 3590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)#include "content/public/common/top_controls_state.h" 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/public/renderer/render_view.h" 377dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "content/renderer/media/webmediaplayer_delegate.h" 382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "content/renderer/mouse_lock_dispatcher.h" 39868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "content/renderer/render_frame_impl.h" 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/renderer/render_widget.h" 41a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)#include "content/renderer/renderer_date_time_picker.h" 42868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "content/renderer/stats_collection_observer.h" 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ipc/ipc_platform_file.h" 44868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "third_party/WebKit/public/platform/WebGraphicsContext3D.h" 4558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)#include "third_party/WebKit/public/web/WebAXObject.h" 467d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include "third_party/WebKit/public/web/WebConsoleMessage.h" 477d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include "third_party/WebKit/public/web/WebDataSource.h" 48a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#include "third_party/WebKit/public/web/WebElement.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" 59a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#include "ui/base/window_open_disposition.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 PepperDeviceTest; 765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class SkBitmap; 775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct PP_NetAddress_Private; 785d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)struct FrameMsg_Navigate_Params; 795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct ViewMsg_PostMessage_Params; 805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct ViewMsg_StopFinding_Params; 815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 82a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)namespace base { 83a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)class CommandLine; 84a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)} 85a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace ui { 875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct SelectedFileInfo; 885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace ui 895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 90f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)namespace blink { 915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class WebApplicationCacheHost; 925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class WebApplicationCacheHostClient; 935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class WebDOMMessageEvent; 945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class WebDataSource; 952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class WebDateTimeChooserCompletion; 965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class WebDragData; 975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class WebGeolocationClient; 985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class WebGestureEvent; 995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class WebIconURL; 1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class WebImage; 1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class WebPeerConnection00Handler; 1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class WebPeerConnection00HandlerClient; 1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class WebMediaPlayer; 1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class WebMediaPlayerClient; 1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class WebMouseEvent; 1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class WebPeerConnectionHandler; 1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class WebPeerConnectionHandlerClient; 1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class WebSocketStreamHandle; 1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class WebSpeechInputController; 1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class WebSpeechInputListener; 1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class WebSpeechRecognizer; 1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class WebStorageNamespace; 1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class WebTouchEvent; 1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class WebURLRequest; 1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class WebUserMediaClient; 1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct WebActiveWheelFlingParameters; 1172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)struct WebDateTimeChooserParams; 1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct WebFileChooserParams; 1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct WebFindOptions; 1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct WebMediaPlayerAction; 1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct WebPluginAction; 1225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct WebPoint; 1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct WebWindowFeatures; 1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_ANDROID) 1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class WebHitTestResult; 1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 130bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdochnamespace webkit_glue { 131bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdochclass WebURLResponseExtraDataImpl; 132bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch} 133bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch 1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace content { 1352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class BrowserPluginManager; 1365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class DeviceOrientationDispatcher; 1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class DevToolsAgent; 1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class DocumentState; 1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class ExternalPopupMenu; 1402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class FaviconHelper; 1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class GeolocationDispatcher; 142a02191e04bc25c4935f804f2c080ae28663d096dBen Murdochclass HistoryController; 143a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)class ImageResourceFetcher; 1445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class InputTagSpeechDispatcher; 1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class LoadProgressTracker; 1465d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)class MidiDispatcher; 1477dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochclass MediaStreamClient; 1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class MediaStreamDispatcher; 1495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class MouseLockDispatcher; 1505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class NavigationState; 1515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class NotificationProvider; 15258e6fbe4ee35d65e14b626c557d37565bf8ad179Ben Murdochclass PepperPluginInstanceImpl; 153c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdochclass PushMessagingDispatcher; 1545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class RenderViewObserver; 1555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class RenderViewTest; 1565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class RendererAccessibility; 1572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class RendererDateTimePicker; 1585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class RendererWebColorChooserImpl; 1595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class SpeechRecognitionDispatcher; 1605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class WebPluginDelegateProxy; 161eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochstruct DropData; 162c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)struct FaviconURL; 1635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct FileChooserParams; 1642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)struct RenderViewImplParams; 1655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_ANDROID) 1677dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochclass RendererMediaPlayerManager; 168eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochclass WebMediaPlayerProxyAndroid; 1695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 1705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// 1725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// RenderView is an object that manages a WebView object, and provides a 1735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// communication interface with an embedding application process 1745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// 1752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class CONTENT_EXPORT RenderViewImpl 1762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) : public RenderWidget, 177f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) NON_EXPORTED_BASE(public blink::WebViewClient), 178f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) NON_EXPORTED_BASE(public blink::WebFrameClient), 179f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) NON_EXPORTED_BASE(public blink::WebPageSerializerClient), 1802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) public RenderView, 1817dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch NON_EXPORTED_BASE(public WebMediaPlayerDelegate), 1822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) public base::SupportsWeakPtr<RenderViewImpl> { 1835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 184d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) // Creates a new RenderView. |opener_id| is the routing ID of the RenderView 185d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) // responsible for creating this RenderView. 186a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) static RenderViewImpl* Create(int32 opener_id, 187a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) const RendererPreferences& renderer_prefs, 188a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) const WebPreferences& webkit_prefs, 189a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) int32 routing_id, 190a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) int32 main_frame_routing_id, 191a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) int32 surface_id, 192a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) int64 session_storage_namespace_id, 193a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) const base::string16& frame_name, 194a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) bool is_renderer_created, 195a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) bool swapped_out, 196a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) bool hidden, 197a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) int32 next_page_id, 198a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) const blink::WebScreenInfo& screen_info, 199effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch AccessibilityMode accessibility_mode); 2005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Used by content_layouttest_support to hook into the creation of 2022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // RenderViewImpls. 2032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) static void InstallCreateHook( 2042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) RenderViewImpl* (*create_render_view_impl)(RenderViewImplParams*)); 2055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Returns the RenderViewImpl containing the given WebView. 207f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) static RenderViewImpl* FromWebView(blink::WebView* webview); 2085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Returns the RenderViewImpl for the given routing ID. 2102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) static RenderViewImpl* FromRoutingID(int routing_id); 2115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // May return NULL when the view is closing. 213f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) blink::WebView* webview() const; 2145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int history_list_offset() const { return history_list_offset_; } 2165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 217c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const WebPreferences& webkit_preferences() const { 2185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return webkit_preferences_; 2195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 2205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 221a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) const RendererPreferences& renderer_preferences() const { 222a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) return renderer_preferences_; 223a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) } 224a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (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) 229a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) RenderFrameImpl* main_render_frame() { return main_render_frame_.get(); } 230a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 2315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MediaStreamDispatcher* media_stream_dispatcher() { 2325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return media_stream_dispatcher_; 2335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 2345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 235effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch AccessibilityMode accessibility_mode() { 236effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch return accessibility_mode_; 237effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch } 238effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 239a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) RendererAccessibility* renderer_accessibility() { 240a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) return renderer_accessibility_; 241a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) } 242a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 2435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MouseLockDispatcher* mouse_lock_dispatcher() { 2445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return mouse_lock_dispatcher_; 2455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 2465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 247a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch HistoryController* history_controller() { 248a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch return history_controller_.get(); 249a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch } 250a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 2512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Lazily initialize this view's BrowserPluginManager and return it. 252c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) BrowserPluginManager* GetBrowserPluginManager(); 2532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 2545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Functions to add and remove observers for this object. 2555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void AddObserver(RenderViewObserver* observer); 2565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void RemoveObserver(RenderViewObserver* observer); 2575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 258868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) // Returns the StatsCollectionObserver associated with this view, or NULL 259868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) // if one wasn't created; 260868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) StatsCollectionObserver* GetStatsCollectionObserver() { 261868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) return stats_collection_observer_.get(); 262868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) } 263868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) 2645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Adds the given file chooser request to the file_chooser_completion_ queue 2655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // (see that var for more) and requests the chooser be displayed if there are 2665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // no other waiting items in the queue. 2675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // 2685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Returns true if the chooser was successfully scheduled. False means we 2695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // didn't schedule anything. 2705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool ScheduleFileChooser(const FileChooserParams& params, 271f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) blink::WebFileChooserCompletion* completion); 2725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void LoadNavigationErrorPage( 274f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) blink::WebFrame* frame, 275f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) const blink::WebURLRequest& failed_request, 276f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) const blink::WebURLError& error, 2775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool replace); 2785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 279a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)#if defined(OS_ANDROID) 280a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) void DismissDateTimeDialog(); 281a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)#endif 282effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch#if defined(OS_MACOSX) || defined(OS_ANDROID) 283effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch void DidHideExternalPopupMenu(); 284effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch#endif 285effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 286effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch bool is_loading() const { return frames_in_progress_ != 0; } 287effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 288effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch void FrameDidStartLoading(blink::WebFrame* frame); 289effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch void FrameDidStopLoading(blink::WebFrame* frame); 290effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 291effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch void FrameDidChangeLoadProgress(blink::WebFrame* frame, 292effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch double load_progress); 293c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch void FrameDidCommitProvisionalLoad(blink::WebLocalFrame* frame, 294c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch bool is_new_navigation); 295a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 2965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Plugin-related functions -------------------------------------------------- 2975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2983240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch#if defined(ENABLE_PLUGINS) 29923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) // Get/set the plugin which will be used as to handle document find requests. 30023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) void set_plugin_find_handler(PepperPluginInstanceImpl* plugin) { 30123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) plugin_find_handler_ = plugin; 30223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) } 30323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) PepperPluginInstanceImpl* plugin_find_handler() { 30423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) return plugin_find_handler_; 30523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) } 30623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 307a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) PepperPluginInstanceImpl* focused_pepper_plugin() { 308a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) return focused_pepper_plugin_; 309a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) } 310a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) PepperPluginInstanceImpl* pepper_last_mouse_event_target() { 311a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) return pepper_last_mouse_event_target_; 312a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) } 313a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) void set_pepper_last_mouse_event_target(PepperPluginInstanceImpl* plugin) { 314a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) pepper_last_mouse_event_target_ = plugin; 315a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) } 3165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_MACOSX) || defined(OS_WIN) 3185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Informs the render view that the given plugin has gained or lost focus. 3195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void PluginFocusChanged(bool focused, int plugin_id); 3205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 3215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_MACOSX) 3235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Starts plugin IME. 3245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void StartPluginIme(); 3255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 3265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3275d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) // Indicates that the given instance has been created. 3285d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) void PepperInstanceCreated(PepperPluginInstanceImpl* instance); 3295d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 3305d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) // Indicates that the given instance is being destroyed. This is called from 3315d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) // the destructor, so it's important that the instance is not dereferenced 3325d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) // from this call. 3335d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) void PepperInstanceDeleted(PepperPluginInstanceImpl* instance); 3345d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 3355d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) // Notification that the given plugin is focused or unfocused. 3365d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) void PepperFocusChanged(PepperPluginInstanceImpl* instance, bool focused); 3375d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 3385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void RegisterPluginDelegate(WebPluginDelegateProxy* delegate); 3395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void UnregisterPluginDelegate(WebPluginDelegateProxy* delegate); 340bb1529ce867d8845a77ec7cdf3e3003ef1771a40Ben Murdoch#endif // ENABLE_PLUGINS 341bb1529ce867d8845a77ec7cdf3e3003ef1771a40Ben Murdoch 3425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void TransferActiveWheelFlingAnimation( 343f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) const blink::WebActiveWheelFlingParameters& params); 3445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Returns true if the focused element is editable text from the perspective 3465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // of IME support (also used for on-screen keyboard). Works correctly inside 3475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // supported PPAPI plug-ins. 3485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool HasIMETextFocus(); 3495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Callback for use with GetWindowSnapshot. 3512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) typedef base::Callback<void( 3522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const gfx::Size&, const std::vector<unsigned char>&)> 3532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) WindowSnapshotCallback; 3542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 3552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void GetWindowSnapshot(const WindowSnapshotCallback& callback); 3562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 3572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Dispatches the current navigation state to the browser. Called on a 3582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // periodic timer so we don't send too many messages. 3592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void SyncNavigationState(); 3602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 361a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) // Temporary call until all this media code moves to RenderFrame. 362a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) // TODO(jam): remove me 363c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch blink::WebMediaPlayer* CreateMediaPlayer(RenderFrame* render_frame, 364c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch blink::WebLocalFrame* frame, 365c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch const blink::WebURL& url, 366c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch blink::WebMediaPlayerClient* client); 3672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Returns the length of the session history of this RenderView. Note that 3682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // this only coincides with the actual length of the session history if this 3692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // RenderView is the currently active RenderView of a WebContents. 3702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) unsigned GetLocalSessionHistoryLengthForTesting() const; 3712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 3722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Invokes OnSetFocus and marks the widget as active depending on the value 3732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // of |enable|. This is used for layout tests that need to control the focus 3742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // synchronously from the renderer. 3752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void SetFocusAndActivateForTesting(bool enable); 3762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 3772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Change the device scale factor and force the compositor to resize. 3782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void SetDeviceScaleFactorForTesting(float factor); 3792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 3801e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) // Used to force the size of a window when running layout tests. 3811e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) void ForceResizeForTesting(const gfx::Size& new_size); 3821e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) 3831e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) void UseSynchronousResizeModeForTesting(bool enable); 3841e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) 38590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) // Control autoresize mode. 38690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) void EnableAutoResizeForTesting(const gfx::Size& min_size, 38790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) const gfx::Size& max_size); 38890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) void DisableAutoResizeForTesting(const gfx::Size& new_size); 38990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 3907dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch // Overrides the MediaStreamClient used when creating MediaStream players. 3917dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch // Must be called before any players are created. 3927dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch void SetMediaStreamClientForTesting(MediaStreamClient* media_stream_client); 3937dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 3945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // IPC::Listener implementation ---------------------------------------------- 3955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool OnMessageReceived(const IPC::Message& msg) OVERRIDE; 3975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 398f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) // blink::WebWidgetClient implementation ------------------------------------ 3995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Most methods are handled by RenderWidget. 4015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didFocus(); 4025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didBlur(); 403f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual void show(blink::WebNavigationPolicy policy); 4045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void runModal(); 4055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool enterFullScreen(); 4065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void exitFullScreen(); 4075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool requestPointerLock(); 4085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void requestPointerUnlock(); 4095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool isPointerLocked(); 410a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) // FIXME: To be removed as soon as chromium and blink side changes land 411a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) // didActivateCompositor with parameters is still kept in order to land 412a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) // these changes s-chromium - https://codereview.chromium.org/137893025/. 413a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) // s-blink - https://codereview.chromium.org/138523003/ 4145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didActivateCompositor(int input_handler_identifier); 415a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) virtual void didActivateCompositor() OVERRIDE; 416f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual void didHandleGestureEvent(const blink::WebGestureEvent& event, 4172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) bool event_cancelled) OVERRIDE; 418a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch virtual void initializeLayerTreeView() OVERRIDE; 4195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 420f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) // blink::WebViewClient implementation -------------------------------------- 421f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 422c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch virtual blink::WebView* createView(blink::WebLocalFrame* creator, 423c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch const blink::WebURLRequest& request, 424c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch const blink::WebWindowFeatures& features, 425c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch const blink::WebString& frame_name, 426c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch blink::WebNavigationPolicy policy, 427c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch bool suppress_opener); 428f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual blink::WebWidget* createPopupMenu(blink::WebPopupType popup_type); 429f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual blink::WebExternalPopupMenu* createExternalPopupMenu( 430f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) const blink::WebPopupMenuInfo& popup_menu_info, 431f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) blink::WebExternalPopupMenuClient* popup_menu_client); 432f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual blink::WebStorageNamespace* createSessionStorageNamespace(); 433c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch virtual void printPage(blink::WebLocalFrame* frame); 434f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual blink::WebNotificationPresenter* notificationPresenter(); 4355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool enumerateChosenDirectory( 436f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) const blink::WebString& path, 437f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) blink::WebFileChooserCompletion* chooser_completion); 4382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual void didCancelCompositionOnSelectionChange(); 439f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual void didExecuteCommand(const blink::WebString& command_name); 4405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool handleCurrentKeyboardEvent(); 4415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool runFileChooser( 442f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) const blink::WebFileChooserParams& params, 443f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) blink::WebFileChooserCompletion* chooser_completion); 4445d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) virtual void showValidationMessage(const blink::WebRect& anchor_in_root_view, 4455d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) const blink::WebString& main_text, 4465d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) const blink::WebString& sub_text, 4475d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) blink::WebTextDirection hint) OVERRIDE; 4485d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) virtual void hideValidationMessage() OVERRIDE; 4495d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) virtual void moveValidationMessage( 4505d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) const blink::WebRect& anchor_in_root_view) OVERRIDE; 451f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual void setStatusText(const blink::WebString& text); 452f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual void setMouseOverURL(const blink::WebURL& url); 453f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual void setKeyboardFocusURL(const blink::WebURL& url); 454c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch virtual void startDragging(blink::WebLocalFrame* frame, 455f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) const blink::WebDragData& data, 456f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) blink::WebDragOperationsMask mask, 457f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) const blink::WebImage& image, 458f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) const blink::WebPoint& imageOffset); 4595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool acceptsLoadDrops(); 4605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void focusNext(); 4615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void focusPrevious(); 462f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual void focusedNodeChanged(const blink::WebNode& node); 4635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void numberOfWheelEventHandlersChanged(unsigned num_handlers); 4645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didUpdateLayout(); 4655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_ANDROID) 4665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool didTapMultipleTargets( 467f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) const blink::WebGestureEvent& event, 468f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) const blink::WebVector<blink::WebRect>& target_rects); 4695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 4705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void navigateBackForwardSoon(int offset); 4715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual int historyBackListCount(); 4725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual int historyForwardListCount(); 47358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) virtual void postAccessibilityEvent( 474f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) const blink::WebAXObject& obj, blink::WebAXEvent event); 475f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual void didUpdateInspectorSetting(const blink::WebString& key, 476f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) const blink::WebString& value); 477f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual blink::WebGeolocationClient* geolocationClient(); 478f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual blink::WebSpeechInputController* speechInputController( 479f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) blink::WebSpeechInputListener* listener); 480f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual blink::WebSpeechRecognizer* speechRecognizer(); 4815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void zoomLimitsChanged(double minimum_level, double maximum_level); 4825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void zoomLevelChanged(); 48358e6fbe4ee35d65e14b626c557d37565bf8ad179Ben Murdoch virtual double zoomLevelToZoomFactor(double zoom_level) const; 48458e6fbe4ee35d65e14b626c557d37565bf8ad179Ben Murdoch virtual double zoomFactorToZoomLevel(double factor) const; 485f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual void registerProtocolHandler(const blink::WebString& scheme, 4865d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) const blink::WebURL& base_url, 4875d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) const blink::WebURL& url, 488f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) const blink::WebString& title); 489f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual blink::WebPageVisibilityState visibilityState() const; 490f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual blink::WebUserMediaClient* userMediaClient(); 491f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual blink::WebMIDIClient* webMIDIClient(); 492c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch virtual blink::WebPushClient* webPushClient(); 4935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void draggableRegionsChanged(); 4945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_ANDROID) 496f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual void scheduleContentIntent(const blink::WebURL& intent); 4975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void cancelScheduledContentIntents(); 498f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual blink::WebContentDetectionResult detectContentAround( 499f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) const blink::WebHitTestResult& touch_hit); 5002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 5012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Only used on Android since all other platforms implement 5022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // date and time input fields using MULTIPLE_FIELDS_UI 503f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual bool openDateTimeChooser(const blink::WebDateTimeChooserParams&, 504f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) blink::WebDateTimeChooserCompletion*); 505f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual void didScrollWithKeyboard(const blink::WebSize& delta); 5065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 5075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 508f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) // blink::WebFrameClient implementation ------------------------------------- 509f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 510c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch virtual void didAccessInitialDocument(blink::WebLocalFrame* frame); 511c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch virtual void didDisownOpener(blink::WebLocalFrame* frame); 512f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual void frameDetached(blink::WebFrame* frame); 513f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual void willClose(blink::WebFrame* frame); 5144e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) virtual void didMatchCSS( 515c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch blink::WebLocalFrame* frame, 516f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) const blink::WebVector<blink::WebString>& newly_matching_selectors, 517f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) const blink::WebVector<blink::WebString>& stopped_matching_selectors); 518c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch virtual void willSendSubmitEvent(blink::WebLocalFrame* frame, 519f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) const blink::WebFormElement& form); 520c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch virtual void willSubmitForm(blink::WebLocalFrame* frame, 521f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) const blink::WebFormElement& form); 522c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch virtual void didCreateDataSource(blink::WebLocalFrame* frame, 523f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) blink::WebDataSource* datasource); 524c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch virtual void didFailProvisionalLoad(blink::WebLocalFrame* frame, 525f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) const blink::WebURLError& error); 526c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch virtual void didClearWindowObject(blink::WebLocalFrame* frame, int world_id); 527c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch virtual void didCreateDocumentElement(blink::WebLocalFrame* frame); 528c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch virtual void didReceiveTitle(blink::WebLocalFrame* frame, 529f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) const blink::WebString& title, 530f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) blink::WebTextDirection direction); 531c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch virtual void didChangeIcon(blink::WebLocalFrame*, blink::WebIconURL::Type); 532c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch virtual void didFinishDocumentLoad(blink::WebLocalFrame* frame); 533c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch virtual void didHandleOnloadEvents(blink::WebLocalFrame* frame); 534c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch virtual void didFailLoad(blink::WebLocalFrame* frame, 535f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) const blink::WebURLError& error); 536c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch virtual void didFinishLoad(blink::WebLocalFrame* frame); 537c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch virtual void didUpdateCurrentHistoryItem(blink::WebLocalFrame* frame); 538c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch virtual void didFinishResourceLoad(blink::WebLocalFrame* frame, 5395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) unsigned identifier); 540c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch virtual void didChangeScrollOffset(blink::WebLocalFrame* frame); 541c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch virtual void didFirstVisuallyNonEmptyLayout(blink::WebLocalFrame*); 542c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch virtual void didChangeContentsSize(blink::WebLocalFrame* frame, 543f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) const blink::WebSize& size); 5445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool willCheckAndDispatchMessageEvent( 545c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch blink::WebLocalFrame* sourceFrame, 546f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) blink::WebFrame* targetFrame, 547f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) blink::WebSecurityOrigin targetOrigin, 548f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) blink::WebDOMMessageEvent event); 549f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual blink::WebString acceptLanguages(); 5505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 551f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) // blink::WebPageSerializerClient implementation ---------------------------- 5525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 5535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didSerializeDataForFrame( 554f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) const blink::WebURL& frame_url, 555f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) const blink::WebCString& data, 5565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PageSerializationStatus status) OVERRIDE; 5575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 5585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // RenderView implementation ------------------------------------------------- 5595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 5605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool Send(IPC::Message* message) OVERRIDE; 561a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) virtual RenderFrame* GetMainRenderFrame() OVERRIDE; 5625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual int GetRoutingID() const OVERRIDE; 5635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual int GetPageId() const OVERRIDE; 5645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual gfx::Size GetSize() const OVERRIDE; 565c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) virtual WebPreferences& GetWebkitPreferences() OVERRIDE; 566c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) virtual void SetWebkitPreferences(const WebPreferences& preferences) OVERRIDE; 567f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual blink::WebView* GetWebView() OVERRIDE; 568a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) virtual blink::WebElement GetFocusedElement() const OVERRIDE; 569f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual bool IsEditableNode(const blink::WebNode& node) const OVERRIDE; 5705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool ShouldDisplayScrollbars(int width, int height) const OVERRIDE; 5715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual int GetEnabledBindings() const OVERRIDE; 5725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool GetContentStateImmediately() const OVERRIDE; 5735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual float GetFilteredTimePerFrame() const OVERRIDE; 574f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual blink::WebPageVisibilityState GetVisibilityState() const OVERRIDE; 575ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch virtual void DidStartLoading() OVERRIDE; 576ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch virtual void DidStopLoading() OVERRIDE; 5775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void Repaint(const gfx::Size& size) OVERRIDE; 5785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void SetEditCommandForNextKeyEvent(const std::string& name, 5795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& value) OVERRIDE; 5805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void ClearEditCommands() OVERRIDE; 581f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual SSLStatus GetSSLStatusOfFrame(blink::WebFrame* frame) const OVERRIDE; 5824e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) virtual const std::string& GetAcceptLanguages() const OVERRIDE; 5832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if defined(OS_ANDROID) 58490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) virtual void UpdateTopControlsState(TopControlsState constraints, 58590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) TopControlsState current, 58690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) bool animate) OVERRIDE; 5872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 5885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 5897dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch // WebMediaPlayerDelegate implementation ----------------------- 5905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 591f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual void DidPlay(blink::WebMediaPlayer* player) OVERRIDE; 592f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual void DidPause(blink::WebMediaPlayer* player) OVERRIDE; 593f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual void PlayerGone(blink::WebMediaPlayer* player) OVERRIDE; 5945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 5955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Please do not add your stuff randomly to the end here. If there is an 5965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // appropriate section, add it there. If not, there are some random functions 5975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // nearer to the top you can add it to. 5985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 5995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Cannot use std::set unfortunately since linked_ptr<> does not support 6005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // operator<. 601a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) typedef std::vector<linked_ptr<ImageResourceFetcher> > 6025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ImageResourceFetcherList; 6035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 6045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) protected: 6055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // RenderWidget overrides: 6065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void Close() OVERRIDE; 60790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) virtual void OnResize(const ViewMsg_Resize_Params& params) OVERRIDE; 6085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void DidInitiatePaint() OVERRIDE; 6095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void DidFlushPaint() OVERRIDE; 6105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual gfx::Vector2d GetScrollOffset() OVERRIDE; 6115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void DidHandleKeyEvent() OVERRIDE; 612a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) virtual void WillProcessUserGesture() OVERRIDE; 6135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool WillHandleMouseEvent( 614f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) const blink::WebMouseEvent& event) OVERRIDE; 6155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool WillHandleGestureEvent( 616f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) const blink::WebGestureEvent& event) OVERRIDE; 617f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual void DidHandleMouseEvent(const blink::WebMouseEvent& event) OVERRIDE; 618f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual void DidHandleTouchEvent(const blink::WebTouchEvent& event) OVERRIDE; 6192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual bool HasTouchEventHandlersAt(const gfx::Point& point) const OVERRIDE; 6205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void OnSetFocus(bool enable) OVERRIDE; 6215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void OnWasHidden() OVERRIDE; 6225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void OnWasShown(bool needs_repainting) OVERRIDE; 6232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual GURL GetURLForGraphicsContext3D() OVERRIDE; 6245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool ForceCompositingModeEnabled() OVERRIDE; 6255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void OnImeSetComposition( 626a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) const base::string16& text, 627f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) const std::vector<blink::WebCompositionUnderline>& underlines, 6285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int selection_start, 6295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int selection_end) OVERRIDE; 630a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) virtual void OnImeConfirmComposition(const base::string16& text, 63158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) const gfx::Range& replacement_range, 6327dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch bool keep_selection) OVERRIDE; 6332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual void SetDeviceScaleFactor(float device_scale_factor) OVERRIDE; 6345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual ui::TextInputType GetTextInputType() OVERRIDE; 6355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void GetSelectionBounds(gfx::Rect* start, gfx::Rect* end) OVERRIDE; 636a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch#if defined(OS_MACOSX) || defined(USE_AURA) 6375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void GetCompositionCharacterBounds( 6385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::vector<gfx::Rect>* character_bounds) OVERRIDE; 63958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) virtual void GetCompositionRange(gfx::Range* range) OVERRIDE; 6407dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#endif 6415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool CanComposeInline() OVERRIDE; 6422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual void DidCommitCompositorFrame() OVERRIDE; 643f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual void InstrumentWillBeginFrame(int frame_id) OVERRIDE; 6442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual void InstrumentDidBeginFrame() OVERRIDE; 6452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual void InstrumentDidCancelFrame() OVERRIDE; 6462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual void InstrumentWillComposite() OVERRIDE; 647a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#if defined(OS_ANDROID) 648a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) virtual void UpdateSelectionRootBounds() OVERRIDE; 649a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#endif 6502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 6512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) protected: 6522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) explicit RenderViewImpl(RenderViewImplParams* params); 6532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 654a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch void Initialize( 655a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch RenderViewImplParams* params, 656a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch RenderFrameImpl* main_render_frame); 6574e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) virtual void SetScreenMetricsEmulationParameters( 658f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) float device_scale_factor, 659f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) const gfx::Point& root_layer_offset, 660f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) float root_layer_scale) OVERRIDE; 6612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 6622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Do not delete directly. This class is reference counted. 6632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual ~RenderViewImpl(); 6645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 6655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private: 6665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // For unit tests. 6675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) friend class ExternalPopupMenuTest; 6685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) friend class PepperDeviceTest; 6695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) friend class RendererAccessibilityTest; 6705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) friend class RenderViewTest; 6715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 672bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch // TODO(nasko): Temporarily friend RenderFrameImpl, so we don't duplicate 673bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch // utility functions needed in both classes, while we move frame specific 674bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch // code away from this class. 675bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch friend class RenderFrameImpl; 676bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch 6775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(ExternalPopupMenuRemoveTest, RemoveOnChange); 6785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(ExternalPopupMenuTest, NormalCase); 6795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(ExternalPopupMenuTest, ShowPopupThenNavigate); 6805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, DecideNavigationPolicyForWebUI); 6815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, 682c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) DidFailProvisionalLoadWithErrorForError); 683c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, 684c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) DidFailProvisionalLoadWithErrorForCancellation); 685c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, 6865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DontIgnoreBackAfterNavEntryLimit); 6875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, ImeComposition); 6885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, InsertCharacters); 6895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, JSBlockSentAfterPageLoad); 6905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, LastCommittedUpdateState); 6915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, OnHandleKeyboardEvent); 6927d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, OnImeTypeChanged); 6935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, OnNavStateChanged); 694effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, OnSetAccessibilityMode); 6955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, OnSetTextDirection); 6965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, OnUpdateWebPreferences); 6975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, 6985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SetEditableSelectionAndComposition); 6995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, StaleNavigationsIgnored); 7005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, UpdateTargetURLWithInvalidURL); 7015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, 7025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GetCompositionCharacterBoundsTest); 7035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, OnNavigationHttpPost); 7045d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, 7055d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) DecideNavigationPolicyHandlesAllTopLevel); 7065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_MACOSX) 7075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewTest, MacTestCmdUp); 7085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 7095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, SetHistoryLengthAndPrune); 7105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, ZoomLimit); 7112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, NavigateFrame); 712868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, BasicRenderFrame); 7139ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, TextInputTypeWithPepper); 714f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, 715f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) MessageOrderInDidChangeSelection); 716a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, SendCandidateWindowEvents); 7174e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(SuppressErrorPageTest, Suppresses); 7184e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(SuppressErrorPageTest, DoesNotSuppress); 7195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 7205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) typedef std::map<GURL, double> HostZoomLevels; 7215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 7225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) enum ErrorPageType { 7235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DNS_ERROR, 7245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) HTTP_404, 7255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) CONNECTION_ERROR, 7265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) }; 7275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 7285d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) static bool IsReload(const FrameMsg_Navigate_Params& params); 729bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch 730bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch static Referrer GetReferrerFromRequest( 731f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) blink::WebFrame* frame, 732f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) const blink::WebURLRequest& request); 733bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch 734a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) static WindowOpenDisposition NavigationPolicyToDisposition( 735a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) blink::WebNavigationPolicy policy); 736bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch 737a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) void UpdateTitle(blink::WebFrame* frame, const base::string16& title, 738f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) blink::WebTextDirection title_direction); 739f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) void UpdateSessionHistory(blink::WebFrame* frame); 740f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) void SendUpdateState(const blink::WebHistoryItem& item); 7415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 7425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Update current main frame's encoding and send it to browser window. 7435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Since we want to let users see the right encoding info from menu 7445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // before finishing loading, we call the UpdateEncoding in 7455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // a) function:DidCommitLoadForFrame. When this function is called, 7465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // that means we have got first data. In here we try to get encoding 7475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // of page if it has been specified in http header. 7485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // b) function:DidReceiveTitle. When this function is called, 7495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // that means we have got specified title. Because in most of webpages, 7505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // title tags will follow meta tags. In here we try to get encoding of 7515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // page if it has been specified in meta tag. 7525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // c) function:DidFinishDocumentLoadForFrame. When this function is 7535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // called, that means we have got whole html page. In here we should 7545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // finally get right encoding of page. 755f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) void UpdateEncoding(blink::WebFrame* frame, 7565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& encoding_name); 7575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 7585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Sends a message and runs a nested message loop. 7595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool SendAndRunNestedMessageLoop(IPC::SyncMessage* message); 7605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 7615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Called when the "pinned to left/right edge" state needs to be updated. 762f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) void UpdateScrollState(blink::WebFrame* frame); 7635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 7645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // IPC message handlers ------------------------------------------------------ 7655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // 7665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The documentation for these functions should be in 767c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // content/common/*_messages.h for the message that the function is handling. 768c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void OnExecuteEditCommand(const std::string& name, const std::string& value); 769c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void OnMoveCaret(const gfx::Point& point); 770c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void OnScrollFocusedEditableNodeIntoRect(const gfx::Rect& rect); 771c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void OnSetEditCommandsForNextKeyEvent(const EditCommands& edit_commands); 7722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void OnAllowBindings(int enabled_bindings_flags); 7735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnAllowScriptToClose(bool script_can_close); 7745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnCancelDownload(int32 download_id); 775a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) void OnClearFocusedElement(); 7765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnClosePage(); 7777d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) void OnShowContextMenu(const gfx::Point& location); 7785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnCopyImageAt(int x, int y); 7792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void OnSetName(const std::string& name); 7805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnDeterminePageLanguage(); 7815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnDisableScrollbarsForSmallWindows( 7825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const gfx::Size& disable_scrollbars_size_limit); 783c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch void OnDragSourceEnded(const gfx::Point& client_point, 784c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch const gfx::Point& screen_point, 785c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch blink::WebDragOperation drag_operation); 7865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnDragSourceSystemDragEnded(); 7875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnDragTargetDrop(const gfx::Point& client_pt, 7885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const gfx::Point& screen_pt, 7895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int key_modifiers); 790eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch void OnDragTargetDragEnter(const DropData& drop_data, 7915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const gfx::Point& client_pt, 7925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const gfx::Point& screen_pt, 793f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) blink::WebDragOperationsMask operations_allowed, 7945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int key_modifiers); 7955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnDragTargetDragLeave(); 7965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnDragTargetDragOver(const gfx::Point& client_pt, 7975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const gfx::Point& screen_pt, 798f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) blink::WebDragOperationsMask operations_allowed, 7995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int key_modifiers); 8005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnEnablePreferredSizeChangedMode(); 8015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnEnableAutoResize(const gfx::Size& min_size, const gfx::Size& max_size); 8025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnDisableAutoResize(const gfx::Size& new_size); 8032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void OnEnumerateDirectoryResponse(int id, 8042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const std::vector<base::FilePath>& paths); 8055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnFileChooserResponse( 8065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::vector<ui::SelectedFileInfo>& files); 807a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) void OnFind(int request_id, 808a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) const base::string16&, 809a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) const blink::WebFindOptions&); 8105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnGetAllSavableResourceLinksForCurrentPage(const GURL& page_url); 8115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnGetSerializedHtmlDataForCurrentPageWithLocalLinks( 8125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::vector<GURL>& links, 8132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const std::vector<base::FilePath>& local_paths, 8142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const base::FilePath& local_directory_name); 8155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnMediaPlayerActionAt(const gfx::Point& location, 816f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) const blink::WebMediaPlayerAction& action); 8175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnOrientationChangeEvent(int orientation); 8185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnPluginActionAt(const gfx::Point& location, 819f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) const blink::WebPluginAction& action); 8205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnMoveOrResizeStarted(); 8215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnPostMessageEvent(const ViewMsg_PostMessage_Params& params); 8225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnReleaseDisambiguationPopupDIB(TransportDIB::Handle dib_handle); 8235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnResetPageEncodingToDefault(); 824effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch void OnSetAccessibilityMode(AccessibilityMode new_mode); 8255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnSetActive(bool active); 8265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnSetBackground(const SkBitmap& background); 827c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void OnExitFullscreen(); 8282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void OnSetHistoryLengthAndPrune(int history_length, int32 minimum_page_id); 8295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnSetInitialFocus(bool reverse); 8305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnSetPageEncoding(const std::string& encoding_name); 8315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnSetRendererPrefs(const RendererPreferences& renderer_prefs); 832c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void OnSetWebUIProperty(const std::string& name, const std::string& value); 8335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnSetZoomLevel(double zoom_level); 8342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void OnSetZoomLevelForLoadingURL(const GURL& url, double zoom_level); 8355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnStop(); 8365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnStopFinding(StopFindAction action); 837f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) void OnSuppressDialogsUntilSwapOut(); 8385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnThemeChanged(); 8395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnUpdateTargetURLAck(); 840c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void OnUpdateWebPreferences(const WebPreferences& prefs); 8415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnZoom(PageZoom zoom); 8425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnEnableViewSourceMode(); 8432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void OnDisownOpener(); 8441e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) void OnWindowSnapshotCompleted(const int snapshot_id, 8451e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) const gfx::Size& size, const std::vector<unsigned char>& png); 8465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_ANDROID) 8475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnActivateNearestFindResult(int request_id, float x, float y); 8485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnFindMatchRects(int current_version); 8495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnSelectPopupMenuItems(bool canceled, 8505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::vector<int>& selected_indices); 8515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnUndoScrollFocusedEditableNodeIntoRect(); 852c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void OnUpdateTopControlsState(bool enable_hiding, 853c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) bool enable_showing, 854c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) bool animate); 85568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) void OnPauseVideo(); 8565d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) void OnExtractSmartClipData(const gfx::Rect& rect); 857a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) void GetSelectionRootBounds(gfx::Rect* bounds) const; 8585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#elif defined(OS_MACOSX) 859a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) void OnPluginImeCompositionCompleted(const base::string16& text, 860a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) int plugin_id); 8612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void OnSelectPopupMenuItem(int selected_index); 8625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnSetInLiveResize(bool in_live_resize); 8635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnSetWindowVisibility(bool visible); 8645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnWindowFrameChanged(const gfx::Rect& window_frame, 8655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const gfx::Rect& view_frame); 8665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 8675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 8685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Adding a new message handler? Please add it in alphabetical order above 8695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // and put it in the same position in the .cc file. 8705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 8715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Misc private functions ---------------------------------------------------- 8725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Check whether the preferred size has changed. 8735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void CheckPreferredSize(); 8745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 87558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) // Initializes |media_stream_client_|, returning true if successful. Returns 87658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) // false if it wasn't possible to create a MediaStreamClient (e.g., WebRTC is 87758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) // disabled) in which case |media_stream_client_| is NULL. 87858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) bool InitializeMediaStreamClient(); 8795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 8805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // This callback is triggered when DownloadFavicon completes, either 8815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // succesfully or with a failure. See DownloadFavicon for more 8825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // details. 883a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) void DidDownloadFavicon(ImageResourceFetcher* fetcher, 8845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const SkBitmap& image); 8855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 8865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Requests to download a favicon image. When done, the RenderView is notified 8875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // by way of DidDownloadFavicon. Returns true if the request was successfully 8885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // started, false otherwise. id is used to uniquely identify the request and 8895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // passed back to the DidDownloadFavicon method. If the image has multiple 8905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // frames, the frame whose size is image_size is returned. If the image 8915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // doesn't have a frame at the specified size, the first is returned. 8925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool DownloadFavicon(int id, const GURL& image_url, int image_size); 8935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 8945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Returns the URL being loaded by the given frame's request. 895f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) GURL GetLoadingUrl(blink::WebFrame* frame) const; 8965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 89723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) // Called to get the WebPlugin to handle find requests in the document. 89823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) // Returns NULL if there is no such WebPlugin. 89923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) blink::WebPlugin* GetWebPluginForFind(); 9005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 9015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Returns true if the |params| navigation is to an entry that has been 9025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // cropped due to a recent navigation the browser did not know about. 9035d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) bool IsBackForwardToStaleEntry(const FrameMsg_Navigate_Params& params, 9045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool is_reload); 9055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 9065d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) // TODO(nasko): Remove this method when code is migrated to use 9075d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) // RenderFrameObserver. 9085d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) void OnNavigate(const FrameMsg_Navigate_Params& params); 9095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 910effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch // Make the given |frame| show an empty, unscriptable page. 911effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch // TODO(creis): Move this to RenderFrame. 912f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) void NavigateToSwappedOutURL(blink::WebFrame* frame); 9135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 9145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // If we initiated a navigation, this function will populate |document_state| 9155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // with the navigation information saved in OnNavigate(). 9165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void PopulateDocumentStateFromPending(DocumentState* document_state); 9175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 9185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Returns a new NavigationState populated with the navigation information 9195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // saved in OnNavigate(). 9205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) NavigationState* CreateNavigationStateFromPending(); 9215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 9222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Processes the command-line flags --enable-viewport, 9232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // --enable-fixed-layout[=w,h] and --enable-pinch. 924a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) void ProcessViewLayoutFlags(const base::CommandLine& command_line); 9255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 9265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_ANDROID) 9275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Launch an Android content intent with the given URL. 9285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void LaunchAndroidContentIntent(const GURL& intent_url, size_t request_id); 929f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 930f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) blink::WebMediaPlayer* CreateAndroidWebMediaPlayer( 931f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) blink::WebFrame* frame, 932f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) const blink::WebURL& url, 933f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) blink::WebMediaPlayerClient* client); 9345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 9355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 936f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) blink::WebMediaPlayer* CreateWebMediaPlayerForMediaStream( 937f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) blink::WebFrame* frame, 938f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) const blink::WebURL& url, 939f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) blink::WebMediaPlayerClient* client); 940f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 9415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Sends a reply to the current find operation handling if it was a 9425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // synchronous find request. 9435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void SendFindReply(int request_id, 9445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int match_count, 9455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int ordinal, 946f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) const blink::WebRect& selection_rect, 9475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool final_status_update); 9485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 9495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Starts nav_state_sync_timer_ if it isn't already running. 9505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void StartNavStateSyncTimerIfNecessary(); 9515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 9525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_POSIX) && !defined(OS_MACOSX) 9535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void UpdateFontRenderingFromRendererPrefs(); 9545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else 9555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void UpdateFontRenderingFromRendererPrefs() {} 9565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 9575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 9585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Update the target url and tell the browser that the target URL has changed. 9595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // If |url| is empty, show |fallback_url|. 9605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void UpdateTargetURL(const GURL& url, const GURL& fallback_url); 9615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 962c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // Tells the browser what the new list of favicons for the webpage is. 963c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void SendUpdateFaviconURL(const std::vector<FaviconURL>& urls); 964c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 965c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // Invoked from DidStopLoading(). Sends the current list of loaded favicons to 966c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // the browser. 967c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void DidStopLoadingIcons(); 968c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 9692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Coordinate conversion ----------------------------------------------------- 9702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 9712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) gfx::RectF ClientRectToPhysicalWindowRect(const gfx::RectF& rect) const; 9722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 9738bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) // RenderFrameImpl accessible state ------------------------------------------ 9748bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) // The following section is the set of methods that RenderFrameImpl needs 9758bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) // to access RenderViewImpl state. The set of state variables are page-level 9768bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) // specific, so they don't belong in RenderFrameImpl and should remain in 9778bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) // this object. 9788bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) ObserverList<RenderViewObserver>& observers() { 9798bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) return observers_; 9808bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) } 9818bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) 9828bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) // TODO(nasko): Remove this method when we move to frame proxy objects, since 9838bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) // the concept of swapped out will be eliminated. 9848bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) void set_is_swapped_out(bool swapped_out) { 9858bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) is_swapped_out_ = swapped_out; 9868bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) } 9878bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) 9888bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) NavigationGesture navigation_gesture() { 9898bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) return navigation_gesture_; 9908bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) } 9918bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) void set_navigation_gesture(NavigationGesture gesture) { 9928bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) navigation_gesture_ = gesture; 9938bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) } 9948bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) 9955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // --------------------------------------------------------------------------- 9965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // ADDING NEW FUNCTIONS? Please keep private functions alphabetized and put 9975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // it in the same order in the .cc file as it was in the header. 9985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // --------------------------------------------------------------------------- 9995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Settings ------------------------------------------------------------------ 10015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1002c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) WebPreferences webkit_preferences_; 10035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) RendererPreferences renderer_preferences_; 10045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) HostZoomLevels host_zoom_levels_; 10065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Whether content state (such as form state, scroll position and page 10085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // contents) should be sent to the browser immediately. This is normally 10095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // false, but set to true by some tests. 10105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool send_content_state_immediately_; 10115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Bitwise-ORed set of extra bindings that have been enabled. See 10135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // BindingsPolicy for details. 10145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int enabled_bindings_; 10155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // If true, we send IPC messages when |preferred_size_| changes. 10175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool send_preferred_size_changes_; 10185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // If non-empty, and |send_preferred_size_changes_| is true, disable drawing 10205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // scroll bars on windows smaller than this size. Used for windows that the 10215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // browser resizes to the size of the content, such as browser action popups. 10225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // If a render view is set to the minimum size of its content, webkit may add 10235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // scroll bars. This makes sense for fixed sized windows, but it does not 10245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // make sense when the size of the view was chosen to fit the content. 10255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // This setting ensures that no scroll bars are drawn. The size limit exists 10265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // because if the view grows beyond a size known to the browser, scroll bars 10275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // should be drawn. 10285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) gfx::Size disable_scrollbars_size_limit_; 10295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Loading state ------------------------------------------------------------- 10315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The gesture that initiated the current navigation. 10335d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) // TODO(nasko): Move to RenderFrame, as this is per-frame state. 10345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) NavigationGesture navigation_gesture_; 10355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Used for popups. 10375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool opened_by_user_gesture_; 10385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Whether this RenderView was created by a frame that was suppressing its 10405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // opener. If so, we may want to load pages in a separate process. See 10415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // decidePolicyForNavigation for details. 10425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool opener_suppressed_; 10435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1044f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) // Whether we must stop creating nested message loops for modal dialogs until 1045f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) // OnSwapOut is called. This is necessary because modal dialogs have a 1046f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) // PageGroupLoadDeferrer on the stack that interferes with swapping out. 1047f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) bool suppress_dialogs_until_swap_out_; 1048f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 10495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Holds state pertaining to a navigation that we initiated. This is held by 10505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // the WebDataSource::ExtraData attribute. We use pending_navigation_state_ 10515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // as a temporary holder for the state until the WebDataSource corresponding 10525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // to the new navigation is created. See DidCreateDataSource. 10535d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) // TODO(nasko): Move to RenderFrame, as this is per-frame state. 10545d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) scoped_ptr<FrameMsg_Navigate_Params> pending_navigation_params_; 10555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Timer used to delay the updating of nav state (see SyncNavigationState). 10575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) base::OneShotTimer<RenderViewImpl> nav_state_sync_timer_; 10585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Page IDs ------------------------------------------------------------------ 10605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // See documentation in RenderView. 10615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int32 page_id_; 10625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Indicates the ID of the last page that we sent a FrameNavigate to the 10645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // browser for. This is used to determine if the most recent transition 10655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // generated a history entry (less than page_id_), or not (equal to or 10665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // greater than). Note that this will be greater than page_id_ if the user 10675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // goes back. 10685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int32 last_page_id_sent_to_browser_; 10695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The next available page ID to use for this RenderView. These IDs are 10715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // specific to a given RenderView and the frames within it. 10725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int32 next_page_id_; 10735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The offset of the current item in the history list. 10755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int history_list_offset_; 10765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The RenderView's current impression of the history length. This includes 10785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // any items that have committed in this process, but because of cross-process 10795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // navigations, the history may have some entries that were committed in other 10805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // processes. We won't know about them until the next navigation in this 10815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // process. 10825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int history_list_length_; 10835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1084effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch // Counter to track how many frames have sent start notifications but not 1085effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch // stop notifications. 1086effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch // TODO(japhet): This state will need to move to the browser process 1087effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch // (probably WebContents) for site isolation. 1088effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch int frames_in_progress_; 1089effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 10905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The list of page IDs for each history item this RenderView knows about. 10915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Some entries may be -1 if they were rendered by other processes or were 10925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // restored from a previous session. This lets us detect attempts to 10935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // navigate to stale entries that have been cropped from our history. 10945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::vector<int32> history_page_ids_; 10955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Page info ----------------------------------------------------------------- 10975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The last gotten main frame's encoding. 10995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::string last_encoding_name_; 11005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 11015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // UI state ------------------------------------------------------------------ 11025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 11035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The state of our target_url transmissions. When we receive a request to 11045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // send a URL to the browser, we set this to TARGET_INFLIGHT until an ACK 11055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // comes back - if a new request comes in before the ACK, we store the new 11065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // URL in pending_target_url_ and set the status to TARGET_PENDING. If an 11075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // ACK comes back and we are in TARGET_PENDING, we send the stored URL and 11085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // revert to TARGET_INFLIGHT. 11095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // 11105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // We don't need a queue of URLs to send, as only the latest is useful. 11115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) enum { 11125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) TARGET_NONE, 11135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) TARGET_INFLIGHT, // We have a request in-flight, waiting for an ACK 11145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) TARGET_PENDING // INFLIGHT + we have a URL waiting to be sent 11155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } target_url_status_; 11165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 11175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The URL we show the user in the status bar. We use this to determine if we 11185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // want to send a new one (we do not need to send duplicates). It will be 11195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // equal to either |mouse_over_url_| or |focus_url_|, depending on which was 11205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // updated last. 11215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GURL target_url_; 11225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 11235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The URL the user's mouse is hovering over. 11245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GURL mouse_over_url_; 11255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 11265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The URL that has keyboard focus. 11275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GURL focus_url_; 11285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 11295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The next target URL we want to send to the browser. 11305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GURL pending_target_url_; 11315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 11327d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#if defined(OS_ANDROID) 11337d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) // Cache the old top controls state constraints. Used when updating 11347d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) // current value only without altering the constraints. 11357d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) cc::TopControlsState top_controls_constraints_; 11367d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#endif 11377d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 11385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // View ---------------------------------------------------------------------- 11395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 11405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Cache the preferred size of the page in order to prevent sending the IPC 11415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // when layout() recomputes but doesn't actually change sizes. 11425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) gfx::Size preferred_size_; 11435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 11445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Used to delay determining the preferred size (to avoid intermediate 11455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // states for the sizes). 11465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) base::OneShotTimer<RenderViewImpl> check_preferred_size_timer_; 11475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 11485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // These store the "is main frame is scrolled all the way to the left 11495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // or right" state that was last sent to the browser. 11505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool cached_is_main_frame_pinned_to_left_; 11515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool cached_is_main_frame_pinned_to_right_; 11525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 11535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // These store the "has scrollbars" state last sent to the browser. 11545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool cached_has_main_frame_horizontal_scrollbar_; 11555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool cached_has_main_frame_vertical_scrollbar_; 11565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1157a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) // Bookkeeping to suppress redundant scroll and focus requests for an already 1158a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) // scrolled and focused editable node. 1159a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) bool has_scrolled_focused_editable_node_into_rect_; 1160a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) gfx::Rect rect_for_scrolled_focused_editable_node_; 1161a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 11625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Helper objects ------------------------------------------------------------ 11635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1164868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) scoped_ptr<RenderFrameImpl> main_render_frame_; 1165868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) 11665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The next group of objects all implement RenderViewObserver, so are deleted 11675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // along with the RenderView automatically. This is why we just store 11685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // weak references. 11695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 11705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Holds a reference to the service which provides desktop notifications. 11715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) NotificationProvider* notification_provider_; 11725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1173c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch // The push messaging dispatcher attached to this view, lazily initialized. 1174c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch PushMessagingDispatcher* push_messaging_dispatcher_; 1175c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch 11765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The geolocation dispatcher attached to this view, lazily initialized. 11775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GeolocationDispatcher* geolocation_dispatcher_; 11785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 11795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The speech dispatcher attached to this view, lazily initialized. 11805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) InputTagSpeechDispatcher* input_tag_speech_dispatcher_; 11815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 11825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The speech recognition dispatcher attached to this view, lazily 11835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // initialized. 11845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SpeechRecognitionDispatcher* speech_recognition_dispatcher_; 11855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 11865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Device orientation dispatcher attached to this view; lazily initialized. 11875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DeviceOrientationDispatcher* device_orientation_dispatcher_; 11885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 11895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // MediaStream dispatcher attached to this view; lazily initialized. 11905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MediaStreamDispatcher* media_stream_dispatcher_; 11915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 11922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // BrowserPluginManager attached to this view; lazily initialized. 11932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) scoped_refptr<BrowserPluginManager> browser_plugin_manager_; 11942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 11957dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch // MediaStreamClient attached to this view; lazily initialized. 11967dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch MediaStreamClient* media_stream_client_; 1197f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) blink::WebUserMediaClient* web_user_media_client_; 11985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 11995d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) // MidiClient attached to this view; lazily initialized. 12005d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) MidiDispatcher* midi_dispatcher_; 120158e6fbe4ee35d65e14b626c557d37565bf8ad179Ben Murdoch 12025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DevToolsAgent* devtools_agent_; 12035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The current accessibility mode. 1205effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch AccessibilityMode accessibility_mode_; 12065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Only valid if |accessibility_mode_| is anything other than 12085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // AccessibilityModeOff. 12095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) RendererAccessibility* renderer_accessibility_; 12105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Mouse Lock dispatcher attached to this view. 12125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MouseLockDispatcher* mouse_lock_dispatcher_; 12135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1214a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch scoped_ptr<HistoryController> history_controller_; 1215a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 12165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_ANDROID) 12175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Android Specific --------------------------------------------------------- 12185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The background color of the document body element. This is used as the 12205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // default background color for filling the screen areas for which we don't 12215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // have the actual content. 12225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SkColor body_background_color_; 12235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Expected id of the next content intent launched. Used to prevent scheduled 12255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // intents to be launched if aborted. 12265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) size_t expected_content_intent_id_; 12275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // List of click-based content detectors. 12295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) typedef std::vector< linked_ptr<ContentDetector> > ContentDetectorList; 12305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ContentDetectorList content_detectors_; 12315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12321e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) // The media player manager for managing all the media players on this view 12331e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) // for communicating with the real media player objects in browser process. 12341e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) RendererMediaPlayerManager* media_player_manager_; 12355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // A date/time picker object for date and time related input elements. 12372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) scoped_ptr<RendererDateTimePicker> date_time_picker_client_; 12385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 12395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1240c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // Plugins ------------------------------------------------------------------- 1241c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 1242c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // All the currently active plugin delegates for this RenderView; kept so 1243c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // that we can enumerate them to send updates about things like window 1244c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // location or tab focus and visibily. These are non-owning references. 1245c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) std::set<WebPluginDelegateProxy*> plugin_delegates_; 1246c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 1247c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#if defined(OS_WIN) 1248c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // The ID of the focused NPAPI plug-in. 1249c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) int focused_plugin_id_; 1250c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#endif 1251c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 12523240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch#if defined(ENABLE_PLUGINS) 125323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) PepperPluginInstanceImpl* plugin_find_handler_; 125423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 12555d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) typedef std::set<PepperPluginInstanceImpl*> PepperPluginSet; 12565d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) PepperPluginSet active_pepper_instances_; 12575d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 1258a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) // TODO(jam): these belong on RenderFrame, once the browser knows which frame 1259a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) // is focused and sends the IPCs which use these to the correct frame. Until 1260a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) // then, we must store these on RenderView as that's the one place that knows 1261a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) // about all the RenderFrames for a page. 12623240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch 12633240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch // Whether or not the focus is on a PPAPI plugin 12643240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch PepperPluginInstanceImpl* focused_pepper_plugin_; 12653240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch 12663240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch // The plugin instance that received the last mouse event. It is set to NULL 12673240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch // if the last mouse event went to elements other than Pepper plugins. 1268a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) // |pepper_last_mouse_event_target_| is not owned by this class. We depend on 1269a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) // the RenderFrameImpl to NULL it out when it destructs. 12703240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch PepperPluginInstanceImpl* pepper_last_mouse_event_target_; 12713240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch#endif 12723240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch 12735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Misc ---------------------------------------------------------------------- 12745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The current and pending file chooser completion objects. If the queue is 12765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // nonempty, the first item represents the currently running file chooser 12775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // callback, and the remaining elements are the other file chooser completion 12785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // still waiting to be run (in order). 12795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) struct PendingFileChooser; 12805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::deque< linked_ptr<PendingFileChooser> > file_chooser_completions_; 12815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The current directory enumeration callback 1283f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) std::map<int, blink::WebFileChooserCompletion*> enumeration_completions_; 12845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int enumeration_completion_id_; 12855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Reports load progress to the browser. 12875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) scoped_ptr<LoadProgressTracker> load_progress_tracker_; 12885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The SessionStorage namespace that we're assigned to has an ID, and that ID 12905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // is passed to us upon creation. WebKit asks for this ID upon first use and 12915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // uses it whenever asking the browser process to allocate new storage areas. 12925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int64 session_storage_namespace_id_; 12935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Stores edit commands associated to the next key event. 12955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Shall be cleared as soon as the next key event is processed. 12965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EditCommands edit_commands_; 12975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1298effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch#if defined(OS_MACOSX) || defined(OS_ANDROID) 12995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The external popup for the currently showing select popup. 13005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) scoped_ptr<ExternalPopupMenu> external_popup_menu_; 1301effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch#endif 13025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // All the registered observers. We expect this list to be small, so vector 13045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // is fine. 13055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ObserverList<RenderViewObserver> observers_; 13065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Wraps the |webwidget_| as a MouseLockDispatcher::LockTarget interface. 13085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) scoped_ptr<MouseLockDispatcher::LockTarget> webwidget_mouse_lock_target_; 13095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // State associated with the GetWindowSnapshot function. 13112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int next_snapshot_id_; 13123240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch typedef std::map<int, WindowSnapshotCallback> PendingSnapshotMap; 13132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PendingSnapshotMap pending_snapshots_; 13142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 13155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // This field stores drag/drop related info for the event that is currently 13165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // being handled. If the current event results in starting a drag/drop 13175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // session, this info is sent to the browser along with other drag/drop info. 13185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DragEventSourceInfo possible_drag_event_info_; 13195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13203240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch // NOTE: stats_collection_observer_ should be the last members because their 13213240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch // constructors call the AddObservers method of RenderViewImpl. 1322868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) scoped_ptr<StatsCollectionObserver> stats_collection_observer_; 13232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 13245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // --------------------------------------------------------------------------- 13255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // ADDING NEW DATA? Please see if it fits appropriately in one of the above 13265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // sections rather than throwing it randomly at the end. If you're adding a 13275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // bunch of stuff, you should probably create a helper class and put your 13285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // data and methods on that to avoid bloating RenderView more. You can 13295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // use the Observer interface to filter IPC messages and receive frame change 13305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // notifications. 13315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // --------------------------------------------------------------------------- 13325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(RenderViewImpl); 13345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 13355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace content 13375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif // CONTENT_RENDERER_RENDER_VIEW_IMPL_H_ 1339