diff options
author | ananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-04-09 23:53:26 +0000 |
---|---|---|
committer | ananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-04-09 23:53:26 +0000 |
commit | ffec6bf36fb4527d051960d4871623a5b91ec122 (patch) | |
tree | ebe555761e809e0733955482b3f8581f74e4b171 /chrome_frame/urlmon_url_request.cc | |
parent | 443f856cef514cbfd1a17d486f66c3d3530946c5 (diff) | |
download | chromium_src-ffec6bf36fb4527d051960d4871623a5b91ec122.zip chromium_src-ffec6bf36fb4527d051960d4871623a5b91ec122.tar.gz chromium_src-ffec6bf36fb4527d051960d4871623a5b91ec122.tar.bz2 |
Fix IE6 switching issues
Fixes for issues with new moniker patch.
BUG=none
TEST=covered by existing tests
Review URL: http://codereview.chromium.org/1625010
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@44160 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome_frame/urlmon_url_request.cc')
-rw-r--r-- | chrome_frame/urlmon_url_request.cc | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/chrome_frame/urlmon_url_request.cc b/chrome_frame/urlmon_url_request.cc index 364f01d..e3cc03b 100644 --- a/chrome_frame/urlmon_url_request.cc +++ b/chrome_frame/urlmon_url_request.cc @@ -624,7 +624,6 @@ HRESULT UrlmonUrlRequest::StartAsyncDownload() { HRESULT hr = E_FAIL; DCHECK((moniker_ && bind_context_) || (!moniker_ && !bind_context_)); - if (!moniker_.get()) { std::wstring wide_url = UTF8ToWide(url()); hr = CreateURLMonikerEx(NULL, wide_url.c_str(), moniker_.Receive(), @@ -653,8 +652,17 @@ HRESULT UrlmonUrlRequest::StartAsyncDownload() { // in destruction of our object. It's fine but we access some members // below for debug info. :) ScopedComPtr<IHttpSecurity> self(this); + + // Inform our moniker patch this binding should nto be tortured. + // TODO(amit): factor this out. + hr = bind_context_->RegisterObjectParam(L"_CHROMEFRAME_REQUEST_", self); + DCHECK(SUCCEEDED(hr)); + hr = moniker_->BindToStorage(bind_context_, NULL, __uuidof(IStream), reinterpret_cast<void**>(stream.Receive())); + + bind_context_->RevokeObjectParam(L"_CHROMEFRAME_REQUEST_"); + if (hr == S_OK) { DCHECK(binding_ != NULL || status_.get_state() == Status::DONE); } |