Index: content/renderer/render_view_impl.cc |
diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc |
index 8103dc5789f5a0a289609077a5e79c0c31aa752c..b421bc20cea9bf2ec7701a13146b2e26d9632fc7 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)); |
ananta
2012/04/10 19:45:45
Would not do the right thing for ChromeFrame as me
|
+ if (ignore_navigation) |
+ return WebKit::WebNavigationPolicyIgnore; |
} |
} |