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/field_trial.h" | 10 #include "base/metrics/field_trial.h" |
(...skipping 11 matching lines...) Expand all Loading... |
22 #include "chrome/common/localized_error.h" | 22 #include "chrome/common/localized_error.h" |
23 #include "chrome/common/pepper_permission_util.h" | 23 #include "chrome/common/pepper_permission_util.h" |
24 #include "chrome/common/render_messages.h" | 24 #include "chrome/common/render_messages.h" |
25 #include "chrome/common/secure_origin_whitelist.h" | 25 #include "chrome/common/secure_origin_whitelist.h" |
26 #include "chrome/common/url_constants.h" | 26 #include "chrome/common/url_constants.h" |
27 #include "chrome/grit/generated_resources.h" | 27 #include "chrome/grit/generated_resources.h" |
28 #include "chrome/grit/locale_settings.h" | 28 #include "chrome/grit/locale_settings.h" |
29 #include "chrome/grit/renderer_resources.h" | 29 #include "chrome/grit/renderer_resources.h" |
30 #include "chrome/renderer/banners/app_banner_client.h" | 30 #include "chrome/renderer/banners/app_banner_client.h" |
31 #include "chrome/renderer/benchmarking_extension.h" | 31 #include "chrome/renderer/benchmarking_extension.h" |
| 32 #include "chrome/renderer/chrome_guest_view_container_observer.h" |
32 #include "chrome/renderer/chrome_render_frame_observer.h" | 33 #include "chrome/renderer/chrome_render_frame_observer.h" |
33 #include "chrome/renderer/chrome_render_process_observer.h" | 34 #include "chrome/renderer/chrome_render_process_observer.h" |
34 #include "chrome/renderer/chrome_render_view_observer.h" | 35 #include "chrome/renderer/chrome_render_view_observer.h" |
35 #include "chrome/renderer/content_settings_observer.h" | 36 #include "chrome/renderer/content_settings_observer.h" |
36 #include "chrome/renderer/external_extension.h" | 37 #include "chrome/renderer/external_extension.h" |
37 #include "chrome/renderer/loadtimes_extension_bindings.h" | 38 #include "chrome/renderer/loadtimes_extension_bindings.h" |
38 #include "chrome/renderer/media/chrome_key_systems.h" | 39 #include "chrome/renderer/media/chrome_key_systems.h" |
39 #include "chrome/renderer/net/net_error_helper.h" | 40 #include "chrome/renderer/net/net_error_helper.h" |
40 #include "chrome/renderer/net_benchmarking_extension.h" | 41 #include "chrome/renderer/net_benchmarking_extension.h" |
41 #include "chrome/renderer/page_load_histograms.h" | 42 #include "chrome/renderer/page_load_histograms.h" |
(...skipping 12 matching lines...) Expand all Loading... |
54 #include "chrome/renderer/searchbox/searchbox.h" | 55 #include "chrome/renderer/searchbox/searchbox.h" |
55 #include "chrome/renderer/searchbox/searchbox_extension.h" | 56 #include "chrome/renderer/searchbox/searchbox_extension.h" |
56 #include "chrome/renderer/tts_dispatcher.h" | 57 #include "chrome/renderer/tts_dispatcher.h" |
57 #include "chrome/renderer/worker_content_settings_client_proxy.h" | 58 #include "chrome/renderer/worker_content_settings_client_proxy.h" |
58 #include "components/autofill/content/renderer/autofill_agent.h" | 59 #include "components/autofill/content/renderer/autofill_agent.h" |
59 #include "components/autofill/content/renderer/password_autofill_agent.h" | 60 #include "components/autofill/content/renderer/password_autofill_agent.h" |
60 #include "components/autofill/content/renderer/password_generation_agent.h" | 61 #include "components/autofill/content/renderer/password_generation_agent.h" |
61 #include "components/content_settings/core/common/content_settings_pattern.h" | 62 #include "components/content_settings/core/common/content_settings_pattern.h" |
62 #include "components/data_reduction_proxy/core/common/data_reduction_proxy_heade
rs.h" | 63 #include "components/data_reduction_proxy/core/common/data_reduction_proxy_heade
rs.h" |
63 #include "components/dom_distiller/core/url_constants.h" | 64 #include "components/dom_distiller/core/url_constants.h" |
64 #include "components/guest_view/renderer/guest_view_container.h" | |
65 #include "components/nacl/renderer/ppb_nacl_private.h" | 65 #include "components/nacl/renderer/ppb_nacl_private.h" |
66 #include "components/nacl/renderer/ppb_nacl_private_impl.h" | 66 #include "components/nacl/renderer/ppb_nacl_private_impl.h" |
67 #include "components/network_hints/renderer/prescient_networking_dispatcher.h" | 67 #include "components/network_hints/renderer/prescient_networking_dispatcher.h" |
68 #include "components/password_manager/content/renderer/credential_manager_client
.h" | 68 #include "components/password_manager/content/renderer/credential_manager_client
.h" |
69 #include "components/pdf/renderer/pepper_pdf_host.h" | 69 #include "components/pdf/renderer/pepper_pdf_host.h" |
70 #include "components/plugins/renderer/mobile_youtube_plugin.h" | 70 #include "components/plugins/renderer/mobile_youtube_plugin.h" |
71 #include "components/signin/core/common/profile_management_switches.h" | 71 #include "components/signin/core/common/profile_management_switches.h" |
72 #include "components/visitedlink/renderer/visitedlink_slave.h" | 72 #include "components/visitedlink/renderer/visitedlink_slave.h" |
73 #include "components/web_cache/renderer/web_cache_render_process_observer.h" | 73 #include "components/web_cache/renderer/web_cache_render_process_observer.h" |
74 #include "content/public/common/content_constants.h" | 74 #include "content/public/common/content_constants.h" |
(...skipping 284 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
359 | 359 |
360 ChromeContentRendererClient::~ChromeContentRendererClient() { | 360 ChromeContentRendererClient::~ChromeContentRendererClient() { |
361 g_current_client = NULL; | 361 g_current_client = NULL; |
362 } | 362 } |
363 | 363 |
364 void ChromeContentRendererClient::RenderThreadStarted() { | 364 void ChromeContentRendererClient::RenderThreadStarted() { |
365 RenderThread* thread = RenderThread::Get(); | 365 RenderThread* thread = RenderThread::Get(); |
366 | 366 |
367 chrome_observer_.reset(new ChromeRenderProcessObserver()); | 367 chrome_observer_.reset(new ChromeRenderProcessObserver()); |
368 web_cache_observer_.reset(new web_cache::WebCacheRenderProcessObserver()); | 368 web_cache_observer_.reset(new web_cache::WebCacheRenderProcessObserver()); |
| 369 guest_view_container_observer_.reset(new ChromeGuestViewContainerObserver()); |
369 | 370 |
370 #if defined(ENABLE_EXTENSIONS) | 371 #if defined(ENABLE_EXTENSIONS) |
371 extension_dispatcher_delegate_.reset( | 372 extension_dispatcher_delegate_.reset( |
372 new ChromeExtensionsDispatcherDelegate()); | 373 new ChromeExtensionsDispatcherDelegate()); |
373 // ChromeRenderViewTest::SetUp() creates its own ExtensionDispatcher and | 374 // ChromeRenderViewTest::SetUp() creates its own ExtensionDispatcher and |
374 // injects it using SetExtensionDispatcher(). Don't overwrite it. | 375 // injects it using SetExtensionDispatcher(). Don't overwrite it. |
375 if (!extension_dispatcher_) { | 376 if (!extension_dispatcher_) { |
376 extension_dispatcher_.reset( | 377 extension_dispatcher_.reset( |
377 new extensions::Dispatcher(extension_dispatcher_delegate_.get())); | 378 new extensions::Dispatcher(extension_dispatcher_delegate_.get())); |
378 } | 379 } |
(...skipping 18 matching lines...) Expand all Loading... |
397 #endif | 398 #endif |
398 prerender_dispatcher_.reset(new prerender::PrerenderDispatcher()); | 399 prerender_dispatcher_.reset(new prerender::PrerenderDispatcher()); |
399 #if defined(ENABLE_WEBRTC) | 400 #if defined(ENABLE_WEBRTC) |
400 webrtc_logging_message_filter_ = new WebRtcLoggingMessageFilter( | 401 webrtc_logging_message_filter_ = new WebRtcLoggingMessageFilter( |
401 RenderThread::Get()->GetIOMessageLoopProxy()); | 402 RenderThread::Get()->GetIOMessageLoopProxy()); |
402 #endif | 403 #endif |
403 search_bouncer_.reset(new SearchBouncer()); | 404 search_bouncer_.reset(new SearchBouncer()); |
404 | 405 |
405 thread->AddObserver(chrome_observer_.get()); | 406 thread->AddObserver(chrome_observer_.get()); |
406 thread->AddObserver(web_cache_observer_.get()); | 407 thread->AddObserver(web_cache_observer_.get()); |
| 408 thread->AddObserver(guest_view_container_observer_.get()); |
407 #if defined(ENABLE_EXTENSIONS) | 409 #if defined(ENABLE_EXTENSIONS) |
408 thread->AddObserver(extension_dispatcher_.get()); | 410 thread->AddObserver(extension_dispatcher_.get()); |
409 #endif | 411 #endif |
410 #if defined(FULL_SAFE_BROWSING) | 412 #if defined(FULL_SAFE_BROWSING) |
411 thread->AddObserver(phishing_classifier_.get()); | 413 thread->AddObserver(phishing_classifier_.get()); |
412 #endif | 414 #endif |
413 thread->AddObserver(visited_link_slave_.get()); | 415 thread->AddObserver(visited_link_slave_.get()); |
414 thread->AddObserver(prerender_dispatcher_.get()); | 416 thread->AddObserver(prerender_dispatcher_.get()); |
415 thread->AddObserver(search_bouncer_.get()); | 417 thread->AddObserver(search_bouncer_.get()); |
416 | 418 |
(...skipping 888 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1305 // uninstalled. | 1307 // uninstalled. |
1306 if (frame->top()->document().url() == url) { | 1308 if (frame->top()->document().url() == url) { |
1307 if (is_extension_url != IsStandaloneExtensionProcess()) | 1309 if (is_extension_url != IsStandaloneExtensionProcess()) |
1308 return true; | 1310 return true; |
1309 } | 1311 } |
1310 #endif // defined(ENABLE_EXTENSIONS) | 1312 #endif // defined(ENABLE_EXTENSIONS) |
1311 | 1313 |
1312 return false; | 1314 return false; |
1313 } | 1315 } |
1314 | 1316 |
1315 bool ChromeContentRendererClient::ShouldForwardToGuestContainer( | |
1316 const IPC::Message& msg) { | |
1317 if (IPC_MESSAGE_CLASS(msg) == GuestViewMsgStart) | |
1318 return true; | |
1319 #if defined(ENABLE_EXTENSIONS) | |
1320 return IPC_MESSAGE_CLASS(msg) == ExtensionsGuestViewMsgStart; | |
1321 #else | |
1322 return false; | |
1323 #endif | |
1324 } | |
1325 | |
1326 bool ChromeContentRendererClient::WillSendRequest( | 1317 bool ChromeContentRendererClient::WillSendRequest( |
1327 blink::WebFrame* frame, | 1318 blink::WebFrame* frame, |
1328 ui::PageTransition transition_type, | 1319 ui::PageTransition transition_type, |
1329 const GURL& url, | 1320 const GURL& url, |
1330 const GURL& first_party_for_cookies, | 1321 const GURL& first_party_for_cookies, |
1331 GURL* new_url) { | 1322 GURL* new_url) { |
1332 // Check whether the request should be allowed. If not allowed, we reset the | 1323 // Check whether the request should be allowed. If not allowed, we reset the |
1333 // URL to something invalid to prevent the request and cause an error. | 1324 // URL to something invalid to prevent the request and cause an error. |
1334 #if defined(ENABLE_EXTENSIONS) | 1325 #if defined(ENABLE_EXTENSIONS) |
1335 if (url.SchemeIs(extensions::kExtensionScheme) && | 1326 if (url.SchemeIs(extensions::kExtensionScheme) && |
(...skipping 317 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1653 WebString header_key(ASCIIToUTF16( | 1644 WebString header_key(ASCIIToUTF16( |
1654 data_reduction_proxy::chrome_proxy_header())); | 1645 data_reduction_proxy::chrome_proxy_header())); |
1655 if (!response.httpHeaderField(header_key).isNull() && | 1646 if (!response.httpHeaderField(header_key).isNull() && |
1656 response.httpHeaderField(header_key).utf8().find( | 1647 response.httpHeaderField(header_key).utf8().find( |
1657 data_reduction_proxy::chrome_proxy_lo_fi_directive()) != | 1648 data_reduction_proxy::chrome_proxy_lo_fi_directive()) != |
1658 std::string::npos) { | 1649 std::string::npos) { |
1659 (*properties)[data_reduction_proxy::chrome_proxy_header()] = | 1650 (*properties)[data_reduction_proxy::chrome_proxy_header()] = |
1660 data_reduction_proxy::chrome_proxy_lo_fi_directive(); | 1651 data_reduction_proxy::chrome_proxy_lo_fi_directive(); |
1661 } | 1652 } |
1662 } | 1653 } |
OLD | NEW |