OLD | NEW |
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 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
56 // No need to resolve, just append the element. | 56 // No need to resolve, just append the element. |
57 resolved_elements.push_back(&element); | 57 resolved_elements.push_back(&element); |
58 } | 58 } |
59 } | 59 } |
60 | 60 |
61 net::UploadData* upload_data = new net::UploadData; | 61 net::UploadData* upload_data = new net::UploadData; |
62 // We attach 'this' to UploadData so that we do not need to copy | 62 // We attach 'this' to UploadData so that we do not need to copy |
63 // bytes for TYPE_BYTES. | 63 // bytes for TYPE_BYTES. |
64 upload_data->SetUserData( | 64 upload_data->SetUserData( |
65 this, new base::UserDataAdapter<ResourceRequestBody>(this)); | 65 this, new base::UserDataAdapter<ResourceRequestBody>(this)); |
66 std::vector<net::UploadElement>* elements = | 66 ScopedVector<net::UploadElement>* elements = |
67 upload_data->elements_mutable(); | 67 upload_data->elements_mutable(); |
68 for (size_t i = 0; i < resolved_elements.size(); ++i) { | 68 for (size_t i = 0; i < resolved_elements.size(); ++i) { |
69 const Element& element = *resolved_elements[i]; | 69 const Element& element = *resolved_elements[i]; |
70 switch (element.type()) { | 70 switch (element.type()) { |
71 case Element::TYPE_BYTES: | 71 case Element::TYPE_BYTES: |
72 elements->push_back(net::UploadElement()); | 72 elements->push_back(new net::UploadElement()); |
73 elements->back().SetToSharedBytes(element.bytes(), element.length()); | 73 elements->back()->SetToSharedBytes(element.bytes(), element.length()); |
74 break; | 74 break; |
75 case Element::TYPE_FILE: | 75 case Element::TYPE_FILE: |
76 elements->push_back(net::UploadElement()); | 76 elements->push_back(new net::UploadElement()); |
77 elements->back().SetToFilePathRange( | 77 elements->back()->SetToFilePathRange( |
78 element.path(), | 78 element.path(), |
79 element.offset(), | 79 element.offset(), |
80 element.length(), | 80 element.length(), |
81 element.expected_modification_time()); | 81 element.expected_modification_time()); |
82 break; | 82 break; |
83 case Element::TYPE_FILE_FILESYSTEM: | 83 case Element::TYPE_FILE_FILESYSTEM: |
84 // TODO(kinuko): Resolve FileSystemURL before creating UploadData. | 84 // TODO(kinuko): Resolve FileSystemURL before creating UploadData. |
85 NOTREACHED(); | 85 NOTREACHED(); |
86 break; | 86 break; |
87 case Element::TYPE_BLOB: | 87 case Element::TYPE_BLOB: |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
119 | 119 |
120 // Append the elements in the referred blob data. | 120 // Append the elements in the referred blob data. |
121 for (size_t i = 0; i < blob_data->items().size(); ++i) { | 121 for (size_t i = 0; i < blob_data->items().size(); ++i) { |
122 const BlobData::Item& item = blob_data->items().at(i); | 122 const BlobData::Item& item = blob_data->items().at(i); |
123 DCHECK_NE(BlobData::Item::TYPE_BLOB, item.type()); | 123 DCHECK_NE(BlobData::Item::TYPE_BLOB, item.type()); |
124 resolved_elements->push_back(&item); | 124 resolved_elements->push_back(&item); |
125 } | 125 } |
126 } | 126 } |
127 | 127 |
128 } // namespace webkit_glue | 128 } // namespace webkit_glue |
OLD | NEW |