| Index: chrome/browser/extensions/extension_webstore_private_api.cc | 
| =================================================================== | 
| --- chrome/browser/extensions/extension_webstore_private_api.cc	(revision 88480) | 
| +++ chrome/browser/extensions/extension_webstore_private_api.cc	(working copy) | 
| @@ -20,6 +20,7 @@ | 
| #include "chrome/browser/profiles/profile_manager.h" | 
| #include "chrome/browser/sync/profile_sync_service.h" | 
| #include "chrome/common/chrome_switches.h" | 
| +#include "chrome/common/chrome_utility_messages.h" | 
| #include "chrome/common/extensions/extension_constants.h" | 
| #include "chrome/common/extensions/extension_error_utils.h" | 
| #include "chrome/common/extensions/extension_l10n_util.h" | 
| @@ -181,25 +182,42 @@ | 
| if (icon_data_.empty()) | 
| icon_decode_complete_ = true; | 
| else | 
| -      utility_host_->StartImageDecodingBase64(icon_data_); | 
| -    utility_host_->StartJSONParsing(manifest_); | 
| +      utility_host_->Send(new UtilityMsg_DecodeImageBase64(icon_data_)); | 
| +    utility_host_->Send(new UtilityMsg_ParseJSON(manifest_)); | 
| } | 
|  | 
| // Implementing pieces of the UtilityProcessHost::Client interface. | 
| -  virtual void OnDecodeImageSucceeded(const SkBitmap& decoded_image) { | 
| +  virtual bool OnMessageReceived(const IPC::Message& message) { | 
| +    bool handled = true; | 
| +    IPC_BEGIN_MESSAGE_MAP(SafeBeginInstallHelper, message) | 
| +      IPC_MESSAGE_HANDLER(UtilityHostMsg_DecodeImage_Succeeded, | 
| +                          OnDecodeImageSucceeded) | 
| +      IPC_MESSAGE_HANDLER(UtilityHostMsg_DecodeImage_Failed, | 
| +                          OnDecodeImageFailed) | 
| +      IPC_MESSAGE_HANDLER(UtilityHostMsg_ParseJSON_Succeeded, | 
| +                          OnJSONParseSucceeded) | 
| +      IPC_MESSAGE_HANDLER(UtilityHostMsg_ParseJSON_Failed, OnJSONParseFailed) | 
| +      IPC_MESSAGE_UNHANDLED(handled = false) | 
| +    IPC_END_MESSAGE_MAP_EX() | 
| +    return handled; | 
| +  } | 
| + | 
| +  void OnDecodeImageSucceeded(const SkBitmap& decoded_image) { | 
| CHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 
| icon_ = decoded_image; | 
| icon_decode_complete_ = true; | 
| ReportResultsIfComplete(); | 
| } | 
| -  virtual void OnDecodeImageFailed() { | 
| + | 
| +  void OnDecodeImageFailed() { | 
| CHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 
| icon_decode_complete_ = true; | 
| error_ = std::string(kImageDecodeError); | 
| parse_error_ = BeginInstallWithManifestFunction::ICON_ERROR; | 
| ReportResultsIfComplete(); | 
| } | 
| -  virtual void OnJSONParseSucceeded(const ListValue& wrapper) { | 
| + | 
| +  void OnJSONParseSucceeded(const ListValue& wrapper) { | 
| CHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 
| manifest_parse_complete_ = true; | 
| Value* value = NULL; | 
|  |