| 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 "base/command_line.h" | 7 #include "base/command_line.h" |
| 8 #include "base/debug/crash_logging.h" | 8 #include "base/debug/crash_logging.h" |
| 9 #include "base/logging.h" | 9 #include "base/logging.h" |
| 10 #include "base/metrics/histogram.h" | 10 #include "base/metrics/histogram.h" |
| 11 #include "base/path_service.h" | 11 #include "base/path_service.h" |
| 12 #include "base/strings/string_number_conversions.h" | 12 #include "base/strings/string_number_conversions.h" |
| 13 #include "base/strings/string_util.h" | 13 #include "base/strings/string_util.h" |
| 14 #include "base/strings/utf_string_conversions.h" | 14 #include "base/strings/utf_string_conversions.h" |
| 15 #include "base/values.h" | 15 #include "base/values.h" |
| 16 #include "chrome/common/chrome_content_client.h" | 16 #include "chrome/common/chrome_content_client.h" |
| 17 #include "chrome/common/chrome_paths.h" | 17 #include "chrome/common/chrome_paths.h" |
| 18 #include "chrome/common/chrome_switches.h" | 18 #include "chrome/common/chrome_switches.h" |
| 19 #include "chrome/common/content_settings_pattern.h" | 19 #include "chrome/common/content_settings_pattern.h" |
| 20 #include "chrome/common/crash_keys.h" | 20 #include "chrome/common/crash_keys.h" |
| 21 #include "chrome/common/extensions/chrome_extensions_client.h" | 21 #include "chrome/common/extensions/chrome_extensions_client.h" |
| 22 #include "chrome/common/extensions/extension_constants.h" | 22 #include "chrome/common/extensions/extension_constants.h" |
| 23 #include "chrome/common/extensions/extension_process_policy.h" | 23 #include "chrome/common/extensions/extension_process_policy.h" |
| 24 #include "chrome/common/extensions/extension_set.h" | 24 #include "chrome/common/extensions/extension_set.h" |
| 25 #include "chrome/common/localized_error.h" | 25 #include "chrome/common/localized_error.h" |
| 26 #include "chrome/common/pepper_permission_util.h" | 26 #include "chrome/common/pepper_permission_util.h" |
| 27 #include "chrome/common/render_messages.h" | 27 #include "chrome/common/render_messages.h" |
| 28 #include "chrome/common/url_constants.h" | 28 #include "chrome/common/url_constants.h" |
| 29 #include "chrome/renderer/benchmarking_extension.h" | 29 #include "chrome/renderer/benchmarking_extension.h" |
| 30 #include "chrome/renderer/chrome_render_frame_observer.h" |
| 30 #include "chrome/renderer/chrome_render_process_observer.h" | 31 #include "chrome/renderer/chrome_render_process_observer.h" |
| 31 #include "chrome/renderer/chrome_render_view_observer.h" | 32 #include "chrome/renderer/chrome_render_view_observer.h" |
| 32 #include "chrome/renderer/content_settings_observer.h" | 33 #include "chrome/renderer/content_settings_observer.h" |
| 33 #include "chrome/renderer/extensions/chrome_v8_context.h" | 34 #include "chrome/renderer/extensions/chrome_v8_context.h" |
| 34 #include "chrome/renderer/extensions/chrome_v8_extension.h" | 35 #include "chrome/renderer/extensions/chrome_v8_extension.h" |
| 35 #include "chrome/renderer/extensions/dispatcher.h" | 36 #include "chrome/renderer/extensions/dispatcher.h" |
| 36 #include "chrome/renderer/extensions/extension_helper.h" | 37 #include "chrome/renderer/extensions/extension_helper.h" |
| 37 #include "chrome/renderer/extensions/renderer_permissions_policy_delegate.h" | 38 #include "chrome/renderer/extensions/renderer_permissions_policy_delegate.h" |
| 38 #include "chrome/renderer/extensions/resource_request_policy.h" | 39 #include "chrome/renderer/extensions/resource_request_policy.h" |
| 39 #include "chrome/renderer/external_extension.h" | 40 #include "chrome/renderer/external_extension.h" |
| (...skipping 305 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 345 extension_scheme); | 346 extension_scheme); |
| 346 WebSecurityPolicy::registerURLSchemeAsBypassingContentSecurityPolicy( | 347 WebSecurityPolicy::registerURLSchemeAsBypassingContentSecurityPolicy( |
| 347 extension_resource_scheme); | 348 extension_resource_scheme); |
| 348 | 349 |
| 349 extensions::ExtensionsClient::Set( | 350 extensions::ExtensionsClient::Set( |
| 350 extensions::ChromeExtensionsClient::GetInstance()); | 351 extensions::ChromeExtensionsClient::GetInstance()); |
| 351 } | 352 } |
| 352 | 353 |
| 353 void ChromeContentRendererClient::RenderFrameCreated( | 354 void ChromeContentRendererClient::RenderFrameCreated( |
| 354 content::RenderFrame* render_frame) { | 355 content::RenderFrame* render_frame) { |
| 356 new ChromeRenderFrameObserver(render_frame); |
| 355 #if defined(ENABLE_PLUGINS) | 357 #if defined(ENABLE_PLUGINS) |
| 356 new PepperHelper(render_frame); | 358 new PepperHelper(render_frame); |
| 357 #endif | 359 #endif |
| 358 } | 360 } |
| 359 | 361 |
| 360 void ChromeContentRendererClient::RenderViewCreated( | 362 void ChromeContentRendererClient::RenderViewCreated( |
| 361 content::RenderView* render_view) { | 363 content::RenderView* render_view) { |
| 362 ContentSettingsObserver* content_settings = | 364 ContentSettingsObserver* content_settings = |
| 363 new ContentSettingsObserver(render_view); | 365 new ContentSettingsObserver(render_view); |
| 364 if (chrome_observer_.get()) { | 366 if (chrome_observer_.get()) { |
| (...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 466 content::RenderView* render_view, | 468 content::RenderView* render_view, |
| 467 content::RenderFrame* render_frame, | 469 content::RenderFrame* render_frame, |
| 468 const base::FilePath& plugin_path) { | 470 const base::FilePath& plugin_path) { |
| 469 ChromePluginPlaceholder* placeholder = | 471 ChromePluginPlaceholder* placeholder = |
| 470 ChromePluginPlaceholder::CreateErrorPlugin( | 472 ChromePluginPlaceholder::CreateErrorPlugin( |
| 471 render_view, render_frame, plugin_path); | 473 render_view, render_frame, plugin_path); |
| 472 return placeholder->plugin(); | 474 return placeholder->plugin(); |
| 473 } | 475 } |
| 474 | 476 |
| 475 void ChromeContentRendererClient::DeferMediaLoad( | 477 void ChromeContentRendererClient::DeferMediaLoad( |
| 476 content::RenderView* render_view, | 478 content::RenderFrame* render_frame, |
| 477 const base::Closure& closure) { | 479 const base::Closure& closure) { |
| 478 #if defined(OS_ANDROID) | 480 #if defined(OS_ANDROID) |
| 479 // Chromium for Android doesn't support prerender yet. | 481 // Chromium for Android doesn't support prerender yet. |
| 480 closure.Run(); | 482 closure.Run(); |
| 481 return; | 483 return; |
| 482 #else | 484 #else |
| 483 if (!prerender::PrerenderHelper::IsPrerendering(render_view)) { | 485 if (!prerender::PrerenderHelper::IsPrerendering(render_frame)) { |
| 484 closure.Run(); | 486 closure.Run(); |
| 485 return; | 487 return; |
| 486 } | 488 } |
| 487 | 489 |
| 488 // Lifetime is tied to |render_view| via content::RenderViewObserver. | 490 // Lifetime is tied to |render_frame| via content::RenderFrameObserver. |
| 489 new prerender::PrerenderMediaLoadDeferrer(render_view, closure); | 491 new prerender::PrerenderMediaLoadDeferrer(render_frame, closure); |
| 490 #endif | 492 #endif |
| 491 } | 493 } |
| 492 | 494 |
| 493 WebPlugin* ChromeContentRendererClient::CreatePlugin( | 495 WebPlugin* ChromeContentRendererClient::CreatePlugin( |
| 494 content::RenderView* render_view, | 496 content::RenderView* render_view, |
| 495 content::RenderFrame* render_frame, | 497 content::RenderFrame* render_frame, |
| 496 WebFrame* frame, | 498 WebFrame* frame, |
| 497 const WebPluginParams& original_params, | 499 const WebPluginParams& original_params, |
| 498 const ChromeViewHostMsg_GetPluginInfo_Output& output) { | 500 const ChromeViewHostMsg_GetPluginInfo_Output& output) { |
| 499 const ChromeViewHostMsg_GetPluginInfo_Status& status = output.status; | 501 const ChromeViewHostMsg_GetPluginInfo_Status& status = output.status; |
| (...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 655 l10n_util::GetStringFUTF16(IDS_PLUGIN_BLOCKED, group_name)); | 657 l10n_util::GetStringFUTF16(IDS_PLUGIN_BLOCKED, group_name)); |
| 656 #endif | 658 #endif |
| 657 break; | 659 break; |
| 658 } | 660 } |
| 659 } | 661 } |
| 660 | 662 |
| 661 // Delay loading plugins if prerendering. | 663 // Delay loading plugins if prerendering. |
| 662 // TODO(mmenke): In the case of prerendering, feed into | 664 // TODO(mmenke): In the case of prerendering, feed into |
| 663 // ChromeContentRendererClient::CreatePlugin instead, to | 665 // ChromeContentRendererClient::CreatePlugin instead, to |
| 664 // reduce the chance of future regressions. | 666 // reduce the chance of future regressions. |
| 665 if (prerender::PrerenderHelper::IsPrerendering(render_view)) { | 667 if (prerender::PrerenderHelper::IsPrerendering(render_frame)) { |
| 666 placeholder = ChromePluginPlaceholder::CreateBlockedPlugin( | 668 placeholder = ChromePluginPlaceholder::CreateBlockedPlugin( |
| 667 render_view, | 669 render_view, |
| 668 render_frame, | 670 render_frame, |
| 669 frame, | 671 frame, |
| 670 params, | 672 params, |
| 671 plugin, | 673 plugin, |
| 672 identifier, | 674 identifier, |
| 673 group_name, | 675 group_name, |
| 674 IDR_CLICK_TO_PLAY_PLUGIN_HTML, | 676 IDR_CLICK_TO_PLAY_PLUGIN_HTML, |
| 675 l10n_util::GetStringFUTF16(IDS_PLUGIN_LOAD, group_name)); | 677 l10n_util::GetStringFUTF16(IDS_PLUGIN_LOAD, group_name)); |
| (...skipping 486 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1162 bool ChromeContentRendererClient::IsLinkVisited(unsigned long long link_hash) { | 1164 bool ChromeContentRendererClient::IsLinkVisited(unsigned long long link_hash) { |
| 1163 return visited_link_slave_->IsVisited(link_hash); | 1165 return visited_link_slave_->IsVisited(link_hash); |
| 1164 } | 1166 } |
| 1165 | 1167 |
| 1166 blink::WebPrescientNetworking* | 1168 blink::WebPrescientNetworking* |
| 1167 ChromeContentRendererClient::GetPrescientNetworking() { | 1169 ChromeContentRendererClient::GetPrescientNetworking() { |
| 1168 return prescient_networking_dispatcher_.get(); | 1170 return prescient_networking_dispatcher_.get(); |
| 1169 } | 1171 } |
| 1170 | 1172 |
| 1171 bool ChromeContentRendererClient::ShouldOverridePageVisibilityState( | 1173 bool ChromeContentRendererClient::ShouldOverridePageVisibilityState( |
| 1172 const content::RenderView* render_view, | 1174 const content::RenderFrame* render_frame, |
| 1173 blink::WebPageVisibilityState* override_state) { | 1175 blink::WebPageVisibilityState* override_state) { |
| 1174 if (!prerender::PrerenderHelper::IsPrerendering(render_view)) | 1176 if (!prerender::PrerenderHelper::IsPrerendering(render_frame)) |
| 1175 return false; | 1177 return false; |
| 1176 | 1178 |
| 1177 *override_state = blink::WebPageVisibilityStatePrerender; | 1179 *override_state = blink::WebPageVisibilityStatePrerender; |
| 1178 return true; | 1180 return true; |
| 1179 } | 1181 } |
| 1180 | 1182 |
| 1181 bool ChromeContentRendererClient::HandleGetCookieRequest( | 1183 bool ChromeContentRendererClient::HandleGetCookieRequest( |
| 1182 content::RenderView* sender, | 1184 content::RenderView* sender, |
| 1183 const GURL& url, | 1185 const GURL& url, |
| 1184 const GURL& first_party_for_cookies, | 1186 const GURL& first_party_for_cookies, |
| (...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1391 CommandLine* command_line = CommandLine::ForCurrentProcess(); | 1393 CommandLine* command_line = CommandLine::ForCurrentProcess(); |
| 1392 return !command_line->HasSwitch(switches::kExtensionProcess); | 1394 return !command_line->HasSwitch(switches::kExtensionProcess); |
| 1393 } | 1395 } |
| 1394 | 1396 |
| 1395 blink::WebWorkerPermissionClientProxy* | 1397 blink::WebWorkerPermissionClientProxy* |
| 1396 ChromeContentRendererClient::CreateWorkerPermissionClientProxy( | 1398 ChromeContentRendererClient::CreateWorkerPermissionClientProxy( |
| 1397 content::RenderView* render_view, | 1399 content::RenderView* render_view, |
| 1398 blink::WebFrame* frame) { | 1400 blink::WebFrame* frame) { |
| 1399 return new WorkerPermissionClientProxy(render_view, frame); | 1401 return new WorkerPermissionClientProxy(render_view, frame); |
| 1400 } | 1402 } |
| OLD | NEW |