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

Unified Diff: content/renderer/render_view_impl.cc

Issue 9978015: Make browser_handles_top_level_requests synchronous. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: ExternalTabContainer::ShouldIgnoreNavigation returns true if is_content_initiated Created 8 years, 8 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: content/renderer/render_view_impl.cc
diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc
index b498938ad257d928dec60703ff296a4d797e925e..35761dde79814a6c021650908519f950048f90b4 100644
--- a/content/renderer/render_view_impl.cc
+++ b/content/renderer/render_view_impl.cc
@@ -2325,18 +2325,24 @@ WebNavigationPolicy RenderViewImpl::decidePolicyForNavigation(
// If the browser is interested, then give it a chance to look at top level
// navigations.
- if (is_content_initiated) {
- bool browser_handles_top_level_requests =
- renderer_preferences_.browser_handles_top_level_requests &&
- IsNonLocalTopLevelNavigation(url, frame, type);
- if (browser_handles_top_level_requests ||
+ if (renderer_preferences_.browser_handles_top_level_requests) {
+ if (IsNonLocalTopLevelNavigation(url, frame, type) ||
renderer_preferences_.browser_handles_all_requests) {
// Reset these counters as the RenderView could be reused for the next
// navigation.
page_id_ = -1;
last_page_id_sent_to_browser_ = -1;
- OpenURL(frame, url, referrer, default_policy);
- return WebKit::WebNavigationPolicyIgnore; // Suppress the load here.
+ bool ignore_navigation = false;
+ Send(new ViewHostMsg_ShouldIgnoreNavigation(
+ routing_id_,
+ url,
+ referrer,
+ NavigationPolicyToDisposition(default_policy),
+ frame->identifier(),
+ is_content_initiated,
+ &ignore_navigation));
+ if (ignore_navigation)
+ return WebKit::WebNavigationPolicyIgnore;
}
}

Powered by Google App Engine
This is Rietveld 408576698