| 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 359 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 370 // TODO(jam): when a RenderFrame is per WebFrame, this can be simplified by | 370 // TODO(jam): when a RenderFrame is per WebFrame, this can be simplified by |
| 371 // getting a RenderFrame's WebFrame and calling its parent() method. | 371 // getting a RenderFrame's WebFrame and calling its parent() method. |
| 372 if (render_frame->GetRenderView()->GetMainRenderFrame() != render_frame) { | 372 if (render_frame->GetRenderView()->GetMainRenderFrame() != render_frame) { |
| 373 // Avoid any race conditions from having the browser tell subframes that | 373 // Avoid any race conditions from having the browser tell subframes that |
| 374 // they're prerendering. | 374 // they're prerendering. |
| 375 if (prerender::PrerenderHelper::IsPrerendering( | 375 if (prerender::PrerenderHelper::IsPrerendering( |
| 376 render_frame->GetRenderView()->GetMainRenderFrame())) { | 376 render_frame->GetRenderView()->GetMainRenderFrame())) { |
| 377 new prerender::PrerenderHelper(render_frame); | 377 new prerender::PrerenderHelper(render_frame); |
| 378 } | 378 } |
| 379 } | 379 } |
| 380 |
| 381 if (render_frame->GetRenderView()->GetMainRenderFrame() == render_frame) { |
| 382 // Only attach NetErrorHelper to the main frame, since only the main frame |
| 383 // should get error pages. |
| 384 // TODO(ellyjones): when RenderFrame is 1:1 with WebFrame, change this |
| 385 // condition to if (!render_frame()->GetWebFrame()->parent()) |
| 386 new NetErrorHelper(render_frame); |
| 387 } |
| 380 } | 388 } |
| 381 | 389 |
| 382 void ChromeContentRendererClient::RenderViewCreated( | 390 void ChromeContentRendererClient::RenderViewCreated( |
| 383 content::RenderView* render_view) { | 391 content::RenderView* render_view) { |
| 384 new extensions::ExtensionHelper(render_view, extension_dispatcher_.get()); | 392 new extensions::ExtensionHelper(render_view, extension_dispatcher_.get()); |
| 385 new PageLoadHistograms(render_view); | 393 new PageLoadHistograms(render_view); |
| 386 #if defined(ENABLE_PRINTING) | 394 #if defined(ENABLE_PRINTING) |
| 387 new printing::PrintWebViewHelper(render_view); | 395 new printing::PrintWebViewHelper(render_view); |
| 388 #endif | 396 #endif |
| 389 #if defined(ENABLE_SPELLCHECK) | 397 #if defined(ENABLE_SPELLCHECK) |
| 390 new SpellCheckProvider(render_view, spellcheck_.get()); | 398 new SpellCheckProvider(render_view, spellcheck_.get()); |
| 391 #endif | 399 #endif |
| 392 new prerender::PrerendererClient(render_view); | 400 new prerender::PrerendererClient(render_view); |
| 393 #if defined(FULL_SAFE_BROWSING) | 401 #if defined(FULL_SAFE_BROWSING) |
| 394 safe_browsing::MalwareDOMDetails::Create(render_view); | 402 safe_browsing::MalwareDOMDetails::Create(render_view); |
| 395 #endif | 403 #endif |
| 396 | 404 |
| 397 PasswordAutofillAgent* password_autofill_agent = | 405 PasswordAutofillAgent* password_autofill_agent = |
| 398 new PasswordAutofillAgent(render_view); | 406 new PasswordAutofillAgent(render_view); |
| 399 new AutofillAgent(render_view, password_autofill_agent); | 407 new AutofillAgent(render_view, password_autofill_agent); |
| 400 | 408 |
| 401 CommandLine* command_line = CommandLine::ForCurrentProcess(); | 409 CommandLine* command_line = CommandLine::ForCurrentProcess(); |
| 402 if (autofill::password_generation::IsPasswordGenerationEnabled()) | 410 if (autofill::password_generation::IsPasswordGenerationEnabled()) |
| 403 new PasswordGenerationAgent(render_view); | 411 new PasswordGenerationAgent(render_view); |
| 404 if (command_line->HasSwitch(switches::kInstantProcess)) | 412 if (command_line->HasSwitch(switches::kInstantProcess)) |
| 405 new SearchBox(render_view); | 413 new SearchBox(render_view); |
| 406 | 414 |
| 407 new ChromeRenderViewObserver(render_view, chrome_observer_.get()); | 415 new ChromeRenderViewObserver(render_view, chrome_observer_.get()); |
| 408 | |
| 409 new NetErrorHelper(render_view); | |
| 410 } | 416 } |
| 411 | 417 |
| 412 void ChromeContentRendererClient::SetNumberOfViews(int number_of_views) { | 418 void ChromeContentRendererClient::SetNumberOfViews(int number_of_views) { |
| 413 base::debug::SetCrashKeyValue(crash_keys::kNumberOfViews, | 419 base::debug::SetCrashKeyValue(crash_keys::kNumberOfViews, |
| 414 base::IntToString(number_of_views)); | 420 base::IntToString(number_of_views)); |
| 415 } | 421 } |
| 416 | 422 |
| 417 SkBitmap* ChromeContentRendererClient::GetSadPluginBitmap() { | 423 SkBitmap* ChromeContentRendererClient::GetSadPluginBitmap() { |
| 418 return const_cast<SkBitmap*>(ResourceBundle::GetSharedInstance(). | 424 return const_cast<SkBitmap*>(ResourceBundle::GetSharedInstance(). |
| 419 GetImageNamed(IDR_SAD_PLUGIN).ToSkBitmap()); | 425 GetImageNamed(IDR_SAD_PLUGIN).ToSkBitmap()); |
| (...skipping 572 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 992 NOTREACHED() << "unable to load template. ID: " << resource_id; | 998 NOTREACHED() << "unable to load template. ID: " << resource_id; |
| 993 } else { | 999 } else { |
| 994 base::DictionaryValue error_strings; | 1000 base::DictionaryValue error_strings; |
| 995 LocalizedError::GetAppErrorStrings(failed_url, extension, | 1001 LocalizedError::GetAppErrorStrings(failed_url, extension, |
| 996 &error_strings); | 1002 &error_strings); |
| 997 // "t" is the id of the template's root node. | 1003 // "t" is the id of the template's root node. |
| 998 *error_html = webui::GetTemplatesHtml(template_html, &error_strings, | 1004 *error_html = webui::GetTemplatesHtml(template_html, &error_strings, |
| 999 "t"); | 1005 "t"); |
| 1000 } | 1006 } |
| 1001 } else { | 1007 } else { |
| 1002 NetErrorHelper* helper = NetErrorHelper::Get(render_view); | 1008 // TODO(ellyjones): change GetNavigationErrorStrings to take a RenderFrame |
| 1009 // instead of a RenderView, then pass that in. |
| 1010 // This is safe for now because we only install the NetErrorHelper on the |
| 1011 // main render frame anyway; see the TODO(ellyjones) in |
| 1012 // RenderFrameCreated. |
| 1013 content::RenderFrame* main_render_frame = |
| 1014 render_view->GetMainRenderFrame(); |
| 1015 NetErrorHelper* helper = NetErrorHelper::Get(main_render_frame); |
| 1003 helper->GetErrorHTML(frame, error, is_post, error_html); | 1016 helper->GetErrorHTML(frame, error, is_post, error_html); |
| 1004 } | 1017 } |
| 1005 } | 1018 } |
| 1006 | 1019 |
| 1007 if (error_description) { | 1020 if (error_description) { |
| 1008 if (!extension) | 1021 if (!extension) |
| 1009 *error_description = LocalizedError::GetErrorDetails(error, is_post); | 1022 *error_description = LocalizedError::GetErrorDetails(error, is_post); |
| 1010 } | 1023 } |
| 1011 } | 1024 } |
| 1012 | 1025 |
| (...skipping 378 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1391 CommandLine* command_line = CommandLine::ForCurrentProcess(); | 1404 CommandLine* command_line = CommandLine::ForCurrentProcess(); |
| 1392 return !command_line->HasSwitch(switches::kExtensionProcess); | 1405 return !command_line->HasSwitch(switches::kExtensionProcess); |
| 1393 } | 1406 } |
| 1394 | 1407 |
| 1395 blink::WebWorkerPermissionClientProxy* | 1408 blink::WebWorkerPermissionClientProxy* |
| 1396 ChromeContentRendererClient::CreateWorkerPermissionClientProxy( | 1409 ChromeContentRendererClient::CreateWorkerPermissionClientProxy( |
| 1397 content::RenderFrame* render_frame, | 1410 content::RenderFrame* render_frame, |
| 1398 blink::WebFrame* frame) { | 1411 blink::WebFrame* frame) { |
| 1399 return new WorkerPermissionClientProxy(render_frame, frame); | 1412 return new WorkerPermissionClientProxy(render_frame, frame); |
| 1400 } | 1413 } |
| OLD | NEW |