[Extensions] Make ExtensionService not be ref-counted
Use weak pointers instead, which makes it easier to reason about lifetimes.
Make CrxInstaller et al. use a weak pointer instead.
Add MakeCrxInstaller() function to ExtensionService.
Make WebUI handlers use a raw pointer (since they will always get destroyed
before the profile does).
Make tests use raw or scoped pointers, as appropriate.
Rename extensions_service to extension_service where encountered.
Add checks for BrowserThread::PostTask.
BUG=
TEST=
Review URL: http://codereview.chromium.org/6873065
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@82257 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/chrome/test/testing_profile.cc b/chrome/test/testing_profile.cc
index 606bfcb..3a4c3a7 100644
--- a/chrome/test/testing_profile.cc
+++ b/chrome/test/testing_profile.cc
@@ -202,9 +202,9 @@
// FaviconService depends on HistoryServce so destroying it later.
DestroyFaviconService();
DestroyWebDataService();
- if (extensions_service_.get()) {
- extensions_service_->DestroyingProfile();
- extensions_service_ = NULL;
+ if (extension_service_.get()) {
+ extension_service_->DestroyingProfile();
+ extension_service_.reset();
}
if (pref_proxy_config_tracker_.get())
pref_proxy_config_tracker_->DetachFromPrefService();
@@ -358,13 +358,13 @@
new ExtensionPrefs(GetPrefs(),
install_directory,
extension_pref_value_map_.get()));
- extensions_service_ = new ExtensionService(this,
- command_line,
- install_directory,
- extension_prefs_.get(),
- autoupdate_enabled,
- true);
- return extensions_service_;
+ extension_service_.reset(new ExtensionService(this,
+ command_line,
+ install_directory,
+ extension_prefs_.get(),
+ autoupdate_enabled,
+ true));
+ return extension_service_.get();
}
FilePath TestingProfile::GetPath() {
@@ -420,7 +420,7 @@
}
ExtensionService* TestingProfile::GetExtensionService() {
- return extensions_service_.get();
+ return extension_service_.get();
}
UserScriptMaster* TestingProfile::GetUserScriptMaster() {