summaryrefslogtreecommitdiffstats
path: root/chrome_frame/urlmon_bind_status_callback.h
diff options
context:
space:
mode:
authoramit@chromium.org <amit@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-05-07 18:29:24 +0000
committeramit@chromium.org <amit@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-05-07 18:29:24 +0000
commitb31b9ff8646154d3e5c21e113d5afc634c61e9a2 (patch)
tree3b04d0a3988efa1a80c204e788f1620ac5dec951 /chrome_frame/urlmon_bind_status_callback.h
parentb13205648a9c45ba4d5e6fa5db3012bc8a1cf75e (diff)
downloadchromium_src-b31b9ff8646154d3e5c21e113d5afc634c61e9a2.zip
chromium_src-b31b9ff8646154d3e5c21e113d5afc634c61e9a2.tar.gz
chromium_src-b31b9ff8646154d3e5c21e113d5afc634c61e9a2.tar.bz2
Cache progress notifications only if necessary
We cache and suppress sending progress notifications till we get the first OnDataAvailable. This is to prevent mshtml from making up its mind about the mime type. However, this is the invasive part of the patch and could trip other software that's due to mistimed progress notifications. It is probably not good to hide redirect and some cookie notifications. We only need to suppress data notifications like BINDSTATUS_MIMETYPEAVAILABLE, BINDSTATUS_CACHEFILENAMEAVAILABLE etc. This is an atempt to reduce the exposure by starting to cache only when we receive one of the interesting progress notification. BUG=42611 TEST=none Review URL: http://codereview.chromium.org/2046003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@46715 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome_frame/urlmon_bind_status_callback.h')
-rw-r--r--chrome_frame/urlmon_bind_status_callback.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/chrome_frame/urlmon_bind_status_callback.h b/chrome_frame/urlmon_bind_status_callback.h
index 8b6fd3b..33e5a51 100644
--- a/chrome_frame/urlmon_bind_status_callback.h
+++ b/chrome_frame/urlmon_bind_status_callback.h
@@ -111,6 +111,10 @@ END_COM_MAP()
STDMETHOD(OnStopBinding)(HRESULT hresult, LPCWSTR error);
protected:
+ // is it a good time to start caching progress notifications
+ bool ShouldCacheProgress(ULONG status_code) const;
+
+ protected:
SniffData data_sniffer_;
// A structure to cache the progress notifications