render_view_impl.h revision 58537e28ecd584eab876aee8be7156509866d23a
15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef CONTENT_RENDERER_RENDER_VIEW_IMPL_H_ 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define CONTENT_RENDERER_RENDER_VIEW_IMPL_H_ 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include <deque> 92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include <map> 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <set> 112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include <string> 122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include <vector> 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/basictypes.h" 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/gtest_prod_util.h" 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/id_map.h" 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/memory/linked_ptr.h" 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/memory/weak_ptr.h" 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/observer_list.h" 20bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch#include "base/process/process.h" 213551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#include "base/strings/string16.h" 22eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "base/timer/timer.h" 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "build/build_config.h" 2490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)#include "cc/input/top_controls_state.h" 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/common/content_export.h" 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/common/drag_event_source_info.h" 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/common/edit_command.h" 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/common/gpu/client/webgraphicscontext3d_command_buffer_impl.h" 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/common/navigation_gesture.h" 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/common/view_message_enums.h" 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/public/common/javascript_message_type.h" 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/public/common/page_zoom.h" 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/public/common/referrer.h" 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/public/common/renderer_preferences.h" 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/public/common/stop_find_action.h" 3690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)#include "content/public/common/top_controls_state.h" 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/public/renderer/render_view.h" 387dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "content/renderer/media/webmediaplayer_delegate.h" 392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "content/renderer/mouse_lock_dispatcher.h" 40868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "content/renderer/render_frame_impl.h" 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/renderer/render_widget.h" 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/renderer/renderer_webcookiejar_impl.h" 43868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "content/renderer/stats_collection_observer.h" 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ipc/ipc_platform_file.h" 45868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "third_party/WebKit/public/platform/WebGraphicsContext3D.h" 4658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)#include "third_party/WebKit/public/web/WebAXObject.h" 477d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include "third_party/WebKit/public/web/WebConsoleMessage.h" 487d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include "third_party/WebKit/public/web/WebDataSource.h" 497d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include "third_party/WebKit/public/web/WebFrameClient.h" 507d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include "third_party/WebKit/public/web/WebHistoryItem.h" 517d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include "third_party/WebKit/public/web/WebIconURL.h" 527d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include "third_party/WebKit/public/web/WebInputEvent.h" 537d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include "third_party/WebKit/public/web/WebNavigationType.h" 547d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include "third_party/WebKit/public/web/WebNode.h" 557d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include "third_party/WebKit/public/web/WebPageSerializerClient.h" 567d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include "third_party/WebKit/public/web/WebPageVisibilityState.h" 577d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include "third_party/WebKit/public/web/WebSecurityOrigin.h" 587d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include "third_party/WebKit/public/web/WebViewClient.h" 59eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "ui/base/ui_base_types.h" 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ui/surface/transport_dib.h" 61868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "webkit/common/webpreferences.h" 625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_ANDROID) 645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/renderer/android/content_detector.h" 657d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include "third_party/WebKit/public/web/WebContentDetectionResult.h" 665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(COMPILER_MSVC) 695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// RenderViewImpl is a diamond-shaped hierarchy, with WebWidgetClient at the 705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// root. VS warns when we inherit the WebWidgetClient method implementations 715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// from RenderWidget. It's safe to ignore that warning. 725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#pragma warning(disable: 4250) 735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class CommandLine; 765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class PepperDeviceTest; 775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class SkBitmap; 785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct PP_NetAddress_Private; 795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct ViewMsg_Navigate_Params; 805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct ViewMsg_PostMessage_Params; 815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct ViewMsg_StopFinding_Params; 825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace ui { 845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct SelectedFileInfo; 855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace ui 865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace WebKit { 885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class WebApplicationCacheHost; 895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class WebApplicationCacheHostClient; 905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class WebDOMMessageEvent; 915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class WebDataSource; 922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class WebDateTimeChooserCompletion; 935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class WebDragData; 945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class WebGeolocationClient; 955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class WebGestureEvent; 965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class WebIconURL; 975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class WebImage; 985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class WebPeerConnection00Handler; 995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class WebPeerConnection00HandlerClient; 1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class WebMediaPlayer; 1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class WebMediaPlayerClient; 1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class WebMouseEvent; 1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class WebPeerConnectionHandler; 1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class WebPeerConnectionHandlerClient; 1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class WebSocketStreamHandle; 1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class WebSpeechInputController; 1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class WebSpeechInputListener; 1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class WebSpeechRecognizer; 1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class WebStorageNamespace; 1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class WebTouchEvent; 1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class WebURLRequest; 1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class WebUserMediaClient; 1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct WebActiveWheelFlingParameters; 1143240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdochstruct WebCursorInfo; 1152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)struct WebDateTimeChooserParams; 1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct WebFileChooserParams; 1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct WebFindOptions; 1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct WebMediaPlayerAction; 1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct WebPluginAction; 1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct WebPoint; 1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct WebWindowFeatures; 1225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_ANDROID) 1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class WebHitTestResult; 1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 128bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdochnamespace webkit_glue { 129bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdochclass WebURLResponseExtraDataImpl; 130bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch} 131bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch 1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace content { 1332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class BrowserPluginManager; 1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class DeviceOrientationDispatcher; 1355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class DevToolsAgent; 1365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class DocumentState; 1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class DomAutomationController; 1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class ExternalPopupMenu; 1392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class FaviconHelper; 1405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class GeolocationDispatcher; 141a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)class ImageResourceFetcher; 1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class InputTagSpeechDispatcher; 1435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class JavaBridgeDispatcher; 1445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class LoadProgressTracker; 14558e6fbe4ee35d65e14b626c557d37565bf8ad179Ben Murdochclass MIDIDispatcher; 1467dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochclass MediaStreamClient; 1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class MediaStreamDispatcher; 1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class MouseLockDispatcher; 1495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class NavigationState; 1505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class NotificationProvider; 15158e6fbe4ee35d65e14b626c557d37565bf8ad179Ben Murdochclass PepperPluginInstanceImpl; 1525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class RenderViewObserver; 1535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class RenderViewTest; 1545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class RendererAccessibility; 1552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class RendererDateTimePicker; 1565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class RendererPpapiHost; 1575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class RendererWebColorChooserImpl; 1585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class RenderWidgetFullscreenPepper; 1595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class SpeechRecognitionDispatcher; 160868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)class StatsCollectionController; 1615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class WebPluginDelegateProxy; 1625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct CustomContextMenuContext; 163eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochstruct DropData; 164c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)struct FaviconURL; 1655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct FileChooserParams; 1662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)struct RenderViewImplParams; 1675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_ANDROID) 1697dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochclass RendererMediaPlayerManager; 170eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochclass WebMediaPlayerProxyAndroid; 1715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 1725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// We need to prevent a page from trying to create infinite popups. It is not 1745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// as simple as keeping a count of the number of immediate children 1755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// popups. Having an html file that window.open()s itself would create 1765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// an unlimited chain of RenderViews who only have one RenderView child. 1775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// 1785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Therefore, each new top level RenderView creates a new counter and shares it 1795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// with all its children and grandchildren popup RenderViewImpls created with 1805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// createView() to have a sort of global limit for the page so no more than 1815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// kMaximumNumberOfPopups popups are created. 1825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// 1835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// This is a RefCounted holder of an int because I can't say 1845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// scoped_refptr<int>. 1855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef base::RefCountedData<int> SharedRenderViewCounter; 1865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// 1885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// RenderView is an object that manages a WebView object, and provides a 1895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// communication interface with an embedding application process 1905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// 1912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class CONTENT_EXPORT RenderViewImpl 1922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) : public RenderWidget, 1932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) NON_EXPORTED_BASE(public WebKit::WebViewClient), 1942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) NON_EXPORTED_BASE(public WebKit::WebFrameClient), 1952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) NON_EXPORTED_BASE(public WebKit::WebPageSerializerClient), 1962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) public RenderView, 1977dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch NON_EXPORTED_BASE(public WebMediaPlayerDelegate), 1982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) public base::SupportsWeakPtr<RenderViewImpl> { 1995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 2005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Creates a new RenderView. If this is a blocked popup or as a new tab, 2015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // opener_id is the routing ID of the RenderView responsible for creating this 2025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // RenderView. |counter| is either a currently initialized counter, or NULL 2035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // (in which case we treat this RenderView as a top level window). 2042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) static RenderViewImpl* Create( 2055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int32 opener_id, 2065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const RendererPreferences& renderer_prefs, 207c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const WebPreferences& webkit_prefs, 2085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SharedRenderViewCounter* counter, 2095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int32 routing_id, 210868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) int32 main_frame_routing_id, 2115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int32 surface_id, 2125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int64 session_storage_namespace_id, 2135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const string16& frame_name, 2145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool is_renderer_created, 2155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool swapped_out, 2163551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) bool hidden, 2175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int32 next_page_id, 2185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebScreenInfo& screen_info, 2192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) AccessibilityMode accessibility_mode, 2202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) bool allow_partial_swap); 2215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Used by content_layouttest_support to hook into the creation of 2232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // RenderViewImpls. 2242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) static void InstallCreateHook( 2252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) RenderViewImpl* (*create_render_view_impl)(RenderViewImplParams*)); 2265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Returns the RenderViewImpl containing the given WebView. 2282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) static RenderViewImpl* FromWebView(WebKit::WebView* webview); 2295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Returns the RenderViewImpl for the given routing ID. 2312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) static RenderViewImpl* FromRoutingID(int routing_id); 2325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // May return NULL when the view is closing. 2342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) WebKit::WebView* webview() const; 2355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int history_list_offset() const { return history_list_offset_; } 2375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 238c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const WebPreferences& webkit_preferences() const { 2395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return webkit_preferences_; 2405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 2415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void set_send_content_state_immediately(bool value) { 2435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) send_content_state_immediately_ = value; 2445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 2455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MediaStreamDispatcher* media_stream_dispatcher() { 2475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return media_stream_dispatcher_; 2485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 2495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MouseLockDispatcher* mouse_lock_dispatcher() { 2515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return mouse_lock_dispatcher_; 2525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 2535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 254ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch RendererWebCookieJarImpl* cookie_jar() { return &cookie_jar_; } 255ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch 2565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_ANDROID) 2577dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch RendererMediaPlayerManager* media_player_manager() { 2585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return media_player_manager_.get(); 2595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 2605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 2615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Lazily initialize this view's BrowserPluginManager and return it. 263c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) BrowserPluginManager* GetBrowserPluginManager(); 2642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 2655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Functions to add and remove observers for this object. 2665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void AddObserver(RenderViewObserver* observer); 2675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void RemoveObserver(RenderViewObserver* observer); 2685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 269868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) // Returns the StatsCollectionObserver associated with this view, or NULL 270868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) // if one wasn't created; 271868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) StatsCollectionObserver* GetStatsCollectionObserver() { 272868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) return stats_collection_observer_.get(); 273868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) } 274868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) 2755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Adds the given file chooser request to the file_chooser_completion_ queue 2765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // (see that var for more) and requests the chooser be displayed if there are 2775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // no other waiting items in the queue. 2785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // 2795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Returns true if the chooser was successfully scheduled. False means we 2805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // didn't schedule anything. 2815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool ScheduleFileChooser(const FileChooserParams& params, 2825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebFileChooserCompletion* completion); 2835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void LoadNavigationErrorPage( 2855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebFrame* frame, 2865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebURLRequest& failed_request, 2875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebURLError& error, 2885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& html, 2895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool replace); 2905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Plugin-related functions -------------------------------------------------- 2925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2933240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch#if defined(ENABLE_PLUGINS) 2943240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch // Indicates that the given instance has been created. 2953240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch void PepperInstanceCreated(PepperPluginInstanceImpl* instance); 2965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2973240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch // Indicates that the given instance is being destroyed. This is called from 2983240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch // the destructor, so it's important that the instance is not dereferenced 2993240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch // from this call. 3003240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch void PepperInstanceDeleted(PepperPluginInstanceImpl* instance); 3015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3023240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch // Notifies that |instance| has changed the cursor. 3033240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch // This will update the cursor appearance if it is currently over the plugin 3043240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch // instance. 3053240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch void PepperDidChangeCursor(PepperPluginInstanceImpl* instance, 3063240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch const WebKit::WebCursorInfo& cursor); 3073240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch 3083240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch // Notifies that |instance| has received a mouse event. 3093240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch void PepperDidReceiveMouseEvent(PepperPluginInstanceImpl* instance); 3103240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch 3113240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch // Notification that the given plugin is focused or unfocused. 3123240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch void PepperFocusChanged(PepperPluginInstanceImpl* instance, bool focused); 3135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Informs the render view that a PPAPI plugin has changed text input status. 3153240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch void PepperTextInputTypeChanged(PepperPluginInstanceImpl* instance); 3163240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch void PepperCaretPositionChanged(PepperPluginInstanceImpl* instance); 3175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Cancels current composition. 3193240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch void PepperCancelComposition(PepperPluginInstanceImpl* instance); 3205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Informs the render view that a PPAPI plugin has changed selection. 3223240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch void PepperSelectionChanged(PepperPluginInstanceImpl* instance); 3233240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch 3243240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch // Creates a fullscreen container for a pepper plugin instance. 3253240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch RenderWidgetFullscreenPepper* CreatePepperFullscreenContainer( 3263240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch PepperPluginInstanceImpl* plugin); 3275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Notification that a PPAPI plugin has been created. 3293240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch void PepperPluginCreated(RendererPpapiHost* host); 3305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Retrieves the current caret position if a PPAPI plugin has focus. 3323240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch bool GetPepperCaretBounds(gfx::Rect* rect); 3333240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch 3343240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch bool IsPepperAcceptingCompositionEvents() const; 3353240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch 3363240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch // Notification that the given plugin has crashed. 3373240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch void PluginCrashed(const base::FilePath& plugin_path, 3383240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch base::ProcessId plugin_pid); 3395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Simulates IME events for testing purpose. 3415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void SimulateImeSetComposition( 3425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const string16& text, 3435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::vector<WebKit::WebCompositionUnderline>& underlines, 3445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int selection_start, 3455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int selection_end); 3465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void SimulateImeConfirmComposition(const string16& text, 34758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) const gfx::Range& replacement_range); 3485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_MACOSX) || defined(OS_WIN) 3505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Informs the render view that the given plugin has gained or lost focus. 3515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void PluginFocusChanged(bool focused, int plugin_id); 3525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 3535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_MACOSX) 3555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Starts plugin IME. 3565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void StartPluginIme(); 3575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 3585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void RegisterPluginDelegate(WebPluginDelegateProxy* delegate); 3605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void UnregisterPluginDelegate(WebPluginDelegateProxy* delegate); 3615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Helper function to retrieve information about a plugin for a URL and mime 3635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // type. Returns false if no plugin was found. 3645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // |actual_mime_type| is the actual mime type supported by the 3655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // plugin found that match the URL given (one for each item in 3665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // |info|). 3672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) bool GetPluginInfo(const GURL& url, 3682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const GURL& page_url, 3692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const std::string& mime_type, 370ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch WebPluginInfo* plugin_info, 3712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) std::string* actual_mime_type); 3725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 373bb1529ce867d8845a77ec7cdf3e3003ef1771a40Ben Murdoch#endif // ENABLE_PLUGINS 374bb1529ce867d8845a77ec7cdf3e3003ef1771a40Ben Murdoch 3755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void TransferActiveWheelFlingAnimation( 3765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebActiveWheelFlingParameters& params); 3775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Returns true if the focused element is editable text from the perspective 3795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // of IME support (also used for on-screen keyboard). Works correctly inside 3805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // supported PPAPI plug-ins. 3815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool HasIMETextFocus(); 3825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Callback for use with GetWindowSnapshot. 3842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) typedef base::Callback<void( 3852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const gfx::Size&, const std::vector<unsigned char>&)> 3862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) WindowSnapshotCallback; 3872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 3882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void GetWindowSnapshot(const WindowSnapshotCallback& callback); 3892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 3902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Dispatches the current navigation state to the browser. Called on a 3912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // periodic timer so we don't send too many messages. 3922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void SyncNavigationState(); 3932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 3942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Returns the length of the session history of this RenderView. Note that 3952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // this only coincides with the actual length of the session history if this 3962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // RenderView is the currently active RenderView of a WebContents. 3972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) unsigned GetLocalSessionHistoryLengthForTesting() const; 3982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 3992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Invokes OnSetFocus and marks the widget as active depending on the value 4002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // of |enable|. This is used for layout tests that need to control the focus 4012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // synchronously from the renderer. 4022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void SetFocusAndActivateForTesting(bool enable); 4032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 4042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Change the device scale factor and force the compositor to resize. 4052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void SetDeviceScaleFactorForTesting(float factor); 4062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 40790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) // Control autoresize mode. 40890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) void EnableAutoResizeForTesting(const gfx::Size& min_size, 40990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) const gfx::Size& max_size); 41090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) void DisableAutoResizeForTesting(const gfx::Size& new_size); 41190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 4127dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch // Overrides the MediaStreamClient used when creating MediaStream players. 4137dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch // Must be called before any players are created. 4147dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch void SetMediaStreamClientForTesting(MediaStreamClient* media_stream_client); 4157dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 4165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // IPC::Listener implementation ---------------------------------------------- 4175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool OnMessageReceived(const IPC::Message& msg) OVERRIDE; 4195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // WebKit::WebWidgetClient implementation ------------------------------------ 4215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Most methods are handled by RenderWidget. 4235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didFocus(); 4245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didBlur(); 4255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void show(WebKit::WebNavigationPolicy policy); 4265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void runModal(); 4275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool enterFullScreen(); 4285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void exitFullScreen(); 4295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool requestPointerLock(); 4305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void requestPointerUnlock(); 4315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool isPointerLocked(); 4325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didActivateCompositor(int input_handler_identifier); 4332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual void didHandleGestureEvent(const WebKit::WebGestureEvent& event, 4342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) bool event_cancelled) OVERRIDE; 435a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch virtual void initializeLayerTreeView() OVERRIDE; 4365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // WebKit::WebViewClient implementation -------------------------------------- 4385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual WebKit::WebView* createView( 4405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebFrame* creator, 4415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebURLRequest& request, 4425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebWindowFeatures& features, 4435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebString& frame_name, 4445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebNavigationPolicy policy); 4455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual WebKit::WebWidget* createPopupMenu(WebKit::WebPopupType popup_type); 4465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual WebKit::WebExternalPopupMenu* createExternalPopupMenu( 4475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebPopupMenuInfo& popup_menu_info, 4485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebExternalPopupMenuClient* popup_menu_client); 449eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch virtual WebKit::WebStorageNamespace* createSessionStorageNamespace(); 4503551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) virtual bool shouldReportDetailedMessageForSource( 4513551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) const WebKit::WebString& source); 4525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didAddMessageToConsole( 4535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebConsoleMessage& message, 4545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebString& source_name, 455424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) unsigned source_line, 456424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles) const WebKit::WebString& stack_trace); 4575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void printPage(WebKit::WebFrame* frame); 4585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual WebKit::WebNotificationPresenter* notificationPresenter(); 4595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool enumerateChosenDirectory( 4605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebString& path, 4615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebFileChooserCompletion* chooser_completion); 4625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void initializeHelperPluginWebFrame(WebKit::WebHelperPlugin*); 4635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didStartLoading(); 4645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didStopLoading(); 4655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didChangeLoadProgress(WebKit::WebFrame* frame, 4665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) double load_progress); 4672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual void didCancelCompositionOnSelectionChange(); 4685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didChangeSelection(bool is_selection_empty); 4695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didExecuteCommand(const WebKit::WebString& command_name); 4705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool handleCurrentKeyboardEvent(); 4715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual WebKit::WebColorChooser* createColorChooser( 4725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebColorChooserClient*, const WebKit::WebColor& initial_color); 4735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool runFileChooser( 4745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebFileChooserParams& params, 4755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebFileChooserCompletion* chooser_completion); 4765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void runModalAlertDialog(WebKit::WebFrame* frame, 4775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebString& message); 4785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool runModalConfirmDialog(WebKit::WebFrame* frame, 4795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebString& message); 4805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool runModalPromptDialog(WebKit::WebFrame* frame, 4815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebString& message, 4825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebString& default_value, 4835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebString* actual_value); 4845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool runModalBeforeUnloadDialog(WebKit::WebFrame* frame, 485a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) bool is_reload, 486a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) const WebKit::WebString& message); 487a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) // DEPRECATED 488a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) virtual bool runModalBeforeUnloadDialog(WebKit::WebFrame* frame, 4895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebString& message); 4905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void showContextMenu(WebKit::WebFrame* frame, 4915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebContextMenuData& data); 4923551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) virtual void clearContextMenu(); 4935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void setStatusText(const WebKit::WebString& text); 4945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void setMouseOverURL(const WebKit::WebURL& url); 4955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void setKeyboardFocusURL(const WebKit::WebURL& url); 4965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void startDragging(WebKit::WebFrame* frame, 4975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebDragData& data, 4985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebDragOperationsMask mask, 4995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebImage& image, 5005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebPoint& imageOffset); 5015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool acceptsLoadDrops(); 5025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void focusNext(); 5035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void focusPrevious(); 5045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void focusedNodeChanged(const WebKit::WebNode& node); 5055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void numberOfWheelEventHandlersChanged(unsigned num_handlers); 5065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didUpdateLayout(); 5075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_ANDROID) 5085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool didTapMultipleTargets( 5095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebGestureEvent& event, 5105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebVector<WebKit::WebRect>& target_rects); 5115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 5125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void navigateBackForwardSoon(int offset); 5135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual int historyBackListCount(); 5145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual int historyForwardListCount(); 51558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) virtual void postAccessibilityEvent( 51658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) const WebKit::WebAXObject& obj, WebKit::WebAXEvent event); 5175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didUpdateInspectorSetting(const WebKit::WebString& key, 5185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebString& value); 5195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual WebKit::WebGeolocationClient* geolocationClient(); 5205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual WebKit::WebSpeechInputController* speechInputController( 5215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebSpeechInputListener* listener); 5225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual WebKit::WebSpeechRecognizer* speechRecognizer(); 5235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual WebKit::WebDeviceOrientationClient* deviceOrientationClient(); 5245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void zoomLimitsChanged(double minimum_level, double maximum_level); 5255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void zoomLevelChanged(); 52658e6fbe4ee35d65e14b626c557d37565bf8ad179Ben Murdoch virtual double zoomLevelToZoomFactor(double zoom_level) const; 52758e6fbe4ee35d65e14b626c557d37565bf8ad179Ben Murdoch virtual double zoomFactorToZoomLevel(double factor) const; 5285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void registerProtocolHandler(const WebKit::WebString& scheme, 5295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebString& base_url, 5305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebString& url, 5315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebString& title); 5325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual WebKit::WebPageVisibilityState visibilityState() const; 5335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual WebKit::WebUserMediaClient* userMediaClient(); 53458e6fbe4ee35d65e14b626c557d37565bf8ad179Ben Murdoch virtual WebKit::WebMIDIClient* webMIDIClient(); 5355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void draggableRegionsChanged(); 5365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 5375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_ANDROID) 5385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void scheduleContentIntent(const WebKit::WebURL& intent); 5395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void cancelScheduledContentIntents(); 5405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual WebKit::WebContentDetectionResult detectContentAround( 5415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebHitTestResult& touch_hit); 5422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 5432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Only used on Android since all other platforms implement 5442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // date and time input fields using MULTIPLE_FIELDS_UI 5452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual bool openDateTimeChooser(const WebKit::WebDateTimeChooserParams&, 5462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) WebKit::WebDateTimeChooserCompletion*); 5477d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) virtual void didScrollWithKeyboard(const WebKit::WebSize& delta); 5485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 5495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 5505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // WebKit::WebFrameClient implementation ------------------------------------- 5515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 5525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual WebKit::WebMediaPlayer* createMediaPlayer( 5535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebFrame* frame, 5545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebURL& url, 5555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebMediaPlayerClient* client); 5565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual WebKit::WebCookieJar* cookieJar(WebKit::WebFrame* frame); 557868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) virtual void didAccessInitialDocument(WebKit::WebFrame* frame); 5582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual void didDisownOpener(WebKit::WebFrame* frame); 5595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void frameDetached(WebKit::WebFrame* frame); 5605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void willClose(WebKit::WebFrame* frame); 561c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 562c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // The WebDataSource::ExtraData* is assumed to be a DocumentState* subclass. 563c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) virtual WebKit::WebNavigationPolicy decidePolicyForNavigation( 564c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) WebKit::WebFrame* frame, 565c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) WebKit::WebDataSource::ExtraData* extraData, 566c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const WebKit::WebURLRequest& request, 567c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) WebKit::WebNavigationType type, 568c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) WebKit::WebNavigationPolicy default_policy, 569c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) bool is_redirect); 570c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // DEPRECATED. 5715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual WebKit::WebNavigationPolicy decidePolicyForNavigation( 5725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebFrame* frame, 5735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebURLRequest& request, 5745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebNavigationType type, 5755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebNavigationPolicy default_policy, 5765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool is_redirect); 5775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void willSendSubmitEvent(WebKit::WebFrame* frame, 5785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebFormElement& form); 5795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void willSubmitForm(WebKit::WebFrame* frame, 5805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebFormElement& form); 5815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didCreateDataSource(WebKit::WebFrame* frame, 5825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebDataSource* datasource); 5835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didStartProvisionalLoad(WebKit::WebFrame* frame); 5845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didReceiveServerRedirectForProvisionalLoad( 5855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebFrame* frame); 5865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didFailProvisionalLoad(WebKit::WebFrame* frame, 5875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebURLError& error); 5885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didCommitProvisionalLoad(WebKit::WebFrame* frame, 5895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool is_new_navigation); 5905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didClearWindowObject(WebKit::WebFrame* frame); 5915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didCreateDocumentElement(WebKit::WebFrame* frame); 5925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didReceiveTitle(WebKit::WebFrame* frame, 5935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebString& title, 5945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebTextDirection direction); 5955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didChangeIcon(WebKit::WebFrame*, 596eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch WebKit::WebIconURL::Type); 5975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didFinishDocumentLoad(WebKit::WebFrame* frame); 5985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didHandleOnloadEvents(WebKit::WebFrame* frame); 5995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didFailLoad(WebKit::WebFrame* frame, 6005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebURLError& error); 6015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didFinishLoad(WebKit::WebFrame* frame); 6025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didNavigateWithinPage(WebKit::WebFrame* frame, 6035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool is_new_navigation); 6045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didUpdateCurrentHistoryItem(WebKit::WebFrame* frame); 6055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void willSendRequest(WebKit::WebFrame* frame, 6065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) unsigned identifier, 6075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebURLRequest& request, 6085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebURLResponse& redirect_response); 6095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didReceiveResponse(WebKit::WebFrame* frame, 6105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) unsigned identifier, 6115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebURLResponse& response); 6125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didFinishResourceLoad(WebKit::WebFrame* frame, 6135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) unsigned identifier); 6145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didLoadResourceFromMemoryCache( 6155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebFrame* frame, 6165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebURLRequest& request, 6175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebURLResponse&); 6185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didDisplayInsecureContent(WebKit::WebFrame* frame); 6195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didRunInsecureContent( 6205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebFrame* frame, 6215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebSecurityOrigin& origin, 6225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebURL& target); 6235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didExhaustMemoryAvailableForScript(WebKit::WebFrame* frame); 6245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didCreateScriptContext(WebKit::WebFrame* frame, 6255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) v8::Handle<v8::Context>, 6265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int extension_group, 6275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int world_id); 6285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void willReleaseScriptContext(WebKit::WebFrame* frame, 6295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) v8::Handle<v8::Context>, 6305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int world_id); 6315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didChangeScrollOffset(WebKit::WebFrame* frame); 632eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch virtual void willInsertBody(WebKit::WebFrame* frame); 633eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch virtual void didFirstVisuallyNonEmptyLayout(WebKit::WebFrame*); 6345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didChangeContentsSize(WebKit::WebFrame* frame, 6355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebSize& size); 6365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void reportFindInPageMatchCount(int request_id, 6375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int count, 6385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool final_update); 6395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void reportFindInPageSelection(int request_id, 6405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int active_match_ordinal, 6415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebRect& sel); 6425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void requestStorageQuota( 6435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebFrame* frame, 6445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebStorageQuotaType type, 6455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) unsigned long long requested_size, 6465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebStorageQuotaCallbacks* callbacks); 6475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void willOpenSocketStream( 6485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebSocketStreamHandle* handle); 6495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void willStartUsingPeerConnectionHandler(WebKit::WebFrame* frame, 650eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch WebKit::WebRTCPeerConnectionHandler* handler); 6515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool willCheckAndDispatchMessageEvent( 6525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebFrame* sourceFrame, 6535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebFrame* targetFrame, 6545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebSecurityOrigin targetOrigin, 655eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch WebKit::WebDOMMessageEvent event); 656eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch virtual WebKit::WebString acceptLanguages(); 6575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual WebKit::WebString userAgentOverride( 6585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebFrame* frame, 659eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch const WebKit::WebURL& url); 660eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch virtual WebKit::WebString doNotTrackValue(WebKit::WebFrame* frame); 661eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch virtual bool allowWebGL(WebKit::WebFrame* frame, bool default_value); 6622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual void didLoseWebGLContext( 6632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) WebKit::WebFrame* frame, 664eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch int arb_robustness_status_code); 6655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 6665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // WebKit::WebPageSerializerClient implementation ---------------------------- 6675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 6685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void didSerializeDataForFrame( 6695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebURL& frame_url, 6705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebCString& data, 6715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PageSerializationStatus status) OVERRIDE; 6725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 6735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // RenderView implementation ------------------------------------------------- 6745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 6755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool Send(IPC::Message* message) OVERRIDE; 6765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual int GetRoutingID() const OVERRIDE; 6775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual int GetPageId() const OVERRIDE; 6785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual gfx::Size GetSize() const OVERRIDE; 679c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) virtual WebPreferences& GetWebkitPreferences() OVERRIDE; 680c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) virtual void SetWebkitPreferences(const WebPreferences& preferences) OVERRIDE; 6815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual WebKit::WebView* GetWebView() OVERRIDE; 6825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual WebKit::WebNode GetFocusedNode() const OVERRIDE; 6835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual WebKit::WebNode GetContextMenuNode() const OVERRIDE; 6845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool IsEditableNode(const WebKit::WebNode& node) const OVERRIDE; 6855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual WebKit::WebPlugin* CreatePlugin( 6865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebFrame* frame, 687ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch const WebPluginInfo& info, 6885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebPluginParams& params) OVERRIDE; 6895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void EvaluateScript(const string16& frame_xpath, 6905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const string16& jscript, 6915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int id, 6925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool notify_result) OVERRIDE; 6935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool ShouldDisplayScrollbars(int width, int height) const OVERRIDE; 6945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual int GetEnabledBindings() const OVERRIDE; 6955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool GetContentStateImmediately() const OVERRIDE; 6965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual float GetFilteredTimePerFrame() const OVERRIDE; 6975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual int ShowContextMenu(ContextMenuClient* client, 6985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const ContextMenuParams& params) OVERRIDE; 6995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void CancelContextMenu(int request_id) OVERRIDE; 7005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual WebKit::WebPageVisibilityState GetVisibilityState() const OVERRIDE; 7015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void RunModalAlertDialog(WebKit::WebFrame* frame, 7025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebString& message) OVERRIDE; 7035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void LoadURLExternally( 7045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebFrame* frame, 7055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebURLRequest& request, 7065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebNavigationPolicy policy) OVERRIDE; 707ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch virtual void DidStartLoading() OVERRIDE; 708ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch virtual void DidStopLoading() OVERRIDE; 7095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void Repaint(const gfx::Size& size) OVERRIDE; 7105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void SetEditCommandForNextKeyEvent(const std::string& name, 7115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& value) OVERRIDE; 7125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void ClearEditCommands() OVERRIDE; 7132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual SSLStatus GetSSLStatusOfFrame(WebKit::WebFrame* frame) const OVERRIDE; 7142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if defined(OS_ANDROID) 71590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) virtual void UpdateTopControlsState(TopControlsState constraints, 71690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) TopControlsState current, 71790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) bool animate) OVERRIDE; 7182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 7195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 7207dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch // WebMediaPlayerDelegate implementation ----------------------- 7215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 7225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void DidPlay(WebKit::WebMediaPlayer* player) OVERRIDE; 7235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void DidPause(WebKit::WebMediaPlayer* player) OVERRIDE; 7245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void PlayerGone(WebKit::WebMediaPlayer* player) OVERRIDE; 7255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 7265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Please do not add your stuff randomly to the end here. If there is an 7275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // appropriate section, add it there. If not, there are some random functions 7285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // nearer to the top you can add it to. 7295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 7305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Cannot use std::set unfortunately since linked_ptr<> does not support 7315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // operator<. 732a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) typedef std::vector<linked_ptr<ImageResourceFetcher> > 7335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ImageResourceFetcherList; 7345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 7355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) protected: 7365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // RenderWidget overrides: 7375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void Close() OVERRIDE; 73890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) virtual void OnResize(const ViewMsg_Resize_Params& params) OVERRIDE; 7395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void WillInitiatePaint() OVERRIDE; 7405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void DidInitiatePaint() OVERRIDE; 7415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void DidFlushPaint() OVERRIDE; 74258e6fbe4ee35d65e14b626c557d37565bf8ad179Ben Murdoch virtual PepperPluginInstanceImpl* GetBitmapForOptimizedPluginPaint( 7435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const gfx::Rect& paint_bounds, 7445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) TransportDIB** dib, 7455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) gfx::Rect* location, 7465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) gfx::Rect* clip, 7475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) float* scale_factor) OVERRIDE; 7485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual gfx::Vector2d GetScrollOffset() OVERRIDE; 7495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void DidHandleKeyEvent() OVERRIDE; 7505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool WillHandleMouseEvent( 7515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebMouseEvent& event) OVERRIDE; 7527d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) virtual bool WillHandleKeyEvent( 7537d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) const WebKit::WebKeyboardEvent& event) OVERRIDE; 7545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool WillHandleGestureEvent( 7555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebGestureEvent& event) OVERRIDE; 7565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void DidHandleMouseEvent(const WebKit::WebMouseEvent& event) OVERRIDE; 7575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void DidHandleTouchEvent(const WebKit::WebTouchEvent& event) OVERRIDE; 7582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual bool HasTouchEventHandlersAt(const gfx::Point& point) const OVERRIDE; 7595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void OnSetFocus(bool enable) OVERRIDE; 7605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void OnWasHidden() OVERRIDE; 7615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void OnWasShown(bool needs_repainting) OVERRIDE; 7622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual GURL GetURLForGraphicsContext3D() OVERRIDE; 7635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool ForceCompositingModeEnabled() OVERRIDE; 7645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void OnImeSetComposition( 7655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const string16& text, 7665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::vector<WebKit::WebCompositionUnderline>& underlines, 7675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int selection_start, 7685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int selection_end) OVERRIDE; 7697dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch virtual void OnImeConfirmComposition(const string16& text, 77058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) const gfx::Range& replacement_range, 7717dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch bool keep_selection) OVERRIDE; 7722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual void SetDeviceScaleFactor(float device_scale_factor) OVERRIDE; 7735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual ui::TextInputType GetTextInputType() OVERRIDE; 7745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void GetSelectionBounds(gfx::Rect* start, gfx::Rect* end) OVERRIDE; 7757dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#if defined(OS_MACOSX) || defined(OS_WIN) || defined(USE_AURA) 7765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void GetCompositionCharacterBounds( 7775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::vector<gfx::Rect>* character_bounds) OVERRIDE; 77858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) virtual void GetCompositionRange(gfx::Range* range) OVERRIDE; 7797dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#endif 7805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool CanComposeInline() OVERRIDE; 7812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual void DidCommitCompositorFrame() OVERRIDE; 7822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual void InstrumentWillBeginFrame() OVERRIDE; 7832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual void InstrumentDidBeginFrame() OVERRIDE; 7842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual void InstrumentDidCancelFrame() OVERRIDE; 7852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual void InstrumentWillComposite() OVERRIDE; 7862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual bool AllowPartialSwap() const OVERRIDE; 7872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 7882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) protected: 7892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) explicit RenderViewImpl(RenderViewImplParams* params); 7902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 7912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void Initialize(RenderViewImplParams* params); 7922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 7932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Do not delete directly. This class is reference counted. 7942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual ~RenderViewImpl(); 7955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 7965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private: 7975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // For unit tests. 7985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) friend class ExternalPopupMenuTest; 7995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) friend class PepperDeviceTest; 8005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) friend class RendererAccessibilityTest; 8015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) friend class RenderViewTest; 8025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 803bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch // TODO(nasko): Temporarily friend RenderFrameImpl, so we don't duplicate 804bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch // utility functions needed in both classes, while we move frame specific 805bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch // code away from this class. 806bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch friend class RenderFrameImpl; 807bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch 8085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(ExternalPopupMenuRemoveTest, RemoveOnChange); 8095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(ExternalPopupMenuTest, NormalCase); 8105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(ExternalPopupMenuTest, ShowPopupThenNavigate); 811eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch FRIEND_TEST_ALL_PREFIXES(RendererAccessibilityTest, 812eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch AccessibilityMessagesQueueWhileSwappedOut); 8135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, DecideNavigationPolicyForWebUI); 8145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, 815c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) DidFailProvisionalLoadWithErrorForError); 816c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, 817c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) DidFailProvisionalLoadWithErrorForCancellation); 818c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, 8195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DontIgnoreBackAfterNavEntryLimit); 8205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, ImeComposition); 8215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, InsertCharacters); 8225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, JSBlockSentAfterPageLoad); 8235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, LastCommittedUpdateState); 8245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, OnExtendSelectionAndDelete); 8255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, OnHandleKeyboardEvent); 8267d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, OnImeTypeChanged); 8275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, OnNavStateChanged); 8285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, OnSetTextDirection); 8295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, OnUpdateWebPreferences); 8305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, SendSwapOutACK); 8312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, ReloadWhileSwappedOut); 8325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, 8335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SetEditableSelectionAndComposition); 8345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, StaleNavigationsIgnored); 8355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, UpdateTargetURLWithInvalidURL); 8365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, 8375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GetCompositionCharacterBoundsTest); 8385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, OnNavigationHttpPost); 8395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_MACOSX) 8405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewTest, MacTestCmdUp); 8415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 8425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, SetHistoryLengthAndPrune); 8435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, ZoomLimit); 8442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, NavigateFrame); 8452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, 8462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ShouldUpdateSelectionTextFromContextMenuParams); 847868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, BasicRenderFrame); 8489ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch FRIEND_TEST_ALL_PREFIXES(RenderViewImplTest, TextInputTypeWithPepper); 8495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 8505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) typedef std::map<GURL, double> HostZoomLevels; 8515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 8525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) enum ErrorPageType { 8535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DNS_ERROR, 8545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) HTTP_404, 8555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) CONNECTION_ERROR, 8565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) }; 8575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 858bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch static WebKit::WebReferrerPolicy GetReferrerPolicyFromRequest( 859bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch WebKit::WebFrame* frame, 860bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch const WebKit::WebURLRequest& request); 861bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch 862bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch static Referrer GetReferrerFromRequest( 863bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch WebKit::WebFrame* frame, 864bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch const WebKit::WebURLRequest& request); 865bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch 866bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch static webkit_glue::WebURLResponseExtraDataImpl* GetExtraDataFromResponse( 867bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch const WebKit::WebURLResponse& response); 868bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch 8695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void UpdateURL(WebKit::WebFrame* frame); 8705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void UpdateTitle(WebKit::WebFrame* frame, const string16& title, 8715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebTextDirection title_direction); 8725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void UpdateSessionHistory(WebKit::WebFrame* frame); 8735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void SendUpdateState(const WebKit::WebHistoryItem& item); 8745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 8755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Update current main frame's encoding and send it to browser window. 8765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Since we want to let users see the right encoding info from menu 8775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // before finishing loading, we call the UpdateEncoding in 8785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // a) function:DidCommitLoadForFrame. When this function is called, 8795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // that means we have got first data. In here we try to get encoding 8805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // of page if it has been specified in http header. 8815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // b) function:DidReceiveTitle. When this function is called, 8825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // that means we have got specified title. Because in most of webpages, 8835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // title tags will follow meta tags. In here we try to get encoding of 8845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // page if it has been specified in meta tag. 8855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // c) function:DidFinishDocumentLoadForFrame. When this function is 8865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // called, that means we have got whole html page. In here we should 8875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // finally get right encoding of page. 8885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void UpdateEncoding(WebKit::WebFrame* frame, 8895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& encoding_name); 8905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 8915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OpenURL(WebKit::WebFrame* frame, 8925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const GURL& url, 8935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const Referrer& referrer, 8945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebNavigationPolicy policy); 8955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 8965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool RunJavaScriptMessage(JavaScriptMessageType type, 8975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const string16& message, 8985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const string16& default_value, 8995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const GURL& frame_url, 9005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) string16* result); 9015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 9025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Sends a message and runs a nested message loop. 9035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool SendAndRunNestedMessageLoop(IPC::SyncMessage* message); 9045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 9055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Called when the "pinned to left/right edge" state needs to be updated. 9065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void UpdateScrollState(WebKit::WebFrame* frame); 9075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 9085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // IPC message handlers ------------------------------------------------------ 9095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // 9105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The documentation for these functions should be in 911c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // content/common/*_messages.h for the message that the function is handling. 912c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 913c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void OnCopy(); 914c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void OnCut(); 915c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void OnDelete(); 916c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void OnExecuteEditCommand(const std::string& name, const std::string& value); 917c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void OnMoveCaret(const gfx::Point& point); 918c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void OnPaste(); 919c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void OnPasteAndMatchStyle(); 920c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void OnRedo(); 921c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void OnReplace(const string16& text); 922c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void OnReplaceMisspelling(const string16& text); 923c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void OnScrollFocusedEditableNodeIntoRect(const gfx::Rect& rect); 924c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void OnSelectAll(); 925c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void OnSelectRange(const gfx::Point& start, const gfx::Point& end); 926c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void OnSetEditCommandsForNextKeyEvent(const EditCommands& edit_commands); 927c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void OnUndo(); 928c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void OnUnselect(); 9295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 9302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void OnAllowBindings(int enabled_bindings_flags); 9315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnAllowScriptToClose(bool script_can_close); 9325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnCancelDownload(int32 download_id); 9335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnClearFocusedNode(); 9345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnClosePage(); 9355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnContextMenuClosed(const CustomContextMenuContext& custom_context); 9367d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) void OnShowContextMenu(const gfx::Point& location); 9375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnCopyImageAt(int x, int y); 9385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnCSSInsertRequest(const string16& frame_xpath, 9395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& css); 9405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnCustomContextMenuAction(const CustomContextMenuContext& custom_context, 9415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) unsigned action); 9422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void OnSetName(const std::string& name); 9435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnDeterminePageLanguage(); 9445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnDisableScrollbarsForSmallWindows( 9455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const gfx::Size& disable_scrollbars_size_limit); 9465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnDisassociateFromPopupCount(); 9475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnDragSourceEndedOrMoved(const gfx::Point& client_point, 9485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const gfx::Point& screen_point, 9495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool ended, 9505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebDragOperation drag_operation); 9515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnDragSourceSystemDragEnded(); 9525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnDragTargetDrop(const gfx::Point& client_pt, 9535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const gfx::Point& screen_pt, 9545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int key_modifiers); 955eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch void OnDragTargetDragEnter(const DropData& drop_data, 9565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const gfx::Point& client_pt, 9575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const gfx::Point& screen_pt, 9585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebDragOperationsMask operations_allowed, 9595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int key_modifiers); 9605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnDragTargetDragLeave(); 9615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnDragTargetDragOver(const gfx::Point& client_pt, 9625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const gfx::Point& screen_pt, 9635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebDragOperationsMask operations_allowed, 9645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int key_modifiers); 9655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnEnablePreferredSizeChangedMode(); 9665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnEnableAutoResize(const gfx::Size& min_size, const gfx::Size& max_size); 9675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnDisableAutoResize(const gfx::Size& new_size); 9682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void OnEnumerateDirectoryResponse(int id, 9692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const std::vector<base::FilePath>& paths); 9702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void OnExtendSelectionAndDelete(int before, int after); 9715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnFileChooserResponse( 9725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::vector<ui::SelectedFileInfo>& files); 9735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnFind(int request_id, const string16&, const WebKit::WebFindOptions&); 9745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnGetAllSavableResourceLinksForCurrentPage(const GURL& page_url); 9755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnGetSerializedHtmlDataForCurrentPageWithLocalLinks( 9765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::vector<GURL>& links, 9772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const std::vector<base::FilePath>& local_paths, 9782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const base::FilePath& local_directory_name); 9795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnMediaPlayerActionAt(const gfx::Point& location, 9805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebMediaPlayerAction& action); 9815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 9825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Screen has rotated. 0 = default (portrait), 90 = one turn right, and so on. 9835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnOrientationChangeEvent(int orientation); 9845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 9855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnPluginActionAt(const gfx::Point& location, 9865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebPluginAction& action); 9875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnMoveOrResizeStarted(); 9882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void OnNavigate(const ViewMsg_Navigate_Params& params); 9895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnPostMessageEvent(const ViewMsg_PostMessage_Params& params); 9905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnReleaseDisambiguationPopupDIB(TransportDIB::Handle dib_handle); 9915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnReloadFrame(); 9925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnResetPageEncodingToDefault(); 9935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnScriptEvalRequest(const string16& frame_xpath, 9945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const string16& jscript, 9955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int id, 9965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool notify_result); 9972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void OnSetAccessibilityMode(AccessibilityMode new_mode); 9985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnSetActive(bool active); 9995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnSetAltErrorPageURL(const GURL& gurl); 10005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnSetBackground(const SkBitmap& background); 10012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void OnSetCompositionFromExistingText( 10025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int start, int end, 10035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::vector<WebKit::WebCompositionUnderline>& underlines); 1004c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void OnExitFullscreen(); 10052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void OnSetEditableSelectionOffsets(int start, int end); 10062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void OnSetHistoryLengthAndPrune(int history_length, int32 minimum_page_id); 10075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnSetInitialFocus(bool reverse); 10085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnSetPageEncoding(const std::string& encoding_name); 10095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnSetRendererPrefs(const RendererPreferences& renderer_prefs); 1010c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void OnSetWebUIProperty(const std::string& name, const std::string& value); 10115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnSetZoomLevel(double zoom_level); 10122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void OnSetZoomLevelForLoadingURL(const GURL& url, double zoom_level); 10135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnShouldClose(); 10145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnStop(); 10155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnStopFinding(StopFindAction action); 10167d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) void OnSwapOut(); 10175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnThemeChanged(); 10185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnUpdateTargetURLAck(); 10195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnUpdateTimezone(); 1020c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void OnUpdateWebPreferences(const WebPreferences& prefs); 10215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnZoom(PageZoom zoom); 10235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnZoomFactor(PageZoom zoom, int zoom_center_x, int zoom_center_y); 10245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnEnableViewSourceMode(); 10265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnJavaBridgeInit(); 10285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void OnDisownOpener(); 10305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_ANDROID) 10325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnActivateNearestFindResult(int request_id, float x, float y); 10335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnFindMatchRects(int current_version); 10345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnSelectPopupMenuItems(bool canceled, 10355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::vector<int>& selected_indices); 10365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnUndoScrollFocusedEditableNodeIntoRect(); 1037c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void OnUpdateTopControlsState(bool enable_hiding, 1038c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) bool enable_showing, 1039c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) bool animate); 10405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#elif defined(OS_MACOSX) 10415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnCopyToFindPboard(); 10425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnPluginImeCompositionCompleted(const string16& text, int plugin_id); 10432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void OnSelectPopupMenuItem(int selected_index); 10445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnSetInLiveResize(bool in_live_resize); 10455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnSetWindowVisibility(bool visible); 10465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnWindowFrameChanged(const gfx::Rect& window_frame, 10475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const gfx::Rect& view_frame); 10485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 10495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void OnWindowSnapshotCompleted(const int snapshot_id, 10512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const gfx::Size& size, const std::vector<unsigned char>& png); 10522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 10535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Adding a new message handler? Please add it in alphabetical order above 10555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // and put it in the same position in the .cc file. 10565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Misc private functions ---------------------------------------------------- 10585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void ZoomFactorHelper(PageZoom zoom, int zoom_center_x, int zoom_center_y, 10595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) float scaling_increment); 10605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void AltErrorPageFinished(WebKit::WebFrame* frame, 1062c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const WebKit::WebURLRequest& original_request, 10635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebURLError& original_error, 10645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& html); 10655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Check whether the preferred size has changed. 10675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void CheckPreferredSize(); 10685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 106958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) // Initializes |media_stream_client_|, returning true if successful. Returns 107058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) // false if it wasn't possible to create a MediaStreamClient (e.g., WebRTC is 107158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) // disabled) in which case |media_stream_client_| is NULL. 107258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) bool InitializeMediaStreamClient(); 10735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // This callback is triggered when DownloadFavicon completes, either 10755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // succesfully or with a failure. See DownloadFavicon for more 10765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // details. 1077a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles) void DidDownloadFavicon(ImageResourceFetcher* fetcher, 10785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const SkBitmap& image); 10795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Requests to download a favicon image. When done, the RenderView is notified 10815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // by way of DidDownloadFavicon. Returns true if the request was successfully 10825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // started, false otherwise. id is used to uniquely identify the request and 10835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // passed back to the DidDownloadFavicon method. If the image has multiple 10845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // frames, the frame whose size is image_size is returned. If the image 10855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // doesn't have a frame at the specified size, the first is returned. 10865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool DownloadFavicon(int id, const GURL& image_url, int image_size); 10875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GURL GetAlternateErrorPageURL(const GURL& failed_url, 10895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ErrorPageType error_type); 10905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Locates a sub frame with given xpath 10925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebFrame* GetChildFrame(const string16& frame_xpath) const; 10935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Returns the URL being loaded by the given frame's request. 10955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GURL GetLoadingUrl(WebKit::WebFrame* frame) const; 10965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Should only be called if this object wraps a PluginDocument. 10985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebPlugin* GetWebPluginFromPluginDocument(); 10995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 11005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Returns true if the |params| navigation is to an entry that has been 11015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // cropped due to a recent navigation the browser did not know about. 11025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool IsBackForwardToStaleEntry(const ViewMsg_Navigate_Params& params, 11035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool is_reload); 11045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 11055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool MaybeLoadAlternateErrorPage(WebKit::WebFrame* frame, 11065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebURLError& error, 11075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool replace); 11085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 11095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Make this RenderView show an empty, unscriptable page. 11105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void NavigateToSwappedOutURL(WebKit::WebFrame* frame); 11115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 11125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // If we initiated a navigation, this function will populate |document_state| 11135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // with the navigation information saved in OnNavigate(). 11145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void PopulateDocumentStateFromPending(DocumentState* document_state); 11155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 11165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Returns a new NavigationState populated with the navigation information 11175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // saved in OnNavigate(). 11185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) NavigationState* CreateNavigationStateFromPending(); 11195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 11202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Processes the command-line flags --enable-viewport, 11212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // --enable-fixed-layout[=w,h] and --enable-pinch. 11225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void ProcessViewLayoutFlags(const CommandLine& command_line); 11235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 11245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_ANDROID) 11255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Launch an Android content intent with the given URL. 11265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void LaunchAndroidContentIntent(const GURL& intent_url, size_t request_id); 11275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 11285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 11295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Sends a reply to the current find operation handling if it was a 11305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // synchronous find request. 11315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void SendFindReply(int request_id, 11325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int match_count, 11335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int ordinal, 11345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebRect& selection_rect, 11355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool final_status_update); 11365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 11372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Returns whether |params.selection_text| should be synchronized to the 11382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // browser before bringing up the context menu. Static for testing. 11392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) static bool ShouldUpdateSelectionTextFromContextMenuParams( 11402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const string16& selection_text, 11412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) size_t selection_text_offset, 114258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) const gfx::Range& selection_range, 11432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const ContextMenuParams& params); 11442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 11455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Starts nav_state_sync_timer_ if it isn't already running. 11465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void StartNavStateSyncTimerIfNecessary(); 11475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 11485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Dispatches the current state of selection on the webpage to the browser if 11495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // it has changed. 11505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // TODO(varunjain): delete this method once we figure out how to keep 11515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // selection handles in sync with the webpage. 11525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void SyncSelectionIfRequired(); 11535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 11545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_POSIX) && !defined(OS_MACOSX) 11555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void UpdateFontRenderingFromRendererPrefs(); 11565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else 11575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void UpdateFontRenderingFromRendererPrefs() {} 11585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 11595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 11605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Update the target url and tell the browser that the target URL has changed. 11615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // If |url| is empty, show |fallback_url|. 11625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void UpdateTargetURL(const GURL& url, const GURL& fallback_url); 11635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1164c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // Tells the browser what the new list of favicons for the webpage is. 1165c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void SendUpdateFaviconURL(const std::vector<FaviconURL>& urls); 1166c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 1167c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // Invoked from DidStopLoading(). Sends the current list of loaded favicons to 1168c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // the browser. 1169c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) void DidStopLoadingIcons(); 1170c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 11712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Coordinate conversion ----------------------------------------------------- 11722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 11732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) gfx::RectF ClientRectToPhysicalWindowRect(const gfx::RectF& rect) const; 11742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 11755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // --------------------------------------------------------------------------- 11765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // ADDING NEW FUNCTIONS? Please keep private functions alphabetized and put 11775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // it in the same order in the .cc file as it was in the header. 11785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // --------------------------------------------------------------------------- 11795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 11805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Settings ------------------------------------------------------------------ 11815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1182c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) WebPreferences webkit_preferences_; 11835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) RendererPreferences renderer_preferences_; 11845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 11855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) HostZoomLevels host_zoom_levels_; 11865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 11875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Whether content state (such as form state, scroll position and page 11885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // contents) should be sent to the browser immediately. This is normally 11895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // false, but set to true by some tests. 11905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool send_content_state_immediately_; 11915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 11925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Bitwise-ORed set of extra bindings that have been enabled. See 11935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // BindingsPolicy for details. 11945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int enabled_bindings_; 11955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 11965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The alternate error page URL, if one exists. 11975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GURL alternate_error_page_url_; 11985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 11995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // If true, we send IPC messages when |preferred_size_| changes. 12005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool send_preferred_size_changes_; 12015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // If non-empty, and |send_preferred_size_changes_| is true, disable drawing 12035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // scroll bars on windows smaller than this size. Used for windows that the 12045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // browser resizes to the size of the content, such as browser action popups. 12055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // If a render view is set to the minimum size of its content, webkit may add 12065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // scroll bars. This makes sense for fixed sized windows, but it does not 12075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // make sense when the size of the view was chosen to fit the content. 12085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // This setting ensures that no scroll bars are drawn. The size limit exists 12095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // because if the view grows beyond a size known to the browser, scroll bars 12105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // should be drawn. 12115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) gfx::Size disable_scrollbars_size_limit_; 12125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Loading state ------------------------------------------------------------- 12145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // True if the top level frame is currently being loaded. 12165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool is_loading_; 12175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The gesture that initiated the current navigation. 12195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) NavigationGesture navigation_gesture_; 12205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Used for popups. 12225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool opened_by_user_gesture_; 12235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Whether this RenderView was created by a frame that was suppressing its 12255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // opener. If so, we may want to load pages in a separate process. See 12265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // decidePolicyForNavigation for details. 12275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool opener_suppressed_; 12285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Holds state pertaining to a navigation that we initiated. This is held by 12305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // the WebDataSource::ExtraData attribute. We use pending_navigation_state_ 12315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // as a temporary holder for the state until the WebDataSource corresponding 12325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // to the new navigation is created. See DidCreateDataSource. 12335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) scoped_ptr<ViewMsg_Navigate_Params> pending_navigation_params_; 12345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Timer used to delay the updating of nav state (see SyncNavigationState). 12365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) base::OneShotTimer<RenderViewImpl> nav_state_sync_timer_; 12375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Page IDs ------------------------------------------------------------------ 12395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // See documentation in RenderView. 12405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int32 page_id_; 12415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Indicates the ID of the last page that we sent a FrameNavigate to the 12435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // browser for. This is used to determine if the most recent transition 12445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // generated a history entry (less than page_id_), or not (equal to or 12455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // greater than). Note that this will be greater than page_id_ if the user 12465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // goes back. 12475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int32 last_page_id_sent_to_browser_; 12485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The next available page ID to use for this RenderView. These IDs are 12505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // specific to a given RenderView and the frames within it. 12515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int32 next_page_id_; 12525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The offset of the current item in the history list. 12545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int history_list_offset_; 12555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The RenderView's current impression of the history length. This includes 12575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // any items that have committed in this process, but because of cross-process 12585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // navigations, the history may have some entries that were committed in other 12595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // processes. We won't know about them until the next navigation in this 12605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // process. 12615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int history_list_length_; 12625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The list of page IDs for each history item this RenderView knows about. 12645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Some entries may be -1 if they were rendered by other processes or were 12655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // restored from a previous session. This lets us detect attempts to 12665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // navigate to stale entries that have been cropped from our history. 12675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::vector<int32> history_page_ids_; 12685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Page info ----------------------------------------------------------------- 12705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The last gotten main frame's encoding. 12725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::string last_encoding_name_; 12735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // UI state ------------------------------------------------------------------ 12755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The state of our target_url transmissions. When we receive a request to 12775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // send a URL to the browser, we set this to TARGET_INFLIGHT until an ACK 12785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // comes back - if a new request comes in before the ACK, we store the new 12795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // URL in pending_target_url_ and set the status to TARGET_PENDING. If an 12805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // ACK comes back and we are in TARGET_PENDING, we send the stored URL and 12815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // revert to TARGET_INFLIGHT. 12825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // 12835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // We don't need a queue of URLs to send, as only the latest is useful. 12845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) enum { 12855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) TARGET_NONE, 12865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) TARGET_INFLIGHT, // We have a request in-flight, waiting for an ACK 12875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) TARGET_PENDING // INFLIGHT + we have a URL waiting to be sent 12885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } target_url_status_; 12895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The URL we show the user in the status bar. We use this to determine if we 12915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // want to send a new one (we do not need to send duplicates). It will be 12925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // equal to either |mouse_over_url_| or |focus_url_|, depending on which was 12935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // updated last. 12945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GURL target_url_; 12955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The URL the user's mouse is hovering over. 12975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GURL mouse_over_url_; 12985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 12995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The URL that has keyboard focus. 13005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GURL focus_url_; 13015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The next target URL we want to send to the browser. 13035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GURL pending_target_url_; 13045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // The text selection the last time DidChangeSelection got called. May contain 13062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // additional characters before and after the selected text, for IMEs. The 13072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // portion of this string that is the actual selected text starts at index 13082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // |selection_range_.GetMin() - selection_text_offset_| and has length 13092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // |selection_range_.length()|. 13105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) string16 selection_text_; 13112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // The offset corresponding to the start of |selection_text_| in the document. 13125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) size_t selection_text_offset_; 13132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Range over the document corresponding to the actual selected text (which 13142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // could correspond to a substring of |selection_text_|; see above). 131558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) gfx::Range selection_range_; 13165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // External context menu requests we're waiting for. "Internal" 13185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // (WebKit-originated) context menu events will have an ID of 0 and will not 13195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // be in this map. 13205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // 13215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // We don't want to add internal ones since some of the "special" page 13225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // handlers in the browser process just ignore the context menu requests so 13235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // avoid showing context menus, and so this will cause right clicks to leak 13245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // entries in this map. Most users of the custom context menu (e.g. Pepper 13255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // plugins) are normally only on "regular" pages and the regular pages will 13265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // always respond properly to the request, so we don't have to worry so 13275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // much about leaks. 13285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) IDMap<ContextMenuClient, IDMapExternalPointer> pending_context_menus_; 13295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13307d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#if defined(OS_ANDROID) 13317d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) // Cache the old top controls state constraints. Used when updating 13327d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) // current value only without altering the constraints. 13337d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) cc::TopControlsState top_controls_constraints_; 13347d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#endif 13357d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 13365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // View ---------------------------------------------------------------------- 13375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Cache the preferred size of the page in order to prevent sending the IPC 13395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // when layout() recomputes but doesn't actually change sizes. 13405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) gfx::Size preferred_size_; 13415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Used to delay determining the preferred size (to avoid intermediate 13435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // states for the sizes). 13445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) base::OneShotTimer<RenderViewImpl> check_preferred_size_timer_; 13455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // These store the "is main frame is scrolled all the way to the left 13475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // or right" state that was last sent to the browser. 13485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool cached_is_main_frame_pinned_to_left_; 13495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool cached_is_main_frame_pinned_to_right_; 13505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // These store the "has scrollbars" state last sent to the browser. 13525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool cached_has_main_frame_horizontal_scrollbar_; 13535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool cached_has_main_frame_vertical_scrollbar_; 13545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Helper objects ------------------------------------------------------------ 13565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1357868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) scoped_ptr<RenderFrameImpl> main_render_frame_; 1358868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) 13595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) RendererWebCookieJarImpl cookie_jar_; 13605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The next group of objects all implement RenderViewObserver, so are deleted 13625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // along with the RenderView automatically. This is why we just store 13635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // weak references. 13645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Holds a reference to the service which provides desktop notifications. 13665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) NotificationProvider* notification_provider_; 13675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The geolocation dispatcher attached to this view, lazily initialized. 13695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GeolocationDispatcher* geolocation_dispatcher_; 13705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The speech dispatcher attached to this view, lazily initialized. 13725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) InputTagSpeechDispatcher* input_tag_speech_dispatcher_; 13735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The speech recognition dispatcher attached to this view, lazily 13755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // initialized. 13765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SpeechRecognitionDispatcher* speech_recognition_dispatcher_; 13775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Device orientation dispatcher attached to this view; lazily initialized. 13795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DeviceOrientationDispatcher* device_orientation_dispatcher_; 13805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // MediaStream dispatcher attached to this view; lazily initialized. 13825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MediaStreamDispatcher* media_stream_dispatcher_; 13835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // BrowserPluginManager attached to this view; lazily initialized. 13852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) scoped_refptr<BrowserPluginManager> browser_plugin_manager_; 13862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 13877dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch // MediaStreamClient attached to this view; lazily initialized. 13887dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch MediaStreamClient* media_stream_client_; 13897dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch WebKit::WebUserMediaClient* web_user_media_client_; 13905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 139158e6fbe4ee35d65e14b626c557d37565bf8ad179Ben Murdoch // MIDIClient attached to this view; lazily initialized. 139258e6fbe4ee35d65e14b626c557d37565bf8ad179Ben Murdoch MIDIDispatcher* midi_dispatcher_; 139358e6fbe4ee35d65e14b626c557d37565bf8ad179Ben Murdoch 13945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DevToolsAgent* devtools_agent_; 13955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The current accessibility mode. 13975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) AccessibilityMode accessibility_mode_; 13985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Only valid if |accessibility_mode_| is anything other than 14005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // AccessibilityModeOff. 14015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) RendererAccessibility* renderer_accessibility_; 14025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 14035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Java Bridge dispatcher attached to this view; lazily initialized. 14045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) JavaBridgeDispatcher* java_bridge_dispatcher_; 14055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 14065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Mouse Lock dispatcher attached to this view. 14075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MouseLockDispatcher* mouse_lock_dispatcher_; 14085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 14095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_ANDROID) 14105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Android Specific --------------------------------------------------------- 14115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 14125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The background color of the document body element. This is used as the 14135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // default background color for filling the screen areas for which we don't 14145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // have the actual content. 14155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SkColor body_background_color_; 14165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 14175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Expected id of the next content intent launched. Used to prevent scheduled 14185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // intents to be launched if aborted. 14195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) size_t expected_content_intent_id_; 14205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 14215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // List of click-based content detectors. 14225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) typedef std::vector< linked_ptr<ContentDetector> > ContentDetectorList; 14235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ContentDetectorList content_detectors_; 14245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 14255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Proxy class for WebMediaPlayer to communicate with the real media player 14265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // objects in browser process. 1427eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch WebMediaPlayerProxyAndroid* media_player_proxy_; 14285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 14295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The media player manager for managing all the media players on this view. 14307dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch scoped_ptr<RendererMediaPlayerManager> media_player_manager_; 14315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 14322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // A date/time picker object for date and time related input elements. 14332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) scoped_ptr<RendererDateTimePicker> date_time_picker_client_; 14345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 14355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1436c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // Plugins ------------------------------------------------------------------- 1437c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 1438c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // All the currently active plugin delegates for this RenderView; kept so 1439c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // that we can enumerate them to send updates about things like window 1440c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // location or tab focus and visibily. These are non-owning references. 1441c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) std::set<WebPluginDelegateProxy*> plugin_delegates_; 1442c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 1443c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#if defined(OS_WIN) 1444c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // The ID of the focused NPAPI plug-in. 1445c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) int focused_plugin_id_; 1446c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#endif 1447c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 14483240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch#if defined(ENABLE_PLUGINS) 14493240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch typedef std::set<PepperPluginInstanceImpl*> PepperPluginSet; 14503240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch PepperPluginSet active_pepper_instances_; 14513240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch 14523240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch // Whether or not the focus is on a PPAPI plugin 14533240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch PepperPluginInstanceImpl* focused_pepper_plugin_; 14543240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch 14553240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch // Current text input composition text. Empty if no composition is in 14563240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch // progress. 14573240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch string16 pepper_composition_text_; 14583240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch 14593240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch // The plugin instance that received the last mouse event. It is set to NULL 14603240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch // if the last mouse event went to elements other than Pepper plugins. 14613240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch // |pepper_last_mouse_event_target_| is not owned by this class. We can know 14623240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch // about when it is destroyed via InstanceDeleted(). 14633240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch PepperPluginInstanceImpl* pepper_last_mouse_event_target_; 14643240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch#endif 14653240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch 14665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Misc ---------------------------------------------------------------------- 14675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 14685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The current and pending file chooser completion objects. If the queue is 14695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // nonempty, the first item represents the currently running file chooser 14705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // callback, and the remaining elements are the other file chooser completion 14715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // still waiting to be run (in order). 14725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) struct PendingFileChooser; 14735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::deque< linked_ptr<PendingFileChooser> > file_chooser_completions_; 14745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 14755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The current directory enumeration callback 14765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::map<int, WebKit::WebFileChooserCompletion*> enumeration_completions_; 14775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int enumeration_completion_id_; 14785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 14795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Reports load progress to the browser. 14805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) scoped_ptr<LoadProgressTracker> load_progress_tracker_; 14815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 14825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The SessionStorage namespace that we're assigned to has an ID, and that ID 14835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // is passed to us upon creation. WebKit asks for this ID upon first use and 14845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // uses it whenever asking the browser process to allocate new storage areas. 14855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int64 session_storage_namespace_id_; 14865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 14875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The total number of unrequested popups that exist and can be followed back 14885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // to a common opener. This count is shared among all RenderViews created with 14895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // createView(). All popups are treated as unrequested until specifically 14905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // instructed otherwise by the Browser process. 14915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) scoped_refptr<SharedRenderViewCounter> shared_popup_counter_; 14925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 14935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Whether this is a top level window (instead of a popup). Top level windows 14945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // shouldn't count against their own |shared_popup_counter_|. 14955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool decrement_shared_popup_at_destruction_; 14965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 14975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Stores edit commands associated to the next key event. 14985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Shall be cleared as soon as the next key event is processed. 14995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EditCommands edit_commands_; 15005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 15015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The external popup for the currently showing select popup. 15025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) scoped_ptr<ExternalPopupMenu> external_popup_menu_; 15035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 15045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The node that the context menu was pressed over. 15055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebNode context_menu_node_; 15065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 15075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // All the registered observers. We expect this list to be small, so vector 15085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // is fine. 15095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ObserverList<RenderViewObserver> observers_; 15105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 15115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Used to inform didChangeSelection() when it is called in the context 1512c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // of handling a InputMsg_SelectRange IPC. 15135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool handling_select_range_; 15145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 15155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Wraps the |webwidget_| as a MouseLockDispatcher::LockTarget interface. 15165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) scoped_ptr<MouseLockDispatcher::LockTarget> webwidget_mouse_lock_target_; 15175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 15182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // State associated with the GetWindowSnapshot function. 15192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int next_snapshot_id_; 15203240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch typedef std::map<int, WindowSnapshotCallback> PendingSnapshotMap; 15212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PendingSnapshotMap pending_snapshots_; 15222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1523c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // Allows to selectively disable partial buffer swap for this renderer's 1524c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // compositor. 15252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) bool allow_partial_swap_; 15262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 15275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Allows JS to access DOM automation. The JS object is only exposed when the 15285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // DOM automation bindings are enabled. 15295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) scoped_ptr<DomAutomationController> dom_automation_controller_; 15305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 153158e6fbe4ee35d65e14b626c557d37565bf8ad179Ben Murdoch // Allows JS to read out a variety of internal various metrics. The JS object 153258e6fbe4ee35d65e14b626c557d37565bf8ad179Ben Murdoch // is only exposed when the stats collection bindings are enabled. 153358e6fbe4ee35d65e14b626c557d37565bf8ad179Ben Murdoch scoped_ptr<StatsCollectionController> stats_collection_controller_; 1534868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) 15355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // This field stores drag/drop related info for the event that is currently 15365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // being handled. If the current event results in starting a drag/drop 15375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // session, this info is sent to the browser along with other drag/drop info. 15385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DragEventSourceInfo possible_drag_event_info_; 15395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 15403240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch // NOTE: stats_collection_observer_ should be the last members because their 15413240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch // constructors call the AddObservers method of RenderViewImpl. 1542868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) scoped_ptr<StatsCollectionObserver> stats_collection_observer_; 15432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1544eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch ui::MenuSourceType context_menu_source_type_; 15457d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) gfx::Point touch_editing_context_menu_location_; 15467d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 15475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // --------------------------------------------------------------------------- 15485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // ADDING NEW DATA? Please see if it fits appropriately in one of the above 15495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // sections rather than throwing it randomly at the end. If you're adding a 15505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // bunch of stuff, you should probably create a helper class and put your 15515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // data and methods on that to avoid bloating RenderView more. You can 15525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // use the Observer interface to filter IPC messages and receive frame change 15535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // notifications. 15545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // --------------------------------------------------------------------------- 15555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 15565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(RenderViewImpl); 15575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 15585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 15595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace content 15605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 15615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif // CONTENT_RENDERER_RENDER_VIEW_IMPL_H_ 1562