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 |