Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(57)

Side by Side Diff: chrome/renderer/chrome_content_renderer_client.cc

Issue 107893003: Make the renderer-side prerendering code use RenderFrames instead of RenderViews. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: sync Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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
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
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
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
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
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 }
OLDNEW
« no previous file with comments | « chrome/renderer/chrome_content_renderer_client.h ('k') | chrome/renderer/chrome_render_frame_observer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698