diff options
author | hashimoto@chromium.org <hashimoto@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-01-10 14:08:07 +0000 |
---|---|---|
committer | hashimoto@chromium.org <hashimoto@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-01-10 14:08:07 +0000 |
commit | 671a7148a6cf14910b08b2bf6b395d9195d208b8 (patch) | |
tree | a8de07c7570328097bcea3a12863005d90c6ea91 /webkit/glue | |
parent | 116c89e1c77a03b08d7d23aee526448afbaa1c3d (diff) | |
download | chromium_src-671a7148a6cf14910b08b2bf6b395d9195d208b8.zip chromium_src-671a7148a6cf14910b08b2bf6b395d9195d208b8.tar.gz chromium_src-671a7148a6cf14910b08b2bf6b395d9195d208b8.tar.bz2 |
net: Stop using base::WorkerPool from UploadFileElementReader
Pass TaskRunner to ResourceRequestBody::ResolveElementsAndCreateUploadDataStream and use it for file operations.
BUG=167524
TEST=net_unittests
Review URL: https://chromiumcodereview.appspot.com/11778016
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@176063 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/glue')
-rw-r--r-- | webkit/glue/resource_request_body.cc | 10 | ||||
-rw-r--r-- | webkit/glue/resource_request_body.h | 11 | ||||
-rw-r--r-- | webkit/glue/resource_request_body_unittest.cc | 18 |
3 files changed, 25 insertions, 14 deletions
diff --git a/webkit/glue/resource_request_body.cc b/webkit/glue/resource_request_body.cc index b75666f..ace0772 100644 --- a/webkit/glue/resource_request_body.cc +++ b/webkit/glue/resource_request_body.cc @@ -41,8 +41,10 @@ class BytesElementReader : public net::UploadBytesElementReader { class FileElementReader : public net::UploadFileElementReader { public: FileElementReader(ResourceRequestBody* resource_request_body, + base::TaskRunner* task_runner, const ResourceRequestBody::Element& element) - : net::UploadFileElementReader(element.path(), + : net::UploadFileElementReader(task_runner, + element.path(), element.offset(), element.length(), element.expected_modification_time()), @@ -93,7 +95,8 @@ void ResourceRequestBody::AppendFileSystemFileRange( net::UploadDataStream* ResourceRequestBody::ResolveElementsAndCreateUploadDataStream( - BlobStorageController* blob_controller) { + BlobStorageController* blob_controller, + base::TaskRunner* task_runner) { // Resolve all blob elements. std::vector<const Element*> resolved_elements; for (size_t i = 0; i < elements_.size(); ++i) { @@ -114,7 +117,8 @@ ResourceRequestBody::ResolveElementsAndCreateUploadDataStream( element_readers.push_back(new BytesElementReader(this, element)); break; case Element::TYPE_FILE: - element_readers.push_back(new FileElementReader(this, element)); + element_readers.push_back( + new FileElementReader(this, task_runner, element)); break; case Element::TYPE_FILE_FILESYSTEM: // TODO(kinuko): Resolve FileSystemURL before creating UploadData. diff --git a/webkit/glue/resource_request_body.h b/webkit/glue/resource_request_body.h index 1d12e07..2b830d2 100644 --- a/webkit/glue/resource_request_body.h +++ b/webkit/glue/resource_request_body.h @@ -13,6 +13,10 @@ #include "webkit/base/data_element.h" #include "webkit/glue/webkit_glue_export.h" +namespace base { +class TaskRunner; +} + namespace net { class UploadDataStream; } @@ -42,10 +46,11 @@ class WEBKIT_GLUE_EXPORT ResourceRequestBody const base::Time& expected_modification_time); // Creates a new UploadDataStream from this request body. This also resolves - // any blob references using given |blob_controller|. - // TODO(kinuko): Clean up this hack. + // any blob references using given |blob_controller|. |task_runner| is used to + // perform file operations when the data gets uploaded. net::UploadDataStream* ResolveElementsAndCreateUploadDataStream( - webkit_blob::BlobStorageController* blob_controller); + webkit_blob::BlobStorageController* blob_controller, + base::TaskRunner* task_runner); const std::vector<Element>* elements() const { return &elements_; } std::vector<Element>* elements_mutable() { return &elements_; } diff --git a/webkit/glue/resource_request_body_unittest.cc b/webkit/glue/resource_request_body_unittest.cc index 21342f0..636b56d 100644 --- a/webkit/glue/resource_request_body_unittest.cc +++ b/webkit/glue/resource_request_body_unittest.cc @@ -8,6 +8,7 @@ #include "base/file_path.h" #include "base/file_util.h" +#include "base/message_loop_proxy.h" #include "base/time.h" #include "googleurl/src/gurl.h" #include "net/base/upload_bytes_element_reader.h" @@ -68,7 +69,8 @@ TEST(ResourceRequestBodyTest, CreateUploadDataStreamWithoutBlob) { request_body->set_identifier(kIdentifier); scoped_ptr<net::UploadDataStream> upload( - request_body->ResolveElementsAndCreateUploadDataStream(NULL)); + request_body->ResolveElementsAndCreateUploadDataStream( + NULL, base::MessageLoopProxy::current())); EXPECT_EQ(kIdentifier, upload->identifier()); ASSERT_EQ(request_body->elements()->size(), upload->element_readers().size()); @@ -139,7 +141,7 @@ TEST(ResourceRequestBodyTest, ResolveBlobAndCreateUploadDataStream) { scoped_ptr<net::UploadDataStream> upload( request_body->ResolveElementsAndCreateUploadDataStream( - &blob_storage_controller)); + &blob_storage_controller, base::MessageLoopProxy::current())); ASSERT_EQ(2U, upload->element_readers().size()); EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[0], upload_element1)); @@ -150,7 +152,7 @@ TEST(ResourceRequestBodyTest, ResolveBlobAndCreateUploadDataStream) { request_body->AppendBlob(blob_url0); upload.reset(request_body->ResolveElementsAndCreateUploadDataStream( - &blob_storage_controller)); + &blob_storage_controller, base::MessageLoopProxy::current())); ASSERT_EQ(0U, upload->element_readers().size()); // Test having only one blob reference. @@ -158,7 +160,7 @@ TEST(ResourceRequestBodyTest, ResolveBlobAndCreateUploadDataStream) { request_body->AppendBlob(blob_url1); upload.reset(request_body->ResolveElementsAndCreateUploadDataStream( - &blob_storage_controller)); + &blob_storage_controller, base::MessageLoopProxy::current())); ASSERT_EQ(2U, upload->element_readers().size()); EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[0], blob_element1)); EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[1], blob_element2)); @@ -173,7 +175,7 @@ TEST(ResourceRequestBodyTest, ResolveBlobAndCreateUploadDataStream) { upload_element2.expected_modification_time()); upload.reset(request_body->ResolveElementsAndCreateUploadDataStream( - &blob_storage_controller)); + &blob_storage_controller, base::MessageLoopProxy::current())); ASSERT_EQ(4U, upload->element_readers().size()); EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[0], blob_element1)); EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[1], blob_element2)); @@ -190,7 +192,7 @@ TEST(ResourceRequestBodyTest, ResolveBlobAndCreateUploadDataStream) { request_body->AppendBlob(blob_url1); upload.reset(request_body->ResolveElementsAndCreateUploadDataStream( - &blob_storage_controller)); + &blob_storage_controller, base::MessageLoopProxy::current())); ASSERT_EQ(4U, upload->element_readers().size()); EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[0], upload_element1)); EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[1], upload_element2)); @@ -207,7 +209,7 @@ TEST(ResourceRequestBodyTest, ResolveBlobAndCreateUploadDataStream) { upload_element2.expected_modification_time()); upload.reset(request_body->ResolveElementsAndCreateUploadDataStream( - &blob_storage_controller)); + &blob_storage_controller, base::MessageLoopProxy::current())); ASSERT_EQ(4U, upload->element_readers().size()); EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[0], upload_element1)); EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[1], blob_element1)); @@ -226,7 +228,7 @@ TEST(ResourceRequestBodyTest, ResolveBlobAndCreateUploadDataStream) { upload_element2.expected_modification_time()); upload.reset(request_body->ResolveElementsAndCreateUploadDataStream( - &blob_storage_controller)); + &blob_storage_controller, base::MessageLoopProxy::current())); ASSERT_EQ(8U, upload->element_readers().size()); EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[0], blob_element1)); EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[1], blob_element2)); |