diff options
author | ananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-02-26 20:26:43 +0000 |
---|---|---|
committer | ananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-02-26 20:26:43 +0000 |
commit | e29c87cee6ad065bc2b2b17ceca00fe40ec7fc77 (patch) | |
tree | 2d694f7cb32fd9be3f0a6253308ef5b8f11aea13 /chrome_frame/protocol_sink_wrap.cc | |
parent | e7665c8140388d9295e8920cc21a1f615437aaea (diff) | |
download | chromium_src-e29c87cee6ad065bc2b2b17ceca00fe40ec7fc77.zip chromium_src-e29c87cee6ad065bc2b2b17ceca00fe40ec7fc77.tar.gz chromium_src-e29c87cee6ad065bc2b2b17ceca00fe40ec7fc77.tar.bz2 |
ChromeFrame sites in IE would appear truncated at times.
This was a regression caused by the change to invalidate the cached protocol data when IE (urlmon)
terminates the protocol. While this works well for non CF requests, for CF requests when we report
the changed mime type to be that of chrome, the protocol is terminated with cached data. When Chrome
attempts to read it we don't have anything to report which leads to the problem.
Fix is to not invalidate the protocol data for Chrome requests in our Terminate hook. We should invalidate
it for Abort because that seems like an error condition.
BUG=178421
R=robertshield.
Review URL: https://chromiumcodereview.appspot.com/12310145
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@184718 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome_frame/protocol_sink_wrap.cc')
-rw-r--r-- | chrome_frame/protocol_sink_wrap.cc | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/chrome_frame/protocol_sink_wrap.cc b/chrome_frame/protocol_sink_wrap.cc index ddb608a..7664117 100644 --- a/chrome_frame/protocol_sink_wrap.cc +++ b/chrome_frame/protocol_sink_wrap.cc @@ -871,7 +871,9 @@ STDMETHODIMP Hook_Terminate(InternetProtocol_Terminate_Fn orig_req, IInternetProtocol* protocol, DWORD options) { scoped_refptr<ProtData> prot_data = ProtData::DataFromProtocol(protocol); - if (prot_data) + // TODO(ananta/robertshield) + // Write a test for this bug http://crbug.com/178421 + if (prot_data && !IsChrome(prot_data->renderer_type())) prot_data->Invalidate(); // We are just pass through at this point, avoid false positive crash |