summaryrefslogtreecommitdiffstats
path: root/webkit/glue
diff options
context:
space:
mode:
authordarin@chromium.org <darin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-06-27 08:00:47 +0000
committerdarin@chromium.org <darin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-06-27 08:00:47 +0000
commit748b0ad3c5c63638ec75f20ffa8fdaf8bf973488 (patch)
treeb699ea9624c98a4480a10d524c10bb5527aeb5ce /webkit/glue
parentfe352a0590f75d503eecd8f788b7b80acf511c6d (diff)
downloadchromium_src-748b0ad3c5c63638ec75f20ffa8fdaf8bf973488.zip
chromium_src-748b0ad3c5c63638ec75f20ffa8fdaf8bf973488.tar.gz
chromium_src-748b0ad3c5c63638ec75f20ffa8fdaf8bf973488.tar.bz2
Move some classes out of webkit/glue/.
Review URL: https://chromiumcodereview.appspot.com/16831010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@208865 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/glue')
-rw-r--r--webkit/glue/resource_loader_bridge.cc19
-rw-r--r--webkit/glue/resource_loader_bridge.h109
-rw-r--r--webkit/glue/resource_request_body.cc174
-rw-r--r--webkit/glue/resource_request_body.h93
-rw-r--r--webkit/glue/resource_request_body_unittest.cc248
-rw-r--r--webkit/glue/webkit_glue.gypi2
-rw-r--r--webkit/glue/weburlloader_impl.cc2
7 files changed, 2 insertions, 645 deletions
diff --git a/webkit/glue/resource_loader_bridge.cc b/webkit/glue/resource_loader_bridge.cc
index f3b89b3..4d8eabe 100644
--- a/webkit/glue/resource_loader_bridge.cc
+++ b/webkit/glue/resource_loader_bridge.cc
@@ -9,25 +9,6 @@
namespace webkit_glue {
-ResourceDevToolsInfo::ResourceDevToolsInfo()
- : http_status_code(0) {
-}
-
-ResourceDevToolsInfo::~ResourceDevToolsInfo() {}
-
-ResourceResponseInfo::ResourceResponseInfo()
- : content_length(-1),
- encoded_data_length(-1),
- appcache_id(appcache::kNoCacheId),
- was_fetched_via_spdy(false),
- was_npn_negotiated(false),
- was_alternate_protocol_available(false),
- connection_info(net::HttpResponseInfo::CONNECTION_INFO_UNKNOWN),
- was_fetched_via_proxy(false) {
-}
-
-ResourceResponseInfo::~ResourceResponseInfo() {}
-
ResourceLoaderBridge::RequestInfo::RequestInfo()
: referrer_policy(WebKit::WebReferrerPolicyDefault),
load_flags(0),
diff --git a/webkit/glue/resource_loader_bridge.h b/webkit/glue/resource_loader_bridge.h
index 5f1aee6..2536c47 100644
--- a/webkit/glue/resource_loader_bridge.h
+++ b/webkit/glue/resource_loader_bridge.h
@@ -17,132 +17,25 @@
#define WEBKIT_GLUE_RESOURCE_LOADER_BRIDGE_H_
#include <utility>
-#include <vector>
#include "build/build_config.h"
#if defined(OS_POSIX)
#include "base/file_descriptor_posix.h"
#endif
-#include "base/files/file_path.h"
#include "base/memory/ref_counted.h"
#include "base/platform_file.h"
-#include "base/time.h"
#include "base/values.h"
#include "googleurl/src/gurl.h"
-#include "net/base/host_port_pair.h"
-#include "net/base/load_timing_info.h"
#include "net/base/request_priority.h"
-#include "net/http/http_response_info.h"
-#include "net/url_request/url_request_status.h"
#include "third_party/WebKit/public/platform/WebReferrerPolicy.h"
#include "third_party/WebKit/public/platform/WebURLRequest.h"
+#include "webkit/common/resource_response_info.h"
#include "webkit/glue/resource_type.h"
#include "webkit/glue/webkit_glue_export.h"
-namespace net {
-class HttpResponseHeaders;
-}
-
namespace webkit_glue {
class ResourceRequestBody;
-struct ResourceDevToolsInfo : base::RefCounted<ResourceDevToolsInfo> {
- typedef std::vector<std::pair<std::string, std::string> >
- HeadersVector;
-
- WEBKIT_GLUE_EXPORT ResourceDevToolsInfo();
-
- int32 http_status_code;
- std::string http_status_text;
- HeadersVector request_headers;
- HeadersVector response_headers;
- std::string request_headers_text;
- std::string response_headers_text;
-
- private:
- friend class base::RefCounted<ResourceDevToolsInfo>;
- WEBKIT_GLUE_EXPORT ~ResourceDevToolsInfo();
-};
-
-struct ResourceResponseInfo {
- WEBKIT_GLUE_EXPORT ResourceResponseInfo();
- WEBKIT_GLUE_EXPORT ~ResourceResponseInfo();
-
- // The time at which the request was made that resulted in this response.
- // For cached responses, this time could be "far" in the past.
- base::Time request_time;
-
- // The time at which the response headers were received. For cached
- // responses, this time could be "far" in the past.
- base::Time response_time;
-
- // The response headers or NULL if the URL type does not support headers.
- scoped_refptr<net::HttpResponseHeaders> headers;
-
- // The mime type of the response. This may be a derived value.
- std::string mime_type;
-
- // The character encoding of the response or none if not applicable to the
- // response's mime type. This may be a derived value.
- std::string charset;
-
- // An opaque string carrying security information pertaining to this
- // response. This may include information about the SSL connection used.
- std::string security_info;
-
- // Content length if available. -1 if not available
- int64 content_length;
-
- // Length of the encoded data transferred over the network. In case there is
- // no data, contains -1.
- int64 encoded_data_length;
-
- // The appcache this response was loaded from, or kNoCacheId.
- int64 appcache_id;
-
- // The manifest url of the appcache this response was loaded from.
- // Note: this value is only populated for main resource requests.
- GURL appcache_manifest_url;
-
- // Detailed timing information used by the WebTiming, HAR and Developer
- // Tools. Includes socket ID and socket reuse information.
- net::LoadTimingInfo load_timing;
-
- // Actual request and response headers, as obtained from the network stack.
- // Only present if request had LOAD_REPORT_RAW_HEADERS in load_flags, and
- // requesting renderer had CanReadRowCookies permission.
- scoped_refptr<ResourceDevToolsInfo> devtools_info;
-
- // The path to a file that will contain the response body. It may only
- // contain a portion of the response body at the time that the ResponseInfo
- // becomes available.
- base::FilePath download_file_path;
-
- // True if the response was delivered using SPDY.
- bool was_fetched_via_spdy;
-
- // True if the response was delivered after NPN is negotiated.
- bool was_npn_negotiated;
-
- // True if response could use alternate protocol. However, browser will
- // ignore the alternate protocol when spdy is not enabled on browser side.
- bool was_alternate_protocol_available;
-
- // Information about the type of connection used to fetch this response.
- net::HttpResponseInfo::ConnectionInfo connection_info;
-
- // True if the response was fetched via an explicit proxy (as opposed to a
- // transparent proxy). The proxy could be any type of proxy, HTTP or SOCKS.
- // Note: we cannot tell if a transparent proxy may have been involved.
- bool was_fetched_via_proxy;
-
- // NPN protocol negotiated with the server.
- std::string npn_negotiated_protocol;
-
- // Remote address of the socket which fetched this resource.
- net::HostPortPair socket_address;
-};
-
class ResourceLoaderBridge {
public:
// Structure used when calling
diff --git a/webkit/glue/resource_request_body.cc b/webkit/glue/resource_request_body.cc
deleted file mode 100644
index 2bde26d..0000000
--- a/webkit/glue/resource_request_body.cc
+++ /dev/null
@@ -1,174 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "webkit/glue/resource_request_body.h"
-
-#include "base/logging.h"
-#include "net/base/upload_bytes_element_reader.h"
-#include "net/base/upload_data_stream.h"
-#include "net/base/upload_file_element_reader.h"
-#include "webkit/browser/blob/blob_storage_controller.h"
-#include "webkit/browser/fileapi/upload_file_system_file_element_reader.h"
-
-using webkit_blob::BlobData;
-using webkit_blob::BlobStorageController;
-
-namespace webkit_glue {
-
-namespace {
-
-// A subclass of net::UploadBytesElementReader which owns ResourceRequestBody.
-class BytesElementReader : public net::UploadBytesElementReader {
- public:
- BytesElementReader(ResourceRequestBody* resource_request_body,
- const ResourceRequestBody::Element& element)
- : net::UploadBytesElementReader(element.bytes(), element.length()),
- resource_request_body_(resource_request_body) {
- DCHECK_EQ(ResourceRequestBody::Element::TYPE_BYTES, element.type());
- }
-
- virtual ~BytesElementReader() {}
-
- private:
- scoped_refptr<ResourceRequestBody> resource_request_body_;
-
- DISALLOW_COPY_AND_ASSIGN(BytesElementReader);
-};
-
-// A subclass of net::UploadFileElementReader which owns ResourceRequestBody.
-// This class is necessary to ensure the BlobData and any attached shareable
-// files survive until upload completion.
-class FileElementReader : public net::UploadFileElementReader {
- public:
- FileElementReader(ResourceRequestBody* resource_request_body,
- base::TaskRunner* task_runner,
- const ResourceRequestBody::Element& element)
- : net::UploadFileElementReader(task_runner,
- element.path(),
- element.offset(),
- element.length(),
- element.expected_modification_time()),
- resource_request_body_(resource_request_body) {
- DCHECK_EQ(ResourceRequestBody::Element::TYPE_FILE, element.type());
- }
-
- virtual ~FileElementReader() {}
-
- private:
- scoped_refptr<ResourceRequestBody> resource_request_body_;
-
- DISALLOW_COPY_AND_ASSIGN(FileElementReader);
-};
-
-} // namespace
-
-ResourceRequestBody::ResourceRequestBody() : identifier_(0) {}
-
-void ResourceRequestBody::AppendBytes(const char* bytes, int bytes_len) {
- if (bytes_len > 0) {
- elements_.push_back(Element());
- elements_.back().SetToBytes(bytes, bytes_len);
- }
-}
-
-void ResourceRequestBody::AppendFileRange(
- const base::FilePath& file_path,
- uint64 offset, uint64 length,
- const base::Time& expected_modification_time) {
- elements_.push_back(Element());
- elements_.back().SetToFilePathRange(file_path, offset, length,
- expected_modification_time);
-}
-
-void ResourceRequestBody::AppendBlob(const GURL& blob_url) {
- elements_.push_back(Element());
- elements_.back().SetToBlobUrl(blob_url);
-}
-
-void ResourceRequestBody::AppendFileSystemFileRange(
- const GURL& url, uint64 offset, uint64 length,
- const base::Time& expected_modification_time) {
- elements_.push_back(Element());
- elements_.back().SetToFileSystemUrlRange(url, offset, length,
- expected_modification_time);
-}
-
-net::UploadDataStream*
-ResourceRequestBody::ResolveElementsAndCreateUploadDataStream(
- BlobStorageController* blob_controller,
- fileapi::FileSystemContext* file_system_context,
- base::TaskRunner* file_task_runner) {
- // Resolve all blob elements.
- std::vector<const Element*> resolved_elements;
- for (size_t i = 0; i < elements_.size(); ++i) {
- const Element& element = elements_[i];
- if (element.type() == Element::TYPE_BLOB) {
- ResolveBlobReference(blob_controller, element.url(), &resolved_elements);
- } else {
- // No need to resolve, just append the element.
- resolved_elements.push_back(&element);
- }
- }
-
- ScopedVector<net::UploadElementReader> element_readers;
- for (size_t i = 0; i < resolved_elements.size(); ++i) {
- const Element& element = *resolved_elements[i];
- switch (element.type()) {
- case Element::TYPE_BYTES:
- element_readers.push_back(new BytesElementReader(this, element));
- break;
- case Element::TYPE_FILE:
- element_readers.push_back(
- new FileElementReader(this, file_task_runner, element));
- break;
- case Element::TYPE_FILE_FILESYSTEM:
- element_readers.push_back(
- new fileapi::UploadFileSystemFileElementReader(
- file_system_context,
- element.url(),
- element.offset(),
- element.length(),
- element.expected_modification_time()));
- break;
- case Element::TYPE_BLOB:
- // Blob elements should be resolved beforehand.
- NOTREACHED();
- break;
- case Element::TYPE_UNKNOWN:
- NOTREACHED();
- break;
- }
- }
- return new net::UploadDataStream(&element_readers, identifier_);
-}
-
-ResourceRequestBody::~ResourceRequestBody() {}
-
-void ResourceRequestBody::ResolveBlobReference(
- webkit_blob::BlobStorageController* blob_controller,
- const GURL& blob_url,
- std::vector<const Element*>* resolved_elements) {
- DCHECK(blob_controller);
- BlobData* blob_data = blob_controller->GetBlobDataFromUrl(blob_url);
- DCHECK(blob_data);
- if (!blob_data)
- return;
-
- // If there is no element in the referred blob data, just return.
- if (blob_data->items().empty())
- return;
-
- // Ensure the blob and any attached shareable files survive until
- // upload completion.
- SetUserData(blob_data, new base::UserDataAdapter<BlobData>(blob_data));
-
- // Append the elements in the referred blob data.
- for (size_t i = 0; i < blob_data->items().size(); ++i) {
- const BlobData::Item& item = blob_data->items().at(i);
- DCHECK_NE(BlobData::Item::TYPE_BLOB, item.type());
- resolved_elements->push_back(&item);
- }
-}
-
-} // namespace webkit_glue
diff --git a/webkit/glue/resource_request_body.h b/webkit/glue/resource_request_body.h
deleted file mode 100644
index 71a0495..0000000
--- a/webkit/glue/resource_request_body.h
+++ /dev/null
@@ -1,93 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef WEBKIT_GLUE_RESOURCE_REQUEST_BODY_H_
-#define WEBKIT_GLUE_RESOURCE_REQUEST_BODY_H_
-
-#include <vector>
-
-#include "base/basictypes.h"
-#include "base/memory/ref_counted.h"
-#include "base/supports_user_data.h"
-#include "webkit/base/data_element.h"
-#include "webkit/glue/webkit_glue_export.h"
-
-namespace base {
-class FilePath;
-class TaskRunner;
-}
-
-namespace fileapi {
-class FileSystemContext;
-}
-
-namespace net {
-class UploadDataStream;
-}
-
-namespace webkit_blob {
-class BlobStorageController;
-}
-
-namespace webkit_glue {
-
-// A struct used to represent upload data. The data field is populated by
-// WebURLLoader from the data given as WebHTTPBody.
-class WEBKIT_GLUE_EXPORT ResourceRequestBody
- : public base::RefCounted<ResourceRequestBody>,
- public base::SupportsUserData {
- public:
- typedef webkit_base::DataElement Element;
-
- ResourceRequestBody();
-
- void AppendBytes(const char* bytes, int bytes_len);
- void AppendFileRange(const base::FilePath& file_path,
- uint64 offset, uint64 length,
- const base::Time& expected_modification_time);
- void AppendBlob(const GURL& blob_url);
- void AppendFileSystemFileRange(const GURL& url, uint64 offset, uint64 length,
- const base::Time& expected_modification_time);
-
- // Creates a new UploadDataStream from this request body. This also resolves
- // any blob references using given |blob_controller|. |file_system_context| is
- // used to create FileStreamReader for files with filesystem URLs.
- // |file_task_runner| is used to perform file operations when the data gets
- // uploaded.
- net::UploadDataStream* ResolveElementsAndCreateUploadDataStream(
- webkit_blob::BlobStorageController* blob_controller,
- fileapi::FileSystemContext* file_system_context,
- base::TaskRunner* file_task_runner);
-
- const std::vector<Element>* elements() const { return &elements_; }
- std::vector<Element>* elements_mutable() { return &elements_; }
- void swap_elements(std::vector<Element>* elements) {
- elements_.swap(*elements);
- }
-
- // Identifies a particular upload instance, which is used by the cache to
- // formulate a cache key. This value should be unique across browser
- // sessions. A value of 0 is used to indicate an unspecified identifier.
- void set_identifier(int64 id) { identifier_ = id; }
- int64 identifier() const { return identifier_; }
-
- private:
- friend class base::RefCounted<ResourceRequestBody>;
- virtual ~ResourceRequestBody();
-
- // Resolves the |blob_url| using |blob_controller| and appends resolved
- // items to |resolved_elements|.
- void ResolveBlobReference(webkit_blob::BlobStorageController* blob_controller,
- const GURL& blob_url,
- std::vector<const Element*>* resolved_elements);
-
- std::vector<Element> elements_;
- int64 identifier_;
-
- DISALLOW_COPY_AND_ASSIGN(ResourceRequestBody);
-};
-
-} // namespace webkit_glue
-
-#endif // WEBKIT_GLUE_RESOURCE_REQUEST_BODY_H_
diff --git a/webkit/glue/resource_request_body_unittest.cc b/webkit/glue/resource_request_body_unittest.cc
deleted file mode 100644
index 523b7dc..0000000
--- a/webkit/glue/resource_request_body_unittest.cc
+++ /dev/null
@@ -1,248 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "webkit/glue/resource_request_body.h"
-
-#include <algorithm>
-
-#include "base/file_util.h"
-#include "base/files/file_path.h"
-#include "base/message_loop.h"
-#include "base/message_loop/message_loop_proxy.h"
-#include "base/time.h"
-#include "googleurl/src/gurl.h"
-#include "net/base/upload_bytes_element_reader.h"
-#include "net/base/upload_data_stream.h"
-#include "net/base/upload_file_element_reader.h"
-#include "testing/gtest/include/gtest/gtest.h"
-#include "webkit/browser/blob/blob_storage_controller.h"
-
-using webkit_blob::BlobData;
-using webkit_blob::BlobStorageController;
-
-namespace webkit_glue {
-
-namespace {
-
-bool AreElementsEqual(const net::UploadElementReader& reader,
- const ResourceRequestBody::Element& element) {
- switch(element.type()) {
- case ResourceRequestBody::Element::TYPE_BYTES: {
- const net::UploadBytesElementReader* bytes_reader =
- reader.AsBytesReader();
- return bytes_reader &&
- element.length() == bytes_reader->length() &&
- std::equal(element.bytes(), element.bytes() + element.length(),
- bytes_reader->bytes());
- }
- case ResourceRequestBody::Element::TYPE_FILE: {
- const net::UploadFileElementReader* file_reader = reader.AsFileReader();
- return file_reader &&
- file_reader->path() == element.path() &&
- file_reader->range_offset() == element.offset() &&
- file_reader->range_length() == element.length() &&
- file_reader->expected_modification_time() ==
- element.expected_modification_time();
- break;
- }
- default:
- NOTREACHED();
- }
- return false;
-}
-
-} // namespace
-
-TEST(ResourceRequestBodyTest, CreateUploadDataStreamWithoutBlob) {
- base::MessageLoop message_loop;
- scoped_refptr<ResourceRequestBody> request_body = new ResourceRequestBody;
-
- const char kData[] = "123";
- const base::FilePath::StringType kFilePath = FILE_PATH_LITERAL("abc");
- const uint64 kFileOffset = 10U;
- const uint64 kFileLength = 100U;
- const base::Time kFileTime = base::Time::FromDoubleT(999);
- const int64 kIdentifier = 12345;
-
- request_body->AppendBytes(kData, arraysize(kData) - 1);
- request_body->AppendFileRange(base::FilePath(kFilePath),
- kFileOffset, kFileLength, kFileTime);
- request_body->set_identifier(kIdentifier);
-
- scoped_ptr<net::UploadDataStream> upload(
- request_body->ResolveElementsAndCreateUploadDataStream(
- NULL, NULL, base::MessageLoopProxy::current().get()));
-
- EXPECT_EQ(kIdentifier, upload->identifier());
- ASSERT_EQ(request_body->elements()->size(), upload->element_readers().size());
-
- const net::UploadBytesElementReader* r1 =
- upload->element_readers()[0]->AsBytesReader();
- ASSERT_TRUE(r1);
- EXPECT_EQ(kData, std::string(r1->bytes(), r1->length()));
-
- const net::UploadFileElementReader* r2 =
- upload->element_readers()[1]->AsFileReader();
- ASSERT_TRUE(r2);
- EXPECT_EQ(kFilePath, r2->path().value());
- EXPECT_EQ(kFileOffset, r2->range_offset());
- EXPECT_EQ(kFileLength, r2->range_length());
- EXPECT_EQ(kFileTime, r2->expected_modification_time());
-}
-
-TEST(ResourceRequestBodyTest, ResolveBlobAndCreateUploadDataStream) {
- base::MessageLoop message_loop;
- // Setup blob data for testing.
- base::Time time1, time2;
- base::Time::FromString("Tue, 15 Nov 1994, 12:45:26 GMT", &time1);
- base::Time::FromString("Mon, 14 Nov 1994, 11:30:49 GMT", &time2);
-
- BlobStorageController blob_storage_controller;
- scoped_refptr<BlobData> blob_data(new BlobData());
-
- GURL blob_url0("blob://url_0");
- blob_storage_controller.AddFinishedBlob(blob_url0, blob_data.get());
-
- blob_data->AppendData("BlobData");
- blob_data->AppendFile(
- base::FilePath(FILE_PATH_LITERAL("BlobFile.txt")), 0, 20, time1);
-
- GURL blob_url1("blob://url_1");
- blob_storage_controller.AddFinishedBlob(blob_url1, blob_data.get());
-
- GURL blob_url2("blob://url_2");
- blob_storage_controller.CloneBlob(blob_url2, blob_url1);
-
- GURL blob_url3("blob://url_3");
- blob_storage_controller.CloneBlob(blob_url3, blob_url2);
-
- // Setup upload data elements for comparison.
- ResourceRequestBody::Element blob_element1, blob_element2;
- blob_element1.SetToBytes(
- blob_data->items().at(0).bytes() +
- static_cast<int>(blob_data->items().at(0).offset()),
- static_cast<int>(blob_data->items().at(0).length()));
- blob_element2.SetToFilePathRange(
- blob_data->items().at(1).path(),
- blob_data->items().at(1).offset(),
- blob_data->items().at(1).length(),
- blob_data->items().at(1).expected_modification_time());
-
- ResourceRequestBody::Element upload_element1, upload_element2;
- upload_element1.SetToBytes("Hello", 5);
- upload_element2.SetToFilePathRange(
- base::FilePath(FILE_PATH_LITERAL("foo1.txt")), 0, 20, time2);
-
- // Test no blob reference.
- scoped_refptr<ResourceRequestBody> request_body(new ResourceRequestBody());
- request_body->AppendBytes(upload_element1.bytes(), upload_element1.length());
- request_body->AppendFileRange(upload_element2.path(),
- upload_element2.offset(),
- upload_element2.length(),
- upload_element2.expected_modification_time());
-
- scoped_ptr<net::UploadDataStream> upload(
- request_body->ResolveElementsAndCreateUploadDataStream(
- &blob_storage_controller,
- NULL,
- base::MessageLoopProxy::current().get()));
-
- ASSERT_EQ(2U, upload->element_readers().size());
- EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[0], upload_element1));
- EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[1], upload_element2));
-
- // Test having only one blob reference that refers to empty blob data.
- request_body = new ResourceRequestBody();
- request_body->AppendBlob(blob_url0);
-
- upload.reset(request_body->ResolveElementsAndCreateUploadDataStream(
- &blob_storage_controller, NULL, base::MessageLoopProxy::current().get()));
- ASSERT_EQ(0U, upload->element_readers().size());
-
- // Test having only one blob reference.
- request_body = new ResourceRequestBody();
- request_body->AppendBlob(blob_url1);
-
- upload.reset(request_body->ResolveElementsAndCreateUploadDataStream(
- &blob_storage_controller, NULL, base::MessageLoopProxy::current().get()));
- 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));
-
- // Test having one blob reference at the beginning.
- request_body = new ResourceRequestBody();
- request_body->AppendBlob(blob_url1);
- request_body->AppendBytes(upload_element1.bytes(), upload_element1.length());
- request_body->AppendFileRange(upload_element2.path(),
- upload_element2.offset(),
- upload_element2.length(),
- upload_element2.expected_modification_time());
-
- upload.reset(request_body->ResolveElementsAndCreateUploadDataStream(
- &blob_storage_controller, NULL, base::MessageLoopProxy::current().get()));
- 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));
- EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[2], upload_element1));
- EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[3], upload_element2));
-
- // Test having one blob reference at the end.
- request_body = new ResourceRequestBody();
- request_body->AppendBytes(upload_element1.bytes(), upload_element1.length());
- request_body->AppendFileRange(upload_element2.path(),
- upload_element2.offset(),
- upload_element2.length(),
- upload_element2.expected_modification_time());
- request_body->AppendBlob(blob_url1);
-
- upload.reset(request_body->ResolveElementsAndCreateUploadDataStream(
- &blob_storage_controller, NULL, base::MessageLoopProxy::current().get()));
- 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));
- EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[2], blob_element1));
- EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[3], blob_element2));
-
- // Test having one blob reference in the middle.
- request_body = new ResourceRequestBody();
- request_body->AppendBytes(upload_element1.bytes(), upload_element1.length());
- request_body->AppendBlob(blob_url1);
- request_body->AppendFileRange(upload_element2.path(),
- upload_element2.offset(),
- upload_element2.length(),
- upload_element2.expected_modification_time());
-
- upload.reset(request_body->ResolveElementsAndCreateUploadDataStream(
- &blob_storage_controller, NULL, base::MessageLoopProxy::current().get()));
- 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));
- EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[2], blob_element2));
- EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[3], upload_element2));
-
- // Test having multiple blob references.
- request_body = new ResourceRequestBody();
- request_body->AppendBlob(blob_url1);
- request_body->AppendBytes(upload_element1.bytes(), upload_element1.length());
- request_body->AppendBlob(blob_url2);
- request_body->AppendBlob(blob_url3);
- request_body->AppendFileRange(upload_element2.path(),
- upload_element2.offset(),
- upload_element2.length(),
- upload_element2.expected_modification_time());
-
- upload.reset(request_body->ResolveElementsAndCreateUploadDataStream(
- &blob_storage_controller, NULL, base::MessageLoopProxy::current().get()));
- 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));
- EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[2], upload_element1));
- EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[3], blob_element1));
- EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[4], blob_element2));
- EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[5], blob_element1));
- EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[6], blob_element2));
- EXPECT_TRUE(AreElementsEqual(*upload->element_readers()[7], upload_element2));
-}
-
-} // namespace webkit_glue
diff --git a/webkit/glue/webkit_glue.gypi b/webkit/glue/webkit_glue.gypi
index aabdebf..4b764a0 100644
--- a/webkit/glue/webkit_glue.gypi
+++ b/webkit/glue/webkit_glue.gypi
@@ -278,8 +278,6 @@
'network_list_observer.h',
'resource_loader_bridge.cc',
'resource_loader_bridge.h',
- 'resource_request_body.cc',
- 'resource_request_body.h',
'resource_type.cc',
'resource_type.h',
'simple_webmimeregistry_impl.cc',
diff --git a/webkit/glue/weburlloader_impl.cc b/webkit/glue/weburlloader_impl.cc
index 3d701c7..e8a3eae 100644
--- a/webkit/glue/weburlloader_impl.cc
+++ b/webkit/glue/weburlloader_impl.cc
@@ -29,10 +29,10 @@
#include "third_party/WebKit/public/platform/WebURLRequest.h"
#include "third_party/WebKit/public/platform/WebURLResponse.h"
#include "third_party/WebKit/public/web/WebSecurityPolicy.h"
+#include "webkit/common/resource_request_body.h"
#include "webkit/glue/ftp_directory_listing_response_delegate.h"
#include "webkit/glue/multipart_response_delegate.h"
#include "webkit/glue/resource_loader_bridge.h"
-#include "webkit/glue/resource_request_body.h"
#include "webkit/glue/webkitplatformsupport_impl.h"
#include "webkit/glue/weburlrequest_extradata_impl.h"
#include "webkit/glue/weburlresponse_extradata_impl.h"