diff options
23 files changed, 121 insertions, 67 deletions
diff --git a/chrome/browser/component_updater/component_updater_service.cc b/chrome/browser/component_updater/component_updater_service.cc index aa36a8d..b24d100 100644 --- a/chrome/browser/component_updater/component_updater_service.cc +++ b/chrome/browser/component_updater/component_updater_service.cc @@ -260,6 +260,8 @@ class CrxUpdateService : public ComponentUpdateService { } private: + virtual ~ManifestParserBridge() {} + // Omaha update response XML was successfully parsed. void OnParseUpdateManifestSucceeded(const UpdateManifest::Results& r) { service_->OnParseUpdateManifestSucceeded(r); diff --git a/chrome/browser/history/history_browsertest.cc b/chrome/browser/history/history_browsertest.cc index c636af7..6d5ad8d 100644 --- a/chrome/browser/history/history_browsertest.cc +++ b/chrome/browser/history/history_browsertest.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Copyright (c) 2012 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -35,8 +35,7 @@ namespace { // Notifies the main thread after all history backend thread tasks have run. class WaitForHistoryTask : public HistoryDBTask { public: - WaitForHistoryTask() { - } + WaitForHistoryTask() {} virtual bool RunOnDBThread(history::HistoryBackend* backend, history::HistoryDatabase* db) { @@ -48,6 +47,8 @@ class WaitForHistoryTask : public HistoryDBTask { } private: + virtual ~WaitForHistoryTask() {} + DISALLOW_COPY_AND_ASSIGN(WaitForHistoryTask); }; diff --git a/chrome/browser/history/history_extension_api.h b/chrome/browser/history/history_extension_api.h index e66ea76..bd5b2f2 100644 --- a/chrome/browser/history/history_extension_api.h +++ b/chrome/browser/history/history_extension_api.h @@ -1,4 +1,4 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Copyright (c) 2012 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -48,9 +48,9 @@ class HistoryExtensionEventRouter : public content::NotificationObserver { // Base class for history function APIs. class HistoryFunction : public AsyncExtensionFunction { - public: + protected: + virtual ~HistoryFunction() {} virtual void Run() OVERRIDE; - virtual bool RunImpl() = 0; bool GetUrlFromValue(base::Value* value, GURL* url); bool GetTimeFromValue(base::Value* value, base::Time* time); @@ -61,8 +61,13 @@ class HistoryFunction : public AsyncExtensionFunction { class HistoryFunctionWithCallback : public HistoryFunction { public: HistoryFunctionWithCallback(); + + protected: virtual ~HistoryFunctionWithCallback(); + // ExtensionFunction: + virtual bool RunImpl() OVERRIDE; + // Return true if the async call was completed, false otherwise. virtual bool RunAsyncImpl() = 0; @@ -70,10 +75,6 @@ class HistoryFunctionWithCallback : public HistoryFunction { // This method calls Release(). virtual void SendAsyncResponse(); - // Override HistoryFunction::RunImpl. - virtual bool RunImpl() OVERRIDE; - - protected: // The consumer for the HistoryService callbacks. CancelableRequestConsumer cancelable_consumer_; @@ -85,10 +86,14 @@ class HistoryFunctionWithCallback : public HistoryFunction { class GetVisitsHistoryFunction : public HistoryFunctionWithCallback { public: - // Override HistoryFunction. - virtual bool RunAsyncImpl() OVERRIDE; DECLARE_EXTENSION_FUNCTION_NAME("history.getVisits"); + protected: + virtual ~GetVisitsHistoryFunction() {} + + // HistoryFunctionWithCallback: + virtual bool RunAsyncImpl() OVERRIDE; + // Callback for the history function to provide results. void QueryComplete(HistoryService::Handle request_service, bool success, @@ -98,9 +103,14 @@ class GetVisitsHistoryFunction : public HistoryFunctionWithCallback { class SearchHistoryFunction : public HistoryFunctionWithCallback { public: - virtual bool RunAsyncImpl() OVERRIDE; DECLARE_EXTENSION_FUNCTION_NAME("history.search"); + protected: + virtual ~SearchHistoryFunction() {} + + // HistoryFunctionWithCallback: + virtual bool RunAsyncImpl() OVERRIDE; + // Callback for the history function to provide results. void SearchComplete(HistoryService::Handle request_handle, history::QueryResults* results); @@ -108,15 +118,25 @@ class SearchHistoryFunction : public HistoryFunctionWithCallback { class AddUrlHistoryFunction : public HistoryFunction { public: - virtual bool RunImpl() OVERRIDE; DECLARE_EXTENSION_FUNCTION_NAME("history.addUrl"); + + protected: + virtual ~AddUrlHistoryFunction() {} + + // HistoryFunctionWithCallback: + virtual bool RunImpl() OVERRIDE; }; class DeleteAllHistoryFunction : public HistoryFunctionWithCallback { public: - virtual bool RunAsyncImpl() OVERRIDE; DECLARE_EXTENSION_FUNCTION_NAME("history.deleteAll"); + protected: + virtual ~DeleteAllHistoryFunction() {} + + // HistoryFunctionWithCallback: + virtual bool RunAsyncImpl() OVERRIDE; + // Callback for the history service to acknowledge deletion. void DeleteComplete(); }; @@ -124,15 +144,25 @@ class DeleteAllHistoryFunction : public HistoryFunctionWithCallback { class DeleteUrlHistoryFunction : public HistoryFunction { public: - virtual bool RunImpl() OVERRIDE; DECLARE_EXTENSION_FUNCTION_NAME("history.deleteUrl"); + + protected: + virtual ~DeleteUrlHistoryFunction() {} + + // HistoryFunctionWithCallback: + virtual bool RunImpl() OVERRIDE; }; class DeleteRangeHistoryFunction : public HistoryFunctionWithCallback { public: - virtual bool RunAsyncImpl() OVERRIDE; DECLARE_EXTENSION_FUNCTION_NAME("history.deleteRange"); + protected: + virtual ~DeleteRangeHistoryFunction() {} + + // HistoryFunctionWithCallback: + virtual bool RunAsyncImpl() OVERRIDE; + // Callback for the history service to acknowledge deletion. void DeleteComplete(); }; diff --git a/chrome/browser/history/history_types.h b/chrome/browser/history/history_types.h index 5cd4ce6..050e528 100644 --- a/chrome/browser/history/history_types.h +++ b/chrome/browser/history/history_types.h @@ -682,13 +682,13 @@ class MostVisitedThumbnails : public base::RefCountedThreadSafe<MostVisitedThumbnails> { public: MostVisitedThumbnails(); - virtual ~MostVisitedThumbnails(); MostVisitedURLList most_visited; URLToImagesMap url_to_images_map; private: friend class base::RefCountedThreadSafe<MostVisitedThumbnails>; + virtual ~MostVisitedThumbnails(); DISALLOW_COPY_AND_ASSIGN(MostVisitedThumbnails); }; diff --git a/chrome/browser/history/in_memory_url_index.cc b/chrome/browser/history/in_memory_url_index.cc index de92820..cfd0463 100644 --- a/chrome/browser/history/in_memory_url_index.cc +++ b/chrome/browser/history/in_memory_url_index.cc @@ -65,9 +65,6 @@ InMemoryURLIndex::RebuildPrivateDataFromHistoryDBTask:: succeeded_(false) { } -InMemoryURLIndex::RebuildPrivateDataFromHistoryDBTask:: - ~RebuildPrivateDataFromHistoryDBTask() {} - bool InMemoryURLIndex::RebuildPrivateDataFromHistoryDBTask::RunOnDBThread( HistoryBackend* backend, HistoryDatabase* db) { @@ -84,6 +81,10 @@ void InMemoryURLIndex::RebuildPrivateDataFromHistoryDBTask:: index_->DoneRebuidingPrivateDataFromHistoryDB(succeeded_, data_); } +InMemoryURLIndex::RebuildPrivateDataFromHistoryDBTask:: + ~RebuildPrivateDataFromHistoryDBTask() { +} + // InMemoryURLIndex ------------------------------------------------------------ InMemoryURLIndex::InMemoryURLIndex(Profile* profile, diff --git a/chrome/browser/history/in_memory_url_index.h b/chrome/browser/history/in_memory_url_index.h index 7ee9abf..3ead284 100644 --- a/chrome/browser/history/in_memory_url_index.h +++ b/chrome/browser/history/in_memory_url_index.h @@ -164,13 +164,14 @@ class InMemoryURLIndex : public content::NotificationObserver, InMemoryURLIndex* index, const std::string& languages, const std::set<std::string>& scheme_whitelist); - virtual ~RebuildPrivateDataFromHistoryDBTask(); virtual bool RunOnDBThread(HistoryBackend* backend, history::HistoryDatabase* db) OVERRIDE; virtual void DoneRunOnMainThread() OVERRIDE; private: + virtual ~RebuildPrivateDataFromHistoryDBTask(); + InMemoryURLIndex* index_; // Call back to this index at completion. std::string languages_; // Languages for word-breaking. std::set<std::string> scheme_whitelist_; // Schemes to be indexed. diff --git a/chrome/browser/history/shortcuts_backend.cc b/chrome/browser/history/shortcuts_backend.cc index dfa6982..ea9b90b 100644 --- a/chrome/browser/history/shortcuts_backend.cc +++ b/chrome/browser/history/shortcuts_backend.cc @@ -95,8 +95,6 @@ ShortcutsBackend::ShortcutsBackend(const FilePath& db_folder_path, } } -ShortcutsBackend::~ShortcutsBackend() {} - bool ShortcutsBackend::Init() { if (current_state_ != NOT_INITIALIZED) return false; @@ -190,6 +188,8 @@ bool ShortcutsBackend::DeleteAllShortcuts() { db_.get())); } +ShortcutsBackend::~ShortcutsBackend() {} + void ShortcutsBackend::InitInternal() { DCHECK(current_state_ == INITIALIZING); db_->Init(); diff --git a/chrome/browser/history/shortcuts_backend.h b/chrome/browser/history/shortcuts_backend.h index 66892c7..d36ff37 100644 --- a/chrome/browser/history/shortcuts_backend.h +++ b/chrome/browser/history/shortcuts_backend.h @@ -73,7 +73,6 @@ class ShortcutsBackend : public base::RefCountedThreadSafe<ShortcutsBackend>, // unit-tests. |db_folder_path| could be an empty path only in unit-tests as // well. It means there is no database created, all things are done in memory. ShortcutsBackend(const FilePath& db_folder_path, Profile* profile); - virtual ~ShortcutsBackend(); // The interface is guaranteed to be called on the thread AddObserver() // was called. @@ -83,6 +82,7 @@ class ShortcutsBackend : public base::RefCountedThreadSafe<ShortcutsBackend>, virtual void OnShortcutsLoaded() = 0; // Called when shortcuts changed (added/updated/removed) in the database. virtual void OnShortcutsChanged() {} + protected: virtual ~ShortcutsBackendObserver() {} }; @@ -123,9 +123,13 @@ class ShortcutsBackend : public base::RefCountedThreadSafe<ShortcutsBackend>, } private: + friend class base::RefCountedThreadSafe<ShortcutsBackend>; + typedef std::map<std::string, ShortcutMap::iterator> GuidToShortcutsIteratorMap; + virtual ~ShortcutsBackend(); + // Internal initialization of the back-end. Posted by Init() to the DB thread. // On completion posts InitCompleted() back to UI thread. void InitInternal(); diff --git a/chrome/browser/history/shortcuts_database.cc b/chrome/browser/history/shortcuts_database.cc index 035d82b..dc1da07 100644 --- a/chrome/browser/history/shortcuts_database.cc +++ b/chrome/browser/history/shortcuts_database.cc @@ -58,8 +58,6 @@ ShortcutsDatabase::ShortcutsDatabase(const FilePath& folder_path) : database_path_(folder_path.Append(FilePath(kShortcutsDatabaseName))) { } -ShortcutsDatabase::~ShortcutsDatabase() {} - bool ShortcutsDatabase::Init() { // Set the database page size to something a little larger to give us // better performance (we're typically seek rather than bandwidth limited). @@ -158,6 +156,8 @@ bool ShortcutsDatabase::LoadShortcuts(GuidToShortcutMap* shortcuts) { return true; } +ShortcutsDatabase::~ShortcutsDatabase() {} + bool ShortcutsDatabase::EnsureTable() { if (!db_.DoesTableExist(kShortcutsDBName)) { if (!db_.Execute(base::StringPrintf( diff --git a/chrome/browser/history/shortcuts_database.h b/chrome/browser/history/shortcuts_database.h index 2d73d22..11d4caa 100644 --- a/chrome/browser/history/shortcuts_database.h +++ b/chrome/browser/history/shortcuts_database.h @@ -43,7 +43,6 @@ class ShortcutsDatabase : public base::RefCountedThreadSafe<ShortcutsDatabase> { typedef std::map<std::string, ShortcutsBackend::Shortcut> GuidToShortcutMap; explicit ShortcutsDatabase(const FilePath& folder_path); - virtual ~ShortcutsDatabase(); bool Init(); @@ -66,6 +65,10 @@ class ShortcutsDatabase : public base::RefCountedThreadSafe<ShortcutsDatabase> { bool LoadShortcuts(GuidToShortcutMap* shortcuts); private: + friend class base::RefCountedThreadSafe<ShortcutsDatabase>; + + virtual ~ShortcutsDatabase(); + // Ensures that the table is present. bool EnsureTable(); diff --git a/chrome/browser/history/top_sites.cc b/chrome/browser/history/top_sites.cc index 8d1e59ac..0648415 100644 --- a/chrome/browser/history/top_sites.cc +++ b/chrome/browser/history/top_sites.cc @@ -115,6 +115,8 @@ class LoadThumbnailsFromHistoryTask : public HistoryDBTask { } private: + virtual ~LoadThumbnailsFromHistoryTask() {} + bool ShouldFetchThumbnailFor(const GURL& url) { return ignore_urls_.find(url.spec()) == ignore_urls_.end(); } diff --git a/chrome/browser/history/top_sites_extension_api.cc b/chrome/browser/history/top_sites_extension_api.cc index 33ca87a..89b7238 100644 --- a/chrome/browser/history/top_sites_extension_api.cc +++ b/chrome/browser/history/top_sites_extension_api.cc @@ -10,11 +10,9 @@ #include "chrome/browser/profiles/profile.h" #include "chrome/browser/ui/webui/ntp/new_tab_ui.h" -GetTopSitesFunction::GetTopSitesFunction() { -} +GetTopSitesFunction::GetTopSitesFunction() {} -GetTopSitesFunction::~GetTopSitesFunction() { -} +GetTopSitesFunction::~GetTopSitesFunction() {} bool GetTopSitesFunction::RunImpl() { history::TopSites* ts = profile()->GetTopSites(); diff --git a/chrome/browser/history/top_sites_extension_api.h b/chrome/browser/history/top_sites_extension_api.h index b07a97d..ca12b5d 100644 --- a/chrome/browser/history/top_sites_extension_api.h +++ b/chrome/browser/history/top_sites_extension_api.h @@ -12,10 +12,15 @@ class GetTopSitesFunction : public AsyncExtensionFunction { public: + DECLARE_EXTENSION_FUNCTION_NAME("topSites.get") + GetTopSitesFunction(); + + protected: virtual ~GetTopSitesFunction(); + + // ExtensionFunction: virtual bool RunImpl() OVERRIDE; - DECLARE_EXTENSION_FUNCTION_NAME("topSites.get") private: void OnMostVisitedURLsAvailable( diff --git a/chrome/browser/history/top_sites_unittest.cc b/chrome/browser/history/top_sites_unittest.cc index 36d49d6..016a556 100644 --- a/chrome/browser/history/top_sites_unittest.cc +++ b/chrome/browser/history/top_sites_unittest.cc @@ -58,6 +58,8 @@ class WaitForHistoryTask : public HistoryDBTask { } private: + virtual ~WaitForHistoryTask() {} + DISALLOW_COPY_AND_ASSIGN(WaitForHistoryTask); }; diff --git a/chrome/browser/net/crl_set_fetcher.cc b/chrome/browser/net/crl_set_fetcher.cc index 2ecac53..6630285 100644 --- a/chrome/browser/net/crl_set_fetcher.cc +++ b/chrome/browser/net/crl_set_fetcher.cc @@ -20,11 +20,7 @@ using content::BrowserThread; -CRLSetFetcher::CRLSetFetcher() : cus_(NULL) { -} - -CRLSetFetcher::~CRLSetFetcher() { -} +CRLSetFetcher::CRLSetFetcher() : cus_(NULL) {} bool CRLSetFetcher::GetCRLSetFilePath(FilePath* path) const { bool ok = PathService::Get(chrome::DIR_USER_DATA, path); @@ -207,3 +203,5 @@ bool CRLSetFetcher::Install(base::DictionaryValue* manifest, return true; } + +CRLSetFetcher::~CRLSetFetcher() {} diff --git a/chrome/browser/net/crl_set_fetcher.h b/chrome/browser/net/crl_set_fetcher.h index b6958637..ee506bc 100644 --- a/chrome/browser/net/crl_set_fetcher.h +++ b/chrome/browser/net/crl_set_fetcher.h @@ -29,7 +29,6 @@ class CRLSetFetcher : public ComponentInstaller, public base::RefCountedThreadSafe<CRLSetFetcher> { public: CRLSetFetcher(); - virtual ~CRLSetFetcher(); void StartInitialLoad(ComponentUpdateService* cus); @@ -39,6 +38,10 @@ class CRLSetFetcher : public ComponentInstaller, const FilePath& unpack_path) OVERRIDE; private: + friend class base::RefCountedThreadSafe<CRLSetFetcher>; + + virtual ~CRLSetFetcher(); + // GetCRLSetFilePath gets the path of the CRL set file in the user data // dir. bool GetCRLSetFilePath(FilePath* path) const; diff --git a/chrome/browser/net/sqlite_persistent_cookie_store.cc b/chrome/browser/net/sqlite_persistent_cookie_store.cc index 04c2d4f..009c595 100644 --- a/chrome/browser/net/sqlite_persistent_cookie_store.cc +++ b/chrome/browser/net/sqlite_persistent_cookie_store.cc @@ -925,15 +925,6 @@ SQLitePersistentCookieStore::SQLitePersistentCookieStore( : backend_(new Backend(path, restore_old_session_cookies)) { } -SQLitePersistentCookieStore::~SQLitePersistentCookieStore() { - if (backend_.get()) { - backend_->Close(); - // Release our reference, it will probably still have a reference if the - // background thread has not run Close() yet. - backend_ = NULL; - } -} - void SQLitePersistentCookieStore::Load(const LoadedCallback& loaded_callback) { backend_->Load(loaded_callback); } @@ -974,3 +965,12 @@ void SQLitePersistentCookieStore::Flush(const base::Closure& callback) { else if (!callback.is_null()) MessageLoop::current()->PostTask(FROM_HERE, callback); } + +SQLitePersistentCookieStore::~SQLitePersistentCookieStore() { + if (backend_.get()) { + backend_->Close(); + // Release our reference, it will probably still have a reference if the + // background thread has not run Close() yet. + backend_ = NULL; + } +} diff --git a/chrome/browser/net/sqlite_persistent_cookie_store.h b/chrome/browser/net/sqlite_persistent_cookie_store.h index 08ee08e..7d7cf95 100644 --- a/chrome/browser/net/sqlite_persistent_cookie_store.h +++ b/chrome/browser/net/sqlite_persistent_cookie_store.h @@ -27,26 +27,23 @@ class SQLitePersistentCookieStore public: SQLitePersistentCookieStore(const FilePath& path, bool restore_old_session_cookies); - virtual ~SQLitePersistentCookieStore(); + // net::CookieMonster::PersistentCookieStore: virtual void Load(const LoadedCallback& loaded_callback) OVERRIDE; - virtual void LoadCookiesForKey(const std::string& key, const LoadedCallback& callback) OVERRIDE; - virtual void AddCookie( const net::CookieMonster::CanonicalCookie& cc) OVERRIDE; - virtual void UpdateCookieAccessTime( const net::CookieMonster::CanonicalCookie& cc) OVERRIDE; - virtual void DeleteCookie( const net::CookieMonster::CanonicalCookie& cc) OVERRIDE; - virtual void SetClearLocalStateOnExit(bool clear_local_state) OVERRIDE; - virtual void Flush(const base::Closure& callback) OVERRIDE; + protected: + virtual ~SQLitePersistentCookieStore(); + private: class Backend; diff --git a/chrome/browser/net/sqlite_persistent_cookie_store_unittest.cc b/chrome/browser/net/sqlite_persistent_cookie_store_unittest.cc index 8c5541d..11d1cfe 100644 --- a/chrome/browser/net/sqlite_persistent_cookie_store_unittest.cc +++ b/chrome/browser/net/sqlite_persistent_cookie_store_unittest.cc @@ -316,6 +316,8 @@ class CallbackCounter : public base::RefCountedThreadSafe<CallbackCounter> { private: friend class base::RefCountedThreadSafe<CallbackCounter>; + ~CallbackCounter() {} + volatile int callback_count_; }; diff --git a/chrome/browser/net/sqlite_server_bound_cert_store.cc b/chrome/browser/net/sqlite_server_bound_cert_store.cc index e4a35e9..c653eb0 100644 --- a/chrome/browser/net/sqlite_server_bound_cert_store.cc +++ b/chrome/browser/net/sqlite_server_bound_cert_store.cc @@ -479,15 +479,6 @@ SQLiteServerBoundCertStore::SQLiteServerBoundCertStore(const FilePath& path) : backend_(new Backend(path)) { } -SQLiteServerBoundCertStore::~SQLiteServerBoundCertStore() { - if (backend_.get()) { - backend_->Close(); - // Release our reference, it will probably still have a reference if the - // background thread has not run Close() yet. - backend_ = NULL; - } -} - bool SQLiteServerBoundCertStore::Load( std::vector<net::DefaultServerBoundCertStore::ServerBoundCert*>* certs) { return backend_->Load(certs); @@ -517,3 +508,12 @@ void SQLiteServerBoundCertStore::Flush(const base::Closure& completion_task) { else if (!completion_task.is_null()) MessageLoop::current()->PostTask(FROM_HERE, completion_task); } + +SQLiteServerBoundCertStore::~SQLiteServerBoundCertStore() { + if (backend_.get()) { + backend_->Close(); + // Release our reference, it will probably still have a reference if the + // background thread has not run Close() yet. + backend_ = NULL; + } +} diff --git a/chrome/browser/net/sqlite_server_bound_cert_store.h b/chrome/browser/net/sqlite_server_bound_cert_store.h index da363a0..6647eee 100644 --- a/chrome/browser/net/sqlite_server_bound_cert_store.h +++ b/chrome/browser/net/sqlite_server_bound_cert_store.h @@ -21,9 +21,8 @@ class SQLiteServerBoundCertStore : public net::DefaultServerBoundCertStore::PersistentStore { public: explicit SQLiteServerBoundCertStore(const FilePath& path); - virtual ~SQLiteServerBoundCertStore(); - // net::DefaultServerBoundCertStore::PersistentStore implementation. + // net::DefaultServerBoundCertStore::PersistentStore: virtual bool Load( std::vector<net::DefaultServerBoundCertStore::ServerBoundCert*>* certs) OVERRIDE; @@ -34,6 +33,9 @@ class SQLiteServerBoundCertStore virtual void SetClearLocalStateOnExit(bool clear_local_state) OVERRIDE; virtual void Flush(const base::Closure& completion_task) OVERRIDE; + protected: + virtual ~SQLiteServerBoundCertStore(); + private: class Backend; diff --git a/chrome/browser/net/sqlite_server_bound_cert_store_unittest.cc b/chrome/browser/net/sqlite_server_bound_cert_store_unittest.cc index 1fd2a87..b119252 100644 --- a/chrome/browser/net/sqlite_server_bound_cert_store_unittest.cc +++ b/chrome/browser/net/sqlite_server_bound_cert_store_unittest.cc @@ -489,6 +489,8 @@ class CallbackCounter : public base::RefCountedThreadSafe<CallbackCounter> { private: friend class base::RefCountedThreadSafe<CallbackCounter>; + ~CallbackCounter() {} + volatile int callback_count_; }; diff --git a/chrome/browser/net/ssl_config_service_manager_pref.cc b/chrome/browser/net/ssl_config_service_manager_pref.cc index 7386d49..1bf7cdb 100644 --- a/chrome/browser/net/ssl_config_service_manager_pref.cc +++ b/chrome/browser/net/ssl_config_service_manager_pref.cc @@ -72,7 +72,6 @@ std::vector<uint16> ParseCipherSuites( class SSLConfigServicePref : public net::SSLConfigService { public: SSLConfigServicePref() {} - virtual ~SSLConfigServicePref() {} // Store SSL config settings in |config|. Must only be called from IO thread. virtual void GetSSLConfig(net::SSLConfig* config); @@ -81,6 +80,8 @@ class SSLConfigServicePref : public net::SSLConfigService { // Allow the pref watcher to update our internal state. friend class SSLConfigServiceManagerPref; + virtual ~SSLConfigServicePref() {} + // This method is posted to the IO thread from the browser thread to carry the // new config information. void SetNewSSLConfig(const net::SSLConfig& new_config); |