diff options
author | ananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-03-16 22:24:26 +0000 |
---|---|---|
committer | ananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-03-16 22:24:26 +0000 |
commit | 38d3d4295d2a71aadd5707b8152a438f3edb0d73 (patch) | |
tree | e4efae10f9b1c448649ee9f2ea78a306a576824c /chrome_frame/urlmon_moniker.h | |
parent | fb99efbe277cfb79219c50aa7e2071f684781a20 (diff) | |
download | chromium_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.h | 14 |
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); }; |