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

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

Issue 855513002: Add/resurrect support for bundles of WebStore items. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@testext_bundle
Patch Set: remove icon_data Created 5 years, 9 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/extensions/webstore_install_helper.cc
diff --git a/chrome/browser/extensions/webstore_install_helper.cc b/chrome/browser/extensions/webstore_install_helper.cc
index dff9f35ff5a72683aa287048d45b0d0c8b29d0ae..021f6faf0a4ad6789653ab315772d0c88576d6f6 100644
--- a/chrome/browser/extensions/webstore_install_helper.cc
+++ b/chrome/browser/extensions/webstore_install_helper.cc
@@ -8,14 +8,11 @@
#include "base/bind.h"
#include "base/values.h"
+#include "chrome/browser/safe_image_fetcher.h"
#include "chrome/common/chrome_utility_messages.h"
#include "chrome/common/extensions/chrome_utility_extensions_messages.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/utility_process_host.h"
-#include "net/base/load_flags.h"
-#include "net/url_request/url_fetcher.h"
-#include "net/url_request/url_request_context_getter.h"
-#include "net/url_request/url_request_status.h"
using content::BrowserThread;
using content::UtilityProcessHost;
@@ -34,10 +31,7 @@ WebstoreInstallHelper::WebstoreInstallHelper(
const std::string& manifest,
const GURL& icon_url,
net::URLRequestContextGetter* context_getter)
- : ImageRequest(
- content::BrowserThread::GetMessageLoopProxyForThread(
- content::BrowserThread::IO)),
- delegate_(delegate),
+ : delegate_(delegate),
id_(id),
manifest_(manifest),
icon_url_(icon_url),
@@ -52,25 +46,19 @@ WebstoreInstallHelper::~WebstoreInstallHelper() {}
void WebstoreInstallHelper::Start() {
CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
- if (icon_url_.is_empty())
+ if (icon_url_.is_empty()) {
icon_decode_complete_ = true;
+ } else {
+ icon_fetcher_.reset(new SafeImageFetcher(
+ icon_url_, context_getter_,
+ base::Bind(&WebstoreInstallHelper::OnIconFetched,
+ base::Unretained(this))));
asargent_no_longer_on_chrome 2015/03/26 18:12:50 I don't think you want base::Unretained here, righ
Marc Treib 2015/03/27 11:52:12 Done.
+ }
BrowserThread::PostTask(
BrowserThread::IO,
FROM_HERE,
base::Bind(&WebstoreInstallHelper::StartWorkOnIOThread, this));
-
- if (!icon_url_.is_empty()) {
- CHECK(context_getter_);
- url_fetcher_.reset(net::URLFetcher::Create(
- icon_url_, net::URLFetcher::GET, this));
- url_fetcher_->SetRequestContext(context_getter_);
- url_fetcher_->SetLoadFlags(net::LOAD_DO_NOT_SAVE_COOKIES |
- net::LOAD_DO_NOT_SEND_COOKIES);
-
- url_fetcher_->Start();
- // We'll get called back in OnURLFetchComplete.
- }
}
void WebstoreInstallHelper::StartWorkOnIOThread() {
@@ -82,26 +70,6 @@ void WebstoreInstallHelper::StartWorkOnIOThread() {
utility_host_->Send(new ChromeUtilityMsg_ParseJSON(manifest_));
}
-void WebstoreInstallHelper::OnURLFetchComplete(
- const net::URLFetcher* source) {
- CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
- CHECK(source == url_fetcher_.get());
- int response_code =
- source->GetStatus().is_success() ? source->GetResponseCode() : 0;
- if (!source->GetStatus().is_success() ||
- response_code / 100 == 4 || response_code / 100 == 5) {
- BrowserThread::PostTask(
- BrowserThread::IO, FROM_HERE,
- base::Bind(&WebstoreInstallHelper::OnDecodeImageFailed, this));
- } else {
- std::string response_data;
- source->GetResponseAsString(&response_data);
-
- ImageDecoder::Start(this, response_data);
- }
- url_fetcher_.reset();
-}
-
bool WebstoreInstallHelper::OnMessageReceived(const IPC::Message& message) {
bool handled = true;
IPC_BEGIN_MESSAGE_MAP(WebstoreInstallHelper, message)
@@ -114,19 +82,17 @@ bool WebstoreInstallHelper::OnMessageReceived(const IPC::Message& message) {
return handled;
}
-void WebstoreInstallHelper::OnImageDecoded(const SkBitmap& decoded_image) {
- CHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
- icon_ = decoded_image;
- icon_decode_complete_ = true;
- ReportResultsIfComplete();
-}
-
-void WebstoreInstallHelper::OnDecodeImageFailed() {
- CHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
+void WebstoreInstallHelper::OnIconFetched(const SkBitmap& icon) {
+ icon_ = icon;
icon_decode_complete_ = true;
- error_ = kImageDecodeError;
- parse_error_ = Delegate::ICON_ERROR;
- ReportResultsIfComplete();
+ if (icon_.empty()) {
+ error_ = kImageDecodeError;
+ parse_error_ = Delegate::ICON_ERROR;
+ }
+ BrowserThread::PostTask(
+ BrowserThread::IO,
+ FROM_HERE,
+ base::Bind(&WebstoreInstallHelper::ReportResultsIfComplete, this));
}
void WebstoreInstallHelper::OnJSONParseSucceeded(

Powered by Google App Engine
This is Rietveld 408576698