summaryrefslogtreecommitdiffstats
path: root/chrome_frame/protocol_sink_wrap.cc
diff options
context:
space:
mode:
authorananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-02-26 20:26:43 +0000
committerananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-02-26 20:26:43 +0000
commite29c87cee6ad065bc2b2b17ceca00fe40ec7fc77 (patch)
tree2d694f7cb32fd9be3f0a6253308ef5b8f11aea13 /chrome_frame/protocol_sink_wrap.cc
parente7665c8140388d9295e8920cc21a1f615437aaea (diff)
downloadchromium_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.cc4
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