Index: chrome/browser/extensions/webstore_inline_installer.cc |
diff --git a/chrome/browser/extensions/webstore_inline_installer.cc b/chrome/browser/extensions/webstore_inline_installer.cc |
index 6c938ec88456c95de1ec77616b9782942aa2e388..6793836debfaff2815edc56e69f139a3b3a16a8d 100644 |
--- a/chrome/browser/extensions/webstore_inline_installer.cc |
+++ b/chrome/browser/extensions/webstore_inline_installer.cc |
@@ -306,6 +306,7 @@ void WebstoreInlineInstaller::OnWebstoreResponseParseSuccess( |
scoped_refptr<WebstoreInstallHelper> helper = new WebstoreInstallHelper( |
this, |
+ id_, |
manifest, |
"", // We don't have any icon data. |
icon_url, |
@@ -322,6 +323,7 @@ void WebstoreInlineInstaller::OnWebstoreResponseParseFailure( |
} |
void WebstoreInlineInstaller::OnWebstoreParseSuccess( |
+ const std::string& id, |
const SkBitmap& icon, |
base::DictionaryValue* manifest) { |
// Check if the tab has gone away in the meantime. |
@@ -330,6 +332,7 @@ void WebstoreInlineInstaller::OnWebstoreParseSuccess( |
return; |
} |
+ CHECK_EQ(id_, id); |
manifest_.reset(manifest); |
icon_ = icon; |
@@ -358,6 +361,7 @@ void WebstoreInlineInstaller::OnWebstoreParseSuccess( |
} |
void WebstoreInlineInstaller::OnWebstoreParseFailure( |
+ const std::string& id, |
InstallHelperResultCode result_code, |
const std::string& error_message) { |
CompleteInstall(error_message); |
@@ -380,10 +384,10 @@ void WebstoreInlineInstaller::InstallUIProceed() { |
Profile* profile = Profile::FromBrowserContext( |
tab_contents()->browser_context()); |
- WebstoreInstaller* installer = |
- profile->GetExtensionService()->webstore_installer(); |
- installer->InstallExtension( |
- id_, this, WebstoreInstaller::FLAG_INLINE_INSTALL); |
+ scoped_refptr<WebstoreInstaller> installer = new WebstoreInstaller( |
+ profile, this, &(tab_contents()->controller()), id_, |
+ WebstoreInstaller::FLAG_INLINE_INSTALL); |
+ installer->Start(); |
} |
void WebstoreInlineInstaller::InstallUIAbort(bool user_initiated) { |