OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/renderer/chrome_content_renderer_client.h" | 5 #include "chrome/renderer/chrome_content_renderer_client.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 | 8 |
9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
10 #include "base/logging.h" | 10 #include "base/logging.h" |
(...skipping 18 matching lines...) Expand all Loading... |
29 #include "chrome/renderer/autofill/autofill_agent.h" | 29 #include "chrome/renderer/autofill/autofill_agent.h" |
30 #include "chrome/renderer/autofill/password_autofill_manager.h" | 30 #include "chrome/renderer/autofill/password_autofill_manager.h" |
31 #include "chrome/renderer/autofill/password_generation_manager.h" | 31 #include "chrome/renderer/autofill/password_generation_manager.h" |
32 #include "chrome/renderer/automation/automation_renderer_helper.h" | 32 #include "chrome/renderer/automation/automation_renderer_helper.h" |
33 #include "chrome/renderer/benchmarking_extension.h" | 33 #include "chrome/renderer/benchmarking_extension.h" |
34 #include "chrome/renderer/chrome_render_process_observer.h" | 34 #include "chrome/renderer/chrome_render_process_observer.h" |
35 #include "chrome/renderer/chrome_render_view_observer.h" | 35 #include "chrome/renderer/chrome_render_view_observer.h" |
36 #include "chrome/renderer/content_settings_observer.h" | 36 #include "chrome/renderer/content_settings_observer.h" |
37 #include "chrome/renderer/extensions/chrome_v8_context.h" | 37 #include "chrome/renderer/extensions/chrome_v8_context.h" |
38 #include "chrome/renderer/extensions/chrome_v8_extension.h" | 38 #include "chrome/renderer/extensions/chrome_v8_extension.h" |
39 #include "chrome/renderer/extensions/extension_dispatcher.h" | 39 #include "chrome/renderer/extensions/dispatcher.h" |
40 #include "chrome/renderer/extensions/extension_helper.h" | 40 #include "chrome/renderer/extensions/extension_helper.h" |
41 #include "chrome/renderer/extensions/extension_resource_request_policy.h" | |
42 #include "chrome/renderer/extensions/miscellaneous_bindings.h" | 41 #include "chrome/renderer/extensions/miscellaneous_bindings.h" |
| 42 #include "chrome/renderer/extensions/resource_request_policy.h" |
43 #include "chrome/renderer/external_extension.h" | 43 #include "chrome/renderer/external_extension.h" |
44 #include "chrome/renderer/loadtimes_extension_bindings.h" | 44 #include "chrome/renderer/loadtimes_extension_bindings.h" |
45 #include "chrome/renderer/localized_error.h" | 45 #include "chrome/renderer/localized_error.h" |
46 #include "chrome/renderer/net/renderer_net_predictor.h" | 46 #include "chrome/renderer/net/renderer_net_predictor.h" |
47 #include "chrome/renderer/page_click_tracker.h" | 47 #include "chrome/renderer/page_click_tracker.h" |
48 #include "chrome/renderer/page_load_histograms.h" | 48 #include "chrome/renderer/page_load_histograms.h" |
49 #include "chrome/renderer/pepper/chrome_ppapi_interfaces.h" | 49 #include "chrome/renderer/pepper/chrome_ppapi_interfaces.h" |
50 #include "chrome/renderer/pepper/pepper_helper.h" | 50 #include "chrome/renderer/pepper/pepper_helper.h" |
51 #include "chrome/renderer/playback_extension.h" | 51 #include "chrome/renderer/playback_extension.h" |
52 #include "chrome/renderer/plugins/plugin_placeholder.h" | 52 #include "chrome/renderer/plugins/plugin_placeholder.h" |
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
147 namespace chrome { | 147 namespace chrome { |
148 | 148 |
149 ChromeContentRendererClient::ChromeContentRendererClient() { | 149 ChromeContentRendererClient::ChromeContentRendererClient() { |
150 } | 150 } |
151 | 151 |
152 ChromeContentRendererClient::~ChromeContentRendererClient() { | 152 ChromeContentRendererClient::~ChromeContentRendererClient() { |
153 } | 153 } |
154 | 154 |
155 void ChromeContentRendererClient::RenderThreadStarted() { | 155 void ChromeContentRendererClient::RenderThreadStarted() { |
156 chrome_observer_.reset(new ChromeRenderProcessObserver(this)); | 156 chrome_observer_.reset(new ChromeRenderProcessObserver(this)); |
157 extension_dispatcher_.reset(new ExtensionDispatcher()); | 157 extension_dispatcher_.reset(new extensions::Dispatcher()); |
158 net_predictor_.reset(new RendererNetPredictor()); | 158 net_predictor_.reset(new RendererNetPredictor()); |
159 spellcheck_.reset(new SpellCheck()); | 159 spellcheck_.reset(new SpellCheck()); |
160 visited_link_slave_.reset(new VisitedLinkSlave()); | 160 visited_link_slave_.reset(new VisitedLinkSlave()); |
161 #if defined(ENABLE_SAFE_BROWSING) | 161 #if defined(ENABLE_SAFE_BROWSING) |
162 phishing_classifier_.reset(safe_browsing::PhishingClassifierFilter::Create()); | 162 phishing_classifier_.reset(safe_browsing::PhishingClassifierFilter::Create()); |
163 #endif | 163 #endif |
164 prerender_dispatcher_.reset(new prerender::PrerenderDispatcher()); | 164 prerender_dispatcher_.reset(new prerender::PrerenderDispatcher()); |
165 | 165 |
166 RenderThread* thread = RenderThread::Get(); | 166 RenderThread* thread = RenderThread::Get(); |
167 | 167 |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
250 } | 250 } |
251 | 251 |
252 void ChromeContentRendererClient::RenderViewCreated( | 252 void ChromeContentRendererClient::RenderViewCreated( |
253 content::RenderView* render_view) { | 253 content::RenderView* render_view) { |
254 ContentSettingsObserver* content_settings = | 254 ContentSettingsObserver* content_settings = |
255 new ContentSettingsObserver(render_view); | 255 new ContentSettingsObserver(render_view); |
256 if (chrome_observer_.get()) { | 256 if (chrome_observer_.get()) { |
257 content_settings->SetContentSettingRules( | 257 content_settings->SetContentSettingRules( |
258 chrome_observer_->content_setting_rules()); | 258 chrome_observer_->content_setting_rules()); |
259 } | 259 } |
260 new ExtensionHelper(render_view, extension_dispatcher_.get()); | 260 new extensions::ExtensionHelper(render_view, extension_dispatcher_.get()); |
261 new PageLoadHistograms(render_view); | 261 new PageLoadHistograms(render_view); |
262 #if defined(ENABLE_PRINTING) | 262 #if defined(ENABLE_PRINTING) |
263 new PrintWebViewHelper(render_view); | 263 new PrintWebViewHelper(render_view); |
264 #endif | 264 #endif |
265 new SearchBox(render_view); | 265 new SearchBox(render_view); |
266 new SpellCheckProvider(render_view, this); | 266 new SpellCheckProvider(render_view, this); |
267 new prerender::PrerendererClient(render_view); | 267 new prerender::PrerendererClient(render_view); |
268 #if defined(ENABLE_SAFE_BROWSING) | 268 #if defined(ENABLE_SAFE_BROWSING) |
269 safe_browsing::MalwareDOMDetails::Create(render_view); | 269 safe_browsing::MalwareDOMDetails::Create(render_view); |
270 #endif | 270 #endif |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
314 content::RenderView* render_view, | 314 content::RenderView* render_view, |
315 WebFrame* frame, | 315 WebFrame* frame, |
316 const WebPluginParams& params, | 316 const WebPluginParams& params, |
317 WebPlugin** plugin) { | 317 WebPlugin** plugin) { |
318 ChromeViewHostMsg_GetPluginInfo_Status status; | 318 ChromeViewHostMsg_GetPluginInfo_Status status; |
319 webkit::WebPluginInfo plugin_info; | 319 webkit::WebPluginInfo plugin_info; |
320 std::string actual_mime_type; | 320 std::string actual_mime_type; |
321 std::string orig_mime_type = params.mimeType.utf8(); | 321 std::string orig_mime_type = params.mimeType.utf8(); |
322 | 322 |
323 if (orig_mime_type == content::kBrowserPluginMimeType && | 323 if (orig_mime_type == content::kBrowserPluginMimeType && |
324 ExtensionHelper::Get(render_view)->view_type() == VIEW_TYPE_APP_SHELL) | 324 extensions::ExtensionHelper::Get(render_view)->view_type() == |
| 325 VIEW_TYPE_APP_SHELL) |
325 return false; | 326 return false; |
326 | 327 |
327 render_view->Send(new ChromeViewHostMsg_GetPluginInfo( | 328 render_view->Send(new ChromeViewHostMsg_GetPluginInfo( |
328 render_view->GetRoutingID(), GURL(params.url), | 329 render_view->GetRoutingID(), GURL(params.url), |
329 frame->top()->document().url(), orig_mime_type, | 330 frame->top()->document().url(), orig_mime_type, |
330 &status, &plugin_info, &actual_mime_type)); | 331 &status, &plugin_info, &actual_mime_type)); |
331 *plugin = CreatePlugin(render_view, frame, params, | 332 *plugin = CreatePlugin(render_view, frame, params, |
332 status, plugin_info, actual_mime_type); | 333 status, plugin_info, actual_mime_type); |
333 return true; | 334 return true; |
334 } | 335 } |
(...skipping 371 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
706 if (!extension && !is_repost) | 707 if (!extension && !is_repost) |
707 *error_description = LocalizedError::GetErrorDetails(error); | 708 *error_description = LocalizedError::GetErrorDetails(error); |
708 } | 709 } |
709 } | 710 } |
710 | 711 |
711 bool ChromeContentRendererClient::RunIdleHandlerWhenWidgetsHidden() { | 712 bool ChromeContentRendererClient::RunIdleHandlerWhenWidgetsHidden() { |
712 return !extension_dispatcher_->is_extension_process(); | 713 return !extension_dispatcher_->is_extension_process(); |
713 } | 714 } |
714 | 715 |
715 bool ChromeContentRendererClient::AllowPopup(const GURL& creator) { | 716 bool ChromeContentRendererClient::AllowPopup(const GURL& creator) { |
716 ChromeV8Context* current_context = | 717 extensions::ChromeV8Context* current_context = |
717 extension_dispatcher_->v8_context_set().GetCurrent(); | 718 extension_dispatcher_->v8_context_set().GetCurrent(); |
718 return current_context && current_context->extension(); | 719 return current_context && current_context->extension(); |
719 } | 720 } |
720 | 721 |
721 bool ChromeContentRendererClient::ShouldFork(WebFrame* frame, | 722 bool ChromeContentRendererClient::ShouldFork(WebFrame* frame, |
722 const GURL& url, | 723 const GURL& url, |
723 bool is_initial_navigation, | 724 bool is_initial_navigation, |
724 bool* send_referrer) { | 725 bool* send_referrer) { |
725 DCHECK(!frame->parent()); | 726 DCHECK(!frame->parent()); |
726 | 727 |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
773 | 774 |
774 return false; | 775 return false; |
775 } | 776 } |
776 | 777 |
777 bool ChromeContentRendererClient::WillSendRequest(WebKit::WebFrame* frame, | 778 bool ChromeContentRendererClient::WillSendRequest(WebKit::WebFrame* frame, |
778 const GURL& url, | 779 const GURL& url, |
779 GURL* new_url) { | 780 GURL* new_url) { |
780 // Check whether the request should be allowed. If not allowed, we reset the | 781 // Check whether the request should be allowed. If not allowed, we reset the |
781 // URL to something invalid to prevent the request and cause an error. | 782 // URL to something invalid to prevent the request and cause an error. |
782 if (url.SchemeIs(chrome::kExtensionScheme) && | 783 if (url.SchemeIs(chrome::kExtensionScheme) && |
783 !ExtensionResourceRequestPolicy::CanRequestResource( | 784 !extensions::ResourceRequestPolicy::CanRequestResource( |
784 url, | 785 url, |
785 frame, | 786 frame, |
786 extension_dispatcher_->extensions())) { | 787 extension_dispatcher_->extensions())) { |
787 *new_url = GURL("chrome-extension://invalid/"); | 788 *new_url = GURL("chrome-extension://invalid/"); |
788 return true; | 789 return true; |
789 | 790 |
790 } | 791 } |
791 | 792 |
792 if (url.SchemeIs(chrome::kExtensionResourceScheme) && | 793 if (url.SchemeIs(chrome::kExtensionResourceScheme) && |
793 !ExtensionResourceRequestPolicy::CanRequestExtensionResourceScheme( | 794 !extensions::ResourceRequestPolicy::CanRequestExtensionResourceScheme( |
794 url, | 795 url, |
795 frame)) { | 796 frame)) { |
796 *new_url = GURL("chrome-extension-resource://invalid/"); | 797 *new_url = GURL("chrome-extension-resource://invalid/"); |
797 return true; | 798 return true; |
798 } | 799 } |
799 | 800 |
800 return false; | 801 return false; |
801 } | 802 } |
802 | 803 |
803 bool ChromeContentRendererClient::ShouldPumpEventsDuringCookieMessage() { | 804 bool ChromeContentRendererClient::ShouldPumpEventsDuringCookieMessage() { |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
864 const std::string& value) { | 865 const std::string& value) { |
865 if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kChromeFrame)) { | 866 if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kChromeFrame)) { |
866 sender->Send(new ChromeViewHostMsg_SetCookie( | 867 sender->Send(new ChromeViewHostMsg_SetCookie( |
867 MSG_ROUTING_NONE, url, first_party_for_cookies, value)); | 868 MSG_ROUTING_NONE, url, first_party_for_cookies, value)); |
868 return true; | 869 return true; |
869 } | 870 } |
870 return false; | 871 return false; |
871 } | 872 } |
872 | 873 |
873 void ChromeContentRendererClient::SetExtensionDispatcher( | 874 void ChromeContentRendererClient::SetExtensionDispatcher( |
874 ExtensionDispatcher* extension_dispatcher) { | 875 extensions::Dispatcher* extension_dispatcher) { |
875 extension_dispatcher_.reset(extension_dispatcher); | 876 extension_dispatcher_.reset(extension_dispatcher); |
876 } | 877 } |
877 | 878 |
878 bool ChromeContentRendererClient::CrossesExtensionExtents( | 879 bool ChromeContentRendererClient::CrossesExtensionExtents( |
879 WebFrame* frame, | 880 WebFrame* frame, |
880 const GURL& new_url, | 881 const GURL& new_url, |
881 const ExtensionSet& extensions, | 882 const ExtensionSet& extensions, |
882 bool is_extension_url, | 883 bool is_extension_url, |
883 bool is_initial_navigation) { | 884 bool is_initial_navigation) { |
884 GURL old_url(frame->top()->document().url()); | 885 GURL old_url(frame->top()->document().url()); |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
947 bool ChromeContentRendererClient::IsOtherExtensionWithWebRequestInstalled() { | 948 bool ChromeContentRendererClient::IsOtherExtensionWithWebRequestInstalled() { |
948 return extension_dispatcher_->IsOtherExtensionWithWebRequestInstalled(); | 949 return extension_dispatcher_->IsOtherExtensionWithWebRequestInstalled(); |
949 } | 950 } |
950 | 951 |
951 void ChromeContentRendererClient::RegisterPPAPIInterfaceFactories( | 952 void ChromeContentRendererClient::RegisterPPAPIInterfaceFactories( |
952 webkit::ppapi::PpapiInterfaceFactoryManager* factory_manager) { | 953 webkit::ppapi::PpapiInterfaceFactoryManager* factory_manager) { |
953 factory_manager->RegisterFactory(ChromePPAPIInterfaceFactory); | 954 factory_manager->RegisterFactory(ChromePPAPIInterfaceFactory); |
954 } | 955 } |
955 | 956 |
956 } // namespace chrome | 957 } // namespace chrome |
OLD | NEW |