chrome_content_renderer_client.h revision ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16
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 CHROME_RENDERER_CHROME_CONTENT_RENDERER_CLIENT_H_ 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define CHROME_RENDERER_CHROME_CONTENT_RENDERER_CLIENT_H_ 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <string> 9c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include <vector> 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 117d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#if defined(ENABLE_PLUGINS) 127d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include <set> 137d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#endif 147d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/compiler_specific.h" 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/memory/scoped_ptr.h" 177d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include "base/strings/string16.h" 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/public/renderer/content_renderer_client.h" 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class ChromeRenderProcessObserver; 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class ExtensionSet; 2290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)class PrescientNetworkingDispatcher; 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class RendererNetPredictor; 24a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#if defined(ENABLE_SPELLCHECK) 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class SpellCheck; 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class SpellCheckProvider; 27a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#endif 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct ChromeViewHostMsg_GetPluginInfo_Output; 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 31ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdochnamespace content { 32ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdochstruct WebPluginInfo; 33ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch} 34ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace extensions { 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class Dispatcher; 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class Extension; 3890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)class RendererPermissionsPolicyDelegate; 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace prerender { 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class PrerenderDispatcher; 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace safe_browsing { 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class PhishingClassifierFilter; 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)namespace visitedlink { 5090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)class VisitedLinkSlave; 5190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)} 5290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace WebKit { 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class WebSecurityOrigin; 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 57868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#if defined(ENABLE_WEBRTC) 58868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)class WebRtcLoggingMessageFilter; 59868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#endif 60868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) 615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace chrome { 625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class ChromeContentRendererClient : public content::ContentRendererClient { 645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ChromeContentRendererClient(); 665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual ~ChromeContentRendererClient(); 675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void RenderThreadStarted() OVERRIDE; 695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void RenderViewCreated(content::RenderView* render_view) OVERRIDE; 705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void SetNumberOfViews(int number_of_views) OVERRIDE; 715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual SkBitmap* GetSadPluginBitmap() OVERRIDE; 722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual SkBitmap* GetSadWebViewBitmap() OVERRIDE; 735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual std::string GetDefaultEncoding() OVERRIDE; 745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool OverrideCreatePlugin( 755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) content::RenderView* render_view, 765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebFrame* frame, 775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebPluginParams& params, 785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebPlugin** plugin) OVERRIDE; 795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual WebKit::WebPlugin* CreatePluginReplacement( 805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) content::RenderView* render_view, 812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const base::FilePath& plugin_path) OVERRIDE; 825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool HasErrorPage(int http_status_code, 835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::string* error_domain) OVERRIDE; 845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void GetNavigationErrorStrings( 85c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) WebKit::WebFrame* frame, 865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebURLRequest& failed_request, 875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebURLError& error, 885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::string* error_html, 895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) string16* error_description) OVERRIDE; 90eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch virtual void DeferMediaLoad(content::RenderView* render_view, 91eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch const base::Closure& closure) OVERRIDE; 925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool RunIdleHandlerWhenWidgetsHidden() OVERRIDE; 932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual bool AllowPopup() OVERRIDE; 945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool ShouldFork(WebKit::WebFrame* frame, 955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const GURL& url, 962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const std::string& http_method, 975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool is_initial_navigation, 98868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) bool is_server_redirect, 995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool* send_referrer) OVERRIDE; 1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool WillSendRequest(WebKit::WebFrame* frame, 1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) content::PageTransition transition_type, 1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const GURL& url, 1032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const GURL& first_party_for_cookies, 1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GURL* new_url) OVERRIDE; 1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool ShouldPumpEventsDuringCookieMessage() OVERRIDE; 1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void DidCreateScriptContext(WebKit::WebFrame* frame, 1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) v8::Handle<v8::Context> context, 1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int extension_group, 1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int world_id) OVERRIDE; 1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void WillReleaseScriptContext(WebKit::WebFrame* frame, 1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) v8::Handle<v8::Context> context, 1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int world_id) OVERRIDE; 1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual unsigned long long VisitedLinkHash(const char* canonical_url, 1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) size_t length) OVERRIDE; 1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool IsLinkVisited(unsigned long long link_hash) OVERRIDE; 11690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) virtual WebKit::WebPrescientNetworking* GetPrescientNetworking() OVERRIDE; 1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool ShouldOverridePageVisibilityState( 1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const content::RenderView* render_view, 119ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch WebKit::WebPageVisibilityState* override_state) OVERRIDE; 1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool HandleGetCookieRequest(content::RenderView* sender, 1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const GURL& url, 1225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const GURL& first_party_for_cookies, 1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::string* cookies) OVERRIDE; 1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool HandleSetCookieRequest(content::RenderView* sender, 1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const GURL& url, 1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const GURL& first_party_for_cookies, 1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& value) OVERRIDE; 128c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) virtual bool AllowBrowserPlugin( 129ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch WebKit::WebPluginContainer* container) OVERRIDE; 130a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch virtual const void* CreatePPAPIInterface( 131a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch const std::string& interface_name) OVERRIDE; 132ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch virtual bool IsExternalPepperPlugin(const std::string& module_name) OVERRIDE; 1337d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) // TODO(victorhsieh): move to ChromeContentBrowserClient once we migrate 1347d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) // PPAPI FileIO host to browser. 1357d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) virtual bool IsPluginAllowedToCallRequestOSFileHandle( 136ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch WebKit::WebPluginContainer* container) OVERRIDE; 137c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) virtual WebKit::WebSpeechSynthesizer* OverrideSpeechSynthesizer( 138c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) WebKit::WebSpeechSynthesizerClient* client) OVERRIDE; 139ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch virtual bool AllowPepperMediaStreamAPI(const GURL& url) OVERRIDE; 1405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // For testing. 1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void SetExtensionDispatcher(extensions::Dispatcher* extension_dispatcher); 1435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 144a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#if defined(ENABLE_SPELLCHECK) 1452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Sets a new |spellcheck|. Used for low-mem restart and testing only. 1462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Takes ownership of |spellcheck|. 1472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void SetSpellcheck(SpellCheck* spellcheck); 148a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#endif 1492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Called in low-memory conditions to dump the memory used by the spellchecker 1515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // and start over. 1525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void OnPurgeMemory(); 1535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 154c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) static WebKit::WebPlugin* CreatePlugin( 1555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) content::RenderView* render_view, 1565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebFrame* frame, 1575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebPluginParams& params, 1585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const ChromeViewHostMsg_GetPluginInfo_Output& output); 1595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 160c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // TODO(mpcomplete): remove after we collect histogram data. 161c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // http://crbug.com/100411 162c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) static bool IsAdblockInstalled(); 163c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) static bool IsAdblockPlusInstalled(); 164c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) static bool IsAdblockWithWebRequestInstalled(); 165c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) static bool IsAdblockPlusWithWebRequestInstalled(); 166c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) static bool IsOtherExtensionWithWebRequestInstalled(); 167c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 1685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private: 1695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FRIEND_TEST_ALL_PREFIXES(ChromeContentRendererClientTest, NaClRestriction); 1705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const extensions::Extension* GetExtension( 1725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const WebKit::WebSecurityOrigin& origin) const; 1735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Returns true if the frame is navigating to an URL either into or out of an 1755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // extension app's extent. 1765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool CrossesExtensionExtents(WebKit::WebFrame* frame, 1775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const GURL& new_url, 1785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const ExtensionSet& extensions, 1795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool is_extension_url, 1805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool is_initial_navigation); 1815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) static GURL GetNaClContentHandlerURL(const std::string& actual_mime_type, 183ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch const content::WebPluginInfo& plugin); 1845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) static bool IsNaClAllowed(const GURL& manifest_url, 185c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const GURL& app_url, 1865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool is_nacl_unrestricted, 1872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const extensions::Extension* extension, 1885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WebKit::WebPluginParams* params); 1895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) scoped_ptr<ChromeRenderProcessObserver> chrome_observer_; 1915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) scoped_ptr<extensions::Dispatcher> extension_dispatcher_; 19290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) scoped_ptr<extensions::RendererPermissionsPolicyDelegate> 19390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) permissions_policy_delegate_; 19490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) scoped_ptr<PrescientNetworkingDispatcher> prescient_networking_dispatcher_; 1955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) scoped_ptr<RendererNetPredictor> net_predictor_; 196a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#if defined(ENABLE_SPELLCHECK) 1975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) scoped_ptr<SpellCheck> spellcheck_; 198a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#endif 19990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) scoped_ptr<visitedlink::VisitedLinkSlave> visited_link_slave_; 2005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) scoped_ptr<safe_browsing::PhishingClassifierFilter> phishing_classifier_; 2015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) scoped_ptr<prerender::PrerenderDispatcher> prerender_dispatcher_; 202868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#if defined(ENABLE_WEBRTC) 203868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) scoped_refptr<WebRtcLoggingMessageFilter> webrtc_logging_message_filter_; 204868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#endif 2057d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 2067d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#if defined(ENABLE_PLUGINS) 2077d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) std::set<std::string> allowed_file_handle_origins_; 2087d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#endif 2095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 2105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace chrome 2125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif // CHROME_RENDERER_CHROME_CONTENT_RENDERER_CLIENT_H_ 214