diff options
author | erikwright@chromium.org <erikwright@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-04-05 18:48:12 +0000 |
---|---|---|
committer | erikwright@chromium.org <erikwright@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-04-05 18:48:12 +0000 |
commit | a9e25776c38cfad2445ed58eb3dc15189a4d6d66 (patch) | |
tree | 89b6d6e272da7e6da8b577e60aa5c621eaa57fa2 | |
parent | b238616fb87da26003fec8dead25a25ddf41cb4d (diff) | |
download | chromium_src-a9e25776c38cfad2445ed58eb3dc15189a4d6d66.zip chromium_src-a9e25776c38cfad2445ed58eb3dc15189a4d6d66.tar.gz chromium_src-a9e25776c38cfad2445ed58eb3dc15189a4d6d66.tar.bz2 |
A change in the way User Agent is modified caused Chrome Frame to mistakenly disable itself when installing into pre-existing IE processes.
BUG=60018
TEST=Open IE when Chrome Frame is not installed. Install Chrome Frame. Instantiate the Chrome Frame ActiveX control and call registerBhoIfNeeded. Visit wordpress.com and verify that ChromeFrame is activated.
Review URL: http://codereview.chromium.org/6691063
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@80497 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chrome_frame/bho.cc | 21 | ||||
-rw-r--r-- | chrome_frame/http_negotiate.cc | 3 |
2 files changed, 5 insertions, 19 deletions
diff --git a/chrome_frame/bho.cc b/chrome_frame/bho.cc index 62f9079..5ac26f4 100644 --- a/chrome_frame/bho.cc +++ b/chrome_frame/bho.cc @@ -84,19 +84,9 @@ class ReadyModeDelegateImpl : public ready_mode::Delegate { DISALLOW_COPY_AND_ASSIGN(ReadyModeDelegateImpl); }; // class ReadyModeDelegateImpl -void SynchronizeEnablementState() { - std::string user_agent(http_utils::GetDefaultUserAgent()); - bool enabled = user_agent.find("chromeframe") != std::string::npos; - ProtocolSinkWrap::set_ignore_xua(!enabled); -} - void ReadyModeDelegateImpl::DisableChromeFrame() { - if (GetIEVersion() != IE_9) { - SynchronizeEnablementState(); - } else { - HttpNegotiatePatch::set_modify_user_agent(false); - ProtocolSinkWrap::set_ignore_xua(true); - } + HttpNegotiatePatch::set_modify_user_agent(false); + ProtocolSinkWrap::set_ignore_xua(true); } } // namespace @@ -111,13 +101,6 @@ STDMETHODIMP Bho::SetSite(IUnknown* site) { DCHECK(SUCCEEDED(hr)) << "DispEventAdvise failed. Error: " << hr; ready_mode::Configure(new ReadyModeDelegateImpl(), web_browser2); - - // At this time, the user agent has been updated to reflect the Ready Mode - // state. We should make sure to modify our recognition of meta tags - // accordingly. On IE 9, another method is used to manage meta tags. - if (GetIEVersion() != IE_9) { - SynchronizeEnablementState(); - } } if (g_patch_helper.state() == PatchHelper::PATCH_IBROWSER) { diff --git a/chrome_frame/http_negotiate.cc b/chrome_frame/http_negotiate.cc index ef4b05b..0bff64b 100644 --- a/chrome_frame/http_negotiate.cc +++ b/chrome_frame/http_negotiate.cc @@ -243,6 +243,9 @@ HRESULT HttpNegotiatePatch::BeginningTransaction( *additional_headers, (updated_headers.length() + 1) * sizeof(wchar_t))); lstrcpyW(*additional_headers, ASCIIToWide(updated_headers).c_str()); + } else { + // TODO(erikwright): Remove the user agent if it is present (i.e., because + // of PostPlatform setting in the registry). } return S_OK; } |