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_RENDERER_WEBKITPLATFORMSUPPORT_IMPL_H_ 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define CONTENT_RENDERER_RENDERER_WEBKITPLATFORMSUPPORT_IMPL_H_ 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/compiler_specific.h" 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/memory/scoped_ptr.h" 10effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch#include "content/child/blink_platform_impl.h" 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/common/content_export.h" 12f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#include "content/renderer/compositor_bindings/web_compositor_support_impl.h" 13f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "content/renderer/webpublicsuffixlist_impl.h" 14868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "third_party/WebKit/public/platform/WebGraphicsContext3D.h" 15868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "third_party/WebKit/public/platform/WebIDBFactory.h" 160529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch#include "third_party/WebKit/public/platform/WebScreenOrientationType.h" 172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 18eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochnamespace base { 19eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochclass MessageLoopProxy; 20eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch} 21eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace cc { 232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class ContextProvider; 242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 26eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochnamespace IPC { 27eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochclass SyncMessageFilter; 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 30f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)namespace blink { 3146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)class WebBatteryStatus; 329ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdochclass WebDeviceMotionData; 333551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)class WebDeviceOrientationData; 34b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)class WebGraphicsContext3DProvider; 35b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)} 36b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace content { 38cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)class BatteryStatusDispatcher; 397dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochclass DeviceMotionEventPump; 402385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdochclass DeviceOrientationEventPump; 41558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdochclass QuotaMessageFilter; 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class RendererClipboardClient; 43f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)class RenderView; 446d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)class RendererGamepadProvider; 452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class ThreadSafeSender; 46eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochclass WebClipboardImpl; 47f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)class WebDatabaseObserverImpl; 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class WebFileSystemImpl; 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class CONTENT_EXPORT RendererWebKitPlatformSupportImpl 51effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch : public BlinkPlatformImpl { 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) RendererWebKitPlatformSupportImpl(); 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual ~RendererWebKitPlatformSupportImpl(); 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void set_plugin_refresh_allowed(bool plugin_refresh_allowed) { 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) plugin_refresh_allowed_ = plugin_refresh_allowed; 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Platform methods: 60f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual blink::WebClipboard* clipboard(); 61f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual blink::WebMimeRegistry* mimeRegistry(); 62f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual blink::WebFileUtilities* fileUtilities(); 63f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual blink::WebSandboxSupport* sandboxSupport(); 64f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual blink::WebCookieJar* cookieJar(); 65f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual blink::WebThemeEngine* themeEngine(); 66f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual blink::WebSpeechSynthesizer* createSpeechSynthesizer( 67f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) blink::WebSpeechSynthesizerClient* client); 682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual bool sandboxEnabled(); 695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual unsigned long long visitedLinkHash( 702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const char* canonicalURL, size_t length); 712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual bool isLinkVisited(unsigned long long linkHash); 72c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch virtual void createMessageChannel(blink::WebMessagePortChannel** channel1, 73c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch blink::WebMessagePortChannel** channel2); 74f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual blink::WebPrescientNetworking* prescientNetworking(); 755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void cacheMetadata( 76f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) const blink::WebURL&, double, const char*, size_t); 77f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual blink::WebString defaultLocale(); 782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual void suddenTerminationChanged(bool enabled); 79f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual blink::WebStorageNamespace* createLocalStorageNamespace(); 80f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual blink::Platform::FileHandle databaseOpenFile( 81f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) const blink::WebString& vfs_file_name, int desired_flags); 82f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual int databaseDeleteFile(const blink::WebString& vfs_file_name, 832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) bool sync_dir); 845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual long databaseGetFileAttributes( 85f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) const blink::WebString& vfs_file_name); 865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual long long databaseGetFileSize( 87f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) const blink::WebString& vfs_file_name); 885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual long long databaseGetSpaceAvailableForOrigin( 89f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) const blink::WebString& origin_identifier); 90f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual blink::WebString signedPublicKeyAndChallengeString( 915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) unsigned key_size_index, 92f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) const blink::WebString& challenge, 93f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) const blink::WebURL& url); 94ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch virtual void getPluginList(bool refresh, 95f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) blink::WebPluginListBuilder* builder); 96f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual blink::WebPublicSuffixList* publicSuffixList(); 97f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual void screenColorProfile(blink::WebVector<char>* to_profile); 98a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) virtual blink::WebScrollbarBehavior* scrollbarBehavior(); 99f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual blink::WebIDBFactory* idbFactory(); 100f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual blink::WebFileSystem* fileSystem(); 1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool canAccelerate2dCanvas(); 1022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual bool isThreadedCompositingEnabled(); 1032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual double audioHardwareSampleRate(); 1042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual size_t audioHardwareBufferSize(); 1052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual unsigned audioHardwareOutputChannels(); 106f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual blink::WebDatabaseObserver* databaseObserver(); 1072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 108f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual blink::WebAudioDevice* createAudioDevice( 1092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) size_t buffer_size, unsigned input_channels, unsigned channels, 110f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) double sample_rate, blink::WebAudioDevice::RenderCallback* callback, 111f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) const blink::WebString& input_device_id); 1122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 113eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch virtual bool loadAudioResource( 114f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) blink::WebAudioBus* destination_bus, const char* audio_file_data, 115a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) size_t data_size); 116eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 117f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual blink::WebMIDIAccessor* 118f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) createMIDIAccessor(blink::WebMIDIAccessorClient* client); 119f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 120f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual blink::WebBlobRegistry* blobRegistry(); 121cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) virtual void sampleGamepads(blink::WebGamepads&); 122cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) virtual void setGamepadListener(blink::WebGamepadListener*); 123f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual blink::WebRTCPeerConnectionHandler* createRTCPeerConnectionHandler( 124f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) blink::WebRTCPeerConnectionHandlerClient* client); 125f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual blink::WebMediaStreamCenter* createMediaStreamCenter( 126f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) blink::WebMediaStreamCenterClient* client); 1272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual bool processMemorySizesInBytes( 1282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) size_t* private_bytes, size_t* shared_bytes); 129f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual blink::WebGraphicsContext3D* createOffscreenGraphicsContext3D( 13023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) const blink::WebGraphicsContext3D::Attributes& attributes); 13123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) virtual blink::WebGraphicsContext3D* createOffscreenGraphicsContext3D( 132a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) const blink::WebGraphicsContext3D::Attributes& attributes, 133a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) blink::WebGraphicsContext3D* share_context); 134f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual blink::WebGraphicsContext3DProvider* 135b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) createSharedOffscreenGraphicsContext3DProvider(); 136f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual blink::WebCompositorSupport* compositorSupport(); 137f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual blink::WebString convertIDNToUnicode( 138f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) const blink::WebString& host, const blink::WebString& languages); 1397dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch virtual void setDeviceMotionListener( 140cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) blink::WebDeviceMotionListener* listener); 1412385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch virtual void setDeviceOrientationListener( 142cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) blink::WebDeviceOrientationListener* listener); 143ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch virtual void queryStorageUsageAndQuota( 144f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) const blink::WebURL& storage_partition, 145f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) blink::WebStorageQuotaType, 146cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) blink::WebStorageQuotaCallbacks); 147ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch virtual void vibrate(unsigned int milliseconds); 148ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch virtual void cancelVibration(); 149cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) virtual void setBatteryStatusListener( 150cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) blink::WebBatteryStatusListener* listener); 1515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1526d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) void set_gamepad_provider(RendererGamepadProvider* provider) { 1536d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) gamepad_provider_ = provider; 1546d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) } 1556d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) 1565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Disables the WebSandboxSupport implementation for testing. 1575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Tests that do not set up a full sandbox environment should call 1585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // SetSandboxEnabledForTesting(false) _before_ creating any instances 1595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // of this class, to ensure that we don't attempt to use sandbox-related 1605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // file descriptors or other resources. 1615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // 1625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Returns the previous |enable| value. 1635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) static bool SetSandboxEnabledForTesting(bool enable); 1645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1659ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch // Set WebDeviceMotionData to return when setDeviceMotionListener is invoked. 1669ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch static void SetMockDeviceMotionDataForTesting( 167f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) const blink::WebDeviceMotionData& data); 1683551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) // Set WebDeviceOrientationData to return when setDeviceOrientationListener 1693551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) // is invoked. 1703551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) static void SetMockDeviceOrientationDataForTesting( 171f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) const blink::WebDeviceOrientationData& data); 1720529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch // Forces the screen orientation for testing purposes. 1730529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch static void SetMockScreenOrientationForTesting( 174f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) RenderView* render_view, 1750529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch blink::WebScreenOrientationType); 176cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // Resets the mock screen orientation data used for testing. 177cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) static void ResetMockScreenOrientationForTesting(); 178f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 17946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) // Notifies blink::WebBatteryStatusListener that battery status has changed. 18046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) static void MockBatteryStatusChangedForTesting( 18146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) const blink::WebBatteryStatus& status); 18246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 183f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) WebDatabaseObserverImpl* web_database_observer_impl() { 184f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) return web_database_observer_impl_.get(); 185f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) } 1865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private: 1885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool CheckPreparsedJsCachingEnabled() const; 1895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) scoped_ptr<RendererClipboardClient> clipboard_client_; 191eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch scoped_ptr<WebClipboardImpl> clipboard_; 1925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) class FileUtilities; 1945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) scoped_ptr<FileUtilities> file_utilities_; 1955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) class MimeRegistry; 1975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) scoped_ptr<MimeRegistry> mime_registry_; 1985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) class SandboxSupport; 2005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) scoped_ptr<SandboxSupport> sandbox_support_; 2015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // This counter keeps track of the number of times sudden termination is 2035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // enabled or disabled. It starts at 0 (enabled) and for every disable 2045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // increments by 1, for every enable decrements by 1. When it reaches 0, 2055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // we tell the browser to enable fast termination. 2065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int sudden_termination_disables_; 2075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // If true, then a GetPlugins call is allowed to rescan the disk. 2095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool plugin_refresh_allowed_; 2105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 211f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) scoped_ptr<blink::WebIDBFactory> web_idb_factory_; 2125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 213f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) scoped_ptr<blink::WebBlobRegistry> blob_registry_; 2145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 215f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) WebPublicSuffixListImpl public_suffix_list_; 2165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2177dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch scoped_ptr<DeviceMotionEventPump> device_motion_event_pump_; 2182385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch scoped_ptr<DeviceOrientationEventPump> device_orientation_event_pump_; 2197dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 220eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch scoped_refptr<base::MessageLoopProxy> child_thread_loop_; 221eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch scoped_refptr<IPC::SyncMessageFilter> sync_message_filter_; 2222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) scoped_refptr<ThreadSafeSender> thread_safe_sender_; 223558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch scoped_refptr<QuotaMessageFilter> quota_message_filter_; 2242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 225f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) scoped_ptr<WebDatabaseObserverImpl> web_database_observer_impl_; 226f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 227f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) WebCompositorSupportImpl compositor_support_; 228a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 229a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) scoped_ptr<blink::WebScrollbarBehavior> web_scrollbar_behavior_; 2305d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 231cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) scoped_ptr<BatteryStatusDispatcher> battery_status_dispatcher_; 232cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 2336d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) RendererGamepadProvider* gamepad_provider_; 2346d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles) 2355d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(RendererWebKitPlatformSupportImpl); 2365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 2375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace content 2395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif // CONTENT_RENDERER_RENDERER_WEBKITPLATFORMSUPPORT_IMPL_H_ 241