Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(165)

Side by Side Diff: webkit/glue/resource_request_body.cc

Issue 10828252: Support FileSystem URL in File object (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: comment fix Created 8 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « webkit/glue/resource_request_body.h ('k') | webkit/glue/weburlloader_impl.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 #include "webkit/glue/resource_request_body.h" 5 #include "webkit/glue/resource_request_body.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "net/base/upload_data.h" 8 #include "net/base/upload_data.h"
9 #include "webkit/blob/blob_storage_controller.h" 9 #include "webkit/blob/blob_storage_controller.h"
10 10
(...skipping 18 matching lines...) Expand all
29 elements_.push_back(Element()); 29 elements_.push_back(Element());
30 elements_.back().SetToFilePathRange(file_path, offset, length, 30 elements_.back().SetToFilePathRange(file_path, offset, length,
31 expected_modification_time); 31 expected_modification_time);
32 } 32 }
33 33
34 void ResourceRequestBody::AppendBlob(const GURL& blob_url) { 34 void ResourceRequestBody::AppendBlob(const GURL& blob_url) {
35 elements_.push_back(Element()); 35 elements_.push_back(Element());
36 elements_.back().SetToBlobUrl(blob_url); 36 elements_.back().SetToBlobUrl(blob_url);
37 } 37 }
38 38
39 void ResourceRequestBody::AppendFileSystemFileRange(
40 const GURL& url, uint64 offset, uint64 length,
41 const base::Time& expected_modification_time) {
42 elements_.push_back(Element());
43 elements_.back().SetToFileSystemUrlRange(url, offset, length,
44 expected_modification_time);
45 }
46
39 net::UploadData* ResourceRequestBody::ResolveElementsAndCreateUploadData( 47 net::UploadData* ResourceRequestBody::ResolveElementsAndCreateUploadData(
40 BlobStorageController* blob_controller) { 48 BlobStorageController* blob_controller) {
41 net::UploadData* upload_data = new net::UploadData; 49 net::UploadData* upload_data = new net::UploadData;
42 // We attach 'this' to UploadData so that we do not need to copy 50 // We attach 'this' to UploadData so that we do not need to copy
43 // bytes for TYPE_BYTES. 51 // bytes for TYPE_BYTES.
44 upload_data->SetUserData( 52 upload_data->SetUserData(
45 this, new base::UserDataAdapter<ResourceRequestBody>(this)); 53 this, new base::UserDataAdapter<ResourceRequestBody>(this));
46 std::vector<net::UploadElement>* elements = 54 std::vector<net::UploadElement>* elements =
47 upload_data->elements_mutable(); 55 upload_data->elements_mutable();
48 for (size_t i = 0; i < elements_.size(); ++i) { 56 for (size_t i = 0; i < elements_.size(); ++i) {
49 const Element& element = elements_[i]; 57 const Element& element = elements_[i];
50 switch (element.type()) { 58 switch (element.type()) {
51 case Element::TYPE_BYTES: 59 case Element::TYPE_BYTES:
52 elements->push_back(net::UploadElement()); 60 elements->push_back(net::UploadElement());
53 elements->back().SetToSharedBytes(element.bytes(), element.length()); 61 elements->back().SetToSharedBytes(element.bytes(), element.length());
54 break; 62 break;
55 case Element::TYPE_FILE: 63 case Element::TYPE_FILE:
56 elements->push_back(net::UploadElement()); 64 elements->push_back(net::UploadElement());
57 elements->back().SetToFilePathRange( 65 elements->back().SetToFilePathRange(
58 element.path(), 66 element.path(),
59 element.offset(), 67 element.offset(),
60 element.length(), 68 element.length(),
61 element.expected_modification_time()); 69 element.expected_modification_time());
62 break; 70 break;
71 case Element::TYPE_FILE_FILESYSTEM:
72 // TODO(kinuko): Resolve FileSystemURL before creating UploadData.
73 NOTREACHED();
74 break;
63 case Element::TYPE_BLOB: 75 case Element::TYPE_BLOB:
64 ResolveBlobReference(blob_controller, element.url(), elements); 76 ResolveBlobReference(blob_controller, element.url(), elements);
65 break; 77 break;
66 case Element::TYPE_UNKNOWN: 78 case Element::TYPE_UNKNOWN:
67 NOTREACHED(); 79 NOTREACHED();
68 break; 80 break;
69 } 81 }
70 } 82 }
71 upload_data->set_identifier(identifier_); 83 upload_data->set_identifier(identifier_);
72 return upload_data; 84 return upload_data;
(...skipping 29 matching lines...) Expand all
102 item.bytes() + static_cast<int>(item.offset()), 114 item.bytes() + static_cast<int>(item.offset()),
103 static_cast<int>(item.length())); 115 static_cast<int>(item.length()));
104 break; 116 break;
105 case BlobData::Item::TYPE_FILE: 117 case BlobData::Item::TYPE_FILE:
106 element.SetToFilePathRange( 118 element.SetToFilePathRange(
107 item.path(), 119 item.path(),
108 item.offset(), 120 item.offset(),
109 item.length(), 121 item.length(),
110 item.expected_modification_time()); 122 item.expected_modification_time());
111 break; 123 break;
124 case BlobData::Item::TYPE_FILE_FILESYSTEM:
125 // TODO(kinuko): Resolve FileSystemURL before creating UploadData.
126 NOTREACHED();
127 break;
112 default: 128 default:
113 NOTREACHED(); 129 NOTREACHED();
114 break; 130 break;
115 } 131 }
116 } 132 }
117 } 133 }
118 134
119 } // namespace webkit_glue 135 } // namespace webkit_glue
OLDNEW
« no previous file with comments | « webkit/glue/resource_request_body.h ('k') | webkit/glue/weburlloader_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698