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

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

Issue 466053: Fix a crash bug on user script installation (Closed)
Patch Set: Created 11 years 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/crx_installer.cc
diff --git a/chrome/browser/extensions/crx_installer.cc b/chrome/browser/extensions/crx_installer.cc
index 9836bf65204ac86918602df7f9af84af69957ba3..bfd6ef48405a0cd137abf5b68b5e5ba3bb33e3ca 100644
--- a/chrome/browser/extensions/crx_installer.cc
+++ b/chrome/browser/extensions/crx_installer.cc
@@ -36,11 +36,11 @@ void CrxInstaller::Start(const FilePath& crx_path,
bool allow_privilege_increase,
ExtensionsService* frontend,
ExtensionInstallUI* client) {
- // Note: We don't keep a reference because this object manages its own
- // lifetime.
- CrxInstaller* installer = new CrxInstaller(crx_path, install_directory,
- delete_source, frontend,
- client);
+ // Note: This object manages its own lifetime.
+ scoped_refptr<CrxInstaller> installer(
+ new CrxInstaller(crx_path, install_directory, delete_source, frontend,
+ client));
+
installer->install_source_ = install_source;
installer->expected_id_ = expected_id;
installer->allow_privilege_increase_ = allow_privilege_increase;
@@ -49,7 +49,7 @@ void CrxInstaller::Start(const FilePath& crx_path,
new SandboxedExtensionUnpacker(
installer->source_file_,
g_browser_process->resource_dispatcher_host(),
- installer));
+ installer.get()));
ChromeThread::PostTask(
ChromeThread::FILE, FROM_HERE,
@@ -63,13 +63,15 @@ void CrxInstaller::InstallUserScript(const FilePath& source_file,
bool delete_source,
ExtensionsService* frontend,
ExtensionInstallUI* client) {
- CrxInstaller* installer = new CrxInstaller(source_file, install_directory,
- delete_source, frontend, client);
+ scoped_refptr<CrxInstaller> installer(
+ new CrxInstaller(source_file, install_directory, delete_source, frontend,
+ client));
installer->original_url_ = original_url;
ChromeThread::PostTask(
ChromeThread::FILE, FROM_HERE,
- NewRunnableMethod(installer, &CrxInstaller::ConvertUserScriptOnFileThread));
+ NewRunnableMethod(installer.get(),
+ &CrxInstaller::ConvertUserScriptOnFileThread));
}
CrxInstaller::CrxInstaller(const FilePath& source_file,

Powered by Google App Engine
This is Rietveld 408576698