summaryrefslogtreecommitdiffstats
path: root/chrome/renderer
diff options
context:
space:
mode:
authorananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-07-13 22:22:01 +0000
committerananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-07-13 22:22:01 +0000
commit070c49c0f0578ccda58ccc4d3528f9458b5a2879 (patch)
tree58ff235ee5d107b988c29ce649945c2cc779a2f8 /chrome/renderer
parentbdf411b661a997857619a520c2812e98ba8006a1 (diff)
downloadchromium_src-070c49c0f0578ccda58ccc4d3528f9458b5a2879.zip
chromium_src-070c49c0f0578ccda58ccc4d3528f9458b5a2879.tar.gz
chromium_src-070c49c0f0578ccda58ccc4d3528f9458b5a2879.tar.bz2
ChromeFrame back forward navigations at times would mess up the navigation history if the back and the current page both
were rendered in ChromeFrame. This was because the back operation would incorrectly navigate twice. Once via IE history navigation and the other navigation would originate within the renderer and would execute as a new navigation in IE. Fix is to not report backforward navigations as top level navigations to the external host. Fixes bug http://code.google.com/p/chromium/issues/detail?id=44403 Bug=44403 Test=Covered by ChromeFrame test Review URL: http://codereview.chromium.org/2982003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@52235 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/renderer')
-rw-r--r--chrome/renderer/render_view.cc6
1 files changed, 4 insertions, 2 deletions
diff --git a/chrome/renderer/render_view.cc b/chrome/renderer/render_view.cc
index 7030f80..c539120 100644
--- a/chrome/renderer/render_view.cc
+++ b/chrome/renderer/render_view.cc
@@ -5237,13 +5237,15 @@ bool RenderView::IsNonLocalTopLevelNavigation(
if (last_top_level_navigation_page_id_ != page_id_ &&
// Not interested in reloads.
type != WebKit::WebNavigationTypeReload &&
- type != WebKit::WebNavigationTypeFormSubmitted) {
+ type != WebKit::WebNavigationTypeFormSubmitted &&
+ type != WebKit::WebNavigationTypeBackForward) {
return true;
}
}
// Not interested in reloads.
if (type != WebKit::WebNavigationTypeReload &&
- type != WebKit::WebNavigationTypeFormSubmitted) {
+ type != WebKit::WebNavigationTypeFormSubmitted &&
+ type != WebKit::WebNavigationTypeBackForward) {
// The opener relationship between the new window and the parent allows the
// new window to script the parent and vice versa. This is not allowed if
// the origins of the two domains are different. This can be treated as a