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

Side by Side Diff: webkit/blob/view_blob_internals_job.cc

Issue 7974011: Break large blobs into multiple ipcs during creation. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 2 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
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/blob/view_blob_internals_job.h" 5 #include "webkit/blob/view_blob_internals_job.h"
6 6
7 #include "base/compiler_specific.h" 7 #include "base/compiler_specific.h"
8 #include "base/logging.h" 8 #include "base/logging.h"
9 #include "base/format_macros.h" 9 #include "base/format_macros.h"
10 #include "base/i18n/number_formatting.h" 10 #include "base/i18n/number_formatting.h"
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after
128 net::URLRequestSimpleJob::Kill(); 128 net::URLRequestSimpleJob::Kill();
129 method_factory_.RevokeAll(); 129 method_factory_.RevokeAll();
130 } 130 }
131 131
132 void ViewBlobInternalsJob::DoWorkAsync() { 132 void ViewBlobInternalsJob::DoWorkAsync() {
133 if (request_->url().has_query() && 133 if (request_->url().has_query() &&
134 StartsWithASCII(request_->url().query(), "remove=", true)) { 134 StartsWithASCII(request_->url().query(), "remove=", true)) {
135 std::string blob_url = request_->url().query().substr(strlen("remove=")); 135 std::string blob_url = request_->url().query().substr(strlen("remove="));
136 blob_url = UnescapeURLComponent(blob_url, 136 blob_url = UnescapeURLComponent(blob_url,
137 UnescapeRule::NORMAL | UnescapeRule::URL_SPECIAL_CHARS); 137 UnescapeRule::NORMAL | UnescapeRule::URL_SPECIAL_CHARS);
138 blob_storage_controller_->UnregisterBlobUrl(GURL(blob_url)); 138 blob_storage_controller_->RemoveBlob(GURL(blob_url));
139 } 139 }
140 140
141 StartAsync(); 141 StartAsync();
142 } 142 }
143 143
144 bool ViewBlobInternalsJob::GetData(std::string* mime_type, 144 bool ViewBlobInternalsJob::GetData(std::string* mime_type,
145 std::string* charset, 145 std::string* charset,
146 std::string* data) const { 146 std::string* data) const {
147 mime_type->assign("text/html"); 147 mime_type->assign("text/html");
148 charset->assign("UTF-8"); 148 charset->assign("UTF-8");
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
183 UTF16ToUTF8(base::FormatNumber(blob_data.items().size())), out); 183 UTF16ToUTF8(base::FormatNumber(blob_data.items().size())), out);
184 } 184 }
185 185
186 for (size_t i = 0; i < blob_data.items().size(); ++i) { 186 for (size_t i = 0; i < blob_data.items().size(); ++i) {
187 if (has_multi_items) { 187 if (has_multi_items) {
188 AddHTMLListItem(kIndex, UTF16ToUTF8(base::FormatNumber(i)), out); 188 AddHTMLListItem(kIndex, UTF16ToUTF8(base::FormatNumber(i)), out);
189 StartHTMLList(out); 189 StartHTMLList(out);
190 } 190 }
191 const BlobData::Item& item = blob_data.items().at(i); 191 const BlobData::Item& item = blob_data.items().at(i);
192 192
193 switch (item.type()) { 193 switch (item.type) {
194 case BlobData::TYPE_DATA: 194 case BlobData::TYPE_DATA:
195 AddHTMLListItem(kType, "data", out); 195 AddHTMLListItem(kType, "data", out);
196 break; 196 break;
197 case BlobData::TYPE_FILE: 197 case BlobData::TYPE_FILE:
198 AddHTMLListItem(kType, "file", out); 198 AddHTMLListItem(kType, "file", out);
199 AddHTMLListItem(kPath, 199 AddHTMLListItem(kPath,
200 #if defined(OS_WIN) 200 #if defined(OS_WIN)
201 EscapeForHTML(WideToUTF8(item.file_path().value())), 201 EscapeForHTML(WideToUTF8(item.file_path.value())),
202 #else 202 #else
203 EscapeForHTML(item.file_path().value()), 203 EscapeForHTML(item.file_path.value()),
204 #endif 204 #endif
205 out); 205 out);
206 if (!item.expected_modification_time().is_null()) { 206 if (!item.expected_modification_time.is_null()) {
207 AddHTMLListItem(kModificationTime, UTF16ToUTF8( 207 AddHTMLListItem(kModificationTime, UTF16ToUTF8(
208 TimeFormatFriendlyDateAndTime(item.expected_modification_time())), 208 TimeFormatFriendlyDateAndTime(item.expected_modification_time)),
209 out); 209 out);
210 } 210 }
211 break; 211 break;
212 case BlobData::TYPE_BLOB: 212 case BlobData::TYPE_BLOB:
213 AddHTMLListItem(kType, "blob", out); 213 AddHTMLListItem(kType, "blob", out);
214 AddHTMLListItem(kURL, item.blob_url().spec(), out); 214 AddHTMLListItem(kURL, item.blob_url.spec(), out);
215 break; 215 break;
216 } 216 }
217 if (item.offset()) { 217 if (item.offset) {
218 AddHTMLListItem(kOffset, UTF16ToUTF8(base::FormatNumber( 218 AddHTMLListItem(kOffset, UTF16ToUTF8(base::FormatNumber(
219 static_cast<int64>(item.offset()))), out); 219 static_cast<int64>(item.offset))), out);
220 } 220 }
221 if (static_cast<int64>(item.length()) != -1) { 221 if (static_cast<int64>(item.length) != -1) {
222 AddHTMLListItem(kLength, UTF16ToUTF8(base::FormatNumber( 222 AddHTMLListItem(kLength, UTF16ToUTF8(base::FormatNumber(
223 static_cast<int64>(item.length()))), out); 223 static_cast<int64>(item.length))), out);
224 } 224 }
225 225
226 if (has_multi_items) 226 if (has_multi_items)
227 EndHTMLList(out); 227 EndHTMLList(out);
228 } 228 }
229 229
230 EndHTMLList(out); 230 EndHTMLList(out);
231 } 231 }
232 232
233 } // namespace webkit_blob 233 } // namespace webkit_blob
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698