| OLD | NEW |
| 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef CHROME_FRAME_URLMON_URL_REQUEST_H_ | 5 #ifndef CHROME_FRAME_URLMON_URL_REQUEST_H_ |
| 6 #define CHROME_FRAME_URLMON_URL_REQUEST_H_ | 6 #define CHROME_FRAME_URLMON_URL_REQUEST_H_ |
| 7 | 7 |
| 8 #include <urlmon.h> | 8 #include <urlmon.h> |
| 9 #include <atlbase.h> | 9 #include <atlbase.h> |
| 10 #include <atlcom.h> | 10 #include <atlcom.h> |
| 11 #include <atlwin.h> | 11 #include <atlwin.h> |
| 12 | |
| 13 #include <algorithm> | 12 #include <algorithm> |
| 13 #include <string> |
| 14 | 14 |
| 15 #include "base/lock.h" | 15 #include "base/lock.h" |
| 16 #include "base/platform_thread.h" | 16 #include "base/platform_thread.h" |
| 17 #include "base/thread.h" | 17 #include "base/thread.h" |
| 18 #include "base/scoped_comptr_win.h" | 18 #include "base/scoped_comptr_win.h" |
| 19 #include "chrome_frame/plugin_url_request.h" | 19 #include "chrome_frame/plugin_url_request.h" |
| 20 #include "chrome_frame/chrome_frame_delegate.h" | 20 #include "chrome_frame/chrome_frame_delegate.h" |
| 21 | 21 |
| 22 #include "net/base/net_errors.h" | 22 #include "net/base/net_errors.h" |
| 23 #include "net/base/upload_data.h" | 23 #include "net/base/upload_data.h" |
| (...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 232 ScopedComPtr<IStream> stream_; | 232 ScopedComPtr<IStream> stream_; |
| 233 char read_buffer_[kCopyChunkSize]; | 233 char read_buffer_[kCopyChunkSize]; |
| 234 }; | 234 }; |
| 235 | 235 |
| 236 HRESULT StartAsyncDownload(); | 236 HRESULT StartAsyncDownload(); |
| 237 void EndRequest(); | 237 void EndRequest(); |
| 238 // Executes in the context of the UI thread and releases the outstanding | 238 // Executes in the context of the UI thread and releases the outstanding |
| 239 // reference to us. It also deletes the request mapping for this instance. | 239 // reference to us. It also deletes the request mapping for this instance. |
| 240 void EndRequestInternal(); | 240 void EndRequestInternal(); |
| 241 int GetHttpResponseStatus() const; | 241 int GetHttpResponseStatus() const; |
| 242 std::string GetHttpHeaders() const; |
| 242 | 243 |
| 243 static net::Error HresultToNetError(HRESULT hr); | 244 static net::Error HresultToNetError(HRESULT hr); |
| 244 | 245 |
| 245 private: | 246 private: |
| 246 std::wstring redirect_url_; | 247 std::wstring redirect_url_; |
| 247 int redirect_status_; | 248 int redirect_status_; |
| 248 ScopedComPtr<IBinding> binding_; | 249 ScopedComPtr<IBinding> binding_; |
| 249 ScopedComPtr<IMoniker> moniker_; | 250 ScopedComPtr<IMoniker> moniker_; |
| 250 ScopedComPtr<IBindCtx> bind_context_; | 251 ScopedComPtr<IBindCtx> bind_context_; |
| 251 Cache cached_data_; | 252 Cache cached_data_; |
| 252 size_t pending_read_size_; | 253 size_t pending_read_size_; |
| 253 URLRequestStatus status_; | 254 URLRequestStatus status_; |
| 254 | 255 |
| 255 PlatformThreadId thread_; | 256 PlatformThreadId thread_; |
| 256 static int instance_count_; | 257 static int instance_count_; |
| 257 HWND parent_window_; | 258 HWND parent_window_; |
| 259 // Set to true if a redirect notification was aborted. |
| 260 bool ignore_redirect_stop_binding_error_; |
| 261 |
| 258 DISALLOW_COPY_AND_ASSIGN(UrlmonUrlRequest); | 262 DISALLOW_COPY_AND_ASSIGN(UrlmonUrlRequest); |
| 259 }; | 263 }; |
| 260 | 264 |
| 261 #endif // CHROME_FRAME_URLMON_URL_REQUEST_H_ | 265 #endif // CHROME_FRAME_URLMON_URL_REQUEST_H_ |
| 262 | 266 |
| OLD | NEW |