| 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" |
| (...skipping 333 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 344 // requests. | 344 // requests. |
| 345 WebSecurityPolicy::registerURLSchemeAsCORSEnabled(extension_resource_scheme); | 345 WebSecurityPolicy::registerURLSchemeAsCORSEnabled(extension_resource_scheme); |
| 346 | 346 |
| 347 // chrome-extension: resources should bypass Content Security Policy checks | 347 // chrome-extension: resources should bypass Content Security Policy checks |
| 348 // when included in protected resources. | 348 // when included in protected resources. |
| 349 WebSecurityPolicy::registerURLSchemeAsBypassingContentSecurityPolicy( | 349 WebSecurityPolicy::registerURLSchemeAsBypassingContentSecurityPolicy( |
| 350 extension_scheme); | 350 extension_scheme); |
| 351 WebSecurityPolicy::registerURLSchemeAsBypassingContentSecurityPolicy( | 351 WebSecurityPolicy::registerURLSchemeAsBypassingContentSecurityPolicy( |
| 352 extension_resource_scheme); | 352 extension_resource_scheme); |
| 353 | 353 |
| 354 auto_reload_enabled_ = |
| 355 command_line->HasSwitch(switches::kEnableOfflineAutoReload); |
| 356 |
| 354 extensions::ExtensionsClient::Set( | 357 extensions::ExtensionsClient::Set( |
| 355 extensions::ChromeExtensionsClient::GetInstance()); | 358 extensions::ChromeExtensionsClient::GetInstance()); |
| 356 } | 359 } |
| 357 | 360 |
| 358 void ChromeContentRendererClient::RenderFrameCreated( | 361 void ChromeContentRendererClient::RenderFrameCreated( |
| 359 content::RenderFrame* render_frame) { | 362 content::RenderFrame* render_frame) { |
| 360 new ChromeRenderFrameObserver(render_frame); | 363 new ChromeRenderFrameObserver(render_frame); |
| 361 | 364 |
| 362 ContentSettingsObserver* content_settings = | 365 ContentSettingsObserver* content_settings = |
| 363 new ContentSettingsObserver(render_frame, extension_dispatcher_.get()); | 366 new ContentSettingsObserver(render_frame, extension_dispatcher_.get()); |
| (...skipping 15 matching lines...) Expand all Loading... |
| 379 // they're prerendering. | 382 // they're prerendering. |
| 380 if (prerender::PrerenderHelper::IsPrerendering( | 383 if (prerender::PrerenderHelper::IsPrerendering( |
| 381 render_frame->GetRenderView()->GetMainRenderFrame())) { | 384 render_frame->GetRenderView()->GetMainRenderFrame())) { |
| 382 new prerender::PrerenderHelper(render_frame); | 385 new prerender::PrerenderHelper(render_frame); |
| 383 } | 386 } |
| 384 } | 387 } |
| 385 | 388 |
| 386 if (render_frame->GetRenderView()->GetMainRenderFrame() == render_frame) { | 389 if (render_frame->GetRenderView()->GetMainRenderFrame() == render_frame) { |
| 387 // Only attach NetErrorHelper to the main frame, since only the main frame | 390 // Only attach NetErrorHelper to the main frame, since only the main frame |
| 388 // should get error pages. | 391 // should get error pages. |
| 389 new NetErrorHelper(render_frame); | 392 main_frame_net_error_helper_ = new NetErrorHelper(render_frame, |
| 393 auto_reload_enabled_); |
| 390 } | 394 } |
| 391 } | 395 } |
| 392 | 396 |
| 393 void ChromeContentRendererClient::RenderViewCreated( | 397 void ChromeContentRendererClient::RenderViewCreated( |
| 394 content::RenderView* render_view) { | 398 content::RenderView* render_view) { |
| 395 new extensions::ExtensionHelper(render_view, extension_dispatcher_.get()); | 399 new extensions::ExtensionHelper(render_view, extension_dispatcher_.get()); |
| 396 new PageLoadHistograms(render_view); | 400 new PageLoadHistograms(render_view); |
| 397 #if defined(ENABLE_PRINTING) | 401 #if defined(ENABLE_PRINTING) |
| 398 new printing::PrintWebViewHelper(render_view); | 402 new printing::PrintWebViewHelper(render_view); |
| 399 #endif | 403 #endif |
| (...skipping 561 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 961 return false; | 965 return false; |
| 962 } | 966 } |
| 963 | 967 |
| 964 *error_domain = LocalizedError::kHttpErrorDomain; | 968 *error_domain = LocalizedError::kHttpErrorDomain; |
| 965 return true; | 969 return true; |
| 966 } | 970 } |
| 967 | 971 |
| 968 bool ChromeContentRendererClient::ShouldSuppressErrorPage( | 972 bool ChromeContentRendererClient::ShouldSuppressErrorPage( |
| 969 content::RenderFrame* render_frame, | 973 content::RenderFrame* render_frame, |
| 970 const GURL& url) { | 974 const GURL& url) { |
| 975 if (render_frame->GetRenderView()->GetMainRenderFrame() == render_frame |
| 976 && main_frame_net_error_helper_->ShouldSuppressErrorPage(url)) |
| 977 return true; |
| 971 // Do not flash an error page if the Instant new tab page fails to load. | 978 // Do not flash an error page if the Instant new tab page fails to load. |
| 972 return search_bouncer_.get() && search_bouncer_->IsNewTabPage(url); | 979 return search_bouncer_.get() && search_bouncer_->IsNewTabPage(url); |
| 973 } | 980 } |
| 974 | 981 |
| 975 void ChromeContentRendererClient::GetNavigationErrorStrings( | 982 void ChromeContentRendererClient::GetNavigationErrorStrings( |
| 976 content::RenderView* render_view, | 983 content::RenderView* render_view, |
| 977 blink::WebFrame* frame, | 984 blink::WebFrame* frame, |
| 978 const blink::WebURLRequest& failed_request, | 985 const blink::WebURLRequest& failed_request, |
| 979 const blink::WebURLError& error, | 986 const blink::WebURLError& error, |
| 980 std::string* error_html, | 987 std::string* error_html, |
| (...skipping 436 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1417 CommandLine* command_line = CommandLine::ForCurrentProcess(); | 1424 CommandLine* command_line = CommandLine::ForCurrentProcess(); |
| 1418 return !command_line->HasSwitch(extensions::switches::kExtensionProcess); | 1425 return !command_line->HasSwitch(extensions::switches::kExtensionProcess); |
| 1419 } | 1426 } |
| 1420 | 1427 |
| 1421 blink::WebWorkerPermissionClientProxy* | 1428 blink::WebWorkerPermissionClientProxy* |
| 1422 ChromeContentRendererClient::CreateWorkerPermissionClientProxy( | 1429 ChromeContentRendererClient::CreateWorkerPermissionClientProxy( |
| 1423 content::RenderFrame* render_frame, | 1430 content::RenderFrame* render_frame, |
| 1424 blink::WebFrame* frame) { | 1431 blink::WebFrame* frame) { |
| 1425 return new WorkerPermissionClientProxy(render_frame, frame); | 1432 return new WorkerPermissionClientProxy(render_frame, frame); |
| 1426 } | 1433 } |
| OLD | NEW |