summaryrefslogtreecommitdiffstats
path: root/chrome_frame/urlmon_moniker.h
diff options
context:
space:
mode:
authorananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-03-16 22:24:26 +0000
committerananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-03-16 22:24:26 +0000
commit38d3d4295d2a71aadd5707b8152a438f3edb0d73 (patch)
treee4efae10f9b1c448649ee9f2ea78a306a576824c /chrome_frame/urlmon_moniker.h
parentfb99efbe277cfb79219c50aa7e2071f684781a20 (diff)
downloadchromium_src-38d3d4295d2a71aadd5707b8152a438f3edb0d73.zip
chromium_src-38d3d4295d2a71aadd5707b8152a438f3edb0d73.tar.gz
chromium_src-38d3d4295d2a71aadd5707b8152a438f3edb0d73.tar.bz2
IE6 would not switch to ChromeFrame if the url being navigated to contained an anchor. This is presumably
because from IE6's perspecive nothing changed. To workaround this issue, we stash the complete url away in the navigation manager and remove it from the URL being navigated to. When the Chrome active document loads we read the actual url from the navigation manager and initiate a navigation to this URL. There is one issue with this approach though. The actual URL in the address bar in IE6 does not contain the anchor tag. Will address that in a follow up CL. This fixes bug http://code.google.com/p/chromium/issues/detail?id=38265 Bug=38265 Test=Covered by existing ChromeFrame anchor URL navigation tests. Review URL: http://codereview.chromium.org/1022003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@41776 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome_frame/urlmon_moniker.h')
-rw-r--r--chrome_frame/urlmon_moniker.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/chrome_frame/urlmon_moniker.h b/chrome_frame/urlmon_moniker.h
index aaab2ee..d4b6bbb 100644
--- a/chrome_frame/urlmon_moniker.h
+++ b/chrome_frame/urlmon_moniker.h
@@ -295,6 +295,15 @@ class NavigationManager {
url_ = url;
}
+ const std::wstring& original_url_with_fragment() const {
+ return original_url_with_fragment_;
+ }
+
+ void set_original_url_with_fragment(const wchar_t* url) {
+ DLOG(INFO) << __FUNCTION__ << " " << url;
+ original_url_with_fragment_ = url;
+ }
+
// Returns the referrer header value of the current top level navigation.
const std::string& referrer() const {
return referrer_;
@@ -356,6 +365,11 @@ class NavigationManager {
static base::LazyInstance<base::ThreadLocalPointer<NavigationManager> >
thread_singleton_;
+ // If the url being navigated to within ChromeFrame has a fragment, this
+ // member contains this URL. This member is cleared when the Chrome active
+ // document is loaded.
+ std::wstring original_url_with_fragment_;
+
private:
DISALLOW_COPY_AND_ASSIGN(NavigationManager);
};