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

Unified Diff: chrome/browser/extensions/chrome_url_request_util.cc

Issue 725443003: Avoid a string copy in URLRequestResourceBundleJob::GetData(). (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@lkcr
Patch Set: Fix streaming_utf8_validator_perftest.cc for IsStringUTF8(StringPiece). Created 6 years, 1 month 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/extensions/chrome_url_request_util.cc
diff --git a/chrome/browser/extensions/chrome_url_request_util.cc b/chrome/browser/extensions/chrome_url_request_util.cc
index c89350aa3d05dbd19cc41baa9980db278d61b5b7..39d34ee6eb6626c04637c86cc53de2252a2ebc18 100644
--- a/chrome/browser/extensions/chrome_url_request_util.cc
+++ b/chrome/browser/extensions/chrome_url_request_util.cc
@@ -59,10 +59,10 @@ class URLRequestResourceBundleJob : public net::URLRequestSimpleJob {
}
// Overridden from URLRequestSimpleJob:
- int GetData(std::string* mime_type,
- std::string* charset,
- std::string* data,
- const net::CompletionCallback& callback) const override {
+ int GetStringPieceData(std::string* mime_type,
+ std::string* charset,
+ base::StringPiece* data,
+ const net::CompletionCallback& callback) override {
// TODO(vadimt): Remove ScopedTracker below once crbug.com/422489 is fixed.
tracked_objects::ScopedTracker tracking_profile(
FROM_HERE_WITH_EXPLICIT_FUNCTION(
@@ -83,7 +83,7 @@ class URLRequestResourceBundleJob : public net::URLRequestSimpleJob {
FROM_HERE_WITH_EXPLICIT_FUNCTION(
"422489 URLRequestResourceBundleJob::GetData 1.5"));
- *data = resource_as_string_piece.as_string();
+ *data = resource_as_string_piece;
// TODO(vadimt): Remove ScopedTracker below once crbug.com/422489 is fixed.
tracked_objects::ScopedTracker tracking_profile2(
@@ -103,18 +103,12 @@ class URLRequestResourceBundleJob : public net::URLRequestSimpleJob {
std::string* read_mime_type = new std::string;
bool posted = base::PostTaskAndReplyWithResult(
- BrowserThread::GetBlockingPool(),
- FROM_HERE,
- base::Bind(&net::GetMimeTypeFromFile,
- filename_,
+ BrowserThread::GetBlockingPool(), FROM_HERE,
+ base::Bind(&net::GetMimeTypeFromFile, filename_,
base::Unretained(read_mime_type)),
base::Bind(&URLRequestResourceBundleJob::OnMimeTypeRead,
- weak_factory_.GetWeakPtr(),
- mime_type,
- charset,
- data,
- base::Owned(read_mime_type),
- callback));
+ weak_factory_.GetWeakPtr(), mime_type, charset, *data,
+ base::Owned(read_mime_type), callback));
DCHECK(posted);
return net::ERR_IO_PENDING;
@@ -129,7 +123,7 @@ class URLRequestResourceBundleJob : public net::URLRequestSimpleJob {
void OnMimeTypeRead(std::string* out_mime_type,
std::string* charset,
- std::string* data,
+ base::StringPiece data,
std::string* read_mime_type,
const net::CompletionCallback& callback,
bool read_result) {
@@ -137,7 +131,7 @@ class URLRequestResourceBundleJob : public net::URLRequestSimpleJob {
if (StartsWithASCII(*read_mime_type, "text/", false)) {
// All of our HTML files should be UTF-8 and for other resource types
// (like images), charset doesn't matter.
- DCHECK(base::IsStringUTF8(*data));
+ DCHECK(base::IsStringUTF8(data));
*charset = "utf-8";
}
int result = read_result ? net::OK : net::ERR_INVALID_URL;

Powered by Google App Engine
This is Rietveld 408576698