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 |