diff options
| author | dcheng@chromium.org <dcheng@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-01-02 20:03:05 +0000 | 
|---|---|---|
| committer | dcheng@chromium.org <dcheng@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-01-02 20:03:05 +0000 | 
| commit | cff06c5779f85713bc4b09ce110ec26544322d64 (patch) | |
| tree | 4c0fd2e6a6d7f89a1d0dc2e08d3a6c94881789c6 | |
| parent | ef245707b0c98fbf73953d60ceca19b5f089ed75 (diff) | |
| download | chromium_src-cff06c5779f85713bc4b09ce110ec26544322d64.zip chromium_src-cff06c5779f85713bc4b09ce110ec26544322d64.tar.gz chromium_src-cff06c5779f85713bc4b09ce110ec26544322d64.tar.bz2 | |
Remove DeleteTask and convert remaining users.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/9015021
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@116107 0039d316-1c4b-4281-b951-d872f2087c98
46 files changed, 97 insertions, 92 deletions
| diff --git a/base/task.h b/base/task.h index 84dab97..3d29d43 100644 --- a/base/task.h +++ b/base/task.h @@ -205,26 +205,8 @@ class ScopedRunnableMethodFactory {    base::WeakPtrFactory<T> weak_factory_;  }; -// General task implementations ------------------------------------------------ - -// Task to delete an object -template<class T> -class DeleteTask : public CancelableTask { - public: -  explicit DeleteTask(const T* obj) : obj_(obj) { -  } -  virtual void Run() { -    delete obj_; -  } -  virtual void Cancel() { -    obj_ = NULL; -  } - - private: -  const T* obj_; -}; - -// Equivalents for use by base::Bind(). +// Delete helper for use with base::Bind(). If you're posting a task to delete +// an object, prefer DeleteSoon().  template<typename T>  void DeletePointer(T* obj) {    delete obj; diff --git a/chrome/browser/automation/automation_provider.h b/chrome/browser/automation/automation_provider.h index faee18d..5279cbd 100644 --- a/chrome/browser/automation/automation_provider.h +++ b/chrome/browser/automation/automation_provider.h @@ -21,6 +21,7 @@  #include "base/compiler_specific.h"  #include "base/memory/scoped_ptr.h"  #include "base/memory/weak_ptr.h" +#include "base/message_loop_helpers.h"  #include "base/observer_list.h"  #include "base/string16.h"  #include "chrome/browser/autofill/field_types.h" @@ -160,7 +161,7 @@ class AutomationProvider   protected:    friend struct content::BrowserThread::DeleteOnThread<        content::BrowserThread::UI>; -  friend class DeleteTask<AutomationProvider>; +  friend class base::DeleteHelper<AutomationProvider>;    virtual ~AutomationProvider();    // Helper function to find the browser window that contains a given diff --git a/chrome/browser/automation/automation_provider_observers.h b/chrome/browser/automation/automation_provider_observers.h index 30a8d00ff..02c6642 100644 --- a/chrome/browser/automation/automation_provider_observers.h +++ b/chrome/browser/automation/automation_provider_observers.h @@ -16,6 +16,7 @@  #include "base/compiler_specific.h"  #include "base/memory/scoped_ptr.h"  #include "base/memory/weak_ptr.h" +#include "base/message_loop_helpers.h"  #include "base/synchronization/waitable_event.h"  #include "base/values.h"  #include "chrome/browser/autofill/personal_data_manager.h" @@ -1254,7 +1255,7 @@ class PasswordStoreLoginsChangedObserver   private:    friend struct content::BrowserThread::DeleteOnThread<        content::BrowserThread::UI>; -  friend class DeleteTask<PasswordStoreLoginsChangedObserver>; +  friend class base::DeleteHelper<PasswordStoreLoginsChangedObserver>;    // Registers the appropriate observers.  Called on the DB thread.    void RegisterObserversTask(); @@ -1478,7 +1479,7 @@ class AutofillChangedObserver   private:    friend struct content::BrowserThread::DeleteOnThread<        content::BrowserThread::UI>; -  friend class DeleteTask<AutofillChangedObserver>; +  friend class base::DeleteHelper<AutofillChangedObserver>;    // Registers the appropriate observers.  Called on the DB thread.    void RegisterObserversTask(); @@ -1719,7 +1720,7 @@ class WaitForProcessLauncherThreadToGoIdleObserver   private:    friend struct content::BrowserThread::DeleteOnThread<        content::BrowserThread::UI>; -  friend class DeleteTask<WaitForProcessLauncherThreadToGoIdleObserver>; +  friend class base::DeleteHelper<WaitForProcessLauncherThreadToGoIdleObserver>;    virtual ~WaitForProcessLauncherThreadToGoIdleObserver(); diff --git a/chrome/browser/extensions/extension_data_deleter.h b/chrome/browser/extensions/extension_data_deleter.h index 0aec12a..851352c 100644 --- a/chrome/browser/extensions/extension_data_deleter.h +++ b/chrome/browser/extensions/extension_data_deleter.h @@ -8,6 +8,7 @@  #include "base/file_path.h"  #include "base/memory/ref_counted.h" +#include "base/message_loop_helpers.h"  #include "base/string16.h"  #include "content/public/browser/browser_thread.h"  #include "googleurl/src/gurl.h" @@ -48,7 +49,7 @@ class ExtensionDataDeleter   private:    friend struct content::BrowserThread::DeleteOnThread<        content::BrowserThread::UI>; -  friend class DeleteTask<ExtensionDataDeleter>; +  friend class base::DeleteHelper<ExtensionDataDeleter>;    ExtensionDataDeleter(        Profile* profile, diff --git a/chrome/browser/extensions/extension_function.h b/chrome/browser/extensions/extension_function.h index d99c487..503d29f 100644 --- a/chrome/browser/extensions/extension_function.h +++ b/chrome/browser/extensions/extension_function.h @@ -13,6 +13,7 @@  #include "base/memory/ref_counted.h"  #include "base/memory/scoped_ptr.h"  #include "base/memory/weak_ptr.h" +#include "base/message_loop_helpers.h"  #include "base/process.h"  #include "chrome/browser/extensions/extension_info_map.h"  #include "chrome/common/extensions/extension.h" @@ -247,7 +248,7 @@ class UIThreadExtensionFunction : public ExtensionFunction {   protected:    friend struct content::BrowserThread::DeleteOnThread<        content::BrowserThread::UI>; -  friend class DeleteTask<UIThreadExtensionFunction>; +  friend class base::DeleteHelper<UIThreadExtensionFunction>;    virtual ~UIThreadExtensionFunction(); @@ -349,7 +350,7 @@ class IOThreadExtensionFunction : public ExtensionFunction {   protected:    friend struct content::BrowserThread::DeleteOnThread<        content::BrowserThread::IO>; -  friend class DeleteTask<IOThreadExtensionFunction>; +  friend class base::DeleteHelper<IOThreadExtensionFunction>;    virtual ~IOThreadExtensionFunction(); diff --git a/chrome/browser/extensions/extension_service.cc b/chrome/browser/extensions/extension_service.cc index 30a3c43..c5dc956 100644 --- a/chrome/browser/extensions/extension_service.cc +++ b/chrome/browser/extensions/extension_service.cc @@ -21,7 +21,6 @@  #include "base/string_number_conversions.h"  #include "base/string_util.h"  #include "base/stringprintf.h" -#include "base/task.h"  #include "base/threading/thread_restrictions.h"  #include "base/time.h"  #include "base/utf_string_conversions.h" @@ -487,9 +486,7 @@ ExtensionService::~ExtensionService() {      // provide the IO thread message loop needed for those sockets to do their      // job (including destroying themselves at shutdown).      DCHECK(BrowserThread::IsMessageLoopValid(BrowserThread::IO)); -    BrowserThread::PostTask( -        BrowserThread::IO, FROM_HERE, -        new DeleteTask<extensions::SocketController>(socket_controller_)); +    BrowserThread::DeleteSoon(BrowserThread::IO, FROM_HERE, socket_controller_);    }  } diff --git a/chrome/browser/printing/print_dialog_gtk.h b/chrome/browser/printing/print_dialog_gtk.h index de517a6..5b60006 100644 --- a/chrome/browser/printing/print_dialog_gtk.h +++ b/chrome/browser/printing/print_dialog_gtk.h @@ -13,6 +13,7 @@  #include "base/file_path.h"  #include "base/memory/ref_counted.h"  #include "base/memory/scoped_ptr.h" +#include "base/message_loop_helpers.h"  #include "content/public/browser/browser_thread.h"  #include "printing/print_dialog_gtk_interface.h"  #include "printing/printing_context_gtk.h" @@ -50,7 +51,7 @@ class PrintDialogGtk   private:    friend struct content::BrowserThread::DeleteOnThread<        content::BrowserThread::UI>; -  friend class DeleteTask<PrintDialogGtk>; +  friend class base::DeleteHelper<PrintDialogGtk>;    explicit PrintDialogGtk(PrintingContextGtk* context);    virtual ~PrintDialogGtk(); diff --git a/chrome/browser/printing/print_system_task_proxy.h b/chrome/browser/printing/print_system_task_proxy.h index 22e2b86..420ffd8 100644 --- a/chrome/browser/printing/print_system_task_proxy.h +++ b/chrome/browser/printing/print_system_task_proxy.h @@ -11,6 +11,7 @@  #include "base/gtest_prod_util.h"  #include "base/memory/ref_counted.h"  #include "base/memory/scoped_ptr.h" +#include "base/message_loop_helpers.h"  #include "build/build_config.h"  #include "content/public/browser/browser_thread.h" @@ -57,7 +58,7 @@ class PrintSystemTaskProxy   private:    friend struct content::BrowserThread::DeleteOnThread<        content::BrowserThread::UI>; -  friend class DeleteTask<PrintSystemTaskProxy>; +  friend class base::DeleteHelper<PrintSystemTaskProxy>;  #if defined(UNIT_TEST) && defined(USE_CUPS)    FRIEND_TEST_ALL_PREFIXES(PrintSystemTaskProxyTest, DetectDuplexModeCUPS); diff --git a/chrome/browser/process_singleton_linux.cc b/chrome/browser/process_singleton_linux.cc index d915637..eda06a0 100644 --- a/chrome/browser/process_singleton_linux.cc +++ b/chrome/browser/process_singleton_linux.cc @@ -66,6 +66,7 @@  #include "base/file_util.h"  #include "base/logging.h"  #include "base/message_loop.h" +#include "base/message_loop_helpers.h"  #include "base/path_service.h"  #include "base/process_util.h"  #include "base/rand_util.h" @@ -561,7 +562,7 @@ class ProcessSingleton::LinuxWatcher   private:    friend struct BrowserThread::DeleteOnThread<BrowserThread::IO>; -  friend class DeleteTask<ProcessSingleton::LinuxWatcher>; +  friend class base::DeleteHelper<ProcessSingleton::LinuxWatcher>;    virtual ~LinuxWatcher() {      DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); diff --git a/chrome/browser/profiles/profile_io_data.cc b/chrome/browser/profiles/profile_io_data.cc index e017df4..f853438 100644 --- a/chrome/browser/profiles/profile_io_data.cc +++ b/chrome/browser/profiles/profile_io_data.cc @@ -14,7 +14,6 @@  #include "base/logging.h"  #include "base/stl_util.h"  #include "base/string_number_conversions.h" -#include "base/task.h"  #include "chrome/browser/browser_process.h"  #include "chrome/browser/content_settings/cookie_settings.h"  #include "chrome/browser/content_settings/host_content_settings_map.h" @@ -555,8 +554,7 @@ void ProfileIOData::ShutdownOnUIThread() {            &ResourceDispatcherHost::CancelRequestsForContext,            base::Unretained(g_browser_process->resource_dispatcher_host()),            &resource_context_)); -  bool posted = BrowserThread::PostTask(BrowserThread::IO, FROM_HERE, -                                        new DeleteTask<ProfileIOData>(this)); +  bool posted = BrowserThread::DeleteSoon(BrowserThread::IO, FROM_HERE, this);    if (!posted)      delete this;  } diff --git a/chrome/browser/protector/protector.h b/chrome/browser/protector/protector.h index 8f8c251..9f0eb8e 100644 --- a/chrome/browser/protector/protector.h +++ b/chrome/browser/protector/protector.h @@ -9,7 +9,7 @@  #include "base/basictypes.h"  #include "base/compiler_specific.h"  #include "base/memory/scoped_ptr.h" -#include "base/task.h" +#include "base/message_loop_helpers.h"  #include "chrome/browser/protector/base_setting_change.h"  #include "chrome/browser/protector/settings_change_global_error_delegate.h" @@ -48,7 +48,7 @@ class Protector : public SettingsChangeGlobalErrorDelegate {    virtual void OnRemovedFromProfile() OVERRIDE;   private: -  friend class DeleteTask<Protector>; +  friend class base::DeleteHelper<Protector>;    // The object can only be allocated and destroyed on heap.    virtual ~Protector(); diff --git a/chrome/browser/renderer_host/chrome_render_message_filter.h b/chrome/browser/renderer_host/chrome_render_message_filter.h index 7ba1f5c..f668aea 100644 --- a/chrome/browser/renderer_host/chrome_render_message_filter.h +++ b/chrome/browser/renderer_host/chrome_render_message_filter.h @@ -11,6 +11,7 @@  #include "base/file_path.h"  #include "base/memory/weak_ptr.h" +#include "base/message_loop_helpers.h"  #include "chrome/browser/profiles/profile.h"  #include "chrome/common/content_settings.h"  #include "content/public/browser/browser_message_filter.h" @@ -42,7 +43,7 @@ class ChromeRenderMessageFilter : public content::BrowserMessageFilter {   private:    friend class content::BrowserThread; -  friend class DeleteTask<ChromeRenderMessageFilter>; +  friend class base::DeleteHelper<ChromeRenderMessageFilter>;    virtual ~ChromeRenderMessageFilter(); diff --git a/chrome/browser/safe_browsing/browser_feature_extractor.h b/chrome/browser/safe_browsing/browser_feature_extractor.h index 73d7ad6..d7cf68f 100644 --- a/chrome/browser/safe_browsing/browser_feature_extractor.h +++ b/chrome/browser/safe_browsing/browser_feature_extractor.h @@ -20,7 +20,7 @@  #include "base/basictypes.h"  #include "base/callback.h"  #include "base/memory/scoped_ptr.h" -#include "base/task.h" +#include "base/message_loop_helpers.h"  #include "base/time.h"  #include "chrome/browser/cancelable_request.h"  #include "chrome/browser/history/history_types.h" @@ -89,7 +89,7 @@ class BrowserFeatureExtractor {                                 const DoneCallback& callback);   private: -  friend class DeleteTask<BrowserFeatureExtractor>; +  friend class base::DeleteHelper<BrowserFeatureExtractor>;    typedef std::pair<ClientPhishingRequest*, DoneCallback> ExtractionData;    typedef std::map<CancelableRequestProvider::Handle,                     ExtractionData> PendingQueriesMap; diff --git a/chrome/browser/safe_browsing/client_side_detection_host.cc b/chrome/browser/safe_browsing/client_side_detection_host.cc index 0614cfc..d5617f8 100644 --- a/chrome/browser/safe_browsing/client_side_detection_host.cc +++ b/chrome/browser/safe_browsing/client_side_detection_host.cc @@ -9,8 +9,8 @@  #include "base/logging.h"  #include "base/memory/ref_counted.h"  #include "base/memory/scoped_ptr.h" +#include "base/message_loop_helpers.h"  #include "base/metrics/histogram.h" -#include "base/task.h"  #include "chrome/browser/browser_process.h"  #include "chrome/browser/prefs/pref_service.h"  #include "chrome/browser/profiles/profile.h" @@ -238,13 +238,13 @@ class CsdClient : public SafeBrowsingService::Client {    virtual void OnBlockingPageComplete(bool proceed) OVERRIDE {      DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));      // Delete this on the UI thread since it was created there. -    BrowserThread::PostTask(BrowserThread::UI, -                            FROM_HERE, -                            new DeleteTask<CsdClient>(this)); +    BrowserThread::DeleteSoon(BrowserThread::UI, +                              FROM_HERE, +                              this);    }   private: -  friend class DeleteTask<CsdClient>;  // Calls the private destructor. +  friend class base::DeleteHelper<CsdClient>;  // Calls the private destructor.    // We're taking care of deleting this object.  No-one else should delete    // this object. diff --git a/chrome/browser/safe_browsing/client_side_detection_host_unittest.cc b/chrome/browser/safe_browsing/client_side_detection_host_unittest.cc index 21d1390..b93b5ee 100644 --- a/chrome/browser/safe_browsing/client_side_detection_host_unittest.cc +++ b/chrome/browser/safe_browsing/client_side_detection_host_unittest.cc @@ -5,7 +5,6 @@  #include "base/file_path.h"  #include "base/memory/ref_counted.h"  #include "base/memory/scoped_ptr.h" -#include "base/task.h"  #include "chrome/browser/safe_browsing/browser_feature_extractor.h"  #include "chrome/browser/safe_browsing/client_side_detection_host.h"  #include "chrome/browser/safe_browsing/client_side_detection_service.h" @@ -178,10 +177,8 @@ class ClientSideDetectionHostTest : public TabContentsWrapperTestHarness {    virtual void TearDown() {      // Delete the host object on the UI thread and release the      // SafeBrowsingService. -    BrowserThread::PostTask( -        BrowserThread::UI, -        FROM_HERE, -        new DeleteTask<ClientSideDetectionHost>(csd_host_.release())); +    BrowserThread::DeleteSoon(BrowserThread::UI, FROM_HERE, +                              csd_host_.release());      sb_service_ = NULL;      message_loop_.RunAllPending();      TabContentsWrapperTestHarness::TearDown(); diff --git a/chrome/browser/safe_browsing/download_protection_service.cc b/chrome/browser/safe_browsing/download_protection_service.cc index 26d36f0..533fc44 100644 --- a/chrome/browser/safe_browsing/download_protection_service.cc +++ b/chrome/browser/safe_browsing/download_protection_service.cc @@ -9,6 +9,7 @@  #include "base/format_macros.h"  #include "base/memory/scoped_ptr.h"  #include "base/memory/weak_ptr.h" +#include "base/message_loop_helpers.h"  #include "base/metrics/histogram.h"  #include "base/stl_util.h"  #include "base/string_number_conversions.h" @@ -456,7 +457,7 @@ class DownloadProtectionService::CheckClientDownloadRequest   private:    friend struct BrowserThread::DeleteOnThread<BrowserThread::UI>; -  friend class DeleteTask<CheckClientDownloadRequest>; +  friend class base::DeleteHelper<CheckClientDownloadRequest>;    virtual ~CheckClientDownloadRequest() {      DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); diff --git a/chrome/browser/safe_browsing/malware_details_history.h b/chrome/browser/safe_browsing/malware_details_history.h index c7e4a6b..b956aed 100644 --- a/chrome/browser/safe_browsing/malware_details_history.h +++ b/chrome/browser/safe_browsing/malware_details_history.h @@ -15,6 +15,7 @@  #include "base/hash_tables.h"  #include "base/memory/linked_ptr.h"  #include "base/memory/ref_counted.h" +#include "base/message_loop_helpers.h"  #include "chrome/browser/history/history.h"  #include "content/public/browser/browser_thread.h"  #include "content/public/browser/notification_observer.h" @@ -49,7 +50,7 @@ class MalwareDetailsRedirectsCollector   private:    friend struct content::BrowserThread::DeleteOnThread<        content::BrowserThread::UI>; -  friend class DeleteTask<MalwareDetailsRedirectsCollector>; +  friend class base::DeleteHelper<MalwareDetailsRedirectsCollector>;    Profile* profile_;    CancelableRequestConsumer request_consumer_; diff --git a/chrome/browser/safe_browsing/safe_browsing_service.h b/chrome/browser/safe_browsing/safe_browsing_service.h index 1b4f13a..0d02e54 100644 --- a/chrome/browser/safe_browsing/safe_browsing_service.h +++ b/chrome/browser/safe_browsing/safe_browsing_service.h @@ -18,9 +18,9 @@  #include "base/hash_tables.h"  #include "base/memory/ref_counted.h"  #include "base/memory/scoped_ptr.h" +#include "base/message_loop_helpers.h"  #include "base/observer_list.h"  #include "base/synchronization/lock.h" -#include "base/task.h"  #include "base/time.h"  #include "chrome/browser/safe_browsing/safe_browsing_util.h"  #include "content/public/browser/browser_thread.h" @@ -338,7 +338,7 @@ class SafeBrowsingService    friend struct content::BrowserThread::DeleteOnThread<        content::BrowserThread::UI>; -  friend class DeleteTask<SafeBrowsingService>; +  friend class base::DeleteHelper<SafeBrowsingService>;    friend class SafeBrowsingServiceTest;    // Called to initialize objects that are used on the io_thread. diff --git a/chrome/browser/search_engines/search_provider_install_data.cc b/chrome/browser/search_engines/search_provider_install_data.cc index 56946283..8a8165e 100644 --- a/chrome/browser/search_engines/search_provider_install_data.cc +++ b/chrome/browser/search_engines/search_provider_install_data.cc @@ -12,6 +12,7 @@  #include "base/bind.h"  #include "base/logging.h"  #include "base/memory/ref_counted.h" +#include "base/message_loop_helpers.h"  #include "chrome/browser/search_engines/search_host_to_urls_map.h"  #include "chrome/browser/search_engines/search_terms_data.h"  #include "chrome/browser/search_engines/template_url.h" @@ -81,7 +82,7 @@ class GoogleURLChangeNotifier   private:    friend struct BrowserThread::DeleteOnThread<BrowserThread::IO>; -  friend class DeleteTask<GoogleURLChangeNotifier>; +  friend class base::DeleteHelper<GoogleURLChangeNotifier>;    ~GoogleURLChangeNotifier() {} diff --git a/chrome/browser/search_engines/search_provider_install_data_unittest.cc b/chrome/browser/search_engines/search_provider_install_data_unittest.cc index aeaf4d7..4954ba6 100644 --- a/chrome/browser/search_engines/search_provider_install_data_unittest.cc +++ b/chrome/browser/search_engines/search_provider_install_data_unittest.cc @@ -173,9 +173,7 @@ class SearchProviderInstallDataTest : public testing::Test {    }    virtual void TearDown() { -    BrowserThread::GetMessageLoopProxyForThread(BrowserThread::IO)->PostTask( -        FROM_HERE, -        new DeleteTask<SearchProviderInstallData>(install_data_)); +    BrowserThread::DeleteSoon(BrowserThread::IO, FROM_HERE, install_data_);      install_data_ = NULL;      // Make sure that the install data class on the UI thread gets cleaned up. diff --git a/chrome/browser/spellchecker/spellcheck_host_impl.h b/chrome/browser/spellchecker/spellcheck_host_impl.h index a4c3019..d3089d0 100644 --- a/chrome/browser/spellchecker/spellcheck_host_impl.h +++ b/chrome/browser/spellchecker/spellcheck_host_impl.h @@ -13,6 +13,7 @@  #include "base/file_path.h"  #include "base/memory/scoped_ptr.h"  #include "base/memory/weak_ptr.h" +#include "base/message_loop_helpers.h"  #include "chrome/browser/spellchecker/spellcheck_host.h"  #include "chrome/browser/spellchecker/spellcheck_profile_provider.h"  #include "content/public/common/url_fetcher_delegate.h" @@ -65,7 +66,7 @@ class SpellCheckHostImpl : public SpellCheckHost,    // These two classes can destruct us.    friend class content::BrowserThread; -  friend class DeleteTask<SpellCheckHostImpl>; +  friend class base::DeleteHelper<SpellCheckHostImpl>;    // Figure out the location for the dictionary. This is only non-trivial for    // Windows: diff --git a/chrome/browser/sync/glue/data_type_controller.h b/chrome/browser/sync/glue/data_type_controller.h index e63d5ed..02ce411 100644 --- a/chrome/browser/sync/glue/data_type_controller.h +++ b/chrome/browser/sync/glue/data_type_controller.h @@ -11,6 +11,7 @@  #include "base/callback.h"  #include "base/location.h" +#include "base/message_loop_helpers.h"  #include "chrome/browser/sync/engine/model_safe_worker.h"  #include "chrome/browser/sync/internal_api/includes/unrecoverable_error_handler.h"  #include "chrome/browser/sync/syncable/model_type.h" @@ -94,8 +95,7 @@ class DataTypeController   protected:    friend struct content::BrowserThread::DeleteOnThread<        content::BrowserThread::UI>; -  friend class DeleteTask<DataTypeController>; -  friend class ShutdownTask; +  friend class base::DeleteHelper<DataTypeController>;    virtual ~DataTypeController() {}  }; diff --git a/chrome/browser/themes/browser_theme_pack.h b/chrome/browser/themes/browser_theme_pack.h index d79fdc4..f3e7955 100644 --- a/chrome/browser/themes/browser_theme_pack.h +++ b/chrome/browser/themes/browser_theme_pack.h @@ -12,6 +12,7 @@  #include "base/basictypes.h"  #include "base/memory/ref_counted.h"  #include "base/memory/scoped_ptr.h" +#include "base/message_loop_helpers.h"  #include "chrome/common/extensions/extension.h"  #include "content/public/browser/browser_thread.h"  #include "ui/gfx/color_utils.h" @@ -93,7 +94,7 @@ class BrowserThemePack : public base::RefCountedThreadSafe<   private:    friend struct content::BrowserThread::DeleteOnThread<        content::BrowserThread::FILE>; -  friend class DeleteTask<BrowserThemePack>; +  friend class base::DeleteHelper<BrowserThemePack>;    friend class BrowserThemePackTest;    // Cached images. We cache all retrieved and generated bitmaps and keep diff --git a/chrome/browser/ui/gtk/browser_window_gtk.cc b/chrome/browser/ui/gtk/browser_window_gtk.cc index f1ec053..424c87e 100644 --- a/chrome/browser/ui/gtk/browser_window_gtk.cc +++ b/chrome/browser/ui/gtk/browser_window_gtk.cc @@ -10,6 +10,7 @@  #include <string>  #include "base/base_paths.h" +#include "base/bind.h"  #include "base/command_line.h"  #include "base/debug/trace_event.h"  #include "base/environment.h" @@ -21,6 +22,7 @@  #include "base/nix/xdg_util.h"  #include "base/path_service.h"  #include "base/string_util.h" +#include "base/task.h"  #include "base/time.h"  #include "base/utf_string_conversions.h"  #include "chrome/app/chrome_command_ids.h" @@ -1578,8 +1580,8 @@ void BrowserWindowGtk::OnMainWindowDestroy(GtkWidget* widget) {    //    // We don't want to use DeleteSoon() here since it won't work on a nested pump    // (like in UI tests). -  MessageLoop::current()->PostTask(FROM_HERE, -                                   new DeleteTask<BrowserWindowGtk>(this)); +  MessageLoop::current()->PostTask( +      FROM_HERE, base::Bind(&DeletePointer<BrowserWindowGtk>, this));  }  void BrowserWindowGtk::UnMaximize() { diff --git a/chrome/browser/ui/gtk/create_application_shortcuts_dialog_gtk.h b/chrome/browser/ui/gtk/create_application_shortcuts_dialog_gtk.h index c36181d..200f661 100644 --- a/chrome/browser/ui/gtk/create_application_shortcuts_dialog_gtk.h +++ b/chrome/browser/ui/gtk/create_application_shortcuts_dialog_gtk.h @@ -9,6 +9,7 @@  #include "base/basictypes.h"  #include "base/compiler_specific.h"  #include "base/memory/ref_counted.h" +#include "base/message_loop_helpers.h"  #include "chrome/browser/extensions/image_loading_tracker.h"  #include "chrome/browser/shell_integration.h"  #include "content/public/browser/browser_thread.h" @@ -72,7 +73,7 @@ class CreateApplicationShortcutsDialogGtk   private:    friend struct BrowserThread::DeleteOnThread<BrowserThread::UI>; -  friend class DeleteTask<CreateApplicationShortcutsDialogGtk>; +  friend class base::DeleteHelper<CreateApplicationShortcutsDialogGtk>;    DISALLOW_COPY_AND_ASSIGN(CreateApplicationShortcutsDialogGtk);  }; diff --git a/chrome/browser/ui/webui/chrome_url_data_manager.h b/chrome/browser/ui/webui/chrome_url_data_manager.h index c81b662..cdaa54e 100644 --- a/chrome/browser/ui/webui/chrome_url_data_manager.h +++ b/chrome/browser/ui/webui/chrome_url_data_manager.h @@ -11,8 +11,8 @@  #include "base/callback.h"  #include "base/memory/ref_counted.h" +#include "base/message_loop_helpers.h"  #include "base/synchronization/lock.h" -#include "base/task.h"  class ChromeURLDataManagerBackend;  class MessageLoop; @@ -114,7 +114,7 @@ class ChromeURLDataManager {     private:      friend class ChromeURLDataManagerBackend;      friend class ChromeURLDataManager; -    friend class DeleteTask<DataSource>; +    friend class base::DeleteHelper<DataSource>;      // SendResponse invokes this on the IO thread. Notifies the backend to      // handle the actual work of sending the data. diff --git a/chrome/browser/ui/webui/media/media_internals_proxy.h b/chrome/browser/ui/webui/media/media_internals_proxy.h index 605e953..9a60de2 100644 --- a/chrome/browser/ui/webui/media/media_internals_proxy.h +++ b/chrome/browser/ui/webui/media/media_internals_proxy.h @@ -7,6 +7,7 @@  #pragma once  #include "base/memory/ref_counted.h" +#include "base/message_loop_helpers.h"  #include "base/string16.h"  #include "chrome/browser/media/media_internals_observer.h"  #include "chrome/browser/net/chrome_net_log.h" @@ -63,7 +64,7 @@ class MediaInternalsProxy   private:    friend struct content::BrowserThread::DeleteOnThread<        content::BrowserThread::UI>; -  friend class DeleteTask<MediaInternalsProxy>; +  friend class base::DeleteHelper<MediaInternalsProxy>;    virtual ~MediaInternalsProxy();    // Build a dictionary mapping constant names to values. diff --git a/chrome/browser/ui/webui/net_internals_ui.cc b/chrome/browser/ui/webui/net_internals_ui.cc index dc0b206..4f9ede9 100644 --- a/chrome/browser/ui/webui/net_internals_ui.cc +++ b/chrome/browser/ui/webui/net_internals_ui.cc @@ -16,6 +16,7 @@  #include "base/command_line.h"  #include "base/memory/singleton.h"  #include "base/message_loop.h" +#include "base/message_loop_helpers.h"  #include "base/path_service.h"  #include "base/string_number_conversions.h"  #include "base/string_piece.h" @@ -365,7 +366,7 @@ class NetInternalsMessageHandler::IOThreadImpl   private:    friend struct BrowserThread::DeleteOnThread<BrowserThread::UI>; -  friend class DeleteTask<IOThreadImpl>; +  friend class base::DeleteHelper<IOThreadImpl>;    ~IOThreadImpl(); diff --git a/chrome/browser/ui/webui/quota_internals_proxy.h b/chrome/browser/ui/webui/quota_internals_proxy.h index 97e51cf..ebc613b 100644 --- a/chrome/browser/ui/webui/quota_internals_proxy.h +++ b/chrome/browser/ui/webui/quota_internals_proxy.h @@ -13,6 +13,7 @@  #include "base/memory/ref_counted.h"  #include "base/memory/weak_ptr.h" +#include "base/message_loop_helpers.h"  #include "content/public/browser/browser_thread.h"  #include "webkit/quota/quota_manager.h"  #include "webkit/quota/quota_types.h" @@ -80,7 +81,7 @@ class QuotaInternalsProxy    friend class QuotaInternalsHandler;    friend struct content::BrowserThread::DeleteOnThread<        content::BrowserThread::IO>; -  friend class DeleteTask<QuotaInternalsProxy>; +  friend class base::DeleteHelper<QuotaInternalsProxy>;    DISALLOW_COPY_AND_ASSIGN(QuotaInternalsProxy);  }; diff --git a/chrome/browser/user_style_sheet_watcher.h b/chrome/browser/user_style_sheet_watcher.h index 91b0fae..b167963 100644 --- a/chrome/browser/user_style_sheet_watcher.h +++ b/chrome/browser/user_style_sheet_watcher.h @@ -10,6 +10,7 @@  #include "base/files/file_path_watcher.h"  #include "base/memory/ref_counted.h"  #include "base/memory/scoped_ptr.h" +#include "base/message_loop_helpers.h"  #include "content/public/browser/browser_thread.h"  #include "content/public/browser/notification_observer.h"  #include "content/public/browser/notification_registrar.h" @@ -40,7 +41,7 @@ class UserStyleSheetWatcher   private:    friend struct content::BrowserThread::DeleteOnThread<        content::BrowserThread::UI>; -  friend class DeleteTask<UserStyleSheetWatcher>; +  friend class base::DeleteHelper<UserStyleSheetWatcher>;    virtual ~UserStyleSheetWatcher(); diff --git a/chrome/browser/webdata/web_data_service.h b/chrome/browser/webdata/web_data_service.h index 61e6fc2..5a1d4e7 100644 --- a/chrome/browser/webdata/web_data_service.h +++ b/chrome/browser/webdata/web_data_service.h @@ -13,6 +13,7 @@  #include "base/callback_forward.h"  #include "base/file_path.h"  #include "base/location.h" +#include "base/message_loop_helpers.h"  #include "base/memory/ref_counted.h"  #include "base/synchronization/lock.h"  #include "chrome/browser/search_engines/template_url_id.h" @@ -571,8 +572,7 @@ class WebDataService   private:    friend struct content::BrowserThread::DeleteOnThread<        content::BrowserThread::UI>; -  friend class DeleteTask<WebDataService>; -  friend class ShutdownTask; +  friend class base::DeleteHelper<WebDataService>;    typedef GenericRequest2<std::vector<const TemplateURL*>,                            std::vector<TemplateURL*> > SetKeywordsRequest; diff --git a/content/browser/appcache/chrome_appcache_service.h b/content/browser/appcache/chrome_appcache_service.h index 69498c2..bb755cf 100644 --- a/content/browser/appcache/chrome_appcache_service.h +++ b/content/browser/appcache/chrome_appcache_service.h @@ -8,6 +8,7 @@  #include "base/compiler_specific.h"  #include "base/memory/ref_counted.h" +#include "base/message_loop_helpers.h"  #include "content/common/content_export.h"  #include "content/public/browser/browser_thread.h"  #include "content/public/browser/notification_observer.h" @@ -52,7 +53,7 @@ class CONTENT_EXPORT ChromeAppCacheService        ChromeAppCacheService,        content::BrowserThread::DeleteOnIOThread>;    friend class content::BrowserThread; -  friend class DeleteTask<ChromeAppCacheService>; +  friend class base::DeleteHelper<ChromeAppCacheService>;    virtual ~ChromeAppCacheService(); diff --git a/content/browser/chrome_blob_storage_context.h b/content/browser/chrome_blob_storage_context.h index cc57ca8..e83271c 100644 --- a/content/browser/chrome_blob_storage_context.h +++ b/content/browser/chrome_blob_storage_context.h @@ -8,6 +8,7 @@  #include "base/memory/ref_counted.h"  #include "base/memory/scoped_ptr.h" +#include "base/message_loop_helpers.h"  #include "content/common/content_export.h"  #include "content/public/browser/browser_thread.h" @@ -38,7 +39,7 @@ class CONTENT_EXPORT ChromeBlobStorageContext    friend class base::RefCountedThreadSafe<        ChromeBlobStorageContext, content::BrowserThread::DeleteOnIOThread>;    friend class content::BrowserThread; -  friend class DeleteTask<ChromeBlobStorageContext>; +  friend class base::DeleteHelper<ChromeBlobStorageContext>;    virtual ~ChromeBlobStorageContext(); diff --git a/content/browser/download/download_manager_impl.h b/content/browser/download/download_manager_impl.h index c45fe0a..0a626e7 100644 --- a/content/browser/download/download_manager_impl.h +++ b/content/browser/download/download_manager_impl.h @@ -16,6 +16,7 @@  #include "base/memory/ref_counted.h"  #include "base/memory/scoped_ptr.h"  #include "base/memory/weak_ptr.h" +#include "base/message_loop_helpers.h"  #include "base/observer_list.h"  #include "base/synchronization/lock.h"  #include "content/browser/download/download_item_impl.h" @@ -138,7 +139,7 @@ class CONTENT_EXPORT DownloadManagerImpl        DownloadManagerImpl, content::BrowserThread::DeleteOnUIThread>;    friend struct content::BrowserThread::DeleteOnThread<        content::BrowserThread::UI>; -  friend class DeleteTask<DownloadManagerImpl>; +  friend class base::DeleteHelper<DownloadManagerImpl>;    virtual ~DownloadManagerImpl(); diff --git a/content/browser/host_zoom_map.h b/content/browser/host_zoom_map.h index d0325ab..1bd7134 100644 --- a/content/browser/host_zoom_map.h +++ b/content/browser/host_zoom_map.h @@ -15,6 +15,7 @@  #include "base/basictypes.h"  #include "base/memory/ref_counted.h" +#include "base/message_loop_helpers.h"  #include "base/synchronization/lock.h"  #include "content/common/content_export.h"  #include "content/public/browser/browser_thread.h" @@ -79,7 +80,7 @@ class CONTENT_EXPORT HostZoomMap        HostZoomMap, content::BrowserThread::DeleteOnUIThread>;    friend struct content::BrowserThread::DeleteOnThread<        content::BrowserThread::UI>; -  friend class DeleteTask<HostZoomMap>; +  friend class base::DeleteHelper<HostZoomMap>;    typedef std::map<std::string, double> HostZoomLevels; diff --git a/content/browser/in_process_webkit/dom_storage_message_filter.h b/content/browser/in_process_webkit/dom_storage_message_filter.h index bc6d8fa..75839c2 100644 --- a/content/browser/in_process_webkit/dom_storage_message_filter.h +++ b/content/browser/in_process_webkit/dom_storage_message_filter.h @@ -7,6 +7,7 @@  #pragma once  #include "base/memory/ref_counted.h" +#include "base/message_loop_helpers.h"  #include "base/process.h"  #include "content/browser/in_process_webkit/dom_storage_area.h"  #include "content/browser/in_process_webkit/webkit_context.h" @@ -41,7 +42,7 @@ class DOMStorageMessageFilter : public content::BrowserMessageFilter {   private:    friend class content::BrowserThread; -  friend class DeleteTask<DOMStorageMessageFilter>; +  friend class base::DeleteHelper<DOMStorageMessageFilter>;    virtual ~DOMStorageMessageFilter();    // Message Handlers. diff --git a/content/browser/renderer_host/gpu_message_filter.h b/content/browser/renderer_host/gpu_message_filter.h index f3fac5b..bb5f5b9 100644 --- a/content/browser/renderer_host/gpu_message_filter.h +++ b/content/browser/renderer_host/gpu_message_filter.h @@ -7,6 +7,7 @@  #pragma once  #include "base/memory/ref_counted.h" +#include "base/message_loop_helpers.h"  #include "content/common/gpu/gpu_process_launch_causes.h"  #include "content/public/browser/browser_message_filter.h"  #include "ui/gfx/native_widget_types.h" @@ -34,7 +35,7 @@ class GpuMessageFilter : public content::BrowserMessageFilter,   private:    friend class content::BrowserThread; -  friend class DeleteTask<GpuMessageFilter>; +  friend class base::DeleteHelper<GpuMessageFilter>;    virtual ~GpuMessageFilter();    // Message handlers called on the browser IO thread: diff --git a/content/browser/renderer_host/media/audio_input_renderer_host.h b/content/browser/renderer_host/media/audio_input_renderer_host.h index d5f1190..1ec5ed1 100644 --- a/content/browser/renderer_host/media/audio_input_renderer_host.h +++ b/content/browser/renderer_host/media/audio_input_renderer_host.h @@ -61,6 +61,7 @@  #include "base/gtest_prod_util.h"  #include "base/memory/ref_counted.h"  #include "base/memory/scoped_ptr.h" +#include "base/message_loop_helpers.h"  #include "base/process.h"  #include "base/shared_memory.h"  #include "content/browser/renderer_host/media/audio_input_device_manager_event_handler.h" @@ -130,7 +131,7 @@ class CONTENT_EXPORT AudioInputRendererHost   private:    // TODO(henrika): extend test suite (compare AudioRenderHost)    friend class content::BrowserThread; -  friend class DeleteTask<AudioInputRendererHost>; +  friend class base::DeleteHelper<AudioInputRendererHost>;    virtual ~AudioInputRendererHost(); diff --git a/content/browser/renderer_host/media/audio_renderer_host.h b/content/browser/renderer_host/media/audio_renderer_host.h index 20e11f1..16e2d02 100644 --- a/content/browser/renderer_host/media/audio_renderer_host.h +++ b/content/browser/renderer_host/media/audio_renderer_host.h @@ -58,6 +58,7 @@  #include "base/gtest_prod_util.h"  #include "base/memory/ref_counted.h"  #include "base/memory/scoped_ptr.h" +#include "base/message_loop_helpers.h"  #include "base/process.h"  #include "base/shared_memory.h"  #include "content/common/content_export.h" @@ -125,7 +126,7 @@ class CONTENT_EXPORT AudioRendererHost   private:    friend class AudioRendererHostTest;    friend class content::BrowserThread; -  friend class DeleteTask<AudioRendererHost>; +  friend class base::DeleteHelper<AudioRendererHost>;    friend class MockAudioRendererHost;    FRIEND_TEST_ALL_PREFIXES(AudioRendererHostTest, CreateMockStream);    FRIEND_TEST_ALL_PREFIXES(AudioRendererHostTest, MockStreamDataConversation); diff --git a/content/browser/renderer_host/media/video_capture_host.h b/content/browser/renderer_host/media/video_capture_host.h index 5ac47e9..26f1900 100644 --- a/content/browser/renderer_host/media/video_capture_host.h +++ b/content/browser/renderer_host/media/video_capture_host.h @@ -39,6 +39,7 @@  #include <map>  #include "base/memory/ref_counted.h" +#include "base/message_loop_helpers.h"  #include "content/browser/renderer_host/media/video_capture_controller.h"  #include "content/common/content_export.h"  #include "content/public/browser/browser_message_filter.h" @@ -76,7 +77,7 @@ class CONTENT_EXPORT VideoCaptureHost   private:    friend class content::BrowserThread; -  friend class DeleteTask<VideoCaptureHost>; +  friend class base::DeleteHelper<VideoCaptureHost>;    friend class MockVideoCaptureHost;    friend class VideoCaptureHostTest; diff --git a/content/browser/renderer_host/pepper_file_message_filter.h b/content/browser/renderer_host/pepper_file_message_filter.h index 416eb3c..325488e 100644 --- a/content/browser/renderer_host/pepper_file_message_filter.h +++ b/content/browser/renderer_host/pepper_file_message_filter.h @@ -11,8 +11,8 @@  #include "base/file_path.h"  #include "base/memory/ref_counted.h" +#include "base/message_loop_helpers.h"  #include "base/process.h" -#include "base/task.h"  #include "build/build_config.h"  #include "content/public/browser/browser_message_filter.h"  #include "ipc/ipc_platform_file.h" @@ -46,7 +46,7 @@ class PepperFileMessageFilter : public content::BrowserMessageFilter {   private:    friend class content::BrowserThread; -  friend class DeleteTask<PepperFileMessageFilter>; +  friend class base::DeleteHelper<PepperFileMessageFilter>;    virtual ~PepperFileMessageFilter();    // Called on the FILE thread: diff --git a/content/browser/renderer_host/render_message_filter.h b/content/browser/renderer_host/render_message_filter.h index 3bde746..1765526 100644 --- a/content/browser/renderer_host/render_message_filter.h +++ b/content/browser/renderer_host/render_message_filter.h @@ -15,6 +15,7 @@  #include "base/file_path.h"  #include "base/memory/linked_ptr.h" +#include "base/message_loop_helpers.h"  #include "base/shared_memory.h"  #include "base/string16.h"  #include "build/build_config.h" @@ -95,7 +96,7 @@ class RenderMessageFilter : public content::BrowserMessageFilter {   private:    friend class content::BrowserThread; -  friend class DeleteTask<RenderMessageFilter>; +  friend class base::DeleteHelper<RenderMessageFilter>;    class OpenChannelToNpapiPluginCallback; diff --git a/content/browser/renderer_host/resource_handler.h b/content/browser/renderer_host/resource_handler.h index d086aef..9d8bdda 100644 --- a/content/browser/renderer_host/resource_handler.h +++ b/content/browser/renderer_host/resource_handler.h @@ -15,6 +15,7 @@  #include <string> +#include "base/message_loop_helpers.h"  #include "content/public/browser/browser_thread.h"  class GURL; @@ -91,7 +92,7 @@ class ResourceHandler   protected:    friend class content::BrowserThread; -  friend class DeleteTask<ResourceHandler>; +  friend class base::DeleteHelper<ResourceHandler>;    virtual ~ResourceHandler() {}  }; diff --git a/content/browser/ssl/ssl_client_auth_handler.h b/content/browser/ssl/ssl_client_auth_handler.h index 470da01..a5893dc 100644 --- a/content/browser/ssl/ssl_client_auth_handler.h +++ b/content/browser/ssl/ssl_client_auth_handler.h @@ -8,6 +8,7 @@  #include "base/basictypes.h"  #include "base/memory/ref_counted.h" +#include "base/message_loop_helpers.h"  #include "content/common/content_export.h"  #include "content/public/browser/browser_thread.h"  #include "content/public/browser/notification_observer.h" @@ -64,7 +65,7 @@ class CONTENT_EXPORT SSLClientAuthHandler    friend class base::RefCountedThreadSafe<        SSLClientAuthHandler, content::BrowserThread::DeleteOnIOThread>;    friend class content::BrowserThread; -  friend class DeleteTask<SSLClientAuthHandler>; +  friend class base::DeleteHelper<SSLClientAuthHandler>;    // Notifies that the user has selected a cert.    // Called on the IO thread. diff --git a/content/public/browser/browser_thread.h b/content/public/browser/browser_thread.h index 30ac554..5cc594a 100644 --- a/content/public/browser/browser_thread.h +++ b/content/public/browser/browser_thread.h @@ -145,8 +145,8 @@ class CONTENT_EXPORT BrowserThread {    static bool DeleteSoon(ID identifier,                           const tracked_objects::Location& from_here,                           const T* object) { -    return PostNonNestableTask( -        identifier, from_here, new DeleteTask<T>(object)); +    return GetMessageLoopProxyForThread(identifier)->DeleteSoon( +        from_here, object);    }    template <class T> diff --git a/content/public/browser/download_manager.h b/content/public/browser/download_manager.h index c4a4fd6..bb3f8ff 100644 --- a/content/public/browser/download_manager.h +++ b/content/public/browser/download_manager.h @@ -34,6 +34,7 @@  #include "base/basictypes.h"  #include "base/file_path.h"  #include "base/gtest_prod_util.h" +#include "base/message_loop_helpers.h"  #include "base/time.h"  #include "content/browser/download/download_id.h"  #include "content/browser/download/interrupt_reasons.h" @@ -264,7 +265,7 @@ class CONTENT_EXPORT DownloadManager        DownloadManager, content::BrowserThread::DeleteOnUIThread>;    friend struct content::BrowserThread::DeleteOnThread<        content::BrowserThread::UI>; -  friend class DeleteTask<DownloadManager>; +  friend class base::DeleteHelper<DownloadManager>;  };  }  // namespace content | 
