summaryrefslogtreecommitdiffstats
path: root/chrome_frame/http_negotiate.h
diff options
context:
space:
mode:
authorananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-11-01 23:41:56 +0000
committerananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-11-01 23:41:56 +0000
commitaa2cf38beabe222641b145e1cf985c72acd46c1e (patch)
tree9859b7141aba180524b6792dc980e7fe9f24ed75 /chrome_frame/http_negotiate.h
parent022001851f2f6be890f9b44c49fa45ea38fa80b2 (diff)
downloadchromium_src-aa2cf38beabe222641b145e1cf985c72acd46c1e.zip
chromium_src-aa2cf38beabe222641b145e1cf985c72acd46c1e.tar.gz
chromium_src-aa2cf38beabe222641b145e1cf985c72acd46c1e.tar.bz2
Fix a bug where in having ChromeFrame installed on the machine would cause a non chrome frame
email site to automatically logout after logging in. ChromeFrame appends the chromeframe string to the user agent to outgoing requests initiated from IE. However this was only done in the protocol sink patch for top level requests. Sub requests would carry the IE user agent which in this case would cause the web server to get confused and drop the connection. Fix is to resurrent the IHttpNegotiate vtable patch for the protocol patch as well. Removed the code which read the patch method from the registry and turned on the moniker or the httpequiv patch. It is unlikely that we will need this in the future. Cleaned up the http negotiate patch by removing references to the navigation manager and the ReportProgress patch which is not needed anymore. Fixes bug http://code.google.com/p/chromium/issues/detail?id=60745 Bug=60745 Review URL: http://codereview.chromium.org/4247001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@64688 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome_frame/http_negotiate.h')
-rw-r--r--chrome_frame/http_negotiate.h36
1 files changed, 0 insertions, 36 deletions
diff --git a/chrome_frame/http_negotiate.h b/chrome_frame/http_negotiate.h
index a4d135a..eb17c7f 100644
--- a/chrome_frame/http_negotiate.h
+++ b/chrome_frame/http_negotiate.h
@@ -52,15 +52,6 @@ class HttpNegotiatePatch {
IHttpNegotiate_BeginningTransaction_Fn original, IHttpNegotiate* me,
LPCWSTR url, LPCWSTR headers, DWORD reserved, LPWSTR* additional_headers);
- // IBindStatusCallback patch methods
- static STDMETHODIMP StartBinding(IBindStatusCallback_StartBinding_Fn original,
- IBindStatusCallback* me, DWORD reserved, IBinding *binding);
-
- // IInternetProtocolSink patch methods
- static STDMETHODIMP ReportProgress(
- IInternetProtocolSink_ReportProgress_Fn original,
- IInternetProtocolSink* me, ULONG status_code, LPCWSTR status_text);
-
protected:
static HRESULT PatchHttpNegotiate(IUnknown* to_patch);
@@ -68,10 +59,6 @@ class HttpNegotiatePatch {
DISALLOW_COPY_AND_ASSIGN(HttpNegotiatePatch);
};
-// Attempts to get to the associated browser service for an active request.
-HRESULT GetBrowserServiceFromProtocolSink(IInternetProtocolSink* sink,
- IBrowserService** browser_service);
-
// From the latest urlmon.h. Symbol name prepended with LOCAL_ to
// avoid conflict (and therefore build errors) for those building with
// a newer Windows SDK.
@@ -94,27 +81,4 @@ std::string AppendCFUserAgentString(LPCWSTR headers,
std::string ReplaceOrAddUserAgent(LPCWSTR headers,
const std::string& user_agent_value);
-// Simple class that wraps IHttpNegotiate interface and adds "chromeframe"
-// to User-agent Http header.
-class UserAgentAddOn : public IHttpNegotiate {
- public:
- UserAgentAddOn() {}
- ~UserAgentAddOn() {}
- void set_delegate(IHttpNegotiate* delegate) {
- delegate_ = delegate;
- }
-
- bool has_delegate() const {
- return delegate_ != NULL;
- }
-
- protected:
- // IHttpNegotiate
- STDMETHOD(BeginningTransaction)(LPCWSTR url, LPCWSTR headers, DWORD reserved,
- LPWSTR* additional_headers);
- STDMETHOD(OnResponse)(DWORD response_code, LPCWSTR response_headers,
- LPCWSTR request_headers, LPWSTR* additional_headers);
- ScopedComPtr<IHttpNegotiate> delegate_;
-};
-
#endif // CHROME_FRAME_HTTP_NEGOTIATE_H_