diff options
author | tzik@chromium.org <tzik@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-11-12 06:45:54 +0000 |
---|---|---|
committer | tzik@chromium.org <tzik@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-11-12 06:45:54 +0000 |
commit | 999dd8cf47255e8f9e3fbb160abaf697026a30ce (patch) | |
tree | b82c665c93d51c455db5a324fc5b33a72a6f25fe /chrome_frame | |
parent | dc1ab854180d1d98371fda1e71fc475e7c15f0ee (diff) | |
download | chromium_src-999dd8cf47255e8f9e3fbb160abaf697026a30ce.zip chromium_src-999dd8cf47255e8f9e3fbb160abaf697026a30ce.tar.gz chromium_src-999dd8cf47255e8f9e3fbb160abaf697026a30ce.tar.bz2 |
[Net] Fix error handling on wrong file in UploadData
* Handle file error as a failure rather than handling it as empty file.
* Change Chrome Frame error handling for URLRequest failure, from DCHECK hit to ignoring failing input file.
BUG=310548, 317432
Review URL: https://codereview.chromium.org/39203004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@234436 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome_frame')
-rw-r--r-- | chrome_frame/chrome_frame.gyp | 1 | ||||
-rw-r--r-- | chrome_frame/plugin_url_request.cc | 9 | ||||
-rw-r--r-- | chrome_frame/urlmon_upload_data_stream.cc | 5 | ||||
-rw-r--r-- | chrome_frame/urlmon_upload_data_stream.h | 2 |
4 files changed, 10 insertions, 7 deletions
diff --git a/chrome_frame/chrome_frame.gyp b/chrome_frame/chrome_frame.gyp index 4b127d8..f19db68 100644 --- a/chrome_frame/chrome_frame.gyp +++ b/chrome_frame/chrome_frame.gyp @@ -430,6 +430,7 @@ 'include_dirs': [ '<(DEPTH)/breakpad/src', ], + 'defines': [ 'CHROME_FRAME_NET_TESTS=1' ], 'sources': [ '../net/url_request/url_request_unittest.cc', 'test/chrome_frame_test_utils.cc', diff --git a/chrome_frame/plugin_url_request.cc b/chrome_frame/plugin_url_request.cc index cfc798b..1c3c464 100644 --- a/chrome_frame/plugin_url_request.cc +++ b/chrome_frame/plugin_url_request.cc @@ -32,6 +32,7 @@ bool PluginUrlRequest::Initialize(PluginUrlRequestDelegate* delegate, extra_headers_ = extra_headers; resource_type_ = resource_type; load_flags_ = load_flags; + enable_frame_busting_ = enable_frame_busting; if (upload_data) { // We store a pointer to UrlmonUploadDataStream and not net::UploadData @@ -44,7 +45,11 @@ bool PluginUrlRequest::Initialize(PluginUrlRequestDelegate* delegate, NOTREACHED(); } else { upload_stream->AddRef(); - upload_stream->Initialize(upload_data); + if (!upload_stream->Initialize(upload_data)) { + upload_stream->Release(); + return true; + } + upload_data_.Attach(upload_stream); is_chunked_upload_ = upload_data->is_chunked(); STATSTG stat; @@ -53,7 +58,5 @@ bool PluginUrlRequest::Initialize(PluginUrlRequestDelegate* delegate, } } - enable_frame_busting_ = enable_frame_busting; - return true; } diff --git a/chrome_frame/urlmon_upload_data_stream.cc b/chrome_frame/urlmon_upload_data_stream.cc index f825f3f..2fe2ed0 100644 --- a/chrome_frame/urlmon_upload_data_stream.cc +++ b/chrome_frame/urlmon_upload_data_stream.cc @@ -59,11 +59,10 @@ net::UploadDataStream* CreateUploadDataStream(net::UploadData* upload_data) { } // namespace -void UrlmonUploadDataStream::Initialize(net::UploadData* upload_data) { +bool UrlmonUploadDataStream::Initialize(net::UploadData* upload_data) { upload_data_ = upload_data; request_body_stream_.reset(CreateUploadDataStream(upload_data)); - const int result = request_body_stream_->Init(net::CompletionCallback()); - DCHECK_EQ(net::OK, result); + return request_body_stream_->Init(net::CompletionCallback()) == net::OK; } STDMETHODIMP UrlmonUploadDataStream::Read(void* pv, ULONG cb, ULONG* read) { diff --git a/chrome_frame/urlmon_upload_data_stream.h b/chrome_frame/urlmon_upload_data_stream.h index 497fdb4..b37e478 100644 --- a/chrome_frame/urlmon_upload_data_stream.h +++ b/chrome_frame/urlmon_upload_data_stream.h @@ -27,7 +27,7 @@ class UrlmonUploadDataStream : public CComObjectRootEx<CComMultiThreadModel>, COM_INTERFACE_ENTRY(IStream) END_COM_MAP() - void Initialize(net::UploadData* upload_data); + bool Initialize(net::UploadData* upload_data); // Partial implementation of IStream. STDMETHOD(Read)(void* pv, ULONG cb, ULONG* read); |