| 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/browser/renderer_host/chrome_resource_dispatcher_host_delegate.
h" | 5 #include "chrome/browser/renderer_host/chrome_resource_dispatcher_host_delegate.
h" |
| 6 | 6 |
| 7 #include "base/logging.h" | 7 #include "base/logging.h" |
| 8 #include "chrome/browser/browser_process.h" | 8 #include "chrome/browser/browser_process.h" |
| 9 #include "chrome/browser/content_settings/host_content_settings_map.h" | 9 #include "chrome/browser/content_settings/host_content_settings_map.h" |
| 10 #include "chrome/browser/download/download_request_limiter.h" | 10 #include "chrome/browser/download/download_request_limiter.h" |
| (...skipping 13 matching lines...) Expand all Loading... |
| 24 #include "chrome/browser/safe_browsing/safe_browsing_service.h" | 24 #include "chrome/browser/safe_browsing/safe_browsing_service.h" |
| 25 #include "chrome/browser/ui/auto_login_prompter.h" | 25 #include "chrome/browser/ui/auto_login_prompter.h" |
| 26 #include "chrome/browser/ui/login/login_prompt.h" | 26 #include "chrome/browser/ui/login/login_prompt.h" |
| 27 #include "chrome/browser/ui/sync/one_click_signin_helper.h" | 27 #include "chrome/browser/ui/sync/one_click_signin_helper.h" |
| 28 #include "chrome/common/chrome_notification_types.h" | 28 #include "chrome/common/chrome_notification_types.h" |
| 29 #include "chrome/common/extensions/user_script.h" | 29 #include "chrome/common/extensions/user_script.h" |
| 30 #include "chrome/common/render_messages.h" | 30 #include "chrome/common/render_messages.h" |
| 31 #include "content/public/browser/browser_thread.h" | 31 #include "content/public/browser/browser_thread.h" |
| 32 #include "content/public/browser/notification_service.h" | 32 #include "content/public/browser/notification_service.h" |
| 33 #include "content/public/browser/render_view_host.h" | 33 #include "content/public/browser/render_view_host.h" |
| 34 #include "content/public/browser/render_view_host_delegate.h" |
| 35 #include "content/public/browser/render_widget_host_view.h" |
| 34 #include "content/public/browser/resource_context.h" | 36 #include "content/public/browser/resource_context.h" |
| 35 #include "content/public/browser/resource_dispatcher_host.h" | 37 #include "content/public/browser/resource_dispatcher_host.h" |
| 36 #include "content/public/browser/resource_request_info.h" | 38 #include "content/public/browser/resource_request_info.h" |
| 39 #include "content/public/browser/web_contents.h" |
| 40 #include "content/public/browser/web_contents_view.h" |
| 37 #include "net/base/load_flags.h" | 41 #include "net/base/load_flags.h" |
| 38 #include "net/base/ssl_config_service.h" | 42 #include "net/base/ssl_config_service.h" |
| 39 #include "net/url_request/url_request.h" | 43 #include "net/url_request/url_request.h" |
| 44 #include "ui/gfx/size.h" |
| 40 | 45 |
| 41 // TODO(oshima): Enable this for other platforms. | 46 // TODO(oshima): Enable this for other platforms. |
| 42 #if defined(OS_CHROMEOS) | 47 #if defined(OS_CHROMEOS) |
| 43 #include "chrome/browser/renderer_host/offline_resource_throttle.h" | 48 #include "chrome/browser/renderer_host/offline_resource_throttle.h" |
| 44 #endif | 49 #endif |
| 45 | 50 |
| 46 using content::BrowserThread; | 51 using content::BrowserThread; |
| 47 using content::RenderViewHost; | 52 using content::RenderViewHost; |
| 48 using content::ResourceDispatcherHostLoginDelegate; | 53 using content::ResourceDispatcherHostLoginDelegate; |
| 49 using content::ResourceRequestInfo; | 54 using content::ResourceRequestInfo; |
| 50 | 55 |
| 51 namespace { | 56 namespace { |
| 52 | 57 |
| 58 // TODO(gavinp): Remove this after https://bugs.webkit.org/show_bug.cgi?id=85005 |
| 59 // lands in WebKit. |
| 53 void AddPrerenderOnUI( | 60 void AddPrerenderOnUI( |
| 54 int render_process_id, int render_view_id, | 61 int render_process_id, int render_view_id, |
| 55 const GURL& url, const content::Referrer& referrer) { | 62 const GURL& url, const content::Referrer& referrer) { |
| 56 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 63 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 57 prerender::PrerenderManager* prerender_manager = | 64 prerender::PrerenderManager* prerender_manager = |
| 58 prerender::FindPrerenderManagerUsingRenderProcessId(render_process_id); | 65 prerender::FindPrerenderManagerUsingRenderProcessId(render_process_id); |
| 59 if (!prerender_manager) | 66 if (!prerender_manager) |
| 60 return; | 67 return; |
| 61 | 68 |
| 62 prerender_manager->AddPrerenderFromLinkRelPrerender(render_process_id, | 69 RenderViewHost* render_view_host = |
| 63 render_view_id, | 70 RenderViewHost::FromID(render_process_id, render_view_id); |
| 64 url, | 71 if (!render_view_host) |
| 65 referrer); | 72 return; |
| 73 gfx::Rect tab_bounds; |
| 74 if (content::WebContents* source_wc = |
| 75 render_view_host->GetDelegate()->GetAsWebContents()) |
| 76 source_wc->GetView()->GetContainerBounds(&tab_bounds); |
| 77 gfx::Size view_size = tab_bounds.size(); |
| 78 if (view_size.IsEmpty()) |
| 79 view_size = prerender_manager->config().default_tab_bounds.size(); |
| 80 prerender_manager->AddPrerenderFromLinkRelPrerender( |
| 81 render_process_id, render_view_id, url, referrer, view_size); |
| 66 } | 82 } |
| 67 | 83 |
| 68 void NotifyDownloadInitiatedOnUI(int render_process_id, int render_view_id) { | 84 void NotifyDownloadInitiatedOnUI(int render_process_id, int render_view_id) { |
| 69 RenderViewHost* rvh = RenderViewHost::FromID(render_process_id, | 85 RenderViewHost* rvh = RenderViewHost::FromID(render_process_id, |
| 70 render_view_id); | 86 render_view_id); |
| 71 if (!rvh) | 87 if (!rvh) |
| 72 return; | 88 return; |
| 73 | 89 |
| 74 content::NotificationService::current()->Notify( | 90 content::NotificationService::current()->Notify( |
| 75 chrome::NOTIFICATION_DOWNLOAD_INITIATED, | 91 chrome::NOTIFICATION_DOWNLOAD_INITIATED, |
| (...skipping 261 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 337 #if defined(ENABLE_ONE_CLICK_SIGNIN) | 353 #if defined(ENABLE_ONE_CLICK_SIGNIN) |
| 338 const ResourceRequestInfo* info = ResourceRequestInfo::ForRequest(request); | 354 const ResourceRequestInfo* info = ResourceRequestInfo::ForRequest(request); |
| 339 | 355 |
| 340 // See if the response contains the Google-Accounts-SignIn header. If so, | 356 // See if the response contains the Google-Accounts-SignIn header. If so, |
| 341 // then the user has just finished signing in, and the server is allowing the | 357 // then the user has just finished signing in, and the server is allowing the |
| 342 // browser to suggest connecting the user's profile to the account. | 358 // browser to suggest connecting the user's profile to the account. |
| 343 OneClickSigninHelper::ShowInfoBarIfPossible(request, info->GetChildID(), | 359 OneClickSigninHelper::ShowInfoBarIfPossible(request, info->GetChildID(), |
| 344 info->GetRouteID()); | 360 info->GetRouteID()); |
| 345 #endif | 361 #endif |
| 346 } | 362 } |
| OLD | NEW |