| 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 47926c6954258886f6a7ae4154a9f3638552dccc..dff9f35ff5a72683aa287048d45b0d0c8b29d0ae 100644
|
| --- a/chrome/browser/extensions/webstore_install_helper.cc
|
| +++ b/chrome/browser/extensions/webstore_install_helper.cc
|
| @@ -32,26 +32,27 @@ WebstoreInstallHelper::WebstoreInstallHelper(
|
| Delegate* delegate,
|
| const std::string& id,
|
| const std::string& manifest,
|
| - const std::string& icon_data,
|
| const GURL& icon_url,
|
| net::URLRequestContextGetter* context_getter)
|
| - : delegate_(delegate),
|
| + : ImageRequest(
|
| + content::BrowserThread::GetMessageLoopProxyForThread(
|
| + content::BrowserThread::IO)),
|
| + delegate_(delegate),
|
| id_(id),
|
| manifest_(manifest),
|
| - icon_base64_data_(icon_data),
|
| icon_url_(icon_url),
|
| context_getter_(context_getter),
|
| icon_decode_complete_(false),
|
| manifest_parse_complete_(false),
|
| - parse_error_(Delegate::UNKNOWN_ERROR) {}
|
| + parse_error_(Delegate::UNKNOWN_ERROR) {
|
| +}
|
|
|
| WebstoreInstallHelper::~WebstoreInstallHelper() {}
|
|
|
| void WebstoreInstallHelper::Start() {
|
| CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
| - CHECK(icon_base64_data_.empty() || icon_url_.is_empty());
|
|
|
| - if (icon_base64_data_.empty() && icon_url_.is_empty())
|
| + if (icon_url_.is_empty())
|
| icon_decode_complete_ = true;
|
|
|
| BrowserThread::PostTask(
|
| @@ -78,10 +79,6 @@ void WebstoreInstallHelper::StartWorkOnIOThread() {
|
| this, base::MessageLoopProxy::current().get())->AsWeakPtr();
|
| utility_host_->StartBatchMode();
|
|
|
| - if (!icon_base64_data_.empty())
|
| - utility_host_->Send(
|
| - new ChromeUtilityMsg_DecodeImageBase64(icon_base64_data_));
|
| -
|
| utility_host_->Send(new ChromeUtilityMsg_ParseJSON(manifest_));
|
| }
|
|
|
| @@ -94,38 +91,20 @@ void WebstoreInstallHelper::OnURLFetchComplete(
|
| if (!source->GetStatus().is_success() ||
|
| response_code / 100 == 4 || response_code / 100 == 5) {
|
| BrowserThread::PostTask(
|
| - BrowserThread::IO,
|
| - FROM_HERE,
|
| + BrowserThread::IO, FROM_HERE,
|
| base::Bind(&WebstoreInstallHelper::OnDecodeImageFailed, this));
|
| } else {
|
| std::string response_data;
|
| source->GetResponseAsString(&response_data);
|
| - fetched_icon_data_.insert(fetched_icon_data_.begin(),
|
| - response_data.begin(),
|
| - response_data.end());
|
| - BrowserThread::PostTask(
|
| - BrowserThread::IO,
|
| - FROM_HERE,
|
| - base::Bind(&WebstoreInstallHelper::StartFetchedImageDecode, this));
|
| +
|
| + ImageDecoder::Start(this, response_data);
|
| }
|
| url_fetcher_.reset();
|
| }
|
|
|
| -void WebstoreInstallHelper::StartFetchedImageDecode() {
|
| - CHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
|
| - CHECK(utility_host_.get());
|
| - utility_host_->Send(new ChromeUtilityMsg_DecodeImage(fetched_icon_data_,
|
| - false));
|
| -}
|
| -
|
| -
|
| bool WebstoreInstallHelper::OnMessageReceived(const IPC::Message& message) {
|
| bool handled = true;
|
| IPC_BEGIN_MESSAGE_MAP(WebstoreInstallHelper, message)
|
| - IPC_MESSAGE_HANDLER(ChromeUtilityHostMsg_DecodeImage_Succeeded,
|
| - OnDecodeImageSucceeded)
|
| - IPC_MESSAGE_HANDLER(ChromeUtilityHostMsg_DecodeImage_Failed,
|
| - OnDecodeImageFailed)
|
| IPC_MESSAGE_HANDLER(ChromeUtilityHostMsg_ParseJSON_Succeeded,
|
| OnJSONParseSucceeded)
|
| IPC_MESSAGE_HANDLER(ChromeUtilityHostMsg_ParseJSON_Failed,
|
| @@ -135,9 +114,7 @@ bool WebstoreInstallHelper::OnMessageReceived(const IPC::Message& message) {
|
| return handled;
|
| }
|
|
|
| -
|
| -void WebstoreInstallHelper::OnDecodeImageSucceeded(
|
| - const SkBitmap& decoded_image) {
|
| +void WebstoreInstallHelper::OnImageDecoded(const SkBitmap& decoded_image) {
|
| CHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
|
| icon_ = decoded_image;
|
| icon_decode_complete_ = true;
|
|
|