summaryrefslogtreecommitdiffstats
path: root/chrome_frame
diff options
context:
space:
mode:
authortzik@chromium.org <tzik@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-11-12 06:45:54 +0000
committertzik@chromium.org <tzik@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-11-12 06:45:54 +0000
commit999dd8cf47255e8f9e3fbb160abaf697026a30ce (patch)
treeb82c665c93d51c455db5a324fc5b33a72a6f25fe /chrome_frame
parentdc1ab854180d1d98371fda1e71fc475e7c15f0ee (diff)
downloadchromium_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.gyp1
-rw-r--r--chrome_frame/plugin_url_request.cc9
-rw-r--r--chrome_frame/urlmon_upload_data_stream.cc5
-rw-r--r--chrome_frame/urlmon_upload_data_stream.h2
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);