Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1531)

Unified Diff: chrome/browser/renderer_host/chrome_resource_dispatcher_host_delegate.cc

Issue 124393002: Remove calls of PrerenderTracker::TryCancel in ChromeResourceDispatcherHostDelegate::HandleExternal… (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: sync Created 6 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/renderer_host/chrome_resource_dispatcher_host_delegate.cc
===================================================================
--- chrome/browser/renderer_host/chrome_resource_dispatcher_host_delegate.cc (revision 243063)
+++ chrome/browser/renderer_host/chrome_resource_dispatcher_host_delegate.cc (working copy)
@@ -48,6 +48,7 @@
#include "content/public/browser/resource_dispatcher_host.h"
#include "content/public/browser/resource_request_info.h"
#include "content/public/browser/stream_handle.h"
+#include "content/public/browser/web_contents.h"
#include "content/public/common/resource_response.h"
#include "extensions/browser/info_map.h"
#include "extensions/common/constants.h"
@@ -155,6 +156,24 @@
streams_private->ExecuteMimeTypeHandler(
extension_id, web_contents, stream.Pass(), expected_content_size);
}
+
+void LaunchURL(const GURL& url, int render_process_id, int render_view_id) {
+ content::RenderViewHost* rvh = content::RenderViewHost::FromID(
+ render_process_id, render_view_id);
+ if (rvh) {
+ content::WebContents* web_contents =
+ content::WebContents::FromRenderViewHost(rvh);
+ prerender::PrerenderContents* prerender_contents =
+ prerender::PrerenderContents::FromWebContents(web_contents);
+ if (prerender_contents) {
+ prerender_contents->Destroy(prerender::FINAL_STATUS_UNSUPPORTED_SCHEME);
+ prerender::ReportPrerenderExternalURL();
+ return;
+ }
+ }
+
+ ExternalProtocolHandler::LaunchUrl(url, render_process_id, render_view_id);
+}
#endif // !defined(OS_ANDROID)
void AppendComponentUpdaterThrottles(
@@ -439,13 +458,6 @@
return false;
#else
- if (prerender_tracker_->IsPrerenderingOnIOThread(child_id, route_id) &&
- prerender_tracker_->TryCancel(
- child_id, route_id, prerender::FINAL_STATUS_UNSUPPORTED_SCHEME)) {
- prerender::ReportPrerenderExternalURL();
- return false;
- }
-
ExtensionRendererState::WebViewInfo info;
if (ExtensionRendererState::GetInstance()->GetWebViewInfo(child_id,
route_id,
@@ -455,7 +467,7 @@
BrowserThread::PostTask(
BrowserThread::UI, FROM_HERE,
- base::Bind(&ExternalProtocolHandler::LaunchUrl, url, child_id, route_id));
+ base::Bind(&LaunchURL, url, child_id, route_id));
return true;
#endif
}

Powered by Google App Engine
This is Rietveld 408576698