Use in-class initializers for base::WeakPtrFactory in chrome/.

Generated by: https://chromium-review.googlesource.com/c/chromium/src/+/1689216

Some existing uses of NULL are replaced with nullptr to remove
presubmit errors.

Bug: 981415
Change-Id: I9824a00bd16e27cf2f0e03e6c7127ffc457b56e3
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1697372
Commit-Queue: Jeremy Roman <[email protected]>
Reviewed-by: Lei Zhang <[email protected]>
Cr-Commit-Position: refs/heads/master@{#676912}
diff --git a/chrome/browser/accessibility/accessibility_labels_service.cc b/chrome/browser/accessibility/accessibility_labels_service.cc
index ca18fd01..87859f2f9 100644
--- a/chrome/browser/accessibility/accessibility_labels_service.cc
+++ b/chrome/browser/accessibility/accessibility_labels_service.cc
@@ -67,7 +67,7 @@
 }
 
 AccessibilityLabelsService::AccessibilityLabelsService(Profile* profile)
-    : profile_(profile), weak_factory_(this) {}
+    : profile_(profile) {}
 
 ui::AXMode AccessibilityLabelsService::GetAXMode() {
   ui::AXMode ax_mode =
diff --git a/chrome/browser/accessibility/accessibility_labels_service.h b/chrome/browser/accessibility/accessibility_labels_service.h
index 8213c146..dfb0b174 100644
--- a/chrome/browser/accessibility/accessibility_labels_service.h
+++ b/chrome/browser/accessibility/accessibility_labels_service.h
@@ -51,7 +51,7 @@
 
   PrefChangeRegistrar pref_change_registrar_;
 
-  base::WeakPtrFactory<AccessibilityLabelsService> weak_factory_;
+  base::WeakPtrFactory<AccessibilityLabelsService> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(AccessibilityLabelsService);
 };
diff --git a/chrome/browser/after_startup_task_utils.cc b/chrome/browser/after_startup_task_utils.cc
index 35b8f7a..698d5c5 100644
--- a/chrome/browser/after_startup_task_utils.cc
+++ b/chrome/browser/after_startup_task_utils.cc
@@ -148,7 +148,7 @@
 // flag accordingly.
 class StartupObserver : public WebContentsObserver {
  public:
-  StartupObserver() : weak_factory_(this) {}
+  StartupObserver() {}
   ~StartupObserver() override {
     DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
     DCHECK(IsBrowserStartupComplete());
@@ -184,7 +184,7 @@
 
   SEQUENCE_CHECKER(sequence_checker_);
 
-  base::WeakPtrFactory<StartupObserver> weak_factory_;
+  base::WeakPtrFactory<StartupObserver> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(StartupObserver);
 };
diff --git a/chrome/browser/apps/platform_apps/api/media_galleries/blob_data_source_factory.cc b/chrome/browser/apps/platform_apps/api/media_galleries/blob_data_source_factory.cc
index bdf08f2d..5c5b82d 100644
--- a/chrome/browser/apps/platform_apps/api/media_galleries/blob_data_source_factory.cc
+++ b/chrome/browser/apps/platform_apps/api/media_galleries/blob_data_source_factory.cc
@@ -22,8 +22,7 @@
       : binding_(this, mojo::MakeRequest(interface_ptr)),
         browser_context_(browser_context),
         blob_uuid_(blob_uuid),
-        callback_(callback),
-        weak_factory_(this) {}
+        callback_(callback) {}
 
   ~BlobMediaDataSource() override = default;
 
@@ -60,7 +59,7 @@
 
   BlobDataSourceFactory::MediaDataCallback callback_;
 
-  base::WeakPtrFactory<BlobMediaDataSource> weak_factory_;
+  base::WeakPtrFactory<BlobMediaDataSource> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(BlobMediaDataSource);
 };
diff --git a/chrome/browser/apps/platform_apps/api/media_galleries/media_galleries_api.cc b/chrome/browser/apps/platform_apps/api/media_galleries/media_galleries_api.cc
index 9e5063c..b9d3e3b 100644
--- a/chrome/browser/apps/platform_apps/api/media_galleries/media_galleries_api.cc
+++ b/chrome/browser/apps/platform_apps/api/media_galleries/media_galleries_api.cc
@@ -292,7 +292,7 @@
 
 MediaGalleriesEventRouter::MediaGalleriesEventRouter(
     content::BrowserContext* context)
-    : profile_(Profile::FromBrowserContext(context)), weak_ptr_factory_(this) {
+    : profile_(Profile::FromBrowserContext(context)) {
   DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
   DCHECK(profile_);
 
diff --git a/chrome/browser/apps/platform_apps/api/media_galleries/media_galleries_api.h b/chrome/browser/apps/platform_apps/api/media_galleries/media_galleries_api.h
index 1cd1fd8..daa7247 100644
--- a/chrome/browser/apps/platform_apps/api/media_galleries/media_galleries_api.h
+++ b/chrome/browser/apps/platform_apps/api/media_galleries/media_galleries_api.h
@@ -84,7 +84,7 @@
   // Current profile.
   Profile* profile_;
 
-  base::WeakPtrFactory<MediaGalleriesEventRouter> weak_ptr_factory_;
+  base::WeakPtrFactory<MediaGalleriesEventRouter> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(MediaGalleriesEventRouter);
 };
diff --git a/chrome/browser/apps/platform_apps/shortcut_manager.cc b/chrome/browser/apps/platform_apps/shortcut_manager.cc
index cc115a7c..08c075e 100644
--- a/chrome/browser/apps/platform_apps/shortcut_manager.cc
+++ b/chrome/browser/apps/platform_apps/shortcut_manager.cc
@@ -74,8 +74,7 @@
 AppShortcutManager::AppShortcutManager(Profile* profile)
     : profile_(profile),
       is_profile_attributes_storage_observer_(false),
-      extension_registry_observer_(this),
-      weak_ptr_factory_(this) {
+      extension_registry_observer_(this) {
   // Use of g_browser_process requires that we are either on the UI thread, or
   // there are no threads initialized (such as in unit tests).
   DCHECK(!content::BrowserThread::IsThreadInitialized(
diff --git a/chrome/browser/apps/platform_apps/shortcut_manager.h b/chrome/browser/apps/platform_apps/shortcut_manager.h
index dfb6458..d2583a0 100644
--- a/chrome/browser/apps/platform_apps/shortcut_manager.h
+++ b/chrome/browser/apps/platform_apps/shortcut_manager.h
@@ -62,7 +62,7 @@
                  extensions::ExtensionRegistryObserver>
       extension_registry_observer_;
 
-  base::WeakPtrFactory<AppShortcutManager> weak_ptr_factory_;
+  base::WeakPtrFactory<AppShortcutManager> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(AppShortcutManager);
 };
diff --git a/chrome/browser/autofill/autofill_autocomplete_browsertest.cc b/chrome/browser/autofill/autofill_autocomplete_browsertest.cc
index 7a36026..7db9095 100644
--- a/chrome/browser/autofill/autofill_autocomplete_browsertest.cc
+++ b/chrome/browser/autofill/autofill_autocomplete_browsertest.cc
@@ -49,7 +49,7 @@
 class MockSuggestionsHandler
     : public AutocompleteHistoryManager::SuggestionsHandler {
  public:
-  MockSuggestionsHandler() : weak_ptr_factory_(this) {}
+  MockSuggestionsHandler() {}
 
   void OnSuggestionsReturned(
       int query_id,
@@ -68,7 +68,7 @@
 
  private:
   std::vector<Suggestion> last_suggestions_;
-  base::WeakPtrFactory<MockSuggestionsHandler> weak_ptr_factory_;
+  base::WeakPtrFactory<MockSuggestionsHandler> weak_ptr_factory_{this};
 };
 
 class AutofillAutocompleteTest : public InProcessBrowserTest {
diff --git a/chrome/browser/background/background_mode_manager.cc b/chrome/browser/background/background_mode_manager.cc
index 684fa4c..e68ffc373 100644
--- a/chrome/browser/background/background_mode_manager.cc
+++ b/chrome/browser/background/background_mode_manager.cc
@@ -225,9 +225,7 @@
 BackgroundModeManager::BackgroundModeManager(
     const base::CommandLine& command_line,
     ProfileAttributesStorage* profile_storage)
-    : profile_storage_(profile_storage),
-      task_runner_(CreateTaskRunner()),
-      weak_factory_(this) {
+    : profile_storage_(profile_storage), task_runner_(CreateTaskRunner()) {
   // We should never start up if there is no browser process or if we are
   // currently quitting.
   CHECK(g_browser_process);
diff --git a/chrome/browser/background/background_mode_manager.h b/chrome/browser/background/background_mode_manager.h
index ddf7449..b05453c 100644
--- a/chrome/browser/background/background_mode_manager.h
+++ b/chrome/browser/background/background_mode_manager.h
@@ -402,7 +402,7 @@
   // require file system or registry access.
   const scoped_refptr<base::SequencedTaskRunner> task_runner_;
 
-  base::WeakPtrFactory<BackgroundModeManager> weak_factory_;
+  base::WeakPtrFactory<BackgroundModeManager> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(BackgroundModeManager);
 };
diff --git a/chrome/browser/background_fetch/background_fetch_delegate_impl.cc b/chrome/browser/background_fetch/background_fetch_delegate_impl.cc
index 72c0e12..9357921 100644
--- a/chrome/browser/background_fetch/background_fetch_delegate_impl.cc
+++ b/chrome/browser/background_fetch/background_fetch_delegate_impl.cc
@@ -46,9 +46,8 @@
     const std::string& provider_namespace)
     : profile_(profile),
       provider_namespace_(provider_namespace),
-      offline_content_aggregator_(
-          OfflineContentAggregatorFactory::GetForKey(profile->GetProfileKey())),
-      weak_ptr_factory_(this) {
+      offline_content_aggregator_(OfflineContentAggregatorFactory::GetForKey(
+          profile->GetProfileKey())) {
   DCHECK(profile_);
   DCHECK(!provider_namespace_.empty());
   offline_content_aggregator_->RegisterProvider(provider_namespace_, this);
diff --git a/chrome/browser/background_fetch/background_fetch_delegate_impl.h b/chrome/browser/background_fetch/background_fetch_delegate_impl.h
index 7e65c4c..2ba849e 100644
--- a/chrome/browser/background_fetch/background_fetch_delegate_impl.h
+++ b/chrome/browser/background_fetch/background_fetch_delegate_impl.h
@@ -293,7 +293,7 @@
   // Testing-only closure to inform tests when a UKM event has been recorded.
   base::OnceClosure ukm_event_recorded_for_testing_;
 
-  base::WeakPtrFactory<BackgroundFetchDelegateImpl> weak_ptr_factory_;
+  base::WeakPtrFactory<BackgroundFetchDelegateImpl> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(BackgroundFetchDelegateImpl);
 };
diff --git a/chrome/browser/background_sync/background_sync_metrics.cc b/chrome/browser/background_sync/background_sync_metrics.cc
index 409e47b..9454a66 100644
--- a/chrome/browser/background_sync/background_sync_metrics.cc
+++ b/chrome/browser/background_sync/background_sync_metrics.cc
@@ -12,7 +12,7 @@
 
 BackgroundSyncMetrics::BackgroundSyncMetrics(
     ukm::UkmBackgroundRecorderService* ukm_background_service)
-    : ukm_background_service_(ukm_background_service), weak_ptr_factory_(this) {
+    : ukm_background_service_(ukm_background_service) {
   DCHECK(ukm_background_service_);
 }
 
diff --git a/chrome/browser/background_sync/background_sync_metrics.h b/chrome/browser/background_sync/background_sync_metrics.h
index aac0767..8cebc72 100644
--- a/chrome/browser/background_sync/background_sync_metrics.h
+++ b/chrome/browser/background_sync/background_sync_metrics.h
@@ -58,7 +58,7 @@
   // Used to signal tests that a UKM event has been recorded.
   base::OnceClosure ukm_event_recorded_for_testing_;
 
-  base::WeakPtrFactory<BackgroundSyncMetrics> weak_ptr_factory_;
+  base::WeakPtrFactory<BackgroundSyncMetrics> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(BackgroundSyncMetrics);
 };
diff --git a/chrome/browser/battery/battery_metrics.cc b/chrome/browser/battery/battery_metrics.cc
index f5639184..1cd5ec9 100644
--- a/chrome/browser/battery/battery_metrics.cc
+++ b/chrome/browser/battery/battery_metrics.cc
@@ -16,7 +16,7 @@
 #include "services/service_manager/public/cpp/connector.h"
 #include "services/service_manager/public/cpp/service_filter.h"
 
-BatteryMetrics::BatteryMetrics() : weak_factory_(this) {
+BatteryMetrics::BatteryMetrics() {
   StartRecording();
 }
 
diff --git a/chrome/browser/battery/battery_metrics.h b/chrome/browser/battery/battery_metrics.h
index 892f831..0c94cd5 100644
--- a/chrome/browser/battery/battery_metrics.h
+++ b/chrome/browser/battery/battery_metrics.h
@@ -42,7 +42,7 @@
 
   SEQUENCE_CHECKER(sequence_checker_);
 
-  base::WeakPtrFactory<BatteryMetrics> weak_factory_;
+  base::WeakPtrFactory<BatteryMetrics> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(BatteryMetrics);
 };
diff --git a/chrome/browser/browser_switcher/browser_switcher_prefs.cc b/chrome/browser/browser_switcher/browser_switcher_prefs.cc
index 4195b91..44d0ac2 100644
--- a/chrome/browser/browser_switcher/browser_switcher_prefs.cc
+++ b/chrome/browser/browser_switcher/browser_switcher_prefs.cc
@@ -51,7 +51,7 @@
 BrowserSwitcherPrefs::BrowserSwitcherPrefs(
     PrefService* prefs,
     policy::PolicyService* policy_service)
-    : policy_service_(policy_service), prefs_(prefs), weak_ptr_factory_(this) {
+    : policy_service_(policy_service), prefs_(prefs) {
   filtering_change_registrar_.Init(prefs_);
 
   const struct {
diff --git a/chrome/browser/browser_switcher/browser_switcher_prefs.h b/chrome/browser/browser_switcher/browser_switcher_prefs.h
index 585970f..32e4351 100644
--- a/chrome/browser/browser_switcher/browser_switcher_prefs.h
+++ b/chrome/browser/browser_switcher/browser_switcher_prefs.h
@@ -176,7 +176,7 @@
 
   base::CallbackList<PrefsChangedSignature> callback_list_;
 
-  base::WeakPtrFactory<BrowserSwitcherPrefs> weak_ptr_factory_;
+  base::WeakPtrFactory<BrowserSwitcherPrefs> weak_ptr_factory_{this};
 
   DISALLOW_IMPLICIT_CONSTRUCTORS(BrowserSwitcherPrefs);
 };
diff --git a/chrome/browser/browser_switcher/browser_switcher_service.cc b/chrome/browser/browser_switcher/browser_switcher_service.cc
index 7e6b776..29ba040 100644
--- a/chrome/browser/browser_switcher/browser_switcher_service.cc
+++ b/chrome/browser/browser_switcher/browser_switcher_service.cc
@@ -92,9 +92,7 @@
                              BrowserSwitcherService* service,
                              base::TimeDelta first_fetch_delay,
                              base::RepeatingCallback<void()> all_done_callback)
-    : service_(service),
-      all_done_callback_(std::move(all_done_callback)),
-      weak_ptr_factory_(this) {
+    : service_(service), all_done_callback_(std::move(all_done_callback)) {
   file_url_factory_ =
       content::CreateFileURLLoaderFactory(base::FilePath(), nullptr);
   other_url_factory_ =
@@ -218,8 +216,7 @@
     : profile_(profile),
       prefs_(profile),
       driver_(new AlternativeBrowserDriverImpl(&prefs_)),
-      sitelist_(new BrowserSwitcherSitelistImpl(&prefs_)),
-      weak_ptr_factory_(this) {
+      sitelist_(new BrowserSwitcherSitelistImpl(&prefs_)) {
   base::ThreadTaskRunnerHandle::Get()->PostTask(
       FROM_HERE, base::BindOnce(&BrowserSwitcherService::Init,
                                 weak_ptr_factory_.GetWeakPtr()));
diff --git a/chrome/browser/browser_switcher/browser_switcher_service.h b/chrome/browser/browser_switcher/browser_switcher_service.h
index 5efc08c..81f23245 100644
--- a/chrome/browser/browser_switcher/browser_switcher_service.h
+++ b/chrome/browser/browser_switcher/browser_switcher_service.h
@@ -108,7 +108,7 @@
   base::Time last_refresh_time_;
   base::Time next_refresh_time_;
 
-  base::WeakPtrFactory<XmlDownloader> weak_ptr_factory_;
+  base::WeakPtrFactory<XmlDownloader> weak_ptr_factory_{this};
 };
 
 // Manages per-profile resources for BrowserSwitcher.
@@ -197,7 +197,7 @@
   std::unique_ptr<AlternativeBrowserDriver> driver_;
   std::unique_ptr<BrowserSwitcherSitelist> sitelist_;
 
-  base::WeakPtrFactory<BrowserSwitcherService> weak_ptr_factory_;
+  base::WeakPtrFactory<BrowserSwitcherService> weak_ptr_factory_{this};
 
  private:
   DISALLOW_IMPLICIT_CONSTRUCTORS(BrowserSwitcherService);
diff --git a/chrome/browser/browsing_data/browsing_data_quota_helper_impl.cc b/chrome/browser/browsing_data/browsing_data_quota_helper_impl.cc
index f3d56f8c..d51af64 100644
--- a/chrome/browser/browsing_data/browsing_data_quota_helper_impl.cc
+++ b/chrome/browser/browsing_data/browsing_data_quota_helper_impl.cc
@@ -51,9 +51,7 @@
 
 BrowsingDataQuotaHelperImpl::BrowsingDataQuotaHelperImpl(
     storage::QuotaManager* quota_manager)
-    : BrowsingDataQuotaHelper(),
-      quota_manager_(quota_manager),
-      weak_factory_(this) {
+    : BrowsingDataQuotaHelper(), quota_manager_(quota_manager) {
   DCHECK(quota_manager);
 }
 
diff --git a/chrome/browser/browsing_data/browsing_data_quota_helper_impl.h b/chrome/browser/browsing_data/browsing_data_quota_helper_impl.h
index d12f37aa..3df84c5 100644
--- a/chrome/browser/browsing_data/browsing_data_quota_helper_impl.h
+++ b/chrome/browser/browsing_data/browsing_data_quota_helper_impl.h
@@ -72,7 +72,7 @@
 
   scoped_refptr<storage::QuotaManager> quota_manager_;
 
-  base::WeakPtrFactory<BrowsingDataQuotaHelperImpl> weak_factory_;
+  base::WeakPtrFactory<BrowsingDataQuotaHelperImpl> weak_factory_{this};
 
   friend class BrowsingDataQuotaHelper;
   friend class BrowsingDataQuotaHelperTest;
diff --git a/chrome/browser/browsing_data/browsing_data_quota_helper_unittest.cc b/chrome/browser/browsing_data/browsing_data_quota_helper_unittest.cc
index 6ed27b1c..377b4e3b 100644
--- a/chrome/browser/browsing_data/browsing_data_quota_helper_unittest.cc
+++ b/chrome/browser/browsing_data/browsing_data_quota_helper_unittest.cc
@@ -31,7 +31,7 @@
   typedef BrowsingDataQuotaHelper::QuotaInfo QuotaInfo;
   typedef BrowsingDataQuotaHelper::QuotaInfoArray QuotaInfoArray;
 
-  BrowsingDataQuotaHelperTest() : weak_factory_(this) {}
+  BrowsingDataQuotaHelperTest() {}
 
   ~BrowsingDataQuotaHelperTest() override {}
 
@@ -120,7 +120,7 @@
   bool fetching_completed_ = true;
   QuotaInfoArray quota_info_;
   int64_t quota_ = -1;
-  base::WeakPtrFactory<BrowsingDataQuotaHelperTest> weak_factory_;
+  base::WeakPtrFactory<BrowsingDataQuotaHelperTest> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(BrowsingDataQuotaHelperTest);
 };
diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
index 67b333f..ebcb59e 100644
--- a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
+++ b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
@@ -263,14 +263,16 @@
 
 ChromeBrowsingDataRemoverDelegate::ChromeBrowsingDataRemoverDelegate(
     BrowserContext* browser_context)
-    : profile_(Profile::FromBrowserContext(browser_context)),
+    : profile_(Profile::FromBrowserContext(browser_context))
 #if BUILDFLAG(ENABLE_PLUGINS)
-      flash_lso_helper_(BrowsingDataFlashLSOHelper::Create(browser_context)),
+      ,
+      flash_lso_helper_(BrowsingDataFlashLSOHelper::Create(browser_context))
 #endif
 #if defined(OS_ANDROID)
-      webapp_registry_(new WebappRegistry()),
+      ,
+      webapp_registry_(new WebappRegistry())
 #endif
-      weak_ptr_factory_(this) {
+{
   domain_reliability_clearer_ = base::BindRepeating(
       [](BrowserContext* browser_context,
          content::BrowsingDataFilterBuilder* filter_builder,
diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.h b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.h
index 9fc5e9c..9b0ec7e 100644
--- a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.h
+++ b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.h
@@ -327,7 +327,8 @@
   std::unique_ptr<WebappRegistry> webapp_registry_;
 #endif
 
-  base::WeakPtrFactory<ChromeBrowsingDataRemoverDelegate> weak_ptr_factory_;
+  base::WeakPtrFactory<ChromeBrowsingDataRemoverDelegate> weak_ptr_factory_{
+      this};
 
   DISALLOW_COPY_AND_ASSIGN(ChromeBrowsingDataRemoverDelegate);
 };
diff --git a/chrome/browser/browsing_data/counters/cache_counter.cc b/chrome/browser/browsing_data/counters/cache_counter.cc
index c4aa3f8..214c0aa 100644
--- a/chrome/browser/browsing_data/counters/cache_counter.cc
+++ b/chrome/browser/browsing_data/counters/cache_counter.cc
@@ -24,9 +24,7 @@
 
 CacheCounter::CacheResult::~CacheResult() {}
 
-CacheCounter::CacheCounter(Profile* profile)
-    : profile_(profile),
-      weak_ptr_factory_(this) {}
+CacheCounter::CacheCounter(Profile* profile) : profile_(profile) {}
 
 CacheCounter::~CacheCounter() {
 }
diff --git a/chrome/browser/browsing_data/counters/cache_counter.h b/chrome/browser/browsing_data/counters/cache_counter.h
index a1784cd..ca92e73d 100644
--- a/chrome/browser/browsing_data/counters/cache_counter.h
+++ b/chrome/browser/browsing_data/counters/cache_counter.h
@@ -45,7 +45,7 @@
   bool is_upper_limit_;
   int pending_sources_;
 
-  base::WeakPtrFactory<CacheCounter> weak_ptr_factory_;
+  base::WeakPtrFactory<CacheCounter> weak_ptr_factory_{this};
 };
 
 #endif  // CHROME_BROWSER_BROWSING_DATA_COUNTERS_CACHE_COUNTER_H_
diff --git a/chrome/browser/browsing_data/counters/site_data_counter.cc b/chrome/browser/browsing_data/counters/site_data_counter.cc
index 6d251567..20caea5 100644
--- a/chrome/browser/browsing_data/counters/site_data_counter.cc
+++ b/chrome/browser/browsing_data/counters/site_data_counter.cc
@@ -22,8 +22,7 @@
 
 SiteDataCounter::SiteDataCounter(Profile* profile)
     : profile_(profile),
-      sync_tracker_(this, ProfileSyncServiceFactory::GetForProfile(profile)),
-      weak_ptr_factory_(this) {}
+      sync_tracker_(this, ProfileSyncServiceFactory::GetForProfile(profile)) {}
 
 SiteDataCounter::~SiteDataCounter() {}
 
diff --git a/chrome/browser/browsing_data/counters/site_data_counter.h b/chrome/browser/browsing_data/counters/site_data_counter.h
index d2c1e2de..3a50142 100644
--- a/chrome/browser/browsing_data/counters/site_data_counter.h
+++ b/chrome/browser/browsing_data/counters/site_data_counter.h
@@ -25,7 +25,7 @@
 
   Profile* profile_;
   browsing_data::SyncTracker sync_tracker_;
-  base::WeakPtrFactory<SiteDataCounter> weak_ptr_factory_;
+  base::WeakPtrFactory<SiteDataCounter> weak_ptr_factory_{this};
 };
 
 #endif  // CHROME_BROWSER_BROWSING_DATA_COUNTERS_SITE_DATA_COUNTER_H_
diff --git a/chrome/browser/browsing_data/local_data_container.cc b/chrome/browser/browsing_data/local_data_container.cc
index 4e786a59..6954591 100644
--- a/chrome/browser/browsing_data/local_data_container.cc
+++ b/chrome/browser/browsing_data/local_data_container.cc
@@ -41,8 +41,7 @@
       shared_worker_helper_(std::move(shared_worker_helper)),
       cache_storage_helper_(std::move(cache_storage_helper)),
       flash_lso_helper_(std::move(flash_lso_helper)),
-      media_license_helper_(std::move(media_license_helper)),
-      weak_ptr_factory_(this) {}
+      media_license_helper_(std::move(media_license_helper)) {}
 
 LocalDataContainer::~LocalDataContainer() {}
 
diff --git a/chrome/browser/browsing_data/local_data_container.h b/chrome/browser/browsing_data/local_data_container.h
index 3b29432..7a722c8 100644
--- a/chrome/browser/browsing_data/local_data_container.h
+++ b/chrome/browser/browsing_data/local_data_container.h
@@ -160,7 +160,7 @@
   // Keeps track of how many batches are expected to start.
   int batches_started_ = 0;
 
-  base::WeakPtrFactory<LocalDataContainer> weak_ptr_factory_;
+  base::WeakPtrFactory<LocalDataContainer> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(LocalDataContainer);
 };
diff --git a/chrome/browser/browsing_data/site_data_size_collector.cc b/chrome/browser/browsing_data/site_data_size_collector.cc
index a2a2aa56..e32835a 100644
--- a/chrome/browser/browsing_data/site_data_size_collector.cc
+++ b/chrome/browser/browsing_data/site_data_size_collector.cc
@@ -47,8 +47,7 @@
       cache_storage_helper_(cache_storage_helper),
       flash_lso_helper_(flash_lso_helper),
       in_flight_operations_(0),
-      total_bytes_(0),
-      weak_ptr_factory_(this) {}
+      total_bytes_(0) {}
 
 SiteDataSizeCollector::~SiteDataSizeCollector() {
 }
diff --git a/chrome/browser/browsing_data/site_data_size_collector.h b/chrome/browser/browsing_data/site_data_size_collector.h
index ff9ce7c9..fa2af8ed 100644
--- a/chrome/browser/browsing_data/site_data_size_collector.h
+++ b/chrome/browser/browsing_data/site_data_size_collector.h
@@ -96,7 +96,7 @@
   // Keeps track of the sum of all fetched size.
   int64_t total_bytes_;
 
-  base::WeakPtrFactory<SiteDataSizeCollector> weak_ptr_factory_;
+  base::WeakPtrFactory<SiteDataSizeCollector> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(SiteDataSizeCollector);
 };
diff --git a/chrome/browser/captive_portal/captive_portal_tab_reloader.cc b/chrome/browser/captive_portal/captive_portal_tab_reloader.cc
index 9cc0daebe..2aa620e 100644
--- a/chrome/browser/captive_portal/captive_portal_tab_reloader.cc
+++ b/chrome/browser/captive_portal/captive_portal_tab_reloader.cc
@@ -54,9 +54,7 @@
       ssl_url_in_redirect_chain_(false),
       slow_ssl_load_time_(
           base::TimeDelta::FromSeconds(kDefaultSlowSSLTimeSeconds)),
-      open_login_tab_callback_(open_login_tab_callback),
-      weak_factory_(this) {
-}
+      open_login_tab_callback_(open_login_tab_callback) {}
 
 CaptivePortalTabReloader::~CaptivePortalTabReloader() {
 }
diff --git a/chrome/browser/captive_portal/captive_portal_tab_reloader.h b/chrome/browser/captive_portal/captive_portal_tab_reloader.h
index 92901b0..b1dcb0b8 100644
--- a/chrome/browser/captive_portal/captive_portal_tab_reloader.h
+++ b/chrome/browser/captive_portal/captive_portal_tab_reloader.h
@@ -178,7 +178,7 @@
 
   const OpenLoginTabCallback open_login_tab_callback_;
 
-  base::WeakPtrFactory<CaptivePortalTabReloader> weak_factory_;
+  base::WeakPtrFactory<CaptivePortalTabReloader> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(CaptivePortalTabReloader);
 };
diff --git a/chrome/browser/certificate_manager_model.cc b/chrome/browser/certificate_manager_model.cc
index f752cd58..6531cff 100644
--- a/chrome/browser/certificate_manager_model.cc
+++ b/chrome/browser/certificate_manager_model.cc
@@ -182,8 +182,7 @@
   CertsSourcePlatformNSS(base::RepeatingClosure certs_source_updated_callback,
                          net::NSSCertDatabase* nss_cert_database)
       : CertsSource(certs_source_updated_callback),
-        cert_db_(nss_cert_database),
-        weak_ptr_factory_(this) {}
+        cert_db_(nss_cert_database) {}
   ~CertsSourcePlatformNSS() override = default;
 
   void Refresh() override {
@@ -265,7 +264,7 @@
   // The source NSSCertDatabase used for listing certificates.
   net::NSSCertDatabase* cert_db_;
 
-  base::WeakPtrFactory<CertsSourcePlatformNSS> weak_ptr_factory_;
+  base::WeakPtrFactory<CertsSourcePlatformNSS> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(CertsSourcePlatformNSS);
 };
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc
index 68ff588..302a3765 100644
--- a/chrome/browser/chrome_content_browser_client.cc
+++ b/chrome/browser/chrome_content_browser_client.cc
@@ -1151,8 +1151,7 @@
     : data_reduction_proxy_throttle_manager_(
           nullptr,
           base::OnTaskRunnerDeleter(nullptr)),
-      startup_data_(startup_data),
-      weak_factory_(this) {
+      startup_data_(startup_data) {
 #if BUILDFLAG(ENABLE_PLUGINS)
   for (size_t i = 0; i < base::size(kPredefinedAllowedDevChannelOrigins); ++i)
     allowed_dev_channel_origins_.insert(kPredefinedAllowedDevChannelOrigins[i]);
diff --git a/chrome/browser/chrome_content_browser_client.h b/chrome/browser/chrome_content_browser_client.h
index a7e28690..6c4b8fa 100644
--- a/chrome/browser/chrome_content_browser_client.h
+++ b/chrome/browser/chrome_content_browser_client.h
@@ -733,7 +733,7 @@
   std::unique_ptr<ChromeHidDelegate> hid_delegate_;
 #endif
 
-  base::WeakPtrFactory<ChromeContentBrowserClient> weak_factory_;
+  base::WeakPtrFactory<ChromeContentBrowserClient> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(ChromeContentBrowserClient);
 };
diff --git a/chrome/browser/component_updater/supervised_user_whitelist_installer.cc b/chrome/browser/component_updater/supervised_user_whitelist_installer.cc
index 2c2a5a5..a58d0161 100644
--- a/chrome/browser/component_updater/supervised_user_whitelist_installer.cc
+++ b/chrome/browser/component_updater/supervised_user_whitelist_installer.cc
@@ -405,7 +405,8 @@
   scoped_refptr<base::SequencedTaskRunner> sequenced_task_runner_ =
       base::CreateSequencedTaskRunnerWithTraits(kTaskTraits);
 
-  base::WeakPtrFactory<SupervisedUserWhitelistInstallerImpl> weak_ptr_factory_;
+  base::WeakPtrFactory<SupervisedUserWhitelistInstallerImpl> weak_ptr_factory_{
+      this};
 
   DISALLOW_COPY_AND_ASSIGN(SupervisedUserWhitelistInstallerImpl);
 };
@@ -414,10 +415,7 @@
     ComponentUpdateService* cus,
     ProfileAttributesStorage* profile_attributes_storage,
     PrefService* local_state)
-    : cus_(cus),
-      local_state_(local_state),
-      observer_(this),
-      weak_ptr_factory_(this) {
+    : cus_(cus), local_state_(local_state), observer_(this) {
   DCHECK(cus);
   DCHECK(local_state);
   observer_.Add(profile_attributes_storage);
diff --git a/chrome/browser/component_updater/supervised_user_whitelist_installer_unittest.cc b/chrome/browser/component_updater/supervised_user_whitelist_installer_unittest.cc
index 64714ab..0003da2f 100644
--- a/chrome/browser/component_updater/supervised_user_whitelist_installer_unittest.cc
+++ b/chrome/browser/component_updater/supervised_user_whitelist_installer_unittest.cc
@@ -165,8 +165,7 @@
 
 class WhitelistLoadObserver {
  public:
-  explicit WhitelistLoadObserver(SupervisedUserWhitelistInstaller* installer)
-      : weak_ptr_factory_(this) {
+  explicit WhitelistLoadObserver(SupervisedUserWhitelistInstaller* installer) {
     installer->Subscribe(base::Bind(&WhitelistLoadObserver::OnWhitelistReady,
                                     weak_ptr_factory_.GetWeakPtr()));
   }
@@ -193,7 +192,7 @@
   base::FilePath whitelist_path_;
 
   base::RunLoop run_loop_;
-  base::WeakPtrFactory<WhitelistLoadObserver> weak_ptr_factory_;
+  base::WeakPtrFactory<WhitelistLoadObserver> weak_ptr_factory_{this};
 };
 
 }  // namespace
diff --git a/chrome/browser/custom_handlers/protocol_handler_registry.cc b/chrome/browser/custom_handlers/protocol_handler_registry.cc
index b1c4255..4739cc7 100644
--- a/chrome/browser/custom_handlers/protocol_handler_registry.cc
+++ b/chrome/browser/custom_handlers/protocol_handler_registry.cc
@@ -188,8 +188,7 @@
       enabled_(true),
       is_loading_(false),
       is_loaded_(false),
-      io_thread_delegate_(new IOThreadDelegate(enabled_)),
-      weak_ptr_factory_(this) {}
+      io_thread_delegate_(new IOThreadDelegate(enabled_)) {}
 
 bool ProtocolHandlerRegistry::SilentlyHandleRegisterHandlerRequest(
     const ProtocolHandler& handler) {
diff --git a/chrome/browser/custom_handlers/protocol_handler_registry.h b/chrome/browser/custom_handlers/protocol_handler_registry.h
index b10a595..c27ba99 100644
--- a/chrome/browser/custom_handlers/protocol_handler_registry.h
+++ b/chrome/browser/custom_handlers/protocol_handler_registry.h
@@ -404,7 +404,7 @@
 
   // Makes it possible to invalidate the callback for the
   // DefaultProtocolClientWorker.
-  base::WeakPtrFactory<ProtocolHandlerRegistry> weak_ptr_factory_;
+  base::WeakPtrFactory<ProtocolHandlerRegistry> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(ProtocolHandlerRegistry);
 };
diff --git a/chrome/browser/data_reduction_proxy/data_reduction_proxy_tab_helper.cc b/chrome/browser/data_reduction_proxy/data_reduction_proxy_tab_helper.cc
index 9a3a429..4727da2d 100644
--- a/chrome/browser/data_reduction_proxy/data_reduction_proxy_tab_helper.cc
+++ b/chrome/browser/data_reduction_proxy/data_reduction_proxy_tab_helper.cc
@@ -14,7 +14,7 @@
 
 DataReductionProxyTabHelper::DataReductionProxyTabHelper(
     content::WebContents* web_contents)
-    : content::WebContentsObserver(web_contents), weak_factory_(this) {
+    : content::WebContentsObserver(web_contents) {
   DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
 
   drp_settings_ = DataReductionProxyChromeSettingsFactory::GetForBrowserContext(
diff --git a/chrome/browser/data_reduction_proxy/data_reduction_proxy_tab_helper.h b/chrome/browser/data_reduction_proxy/data_reduction_proxy_tab_helper.h
index 51f0bcc..c3d97308 100644
--- a/chrome/browser/data_reduction_proxy/data_reduction_proxy_tab_helper.h
+++ b/chrome/browser/data_reduction_proxy/data_reduction_proxy_tab_helper.h
@@ -37,7 +37,7 @@
 
   data_reduction_proxy::DataReductionProxySettings* drp_settings_;
 
-  base::WeakPtrFactory<DataReductionProxyTabHelper> weak_factory_;
+  base::WeakPtrFactory<DataReductionProxyTabHelper> weak_factory_{this};
 
   WEB_CONTENTS_USER_DATA_KEY_DECL();
 
diff --git a/chrome/browser/devtools/device/adb/mock_adb_server.cc b/chrome/browser/devtools/device/adb/mock_adb_server.cc
index 633309f..758309f 100644
--- a/chrome/browser/devtools/device/adb/mock_adb_server.cc
+++ b/chrome/browser/devtools/device/adb/mock_adb_server.cc
@@ -221,7 +221,7 @@
 
     SEQUENCE_CHECKER(sequence_checker_);
 
-    base::WeakPtrFactory<Connection> weak_factory_;
+    base::WeakPtrFactory<Connection> weak_factory_{this};
 
     DISALLOW_COPY_AND_ASSIGN(Connection);
   };
@@ -235,7 +235,7 @@
 
   SEQUENCE_CHECKER(sequence_checker_);
 
-  base::WeakPtrFactory<SimpleHttpServer> weak_factory_;
+  base::WeakPtrFactory<SimpleHttpServer> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(SimpleHttpServer);
 };
@@ -243,8 +243,7 @@
 SimpleHttpServer::SimpleHttpServer(const ParserFactory& factory,
                                    net::IPEndPoint endpoint)
     : factory_(factory),
-      socket_(new net::TCPServerSocket(nullptr, net::NetLogSource())),
-      weak_factory_(this) {
+      socket_(new net::TCPServerSocket(nullptr, net::NetLogSource())) {
   socket_->Listen(endpoint, 5);
   OnConnect();
 }
@@ -261,8 +260,7 @@
       input_buffer_(base::MakeRefCounted<net::GrowableIOBuffer>()),
       output_buffer_(base::MakeRefCounted<net::GrowableIOBuffer>()),
       bytes_to_write_(0),
-      read_closed_(false),
-      weak_factory_(this) {
+      read_closed_(false) {
   input_buffer_->SetCapacity(kBufferSize);
   ReadData();
 }
diff --git a/chrome/browser/devtools/device/android_device_manager.cc b/chrome/browser/devtools/device/android_device_manager.cc
index c8772e6e..ce20fba 100644
--- a/chrome/browser/devtools/device/android_device_manager.cc
+++ b/chrome/browser/devtools/device/android_device_manager.cc
@@ -491,8 +491,7 @@
     : RefCountedDeleteOnSequence<Device>(base::ThreadTaskRunnerHandle::Get()),
       task_runner_(device_task_runner),
       provider_(provider),
-      serial_(serial),
-      weak_factory_(this) {}
+      serial_(serial) {}
 
 AndroidDeviceManager::Device::~Device() {
   task_runner_->PostTask(
@@ -584,7 +583,7 @@
 }
 
 AndroidDeviceManager::AndroidDeviceManager()
-    : handler_thread_(HandlerThread::GetInstance()), weak_factory_(this) {}
+    : handler_thread_(HandlerThread::GetInstance()) {}
 
 AndroidDeviceManager::~AndroidDeviceManager() {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
diff --git a/chrome/browser/devtools/device/android_device_manager.h b/chrome/browser/devtools/device/android_device_manager.h
index 76d82ef9..b97c7e6 100644
--- a/chrome/browser/devtools/device/android_device_manager.h
+++ b/chrome/browser/devtools/device/android_device_manager.h
@@ -106,7 +106,7 @@
     scoped_refptr<Device> device_;
     std::unique_ptr<WebSocketImpl, base::OnTaskRunnerDeleter> socket_impl_;
     Delegate* delegate_;
-    base::WeakPtrFactory<AndroidWebSocket> weak_factory_;
+    base::WeakPtrFactory<AndroidWebSocket> weak_factory_{this};
     DISALLOW_COPY_AND_ASSIGN(AndroidWebSocket);
   };
 
@@ -149,7 +149,7 @@
     scoped_refptr<DeviceProvider> provider_;
     const std::string serial_;
 
-    base::WeakPtrFactory<Device> weak_factory_;
+    base::WeakPtrFactory<Device> weak_factory_{this};
 
     DISALLOW_COPY_AND_ASSIGN(Device);
   };
@@ -254,7 +254,7 @@
 
   SEQUENCE_CHECKER(sequence_checker_);
 
-  base::WeakPtrFactory<AndroidDeviceManager> weak_factory_;
+  base::WeakPtrFactory<AndroidDeviceManager> weak_factory_{this};
 };
 
 #endif  // CHROME_BROWSER_DEVTOOLS_DEVICE_ANDROID_DEVICE_MANAGER_H_
diff --git a/chrome/browser/devtools/device/android_web_socket.cc b/chrome/browser/devtools/device/android_web_socket.cc
index 0aff039..65ef44f 100644
--- a/chrome/browser/devtools/device/android_web_socket.cc
+++ b/chrome/browser/devtools/device/android_web_socket.cc
@@ -64,8 +64,7 @@
         weak_socket_(weak_socket),
         socket_(std::move(socket)),
         encoder_(net::WebSocketEncoder::CreateClient(extensions)),
-        response_buffer_(body_head),
-        weak_factory_(this) {
+        response_buffer_(body_head) {
     thread_checker_.DetachFromThread();
   }
 
@@ -184,7 +183,7 @@
   base::ThreadChecker thread_checker_;
   DISALLOW_COPY_AND_ASSIGN(WebSocketImpl);
 
-  base::WeakPtrFactory<WebSocketImpl> weak_factory_;
+  base::WeakPtrFactory<WebSocketImpl> weak_factory_{this};
 };
 
 AndroidDeviceManager::AndroidWebSocket::AndroidWebSocket(
@@ -194,8 +193,7 @@
     Delegate* delegate)
     : device_(device),
       socket_impl_(nullptr, base::OnTaskRunnerDeleter(device->task_runner_)),
-      delegate_(delegate),
-      weak_factory_(this) {
+      delegate_(delegate) {
   DCHECK_CURRENTLY_ON(BrowserThread::UI);
   DCHECK(delegate_);
   DCHECK(device_);
diff --git a/chrome/browser/devtools/device/cast_device_provider.cc b/chrome/browser/devtools/device/cast_device_provider.cc
index d61a0aa..e0a6bed 100644
--- a/chrome/browser/devtools/device/cast_device_provider.cc
+++ b/chrome/browser/devtools/device/cast_device_provider.cc
@@ -148,7 +148,7 @@
   std::unique_ptr<ServiceDiscoveryDeviceLister> device_lister_;
 };
 
-CastDeviceProvider::CastDeviceProvider() : weak_factory_(this) {}
+CastDeviceProvider::CastDeviceProvider() {}
 
 CastDeviceProvider::~CastDeviceProvider() {}
 
diff --git a/chrome/browser/devtools/device/cast_device_provider.h b/chrome/browser/devtools/device/cast_device_provider.h
index f2d8146..17aa21e 100644
--- a/chrome/browser/devtools/device/cast_device_provider.h
+++ b/chrome/browser/devtools/device/cast_device_provider.h
@@ -57,7 +57,7 @@
   // Maps a service name to the hostname (IP address).
   std::map<std::string, std::string> service_hostname_map_;
 
-  base::WeakPtrFactory<CastDeviceProvider> weak_factory_;
+  base::WeakPtrFactory<CastDeviceProvider> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(CastDeviceProvider);
 };
diff --git a/chrome/browser/devtools/device/devtools_android_bridge.cc b/chrome/browser/devtools/device/devtools_android_bridge.cc
index 93df077..2aeaad3 100644
--- a/chrome/browser/devtools/device/devtools_android_bridge.cc
+++ b/chrome/browser/devtools/device/devtools_android_bridge.cc
@@ -150,12 +150,10 @@
   SendJsonRequest(browser->GetId(), request, base::DoNothing());
 }
 
-DevToolsAndroidBridge::DevToolsAndroidBridge(
-    Profile* profile)
+DevToolsAndroidBridge::DevToolsAndroidBridge(Profile* profile)
     : profile_(profile),
       device_manager_(AndroidDeviceManager::Create()),
-      port_forwarding_controller_(new PortForwardingController(profile)),
-      weak_factory_(this) {
+      port_forwarding_controller_(new PortForwardingController(profile)) {
   DCHECK_CURRENTLY_ON(BrowserThread::UI);
   pref_change_registrar_.Init(profile_->GetPrefs());
   pref_change_registrar_.Add(prefs::kDevToolsDiscoverUsbDevicesEnabled,
diff --git a/chrome/browser/devtools/device/devtools_android_bridge.h b/chrome/browser/devtools/device/devtools_android_bridge.h
index 9399bd4..6dede6d 100644
--- a/chrome/browser/devtools/device/devtools_android_bridge.h
+++ b/chrome/browser/devtools/device/devtools_android_bridge.h
@@ -192,7 +192,7 @@
 
   std::unique_ptr<DevToolsDeviceDiscovery> device_discovery_;
 
-  base::WeakPtrFactory<DevToolsAndroidBridge> weak_factory_;
+  base::WeakPtrFactory<DevToolsAndroidBridge> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(DevToolsAndroidBridge);
 };
diff --git a/chrome/browser/devtools/device/devtools_device_discovery.cc b/chrome/browser/devtools/device/devtools_device_discovery.cc
index 0ca19c50..101cddf5 100644
--- a/chrome/browser/devtools/device/devtools_device_discovery.cc
+++ b/chrome/browser/devtools/device/devtools_device_discovery.cc
@@ -586,8 +586,7 @@
     const DeviceListCallback& callback)
     : device_manager_(device_manager),
       callback_(callback),
-      task_scheduler_(base::Bind(&ScheduleTaskDefault)),
-      weak_factory_(this) {
+      task_scheduler_(base::Bind(&ScheduleTaskDefault)) {
   DCHECK_CURRENTLY_ON(BrowserThread::UI);
   RequestDeviceList();
 }
diff --git a/chrome/browser/devtools/device/devtools_device_discovery.h b/chrome/browser/devtools/device/devtools_device_discovery.h
index 5c8d6b1..7b97e2f 100644
--- a/chrome/browser/devtools/device/devtools_device_discovery.h
+++ b/chrome/browser/devtools/device/devtools_device_discovery.h
@@ -141,7 +141,7 @@
   AndroidDeviceManager* device_manager_;
   const DeviceListCallback callback_;
   base::Callback<void(const base::Closure&)> task_scheduler_;
-  base::WeakPtrFactory<DevToolsDeviceDiscovery> weak_factory_;
+  base::WeakPtrFactory<DevToolsDeviceDiscovery> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(DevToolsDeviceDiscovery);
 };
diff --git a/chrome/browser/devtools/device/usb/android_usb_device.cc b/chrome/browser/devtools/device/usb/android_usb_device.cc
index b38049dd..66b9c61 100644
--- a/chrome/browser/devtools/device/usb/android_usb_device.cc
+++ b/chrome/browser/devtools/device/usb/android_usb_device.cc
@@ -208,8 +208,7 @@
       android_device_info_(android_device_info),
       is_connected_(false),
       signature_sent_(false),
-      last_socket_id_(256),
-      weak_factory_(this) {
+      last_socket_id_(256) {
   DCHECK(device_ptr_);
   device_ptr_.set_connection_error_handler(
       base::BindOnce(&AndroidUsbDevice::Terminate, weak_factory_.GetWeakPtr()));
diff --git a/chrome/browser/devtools/device/usb/android_usb_device.h b/chrome/browser/devtools/device/usb/android_usb_device.h
index 815f13b8..cad570f 100644
--- a/chrome/browser/devtools/device/usb/android_usb_device.h
+++ b/chrome/browser/devtools/device/usb/android_usb_device.h
@@ -152,7 +152,7 @@
   using PendingMessages = std::vector<std::unique_ptr<AdbMessage>>;
   PendingMessages pending_messages_;
 
-  base::WeakPtrFactory<AndroidUsbDevice> weak_factory_;
+  base::WeakPtrFactory<AndroidUsbDevice> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(AndroidUsbDevice);
 };
diff --git a/chrome/browser/devtools/device/usb/android_usb_socket.cc b/chrome/browser/devtools/device/usb/android_usb_socket.cc
index d4ee11b..7f00d5c 100644
--- a/chrome/browser/devtools/device/usb/android_usb_socket.cc
+++ b/chrome/browser/devtools/device/usb/android_usb_socket.cc
@@ -28,8 +28,7 @@
       local_id_(socket_id),
       remote_id_(0),
       is_connected_(false),
-      delete_callback_(delete_callback),
-      weak_factory_(this) {}
+      delete_callback_(delete_callback) {}
 
 AndroidUsbSocket::~AndroidUsbSocket() {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
diff --git a/chrome/browser/devtools/device/usb/android_usb_socket.h b/chrome/browser/devtools/device/usb/android_usb_socket.h
index 50fcc68..e93e6e8 100644
--- a/chrome/browser/devtools/device/usb/android_usb_socket.h
+++ b/chrome/browser/devtools/device/usb/android_usb_socket.h
@@ -81,7 +81,7 @@
 
   SEQUENCE_CHECKER(sequence_checker_);
 
-  base::WeakPtrFactory<AndroidUsbSocket> weak_factory_;
+  base::WeakPtrFactory<AndroidUsbSocket> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(AndroidUsbSocket);
 };
diff --git a/chrome/browser/devtools/device/usb/usb_device_manager_helper.cc b/chrome/browser/devtools/device/usb/usb_device_manager_helper.cc
index fd87477..587b69eb 100644
--- a/chrome/browser/devtools/device/usb/usb_device_manager_helper.cc
+++ b/chrome/browser/devtools/device/usb/usb_device_manager_helper.cc
@@ -151,7 +151,7 @@
   GetInstance()->SetUsbManagerForTestingInternal(std::move(fake_usb_manager));
 }
 
-UsbDeviceManagerHelper::UsbDeviceManagerHelper() : weak_factory_(this) {}
+UsbDeviceManagerHelper::UsbDeviceManagerHelper() {}
 
 UsbDeviceManagerHelper::~UsbDeviceManagerHelper() {
   DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
diff --git a/chrome/browser/devtools/device/usb/usb_device_manager_helper.h b/chrome/browser/devtools/device/usb/usb_device_manager_helper.h
index 04c6fb4..5d7c7d4 100644
--- a/chrome/browser/devtools/device/usb/usb_device_manager_helper.h
+++ b/chrome/browser/devtools/device/usb/usb_device_manager_helper.h
@@ -74,7 +74,7 @@
 
   THREAD_CHECKER(thread_checker_);
 
-  base::WeakPtrFactory<UsbDeviceManagerHelper> weak_factory_;
+  base::WeakPtrFactory<UsbDeviceManagerHelper> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(UsbDeviceManagerHelper);
 };
diff --git a/chrome/browser/devtools/devtools_browser_context_manager.cc b/chrome/browser/devtools/devtools_browser_context_manager.cc
index d3f5253..fddd8e0 100644
--- a/chrome/browser/devtools/devtools_browser_context_manager.cc
+++ b/chrome/browser/devtools/devtools_browser_context_manager.cc
@@ -10,8 +10,7 @@
 #include "chrome/browser/ui/browser.h"
 #include "chrome/browser/ui/browser_list.h"
 
-DevToolsBrowserContextManager::DevToolsBrowserContextManager()
-    : weak_factory_(this) {}
+DevToolsBrowserContextManager::DevToolsBrowserContextManager() {}
 
 DevToolsBrowserContextManager::~DevToolsBrowserContextManager() = default;
 
diff --git a/chrome/browser/devtools/devtools_browser_context_manager.h b/chrome/browser/devtools/devtools_browser_context_manager.h
index 6a00185..cf1b24df 100644
--- a/chrome/browser/devtools/devtools_browser_context_manager.h
+++ b/chrome/browser/devtools/devtools_browser_context_manager.h
@@ -37,7 +37,7 @@
   base::flat_map<std::string, content::DevToolsManagerDelegate::DisposeCallback>
       pending_context_disposals_;
 
-  base::WeakPtrFactory<DevToolsBrowserContextManager> weak_factory_;
+  base::WeakPtrFactory<DevToolsBrowserContextManager> weak_factory_{this};
   DISALLOW_COPY_AND_ASSIGN(DevToolsBrowserContextManager);
 };
 
diff --git a/chrome/browser/devtools/devtools_eye_dropper.cc b/chrome/browser/devtools/devtools_eye_dropper.cc
index 443a47b..a59a23c 100644
--- a/chrome/browser/devtools/devtools_eye_dropper.cc
+++ b/chrome/browser/devtools/devtools_eye_dropper.cc
@@ -35,8 +35,7 @@
       callback_(callback),
       last_cursor_x_(-1),
       last_cursor_y_(-1),
-      host_(nullptr),
-      weak_factory_(this) {
+      host_(nullptr) {
   mouse_event_callback_ =
       base::Bind(&DevToolsEyeDropper::HandleMouseEvent, base::Unretained(this));
   content::RenderViewHost* rvh = web_contents->GetRenderViewHost();
diff --git a/chrome/browser/devtools/devtools_eye_dropper.h b/chrome/browser/devtools/devtools_eye_dropper.h
index 8aa5b6c..3ba7601 100644
--- a/chrome/browser/devtools/devtools_eye_dropper.h
+++ b/chrome/browser/devtools/devtools_eye_dropper.h
@@ -57,7 +57,7 @@
   content::RenderWidgetHost::MouseEventCallback mouse_event_callback_;
   content::RenderWidgetHost* host_;
   std::unique_ptr<viz::ClientFrameSinkVideoCapturer> video_capturer_;
-  base::WeakPtrFactory<DevToolsEyeDropper> weak_factory_;
+  base::WeakPtrFactory<DevToolsEyeDropper> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(DevToolsEyeDropper);
 };
diff --git a/chrome/browser/devtools/devtools_file_helper.cc b/chrome/browser/devtools/devtools_file_helper.cc
index b9a627c..546d65f 100644
--- a/chrome/browser/devtools/devtools_file_helper.cc
+++ b/chrome/browser/devtools/devtools_file_helper.cc
@@ -218,8 +218,7 @@
       profile_(profile),
       delegate_(delegate),
       file_task_runner_(
-          base::CreateSequencedTaskRunnerWithTraits({base::MayBlock()})),
-      weak_factory_(this) {
+          base::CreateSequencedTaskRunnerWithTraits({base::MayBlock()})) {
   pref_change_registrar_.Init(profile_->GetPrefs());
 }
 
diff --git a/chrome/browser/devtools/devtools_file_helper.h b/chrome/browser/devtools/devtools_file_helper.h
index 9b86959..550844e 100644
--- a/chrome/browser/devtools/devtools_file_helper.h
+++ b/chrome/browser/devtools/devtools_file_helper.h
@@ -155,7 +155,7 @@
   std::unique_ptr<DevToolsFileWatcher, DevToolsFileWatcher::Deleter>
       file_watcher_;
   scoped_refptr<base::SequencedTaskRunner> file_task_runner_;
-  base::WeakPtrFactory<DevToolsFileHelper> weak_factory_;
+  base::WeakPtrFactory<DevToolsFileHelper> weak_factory_{this};
   DISALLOW_COPY_AND_ASSIGN(DevToolsFileHelper);
 };
 
diff --git a/chrome/browser/devtools/devtools_targets_ui.cc b/chrome/browser/devtools/devtools_targets_ui.cc
index 2ad2200..b61a455 100644
--- a/chrome/browser/devtools/devtools_targets_ui.cc
+++ b/chrome/browser/devtools/devtools_targets_ui.cc
@@ -66,8 +66,7 @@
 class CancelableTimer {
  public:
   CancelableTimer(base::Closure callback, base::TimeDelta delay)
-      : callback_(callback),
-        weak_factory_(this) {
+      : callback_(callback) {
     base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
         FROM_HERE,
         base::BindOnce(&CancelableTimer::Fire, weak_factory_.GetWeakPtr()),
@@ -78,7 +77,7 @@
   void Fire() { callback_.Run(); }
 
   base::Closure callback_;
-  base::WeakPtrFactory<CancelableTimer> weak_factory_;
+  base::WeakPtrFactory<CancelableTimer> weak_factory_{this};
 };
 
 // LocalTargetsUIHandler ---------------------------------------------
@@ -103,14 +102,13 @@
 
  Profile* profile_;
  std::unique_ptr<CancelableTimer> timer_;
- base::WeakPtrFactory<LocalTargetsUIHandler> weak_factory_;
+ base::WeakPtrFactory<LocalTargetsUIHandler> weak_factory_{this};
 };
 
 LocalTargetsUIHandler::LocalTargetsUIHandler(const Callback& callback,
                                              Profile* profile)
     : DevToolsTargetsUIHandler(kTargetSourceLocal, callback),
-      profile_(profile),
-      weak_factory_(this) {
+      profile_(profile) {
   DevToolsAgentHost::AddObserver(this);
   UpdateTargets();
 }
diff --git a/chrome/browser/devtools/devtools_ui_bindings.cc b/chrome/browser/devtools/devtools_ui_bindings.cc
index dfd76071..1acc82d 100644
--- a/chrome/browser/devtools/devtools_ui_bindings.cc
+++ b/chrome/browser/devtools/devtools_ui_bindings.cc
@@ -547,8 +547,7 @@
       web_contents_(web_contents),
       delegate_(new DefaultBindingsDelegate(web_contents_)),
       devices_updates_enabled_(false),
-      frontend_loaded_(false),
-      weak_factory_(this) {
+      frontend_loaded_(false) {
   g_devtools_ui_bindings_instances.Get().push_back(this);
   frontend_contents_observer_.reset(new FrontendWebContentsObserver(this));
   web_contents_->GetMutableRendererPrefs()->can_accept_load_drops = false;
diff --git a/chrome/browser/devtools/devtools_ui_bindings.h b/chrome/browser/devtools/devtools_ui_bindings.h
index f832069..cc7e57e 100644
--- a/chrome/browser/devtools/devtools_ui_bindings.h
+++ b/chrome/browser/devtools/devtools_ui_bindings.h
@@ -254,7 +254,7 @@
   using ExtensionsAPIs = std::map<std::string, std::string>;
   ExtensionsAPIs extensions_api_;
 
-  base::WeakPtrFactory<DevToolsUIBindings> weak_factory_;
+  base::WeakPtrFactory<DevToolsUIBindings> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(DevToolsUIBindings);
 };
diff --git a/chrome/browser/devtools/global_confirm_info_bar.cc b/chrome/browser/devtools/global_confirm_info_bar.cc
index f63b4e7..106733e 100644
--- a/chrome/browser/devtools/global_confirm_info_bar.cc
+++ b/chrome/browser/devtools/global_confirm_info_bar.cc
@@ -163,8 +163,7 @@
     std::unique_ptr<ConfirmInfoBarDelegate> delegate)
     : delegate_(std::move(delegate)),
       browser_tab_strip_tracker_(this, nullptr, nullptr),
-      is_closing_(false),
-      weak_factory_(this) {
+      is_closing_(false) {
   browser_tab_strip_tracker_.Init();
 }
 
diff --git a/chrome/browser/devtools/global_confirm_info_bar.h b/chrome/browser/devtools/global_confirm_info_bar.h
index 6410931d..82afbd7 100644
--- a/chrome/browser/devtools/global_confirm_info_bar.h
+++ b/chrome/browser/devtools/global_confirm_info_bar.h
@@ -62,7 +62,7 @@
   // down.
   bool is_closing_;
 
-  base::WeakPtrFactory<GlobalConfirmInfoBar> weak_factory_;
+  base::WeakPtrFactory<GlobalConfirmInfoBar> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(GlobalConfirmInfoBar);
 };
diff --git a/chrome/browser/devtools/protocol/cast_handler.cc b/chrome/browser/devtools/protocol/cast_handler.cc
index 99df84c..a437d4b 100644
--- a/chrome/browser/devtools/protocol/cast_handler.cc
+++ b/chrome/browser/devtools/protocol/cast_handler.cc
@@ -150,9 +150,7 @@
 }
 
 CastHandler::CastHandler(content::WebContents* web_contents)
-    : web_contents_(web_contents),
-      router_(GetMediaRouter(web_contents)),
-      weak_factory_(this) {}
+    : web_contents_(web_contents), router_(GetMediaRouter(web_contents)) {}
 
 void CastHandler::EnsureInitialized() {
   if (query_result_manager_)
diff --git a/chrome/browser/devtools/protocol/cast_handler.h b/chrome/browser/devtools/protocol/cast_handler.h
index 7bba888..cb14c6fa0 100644
--- a/chrome/browser/devtools/protocol/cast_handler.h
+++ b/chrome/browser/devtools/protocol/cast_handler.h
@@ -99,7 +99,7 @@
 
   std::unique_ptr<protocol::Cast::Frontend> frontend_;
 
-  base::WeakPtrFactory<CastHandler> weak_factory_;
+  base::WeakPtrFactory<CastHandler> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(CastHandler);
 };
diff --git a/chrome/browser/download/chrome_download_manager_delegate.cc b/chrome/browser/download/chrome_download_manager_delegate.cc
index c33a121..9d9c053 100644
--- a/chrome/browser/download/chrome_download_manager_delegate.cc
+++ b/chrome/browser/download/chrome_download_manager_delegate.cc
@@ -312,8 +312,7 @@
       disk_access_task_runner_(base::CreateSequencedTaskRunnerWithTraits(
           {base::MayBlock(), base::TaskPriority::BEST_EFFORT,
            base::TaskShutdownBehavior::CONTINUE_ON_SHUTDOWN})),
-      is_file_picker_showing_(false),
-      weak_ptr_factory_(this) {
+      is_file_picker_showing_(false) {
 #if defined(OS_ANDROID)
   location_dialog_bridge_.reset(new DownloadLocationDialogBridgeImpl);
 #endif
diff --git a/chrome/browser/download/chrome_download_manager_delegate.h b/chrome/browser/download/chrome_download_manager_delegate.h
index e203c50..35097f9f 100644
--- a/chrome/browser/download/chrome_download_manager_delegate.h
+++ b/chrome/browser/download/chrome_download_manager_delegate.h
@@ -296,7 +296,7 @@
 
   content::NotificationRegistrar registrar_;
 
-  base::WeakPtrFactory<ChromeDownloadManagerDelegate> weak_ptr_factory_;
+  base::WeakPtrFactory<ChromeDownloadManagerDelegate> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(ChromeDownloadManagerDelegate);
 };
diff --git a/chrome/browser/download/deferred_client_wrapper.cc b/chrome/browser/download/deferred_client_wrapper.cc
index d47968e..53c9f21 100644
--- a/chrome/browser/download/deferred_client_wrapper.cc
+++ b/chrome/browser/download/deferred_client_wrapper.cc
@@ -22,9 +22,7 @@
 DeferredClientWrapper::DeferredClientWrapper(DownloadClient client_id,
                                              ClientFactory client_factory,
                                              SimpleFactoryKey* key)
-    : client_factory_(std::move(client_factory)),
-      key_(key),
-      weak_ptr_factory_(this) {
+    : client_factory_(std::move(client_factory)), key_(key) {
 #if defined(OS_ANDROID)
   client_id_ = client_id;
   full_browser_requested_ = false;
diff --git a/chrome/browser/download/deferred_client_wrapper.h b/chrome/browser/download/deferred_client_wrapper.h
index 83f40c8..bc599b5 100644
--- a/chrome/browser/download/deferred_client_wrapper.h
+++ b/chrome/browser/download/deferred_client_wrapper.h
@@ -95,7 +95,7 @@
   void LaunchFullBrowser();
 #endif
 
-  base::WeakPtrFactory<DeferredClientWrapper> weak_ptr_factory_;
+  base::WeakPtrFactory<DeferredClientWrapper> weak_ptr_factory_{this};
 };
 
 }  // namespace download
diff --git a/chrome/browser/download/download_history.cc b/chrome/browser/download/download_history.cc
index 342ae98..8dd55c4 100644
--- a/chrome/browser/download/download_history.cc
+++ b/chrome/browser/download/download_history.cc
@@ -248,8 +248,7 @@
       history_(std::move(history)),
       loading_id_(download::DownloadItem::kInvalidId),
       history_size_(0),
-      initial_history_query_complete_(false),
-      weak_ptr_factory_(this) {
+      initial_history_query_complete_(false) {
   DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
   download::SimpleDownloadManager::DownloadVector items;
   notifier_.GetManager()->GetAllDownloads(&items);
diff --git a/chrome/browser/download/download_history.h b/chrome/browser/download/download_history.h
index c9162e0..8806235b 100644
--- a/chrome/browser/download/download_history.h
+++ b/chrome/browser/download/download_history.h
@@ -158,7 +158,7 @@
 
   base::ObserverList<Observer>::Unchecked observers_;
 
-  base::WeakPtrFactory<DownloadHistory> weak_ptr_factory_;
+  base::WeakPtrFactory<DownloadHistory> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(DownloadHistory);
 };
diff --git a/chrome/browser/download/download_offline_content_provider.cc b/chrome/browser/download/download_offline_content_provider.cc
index 1c9f46d7..c349a43 100644
--- a/chrome/browser/download/download_offline_content_provider.cc
+++ b/chrome/browser/download/download_offline_content_provider.cc
@@ -128,8 +128,7 @@
     : aggregator_(aggregator),
       name_space_(name_space),
       manager_(nullptr),
-      checked_for_externally_removed_downloads_(false),
-      weak_ptr_factory_(this) {
+      checked_for_externally_removed_downloads_(false) {
   aggregator_->RegisterProvider(name_space_, this);
 
 #if defined(OS_ANDROID)
diff --git a/chrome/browser/download/download_offline_content_provider.h b/chrome/browser/download/download_offline_content_provider.h
index 68604cf..58834fa 100644
--- a/chrome/browser/download/download_offline_content_provider.h
+++ b/chrome/browser/download/download_offline_content_provider.h
@@ -113,7 +113,7 @@
       all_download_observer_;
   bool checked_for_externally_removed_downloads_;
 
-  base::WeakPtrFactory<DownloadOfflineContentProvider> weak_ptr_factory_;
+  base::WeakPtrFactory<DownloadOfflineContentProvider> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(DownloadOfflineContentProvider);
 };
diff --git a/chrome/browser/download/download_request_limiter.cc b/chrome/browser/download/download_request_limiter.cc
index c34eddc..92558ef 100644
--- a/chrome/browser/download/download_request_limiter.cc
+++ b/chrome/browser/download/download_request_limiter.cc
@@ -106,8 +106,7 @@
       origin_(contents->GetVisibleURL()),
       download_count_(0),
       download_seen_(false),
-      observer_(this),
-      factory_(this) {
+      observer_(this) {
   observer_.Add(GetContentSettings(contents));
   NavigationEntry* last_entry =
       contents->GetController().GetLastCommittedEntry();
@@ -302,8 +301,7 @@
       ui_status_(DownloadRequestLimiter::DOWNLOAD_UI_DEFAULT),
       download_count_(0),
       download_seen_(false),
-      observer_(this),
-      factory_(this) {}
+      observer_(this) {}
 
 bool DownloadRequestLimiter::TabDownloadState::is_showing_prompt() const {
   return factory_.HasWeakPtrs();
@@ -465,7 +463,7 @@
 
 // DownloadRequestLimiter ------------------------------------------------------
 
-DownloadRequestLimiter::DownloadRequestLimiter() : factory_(this) {}
+DownloadRequestLimiter::DownloadRequestLimiter() {}
 
 DownloadRequestLimiter::~DownloadRequestLimiter() {
   // All the tabs should have closed before us, which sends notification and
diff --git a/chrome/browser/download/download_request_limiter.h b/chrome/browser/download/download_request_limiter.h
index 35f8f2f..ffbb4c6 100644
--- a/chrome/browser/download/download_request_limiter.h
+++ b/chrome/browser/download/download_request_limiter.h
@@ -219,7 +219,8 @@
     // infobar.  User responses to the throttling prompt will be returned
     // through this channel, and it can be revoked if the user prompt result
     // becomes moot.
-    base::WeakPtrFactory<DownloadRequestLimiter::TabDownloadState> factory_;
+    base::WeakPtrFactory<DownloadRequestLimiter::TabDownloadState> factory_{
+        this};
 
     DISALLOW_COPY_AND_ASSIGN(TabDownloadState);
   };
@@ -321,7 +322,7 @@
 
   // Weak ptr factory used when |CanDownload| asks the delegate asynchronously
   // about the download.
-  base::WeakPtrFactory<DownloadRequestLimiter> factory_;
+  base::WeakPtrFactory<DownloadRequestLimiter> factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(DownloadRequestLimiter);
 };
diff --git a/chrome/browser/download/download_shelf.cc b/chrome/browser/download/download_shelf.cc
index b8bb1b0b..9a87e3f 100644
--- a/chrome/browser/download/download_shelf.cc
+++ b/chrome/browser/download/download_shelf.cc
@@ -107,10 +107,7 @@
 }  // namespace
 
 DownloadShelf::DownloadShelf()
-    : should_show_on_unhide_(false),
-      is_hidden_(false),
-      weak_ptr_factory_(this) {
-}
+    : should_show_on_unhide_(false), is_hidden_(false) {}
 
 DownloadShelf::~DownloadShelf() {}
 
diff --git a/chrome/browser/download/download_shelf.h b/chrome/browser/download/download_shelf.h
index 33528535..95ad5e9 100644
--- a/chrome/browser/download/download_shelf.h
+++ b/chrome/browser/download/download_shelf.h
@@ -136,7 +136,7 @@
 
   bool should_show_on_unhide_;
   bool is_hidden_;
-  base::WeakPtrFactory<DownloadShelf> weak_ptr_factory_;
+  base::WeakPtrFactory<DownloadShelf> weak_ptr_factory_{this};
 };
 
 #endif  // CHROME_BROWSER_DOWNLOAD_DOWNLOAD_SHELF_H_
diff --git a/chrome/browser/download/download_target_determiner.cc b/chrome/browser/download/download_target_determiner.cc
index 4c26c33..170901f 100644
--- a/chrome/browser/download/download_target_determiner.cc
+++ b/chrome/browser/download/download_target_determiner.cc
@@ -112,8 +112,7 @@
                      !initial_virtual_path.empty()),
       download_prefs_(download_prefs),
       delegate_(delegate),
-      completion_callback_(callback),
-      weak_ptr_factory_(this) {
+      completion_callback_(callback) {
   DCHECK_CURRENTLY_ON(BrowserThread::UI);
   DCHECK(download_);
   DCHECK(delegate);
diff --git a/chrome/browser/download/download_target_determiner.h b/chrome/browser/download/download_target_determiner.h
index ba41b15f..d1d895a 100644
--- a/chrome/browser/download/download_target_determiner.h
+++ b/chrome/browser/download/download_target_determiner.h
@@ -351,7 +351,7 @@
   CompletionCallback completion_callback_;
   base::CancelableTaskTracker history_tracker_;
 
-  base::WeakPtrFactory<DownloadTargetDeterminer> weak_ptr_factory_;
+  base::WeakPtrFactory<DownloadTargetDeterminer> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(DownloadTargetDeterminer);
 };
diff --git a/chrome/browser/download/download_task_scheduler_impl.cc b/chrome/browser/download/download_task_scheduler_impl.cc
index 94d64e1..6097916e 100644
--- a/chrome/browser/download/download_task_scheduler_impl.cc
+++ b/chrome/browser/download/download_task_scheduler_impl.cc
@@ -15,7 +15,7 @@
 #include "components/download/public/background_service/download_service.h"
 
 DownloadTaskSchedulerImpl::DownloadTaskSchedulerImpl(SimpleFactoryKey* key)
-    : key_(key), weak_factory_(this) {}
+    : key_(key) {}
 
 DownloadTaskSchedulerImpl::~DownloadTaskSchedulerImpl() = default;
 
diff --git a/chrome/browser/download/download_task_scheduler_impl.h b/chrome/browser/download/download_task_scheduler_impl.h
index 6e2e1d0..32de155 100644
--- a/chrome/browser/download/download_task_scheduler_impl.h
+++ b/chrome/browser/download/download_task_scheduler_impl.h
@@ -42,7 +42,7 @@
   std::map<download::DownloadTaskType, base::CancelableClosure>
       scheduled_tasks_;
 
-  base::WeakPtrFactory<DownloadTaskSchedulerImpl> weak_factory_;
+  base::WeakPtrFactory<DownloadTaskSchedulerImpl> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(DownloadTaskSchedulerImpl);
 };
diff --git a/chrome/browser/download/download_test_file_activity_observer.cc b/chrome/browser/download/download_test_file_activity_observer.cc
index f79f22a3..d7b67fd 100644
--- a/chrome/browser/download/download_test_file_activity_observer.cc
+++ b/chrome/browser/download/download_test_file_activity_observer.cc
@@ -28,8 +28,7 @@
   explicit MockDownloadManagerDelegate(Profile* profile)
       : ChromeDownloadManagerDelegate(profile),
         file_chooser_enabled_(false),
-        file_chooser_displayed_(false),
-        weak_ptr_factory_(this) {
+        file_chooser_displayed_(false) {
     if (!profile->IsOffTheRecord())
       GetDownloadIdReceiverCallback().Run(download::DownloadItem::kInvalidId +
                                           1);
@@ -73,7 +72,7 @@
  private:
   bool file_chooser_enabled_;
   bool file_chooser_displayed_;
-  base::WeakPtrFactory<MockDownloadManagerDelegate> weak_ptr_factory_;
+  base::WeakPtrFactory<MockDownloadManagerDelegate> weak_ptr_factory_{this};
 };
 
 DownloadTestFileActivityObserver::DownloadTestFileActivityObserver(
diff --git a/chrome/browser/download/image_thumbnail_request.cc b/chrome/browser/download/image_thumbnail_request.cc
index c1318f3..037d69a 100644
--- a/chrome/browser/download/image_thumbnail_request.cc
+++ b/chrome/browser/download/image_thumbnail_request.cc
@@ -69,9 +69,7 @@
 ImageThumbnailRequest::ImageThumbnailRequest(
     int icon_size,
     base::OnceCallback<void(const SkBitmap&)> callback)
-    : icon_size_(icon_size),
-      callback_(std::move(callback)),
-      weak_ptr_factory_(this) {
+    : icon_size_(icon_size), callback_(std::move(callback)) {
   DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
 }
 
diff --git a/chrome/browser/download/image_thumbnail_request.h b/chrome/browser/download/image_thumbnail_request.h
index 7febd12..4ff4029 100644
--- a/chrome/browser/download/image_thumbnail_request.h
+++ b/chrome/browser/download/image_thumbnail_request.h
@@ -37,7 +37,7 @@
 
   const int icon_size_;
   base::OnceCallback<void(const SkBitmap&)> callback_;
-  base::WeakPtrFactory<ImageThumbnailRequest> weak_ptr_factory_;
+  base::WeakPtrFactory<ImageThumbnailRequest> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(ImageThumbnailRequest);
 };
diff --git a/chrome/browser/engagement/site_engagement_service.cc b/chrome/browser/engagement/site_engagement_service.cc
index 57ea702..63d96eb 100644
--- a/chrome/browser/engagement/site_engagement_service.cc
+++ b/chrome/browser/engagement/site_engagement_service.cc
@@ -347,7 +347,7 @@
 
 SiteEngagementService::SiteEngagementService(Profile* profile,
                                              base::Clock* clock)
-    : profile_(profile), clock_(clock), weak_factory_(this) {
+    : profile_(profile), clock_(clock) {
   // May be null in tests.
   history::HistoryService* history = HistoryServiceFactory::GetForProfile(
       profile, ServiceAccessType::IMPLICIT_ACCESS);
diff --git a/chrome/browser/engagement/site_engagement_service.h b/chrome/browser/engagement/site_engagement_service.h
index f8eea52..5b78b79 100644
--- a/chrome/browser/engagement/site_engagement_service.h
+++ b/chrome/browser/engagement/site_engagement_service.h
@@ -341,7 +341,7 @@
   // event, each observer's OnEngagementEvent method will be called.
   base::ObserverList<SiteEngagementObserver>::Unchecked observer_list_;
 
-  base::WeakPtrFactory<SiteEngagementService> weak_factory_;
+  base::WeakPtrFactory<SiteEngagementService> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(SiteEngagementService);
 };
diff --git a/chrome/browser/enterprise_reporting/profile_report_generator.cc b/chrome/browser/enterprise_reporting/profile_report_generator.cc
index 209b61b0..5236551 100644
--- a/chrome/browser/enterprise_reporting/profile_report_generator.cc
+++ b/chrome/browser/enterprise_reporting/profile_report_generator.cc
@@ -19,7 +19,7 @@
 
 namespace enterprise_reporting {
 
-ProfileReportGenerator::ProfileReportGenerator() : weak_ptr_factory_(this) {}
+ProfileReportGenerator::ProfileReportGenerator() {}
 
 ProfileReportGenerator::~ProfileReportGenerator() = default;
 
diff --git a/chrome/browser/enterprise_reporting/profile_report_generator.h b/chrome/browser/enterprise_reporting/profile_report_generator.h
index 1e209f7..3f50659d 100644
--- a/chrome/browser/enterprise_reporting/profile_report_generator.h
+++ b/chrome/browser/enterprise_reporting/profile_report_generator.h
@@ -70,7 +70,7 @@
 
   std::unique_ptr<em::ChromeUserProfileInfo> report_ = nullptr;
 
-  base::WeakPtrFactory<ProfileReportGenerator> weak_ptr_factory_;
+  base::WeakPtrFactory<ProfileReportGenerator> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(ProfileReportGenerator);
 };
diff --git a/chrome/browser/enterprise_reporting/report_uploader.cc b/chrome/browser/enterprise_reporting/report_uploader.cc
index 016071e..72c6ef3 100644
--- a/chrome/browser/enterprise_reporting/report_uploader.cc
+++ b/chrome/browser/enterprise_reporting/report_uploader.cc
@@ -31,8 +31,7 @@
                                int maximum_number_of_retries)
     : client_(client),
       backoff_entry_(&kDefaultReportUploadBackoffPolicy),
-      maximum_number_of_retries_(maximum_number_of_retries),
-      weak_ptr_factory_(this) {}
+      maximum_number_of_retries_(maximum_number_of_retries) {}
 ReportUploader::~ReportUploader() = default;
 
 void ReportUploader::SetRequestAndUpload(
diff --git a/chrome/browser/enterprise_reporting/report_uploader.h b/chrome/browser/enterprise_reporting/report_uploader.h
index 49a473d..3ec75e8 100644
--- a/chrome/browser/enterprise_reporting/report_uploader.h
+++ b/chrome/browser/enterprise_reporting/report_uploader.h
@@ -87,7 +87,7 @@
   base::OneShotTimer backoff_request_timer_;
   const int maximum_number_of_retries_;
 
-  base::WeakPtrFactory<ReportUploader> weak_ptr_factory_;
+  base::WeakPtrFactory<ReportUploader> weak_ptr_factory_{this};
   DISALLOW_COPY_AND_ASSIGN(ReportUploader);
 };
 
diff --git a/chrome/browser/extensions/activity_log/activity_log.cc b/chrome/browser/extensions/activity_log/activity_log.cc
index dab609b..3eebfcb 100644
--- a/chrome/browser/extensions/activity_log/activity_log.cc
+++ b/chrome/browser/extensions/activity_log/activity_log.cc
@@ -564,8 +564,7 @@
       active_consumers_(0),
       cached_consumer_count_(0),
       has_listeners_(false),
-      is_active_(false),
-      weak_factory_(this) {
+      is_active_(false) {
   SetActivityHandlers();
 
   // This controls whether logging statements are printed & which policy is set.
diff --git a/chrome/browser/extensions/activity_log/activity_log.h b/chrome/browser/extensions/activity_log/activity_log.h
index a25c76a..0f876082 100644
--- a/chrome/browser/extensions/activity_log/activity_log.h
+++ b/chrome/browser/extensions/activity_log/activity_log.h
@@ -242,7 +242,7 @@
 
   content::NotificationRegistrar registrar_;
 
-  base::WeakPtrFactory<ActivityLog> weak_factory_;
+  base::WeakPtrFactory<ActivityLog> weak_factory_{this};
 
   FRIEND_TEST_ALL_PREFIXES(ActivityLogApiTest, TriggerEvent);
   FRIEND_TEST_ALL_PREFIXES(ActivityLogEnabledTest, AppAndCommandLine);
diff --git a/chrome/browser/extensions/api/developer_private/developer_private_api.cc b/chrome/browser/extensions/api/developer_private/developer_private_api.cc
index 96794e0..a923c4d2 100644
--- a/chrome/browser/extensions/api/developer_private/developer_private_api.cc
+++ b/chrome/browser/extensions/api/developer_private/developer_private_api.cc
@@ -351,7 +351,7 @@
 }
 
 DeveloperPrivateAPI::DeveloperPrivateAPI(content::BrowserContext* context)
-    : profile_(Profile::FromBrowserContext(context)), weak_factory_(this) {
+    : profile_(Profile::FromBrowserContext(context)) {
   RegisterNotifications();
 }
 
@@ -365,8 +365,7 @@
       extension_management_observer_(this),
       command_service_observer_(this),
       profile_(profile),
-      event_router_(EventRouter::Get(profile_)),
-      weak_factory_(this) {
+      event_router_(EventRouter::Get(profile_)) {
   extension_registry_observer_.Add(ExtensionRegistry::Get(profile_));
   error_console_observer_.Add(ErrorConsole::Get(profile));
   process_manager_observer_.Add(ProcessManager::Get(profile));
diff --git a/chrome/browser/extensions/api/developer_private/developer_private_api.h b/chrome/browser/extensions/api/developer_private/developer_private_api.h
index 9785abc33..4113d20 100644
--- a/chrome/browser/extensions/api/developer_private/developer_private_api.h
+++ b/chrome/browser/extensions/api/developer_private/developer_private_api.h
@@ -175,7 +175,7 @@
 
   content::NotificationRegistrar notification_registrar_;
 
-  base::WeakPtrFactory<DeveloperPrivateEventRouter> weak_factory_;
+  base::WeakPtrFactory<DeveloperPrivateEventRouter> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(DeveloperPrivateEventRouter);
 };
@@ -283,7 +283,7 @@
   // Created lazily upon OnListenerAdded.
   std::unique_ptr<DeveloperPrivateEventRouter> developer_private_event_router_;
 
-  base::WeakPtrFactory<DeveloperPrivateAPI> weak_factory_;
+  base::WeakPtrFactory<DeveloperPrivateAPI> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(DeveloperPrivateAPI);
 };
diff --git a/chrome/browser/extensions/api/developer_private/extension_info_generator.cc b/chrome/browser/extensions/api/developer_private/extension_info_generator.cc
index c885dc1a..e083fc2 100644
--- a/chrome/browser/extensions/api/developer_private/extension_info_generator.cc
+++ b/chrome/browser/extensions/api/developer_private/extension_info_generator.cc
@@ -398,9 +398,7 @@
       warning_service_(WarningService::Get(browser_context)),
       error_console_(ErrorConsole::Get(browser_context)),
       image_loader_(ImageLoader::Get(browser_context)),
-      pending_image_loads_(0u),
-      weak_factory_(this) {
-}
+      pending_image_loads_(0u) {}
 
 ExtensionInfoGenerator::~ExtensionInfoGenerator() {
 }
diff --git a/chrome/browser/extensions/api/developer_private/extension_info_generator.h b/chrome/browser/extensions/api/developer_private/extension_info_generator.h
index 84628f8..43f14e8 100644
--- a/chrome/browser/extensions/api/developer_private/extension_info_generator.h
+++ b/chrome/browser/extensions/api/developer_private/extension_info_generator.h
@@ -97,7 +97,7 @@
   // The callback to run once all infos have been created.
   ExtensionInfosCallback callback_;
 
-  base::WeakPtrFactory<ExtensionInfoGenerator> weak_factory_;
+  base::WeakPtrFactory<ExtensionInfoGenerator> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(ExtensionInfoGenerator);
 };
diff --git a/chrome/browser/extensions/api/identity/identity_get_auth_token_function.cc b/chrome/browser/extensions/api/identity/identity_get_auth_token_function.cc
index b3bf908..59bf1b8 100644
--- a/chrome/browser/extensions/api/identity/identity_get_auth_token_function.cc
+++ b/chrome/browser/extensions/api/identity/identity_get_auth_token_function.cc
@@ -78,8 +78,7 @@
       token_key_(/*extension_id=*/std::string(),
                  /*account_id=*/std::string(),
                  /*scopes=*/std::set<std::string>()),
-      scoped_identity_manager_observer_(this),
-      weak_ptr_factory_(this) {
+      scoped_identity_manager_observer_(this) {
 }
 
 IdentityGetAuthTokenFunction::~IdentityGetAuthTokenFunction() {
diff --git a/chrome/browser/extensions/api/identity/identity_get_auth_token_function.h b/chrome/browser/extensions/api/identity/identity_get_auth_token_function.h
index eea95fe..1edfd38 100644
--- a/chrome/browser/extensions/api/identity/identity_get_auth_token_function.h
+++ b/chrome/browser/extensions/api/identity/identity_get_auth_token_function.h
@@ -232,7 +232,7 @@
   AccountListeningMode account_listening_mode_ =
       AccountListeningMode::kNotListening;
 
-  base::WeakPtrFactory<IdentityGetAuthTokenFunction> weak_ptr_factory_;
+  base::WeakPtrFactory<IdentityGetAuthTokenFunction> weak_ptr_factory_{this};
 };
 
 }  // namespace extensions
diff --git a/chrome/browser/extensions/api/image_writer_private/operation_manager.cc b/chrome/browser/extensions/api/image_writer_private/operation_manager.cc
index 82fe44e4..3f5d95f 100644
--- a/chrome/browser/extensions/api/image_writer_private/operation_manager.cc
+++ b/chrome/browser/extensions/api/image_writer_private/operation_manager.cc
@@ -39,9 +39,7 @@
 using content::BrowserThread;
 
 OperationManager::OperationManager(content::BrowserContext* context)
-    : browser_context_(context),
-      extension_registry_observer_(this),
-      weak_factory_(this) {
+    : browser_context_(context), extension_registry_observer_(this) {
   extension_registry_observer_.Add(ExtensionRegistry::Get(browser_context_));
   Profile* profile = Profile::FromBrowserContext(browser_context_);
   registrar_.Add(this,
diff --git a/chrome/browser/extensions/api/image_writer_private/operation_manager.h b/chrome/browser/extensions/api/image_writer_private/operation_manager.h
index 48abcac..e9c88e3 100644
--- a/chrome/browser/extensions/api/image_writer_private/operation_manager.h
+++ b/chrome/browser/extensions/api/image_writer_private/operation_manager.h
@@ -122,7 +122,7 @@
   ScopedObserver<ExtensionRegistry, ExtensionRegistryObserver>
       extension_registry_observer_;
 
-  base::WeakPtrFactory<OperationManager> weak_factory_;
+  base::WeakPtrFactory<OperationManager> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(OperationManager);
 };
diff --git a/chrome/browser/extensions/api/management/chrome_management_api_delegate.cc b/chrome/browser/extensions/api/management/chrome_management_api_delegate.cc
index 3807fb8..eb9da3e 100644
--- a/chrome/browser/extensions/api/management/chrome_management_api_delegate.cc
+++ b/chrome/browser/extensions/api/management/chrome_management_api_delegate.cc
@@ -70,8 +70,7 @@
       const extensions::Extension* extension,
       const base::Callback<void(bool)>& callback)
       : install_prompt_(new ExtensionInstallPrompt(web_contents)),
-        callback_(callback),
-        weak_factory_(this) {
+        callback_(callback) {
     ExtensionInstallPrompt::PromptType type =
         ExtensionInstallPrompt::GetReEnablePromptTypeForExtension(
             browser_context, extension);
@@ -97,7 +96,7 @@
   base::Callback<void(bool)> callback_;
 
   base::WeakPtrFactory<ManagementSetEnabledFunctionInstallPromptDelegate>
-      weak_factory_;
+      weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(ManagementSetEnabledFunctionInstallPromptDelegate);
 };
diff --git a/chrome/browser/extensions/api/messaging/incognito_connectability.cc b/chrome/browser/extensions/api/messaging/incognito_connectability.cc
index 939a0b30..b0058cb 100644
--- a/chrome/browser/extensions/api/messaging/incognito_connectability.cc
+++ b/chrome/browser/extensions/api/messaging/incognito_connectability.cc
@@ -47,8 +47,7 @@
 }
 
 IncognitoConnectability::IncognitoConnectability(
-    content::BrowserContext* context)
-    : weak_factory_(this) {
+    content::BrowserContext* context) {
   CHECK(context->IsOffTheRecord());
 }
 
diff --git a/chrome/browser/extensions/api/messaging/incognito_connectability.h b/chrome/browser/extensions/api/messaging/incognito_connectability.h
index 2984f8730..f0fe400 100644
--- a/chrome/browser/extensions/api/messaging/incognito_connectability.h
+++ b/chrome/browser/extensions/api/messaging/incognito_connectability.h
@@ -126,7 +126,7 @@
   // the query is resolved.
   PendingOriginMap pending_origins_;
 
-  base::WeakPtrFactory<IncognitoConnectability> weak_factory_;
+  base::WeakPtrFactory<IncognitoConnectability> weak_factory_{this};
 };
 
 }  // namespace extensions
diff --git a/chrome/browser/extensions/api/messaging/native_message_port.cc b/chrome/browser/extensions/api/messaging/native_message_port.cc
index 03089a9..c5efa12 100644
--- a/chrome/browser/extensions/api/messaging/native_message_port.cc
+++ b/chrome/browser/extensions/api/messaging/native_message_port.cc
@@ -89,8 +89,7 @@
     std::unique_ptr<NativeMessageHost> native_message_host)
     : weak_channel_delegate_(channel_delegate),
       host_task_runner_(native_message_host->task_runner()),
-      port_id_(port_id),
-      weak_factory_(this) {
+      port_id_(port_id) {
   core_.reset(new Core(std::move(native_message_host),
                        weak_factory_.GetWeakPtr(),
                        base::ThreadTaskRunnerHandle::Get()));
diff --git a/chrome/browser/extensions/api/messaging/native_message_port.h b/chrome/browser/extensions/api/messaging/native_message_port.h
index 1e7684b..f087bd07 100644
--- a/chrome/browser/extensions/api/messaging/native_message_port.h
+++ b/chrome/browser/extensions/api/messaging/native_message_port.h
@@ -42,7 +42,7 @@
   const PortId port_id_;
   std::unique_ptr<Core> core_;
 
-  base::WeakPtrFactory<NativeMessagePort> weak_factory_;
+  base::WeakPtrFactory<NativeMessagePort> weak_factory_{this};
 };
 
 }  // namespace extensions
diff --git a/chrome/browser/extensions/api/messaging/native_message_process_host.cc b/chrome/browser/extensions/api/messaging/native_message_process_host.cc
index c7dfc4d..b6e5a3e 100644
--- a/chrome/browser/extensions/api/messaging/native_message_process_host.cc
+++ b/chrome/browser/extensions/api/messaging/native_message_process_host.cc
@@ -68,8 +68,7 @@
       read_file_(-1),
 #endif
       read_pending_(false),
-      write_pending_(false),
-      weak_factory_(this) {
+      write_pending_(false) {
   DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
 
   task_runner_ = base::CreateSingleThreadTaskRunnerWithTraits(
diff --git a/chrome/browser/extensions/api/messaging/native_message_process_host.h b/chrome/browser/extensions/api/messaging/native_message_process_host.h
index b735571..1fb358f 100644
--- a/chrome/browser/extensions/api/messaging/native_message_process_host.h
+++ b/chrome/browser/extensions/api/messaging/native_message_process_host.h
@@ -134,7 +134,7 @@
 
   scoped_refptr<base::SingleThreadTaskRunner> task_runner_;
 
-  base::WeakPtrFactory<NativeMessageProcessHost> weak_factory_;
+  base::WeakPtrFactory<NativeMessageProcessHost> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(NativeMessageProcessHost);
 };
diff --git a/chrome/browser/extensions/api/storage/managed_value_store_cache.cc b/chrome/browser/extensions/api/storage/managed_value_store_cache.cc
index 417d22e..ef8acf1 100644
--- a/chrome/browser/extensions/api/storage/managed_value_store_cache.cc
+++ b/chrome/browser/extensions/api/storage/managed_value_store_cache.cc
@@ -101,7 +101,7 @@
   ScopedObserver<ExtensionRegistry, ExtensionRegistryObserver>
       extension_registry_observer_;
   policy::SchemaRegistry* schema_registry_;
-  base::WeakPtrFactory<ExtensionTracker> weak_factory_;
+  base::WeakPtrFactory<ExtensionTracker> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(ExtensionTracker);
 };
@@ -112,8 +112,7 @@
     : profile_(profile),
       policy_domain_(policy_domain),
       extension_registry_observer_(this),
-      schema_registry_(profile->GetPolicySchemaRegistryService()->registry()),
-      weak_factory_(this) {
+      schema_registry_(profile->GetPolicySchemaRegistryService()->registry()) {
   extension_registry_observer_.Add(ExtensionRegistry::Get(profile_));
   // Load schemas when the extension system is ready. It might be ready now.
   ExtensionSystem::Get(profile_)->ready().Post(
diff --git a/chrome/browser/extensions/api/storage/sync_value_store_cache.cc b/chrome/browser/extensions/api/storage/sync_value_store_cache.cc
index f23382b..a764287 100644
--- a/chrome/browser/extensions/api/storage/sync_value_store_cache.cc
+++ b/chrome/browser/extensions/api/storage/sync_value_store_cache.cc
@@ -39,7 +39,7 @@
     scoped_refptr<ValueStoreFactory> factory,
     scoped_refptr<SettingsObserverList> observers,
     const base::FilePath& profile_path)
-    : initialized_(false), weak_ptr_factory_(this) {
+    : initialized_(false) {
   DCHECK_CURRENTLY_ON(BrowserThread::UI);
 
   // This post is safe since the destructor can only be invoked from the
diff --git a/chrome/browser/extensions/api/storage/sync_value_store_cache.h b/chrome/browser/extensions/api/storage/sync_value_store_cache.h
index 39c0dab..1e4225c 100644
--- a/chrome/browser/extensions/api/storage/sync_value_store_cache.h
+++ b/chrome/browser/extensions/api/storage/sync_value_store_cache.h
@@ -55,7 +55,7 @@
   bool initialized_;
   std::unique_ptr<SyncStorageBackend> app_backend_;
   std::unique_ptr<SyncStorageBackend> extension_backend_;
-  base::WeakPtrFactory<SyncValueStoreCache> weak_ptr_factory_;
+  base::WeakPtrFactory<SyncValueStoreCache> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(SyncValueStoreCache);
 };
diff --git a/chrome/browser/extensions/app_data_migrator.cc b/chrome/browser/extensions/app_data_migrator.cc
index c3798ff..e376b07c 100644
--- a/chrome/browser/extensions/app_data_migrator.cc
+++ b/chrome/browser/extensions/app_data_migrator.cc
@@ -138,8 +138,7 @@
 namespace extensions {
 
 AppDataMigrator::AppDataMigrator(Profile* profile, ExtensionRegistry* registry)
-    : profile_(profile), registry_(registry), weak_factory_(this) {
-}
+    : profile_(profile), registry_(registry) {}
 
 AppDataMigrator::~AppDataMigrator() {
 }
diff --git a/chrome/browser/extensions/app_data_migrator.h b/chrome/browser/extensions/app_data_migrator.h
index 55d2989..b82cd96 100644
--- a/chrome/browser/extensions/app_data_migrator.h
+++ b/chrome/browser/extensions/app_data_migrator.h
@@ -32,7 +32,7 @@
  private:
   Profile* profile_;
   ExtensionRegistry* registry_;
-  base::WeakPtrFactory<AppDataMigrator> weak_factory_;
+  base::WeakPtrFactory<AppDataMigrator> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(AppDataMigrator);
 };
diff --git a/chrome/browser/extensions/blacklist_check.cc b/chrome/browser/extensions/blacklist_check.cc
index cf55f8c..a3ec2250 100644
--- a/chrome/browser/extensions/blacklist_check.cc
+++ b/chrome/browser/extensions/blacklist_check.cc
@@ -12,7 +12,7 @@
 
 BlacklistCheck::BlacklistCheck(Blacklist* blacklist,
                                scoped_refptr<const Extension> extension)
-    : PreloadCheck(extension), blacklist_(blacklist), weak_ptr_factory_(this) {}
+    : PreloadCheck(extension), blacklist_(blacklist) {}
 
 BlacklistCheck::~BlacklistCheck() {}
 
diff --git a/chrome/browser/extensions/blacklist_check.h b/chrome/browser/extensions/blacklist_check.h
index 39b405a..615daa8 100644
--- a/chrome/browser/extensions/blacklist_check.h
+++ b/chrome/browser/extensions/blacklist_check.h
@@ -30,7 +30,7 @@
 
   Blacklist* blacklist_;
   ResultCallback callback_;
-  base::WeakPtrFactory<BlacklistCheck> weak_ptr_factory_;
+  base::WeakPtrFactory<BlacklistCheck> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(BlacklistCheck);
 };
diff --git a/chrome/browser/extensions/blacklist_state_fetcher.cc b/chrome/browser/extensions/blacklist_state_fetcher.cc
index 93c0156a..b18968c 100644
--- a/chrome/browser/extensions/blacklist_state_fetcher.cc
+++ b/chrome/browser/extensions/blacklist_state_fetcher.cc
@@ -23,7 +23,7 @@
 
 namespace extensions {
 
-BlacklistStateFetcher::BlacklistStateFetcher() : weak_ptr_factory_(this) {}
+BlacklistStateFetcher::BlacklistStateFetcher() {}
 
 BlacklistStateFetcher::~BlacklistStateFetcher() {
   DCHECK_CURRENTLY_ON(BrowserThread::UI);
diff --git a/chrome/browser/extensions/blacklist_state_fetcher.h b/chrome/browser/extensions/blacklist_state_fetcher.h
index ba86d96..6816ad26 100644
--- a/chrome/browser/extensions/blacklist_state_fetcher.h
+++ b/chrome/browser/extensions/blacklist_state_fetcher.h
@@ -65,7 +65,7 @@
   // Callbacks by extension ID.
   CallbackMultiMap callbacks_;
 
-  base::WeakPtrFactory<BlacklistStateFetcher> weak_ptr_factory_;
+  base::WeakPtrFactory<BlacklistStateFetcher> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(BlacklistStateFetcher);
 };
diff --git a/chrome/browser/extensions/bookmark_app_helper.cc b/chrome/browser/extensions/bookmark_app_helper.cc
index 1083d79..8b41c6614 100644
--- a/chrome/browser/extensions/bookmark_app_helper.cc
+++ b/chrome/browser/extensions/bookmark_app_helper.cc
@@ -240,8 +240,7 @@
       crx_installer_(CrxInstaller::CreateSilent(
           ExtensionSystem::Get(profile)->extension_service())),
       for_installable_site_(web_app::ForInstallableSite::kUnknown),
-      install_source_(install_source),
-      weak_factory_(this) {
+      install_source_(install_source) {
   if (contents)
     installable_manager_ = InstallableManager::FromWebContents(contents);
 
diff --git a/chrome/browser/extensions/bookmark_app_helper.h b/chrome/browser/extensions/bookmark_app_helper.h
index 52134ad..cf2d1af 100644
--- a/chrome/browser/extensions/bookmark_app_helper.h
+++ b/chrome/browser/extensions/bookmark_app_helper.h
@@ -234,7 +234,7 @@
   // With fast tab unloading enabled, shutting down can cause BookmarkAppHelper
   // to be destroyed before the bookmark creation bubble. Use weak pointers to
   // prevent a heap-use-after free in this instance (https://crbug.com/534994).
-  base::WeakPtrFactory<BookmarkAppHelper> weak_factory_;
+  base::WeakPtrFactory<BookmarkAppHelper> weak_factory_{this};
 };
 
 // Creates or updates a bookmark app from the given |web_app_info|. Icons will
diff --git a/chrome/browser/extensions/chrome_app_icon_service.cc b/chrome/browser/extensions/chrome_app_icon_service.cc
index 56784ee..e6cfbe5 100644
--- a/chrome/browser/extensions/chrome_app_icon_service.cc
+++ b/chrome/browser/extensions/chrome_app_icon_service.cc
@@ -20,7 +20,7 @@
 }
 
 ChromeAppIconService::ChromeAppIconService(content::BrowserContext* context)
-    : context_(context), observer_(this), weak_ptr_factory_(this) {
+    : context_(context), observer_(this) {
 #if defined(OS_CHROMEOS)
   app_updater_ = std::make_unique<LauncherExtensionAppUpdater>(this, context);
 #endif
diff --git a/chrome/browser/extensions/chrome_app_icon_service.h b/chrome/browser/extensions/chrome_app_icon_service.h
index c6b0d03..264742f 100644
--- a/chrome/browser/extensions/chrome_app_icon_service.h
+++ b/chrome/browser/extensions/chrome_app_icon_service.h
@@ -116,7 +116,7 @@
 
   ScopedObserver<ExtensionRegistry, ExtensionRegistryObserver> observer_;
 
-  base::WeakPtrFactory<ChromeAppIconService> weak_ptr_factory_;
+  base::WeakPtrFactory<ChromeAppIconService> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(ChromeAppIconService);
 };
diff --git a/chrome/browser/extensions/chrome_url_request_util.cc b/chrome/browser/extensions/chrome_url_request_util.cc
index a47884f..7535f463 100644
--- a/chrome/browser/extensions/chrome_url_request_util.cc
+++ b/chrome/browser/extensions/chrome_url_request_util.cc
@@ -128,7 +128,7 @@
  private:
   ResourceBundleFileLoader(const std::string& content_security_policy,
                            bool send_cors_header)
-      : binding_(this), weak_factory_(this) {
+      : binding_(this) {
     response_headers_ = extensions::BuildHttpHeaders(
         content_security_policy, send_cors_header, base::Time());
   }
@@ -220,7 +220,7 @@
   mojo::Binding<network::mojom::URLLoader> binding_;
   network::mojom::URLLoaderClientPtr client_;
   scoped_refptr<net::HttpResponseHeaders> response_headers_;
-  base::WeakPtrFactory<ResourceBundleFileLoader> weak_factory_;
+  base::WeakPtrFactory<ResourceBundleFileLoader> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(ResourceBundleFileLoader);
 };
diff --git a/chrome/browser/extensions/component_loader.cc b/chrome/browser/extensions/component_loader.cc
index 69519cc..00620c95e 100644
--- a/chrome/browser/extensions/component_loader.cc
+++ b/chrome/browser/extensions/component_loader.cc
@@ -153,8 +153,7 @@
                                  Profile* profile)
     : profile_(profile),
       extension_service_(extension_service),
-      ignore_whitelist_for_testing_(false),
-      weak_factory_(this) {}
+      ignore_whitelist_for_testing_(false) {}
 
 ComponentLoader::~ComponentLoader() {
 }
diff --git a/chrome/browser/extensions/component_loader.h b/chrome/browser/extensions/component_loader.h
index e45408b4..77b0a1e89 100644
--- a/chrome/browser/extensions/component_loader.h
+++ b/chrome/browser/extensions/component_loader.h
@@ -226,7 +226,7 @@
 
   bool ignore_whitelist_for_testing_;
 
-  base::WeakPtrFactory<ComponentLoader> weak_factory_;
+  base::WeakPtrFactory<ComponentLoader> weak_factory_{this};
 
   friend class TtsApiTest;
 
diff --git a/chrome/browser/extensions/extension_action_runner.cc b/chrome/browser/extensions/extension_action_runner.cc
index ced1a58b..bcfe702 100644
--- a/chrome/browser/extensions/extension_action_runner.cc
+++ b/chrome/browser/extensions/extension_action_runner.cc
@@ -71,8 +71,7 @@
       was_used_on_page_(false),
       ignore_active_tab_granted_(false),
       test_observer_(nullptr),
-      extension_registry_observer_(this),
-      weak_factory_(this) {
+      extension_registry_observer_(this) {
   CHECK(web_contents);
   extension_registry_observer_.Add(ExtensionRegistry::Get(browser_context_));
 }
diff --git a/chrome/browser/extensions/extension_action_runner.h b/chrome/browser/extensions/extension_action_runner.h
index cddc112..6c68a55 100644
--- a/chrome/browser/extensions/extension_action_runner.h
+++ b/chrome/browser/extensions/extension_action_runner.h
@@ -253,7 +253,7 @@
   ScopedObserver<ExtensionRegistry, ExtensionRegistryObserver>
       extension_registry_observer_;
 
-  base::WeakPtrFactory<ExtensionActionRunner> weak_factory_;
+  base::WeakPtrFactory<ExtensionActionRunner> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(ExtensionActionRunner);
 };
diff --git a/chrome/browser/extensions/extension_action_storage_manager.cc b/chrome/browser/extensions/extension_action_storage_manager.cc
index 0a0889f4..33cdc582 100644
--- a/chrome/browser/extensions/extension_action_storage_manager.cc
+++ b/chrome/browser/extensions/extension_action_storage_manager.cc
@@ -198,8 +198,7 @@
     content::BrowserContext* context)
     : browser_context_(context),
       extension_action_observer_(this),
-      extension_registry_observer_(this),
-      weak_factory_(this) {
+      extension_registry_observer_(this) {
   extension_action_observer_.Add(ExtensionActionAPI::Get(browser_context_));
   extension_registry_observer_.Add(ExtensionRegistry::Get(browser_context_));
 
diff --git a/chrome/browser/extensions/extension_action_storage_manager.h b/chrome/browser/extensions/extension_action_storage_manager.h
index a11ecf6..28478e8 100644
--- a/chrome/browser/extensions/extension_action_storage_manager.h
+++ b/chrome/browser/extensions/extension_action_storage_manager.h
@@ -59,7 +59,7 @@
   ScopedObserver<ExtensionRegistry, ExtensionRegistryObserver>
       extension_registry_observer_;
 
-  base::WeakPtrFactory<ExtensionActionStorageManager> weak_factory_;
+  base::WeakPtrFactory<ExtensionActionStorageManager> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(ExtensionActionStorageManager);
 };
diff --git a/chrome/browser/extensions/extension_garbage_collector.cc b/chrome/browser/extensions/extension_garbage_collector.cc
index 66ea858..3b4277a 100644
--- a/chrome/browser/extensions/extension_garbage_collector.cc
+++ b/chrome/browser/extensions/extension_garbage_collector.cc
@@ -111,8 +111,7 @@
 
 ExtensionGarbageCollector::ExtensionGarbageCollector(
     content::BrowserContext* context)
-    : context_(context), crx_installs_in_progress_(0), weak_factory_(this) {
-
+    : context_(context), crx_installs_in_progress_(0) {
   ExtensionSystem* extension_system = ExtensionSystem::Get(context_);
   DCHECK(extension_system);
 
diff --git a/chrome/browser/extensions/extension_garbage_collector.h b/chrome/browser/extensions/extension_garbage_collector.h
index 01433745..4e4f8a4 100644
--- a/chrome/browser/extensions/extension_garbage_collector.h
+++ b/chrome/browser/extensions/extension_garbage_collector.h
@@ -88,7 +88,7 @@
 
   // Generate weak pointers for safely posting to the file thread for garbage
   // collection.
-  base::WeakPtrFactory<ExtensionGarbageCollector> weak_factory_;
+  base::WeakPtrFactory<ExtensionGarbageCollector> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(ExtensionGarbageCollector);
 };
diff --git a/chrome/browser/extensions/extension_gcm_app_handler.cc b/chrome/browser/extensions/extension_gcm_app_handler.cc
index 7d13d27..648c2fd 100644
--- a/chrome/browser/extensions/extension_gcm_app_handler.cc
+++ b/chrome/browser/extensions/extension_gcm_app_handler.cc
@@ -48,8 +48,7 @@
 
 ExtensionGCMAppHandler::ExtensionGCMAppHandler(content::BrowserContext* context)
     : profile_(Profile::FromBrowserContext(context)),
-      extension_registry_observer_(this),
-      weak_factory_(this) {
+      extension_registry_observer_(this) {
   extension_registry_observer_.Add(ExtensionRegistry::Get(profile_));
   js_event_router_.reset(new extensions::GcmJsEventRouter(profile_));
 }
diff --git a/chrome/browser/extensions/extension_gcm_app_handler.h b/chrome/browser/extensions/extension_gcm_app_handler.h
index 5a05c94..8cf76af 100644
--- a/chrome/browser/extensions/extension_gcm_app_handler.h
+++ b/chrome/browser/extensions/extension_gcm_app_handler.h
@@ -103,7 +103,7 @@
 
   std::unique_ptr<extensions::GcmJsEventRouter> js_event_router_;
 
-  base::WeakPtrFactory<ExtensionGCMAppHandler> weak_factory_;
+  base::WeakPtrFactory<ExtensionGCMAppHandler> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(ExtensionGCMAppHandler);
 };
diff --git a/chrome/browser/extensions/extension_install_prompt.cc b/chrome/browser/extensions/extension_install_prompt.cc
index f1ed057..c84fc50 100644
--- a/chrome/browser/extensions/extension_install_prompt.cc
+++ b/chrome/browser/extensions/extension_install_prompt.cc
@@ -489,8 +489,7 @@
       extension_(NULL),
       install_ui_(extensions::CreateExtensionInstallUI(profile_)),
       show_params_(new ExtensionInstallPromptShowParams(contents)),
-      did_call_show_dialog_(false),
-      weak_factory_(this) {}
+      did_call_show_dialog_(false) {}
 
 ExtensionInstallPrompt::ExtensionInstallPrompt(Profile* profile,
                                                gfx::NativeWindow native_window)
@@ -499,9 +498,7 @@
       install_ui_(extensions::CreateExtensionInstallUI(profile)),
       show_params_(
           new ExtensionInstallPromptShowParams(profile, native_window)),
-      did_call_show_dialog_(false),
-      weak_factory_(this) {
-}
+      did_call_show_dialog_(false) {}
 
 ExtensionInstallPrompt::~ExtensionInstallPrompt() {
 }
diff --git a/chrome/browser/extensions/extension_install_prompt.h b/chrome/browser/extensions/extension_install_prompt.h
index 44c0b01..949107ee 100644
--- a/chrome/browser/extensions/extension_install_prompt.h
+++ b/chrome/browser/extensions/extension_install_prompt.h
@@ -362,7 +362,7 @@
   // Whether or not the |show_dialog_callback_| was called.
   bool did_call_show_dialog_;
 
-  base::WeakPtrFactory<ExtensionInstallPrompt> weak_factory_;
+  base::WeakPtrFactory<ExtensionInstallPrompt> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(ExtensionInstallPrompt);
 };
diff --git a/chrome/browser/extensions/extension_web_ui_override_registrar.cc b/chrome/browser/extensions/extension_web_ui_override_registrar.cc
index 15d2feb..feb11ca 100644
--- a/chrome/browser/extensions/extension_web_ui_override_registrar.cc
+++ b/chrome/browser/extensions/extension_web_ui_override_registrar.cc
@@ -16,8 +16,7 @@
 
 ExtensionWebUIOverrideRegistrar::ExtensionWebUIOverrideRegistrar(
     content::BrowserContext* context)
-    : extension_registry_observer_(this),
-      weak_factory_(this) {
+    : extension_registry_observer_(this) {
   ExtensionWebUI::InitializeChromeURLOverrides(
       Profile::FromBrowserContext(context));
   extension_registry_observer_.Add(ExtensionRegistry::Get(context));
diff --git a/chrome/browser/extensions/extension_web_ui_override_registrar.h b/chrome/browser/extensions/extension_web_ui_override_registrar.h
index 6436529..d41d4b7 100644
--- a/chrome/browser/extensions/extension_web_ui_override_registrar.h
+++ b/chrome/browser/extensions/extension_web_ui_override_registrar.h
@@ -53,7 +53,7 @@
   ScopedObserver<ExtensionRegistry, ExtensionRegistryObserver>
       extension_registry_observer_;
 
-  base::WeakPtrFactory<ExtensionWebUIOverrideRegistrar> weak_factory_;
+  base::WeakPtrFactory<ExtensionWebUIOverrideRegistrar> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(ExtensionWebUIOverrideRegistrar);
 };
diff --git a/chrome/browser/extensions/external_install_error.cc b/chrome/browser/extensions/external_install_error.cc
index c10c8696..cb4172f 100644
--- a/chrome/browser/extensions/external_install_error.cc
+++ b/chrome/browser/extensions/external_install_error.cc
@@ -337,8 +337,7 @@
       alert_type_(alert_type),
       manager_(manager),
       error_service_(GlobalErrorServiceFactory::GetForProfile(
-          Profile::FromBrowserContext(browser_context_))),
-      weak_factory_(this) {
+          Profile::FromBrowserContext(browser_context_))) {
   prompt_.reset(new ExtensionInstallPrompt::Prompt(
       ExtensionInstallPrompt::EXTERNAL_INSTALL_PROMPT));
 
diff --git a/chrome/browser/extensions/external_install_error.h b/chrome/browser/extensions/external_install_error.h
index c557f83..cfd1672 100644
--- a/chrome/browser/extensions/external_install_error.h
+++ b/chrome/browser/extensions/external_install_error.h
@@ -135,7 +135,7 @@
   // information of the extension.
   std::unique_ptr<WebstoreDataFetcher> webstore_data_fetcher_;
 
-  base::WeakPtrFactory<ExternalInstallError> weak_factory_;
+  base::WeakPtrFactory<ExternalInstallError> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(ExternalInstallError);
 };
diff --git a/chrome/browser/extensions/install_verifier.cc b/chrome/browser/extensions/install_verifier.cc
index df8b899..ff4fa22a 100644
--- a/chrome/browser/extensions/install_verifier.cc
+++ b/chrome/browser/extensions/install_verifier.cc
@@ -187,11 +187,7 @@
 
 InstallVerifier::InstallVerifier(ExtensionPrefs* prefs,
                                  content::BrowserContext* context)
-    : prefs_(prefs),
-      context_(context),
-      bootstrap_check_complete_(false),
-      weak_factory_(this) {
-}
+    : prefs_(prefs), context_(context), bootstrap_check_complete_(false) {}
 
 InstallVerifier::~InstallVerifier() {}
 
diff --git a/chrome/browser/extensions/install_verifier.h b/chrome/browser/extensions/install_verifier.h
index 552c9ad0..f09653ca 100644
--- a/chrome/browser/extensions/install_verifier.h
+++ b/chrome/browser/extensions/install_verifier.h
@@ -171,7 +171,7 @@
   // consider allowed until we hear back from the server signature request.
   ExtensionIdSet provisional_;
 
-  base::WeakPtrFactory<InstallVerifier> weak_factory_;
+  base::WeakPtrFactory<InstallVerifier> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(InstallVerifier);
 };
diff --git a/chrome/browser/extensions/navigation_observer.cc b/chrome/browser/extensions/navigation_observer.cc
index de82d8c..d4831ad 100644
--- a/chrome/browser/extensions/navigation_observer.cc
+++ b/chrome/browser/extensions/navigation_observer.cc
@@ -26,9 +26,7 @@
 }
 
 NavigationObserver::NavigationObserver(Profile* profile)
-    : profile_(profile),
-      extension_registry_observer_(this),
-      weak_factory_(this) {
+    : profile_(profile), extension_registry_observer_(this) {
   RegisterForNotifications();
   extension_registry_observer_.Add(ExtensionRegistry::Get(profile));
 }
diff --git a/chrome/browser/extensions/navigation_observer.h b/chrome/browser/extensions/navigation_observer.h
index e8623bfe..02c7c27 100644
--- a/chrome/browser/extensions/navigation_observer.h
+++ b/chrome/browser/extensions/navigation_observer.h
@@ -78,7 +78,7 @@
   ScopedObserver<ExtensionRegistry, ExtensionRegistryObserver>
       extension_registry_observer_;
 
-  base::WeakPtrFactory<NavigationObserver> weak_factory_;
+  base::WeakPtrFactory<NavigationObserver> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(NavigationObserver);
 };
diff --git a/chrome/browser/extensions/permissions_updater.cc b/chrome/browser/extensions/permissions_updater.cc
index 2b5cb04..f1d9f11b 100644
--- a/chrome/browser/extensions/permissions_updater.cc
+++ b/chrome/browser/extensions/permissions_updater.cc
@@ -153,7 +153,7 @@
   base::OnceClosure dispatch_event_;
   std::unique_ptr<KeyedServiceShutdownNotifier::Subscription>
       shutdown_subscription_;
-  base::WeakPtrFactory<NetworkPermissionsUpdateHelper> weak_factory_;
+  base::WeakPtrFactory<NetworkPermissionsUpdateHelper> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(NetworkPermissionsUpdateHelper);
 };
@@ -236,8 +236,7 @@
               ->Get(browser_context)
               ->Subscribe(
                   base::Bind(&NetworkPermissionsUpdateHelper::OnShutdown,
-                             base::Unretained(this)))),
-      weak_factory_(this) {}
+                             base::Unretained(this)))) {}
 
 PermissionsUpdater::NetworkPermissionsUpdateHelper::
     ~NetworkPermissionsUpdateHelper() {}
diff --git a/chrome/browser/extensions/policy_extension_reinstaller.cc b/chrome/browser/extensions/policy_extension_reinstaller.cc
index bef8e014..48d8dc9 100644
--- a/chrome/browser/extensions/policy_extension_reinstaller.cc
+++ b/chrome/browser/extensions/policy_extension_reinstaller.cc
@@ -45,9 +45,7 @@
 
 PolicyExtensionReinstaller::PolicyExtensionReinstaller(
     content::BrowserContext* context)
-    : context_(context),
-      backoff_entry_(&kPolicyReinstallBackoffPolicy),
-      weak_factory_(this) {}
+    : context_(context), backoff_entry_(&kPolicyReinstallBackoffPolicy) {}
 
 PolicyExtensionReinstaller::~PolicyExtensionReinstaller() {}
 
diff --git a/chrome/browser/extensions/policy_extension_reinstaller.h b/chrome/browser/extensions/policy_extension_reinstaller.h
index dbcdf6e..f1e4646 100644
--- a/chrome/browser/extensions/policy_extension_reinstaller.h
+++ b/chrome/browser/extensions/policy_extension_reinstaller.h
@@ -48,7 +48,7 @@
   // Whether or not there is a pending PostTask to Fire().
   bool scheduled_fire_pending_ = false;
 
-  base::WeakPtrFactory<PolicyExtensionReinstaller> weak_factory_;
+  base::WeakPtrFactory<PolicyExtensionReinstaller> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(PolicyExtensionReinstaller);
 };
diff --git a/chrome/browser/extensions/tab_helper.cc b/chrome/browser/extensions/tab_helper.cc
index 017ef4d..4bfec3041 100644
--- a/chrome/browser/extensions/tab_helper.cc
+++ b/chrome/browser/extensions/tab_helper.cc
@@ -78,9 +78,7 @@
       last_committed_nav_entry_unique_id_(0),
       script_executor_(new ScriptExecutor(web_contents)),
       extension_action_runner_(new ExtensionActionRunner(web_contents)),
-      registry_observer_(this),
-      image_loader_ptr_factory_(this),
-      weak_ptr_factory_(this) {
+      registry_observer_(this) {
   // The ActiveTabPermissionManager requires a session ID; ensure this
   // WebContents has one.
   SessionTabHelper::CreateForWebContents(web_contents);
diff --git a/chrome/browser/extensions/tab_helper.h b/chrome/browser/extensions/tab_helper.h
index 5643647..8a6a5f711 100644
--- a/chrome/browser/extensions/tab_helper.h
+++ b/chrome/browser/extensions/tab_helper.h
@@ -201,10 +201,10 @@
       registry_observer_;
 
   // Vend weak pointers that can be invalidated to stop in-progress loads.
-  base::WeakPtrFactory<TabHelper> image_loader_ptr_factory_;
+  base::WeakPtrFactory<TabHelper> image_loader_ptr_factory_{this};
 
   // Generic weak ptr factory for posting callbacks.
-  base::WeakPtrFactory<TabHelper> weak_ptr_factory_;
+  base::WeakPtrFactory<TabHelper> weak_ptr_factory_{this};
 
   WEB_CONTENTS_USER_DATA_KEY_DECL();
 
diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/browser/extensions/updater/extension_updater.cc
index bc55f14..bfe575a 100644
--- a/chrome/browser/extensions/updater/extension_updater.cc
+++ b/chrome/browser/extensions/updater/extension_updater.cc
@@ -147,8 +147,7 @@
       profile_(profile),
       next_request_id_(0),
       crx_install_is_running_(false),
-      extension_cache_(cache),
-      weak_ptr_factory_(this) {
+      extension_cache_(cache) {
   DCHECK_LE(frequency_seconds, kMaxUpdateFrequencySeconds);
 #if defined(NDEBUG)
   // In Release mode we enforce that update checks don't happen too often.
diff --git a/chrome/browser/extensions/updater/extension_updater.h b/chrome/browser/extensions/updater/extension_updater.h
index f2a7f294..7eb875e0 100644
--- a/chrome/browser/extensions/updater/extension_updater.h
+++ b/chrome/browser/extensions/updater/extension_updater.h
@@ -286,7 +286,7 @@
 
   ExtensionCache* extension_cache_;
 
-  base::WeakPtrFactory<ExtensionUpdater> weak_ptr_factory_;
+  base::WeakPtrFactory<ExtensionUpdater> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(ExtensionUpdater);
 };
diff --git a/chrome/browser/favicon/content_favicon_driver_browsertest.cc b/chrome/browser/favicon/content_favicon_driver_browsertest.cc
index e3cd48f..d838055 100644
--- a/chrome/browser/favicon/content_favicon_driver_browsertest.cc
+++ b/chrome/browser/favicon/content_favicon_driver_browsertest.cc
@@ -91,7 +91,7 @@
 class PendingTaskWaiter : public content::WebContentsObserver {
  public:
   explicit PendingTaskWaiter(content::WebContents* web_contents)
-      : WebContentsObserver(web_contents), weak_factory_(this) {}
+      : WebContentsObserver(web_contents) {}
   ~PendingTaskWaiter() override {}
 
   void AlsoRequireUrl(const GURL& url) { required_url_ = url; }
@@ -153,7 +153,7 @@
   base::Closure quit_closure_;
   GURL required_url_;
   base::Optional<base::string16> required_title_;
-  base::WeakPtrFactory<PendingTaskWaiter> weak_factory_;
+  base::WeakPtrFactory<PendingTaskWaiter> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(PendingTaskWaiter);
 };
diff --git a/chrome/browser/first_run/first_run.cc b/chrome/browser/first_run/first_run.cc
index ea97735..8d74e00c 100644
--- a/chrome/browser/first_run/first_run.cc
+++ b/chrome/browser/first_run/first_run.cc
@@ -127,7 +127,7 @@
 // chrome infrastructure to be up and running before they can be attempted.
 class FirstRunDelayedTasks : public content::NotificationObserver {
  public:
-  FirstRunDelayedTasks() : weak_ptr_factory_(this) {
+  FirstRunDelayedTasks() {
     registrar_.Add(this, chrome::NOTIFICATION_PROFILE_CREATED,
                    content::NotificationService::AllSources());
     registrar_.Add(this, chrome::NOTIFICATION_BROWSER_CLOSED,
@@ -174,7 +174,7 @@
   }
 
   content::NotificationRegistrar registrar_;
-  base::WeakPtrFactory<FirstRunDelayedTasks> weak_ptr_factory_;
+  base::WeakPtrFactory<FirstRunDelayedTasks> weak_ptr_factory_{this};
 };
 
 // Installs a task to do an extensions update check once the extensions system
diff --git a/chrome/browser/guest_view/web_view/chrome_web_view_guest_delegate.cc b/chrome/browser/guest_view/web_view/chrome_web_view_guest_delegate.cc
index 809d1ef..7f76c01 100644
--- a/chrome/browser/guest_view/web_view/chrome_web_view_guest_delegate.cc
+++ b/chrome/browser/guest_view/web_view/chrome_web_view_guest_delegate.cc
@@ -27,10 +27,7 @@
 
 ChromeWebViewGuestDelegate::ChromeWebViewGuestDelegate(
     WebViewGuest* web_view_guest)
-    : pending_context_menu_request_id_(0),
-      web_view_guest_(web_view_guest),
-      weak_ptr_factory_(this) {
-}
+    : pending_context_menu_request_id_(0), web_view_guest_(web_view_guest) {}
 
 ChromeWebViewGuestDelegate::~ChromeWebViewGuestDelegate() {
 }
diff --git a/chrome/browser/guest_view/web_view/chrome_web_view_guest_delegate.h b/chrome/browser/guest_view/web_view/chrome_web_view_guest_delegate.h
index ea58eab..ce439e06 100644
--- a/chrome/browser/guest_view/web_view/chrome_web_view_guest_delegate.h
+++ b/chrome/browser/guest_view/web_view/chrome_web_view_guest_delegate.h
@@ -51,7 +51,7 @@
 
   // This is used to ensure pending tasks will not fire after this object is
   // destroyed.
-  base::WeakPtrFactory<ChromeWebViewGuestDelegate> weak_ptr_factory_;
+  base::WeakPtrFactory<ChromeWebViewGuestDelegate> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(ChromeWebViewGuestDelegate);
 };
diff --git a/chrome/browser/guest_view/web_view/chrome_web_view_permission_helper_delegate.cc b/chrome/browser/guest_view/web_view/chrome_web_view_permission_helper_delegate.cc
index bbcfdeb..e84f6c4 100644
--- a/chrome/browser/guest_view/web_view/chrome_web_view_permission_helper_delegate.cc
+++ b/chrome/browser/guest_view/web_view/chrome_web_view_permission_helper_delegate.cc
@@ -38,8 +38,7 @@
 ChromeWebViewPermissionHelperDelegate::ChromeWebViewPermissionHelperDelegate(
     WebViewPermissionHelper* web_view_permission_helper)
     : WebViewPermissionHelperDelegate(web_view_permission_helper),
-      plugin_auth_host_bindings_(web_contents(), this),
-      weak_factory_(this) {}
+      plugin_auth_host_bindings_(web_contents(), this) {}
 
 ChromeWebViewPermissionHelperDelegate::~ChromeWebViewPermissionHelperDelegate()
 {}
diff --git a/chrome/browser/guest_view/web_view/chrome_web_view_permission_helper_delegate.h b/chrome/browser/guest_view/web_view/chrome_web_view_permission_helper_delegate.h
index 9bdf351..1f9cc1b 100644
--- a/chrome/browser/guest_view/web_view/chrome_web_view_permission_helper_delegate.h
+++ b/chrome/browser/guest_view/web_view/chrome_web_view_permission_helper_delegate.h
@@ -109,7 +109,8 @@
 
   std::map<int, int> bridge_id_to_request_id_map_;
 
-  base::WeakPtrFactory<ChromeWebViewPermissionHelperDelegate> weak_factory_;
+  base::WeakPtrFactory<ChromeWebViewPermissionHelperDelegate> weak_factory_{
+      this};
 
   DISALLOW_COPY_AND_ASSIGN(ChromeWebViewPermissionHelperDelegate);
 };
diff --git a/chrome/browser/icon_manager.cc b/chrome/browser/icon_manager.cc
index 9462f48..96a7d835 100644
--- a/chrome/browser/icon_manager.cc
+++ b/chrome/browser/icon_manager.cc
@@ -25,7 +25,7 @@
 
 }  // namespace
 
-IconManager::IconManager() : weak_factory_(this) {}
+IconManager::IconManager() {}
 
 IconManager::~IconManager() {
 }
diff --git a/chrome/browser/icon_manager.h b/chrome/browser/icon_manager.h
index 28abd1f..c93e65e4 100644
--- a/chrome/browser/icon_manager.h
+++ b/chrome/browser/icon_manager.h
@@ -106,7 +106,7 @@
   std::map<base::FilePath, IconLoader::IconGroup> group_cache_;
   std::map<CacheKey, gfx::Image> icon_cache_;
 
-  base::WeakPtrFactory<IconManager> weak_factory_;
+  base::WeakPtrFactory<IconManager> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(IconManager);
 };
diff --git a/chrome/browser/importer/external_process_importer_host.cc b/chrome/browser/importer/external_process_importer_host.cc
index 9f68e8a..9087093 100644
--- a/chrome/browser/importer/external_process_importer_host.cc
+++ b/chrome/browser/importer/external_process_importer_host.cc
@@ -31,9 +31,7 @@
       is_source_readable_(true),
       client_(NULL),
       items_(0),
-      cancelled_(false),
-      weak_ptr_factory_(this) {
-}
+      cancelled_(false) {}
 
 void ExternalProcessImporterHost::Cancel() {
   cancelled_ = true;
diff --git a/chrome/browser/importer/external_process_importer_host.h b/chrome/browser/importer/external_process_importer_host.h
index 08c6f28..f8bd5d5 100644
--- a/chrome/browser/importer/external_process_importer_host.h
+++ b/chrome/browser/importer/external_process_importer_host.h
@@ -159,7 +159,7 @@
   bool cancelled_;
 
   // Vends weak pointers for the importer to call us back.
-  base::WeakPtrFactory<ExternalProcessImporterHost> weak_ptr_factory_;
+  base::WeakPtrFactory<ExternalProcessImporterHost> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(ExternalProcessImporterHost);
 };
diff --git a/chrome/browser/importer/importer_list.cc b/chrome/browser/importer/importer_list.cc
index 71659dd41..57c0506f 100644
--- a/chrome/browser/importer/importer_list.cc
+++ b/chrome/browser/importer/importer_list.cc
@@ -170,9 +170,7 @@
 
 }  // namespace
 
-ImporterList::ImporterList()
-    : weak_ptr_factory_(this) {
-}
+ImporterList::ImporterList() {}
 
 ImporterList::~ImporterList() {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
diff --git a/chrome/browser/importer/importer_list.h b/chrome/browser/importer/importer_list.h
index 3fa892e..55a0003 100644
--- a/chrome/browser/importer/importer_list.h
+++ b/chrome/browser/importer/importer_list.h
@@ -57,7 +57,7 @@
 
   SEQUENCE_CHECKER(sequence_checker_);
 
-  base::WeakPtrFactory<ImporterList> weak_ptr_factory_;
+  base::WeakPtrFactory<ImporterList> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(ImporterList);
 };
diff --git a/chrome/browser/installable/installable_manager.cc b/chrome/browser/installable/installable_manager.cc
index f02bd07..bd955e3 100644
--- a/chrome/browser/installable/installable_manager.cc
+++ b/chrome/browser/installable/installable_manager.cc
@@ -149,8 +149,7 @@
       valid_manifest_(std::make_unique<ValidManifestProperty>()),
       worker_(std::make_unique<ServiceWorkerProperty>()),
       service_worker_context_(nullptr),
-      has_pwa_check_(false),
-      weak_factory_(this) {
+      has_pwa_check_(false) {
   // This is null in unit tests.
   if (web_contents) {
     content::StoragePartition* storage_partition =
diff --git a/chrome/browser/installable/installable_manager.h b/chrome/browser/installable/installable_manager.h
index cd5b43a..3433c65 100644
--- a/chrome/browser/installable/installable_manager.h
+++ b/chrome/browser/installable/installable_manager.h
@@ -250,7 +250,7 @@
   // which queries the full PWA parameters.
   bool has_pwa_check_;
 
-  base::WeakPtrFactory<InstallableManager> weak_factory_;
+  base::WeakPtrFactory<InstallableManager> weak_factory_{this};
 
   WEB_CONTENTS_USER_DATA_KEY_DECL();
 
diff --git a/chrome/browser/intranet_redirect_detector.cc b/chrome/browser/intranet_redirect_detector.cc
index 9951f1f..8a260a5 100644
--- a/chrome/browser/intranet_redirect_detector.cc
+++ b/chrome/browser/intranet_redirect_detector.cc
@@ -34,8 +34,7 @@
 IntranetRedirectDetector::IntranetRedirectDetector()
     : redirect_origin_(g_browser_process->local_state()->GetString(
           prefs::kLastKnownIntranetRedirectOrigin)),
-      in_sleep_(true),
-      weak_ptr_factory_(this) {
+      in_sleep_(true) {
   // Because this function can be called during startup, when kicking off a URL
   // fetch can eat up 20 ms of time, we delay seven seconds, which is hopefully
   // long enough to be after startup, but still get results back quickly.
diff --git a/chrome/browser/intranet_redirect_detector.h b/chrome/browser/intranet_redirect_detector.h
index 7fce5d95..4ac8f7b 100644
--- a/chrome/browser/intranet_redirect_detector.h
+++ b/chrome/browser/intranet_redirect_detector.h
@@ -76,7 +76,7 @@
   bool in_sleep_;  // True if we're in the seven-second "no fetching" period
                    // that begins at browser start, or the one-second "no
                    // fetching" period that begins after network switches.
-  base::WeakPtrFactory<IntranetRedirectDetector> weak_ptr_factory_;
+  base::WeakPtrFactory<IntranetRedirectDetector> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(IntranetRedirectDetector);
 };
diff --git a/chrome/browser/local_discovery/service_discovery_client_mdns.cc b/chrome/browser/local_discovery/service_discovery_client_mdns.cc
index 1f1ebf25..7d0e5c6 100644
--- a/chrome/browser/local_discovery/service_discovery_client_mdns.cc
+++ b/chrome/browser/local_discovery/service_discovery_client_mdns.cc
@@ -37,9 +37,7 @@
  public:
   using WeakPtr = base::WeakPtr<Proxy>;
 
-  explicit Proxy(ServiceDiscoveryClientMdns* client)
-      : client_(client),
-        weak_ptr_factory_(this) {
+  explicit Proxy(ServiceDiscoveryClientMdns* client) : client_(client) {
     DCHECK_CURRENTLY_ON(BrowserThread::UI);
     client_->proxies_.AddObserver(this);
   }
@@ -112,7 +110,7 @@
   scoped_refptr<ServiceDiscoveryClientMdns> client_;
   // Delayed |mdns_runner_| tasks.
   std::vector<base::OnceClosure> delayed_tasks_;
-  base::WeakPtrFactory<Proxy> weak_ptr_factory_;
+  base::WeakPtrFactory<Proxy> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(Proxy);
 };
@@ -337,8 +335,7 @@
     : mdns_runner_(
           base::CreateSingleThreadTaskRunnerWithTraits({BrowserThread::IO})),
       restart_attempts_(0),
-      need_delay_mdns_tasks_(true),
-      weak_ptr_factory_(this) {
+      need_delay_mdns_tasks_(true) {
   DCHECK_CURRENTLY_ON(BrowserThread::UI);
   content::GetNetworkConnectionTracker()->AddNetworkConnectionObserver(this);
   StartNewClient();
diff --git a/chrome/browser/local_discovery/service_discovery_client_mdns.h b/chrome/browser/local_discovery/service_discovery_client_mdns.h
index d4b2e50..8a5fe81 100644
--- a/chrome/browser/local_discovery/service_discovery_client_mdns.h
+++ b/chrome/browser/local_discovery/service_discovery_client_mdns.h
@@ -70,7 +70,7 @@
   // If false, delay tasks until initialization is posted to |mdns_runner_|.
   bool need_delay_mdns_tasks_ = true;
 
-  base::WeakPtrFactory<ServiceDiscoveryClientMdns> weak_ptr_factory_;
+  base::WeakPtrFactory<ServiceDiscoveryClientMdns> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(ServiceDiscoveryClientMdns);
 };
diff --git a/chrome/browser/local_discovery/service_discovery_device_lister.cc b/chrome/browser/local_discovery/service_discovery_device_lister.cc
index ad2d733..75e97b8 100644
--- a/chrome/browser/local_discovery/service_discovery_device_lister.cc
+++ b/chrome/browser/local_discovery/service_discovery_device_lister.cc
@@ -30,8 +30,7 @@
       const std::string& service_type)
       : delegate_(delegate),
         service_discovery_client_(service_discovery_client),
-        service_type_(service_type),
-        weak_factory_(this) {}
+        service_type_(service_type) {}
 
   ~ServiceDiscoveryDeviceListerImpl() override = default;
 
@@ -131,7 +130,7 @@
   std::unique_ptr<ServiceWatcher> service_watcher_;
   ServiceResolverMap resolvers_;
 
-  base::WeakPtrFactory<ServiceDiscoveryDeviceListerImpl> weak_factory_;
+  base::WeakPtrFactory<ServiceDiscoveryDeviceListerImpl> weak_factory_{this};
 };
 }  // namespace
 
diff --git a/chrome/browser/lookalikes/lookalike_url_navigation_throttle.cc b/chrome/browser/lookalikes/lookalike_url_navigation_throttle.cc
index dedff24..c8c6b484 100644
--- a/chrome/browser/lookalikes/lookalike_url_navigation_throttle.cc
+++ b/chrome/browser/lookalikes/lookalike_url_navigation_throttle.cc
@@ -210,8 +210,7 @@
       interstitials_enabled_(base::FeatureList::IsEnabled(
           features::kLookalikeUrlNavigationSuggestionsUI)),
       profile_(Profile::FromBrowserContext(
-          navigation_handle->GetWebContents()->GetBrowserContext())),
-      weak_factory_(this) {}
+          navigation_handle->GetWebContents()->GetBrowserContext())) {}
 
 LookalikeUrlNavigationThrottle::~LookalikeUrlNavigationThrottle() {}
 
diff --git a/chrome/browser/lookalikes/lookalike_url_navigation_throttle.h b/chrome/browser/lookalikes/lookalike_url_navigation_throttle.h
index 743ff61..b1cf902 100644
--- a/chrome/browser/lookalikes/lookalike_url_navigation_throttle.h
+++ b/chrome/browser/lookalikes/lookalike_url_navigation_throttle.h
@@ -105,7 +105,7 @@
   bool interstitials_enabled_;
 
   Profile* profile_;
-  base::WeakPtrFactory<LookalikeUrlNavigationThrottle> weak_factory_;
+  base::WeakPtrFactory<LookalikeUrlNavigationThrottle> weak_factory_{this};
 };
 
 }  // namespace lookalikes
diff --git a/chrome/browser/lookalikes/lookalike_url_service.cc b/chrome/browser/lookalikes/lookalike_url_service.cc
index a5785806..8267bc30 100644
--- a/chrome/browser/lookalikes/lookalike_url_service.cc
+++ b/chrome/browser/lookalikes/lookalike_url_service.cc
@@ -125,9 +125,7 @@
 }
 
 LookalikeUrlService::LookalikeUrlService(Profile* profile)
-    : profile_(profile),
-      clock_(base::DefaultClock::GetInstance()),
-      weak_factory_(this) {}
+    : profile_(profile), clock_(base::DefaultClock::GetInstance()) {}
 
 LookalikeUrlService::~LookalikeUrlService() {}
 
diff --git a/chrome/browser/lookalikes/lookalike_url_service.h b/chrome/browser/lookalikes/lookalike_url_service.h
index dd5cf6c..08f306de 100644
--- a/chrome/browser/lookalikes/lookalike_url_service.h
+++ b/chrome/browser/lookalikes/lookalike_url_service.h
@@ -94,7 +94,7 @@
   base::Clock* clock_;
   base::Time last_engagement_fetch_time_;
   std::vector<DomainInfo> engaged_sites_;
-  base::WeakPtrFactory<LookalikeUrlService> weak_factory_;
+  base::WeakPtrFactory<LookalikeUrlService> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(LookalikeUrlService);
 };
diff --git a/chrome/browser/media/cast_remoting_connector.cc b/chrome/browser/media/cast_remoting_connector.cc
index a5ce4ef3..e65eaa9a 100644
--- a/chrome/browser/media/cast_remoting_connector.cc
+++ b/chrome/browser/media/cast_remoting_connector.cc
@@ -193,8 +193,7 @@
       active_bridge_(nullptr),
       deprecated_binding_(this),
       binding_(this),
-      pref_service_(pref_service),
-      weak_factory_(this) {
+      pref_service_(pref_service) {
   DCHECK(permission_request_callback_);
 #if !defined(OS_ANDROID)
   if (!media_router::ShouldUseMirroringService() && tab_id_.is_valid()) {
diff --git a/chrome/browser/media/cast_remoting_connector.h b/chrome/browser/media/cast_remoting_connector.h
index 6e8b227..13ed4611 100644
--- a/chrome/browser/media/cast_remoting_connector.h
+++ b/chrome/browser/media/cast_remoting_connector.h
@@ -249,7 +249,7 @@
   // Produces weak pointers that are only valid for the current remoting
   // session. This is used to cancel any outstanding callbacks when a remoting
   // session is stopped.
-  base::WeakPtrFactory<CastRemotingConnector> weak_factory_;
+  base::WeakPtrFactory<CastRemotingConnector> weak_factory_{this};
 
   // Key used with the base::SupportsUserData interface to search for an
   // instance of CastRemotingConnector owned by a WebContents.
diff --git a/chrome/browser/media/cast_remoting_connector_unittest.cc b/chrome/browser/media/cast_remoting_connector_unittest.cc
index 0d8771ed..6953a46 100644
--- a/chrome/browser/media/cast_remoting_connector_unittest.cc
+++ b/chrome/browser/media/cast_remoting_connector_unittest.cc
@@ -63,7 +63,7 @@
 // if any methods were called that should not have been called.
 class FakeMediaRouter : public media_router::MockMediaRouter {
  public:
-  FakeMediaRouter() : weak_factory_(this) {}
+  FakeMediaRouter() {}
   ~FakeMediaRouter() final {}
 
   void RegisterRemotingSource(SessionID tab_id,
@@ -98,7 +98,7 @@
   SessionID tab_id_ = SessionID::InvalidValue();
   CastRemotingConnector* connector_ = nullptr;
 
-  base::WeakPtrFactory<FakeMediaRouter> weak_factory_;
+  base::WeakPtrFactory<FakeMediaRouter> weak_factory_{this};
 };
 
 class MockRemotingSource : public media::mojom::RemotingSource {
diff --git a/chrome/browser/media/cast_transport_host_filter.cc b/chrome/browser/media/cast_transport_host_filter.cc
index 3326bc0..84b92df 100644
--- a/chrome/browser/media/cast_transport_host_filter.cc
+++ b/chrome/browser/media/cast_transport_host_filter.cc
@@ -118,7 +118,7 @@
 namespace cast {
 
 CastTransportHostFilter::CastTransportHostFilter()
-    : BrowserMessageFilter(CastMsgStart), weak_factory_(this) {}
+    : BrowserMessageFilter(CastMsgStart) {}
 
 CastTransportHostFilter::~CastTransportHostFilter() {}
 
diff --git a/chrome/browser/media/cast_transport_host_filter.h b/chrome/browser/media/cast_transport_host_filter.h
index c0e814f..b139a05 100644
--- a/chrome/browser/media/cast_transport_host_filter.h
+++ b/chrome/browser/media/cast_transport_host_filter.h
@@ -112,7 +112,7 @@
   // channel ID as the key.
   std::multimap<int32_t, int32_t> stream_id_map_;
 
-  base::WeakPtrFactory<CastTransportHostFilter> weak_factory_;
+  base::WeakPtrFactory<CastTransportHostFilter> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(CastTransportHostFilter);
 };
diff --git a/chrome/browser/media/offscreen_tab.cc b/chrome/browser/media/offscreen_tab.cc
index 2ce550bc..c2f6100 100644
--- a/chrome/browser/media/offscreen_tab.cc
+++ b/chrome/browser/media/offscreen_tab.cc
@@ -51,7 +51,7 @@
 class OffscreenTab::WindowAdoptionAgent : protected aura::WindowObserver {
  public:
   explicit WindowAdoptionAgent(aura::Window* content_window)
-      : content_window_(content_window), weak_ptr_factory_(this) {
+      : content_window_(content_window) {
     if (content_window_) {
       content_window->AddObserver(this);
       ScheduleFindNewParentIfDetached(content_window_->GetRootWindow());
@@ -115,7 +115,7 @@
   }
 
   aura::Window* content_window_;
-  base::WeakPtrFactory<WindowAdoptionAgent> weak_ptr_factory_;
+  base::WeakPtrFactory<WindowAdoptionAgent> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(WindowAdoptionAgent);
 };
diff --git a/chrome/browser/media/output_protection_impl.cc b/chrome/browser/media/output_protection_impl.cc
index 6921314..01be8e37 100644
--- a/chrome/browser/media/output_protection_impl.cc
+++ b/chrome/browser/media/output_protection_impl.cc
@@ -33,8 +33,7 @@
     media::mojom::OutputProtectionRequest request)
     : FrameServiceBase(render_frame_host, std::move(request)),
       render_process_id_(render_frame_host->GetProcess()->GetID()),
-      render_frame_id_(render_frame_host->GetRoutingID()),
-      weak_factory_(this) {}
+      render_frame_id_(render_frame_host->GetRoutingID()) {}
 
 OutputProtectionImpl::~OutputProtectionImpl() {
   DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
diff --git a/chrome/browser/media/output_protection_impl.h b/chrome/browser/media/output_protection_impl.h
index eea778f..6da6ae9 100644
--- a/chrome/browser/media/output_protection_impl.h
+++ b/chrome/browser/media/output_protection_impl.h
@@ -55,7 +55,7 @@
 
   std::unique_ptr<OutputProtectionProxy> proxy_;
 
-  base::WeakPtrFactory<OutputProtectionImpl> weak_factory_;
+  base::WeakPtrFactory<OutputProtectionImpl> weak_factory_{this};
 };
 
 #endif  // CHROME_BROWSER_MEDIA_OUTPUT_PROTECTION_IMPL_H_
diff --git a/chrome/browser/media/output_protection_proxy.cc b/chrome/browser/media/output_protection_proxy.cc
index f495ccc6..fa265f1 100644
--- a/chrome/browser/media/output_protection_proxy.cc
+++ b/chrome/browser/media/output_protection_proxy.cc
@@ -24,13 +24,14 @@
 OutputProtectionProxy::OutputProtectionProxy(int render_process_id,
                                              int render_frame_id)
     : render_process_id_(render_process_id),
-      render_frame_id_(render_frame_id),
+      render_frame_id_(render_frame_id)
 #if defined(OS_CHROMEOS)
+      ,
       output_protection_delegate_(
           // On OS_CHROMEOS, NativeView and NativeWindow are both aura::Window*.
-          GetRenderFrameView(render_process_id, render_frame_id)),
+          GetRenderFrameView(render_process_id, render_frame_id))
 #endif  // defined(OS_CHROMEOS)
-      weak_ptr_factory_(this) {
+{
 }
 
 OutputProtectionProxy::~OutputProtectionProxy() {
diff --git a/chrome/browser/media/output_protection_proxy.h b/chrome/browser/media/output_protection_proxy.h
index a0ef683..b035ee6 100644
--- a/chrome/browser/media/output_protection_proxy.h
+++ b/chrome/browser/media/output_protection_proxy.h
@@ -55,7 +55,7 @@
   ash::OutputProtectionDelegate output_protection_delegate_;
 #endif
 
-  base::WeakPtrFactory<OutputProtectionProxy> weak_ptr_factory_;
+  base::WeakPtrFactory<OutputProtectionProxy> weak_ptr_factory_{this};
 };
 
 #endif  // CHROME_BROWSER_MEDIA_OUTPUT_PROTECTION_PROXY_H_
diff --git a/chrome/browser/media/platform_verification_impl.cc b/chrome/browser/media/platform_verification_impl.cc
index 5ad1e2a..eae0ea0 100644
--- a/chrome/browser/media/platform_verification_impl.cc
+++ b/chrome/browser/media/platform_verification_impl.cc
@@ -60,8 +60,7 @@
     content::RenderFrameHost* render_frame_host,
     media::mojom::PlatformVerificationRequest request)
     : FrameServiceBase(render_frame_host, std::move(request)),
-      render_frame_host_(render_frame_host),
-      weak_factory_(this) {}
+      render_frame_host_(render_frame_host) {}
 
 PlatformVerificationImpl::~PlatformVerificationImpl() {
   DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
diff --git a/chrome/browser/media/platform_verification_impl.h b/chrome/browser/media/platform_verification_impl.h
index 1010bdc..9d23a2d 100644
--- a/chrome/browser/media/platform_verification_impl.h
+++ b/chrome/browser/media/platform_verification_impl.h
@@ -57,7 +57,7 @@
 #endif
 
   content::RenderFrameHost* const render_frame_host_;
-  base::WeakPtrFactory<PlatformVerificationImpl> weak_factory_;
+  base::WeakPtrFactory<PlatformVerificationImpl> weak_factory_{this};
 };
 
 #endif  // CHROME_BROWSER_MEDIA_PLATFORM_VERIFICATION_IMPL_H_
diff --git a/chrome/browser/media/router/discovery/dial/dial_app_discovery_service.cc b/chrome/browser/media/router/discovery/dial/dial_app_discovery_service.cc
index b6568c6..28d7efa7 100644
--- a/chrome/browser/media/router/discovery/dial/dial_app_discovery_service.cc
+++ b/chrome/browser/media/router/discovery/dial/dial_app_discovery_service.cc
@@ -85,8 +85,7 @@
               &DialAppDiscoveryService::PendingRequest::OnDialAppInfoFetchError,
               base::Unretained(this))),
       app_info_cb_(std::move(app_info_cb)),
-      service_(service),
-      weak_ptr_factory_(this) {}
+      service_(service) {}
 
 DialAppDiscoveryService::PendingRequest::~PendingRequest() {
   DCHECK(app_info_cb_.is_null());
diff --git a/chrome/browser/media/router/discovery/dial/dial_app_discovery_service.h b/chrome/browser/media/router/discovery/dial/dial_app_discovery_service.h
index 97e7986a..b0c32a9 100644
--- a/chrome/browser/media/router/discovery/dial/dial_app_discovery_service.h
+++ b/chrome/browser/media/router/discovery/dial/dial_app_discovery_service.h
@@ -122,7 +122,7 @@
     DialAppDiscoveryService* const service_;
 
     SEQUENCE_CHECKER(sequence_checker_);
-    base::WeakPtrFactory<PendingRequest> weak_ptr_factory_;
+    base::WeakPtrFactory<PendingRequest> weak_ptr_factory_{this};
     DISALLOW_COPY_AND_ASSIGN(PendingRequest);
   };
 
diff --git a/chrome/browser/media/router/discovery/dial/dial_media_sink_service.cc b/chrome/browser/media/router/discovery/dial/dial_media_sink_service.cc
index 876fc39..0b1c6f389 100644
--- a/chrome/browser/media/router/discovery/dial/dial_media_sink_service.cc
+++ b/chrome/browser/media/router/discovery/dial/dial_media_sink_service.cc
@@ -18,8 +18,7 @@
 namespace media_router {
 
 DialMediaSinkService::DialMediaSinkService()
-    : impl_(nullptr, base::OnTaskRunnerDeleter(nullptr)),
-      weak_ptr_factory_(this) {}
+    : impl_(nullptr, base::OnTaskRunnerDeleter(nullptr)) {}
 
 DialMediaSinkService::~DialMediaSinkService() {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
diff --git a/chrome/browser/media/router/discovery/dial/dial_media_sink_service.h b/chrome/browser/media/router/discovery/dial/dial_media_sink_service.h
index a7925a7..9c267a84 100644
--- a/chrome/browser/media/router/discovery/dial/dial_media_sink_service.h
+++ b/chrome/browser/media/router/discovery/dial/dial_media_sink_service.h
@@ -63,7 +63,7 @@
   std::unique_ptr<DialMediaSinkServiceImpl, base::OnTaskRunnerDeleter> impl_;
 
   SEQUENCE_CHECKER(sequence_checker_);
-  base::WeakPtrFactory<DialMediaSinkService> weak_ptr_factory_;
+  base::WeakPtrFactory<DialMediaSinkService> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(DialMediaSinkService);
 };
diff --git a/chrome/browser/media/router/discovery/dial/safe_dial_app_info_parser.cc b/chrome/browser/media/router/discovery/dial/safe_dial_app_info_parser.cc
index d766bd7..07bf9b3 100644
--- a/chrome/browser/media/router/discovery/dial/safe_dial_app_info_parser.cc
+++ b/chrome/browser/media/router/discovery/dial/safe_dial_app_info_parser.cc
@@ -77,7 +77,7 @@
 }  // namespace
 
 SafeDialAppInfoParser::SafeDialAppInfoParser(DataDecoder* data_decoder)
-    : data_decoder_(data_decoder), weak_factory_(this) {}
+    : data_decoder_(data_decoder) {}
 
 SafeDialAppInfoParser::~SafeDialAppInfoParser() {}
 
diff --git a/chrome/browser/media/router/discovery/dial/safe_dial_app_info_parser.h b/chrome/browser/media/router/discovery/dial/safe_dial_app_info_parser.h
index 8d1d5949..ae96f28 100644
--- a/chrome/browser/media/router/discovery/dial/safe_dial_app_info_parser.h
+++ b/chrome/browser/media/router/discovery/dial/safe_dial_app_info_parser.h
@@ -64,7 +64,7 @@
   // Used for parsing XML. Not owned by |this|.
   DataDecoder* const data_decoder_;
 
-  base::WeakPtrFactory<SafeDialAppInfoParser> weak_factory_;
+  base::WeakPtrFactory<SafeDialAppInfoParser> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(SafeDialAppInfoParser);
 };
diff --git a/chrome/browser/media/router/discovery/dial/safe_dial_device_description_parser.cc b/chrome/browser/media/router/discovery/dial/safe_dial_device_description_parser.cc
index f58ae5b..1d7ca4a 100644
--- a/chrome/browser/media/router/discovery/dial/safe_dial_device_description_parser.cc
+++ b/chrome/browser/media/router/discovery/dial/safe_dial_device_description_parser.cc
@@ -36,7 +36,7 @@
 
 SafeDialDeviceDescriptionParser::SafeDialDeviceDescriptionParser(
     DataDecoder* data_decoder)
-    : data_decoder_(data_decoder), weak_factory_(this) {}
+    : data_decoder_(data_decoder) {}
 
 SafeDialDeviceDescriptionParser::~SafeDialDeviceDescriptionParser() {}
 
diff --git a/chrome/browser/media/router/discovery/dial/safe_dial_device_description_parser.h b/chrome/browser/media/router/discovery/dial/safe_dial_device_description_parser.h
index ff76c072..95e6c142 100644
--- a/chrome/browser/media/router/discovery/dial/safe_dial_device_description_parser.h
+++ b/chrome/browser/media/router/discovery/dial/safe_dial_device_description_parser.h
@@ -81,7 +81,7 @@
   // Used for parsing XML. Not owned by |this|.
   DataDecoder* const data_decoder_;
 
-  base::WeakPtrFactory<SafeDialDeviceDescriptionParser> weak_factory_;
+  base::WeakPtrFactory<SafeDialDeviceDescriptionParser> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(SafeDialDeviceDescriptionParser);
 };
diff --git a/chrome/browser/media/router/discovery/mdns/cast_media_sink_service.cc b/chrome/browser/media/router/discovery/mdns/cast_media_sink_service.cc
index 55b1460..d102bf5 100644
--- a/chrome/browser/media/router/discovery/mdns/cast_media_sink_service.cc
+++ b/chrome/browser/media/router/discovery/mdns/cast_media_sink_service.cc
@@ -18,8 +18,7 @@
 namespace media_router {
 
 CastMediaSinkService::CastMediaSinkService()
-    : impl_(nullptr, base::OnTaskRunnerDeleter(nullptr)),
-      weak_ptr_factory_(this) {}
+    : impl_(nullptr, base::OnTaskRunnerDeleter(nullptr)) {}
 
 CastMediaSinkService::~CastMediaSinkService() {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
diff --git a/chrome/browser/media/router/discovery/mdns/cast_media_sink_service.h b/chrome/browser/media/router/discovery/mdns/cast_media_sink_service.h
index a58a331a..f13f424 100644
--- a/chrome/browser/media/router/discovery/mdns/cast_media_sink_service.h
+++ b/chrome/browser/media/router/discovery/mdns/cast_media_sink_service.h
@@ -101,7 +101,7 @@
   std::vector<MediaSinkInternal> cast_sinks_;
 
   SEQUENCE_CHECKER(sequence_checker_);
-  base::WeakPtrFactory<CastMediaSinkService> weak_ptr_factory_;
+  base::WeakPtrFactory<CastMediaSinkService> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(CastMediaSinkService);
 };
diff --git a/chrome/browser/media/router/discovery/mdns/cast_media_sink_service_impl.cc b/chrome/browser/media/router/discovery/mdns/cast_media_sink_service_impl.cc
index b78b6e4..db14e1e 100644
--- a/chrome/browser/media/router/discovery/mdns/cast_media_sink_service_impl.cc
+++ b/chrome/browser/media/router/discovery/mdns/cast_media_sink_service_impl.cc
@@ -211,8 +211,7 @@
       allow_all_ips_(allow_all_ips),
       dial_media_sink_service_(dial_media_sink_service),
       task_runner_(cast_socket_service_->task_runner()),
-      clock_(base::DefaultClock::GetInstance()),
-      weak_ptr_factory_(this) {
+      clock_(base::DefaultClock::GetInstance()) {
   DETACH_FROM_SEQUENCE(sequence_checker_);
   DCHECK(cast_socket_service_);
   DCHECK(network_monitor_);
diff --git a/chrome/browser/media/router/discovery/mdns/cast_media_sink_service_impl.h b/chrome/browser/media/router/discovery/mdns/cast_media_sink_service_impl.h
index 67c100d7..195141c 100644
--- a/chrome/browser/media/router/discovery/mdns/cast_media_sink_service_impl.h
+++ b/chrome/browser/media/router/discovery/mdns/cast_media_sink_service_impl.h
@@ -349,7 +349,7 @@
   base::Clock* clock_;
 
   SEQUENCE_CHECKER(sequence_checker_);
-  base::WeakPtrFactory<CastMediaSinkServiceImpl> weak_ptr_factory_;
+  base::WeakPtrFactory<CastMediaSinkServiceImpl> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(CastMediaSinkServiceImpl);
 };
diff --git a/chrome/browser/media/router/event_page_request_manager.cc b/chrome/browser/media/router/event_page_request_manager.cc
index 492d92e..638a3da8 100644
--- a/chrome/browser/media/router/event_page_request_manager.cc
+++ b/chrome/browser/media/router/event_page_request_manager.cc
@@ -92,8 +92,7 @@
 
 EventPageRequestManager::EventPageRequestManager(
     content::BrowserContext* context)
-    : extension_process_manager_(extensions::ProcessManager::Get(context)),
-      weak_factory_(this) {}
+    : extension_process_manager_(extensions::ProcessManager::Get(context)) {}
 
 void EventPageRequestManager::EnqueueRequest(base::OnceClosure request) {
   pending_requests_.push_back(std::move(request));
diff --git a/chrome/browser/media/router/event_page_request_manager.h b/chrome/browser/media/router/event_page_request_manager.h
index 82a133c..734ce6d 100644
--- a/chrome/browser/media/router/event_page_request_manager.h
+++ b/chrome/browser/media/router/event_page_request_manager.h
@@ -136,7 +136,7 @@
   MediaRouteProviderWakeReason current_wake_reason_ =
       MediaRouteProviderWakeReason::TOTAL_COUNT;
 
-  base::WeakPtrFactory<EventPageRequestManager> weak_factory_;
+  base::WeakPtrFactory<EventPageRequestManager> weak_factory_{this};
 };
 
 }  // namespace media_router
diff --git a/chrome/browser/media/router/mojo/media_router_desktop.cc b/chrome/browser/media/router/mojo/media_router_desktop.cc
index a1788b8a..0e0d39d7 100644
--- a/chrome/browser/media/router/mojo/media_router_desktop.cc
+++ b/chrome/browser/media/router/mojo/media_router_desktop.cc
@@ -101,8 +101,7 @@
     : MediaRouterMojoImpl(context),
       cast_provider_(nullptr, base::OnTaskRunnerDeleter(nullptr)),
       dial_provider_(nullptr, base::OnTaskRunnerDeleter(nullptr)),
-      media_sink_service_(media_sink_service),
-      weak_factory_(this) {
+      media_sink_service_(media_sink_service) {
   InitializeMediaRouteProviders();
 }
 
diff --git a/chrome/browser/media/router/mojo/media_router_desktop.h b/chrome/browser/media/router/mojo/media_router_desktop.h
index 9fe6dfb..34327ab 100644
--- a/chrome/browser/media/router/mojo/media_router_desktop.h
+++ b/chrome/browser/media/router/mojo/media_router_desktop.h
@@ -177,7 +177,7 @@
   // message pipe to |extension_provider_proxy_|.
   int extension_provider_error_count_ = 0;
 
-  base::WeakPtrFactory<MediaRouterDesktop> weak_factory_;
+  base::WeakPtrFactory<MediaRouterDesktop> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(MediaRouterDesktop);
 };
diff --git a/chrome/browser/media/router/mojo/media_router_mojo_impl.cc b/chrome/browser/media/router/mojo/media_router_mojo_impl.cc
index 2363feb..7ea40f2b 100644
--- a/chrome/browser/media/router/mojo/media_router_mojo_impl.cc
+++ b/chrome/browser/media/router/mojo/media_router_mojo_impl.cc
@@ -129,9 +129,7 @@
 MediaRouterMojoImpl::MediaSinksQuery::~MediaSinksQuery() = default;
 
 MediaRouterMojoImpl::MediaRouterMojoImpl(content::BrowserContext* context)
-    : instance_id_(base::GenerateGUID()),
-      context_(context),
-      weak_factory_(this) {
+    : instance_id_(base::GenerateGUID()), context_(context) {
   DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
 }
 
diff --git a/chrome/browser/media/router/mojo/media_router_mojo_impl.h b/chrome/browser/media/router/mojo/media_router_mojo_impl.h
index 1822a6a4..9f56e22 100644
--- a/chrome/browser/media/router/mojo/media_router_mojo_impl.h
+++ b/chrome/browser/media/router/mojo/media_router_mojo_impl.h
@@ -436,7 +436,7 @@
 
   content::BrowserContext* const context_;
 
-  base::WeakPtrFactory<MediaRouterMojoImpl> weak_factory_;
+  base::WeakPtrFactory<MediaRouterMojoImpl> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(MediaRouterMojoImpl);
 };
diff --git a/chrome/browser/media/router/presentation/presentation_service_delegate_impl.cc b/chrome/browser/media/router/presentation/presentation_service_delegate_impl.cc
index cf485d80..4f2c1b5 100644
--- a/chrome/browser/media/router/presentation/presentation_service_delegate_impl.cc
+++ b/chrome/browser/media/router/presentation/presentation_service_delegate_impl.cc
@@ -362,8 +362,7 @@
     content::WebContents* web_contents)
     : web_contents_(web_contents),
       router_(MediaRouterFactory::GetApiForBrowserContext(
-          web_contents_->GetBrowserContext())),
-      weak_factory_(this) {
+          web_contents_->GetBrowserContext())) {
   DCHECK(web_contents_);
   DCHECK(router_);
 }
diff --git a/chrome/browser/media/router/presentation/presentation_service_delegate_impl.h b/chrome/browser/media/router/presentation/presentation_service_delegate_impl.h
index 49ebc7b..4ccd3905 100644
--- a/chrome/browser/media/router/presentation/presentation_service_delegate_impl.h
+++ b/chrome/browser/media/router/presentation/presentation_service_delegate_impl.h
@@ -307,7 +307,7 @@
 
   PresentationServiceDelegateObservers observers_;
 
-  base::WeakPtrFactory<PresentationServiceDelegateImpl> weak_factory_;
+  base::WeakPtrFactory<PresentationServiceDelegateImpl> weak_factory_{this};
 
   WEB_CONTENTS_USER_DATA_KEY_DECL();
 
diff --git a/chrome/browser/media/router/providers/cast/cast_activity_manager.cc b/chrome/browser/media/router/providers/cast/cast_activity_manager.cc
index 5e88f0a..84bdccc 100644
--- a/chrome/browser/media/router/providers/cast/cast_activity_manager.cc
+++ b/chrome/browser/media/router/providers/cast/cast_activity_manager.cc
@@ -35,8 +35,7 @@
       message_handler_(message_handler),
       media_router_(media_router),
       data_decoder_(std::move(data_decoder)),
-      hash_token_(hash_token),
-      weak_ptr_factory_(this) {
+      hash_token_(hash_token) {
   DCHECK(media_sink_service_);
   DCHECK(message_handler_);
   DCHECK(media_router_);
diff --git a/chrome/browser/media/router/providers/cast/cast_activity_manager.h b/chrome/browser/media/router/providers/cast/cast_activity_manager.h
index ccecada..5c8ccef 100644
--- a/chrome/browser/media/router/providers/cast/cast_activity_manager.h
+++ b/chrome/browser/media/router/providers/cast/cast_activity_manager.h
@@ -255,7 +255,7 @@
   const std::string hash_token_;
 
   SEQUENCE_CHECKER(sequence_checker_);
-  base::WeakPtrFactory<CastActivityManager> weak_ptr_factory_;
+  base::WeakPtrFactory<CastActivityManager> weak_ptr_factory_{this};
   FRIEND_TEST_ALL_PREFIXES(CastActivityManagerTest, SendMediaRequestToReceiver);
 };
 
diff --git a/chrome/browser/media/router/providers/cast/cast_app_discovery_service.cc b/chrome/browser/media/router/providers/cast/cast_app_discovery_service.cc
index ff92477c..3b06c1f 100644
--- a/chrome/browser/media/router/providers/cast/cast_app_discovery_service.cc
+++ b/chrome/browser/media/router/providers/cast/cast_app_discovery_service.cc
@@ -30,8 +30,7 @@
     : message_handler_(message_handler),
       socket_service_(socket_service),
       media_sink_service_(media_sink_service),
-      clock_(clock),
-      weak_ptr_factory_(this) {
+      clock_(clock) {
   DETACH_FROM_SEQUENCE(sequence_checker_);
   DCHECK(message_handler_);
   DCHECK(socket_service_);
diff --git a/chrome/browser/media/router/providers/cast/cast_app_discovery_service.h b/chrome/browser/media/router/providers/cast/cast_app_discovery_service.h
index 3da4a4a..16a3be56 100644
--- a/chrome/browser/media/router/providers/cast/cast_app_discovery_service.h
+++ b/chrome/browser/media/router/providers/cast/cast_app_discovery_service.h
@@ -138,7 +138,7 @@
   const base::TickClock* const clock_;
 
   SEQUENCE_CHECKER(sequence_checker_);
-  base::WeakPtrFactory<CastAppDiscoveryServiceImpl> weak_ptr_factory_;
+  base::WeakPtrFactory<CastAppDiscoveryServiceImpl> weak_ptr_factory_{this};
   DISALLOW_COPY_AND_ASSIGN(CastAppDiscoveryServiceImpl);
 };
 
diff --git a/chrome/browser/media/router/providers/cast/cast_session_client.cc b/chrome/browser/media/router/providers/cast/cast_session_client.cc
index ea28182..cceb3ee 100644
--- a/chrome/browser/media/router/providers/cast/cast_session_client.cc
+++ b/chrome/browser/media/router/providers/cast/cast_session_client.cc
@@ -47,8 +47,7 @@
       auto_join_policy_(auto_join_policy),
       data_decoder_(data_decoder),
       activity_(activity),
-      connection_binding_(this),
-      weak_ptr_factory_(this) {}
+      connection_binding_(this) {}
 
 CastSessionClientImpl::~CastSessionClientImpl() = default;
 
diff --git a/chrome/browser/media/router/providers/cast/cast_session_client.h b/chrome/browser/media/router/providers/cast/cast_session_client.h
index d4aaf33..8d37a4e 100644
--- a/chrome/browser/media/router/providers/cast/cast_session_client.h
+++ b/chrome/browser/media/router/providers/cast/cast_session_client.h
@@ -186,7 +186,7 @@
   // initiate state changes.
   blink::mojom::PresentationConnectionPtr connection_;
 
-  base::WeakPtrFactory<CastSessionClientImpl> weak_ptr_factory_;
+  base::WeakPtrFactory<CastSessionClientImpl> weak_ptr_factory_{this};
 };
 
 }  // namespace media_router
diff --git a/chrome/browser/media/router/providers/dial/dial_media_route_provider.cc b/chrome/browser/media/router/providers/dial/dial_media_route_provider.cc
index 51f223e8..a27f93d 100644
--- a/chrome/browser/media/router/providers/dial/dial_media_route_provider.cc
+++ b/chrome/browser/media/router/providers/dial/dial_media_route_provider.cc
@@ -46,8 +46,7 @@
     : binding_(this),
       media_sink_service_(media_sink_service),
       data_decoder_(std::make_unique<DataDecoder>(connector)),
-      internal_message_util_(hash_token),
-      weak_ptr_factory_(this) {
+      internal_message_util_(hash_token) {
   DETACH_FROM_SEQUENCE(sequence_checker_);
   DCHECK(media_sink_service_);
 
diff --git a/chrome/browser/media/router/providers/dial/dial_media_route_provider.h b/chrome/browser/media/router/providers/dial/dial_media_route_provider.h
index cae5d6ce..389dc03 100644
--- a/chrome/browser/media/router/providers/dial/dial_media_route_provider.h
+++ b/chrome/browser/media/router/providers/dial/dial_media_route_provider.h
@@ -207,7 +207,7 @@
   DialInternalMessageUtil internal_message_util_;
 
   SEQUENCE_CHECKER(sequence_checker_);
-  base::WeakPtrFactory<DialMediaRouteProvider> weak_ptr_factory_;
+  base::WeakPtrFactory<DialMediaRouteProvider> weak_ptr_factory_{this};
   DISALLOW_COPY_AND_ASSIGN(DialMediaRouteProvider);
 };
 
diff --git a/chrome/browser/media/router/providers/extension/extension_media_route_provider_proxy.cc b/chrome/browser/media/router/providers/extension/extension_media_route_provider_proxy.cc
index d3140c8..5240458 100644
--- a/chrome/browser/media/router/providers/extension/extension_media_route_provider_proxy.cc
+++ b/chrome/browser/media/router/providers/extension/extension_media_route_provider_proxy.cc
@@ -19,8 +19,7 @@
     content::BrowserContext* context)
     : binding_(this),
       request_manager_(
-          EventPageRequestManagerFactory::GetApiForBrowserContext(context)),
-      weak_factory_(this) {}
+          EventPageRequestManagerFactory::GetApiForBrowserContext(context)) {}
 
 ExtensionMediaRouteProviderProxy::~ExtensionMediaRouteProviderProxy() = default;
 
diff --git a/chrome/browser/media/router/providers/extension/extension_media_route_provider_proxy.h b/chrome/browser/media/router/providers/extension/extension_media_route_provider_proxy.h
index 02c876ff..b0048e4 100644
--- a/chrome/browser/media/router/providers/extension/extension_media_route_provider_proxy.h
+++ b/chrome/browser/media/router/providers/extension/extension_media_route_provider_proxy.h
@@ -173,7 +173,7 @@
   // the requests to it.
   EventPageRequestManager* const request_manager_;
 
-  base::WeakPtrFactory<ExtensionMediaRouteProviderProxy> weak_factory_;
+  base::WeakPtrFactory<ExtensionMediaRouteProviderProxy> weak_factory_{this};
 };
 
 }  // namespace media_router
diff --git a/chrome/browser/media/router/providers/openscreen/network_service_quic_packet_writer.cc b/chrome/browser/media/router/providers/openscreen/network_service_quic_packet_writer.cc
index 3f375b7..cc1dce3 100644
--- a/chrome/browser/media/router/providers/openscreen/network_service_quic_packet_writer.cc
+++ b/chrome/browser/media/router/providers/openscreen/network_service_quic_packet_writer.cc
@@ -42,8 +42,7 @@
       is_write_blocked_(false),
       task_runner_(task_runner),
       async_packet_sender_(std::move(async_packet_sender)),
-      delegate_(delegate),
-      weak_factory_(this) {
+      delegate_(delegate) {
   DCHECK(async_packet_sender_ != nullptr);
   DCHECK(delegate_ != nullptr);
   DCHECK(task_runner_ != nullptr);
diff --git a/chrome/browser/media/router/providers/openscreen/network_service_quic_packet_writer.h b/chrome/browser/media/router/providers/openscreen/network_service_quic_packet_writer.h
index 01b1f63..264523c 100644
--- a/chrome/browser/media/router/providers/openscreen/network_service_quic_packet_writer.h
+++ b/chrome/browser/media/router/providers/openscreen/network_service_quic_packet_writer.h
@@ -113,7 +113,7 @@
   size_t packets_in_flight_ = 0;
   bool writable_ = true;
 
-  base::WeakPtrFactory<NetworkServiceQuicPacketWriter> weak_factory_;
+  base::WeakPtrFactory<NetworkServiceQuicPacketWriter> weak_factory_{this};
   DISALLOW_COPY_AND_ASSIGN(NetworkServiceQuicPacketWriter);
 };
 
diff --git a/chrome/browser/media/webrtc/desktop_media_list_base.cc b/chrome/browser/media/webrtc/desktop_media_list_base.cc
index a68d5d7..983a8303 100644
--- a/chrome/browser/media/webrtc/desktop_media_list_base.cc
+++ b/chrome/browser/media/webrtc/desktop_media_list_base.cc
@@ -17,7 +17,7 @@
 using content::DesktopMediaID;
 
 DesktopMediaListBase::DesktopMediaListBase(base::TimeDelta update_period)
-    : update_period_(update_period), weak_factory_(this) {}
+    : update_period_(update_period) {}
 
 DesktopMediaListBase::~DesktopMediaListBase() {}
 
diff --git a/chrome/browser/media/webrtc/desktop_media_list_base.h b/chrome/browser/media/webrtc/desktop_media_list_base.h
index 746df12..29ef830 100644
--- a/chrome/browser/media/webrtc/desktop_media_list_base.h
+++ b/chrome/browser/media/webrtc/desktop_media_list_base.h
@@ -75,7 +75,7 @@
   // The observer passed to StartUpdating().
   DesktopMediaListObserver* observer_ = nullptr;
 
-  base::WeakPtrFactory<DesktopMediaListBase> weak_factory_;
+  base::WeakPtrFactory<DesktopMediaListBase> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(DesktopMediaListBase);
 };
diff --git a/chrome/browser/media/webrtc/fake_desktop_media_picker_factory.cc b/chrome/browser/media/webrtc/fake_desktop_media_picker_factory.cc
index f49c665..115fb4db 100644
--- a/chrome/browser/media/webrtc/fake_desktop_media_picker_factory.cc
+++ b/chrome/browser/media/webrtc/fake_desktop_media_picker_factory.cc
@@ -14,7 +14,7 @@
  public:
   explicit FakeDesktopMediaPicker(
       FakeDesktopMediaPickerFactory::TestFlags* expectation)
-      : expectation_(expectation), weak_factory_(this) {
+      : expectation_(expectation) {
     expectation_->picker_created = true;
   }
   ~FakeDesktopMediaPicker() override { expectation_->picker_deleted = true; }
@@ -68,7 +68,7 @@
   FakeDesktopMediaPickerFactory::TestFlags* expectation_;
   DoneCallback done_callback_;
 
-  base::WeakPtrFactory<FakeDesktopMediaPicker> weak_factory_;
+  base::WeakPtrFactory<FakeDesktopMediaPicker> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(FakeDesktopMediaPicker);
 };
diff --git a/chrome/browser/media/webrtc/media_stream_capture_indicator.cc b/chrome/browser/media/webrtc/media_stream_capture_indicator.cc
index 25f9bb09..8cda295 100644
--- a/chrome/browser/media/webrtc/media_stream_capture_indicator.cc
+++ b/chrome/browser/media/webrtc/media_stream_capture_indicator.cc
@@ -90,9 +90,7 @@
  public:
   WebContentsDeviceUsage(scoped_refptr<MediaStreamCaptureIndicator> indicator,
                          WebContents* web_contents)
-      : WebContentsObserver(web_contents),
-        indicator_(std::move(indicator)),
-        weak_factory_(this) {}
+      : WebContentsObserver(web_contents), indicator_(std::move(indicator)) {}
 
   bool IsCapturingAudio() const { return audio_stream_count_ > 0; }
   bool IsCapturingVideo() const { return video_stream_count_ > 0; }
@@ -128,7 +126,7 @@
   int desktop_stream_count_ = 0;
 
   base::OnceClosure stop_callback_;
-  base::WeakPtrFactory<WebContentsDeviceUsage> weak_factory_;
+  base::WeakPtrFactory<WebContentsDeviceUsage> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(WebContentsDeviceUsage);
 };
diff --git a/chrome/browser/media/webrtc/native_desktop_media_list.cc b/chrome/browser/media/webrtc/native_desktop_media_list.cc
index e8f454a..872152ce 100644
--- a/chrome/browser/media/webrtc/native_desktop_media_list.cc
+++ b/chrome/browser/media/webrtc/native_desktop_media_list.cc
@@ -231,8 +231,7 @@
     std::unique_ptr<webrtc::DesktopCapturer> capturer)
     : DesktopMediaListBase(base::TimeDelta::FromMilliseconds(
           kDefaultNativeDesktopMediaListUpdatePeriod)),
-      thread_("DesktopMediaListCaptureThread"),
-      weak_factory_(this) {
+      thread_("DesktopMediaListCaptureThread") {
   type_ = type;
 
 #if defined(OS_WIN) || defined(OS_MACOSX)
diff --git a/chrome/browser/media/webrtc/native_desktop_media_list.h b/chrome/browser/media/webrtc/native_desktop_media_list.h
index 75c9ca0..efee172 100644
--- a/chrome/browser/media/webrtc/native_desktop_media_list.h
+++ b/chrome/browser/media/webrtc/native_desktop_media_list.h
@@ -58,7 +58,7 @@
   int pending_aura_capture_requests_ = 0;
   bool pending_native_thumbnail_capture_ = false;
 #endif
-  base::WeakPtrFactory<NativeDesktopMediaList> weak_factory_;
+  base::WeakPtrFactory<NativeDesktopMediaList> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(NativeDesktopMediaList);
 };
diff --git a/chrome/browser/media/webrtc/permission_bubble_media_access_handler.cc b/chrome/browser/media/webrtc/permission_bubble_media_access_handler.cc
index 9a49230..df45903 100644
--- a/chrome/browser/media/webrtc/permission_bubble_media_access_handler.cc
+++ b/chrome/browser/media/webrtc/permission_bubble_media_access_handler.cc
@@ -62,8 +62,7 @@
   RepeatingMediaResponseCallback callback;
 };
 
-PermissionBubbleMediaAccessHandler::PermissionBubbleMediaAccessHandler()
-    : weak_factory_(this) {
+PermissionBubbleMediaAccessHandler::PermissionBubbleMediaAccessHandler() {
   // PermissionBubbleMediaAccessHandler should be created on UI thread.
   // Otherwise, it will not receive
   // content::NOTIFICATION_WEB_CONTENTS_DESTROYED, and that will result in
diff --git a/chrome/browser/media/webrtc/permission_bubble_media_access_handler.h b/chrome/browser/media/webrtc/permission_bubble_media_access_handler.h
index 87f4893..53da4bb7 100644
--- a/chrome/browser/media/webrtc/permission_bubble_media_access_handler.h
+++ b/chrome/browser/media/webrtc/permission_bubble_media_access_handler.h
@@ -61,7 +61,7 @@
   RequestsMaps pending_requests_;
   content::NotificationRegistrar notifications_registrar_;
 
-  base::WeakPtrFactory<PermissionBubbleMediaAccessHandler> weak_factory_;
+  base::WeakPtrFactory<PermissionBubbleMediaAccessHandler> weak_factory_{this};
 };
 
 #endif  // CHROME_BROWSER_MEDIA_WEBRTC_PERMISSION_BUBBLE_MEDIA_ACCESS_HANDLER_H_
diff --git a/chrome/browser/media/webrtc/tab_desktop_media_list.cc b/chrome/browser/media/webrtc/tab_desktop_media_list.cc
index 86a3655..6c270776 100644
--- a/chrome/browser/media/webrtc/tab_desktop_media_list.cc
+++ b/chrome/browser/media/webrtc/tab_desktop_media_list.cc
@@ -61,8 +61,7 @@
 
 TabDesktopMediaList::TabDesktopMediaList()
     : DesktopMediaListBase(base::TimeDelta::FromMilliseconds(
-          kDefaultTabDesktopMediaListUpdatePeriod)),
-      weak_factory_(this) {
+          kDefaultTabDesktopMediaListUpdatePeriod)) {
   type_ = DesktopMediaID::TYPE_WEB_CONTENTS;
   thumbnail_task_runner_ = base::CreateSequencedTaskRunnerWithTraits(
       {base::MayBlock(), base::TaskPriority::USER_VISIBLE});
diff --git a/chrome/browser/media/webrtc/tab_desktop_media_list.h b/chrome/browser/media/webrtc/tab_desktop_media_list.h
index 2574c53..8bb4557 100644
--- a/chrome/browser/media/webrtc/tab_desktop_media_list.h
+++ b/chrome/browser/media/webrtc/tab_desktop_media_list.h
@@ -23,7 +23,7 @@
   // Task runner used for the |worker_|.
   scoped_refptr<base::SequencedTaskRunner> thumbnail_task_runner_;
 
-  base::WeakPtrFactory<TabDesktopMediaList> weak_factory_;
+  base::WeakPtrFactory<TabDesktopMediaList> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(TabDesktopMediaList);
 };
diff --git a/chrome/browser/media/webrtc/webrtc_rtp_dump_handler.cc b/chrome/browser/media/webrtc/webrtc_rtp_dump_handler.cc
index 0900ab0b..070a81a 100644
--- a/chrome/browser/media/webrtc/webrtc_rtp_dump_handler.cc
+++ b/chrome/browser/media/webrtc/webrtc_rtp_dump_handler.cc
@@ -53,9 +53,7 @@
 WebRtcRtpDumpHandler::WebRtcRtpDumpHandler(const base::FilePath& dump_dir)
     : dump_dir_(dump_dir),
       incoming_state_(STATE_NONE),
-      outgoing_state_(STATE_NONE),
-      weak_ptr_factory_(this) {
-}
+      outgoing_state_(STATE_NONE) {}
 
 WebRtcRtpDumpHandler::~WebRtcRtpDumpHandler() {
   DCHECK_CALLED_ON_VALID_SEQUENCE(main_sequence_);
diff --git a/chrome/browser/media/webrtc/webrtc_rtp_dump_handler.h b/chrome/browser/media/webrtc/webrtc_rtp_dump_handler.h
index da67198..3c40044 100644
--- a/chrome/browser/media/webrtc/webrtc_rtp_dump_handler.h
+++ b/chrome/browser/media/webrtc/webrtc_rtp_dump_handler.h
@@ -131,7 +131,7 @@
   // The object used to create and write the dump file.
   std::unique_ptr<WebRtcRtpDumpWriter> dump_writer_;
 
-  base::WeakPtrFactory<WebRtcRtpDumpHandler> weak_ptr_factory_;
+  base::WeakPtrFactory<WebRtcRtpDumpHandler> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(WebRtcRtpDumpHandler);
 };
diff --git a/chrome/browser/media/webrtc/webrtc_rtp_dump_writer.cc b/chrome/browser/media/webrtc/webrtc_rtp_dump_writer.cc
index 661337e..417a4acd 100644
--- a/chrome/browser/media/webrtc/webrtc_rtp_dump_writer.cc
+++ b/chrome/browser/media/webrtc/webrtc_rtp_dump_writer.cc
@@ -264,8 +264,7 @@
       background_task_runner_(base::CreateSequencedTaskRunnerWithTraits(
           {base::MayBlock(), base::TaskPriority::BEST_EFFORT})),
       incoming_file_thread_worker_(new FileWorker(incoming_dump_path)),
-      outgoing_file_thread_worker_(new FileWorker(outgoing_dump_path)),
-      weak_ptr_factory_(this) {}
+      outgoing_file_thread_worker_(new FileWorker(outgoing_dump_path)) {}
 
 WebRtcRtpDumpWriter::~WebRtcRtpDumpWriter() {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
diff --git a/chrome/browser/media/webrtc/webrtc_rtp_dump_writer.h b/chrome/browser/media/webrtc/webrtc_rtp_dump_writer.h
index 36551a9..39af6dfa 100644
--- a/chrome/browser/media/webrtc/webrtc_rtp_dump_writer.h
+++ b/chrome/browser/media/webrtc/webrtc_rtp_dump_writer.h
@@ -140,7 +140,7 @@
 
   SEQUENCE_CHECKER(sequence_checker_);
 
-  base::WeakPtrFactory<WebRtcRtpDumpWriter> weak_ptr_factory_;
+  base::WeakPtrFactory<WebRtcRtpDumpWriter> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(WebRtcRtpDumpWriter);
 };
diff --git a/chrome/browser/media_galleries/fileapi/readahead_file_stream_reader.cc b/chrome/browser/media_galleries/fileapi/readahead_file_stream_reader.cc
index b7f06386..63f8afcd 100644
--- a/chrome/browser/media_galleries/fileapi/readahead_file_stream_reader.cc
+++ b/chrome/browser/media_galleries/fileapi/readahead_file_stream_reader.cc
@@ -24,11 +24,7 @@
 }  // namespace
 
 ReadaheadFileStreamReader::ReadaheadFileStreamReader(FileStreamReader* source)
-    : source_(source),
-      source_error_(0),
-      source_has_pending_read_(false),
-      weak_factory_(this) {
-}
+    : source_(source), source_error_(0), source_has_pending_read_(false) {}
 
 ReadaheadFileStreamReader::~ReadaheadFileStreamReader() {}
 
diff --git a/chrome/browser/media_galleries/fileapi/readahead_file_stream_reader.h b/chrome/browser/media_galleries/fileapi/readahead_file_stream_reader.h
index 32213d3..6a3ace0 100644
--- a/chrome/browser/media_galleries/fileapi/readahead_file_stream_reader.h
+++ b/chrome/browser/media_galleries/fileapi/readahead_file_stream_reader.h
@@ -56,7 +56,7 @@
   scoped_refptr<net::DrainableIOBuffer> pending_sink_buffer_;
   net::CompletionOnceCallback pending_read_callback_;
 
-  base::WeakPtrFactory<ReadaheadFileStreamReader> weak_factory_;
+  base::WeakPtrFactory<ReadaheadFileStreamReader> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(ReadaheadFileStreamReader);
 };
diff --git a/chrome/browser/media_galleries/fileapi/supported_audio_video_checker.cc b/chrome/browser/media_galleries/fileapi/supported_audio_video_checker.cc
index 9eee9cd..c452d3fe 100644
--- a/chrome/browser/media_galleries/fileapi/supported_audio_video_checker.cc
+++ b/chrome/browser/media_galleries/fileapi/supported_audio_video_checker.cc
@@ -87,9 +87,7 @@
 
 SupportedAudioVideoChecker::SupportedAudioVideoChecker(
     const base::FilePath& path)
-    : path_(path),
-      weak_factory_(this) {
-}
+    : path_(path) {}
 
 // static
 void SupportedAudioVideoChecker::RetrieveConnectorOnUIThread(
diff --git a/chrome/browser/media_galleries/fileapi/supported_audio_video_checker.h b/chrome/browser/media_galleries/fileapi/supported_audio_video_checker.h
index ec4915ea..9b550e2 100644
--- a/chrome/browser/media_galleries/fileapi/supported_audio_video_checker.h
+++ b/chrome/browser/media_galleries/fileapi/supported_audio_video_checker.h
@@ -50,7 +50,7 @@
   base::FilePath path_;
   storage::CopyOrMoveFileValidator::ResultCallback callback_;
   std::unique_ptr<SafeAudioVideoChecker> safe_checker_;
-  base::WeakPtrFactory<SupportedAudioVideoChecker> weak_factory_;
+  base::WeakPtrFactory<SupportedAudioVideoChecker> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(SupportedAudioVideoChecker);
 };
diff --git a/chrome/browser/media_galleries/fileapi/supported_image_type_validator.cc b/chrome/browser/media_galleries/fileapi/supported_image_type_validator.cc
index bd151d49..63a5282 100644
--- a/chrome/browser/media_galleries/fileapi/supported_image_type_validator.cc
+++ b/chrome/browser/media_galleries/fileapi/supported_image_type_validator.cc
@@ -116,9 +116,7 @@
 
 SupportedImageTypeValidator::SupportedImageTypeValidator(
     const base::FilePath& path)
-    : path_(path),
-      weak_factory_(this) {
-}
+    : path_(path) {}
 
 void SupportedImageTypeValidator::OnFileOpen(
     std::unique_ptr<std::string> data) {
diff --git a/chrome/browser/media_galleries/fileapi/supported_image_type_validator.h b/chrome/browser/media_galleries/fileapi/supported_image_type_validator.h
index 5e74cf573..29538d8 100644
--- a/chrome/browser/media_galleries/fileapi/supported_image_type_validator.h
+++ b/chrome/browser/media_galleries/fileapi/supported_image_type_validator.h
@@ -35,7 +35,7 @@
 
   base::FilePath path_;
   storage::CopyOrMoveFileValidator::ResultCallback callback_;
-  base::WeakPtrFactory<SupportedImageTypeValidator> weak_factory_;
+  base::WeakPtrFactory<SupportedImageTypeValidator> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(SupportedImageTypeValidator);
 };
diff --git a/chrome/browser/media_galleries/gallery_watch_manager.cc b/chrome/browser/media_galleries/gallery_watch_manager.cc
index 867dcbf7..baea6e9 100644
--- a/chrome/browser/media_galleries/gallery_watch_manager.cc
+++ b/chrome/browser/media_galleries/gallery_watch_manager.cc
@@ -95,14 +95,14 @@
 
   SEQUENCE_CHECKER(sequence_checker_);
 
-  base::WeakPtrFactory<FileWatchManager> weak_factory_;
+  base::WeakPtrFactory<FileWatchManager> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(FileWatchManager);
 };
 
 GalleryWatchManager::FileWatchManager::FileWatchManager(
     const base::FilePathWatcher::Callback& callback)
-    : callback_(callback), weak_factory_(this) {
+    : callback_(callback) {
   DCHECK_CURRENTLY_ON(BrowserThread::UI);
 
   // Bind to the sequenced task runner, not the UI thread.
@@ -189,8 +189,7 @@
 GalleryWatchManager::GalleryWatchManager()
     : storage_monitor_observed_(false),
       watch_manager_task_runner_(base::CreateSequencedTaskRunnerWithTraits(
-          {base::MayBlock(), base::TaskPriority::BEST_EFFORT})),
-      weak_factory_(this) {
+          {base::MayBlock(), base::TaskPriority::BEST_EFFORT})) {
   DCHECK_CURRENTLY_ON(BrowserThread::UI);
   watch_manager_.reset(new FileWatchManager(base::Bind(
       &GalleryWatchManager::OnFilePathChanged, weak_factory_.GetWeakPtr())));
diff --git a/chrome/browser/media_galleries/gallery_watch_manager.h b/chrome/browser/media_galleries/gallery_watch_manager.h
index 01c8fe5f..e408841 100644
--- a/chrome/browser/media_galleries/gallery_watch_manager.h
+++ b/chrome/browser/media_galleries/gallery_watch_manager.h
@@ -172,7 +172,7 @@
   // pointers.
   BrowserContextSubscriptionMap browser_context_subscription_map_;
 
-  base::WeakPtrFactory<GalleryWatchManager> weak_factory_;
+  base::WeakPtrFactory<GalleryWatchManager> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(GalleryWatchManager);
 };
diff --git a/chrome/browser/media_galleries/media_galleries_permission_controller_unittest.cc b/chrome/browser/media_galleries/media_galleries_permission_controller_unittest.cc
index 06c1933..096c4aaa 100644
--- a/chrome/browser/media_galleries/media_galleries_permission_controller_unittest.cc
+++ b/chrome/browser/media_galleries/media_galleries_permission_controller_unittest.cc
@@ -47,9 +47,7 @@
       : dialog_(NULL),
         dialog_update_count_at_destruction_(0),
         controller_(NULL),
-        profile_(new TestingProfile()),
-        weak_factory_(this) {
-  }
+        profile_(new TestingProfile()) {}
 
   ~MediaGalleriesPermissionControllerTest() override {
     EXPECT_FALSE(controller_);
@@ -162,8 +160,8 @@
   std::unique_ptr<TestingProfile> profile_;
   std::unique_ptr<MediaGalleriesPreferences> gallery_prefs_;
 
-  base::WeakPtrFactory<MediaGalleriesPermissionControllerTest>
-      weak_factory_;
+  base::WeakPtrFactory<MediaGalleriesPermissionControllerTest> weak_factory_{
+      this};
 
   DISALLOW_COPY_AND_ASSIGN(MediaGalleriesPermissionControllerTest);
 };
diff --git a/chrome/browser/media_galleries/media_galleries_preferences.cc b/chrome/browser/media_galleries/media_galleries_preferences.cc
index 7267e60..e76a726 100644
--- a/chrome/browser/media_galleries/media_galleries_preferences.cc
+++ b/chrome/browser/media_galleries/media_galleries_preferences.cc
@@ -455,9 +455,7 @@
 MediaGalleriesPreferences::MediaGalleriesPreferences(Profile* profile)
     : initialized_(false),
       profile_(profile),
-      extension_prefs_for_testing_(NULL),
-      weak_factory_(this) {
-}
+      extension_prefs_for_testing_(nullptr) {}
 
 MediaGalleriesPreferences::~MediaGalleriesPreferences() {
   if (StorageMonitor::GetInstance())
diff --git a/chrome/browser/media_galleries/media_galleries_preferences.h b/chrome/browser/media_galleries/media_galleries_preferences.h
index e93c082..026abaa3 100644
--- a/chrome/browser/media_galleries/media_galleries_preferences.h
+++ b/chrome/browser/media_galleries/media_galleries_preferences.h
@@ -368,7 +368,7 @@
   base::ObserverList<GalleryChangeObserver>::Unchecked
       gallery_change_observers_;
 
-  base::WeakPtrFactory<MediaGalleriesPreferences> weak_factory_;
+  base::WeakPtrFactory<MediaGalleriesPreferences> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(MediaGalleriesPreferences);
 };
diff --git a/chrome/browser/memory/swap_thrashing_monitor.cc b/chrome/browser/memory/swap_thrashing_monitor.cc
index 09b8fdc..52b3b70 100644
--- a/chrome/browser/memory/swap_thrashing_monitor.cc
+++ b/chrome/browser/memory/swap_thrashing_monitor.cc
@@ -94,8 +94,7 @@
     : delegate_(GetPlatformSpecificDelegate().release(),
                 base::OnTaskRunnerDeleter(blocking_task_runner_)),
       current_swap_thrashing_level_(
-          SwapThrashingLevel::SWAP_THRASHING_LEVEL_NONE),
-      weak_factory_(this) {
+          SwapThrashingLevel::SWAP_THRASHING_LEVEL_NONE) {
   DCHECK(base::FeatureList::IsEnabled(features::kSwapThrashingMonitor));
   StartObserving();
 }
diff --git a/chrome/browser/memory/swap_thrashing_monitor.h b/chrome/browser/memory/swap_thrashing_monitor.h
index 9396d116..02fb4e7 100644
--- a/chrome/browser/memory/swap_thrashing_monitor.h
+++ b/chrome/browser/memory/swap_thrashing_monitor.h
@@ -94,7 +94,7 @@
 
   SEQUENCE_CHECKER(sequence_checker_);
 
-  base::WeakPtrFactory<SwapThrashingMonitor> weak_factory_;
+  base::WeakPtrFactory<SwapThrashingMonitor> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(SwapThrashingMonitor);
 };
diff --git a/chrome/browser/metrics/chrome_metrics_service_client.cc b/chrome/browser/metrics/chrome_metrics_service_client.cc
index a7af66b..d2633e4 100644
--- a/chrome/browser/metrics/chrome_metrics_service_client.cc
+++ b/chrome/browser/metrics/chrome_metrics_service_client.cc
@@ -397,11 +397,12 @@
     metrics::MetricsStateManager* state_manager)
     : metrics_state_manager_(state_manager),
       waiting_for_collect_final_metrics_step_(false),
-      num_async_histogram_fetches_in_progress_(0),
+      num_async_histogram_fetches_in_progress_(0)
 #if BUILDFLAG(ENABLE_PLUGINS)
-      plugin_metrics_provider_(nullptr),
+      ,
+      plugin_metrics_provider_(nullptr)
 #endif
-      weak_ptr_factory_(this) {
+{
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   RecordCommandLineMetrics();
   notification_listeners_active_ = RegisterForNotifications();
diff --git a/chrome/browser/metrics/chrome_metrics_service_client.h b/chrome/browser/metrics/chrome_metrics_service_client.h
index 33bc20a1..46d0889 100644
--- a/chrome/browser/metrics/chrome_metrics_service_client.h
+++ b/chrome/browser/metrics/chrome_metrics_service_client.h
@@ -202,7 +202,7 @@
   std::unique_ptr<base::CallbackList<void(OmniboxLog*)>::Subscription>
       omnibox_url_opened_subscription_;
 
-  base::WeakPtrFactory<ChromeMetricsServiceClient> weak_ptr_factory_;
+  base::WeakPtrFactory<ChromeMetricsServiceClient> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(ChromeMetricsServiceClient);
 };
diff --git a/chrome/browser/metrics/desktop_session_duration/chrome_visibility_observer.cc b/chrome/browser/metrics/desktop_session_duration/chrome_visibility_observer.cc
index d386a05c..9e7f95ac 100644
--- a/chrome/browser/metrics/desktop_session_duration/chrome_visibility_observer.cc
+++ b/chrome/browser/metrics/desktop_session_duration/chrome_visibility_observer.cc
@@ -15,7 +15,7 @@
 
 namespace metrics {
 
-ChromeVisibilityObserver::ChromeVisibilityObserver() : weak_factory_(this) {
+ChromeVisibilityObserver::ChromeVisibilityObserver() {
   BrowserList::AddObserver(this);
   InitVisibilityGapTimeout();
 }
diff --git a/chrome/browser/metrics/desktop_session_duration/chrome_visibility_observer.h b/chrome/browser/metrics/desktop_session_duration/chrome_visibility_observer.h
index cf87ccc..51fa803d 100644
--- a/chrome/browser/metrics/desktop_session_duration/chrome_visibility_observer.h
+++ b/chrome/browser/metrics/desktop_session_duration/chrome_visibility_observer.h
@@ -42,7 +42,7 @@
   // example, when user switching between two browser windows.
   base::TimeDelta visibility_gap_timeout_;
 
-  base::WeakPtrFactory<ChromeVisibilityObserver> weak_factory_;
+  base::WeakPtrFactory<ChromeVisibilityObserver> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(ChromeVisibilityObserver);
 };
diff --git a/chrome/browser/metrics/desktop_session_duration/desktop_session_duration_tracker.cc b/chrome/browser/metrics/desktop_session_duration/desktop_session_duration_tracker.cc
index 65b0be9..2fbf85d5 100644
--- a/chrome/browser/metrics/desktop_session_duration/desktop_session_duration_tracker.cc
+++ b/chrome/browser/metrics/desktop_session_duration/desktop_session_duration_tracker.cc
@@ -106,8 +106,7 @@
 DesktopSessionDurationTracker::DesktopSessionDurationTracker()
     : session_start_(base::TimeTicks::Now()),
       last_user_event_(session_start_),
-      audio_tracker_(this),
-      weak_factory_(this) {
+      audio_tracker_(this) {
   InitInactivityTimeout();
 }
 
diff --git a/chrome/browser/metrics/desktop_session_duration/desktop_session_duration_tracker.h b/chrome/browser/metrics/desktop_session_duration/desktop_session_duration_tracker.h
index 952d0d5..4a4f4a9 100644
--- a/chrome/browser/metrics/desktop_session_duration/desktop_session_duration_tracker.h
+++ b/chrome/browser/metrics/desktop_session_duration/desktop_session_duration_tracker.h
@@ -110,7 +110,7 @@
   ChromeVisibilityObserver visibility_observer_;
   AudibleContentsTracker audio_tracker_;
 
-  base::WeakPtrFactory<DesktopSessionDurationTracker> weak_factory_;
+  base::WeakPtrFactory<DesktopSessionDurationTracker> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(DesktopSessionDurationTracker);
 };
diff --git a/chrome/browser/metrics/network_quality_estimator_provider_impl.cc b/chrome/browser/metrics/network_quality_estimator_provider_impl.cc
index 5cc4ac5..28b1880 100644
--- a/chrome/browser/metrics/network_quality_estimator_provider_impl.cc
+++ b/chrome/browser/metrics/network_quality_estimator_provider_impl.cc
@@ -12,8 +12,7 @@
 
 namespace metrics {
 
-NetworkQualityEstimatorProviderImpl::NetworkQualityEstimatorProviderImpl()
-    : weak_ptr_factory_(this) {
+NetworkQualityEstimatorProviderImpl::NetworkQualityEstimatorProviderImpl() {
   DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
 }
 
diff --git a/chrome/browser/metrics/network_quality_estimator_provider_impl.h b/chrome/browser/metrics/network_quality_estimator_provider_impl.h
index 36c12f6..aebcf24 100644
--- a/chrome/browser/metrics/network_quality_estimator_provider_impl.h
+++ b/chrome/browser/metrics/network_quality_estimator_provider_impl.h
@@ -40,7 +40,8 @@
 
   THREAD_CHECKER(thread_checker_);
 
-  base::WeakPtrFactory<NetworkQualityEstimatorProviderImpl> weak_ptr_factory_;
+  base::WeakPtrFactory<NetworkQualityEstimatorProviderImpl> weak_ptr_factory_{
+      this};
 
   DISALLOW_COPY_AND_ASSIGN(NetworkQualityEstimatorProviderImpl);
 };
diff --git a/chrome/browser/metrics/plugin_metrics_provider.cc b/chrome/browser/metrics/plugin_metrics_provider.cc
index 475484b..ca2058c 100644
--- a/chrome/browser/metrics/plugin_metrics_provider.cc
+++ b/chrome/browser/metrics/plugin_metrics_provider.cc
@@ -106,8 +106,7 @@
 };
 
 PluginMetricsProvider::PluginMetricsProvider(PrefService* local_state)
-    : local_state_(local_state),
-      weak_ptr_factory_(this) {
+    : local_state_(local_state) {
   DCHECK(local_state_);
 
   BrowserChildProcessObserver::Add(this);
diff --git a/chrome/browser/metrics/plugin_metrics_provider.h b/chrome/browser/metrics/plugin_metrics_provider.h
index a8359c81..dcf0fad 100644
--- a/chrome/browser/metrics/plugin_metrics_provider.h
+++ b/chrome/browser/metrics/plugin_metrics_provider.h
@@ -106,7 +106,7 @@
   // Buffer of child process notifications for quick access.
   std::map<base::string16, ChildProcessStats> child_process_stats_buffer_;
 
-  base::WeakPtrFactory<PluginMetricsProvider> weak_ptr_factory_;
+  base::WeakPtrFactory<PluginMetricsProvider> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(PluginMetricsProvider);
 };
diff --git a/chrome/browser/metrics/subprocess_metrics_provider.cc b/chrome/browser/metrics/subprocess_metrics_provider.cc
index 7fc5fc52..2036ba7e 100644
--- a/chrome/browser/metrics/subprocess_metrics_provider.cc
+++ b/chrome/browser/metrics/subprocess_metrics_provider.cc
@@ -31,7 +31,7 @@
 }  // namespace
 
 SubprocessMetricsProvider::SubprocessMetricsProvider()
-    : scoped_observer_(this), weak_ptr_factory_(this) {
+    : scoped_observer_(this) {
   base::StatisticsRecorder::RegisterHistogramProvider(
       weak_ptr_factory_.GetWeakPtr());
   content::BrowserChildProcessObserver::Add(this);
diff --git a/chrome/browser/metrics/subprocess_metrics_provider.h b/chrome/browser/metrics/subprocess_metrics_provider.h
index 426502be..b995346 100644
--- a/chrome/browser/metrics/subprocess_metrics_provider.h
+++ b/chrome/browser/metrics/subprocess_metrics_provider.h
@@ -108,7 +108,7 @@
   ScopedObserver<content::RenderProcessHost, SubprocessMetricsProvider>
       scoped_observer_;
 
-  base::WeakPtrFactory<SubprocessMetricsProvider> weak_ptr_factory_;
+  base::WeakPtrFactory<SubprocessMetricsProvider> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(SubprocessMetricsProvider);
 };
diff --git a/chrome/browser/metrics/thread_watcher.cc b/chrome/browser/metrics/thread_watcher.cc
index e30b515f..d291e24 100644
--- a/chrome/browser/metrics/thread_watcher.cc
+++ b/chrome/browser/metrics/thread_watcher.cc
@@ -50,8 +50,7 @@
       unresponsive_count_(0),
       hung_processing_complete_(false),
       unresponsive_threshold_(params.unresponsive_threshold),
-      crash_on_hang_(params.crash_on_hang),
-      weak_ptr_factory_(this) {
+      crash_on_hang_(params.crash_on_hang) {
   DCHECK(WatchDogThread::CurrentlyOnWatchDogThread());
   Initialize();
 }
diff --git a/chrome/browser/metrics/thread_watcher.h b/chrome/browser/metrics/thread_watcher.h
index 7e3658d..de3f755 100644
--- a/chrome/browser/metrics/thread_watcher.h
+++ b/chrome/browser/metrics/thread_watcher.h
@@ -284,7 +284,7 @@
   // We use this factory to create callback tasks for ThreadWatcher object. We
   // use this during ping-pong messaging between WatchDog thread and watched
   // thread.
-  base::WeakPtrFactory<ThreadWatcher> weak_ptr_factory_;
+  base::WeakPtrFactory<ThreadWatcher> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(ThreadWatcher);
 };
diff --git a/chrome/browser/metrics/ukm_background_recorder_service.cc b/chrome/browser/metrics/ukm_background_recorder_service.cc
index 1d860e4a..138c777 100644
--- a/chrome/browser/metrics/ukm_background_recorder_service.cc
+++ b/chrome/browser/metrics/ukm_background_recorder_service.cc
@@ -20,8 +20,7 @@
 UkmBackgroundRecorderService::UkmBackgroundRecorderService(Profile* profile)
     : history_service_(HistoryServiceFactory::GetForProfile(
           profile,
-          ServiceAccessType::EXPLICIT_ACCESS)),
-      weak_ptr_factory_(this) {
+          ServiceAccessType::EXPLICIT_ACCESS)) {
   DCHECK(history_service_);
 }
 
diff --git a/chrome/browser/metrics/ukm_background_recorder_service.h b/chrome/browser/metrics/ukm_background_recorder_service.h
index 4c8bbba..ec21e25d 100644
--- a/chrome/browser/metrics/ukm_background_recorder_service.h
+++ b/chrome/browser/metrics/ukm_background_recorder_service.h
@@ -72,7 +72,7 @@
   // Task tracker used for querying URLs in the history service.
   base::CancelableTaskTracker task_tracker_;
 
-  base::WeakPtrFactory<UkmBackgroundRecorderService> weak_ptr_factory_;
+  base::WeakPtrFactory<UkmBackgroundRecorderService> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(UkmBackgroundRecorderService);
 };
diff --git a/chrome/browser/net/file_downloader.cc b/chrome/browser/net/file_downloader.cc
index 9a591e0..f07e273 100644
--- a/chrome/browser/net/file_downloader.cc
+++ b/chrome/browser/net/file_downloader.cc
@@ -32,8 +32,7 @@
     const net::NetworkTrafficAnnotationTag& traffic_annotation)
     : url_loader_factory_(url_loader_factory),
       callback_(std::move(callback)),
-      local_path_(path),
-      weak_ptr_factory_(this) {
+      local_path_(path) {
   auto resource_request = std::make_unique<network::ResourceRequest>();
   resource_request->url = url;
   resource_request->load_flags =
diff --git a/chrome/browser/net/file_downloader.h b/chrome/browser/net/file_downloader.h
index 9b4bdc9..17bc383 100644
--- a/chrome/browser/net/file_downloader.h
+++ b/chrome/browser/net/file_downloader.h
@@ -64,7 +64,7 @@
 
   base::FilePath local_path_;
 
-  base::WeakPtrFactory<FileDownloader> weak_ptr_factory_;
+  base::WeakPtrFactory<FileDownloader> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(FileDownloader);
 };
diff --git a/chrome/browser/net/net_error_tab_helper.cc b/chrome/browser/net/net_error_tab_helper.cc
index d3987643..f2dd356 100644
--- a/chrome/browser/net/net_error_tab_helper.cc
+++ b/chrome/browser/net/net_error_tab_helper.cc
@@ -141,8 +141,7 @@
 #if BUILDFLAG(ENABLE_OFFLINE_PAGES)
       is_showing_download_button_in_error_page_(false),
 #endif  // BUILDFLAG(ENABLE_OFFLINE_PAGES)
-      dns_probe_status_(error_page::DNS_PROBE_POSSIBLE),
-      weak_factory_(this) {
+      dns_probe_status_(error_page::DNS_PROBE_POSSIBLE) {
   DCHECK_CURRENTLY_ON(BrowserThread::UI);
 
   // If this helper is under test, it won't have a WebContents.
diff --git a/chrome/browser/net/net_error_tab_helper.h b/chrome/browser/net/net_error_tab_helper.h
index 6e227d2e..e00ba06 100644
--- a/chrome/browser/net/net_error_tab_helper.h
+++ b/chrome/browser/net/net_error_tab_helper.h
@@ -158,7 +158,7 @@
   // Preference storing the user's current easter egg game high score.
   IntegerPrefMember easter_egg_high_score_;
 
-  base::WeakPtrFactory<NetErrorTabHelper> weak_factory_;
+  base::WeakPtrFactory<NetErrorTabHelper> weak_factory_{this};
 
   WEB_CONTENTS_USER_DATA_KEY_DECL();
 
diff --git a/chrome/browser/notifications/notification_display_service_impl.cc b/chrome/browser/notifications/notification_display_service_impl.cc
index 6d40ef9..061c725 100644
--- a/chrome/browser/notifications/notification_display_service_impl.cc
+++ b/chrome/browser/notifications/notification_display_service_impl.cc
@@ -111,8 +111,7 @@
 NotificationDisplayServiceImpl::NotificationDisplayServiceImpl(Profile* profile)
     : profile_(profile),
       message_center_bridge_(CreateMessageCenterBridge(profile)),
-      bridge_(GetNativeNotificationPlatformBridge()),
-      weak_factory_(this) {
+      bridge_(GetNativeNotificationPlatformBridge()) {
   // TODO(peter): Move these to the NotificationDisplayServiceFactory.
   if (profile_) {
     AddNotificationHandler(
diff --git a/chrome/browser/notifications/notification_display_service_impl.h b/chrome/browser/notifications/notification_display_service_impl.h
index d8d5b7e6..92fb3cca 100644
--- a/chrome/browser/notifications/notification_display_service_impl.h
+++ b/chrome/browser/notifications/notification_display_service_impl.h
@@ -101,7 +101,7 @@
   std::map<NotificationHandler::Type, std::unique_ptr<NotificationHandler>>
       notification_handlers_;
 
-  base::WeakPtrFactory<NotificationDisplayServiceImpl> weak_factory_;
+  base::WeakPtrFactory<NotificationDisplayServiceImpl> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(NotificationDisplayServiceImpl);
 };
diff --git a/chrome/browser/notifications/notification_permission_context.cc b/chrome/browser/notifications/notification_permission_context.cc
index c88d0fe..8325de5 100644
--- a/chrome/browser/notifications/notification_permission_context.cc
+++ b/chrome/browser/notifications/notification_permission_context.cc
@@ -198,8 +198,7 @@
 NotificationPermissionContext::NotificationPermissionContext(Profile* profile)
     : PermissionContextBase(profile,
                             CONTENT_SETTINGS_TYPE_NOTIFICATIONS,
-                            blink::mojom::FeaturePolicyFeature::kNotFound),
-      weak_factory_ui_thread_(this) {}
+                            blink::mojom::FeaturePolicyFeature::kNotFound) {}
 
 NotificationPermissionContext::~NotificationPermissionContext() {}
 
diff --git a/chrome/browser/notifications/notification_permission_context.h b/chrome/browser/notifications/notification_permission_context.h
index 0db5a6ed..8ac575c6 100644
--- a/chrome/browser/notifications/notification_permission_context.h
+++ b/chrome/browser/notifications/notification_permission_context.h
@@ -125,7 +125,8 @@
                             ContentSetting content_setting) override;
   bool IsRestrictedToSecureOrigins() const override;
 
-  base::WeakPtrFactory<NotificationPermissionContext> weak_factory_ui_thread_;
+  base::WeakPtrFactory<NotificationPermissionContext> weak_factory_ui_thread_{
+      this};
 };
 
 #endif  // CHROME_BROWSER_NOTIFICATIONS_NOTIFICATION_PERMISSION_CONTEXT_H_
diff --git a/chrome/browser/notifications/scheduler/internal/icon_store.cc b/chrome/browser/notifications/scheduler/internal/icon_store.cc
index 9652056a..332b7a0 100644
--- a/chrome/browser/notifications/scheduler/internal/icon_store.cc
+++ b/chrome/browser/notifications/scheduler/internal/icon_store.cc
@@ -31,7 +31,7 @@
 
 IconProtoDbStore::IconProtoDbStore(
     std::unique_ptr<leveldb_proto::ProtoDatabase<proto::Icon, IconEntry>> db)
-    : db_(std::move(db)), weak_ptr_factory_(this) {}
+    : db_(std::move(db)) {}
 
 IconProtoDbStore::~IconProtoDbStore() = default;
 
diff --git a/chrome/browser/notifications/scheduler/internal/icon_store.h b/chrome/browser/notifications/scheduler/internal/icon_store.h
index b016b79..c50f5f4 100644
--- a/chrome/browser/notifications/scheduler/internal/icon_store.h
+++ b/chrome/browser/notifications/scheduler/internal/icon_store.h
@@ -85,7 +85,7 @@
   // The proto database instance that persists data.
   std::unique_ptr<leveldb_proto::ProtoDatabase<proto::Icon, IconEntry>> db_;
 
-  base::WeakPtrFactory<IconProtoDbStore> weak_ptr_factory_;
+  base::WeakPtrFactory<IconProtoDbStore> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(IconProtoDbStore);
 };
diff --git a/chrome/browser/notifications/scheduler/internal/impression_history_tracker.cc b/chrome/browser/notifications/scheduler/internal/impression_history_tracker.cc
index 92adbf6..26d55d2 100644
--- a/chrome/browser/notifications/scheduler/internal/impression_history_tracker.cc
+++ b/chrome/browser/notifications/scheduler/internal/impression_history_tracker.cc
@@ -48,8 +48,7 @@
       registered_clients_(std::move(registered_clients)),
       initialized_(false),
       delegate_(nullptr),
-      clock_(clock),
-      weak_ptr_factory_(this) {}
+      clock_(clock) {}
 
 ImpressionHistoryTrackerImpl::~ImpressionHistoryTrackerImpl() = default;
 
diff --git a/chrome/browser/notifications/scheduler/internal/impression_history_tracker.h b/chrome/browser/notifications/scheduler/internal/impression_history_tracker.h
index ecf3ff28..2674808 100644
--- a/chrome/browser/notifications/scheduler/internal/impression_history_tracker.h
+++ b/chrome/browser/notifications/scheduler/internal/impression_history_tracker.h
@@ -182,7 +182,7 @@
   // The clock to provide the current timestamp.
   base::Clock* clock_;
 
-  base::WeakPtrFactory<ImpressionHistoryTrackerImpl> weak_ptr_factory_;
+  base::WeakPtrFactory<ImpressionHistoryTrackerImpl> weak_ptr_factory_{this};
   DISALLOW_COPY_AND_ASSIGN(ImpressionHistoryTrackerImpl);
 };
 
diff --git a/chrome/browser/notifications/scheduler/internal/impression_store.cc b/chrome/browser/notifications/scheduler/internal/impression_store.cc
index c917b3d5..00054fe4 100644
--- a/chrome/browser/notifications/scheduler/internal/impression_store.cc
+++ b/chrome/browser/notifications/scheduler/internal/impression_store.cc
@@ -25,7 +25,7 @@
 ImpressionStore::ImpressionStore(
     std::unique_ptr<
         leveldb_proto::ProtoDatabase<proto::ClientState, ClientState>> db)
-    : db_(std::move(db)), weak_ptr_factory_(this) {}
+    : db_(std::move(db)) {}
 
 ImpressionStore::~ImpressionStore() = default;
 
diff --git a/chrome/browser/notifications/scheduler/internal/impression_store.h b/chrome/browser/notifications/scheduler/internal/impression_store.h
index b7607d1..b5e3a915 100644
--- a/chrome/browser/notifications/scheduler/internal/impression_store.h
+++ b/chrome/browser/notifications/scheduler/internal/impression_store.h
@@ -63,7 +63,7 @@
 
   std::unique_ptr<leveldb_proto::ProtoDatabase<proto::ClientState, ClientState>>
       db_;
-  base::WeakPtrFactory<ImpressionStore> weak_ptr_factory_;
+  base::WeakPtrFactory<ImpressionStore> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(ImpressionStore);
 };
diff --git a/chrome/browser/notifications/scheduler/internal/init_aware_scheduler.cc b/chrome/browser/notifications/scheduler/internal/init_aware_scheduler.cc
index 5bd7516..7dff59e 100644
--- a/chrome/browser/notifications/scheduler/internal/init_aware_scheduler.cc
+++ b/chrome/browser/notifications/scheduler/internal/init_aware_scheduler.cc
@@ -13,7 +13,7 @@
 
 InitAwareNotificationScheduler::InitAwareNotificationScheduler(
     std::unique_ptr<NotificationScheduler> impl)
-    : impl_(std::move(impl)), weak_ptr_factory_(this) {}
+    : impl_(std::move(impl)) {}
 
 InitAwareNotificationScheduler::~InitAwareNotificationScheduler() = default;
 
diff --git a/chrome/browser/notifications/scheduler/internal/init_aware_scheduler.h b/chrome/browser/notifications/scheduler/internal/init_aware_scheduler.h
index 701a9e5..7f9aedf 100644
--- a/chrome/browser/notifications/scheduler/internal/init_aware_scheduler.h
+++ b/chrome/browser/notifications/scheduler/internal/init_aware_scheduler.h
@@ -66,7 +66,7 @@
   // Actual implementation.
   std::unique_ptr<NotificationScheduler> impl_;
 
-  base::WeakPtrFactory<InitAwareNotificationScheduler> weak_ptr_factory_;
+  base::WeakPtrFactory<InitAwareNotificationScheduler> weak_ptr_factory_{this};
   DISALLOW_COPY_AND_ASSIGN(InitAwareNotificationScheduler);
 };
 
diff --git a/chrome/browser/notifications/scheduler/internal/notification_scheduler.cc b/chrome/browser/notifications/scheduler/internal/notification_scheduler.cc
index eb2204c..172ba24 100644
--- a/chrome/browser/notifications/scheduler/internal/notification_scheduler.cc
+++ b/chrome/browser/notifications/scheduler/internal/notification_scheduler.cc
@@ -41,8 +41,7 @@
   InitHelper()
       : context_(nullptr),
         notification_manager_delegate_(nullptr),
-        impression_tracker_delegate_(nullptr),
-        weak_ptr_factory_(this) {}
+        impression_tracker_delegate_(nullptr) {}
 
   ~InitHelper() = default;
 
@@ -90,7 +89,7 @@
   ImpressionHistoryTracker::Delegate* impression_tracker_delegate_;
   InitCallback callback_;
 
-  base::WeakPtrFactory<InitHelper> weak_ptr_factory_;
+  base::WeakPtrFactory<InitHelper> weak_ptr_factory_{this};
   DISALLOW_COPY_AND_ASSIGN(InitHelper);
 };
 
@@ -102,8 +101,7 @@
   NotificationSchedulerImpl(
       std::unique_ptr<NotificationSchedulerContext> context)
       : context_(std::move(context)),
-        task_start_time_(SchedulerTaskTime::kUnknown),
-        weak_ptr_factory_(this) {}
+        task_start_time_(SchedulerTaskTime::kUnknown) {}
 
   ~NotificationSchedulerImpl() override = default;
 
@@ -286,7 +284,7 @@
   // currently not running in a background task.
   SchedulerTaskTime task_start_time_;
 
-  base::WeakPtrFactory<NotificationSchedulerImpl> weak_ptr_factory_;
+  base::WeakPtrFactory<NotificationSchedulerImpl> weak_ptr_factory_{this};
   DISALLOW_COPY_AND_ASSIGN(NotificationSchedulerImpl);
 };
 
diff --git a/chrome/browser/notifications/scheduler/internal/notification_store.cc b/chrome/browser/notifications/scheduler/internal/notification_store.cc
index 74c9dd1..dd88e2f 100644
--- a/chrome/browser/notifications/scheduler/internal/notification_store.cc
+++ b/chrome/browser/notifications/scheduler/internal/notification_store.cc
@@ -24,7 +24,7 @@
 NotificationStore::NotificationStore(
     std::unique_ptr<leveldb_proto::ProtoDatabase<proto::NotificationEntry,
                                                  NotificationEntry>> db)
-    : db_(std::move(db)), weak_ptr_factory_(this) {}
+    : db_(std::move(db)) {}
 
 NotificationStore::~NotificationStore() = default;
 
diff --git a/chrome/browser/notifications/scheduler/internal/notification_store.h b/chrome/browser/notifications/scheduler/internal/notification_store.h
index cf032818..58254f3 100644
--- a/chrome/browser/notifications/scheduler/internal/notification_store.h
+++ b/chrome/browser/notifications/scheduler/internal/notification_store.h
@@ -66,7 +66,7 @@
       leveldb_proto::ProtoDatabase<proto::NotificationEntry, NotificationEntry>>
       db_;
 
-  base::WeakPtrFactory<NotificationStore> weak_ptr_factory_;
+  base::WeakPtrFactory<NotificationStore> weak_ptr_factory_{this};
   DISALLOW_COPY_AND_ASSIGN(NotificationStore);
 };
 
diff --git a/chrome/browser/notifications/scheduler/internal/scheduled_notification_manager.cc b/chrome/browser/notifications/scheduler/internal/scheduled_notification_manager.cc
index 23acc2f..5e5e3d7 100644
--- a/chrome/browser/notifications/scheduler/internal/scheduled_notification_manager.cc
+++ b/chrome/browser/notifications/scheduler/internal/scheduled_notification_manager.cc
@@ -39,8 +39,7 @@
         icon_store_(std::move(icon_store)),
         clients_(clients.begin(), clients.end()),
         delegate_(nullptr),
-        config_(config),
-        weak_ptr_factory_(this) {}
+        config_(config) {}
 
  private:
   void Init(Delegate* delegate, InitCallback callback) override {
@@ -210,7 +209,8 @@
            std::map<std::string, std::unique_ptr<NotificationEntry>>>
       notifications_;
   const SchedulerConfig& config_;
-  base::WeakPtrFactory<ScheduledNotificationManagerImpl> weak_ptr_factory_;
+  base::WeakPtrFactory<ScheduledNotificationManagerImpl> weak_ptr_factory_{
+      this};
   DISALLOW_COPY_AND_ASSIGN(ScheduledNotificationManagerImpl);
 };
 }  // namespace
diff --git a/chrome/browser/page_load_metrics/observers/data_reduction_proxy_metrics_observer_base.cc b/chrome/browser/page_load_metrics/observers/data_reduction_proxy_metrics_observer_base.cc
index 0cd0d55..522ec21d 100644
--- a/chrome/browser/page_load_metrics/observers/data_reduction_proxy_metrics_observer_base.cc
+++ b/chrome/browser/page_load_metrics/observers/data_reduction_proxy_metrics_observer_base.cc
@@ -113,8 +113,7 @@
       render_process_host_id_(content::ChildProcessHost::kInvalidUniqueID),
       touch_count_(0),
       scroll_count_(0),
-      redirect_count_(0),
-      weak_ptr_factory_(this) {}
+      redirect_count_(0) {}
 
 DataReductionProxyMetricsObserverBase::
     ~DataReductionProxyMetricsObserverBase() {}
diff --git a/chrome/browser/page_load_metrics/observers/data_reduction_proxy_metrics_observer_base.h b/chrome/browser/page_load_metrics/observers/data_reduction_proxy_metrics_observer_base.h
index b9aef4ca..3fd441ce 100644
--- a/chrome/browser/page_load_metrics/observers/data_reduction_proxy_metrics_observer_base.h
+++ b/chrome/browser/page_load_metrics/observers/data_reduction_proxy_metrics_observer_base.h
@@ -196,7 +196,8 @@
   // The status of an attempted lite page redirect preview.
   base::Optional<previews::ServerLitePageStatus> lite_page_redirect_status_;
 
-  base::WeakPtrFactory<DataReductionProxyMetricsObserverBase> weak_ptr_factory_;
+  base::WeakPtrFactory<DataReductionProxyMetricsObserverBase> weak_ptr_factory_{
+      this};
 
   DISALLOW_COPY_AND_ASSIGN(DataReductionProxyMetricsObserverBase);
 };
diff --git a/chrome/browser/page_load_metrics/page_load_metrics_test_waiter.cc b/chrome/browser/page_load_metrics/page_load_metrics_test_waiter.cc
index 69ca6f1..54949ed 100644
--- a/chrome/browser/page_load_metrics/page_load_metrics_test_waiter.cc
+++ b/chrome/browser/page_load_metrics/page_load_metrics_test_waiter.cc
@@ -14,7 +14,7 @@
 
 PageLoadMetricsTestWaiter::PageLoadMetricsTestWaiter(
     content::WebContents* web_contents)
-    : TestingObserver(web_contents), weak_factory_(this) {}
+    : TestingObserver(web_contents) {}
 
 PageLoadMetricsTestWaiter::~PageLoadMetricsTestWaiter() {
   CHECK(did_add_observer_);
diff --git a/chrome/browser/page_load_metrics/page_load_metrics_test_waiter.h b/chrome/browser/page_load_metrics/page_load_metrics_test_waiter.h
index e9ee1c5..94bb9682 100644
--- a/chrome/browser/page_load_metrics/page_load_metrics_test_waiter.h
+++ b/chrome/browser/page_load_metrics/page_load_metrics_test_waiter.h
@@ -256,7 +256,7 @@
   bool attach_on_tracker_creation_ = false;
   bool did_add_observer_ = false;
 
-  base::WeakPtrFactory<PageLoadMetricsTestWaiter> weak_factory_;
+  base::WeakPtrFactory<PageLoadMetricsTestWaiter> weak_factory_{this};
 };
 
 }  // namespace page_load_metrics
diff --git a/chrome/browser/password_manager/password_store_x.cc b/chrome/browser/password_manager/password_store_x.cc
index d1148f5..6b8ea98 100644
--- a/chrome/browser/password_manager/password_store_x.cc
+++ b/chrome/browser/password_manager/password_store_x.cc
@@ -149,8 +149,7 @@
       login_db_file_(std::move(login_db_file)),
       encrypted_login_db_file_(std::move(encrypted_login_db_file)),
       migration_checked_(false),
-      allow_fallback_(false),
-      weak_ptr_factory_(this) {
+      allow_fallback_(false) {
   migration_step_pref_.Init(password_manager::prefs::kMigrationToLoginDBStep,
                             prefs);
   migration_to_login_db_step_ =
diff --git a/chrome/browser/password_manager/password_store_x.h b/chrome/browser/password_manager/password_store_x.h
index ccfd468..f2e1028 100644
--- a/chrome/browser/password_manager/password_store_x.h
+++ b/chrome/browser/password_manager/password_store_x.h
@@ -231,7 +231,7 @@
   IntegerPrefMember migration_step_pref_;
   MigrationToLoginDBStep migration_to_login_db_step_ = NOT_ATTEMPTED;
 
-  base::WeakPtrFactory<PasswordStoreX> weak_ptr_factory_;
+  base::WeakPtrFactory<PasswordStoreX> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(PasswordStoreX);
 };
diff --git a/chrome/browser/pepper_flash_settings_manager.cc b/chrome/browser/pepper_flash_settings_manager.cc
index d09954a..74a3682 100644
--- a/chrome/browser/pepper_flash_settings_manager.cc
+++ b/chrome/browser/pepper_flash_settings_manager.cc
@@ -922,10 +922,7 @@
 PepperFlashSettingsManager::PepperFlashSettingsManager(
     Client* client,
     content::BrowserContext* browser_context)
-    : client_(client),
-      browser_context_(browser_context),
-      next_request_id_(1),
-      weak_ptr_factory_(this) {
+    : client_(client), browser_context_(browser_context), next_request_id_(1) {
   DCHECK(client);
   DCHECK(browser_context);
 }
diff --git a/chrome/browser/pepper_flash_settings_manager.h b/chrome/browser/pepper_flash_settings_manager.h
index ecc4c370..9cd2c5d 100644
--- a/chrome/browser/pepper_flash_settings_manager.h
+++ b/chrome/browser/pepper_flash_settings_manager.h
@@ -133,7 +133,7 @@
 
   uint32_t next_request_id_;
 
-  base::WeakPtrFactory<PepperFlashSettingsManager> weak_ptr_factory_;
+  base::WeakPtrFactory<PepperFlashSettingsManager> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(PepperFlashSettingsManager);
 };
diff --git a/chrome/browser/performance_manager/performance_manager_tab_helper.cc b/chrome/browser/performance_manager/performance_manager_tab_helper.cc
index 5d33da97..ad94ff327 100644
--- a/chrome/browser/performance_manager/performance_manager_tab_helper.cc
+++ b/chrome/browser/performance_manager/performance_manager_tab_helper.cc
@@ -33,8 +33,7 @@
 PerformanceManagerTabHelper::PerformanceManagerTabHelper(
     content::WebContents* web_contents)
     : content::WebContentsObserver(web_contents),
-      performance_manager_(PerformanceManager::GetInstance()),
-      weak_factory_(this) {
+      performance_manager_(PerformanceManager::GetInstance()) {
   page_node_ = performance_manager_->CreatePageNode(
       WebContentsProxy(weak_factory_.GetWeakPtr()),
       web_contents->GetVisibility() == content::Visibility::VISIBLE,
diff --git a/chrome/browser/performance_manager/performance_manager_tab_helper.h b/chrome/browser/performance_manager/performance_manager_tab_helper.h
index 286e5e58..4a20d8f40 100644
--- a/chrome/browser/performance_manager/performance_manager_tab_helper.h
+++ b/chrome/browser/performance_manager/performance_manager_tab_helper.h
@@ -109,7 +109,7 @@
 
   WEB_CONTENTS_USER_DATA_KEY_DECL();
 
-  base::WeakPtrFactory<PerformanceManagerTabHelper> weak_factory_;
+  base::WeakPtrFactory<PerformanceManagerTabHelper> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(PerformanceManagerTabHelper);
 };
diff --git a/chrome/browser/performance_manager/persistence/site_data/site_data_impl.cc b/chrome/browser/performance_manager/persistence/site_data/site_data_impl.cc
index 64d5530..fb87358 100644
--- a/chrome/browser/performance_manager/persistence/site_data/site_data_impl.cc
+++ b/chrome/browser/performance_manager/persistence/site_data/site_data_impl.cc
@@ -182,8 +182,7 @@
       data_store_(data_store),
       delegate_(delegate),
       fully_initialized_(false),
-      is_dirty_(false),
-      weak_factory_(this) {
+      is_dirty_(false) {
   DCHECK(data_store_);
   DCHECK(delegate_);
 
diff --git a/chrome/browser/performance_manager/persistence/site_data/site_data_impl.h b/chrome/browser/performance_manager/persistence/site_data/site_data_impl.h
index 65f85c4..8912bd65 100644
--- a/chrome/browser/performance_manager/persistence/site_data/site_data_impl.h
+++ b/chrome/browser/performance_manager/persistence/site_data/site_data_impl.h
@@ -280,7 +280,7 @@
 
   SEQUENCE_CHECKER(sequence_checker_);
 
-  base::WeakPtrFactory<SiteDataImpl> weak_factory_;
+  base::WeakPtrFactory<SiteDataImpl> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(SiteDataImpl);
 };
diff --git a/chrome/browser/performance_manager/persistence/site_data/site_data_reader.cc b/chrome/browser/performance_manager/persistence/site_data/site_data_reader.cc
index 801988d..feeef69 100644
--- a/chrome/browser/performance_manager/persistence/site_data/site_data_reader.cc
+++ b/chrome/browser/performance_manager/persistence/site_data/site_data_reader.cc
@@ -13,7 +13,7 @@
 namespace performance_manager {
 
 SiteDataReader::SiteDataReader(scoped_refptr<internal::SiteDataImpl> impl)
-    : impl_(std::move(impl)), weak_factory_(this) {}
+    : impl_(std::move(impl)) {}
 
 SiteDataReader::~SiteDataReader() {}
 
diff --git a/chrome/browser/performance_manager/persistence/site_data/site_data_reader.h b/chrome/browser/performance_manager/persistence/site_data/site_data_reader.h
index 5571b4b..976a3ea 100644
--- a/chrome/browser/performance_manager/persistence/site_data/site_data_reader.h
+++ b/chrome/browser/performance_manager/persistence/site_data/site_data_reader.h
@@ -67,7 +67,7 @@
   const scoped_refptr<internal::SiteDataImpl> impl_;
 
   // Used for invalidating callbacks.
-  base::WeakPtrFactory<SiteDataReader> weak_factory_;
+  base::WeakPtrFactory<SiteDataReader> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(SiteDataReader);
 };
diff --git a/chrome/browser/performance_manager/webui_graph_dump_impl.cc b/chrome/browser/performance_manager/webui_graph_dump_impl.cc
index 786246c..04f08af 100644
--- a/chrome/browser/performance_manager/webui_graph_dump_impl.cc
+++ b/chrome/browser/performance_manager/webui_graph_dump_impl.cc
@@ -103,7 +103,7 @@
 }
 
 WebUIGraphDumpImpl::WebUIGraphDumpImpl(GraphImpl* graph)
-    : graph_(graph), binding_(this), weak_factory_(this) {
+    : graph_(graph), binding_(this) {
   DCHECK(graph);
 }
 
diff --git a/chrome/browser/performance_manager/webui_graph_dump_impl.h b/chrome/browser/performance_manager/webui_graph_dump_impl.h
index 37e2e89..c811c46b 100644
--- a/chrome/browser/performance_manager/webui_graph_dump_impl.h
+++ b/chrome/browser/performance_manager/webui_graph_dump_impl.h
@@ -100,7 +100,7 @@
 
   SEQUENCE_CHECKER(sequence_checker_);
 
-  base::WeakPtrFactory<WebUIGraphDumpImpl> weak_factory_;
+  base::WeakPtrFactory<WebUIGraphDumpImpl> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(WebUIGraphDumpImpl);
 };
diff --git a/chrome/browser/performance_monitor/system_monitor.cc b/chrome/browser/performance_monitor/system_monitor.cc
index 66b2bd4b..2b9b5de1 100644
--- a/chrome/browser/performance_monitor/system_monitor.cc
+++ b/chrome/browser/performance_monitor/system_monitor.cc
@@ -47,8 +47,7 @@
       metric_evaluators_helper_(
           metric_evaluators_helper.release(),
           base::OnTaskRunnerDeleter(blocking_task_runner_)),
-      metric_evaluators_metadata_(CreateMetricMetadataArray()),
-      weak_factory_(this) {
+      metric_evaluators_metadata_(CreateMetricMetadataArray()) {
   DCHECK(!g_system_metrics_monitor);
   g_system_metrics_monitor = this;
 
diff --git a/chrome/browser/performance_monitor/system_monitor.h b/chrome/browser/performance_monitor/system_monitor.h
index eb88a00..092b762 100644
--- a/chrome/browser/performance_monitor/system_monitor.h
+++ b/chrome/browser/performance_monitor/system_monitor.h
@@ -288,7 +288,7 @@
 
   SEQUENCE_CHECKER(sequence_checker_);
 
-  base::WeakPtrFactory<SystemMonitor> weak_factory_;
+  base::WeakPtrFactory<SystemMonitor> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(SystemMonitor);
 };
diff --git a/chrome/browser/permissions/permission_context_base.cc b/chrome/browser/permissions/permission_context_base.cc
index 13f9bc0a..5ec9e075 100644
--- a/chrome/browser/permissions/permission_context_base.cc
+++ b/chrome/browser/permissions/permission_context_base.cc
@@ -102,8 +102,7 @@
     blink::mojom::FeaturePolicyFeature feature_policy_feature)
     : profile_(profile),
       content_settings_type_(content_settings_type),
-      feature_policy_feature_(feature_policy_feature),
-      weak_factory_(this) {
+      feature_policy_feature_(feature_policy_feature) {
   PermissionDecisionAutoBlocker::UpdateFromVariations();
 }
 
diff --git a/chrome/browser/permissions/permission_context_base.h b/chrome/browser/permissions/permission_context_base.h
index d9c7715..303b32f 100644
--- a/chrome/browser/permissions/permission_context_base.h
+++ b/chrome/browser/permissions/permission_context_base.h
@@ -181,7 +181,7 @@
 
   // Must be the last member, to ensure that it will be
   // destroyed first, which will invalidate weak pointers
-  base::WeakPtrFactory<PermissionContextBase> weak_factory_;
+  base::WeakPtrFactory<PermissionContextBase> weak_factory_{this};
 };
 
 #endif  // CHROME_BROWSER_PERMISSIONS_PERMISSION_CONTEXT_BASE_H_
diff --git a/chrome/browser/permissions/permission_request_manager.cc b/chrome/browser/permissions/permission_request_manager.cc
index d08b280..32780f0d 100644
--- a/chrome/browser/permissions/permission_request_manager.cc
+++ b/chrome/browser/permissions/permission_request_manager.cc
@@ -79,8 +79,7 @@
       main_frame_has_fully_loaded_(false),
       tab_is_hidden_(web_contents->GetVisibility() ==
                      content::Visibility::HIDDEN),
-      auto_response_for_test_(NONE),
-      weak_factory_(this) {}
+      auto_response_for_test_(NONE) {}
 
 PermissionRequestManager::~PermissionRequestManager() {
   DCHECK(requests_.empty());
diff --git a/chrome/browser/permissions/permission_request_manager.h b/chrome/browser/permissions/permission_request_manager.h
index 31a29ba..c8aca010 100644
--- a/chrome/browser/permissions/permission_request_manager.h
+++ b/chrome/browser/permissions/permission_request_manager.h
@@ -189,7 +189,7 @@
   // origin requesting the permission.
   bool is_notification_prompt_cooldown_active_ = false;
 
-  base::WeakPtrFactory<PermissionRequestManager> weak_factory_;
+  base::WeakPtrFactory<PermissionRequestManager> weak_factory_{this};
   WEB_CONTENTS_USER_DATA_KEY_DECL();
 };
 
diff --git a/chrome/browser/plugins/plugin_observer.cc b/chrome/browser/plugins/plugin_observer.cc
index 64869247..3fc16b6d 100644
--- a/chrome/browser/plugins/plugin_observer.cc
+++ b/chrome/browser/plugins/plugin_observer.cc
@@ -125,8 +125,7 @@
 
 PluginObserver::PluginObserver(content::WebContents* web_contents)
     : content::WebContentsObserver(web_contents),
-      plugin_host_bindings_(web_contents, this),
-      weak_ptr_factory_(this) {}
+      plugin_host_bindings_(web_contents, this) {}
 
 PluginObserver::~PluginObserver() {
 }
diff --git a/chrome/browser/plugins/plugin_observer.h b/chrome/browser/plugins/plugin_observer.h
index 1f70568..cfadf1f 100644
--- a/chrome/browser/plugins/plugin_observer.h
+++ b/chrome/browser/plugins/plugin_observer.h
@@ -69,7 +69,7 @@
   content::WebContentsFrameBindingSet<chrome::mojom::PluginHost>
       plugin_host_bindings_;
 
-  base::WeakPtrFactory<PluginObserver> weak_ptr_factory_;
+  base::WeakPtrFactory<PluginObserver> weak_ptr_factory_{this};
 
   WEB_CONTENTS_USER_DATA_KEY_DECL();
 
diff --git a/chrome/browser/plugins/plugin_response_interceptor_url_loader_throttle.cc b/chrome/browser/plugins/plugin_response_interceptor_url_loader_throttle.cc
index 3b209814..c5e8d6d 100644
--- a/chrome/browser/plugins/plugin_response_interceptor_url_loader_throttle.cc
+++ b/chrome/browser/plugins/plugin_response_interceptor_url_loader_throttle.cc
@@ -26,8 +26,7 @@
         int frame_tree_node_id)
     : resource_context_(resource_context),
       resource_type_(resource_type),
-      frame_tree_node_id_(frame_tree_node_id),
-      weak_factory_(this) {}
+      frame_tree_node_id_(frame_tree_node_id) {}
 
 PluginResponseInterceptorURLLoaderThrottle::
     PluginResponseInterceptorURLLoaderThrottle(
@@ -36,8 +35,7 @@
         int frame_tree_node_id)
     : browser_context_(browser_context),
       resource_type_(resource_type),
-      frame_tree_node_id_(frame_tree_node_id),
-      weak_factory_(this) {}
+      frame_tree_node_id_(frame_tree_node_id) {}
 
 PluginResponseInterceptorURLLoaderThrottle::
     ~PluginResponseInterceptorURLLoaderThrottle() = default;
diff --git a/chrome/browser/plugins/plugin_response_interceptor_url_loader_throttle.h b/chrome/browser/plugins/plugin_response_interceptor_url_loader_throttle.h
index 31e215e..e482695 100644
--- a/chrome/browser/plugins/plugin_response_interceptor_url_loader_throttle.h
+++ b/chrome/browser/plugins/plugin_response_interceptor_url_loader_throttle.h
@@ -52,7 +52,7 @@
   const int frame_tree_node_id_;
 
   base::WeakPtrFactory<PluginResponseInterceptorURLLoaderThrottle>
-      weak_factory_;
+      weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(PluginResponseInterceptorURLLoaderThrottle);
 };
diff --git a/chrome/browser/policy/browser_dm_token_storage_linux.cc b/chrome/browser/policy/browser_dm_token_storage_linux.cc
index 164e195d..5611dff 100644
--- a/chrome/browser/policy/browser_dm_token_storage_linux.cc
+++ b/chrome/browser/policy/browser_dm_token_storage_linux.cc
@@ -81,8 +81,7 @@
   return storage.get();
 }
 
-BrowserDMTokenStorageLinux::BrowserDMTokenStorageLinux()
-    : weak_factory_(this) {}
+BrowserDMTokenStorageLinux::BrowserDMTokenStorageLinux() {}
 
 BrowserDMTokenStorageLinux::~BrowserDMTokenStorageLinux() {}
 
diff --git a/chrome/browser/policy/browser_dm_token_storage_linux.h b/chrome/browser/policy/browser_dm_token_storage_linux.h
index 64deccb..c6e93d0 100644
--- a/chrome/browser/policy/browser_dm_token_storage_linux.h
+++ b/chrome/browser/policy/browser_dm_token_storage_linux.h
@@ -38,7 +38,7 @@
   virtual std::string ReadMachineIdFile();
 
   // This should always be the last member of the class.
-  base::WeakPtrFactory<BrowserDMTokenStorageLinux> weak_factory_;
+  base::WeakPtrFactory<BrowserDMTokenStorageLinux> weak_factory_{this};
 
   FRIEND_TEST_ALL_PREFIXES(BrowserDMTokenStorageLinuxTest, InitClientId);
   FRIEND_TEST_ALL_PREFIXES(BrowserDMTokenStorageLinuxTest, InitEnrollmentToken);
diff --git a/chrome/browser/policy/cloud/cloud_policy_invalidator.cc b/chrome/browser/policy/cloud/cloud_policy_invalidator.cc
index e8a17741..7340dd2 100644
--- a/chrome/browser/policy/cloud/cloud_policy_invalidator.cc
+++ b/chrome/browser/policy/cloud/cloud_policy_invalidator.cc
@@ -65,8 +65,7 @@
       highest_handled_invalidation_version_(
           highest_handled_invalidation_version),
       max_fetch_delay_(kMaxFetchDelayDefault),
-      policy_hash_value_(0),
-      weak_factory_(this) {
+      policy_hash_value_(0) {
   DCHECK(core);
   DCHECK(task_runner.get());
   // |highest_handled_invalidation_version_| indicates the highest actual
diff --git a/chrome/browser/policy/cloud/cloud_policy_invalidator.h b/chrome/browser/policy/cloud/cloud_policy_invalidator.h
index 0a4c6a4..d58ded6 100644
--- a/chrome/browser/policy/cloud/cloud_policy_invalidator.h
+++ b/chrome/browser/policy/cloud/cloud_policy_invalidator.h
@@ -243,7 +243,7 @@
   base::ThreadChecker thread_checker_;
 
   // WeakPtrFactory used to create callbacks to this object.
-  base::WeakPtrFactory<CloudPolicyInvalidator> weak_factory_;
+  base::WeakPtrFactory<CloudPolicyInvalidator> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(CloudPolicyInvalidator);
 };
diff --git a/chrome/browser/policy/cloud/user_policy_signin_service_base.cc b/chrome/browser/policy/cloud/user_policy_signin_service_base.cc
index 0d02d30..e3e46008 100644
--- a/chrome/browser/policy/cloud/user_policy_signin_service_base.cc
+++ b/chrome/browser/policy/cloud/user_policy_signin_service_base.cc
@@ -36,8 +36,7 @@
       identity_manager_(identity_manager),
       local_state_(local_state),
       device_management_service_(device_management_service),
-      system_url_loader_factory_(system_url_loader_factory),
-      weak_factory_(this) {
+      system_url_loader_factory_(system_url_loader_factory) {
   // Register a listener to be called back once the current profile has finished
   // initializing, so we can startup/shutdown the UserCloudPolicyManager.
   registrar_.Add(this,
diff --git a/chrome/browser/policy/cloud/user_policy_signin_service_base.h b/chrome/browser/policy/cloud/user_policy_signin_service_base.h
index fcea9b30..fc6d5e1c 100644
--- a/chrome/browser/policy/cloud/user_policy_signin_service_base.h
+++ b/chrome/browser/policy/cloud/user_policy_signin_service_base.h
@@ -166,7 +166,7 @@
   DeviceManagementService* device_management_service_;
   scoped_refptr<network::SharedURLLoaderFactory> system_url_loader_factory_;
 
-  base::WeakPtrFactory<UserPolicySigninServiceBase> weak_factory_;
+  base::WeakPtrFactory<UserPolicySigninServiceBase> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(UserPolicySigninServiceBase);
 };
diff --git a/chrome/browser/predictors/loading_predictor.cc b/chrome/browser/predictors/loading_predictor.cc
index b7946bc6..706044d 100644
--- a/chrome/browser/predictors/loading_predictor.cc
+++ b/chrome/browser/predictors/loading_predictor.cc
@@ -60,8 +60,7 @@
       loading_data_collector_(std::make_unique<LoadingDataCollector>(
           resource_prefetch_predictor_.get(),
           stats_collector_.get(),
-          config)),
-      weak_factory_(this) {}
+          config)) {}
 
 LoadingPredictor::~LoadingPredictor() {
   DCHECK(shutdown_);
diff --git a/chrome/browser/predictors/loading_predictor.h b/chrome/browser/predictors/loading_predictor.h
index c8dedd5..d3a0437 100644
--- a/chrome/browser/predictors/loading_predictor.h
+++ b/chrome/browser/predictors/loading_predictor.h
@@ -162,7 +162,7 @@
                            TestDontTrackNonPrefetchableUrls);
   FRIEND_TEST_ALL_PREFIXES(LoadingPredictorTest, TestDontPredictOmniboxHints);
 
-  base::WeakPtrFactory<LoadingPredictor> weak_factory_;
+  base::WeakPtrFactory<LoadingPredictor> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(LoadingPredictor);
 };
diff --git a/chrome/browser/predictors/preconnect_manager.cc b/chrome/browser/predictors/preconnect_manager.cc
index bc57f4f..b095937 100644
--- a/chrome/browser/predictors/preconnect_manager.cc
+++ b/chrome/browser/predictors/preconnect_manager.cc
@@ -61,8 +61,7 @@
                                      Profile* profile)
     : delegate_(std::move(delegate)),
       profile_(profile),
-      inflight_preresolves_count_(0),
-      weak_factory_(this) {
+      inflight_preresolves_count_(0) {
   DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
   DCHECK(profile_);
 }
diff --git a/chrome/browser/predictors/preconnect_manager.h b/chrome/browser/predictors/preconnect_manager.h
index 5ff5eb6..e5962a0c 100644
--- a/chrome/browser/predictors/preconnect_manager.h
+++ b/chrome/browser/predictors/preconnect_manager.h
@@ -194,7 +194,7 @@
   network::mojom::NetworkContext* network_context_ = nullptr;
   Observer* observer_ = nullptr;
 
-  base::WeakPtrFactory<PreconnectManager> weak_factory_;
+  base::WeakPtrFactory<PreconnectManager> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(PreconnectManager);
 };
diff --git a/chrome/browser/predictors/resource_prefetch_predictor.cc b/chrome/browser/predictors/resource_prefetch_predictor.cc
index 89cbadd..808be8f1 100644
--- a/chrome/browser/predictors/resource_prefetch_predictor.cc
+++ b/chrome/browser/predictors/resource_prefetch_predictor.cc
@@ -127,8 +127,7 @@
       initialization_state_(NOT_INITIALIZED),
       tables_(PredictorDatabaseFactory::GetForProfile(profile)
                   ->resource_prefetch_tables()),
-      history_service_observer_(this),
-      weak_factory_(this) {
+      history_service_observer_(this) {
   DCHECK_CURRENTLY_ON(BrowserThread::UI);
 }
 
diff --git a/chrome/browser/predictors/resource_prefetch_predictor.h b/chrome/browser/predictors/resource_prefetch_predictor.h
index 10030184..0fb21eb 100644
--- a/chrome/browser/predictors/resource_prefetch_predictor.h
+++ b/chrome/browser/predictors/resource_prefetch_predictor.h
@@ -263,7 +263,7 @@
   // initialization is completed.
   bool delete_all_data_requested_ = false;
 
-  base::WeakPtrFactory<ResourcePrefetchPredictor> weak_factory_;
+  base::WeakPtrFactory<ResourcePrefetchPredictor> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(ResourcePrefetchPredictor);
 };
diff --git a/chrome/browser/prefs/pref_metrics_service.cc b/chrome/browser/prefs/pref_metrics_service.cc
index d0c2d9e..6801e822 100644
--- a/chrome/browser/prefs/pref_metrics_service.cc
+++ b/chrome/browser/prefs/pref_metrics_service.cc
@@ -46,9 +46,7 @@
 }  // namespace
 
 PrefMetricsService::PrefMetricsService(Profile* profile)
-    : profile_(profile),
-      prefs_(profile_->GetPrefs()),
-      weak_factory_(this) {
+    : profile_(profile), prefs_(profile_->GetPrefs()) {
   RecordLaunchPrefs();
 }
 
diff --git a/chrome/browser/prefs/pref_metrics_service.h b/chrome/browser/prefs/pref_metrics_service.h
index cb51557..a1864def 100644
--- a/chrome/browser/prefs/pref_metrics_service.h
+++ b/chrome/browser/prefs/pref_metrics_service.h
@@ -52,7 +52,7 @@
   Profile* profile_;
   PrefService* prefs_;
 
-  base::WeakPtrFactory<PrefMetricsService> weak_factory_;
+  base::WeakPtrFactory<PrefMetricsService> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(PrefMetricsService);
 };
diff --git a/chrome/browser/prerender/prerender_contents.cc b/chrome/browser/prerender/prerender_contents.cc
index 208ffdf..2f9030164 100644
--- a/chrome/browser/prerender/prerender_contents.cc
+++ b/chrome/browser/prerender/prerender_contents.cc
@@ -192,8 +192,7 @@
       child_id_(-1),
       route_id_(-1),
       origin_(origin),
-      network_bytes_(0),
-      weak_factory_(this) {
+      network_bytes_(0) {
   switch (origin) {
     case ORIGIN_OMNIBOX:
     case ORIGIN_EXTERNAL_REQUEST:
diff --git a/chrome/browser/prerender/prerender_contents.h b/chrome/browser/prerender/prerender_contents.h
index dca0c20..cec41baf 100644
--- a/chrome/browser/prerender/prerender_contents.h
+++ b/chrome/browser/prerender/prerender_contents.h
@@ -365,7 +365,7 @@
 
   service_manager::BinderRegistry registry_;
 
-  base::WeakPtrFactory<PrerenderContents> weak_factory_;
+  base::WeakPtrFactory<PrerenderContents> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(PrerenderContents);
 };
diff --git a/chrome/browser/prerender/prerender_handle.cc b/chrome/browser/prerender/prerender_handle.cc
index 2ef666a..cffb676 100644
--- a/chrome/browser/prerender/prerender_handle.cc
+++ b/chrome/browser/prerender/prerender_handle.cc
@@ -68,7 +68,7 @@
 
 PrerenderHandle::PrerenderHandle(
     PrerenderManager::PrerenderData* prerender_data)
-    : observer_(nullptr), weak_ptr_factory_(this) {
+    : observer_(nullptr) {
   DCHECK_CURRENTLY_ON(BrowserThread::UI);
   if (prerender_data) {
     prerender_data_ = prerender_data->AsWeakPtr();
diff --git a/chrome/browser/prerender/prerender_handle.h b/chrome/browser/prerender/prerender_handle.h
index e16fed1d..f70508d 100644
--- a/chrome/browser/prerender/prerender_handle.h
+++ b/chrome/browser/prerender/prerender_handle.h
@@ -96,7 +96,7 @@
   Observer* observer_;
 
   base::WeakPtr<PrerenderManager::PrerenderData> prerender_data_;
-  base::WeakPtrFactory<PrerenderHandle> weak_ptr_factory_;
+  base::WeakPtrFactory<PrerenderHandle> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(PrerenderHandle);
 };
diff --git a/chrome/browser/prerender/prerender_manager.cc b/chrome/browser/prerender/prerender_manager.cc
index 2edbe39..a560d5c 100644
--- a/chrome/browser/prerender/prerender_manager.cc
+++ b/chrome/browser/prerender/prerender_manager.cc
@@ -177,8 +177,7 @@
       profile_network_bytes_(0),
       last_recorded_profile_network_bytes_(0),
       tick_clock_(base::DefaultTickClock::GetInstance()),
-      page_load_metric_observer_disabled_(false),
-      weak_factory_(this) {
+      page_load_metric_observer_disabled_(false) {
   DCHECK_CURRENTLY_ON(BrowserThread::UI);
 
   last_prerender_start_time_ =
diff --git a/chrome/browser/prerender/prerender_manager.h b/chrome/browser/prerender/prerender_manager.h
index 925111e..38d6dbe 100644
--- a/chrome/browser/prerender/prerender_manager.h
+++ b/chrome/browser/prerender/prerender_manager.h
@@ -618,7 +618,7 @@
 
   std::vector<std::unique_ptr<PrerenderManagerObserver>> observers_;
 
-  base::WeakPtrFactory<PrerenderManager> weak_factory_;
+  base::WeakPtrFactory<PrerenderManager> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(PrerenderManager);
 };
diff --git a/chrome/browser/prerender/prerender_tab_helper.cc b/chrome/browser/prerender/prerender_tab_helper.cc
index ff1b92d..7301289 100644
--- a/chrome/browser/prerender/prerender_tab_helper.cc
+++ b/chrome/browser/prerender/prerender_tab_helper.cc
@@ -20,9 +20,7 @@
 namespace prerender {
 
 PrerenderTabHelper::PrerenderTabHelper(content::WebContents* web_contents)
-    : content::WebContentsObserver(web_contents),
-      origin_(ORIGIN_NONE),
-      weak_factory_(this) {}
+    : content::WebContentsObserver(web_contents), origin_(ORIGIN_NONE) {}
 
 PrerenderTabHelper::~PrerenderTabHelper() {
 }
diff --git a/chrome/browser/prerender/prerender_tab_helper.h b/chrome/browser/prerender/prerender_tab_helper.h
index 94d3283c..f7127c3 100644
--- a/chrome/browser/prerender/prerender_tab_helper.h
+++ b/chrome/browser/prerender/prerender_tab_helper.h
@@ -72,7 +72,7 @@
   // Current URL being loaded.
   GURL url_;
 
-  base::WeakPtrFactory<PrerenderTabHelper> weak_factory_;
+  base::WeakPtrFactory<PrerenderTabHelper> weak_factory_{this};
 
   WEB_CONTENTS_USER_DATA_KEY_DECL();
 
diff --git a/chrome/browser/previews/previews_lite_page_navigation_throttle.cc b/chrome/browser/previews/previews_lite_page_navigation_throttle.cc
index 553a3d1d..0ad41331 100644
--- a/chrome/browser/previews/previews_lite_page_navigation_throttle.cc
+++ b/chrome/browser/previews/previews_lite_page_navigation_throttle.cc
@@ -104,8 +104,7 @@
  public:
   explicit PreviewsWebContentsLifetimeHelper(content::WebContents* web_contents)
       : content::WebContentsObserver(web_contents),
-        web_contents_(web_contents),
-        weak_factory_(this) {}
+        web_contents_(web_contents) {}
 
   // Keep track of all ongoing navigations in this WebContents.
   void DidStartNavigation(content::NavigationHandle* handle) override {
@@ -242,7 +241,7 @@
 
   content::WebContents* web_contents_;
   std::unordered_set<content::NavigationHandle*> navigations_;
-  base::WeakPtrFactory<PreviewsWebContentsLifetimeHelper> weak_factory_;
+  base::WeakPtrFactory<PreviewsWebContentsLifetimeHelper> weak_factory_{this};
   WEB_CONTENTS_USER_DATA_KEY_DECL();
 };
 
diff --git a/chrome/browser/previews/previews_lite_page_redirect_url_loader.cc b/chrome/browser/previews/previews_lite_page_redirect_url_loader.cc
index a5de7c6..b6fc3e9 100644
--- a/chrome/browser/previews/previews_lite_page_redirect_url_loader.cc
+++ b/chrome/browser/previews/previews_lite_page_redirect_url_loader.cc
@@ -30,8 +30,7 @@
     HandleRequest callback)
     : modified_resource_request_(tentative_resource_request),
       callback_(std::move(callback)),
-      binding_(this),
-      weak_ptr_factory_(this) {}
+      binding_(this) {}
 
 PreviewsLitePageRedirectURLLoader::~PreviewsLitePageRedirectURLLoader() {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
diff --git a/chrome/browser/previews/previews_lite_page_redirect_url_loader.h b/chrome/browser/previews/previews_lite_page_redirect_url_loader.h
index 4d16ba4..0b63ac9 100644
--- a/chrome/browser/previews/previews_lite_page_redirect_url_loader.h
+++ b/chrome/browser/previews/previews_lite_page_redirect_url_loader.h
@@ -124,7 +124,8 @@
 
   SEQUENCE_CHECKER(sequence_checker_);
 
-  base::WeakPtrFactory<PreviewsLitePageRedirectURLLoader> weak_ptr_factory_;
+  base::WeakPtrFactory<PreviewsLitePageRedirectURLLoader> weak_ptr_factory_{
+      this};
 
   DISALLOW_COPY_AND_ASSIGN(PreviewsLitePageRedirectURLLoader);
 };
diff --git a/chrome/browser/previews/previews_lite_page_serving_url_loader.cc b/chrome/browser/previews/previews_lite_page_serving_url_loader.cc
index 86b9f0a..f3b3013 100644
--- a/chrome/browser/previews/previews_lite_page_serving_url_loader.cc
+++ b/chrome/browser/previews/previews_lite_page_serving_url_loader.cc
@@ -156,8 +156,7 @@
     ResultCallback result_callback)
     : url_loader_binding_(this),
       result_callback_(std::move(result_callback)),
-      binding_(this),
-      weak_ptr_factory_(this) {}
+      binding_(this) {}
 
 void PreviewsLitePageServingURLLoader::StartNetworkRequest(
     const network::ResourceRequest& request,
diff --git a/chrome/browser/previews/previews_lite_page_serving_url_loader.h b/chrome/browser/previews/previews_lite_page_serving_url_loader.h
index 46564019..4e22826 100644
--- a/chrome/browser/previews/previews_lite_page_serving_url_loader.h
+++ b/chrome/browser/previews/previews_lite_page_serving_url_loader.h
@@ -137,7 +137,8 @@
 
   SEQUENCE_CHECKER(sequence_checker_);
 
-  base::WeakPtrFactory<PreviewsLitePageServingURLLoader> weak_ptr_factory_;
+  base::WeakPtrFactory<PreviewsLitePageServingURLLoader> weak_ptr_factory_{
+      this};
 
   DISALLOW_COPY_AND_ASSIGN(PreviewsLitePageServingURLLoader);
 };
diff --git a/chrome/browser/previews/previews_offline_helper.cc b/chrome/browser/previews/previews_offline_helper.cc
index 45e47ff..78bb794 100644
--- a/chrome/browser/previews/previews_offline_helper.cc
+++ b/chrome/browser/previews/previews_offline_helper.cc
@@ -133,8 +133,7 @@
     content::BrowserContext* browser_context)
     : pref_service_(nullptr),
       available_pages_(std::make_unique<base::DictionaryValue>()),
-      offline_page_model_(nullptr),
-      weak_factory_(this) {
+      offline_page_model_(nullptr) {
   if (!browser_context || browser_context->IsOffTheRecord())
     return;
 
diff --git a/chrome/browser/previews/previews_offline_helper.h b/chrome/browser/previews/previews_offline_helper.h
index 38e5fda7..37143f7 100644
--- a/chrome/browser/previews/previews_offline_helper.h
+++ b/chrome/browser/previews/previews_offline_helper.h
@@ -78,7 +78,7 @@
 
   SEQUENCE_CHECKER(sequence_checker_);
 
-  base::WeakPtrFactory<PreviewsOfflineHelper> weak_factory_;
+  base::WeakPtrFactory<PreviewsOfflineHelper> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(PreviewsOfflineHelper);
 };
diff --git a/chrome/browser/previews/previews_prober.cc b/chrome/browser/previews/previews_prober.cc
index c7afcf2b..c68ce58a 100644
--- a/chrome/browser/previews/previews_prober.cc
+++ b/chrome/browser/previews/previews_prober.cc
@@ -237,8 +237,7 @@
       clock_(clock),
       is_active_(false),
       network_connection_tracker_(nullptr),
-      url_loader_factory_(url_loader_factory),
-      weak_factory_(this) {
+      url_loader_factory_(url_loader_factory) {
   DCHECK(delegate_);
 
   // The NetworkConnectionTracker can only be used directly on the UI thread.
diff --git a/chrome/browser/previews/previews_prober.h b/chrome/browser/previews/previews_prober.h
index 4f5983d5..54e8812 100644
--- a/chrome/browser/previews/previews_prober.h
+++ b/chrome/browser/previews/previews_prober.h
@@ -259,7 +259,7 @@
 
   SEQUENCE_CHECKER(sequence_checker_);
 
-  base::WeakPtrFactory<PreviewsProber> weak_factory_;
+  base::WeakPtrFactory<PreviewsProber> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(PreviewsProber);
 };
diff --git a/chrome/browser/previews/previews_ui_tab_helper.cc b/chrome/browser/previews/previews_ui_tab_helper.cc
index 0e1917e1..34c45f1 100644
--- a/chrome/browser/previews/previews_ui_tab_helper.cc
+++ b/chrome/browser/previews/previews_ui_tab_helper.cc
@@ -97,7 +97,7 @@
 }
 
 PreviewsUITabHelper::PreviewsUITabHelper(content::WebContents* web_contents)
-    : content::WebContentsObserver(web_contents), weak_factory_(this) {
+    : content::WebContentsObserver(web_contents) {
   DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
 }
 
diff --git a/chrome/browser/previews/previews_ui_tab_helper.h b/chrome/browser/previews/previews_ui_tab_helper.h
index 9d9df97..b1a1bb9 100644
--- a/chrome/browser/previews/previews_ui_tab_helper.h
+++ b/chrome/browser/previews/previews_ui_tab_helper.h
@@ -169,7 +169,7 @@
   // finished.
   std::unique_ptr<previews::PreviewsUserData> previews_user_data_;
 
-  base::WeakPtrFactory<PreviewsUITabHelper> weak_factory_;
+  base::WeakPtrFactory<PreviewsUITabHelper> weak_factory_{this};
 
   WEB_CONTENTS_USER_DATA_KEY_DECL();
 
diff --git a/chrome/browser/printing/cloud_print/cloud_print_proxy_service.cc b/chrome/browser/printing/cloud_print/cloud_print_proxy_service.cc
index 30be1e0..36a6b56 100644
--- a/chrome/browser/printing/cloud_print/cloud_print_proxy_service.cc
+++ b/chrome/browser/printing/cloud_print/cloud_print_proxy_service.cc
@@ -52,9 +52,7 @@
 }  // namespace
 
 CloudPrintProxyService::CloudPrintProxyService(Profile* profile)
-    : profile_(profile),
-      weak_factory_(this) {
-}
+    : profile_(profile) {}
 
 CloudPrintProxyService::~CloudPrintProxyService() {
 }
diff --git a/chrome/browser/printing/cloud_print/cloud_print_proxy_service.h b/chrome/browser/printing/cloud_print/cloud_print_proxy_service.h
index 6a31220c..32cf5b39 100644
--- a/chrome/browser/printing/cloud_print/cloud_print_proxy_service.h
+++ b/chrome/browser/printing/cloud_print/cloud_print_proxy_service.h
@@ -100,7 +100,7 @@
 
   cloud_print::mojom::CloudPrintPtr cloud_print_proxy_;
 
-  base::WeakPtrFactory<CloudPrintProxyService> weak_factory_;
+  base::WeakPtrFactory<CloudPrintProxyService> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(CloudPrintProxyService);
 };
diff --git a/chrome/browser/printing/cloud_print/gcd_api_flow_impl.cc b/chrome/browser/printing/cloud_print/gcd_api_flow_impl.cc
index b841302..ff56cc7 100644
--- a/chrome/browser/printing/cloud_print/gcd_api_flow_impl.cc
+++ b/chrome/browser/printing/cloud_print/gcd_api_flow_impl.cc
@@ -93,8 +93,7 @@
     scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory,
     identity::IdentityManager* identity_manager)
     : url_loader_factory_(url_loader_factory),
-      identity_manager_(identity_manager),
-      weak_factory_(this) {}
+      identity_manager_(identity_manager) {}
 
 GCDApiFlowImpl::~GCDApiFlowImpl() {}
 
diff --git a/chrome/browser/printing/cloud_print/gcd_api_flow_impl.h b/chrome/browser/printing/cloud_print/gcd_api_flow_impl.h
index 689aaae2..535ff47 100644
--- a/chrome/browser/printing/cloud_print/gcd_api_flow_impl.h
+++ b/chrome/browser/printing/cloud_print/gcd_api_flow_impl.h
@@ -45,7 +45,7 @@
   scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory_;
   identity::IdentityManager* identity_manager_;
   std::unique_ptr<Request> request_;
-  base::WeakPtrFactory<GCDApiFlowImpl> weak_factory_;
+  base::WeakPtrFactory<GCDApiFlowImpl> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(GCDApiFlowImpl);
 };
diff --git a/chrome/browser/printing/cloud_print/privet_http_impl.cc b/chrome/browser/printing/cloud_print/privet_http_impl.cc
index 690646d..9f9f45f 100644
--- a/chrome/browser/printing/cloud_print/privet_http_impl.cc
+++ b/chrome/browser/printing/cloud_print/privet_http_impl.cc
@@ -398,10 +398,7 @@
 PrivetLocalPrintOperationImpl::PrivetLocalPrintOperationImpl(
     PrivetHTTPClient* privet_client,
     PrivetLocalPrintOperation::Delegate* delegate)
-    : privet_client_(privet_client),
-      delegate_(delegate),
-      weak_factory_(this) {
-}
+    : privet_client_(privet_client), delegate_(delegate) {}
 
 PrivetLocalPrintOperationImpl::~PrivetLocalPrintOperationImpl() {
 }
diff --git a/chrome/browser/printing/cloud_print/privet_http_impl.h b/chrome/browser/printing/cloud_print/privet_http_impl.h
index 24692df..f828c5aa 100644
--- a/chrome/browser/printing/cloud_print/privet_http_impl.h
+++ b/chrome/browser/printing/cloud_print/privet_http_impl.h
@@ -241,7 +241,7 @@
   std::unique_ptr<PrivetJSONOperation> info_operation_;
   std::unique_ptr<printing::PwgRasterConverter> pwg_raster_converter_;
 
-  base::WeakPtrFactory<PrivetLocalPrintOperationImpl> weak_factory_;
+  base::WeakPtrFactory<PrivetLocalPrintOperationImpl> weak_factory_{this};
 
   static bool run_tasks_immediately_for_testing_;
 };
diff --git a/chrome/browser/printing/cloud_print/privet_traffic_detector.cc b/chrome/browser/printing/cloud_print/privet_traffic_detector.cc
index b9d85db..c17745f 100644
--- a/chrome/browser/printing/cloud_print/privet_traffic_detector.cc
+++ b/chrome/browser/printing/cloud_print/privet_traffic_detector.cc
@@ -112,8 +112,7 @@
     : profile_(profile),
       on_traffic_detected_(on_traffic_detected),
       restart_attempts_(kMaxRestartAttempts),
-      receiver_binding_(this),
-      weak_ptr_factory_(this) {
+      receiver_binding_(this) {
   DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
 }
 
diff --git a/chrome/browser/printing/cloud_print/privet_traffic_detector.h b/chrome/browser/printing/cloud_print/privet_traffic_detector.h
index 932e3bb..666b2637 100644
--- a/chrome/browser/printing/cloud_print/privet_traffic_detector.h
+++ b/chrome/browser/printing/cloud_print/privet_traffic_detector.h
@@ -86,7 +86,7 @@
     // Initialized on the UI thread, but only accessed on the IO thread.
     mojo::Binding<network::mojom::UDPSocketReceiver> receiver_binding_;
 
-    base::WeakPtrFactory<Helper> weak_ptr_factory_;
+    base::WeakPtrFactory<Helper> weak_ptr_factory_{this};
 
     DISALLOW_COPY_AND_ASSIGN(Helper);
   };
diff --git a/chrome/browser/printing/cloud_print/privet_url_loader.cc b/chrome/browser/printing/cloud_print/privet_url_loader.cc
index e033ccb..dc6c66fd 100644
--- a/chrome/browser/printing/cloud_print/privet_url_loader.cc
+++ b/chrome/browser/printing/cloud_print/privet_url_loader.cc
@@ -87,8 +87,7 @@
       url_loader_factory_(url_loader_factory),
       traffic_annotation_(traffic_annotation),
       delegate_(delegate),
-      max_retries_(kPrivetMaxRetries),
-      weak_factory_(this) {}
+      max_retries_(kPrivetMaxRetries) {}
 
 PrivetURLLoader::~PrivetURLLoader() {}
 
diff --git a/chrome/browser/printing/cloud_print/privet_url_loader.h b/chrome/browser/printing/cloud_print/privet_url_loader.h
index 2a9f643..537cd50 100644
--- a/chrome/browser/printing/cloud_print/privet_url_loader.h
+++ b/chrome/browser/printing/cloud_print/privet_url_loader.h
@@ -141,7 +141,7 @@
   std::string upload_content_type_;
   std::unique_ptr<network::SimpleURLLoader> url_loader_;
 
-  base::WeakPtrFactory<PrivetURLLoader> weak_factory_;
+  base::WeakPtrFactory<PrivetURLLoader> weak_factory_{this};
   DISALLOW_COPY_AND_ASSIGN(PrivetURLLoader);
 };
 
diff --git a/chrome/browser/printing/print_dialog_cloud.cc b/chrome/browser/printing/print_dialog_cloud.cc
index d2da80ee..6687be89 100644
--- a/chrome/browser/printing/print_dialog_cloud.cc
+++ b/chrome/browser/printing/print_dialog_cloud.cc
@@ -29,9 +29,7 @@
 class SignInObserver : public content::WebContentsObserver {
  public:
   SignInObserver(content::WebContents* web_contents, base::OnceClosure callback)
-      : WebContentsObserver(web_contents),
-        callback_(std::move(callback)),
-        weak_ptr_factory_(this) {}
+      : WebContentsObserver(web_contents), callback_(std::move(callback)) {}
 
  private:
   // Overridden from content::WebContentsObserver:
@@ -58,7 +56,7 @@
   }
 
   base::OnceClosure callback_;
-  base::WeakPtrFactory<SignInObserver> weak_ptr_factory_;
+  base::WeakPtrFactory<SignInObserver> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(SignInObserver);
 };
diff --git a/chrome/browser/printing/print_job_worker.cc b/chrome/browser/printing/print_job_worker.cc
index 88a6142..63f432b 100644
--- a/chrome/browser/printing/print_job_worker.cc
+++ b/chrome/browser/printing/print_job_worker.cc
@@ -128,8 +128,7 @@
                                                     render_frame_id)),
       printing_context_(
           PrintingContext::Create(printing_context_delegate_.get())),
-      thread_("Printing_Worker"),
-      weak_factory_(this) {
+      thread_("Printing_Worker") {
   DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
 }
 
diff --git a/chrome/browser/printing/print_job_worker.h b/chrome/browser/printing/print_job_worker.h
index a711d9f..d5711196 100644
--- a/chrome/browser/printing/print_job_worker.h
+++ b/chrome/browser/printing/print_job_worker.h
@@ -177,7 +177,7 @@
   scoped_refptr<base::SequencedTaskRunner> task_runner_;
 
   // Used to generate a WeakPtr for callbacks.
-  base::WeakPtrFactory<PrintJobWorker> weak_factory_;
+  base::WeakPtrFactory<PrintJobWorker> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(PrintJobWorker);
 };
diff --git a/chrome/browser/printing/print_preview_message_handler.cc b/chrome/browser/printing/print_preview_message_handler.cc
index 7df04e4..5fd2ea6 100644
--- a/chrome/browser/printing/print_preview_message_handler.cc
+++ b/chrome/browser/printing/print_preview_message_handler.cc
@@ -69,7 +69,7 @@
 
 PrintPreviewMessageHandler::PrintPreviewMessageHandler(
     WebContents* web_contents)
-    : content::WebContentsObserver(web_contents), weak_ptr_factory_(this) {
+    : content::WebContentsObserver(web_contents) {
   DCHECK(web_contents);
 }
 
diff --git a/chrome/browser/printing/print_preview_message_handler.h b/chrome/browser/printing/print_preview_message_handler.h
index 8b57c48..e0c0f90 100644
--- a/chrome/browser/printing/print_preview_message_handler.h
+++ b/chrome/browser/printing/print_preview_message_handler.h
@@ -121,7 +121,7 @@
                                    mojom::PdfNupConverter::Status status,
                                    base::ReadOnlySharedMemoryRegion region);
 
-  base::WeakPtrFactory<PrintPreviewMessageHandler> weak_ptr_factory_;
+  base::WeakPtrFactory<PrintPreviewMessageHandler> weak_ptr_factory_{this};
 
   WEB_CONTENTS_USER_DATA_KEY_DECL();
 
diff --git a/chrome/browser/printing/print_view_manager_base.cc b/chrome/browser/printing/print_view_manager_base.cc
index a8502fd..c4e0992 100644
--- a/chrome/browser/printing/print_view_manager_base.cc
+++ b/chrome/browser/printing/print_view_manager_base.cc
@@ -108,8 +108,7 @@
     : PrintManager(web_contents),
       printing_rfh_(nullptr),
       printing_succeeded_(false),
-      queue_(g_browser_process->print_job_manager()->queue()),
-      weak_ptr_factory_(this) {
+      queue_(g_browser_process->print_job_manager()->queue()) {
   DCHECK(queue_);
   Profile* profile =
       Profile::FromBrowserContext(web_contents->GetBrowserContext());
diff --git a/chrome/browser/printing/print_view_manager_base.h b/chrome/browser/printing/print_view_manager_base.h
index f3e2312..a465fd2 100644
--- a/chrome/browser/printing/print_view_manager_base.h
+++ b/chrome/browser/printing/print_view_manager_base.h
@@ -208,7 +208,7 @@
 
   scoped_refptr<PrintQueriesQueue> queue_;
 
-  base::WeakPtrFactory<PrintViewManagerBase> weak_ptr_factory_;
+  base::WeakPtrFactory<PrintViewManagerBase> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(PrintViewManagerBase);
 };
diff --git a/chrome/browser/profile_resetter/profile_resetter.cc b/chrome/browser/profile_resetter/profile_resetter.cc
index 9e645a08..a8defdb2 100644
--- a/chrome/browser/profile_resetter/profile_resetter.cc
+++ b/chrome/browser/profile_resetter/profile_resetter.cc
@@ -84,8 +84,7 @@
       template_url_service_(TemplateURLServiceFactory::GetForProfile(profile_)),
       pending_reset_flags_(0),
       cookies_remover_(nullptr),
-      ntp_service_(InstantServiceFactory::GetForProfile(profile)),
-      weak_ptr_factory_(this) {
+      ntp_service_(InstantServiceFactory::GetForProfile(profile)) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   DCHECK(profile_);
 }
diff --git a/chrome/browser/profile_resetter/profile_resetter.h b/chrome/browser/profile_resetter/profile_resetter.h
index a4ee584..776ccc5 100644
--- a/chrome/browser/profile_resetter/profile_resetter.h
+++ b/chrome/browser/profile_resetter/profile_resetter.h
@@ -121,7 +121,7 @@
   // Used for resetting NTP customizations.
   InstantService* ntp_service_;
 
-  base::WeakPtrFactory<ProfileResetter> weak_ptr_factory_;
+  base::WeakPtrFactory<ProfileResetter> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(ProfileResetter);
 };
diff --git a/chrome/browser/profile_resetter/resettable_settings_snapshot.cc b/chrome/browser/profile_resetter/resettable_settings_snapshot.cc
index 3f4eb539..b08b4130 100644
--- a/chrome/browser/profile_resetter/resettable_settings_snapshot.cc
+++ b/chrome/browser/profile_resetter/resettable_settings_snapshot.cc
@@ -50,11 +50,9 @@
 
 }  // namespace
 
-ResettableSettingsSnapshot::ResettableSettingsSnapshot(
-    Profile* profile)
+ResettableSettingsSnapshot::ResettableSettingsSnapshot(Profile* profile)
     : startup_(SessionStartupPref::GetStartupPref(profile)),
-      shortcuts_determined_(false),
-      weak_ptr_factory_(this) {
+      shortcuts_determined_(false) {
   DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
   // URLs are always stored sorted.
   std::sort(startup_.urls.begin(), startup_.urls.end());
diff --git a/chrome/browser/profile_resetter/resettable_settings_snapshot.h b/chrome/browser/profile_resetter/resettable_settings_snapshot.h
index d857fa2..4c8199f 100644
--- a/chrome/browser/profile_resetter/resettable_settings_snapshot.h
+++ b/chrome/browser/profile_resetter/resettable_settings_snapshot.h
@@ -118,7 +118,7 @@
   // The flag to cancel shortcuts retrieving.
   scoped_refptr<SharedCancellationFlag> cancellation_flag_;
 
-  base::WeakPtrFactory<ResettableSettingsSnapshot> weak_ptr_factory_;
+  base::WeakPtrFactory<ResettableSettingsSnapshot> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(ResettableSettingsSnapshot);
 };
diff --git a/chrome/browser/profiles/profile_destroyer.cc b/chrome/browser/profiles/profile_destroyer.cc
index df97a1db..8631a88 100644
--- a/chrome/browser/profiles/profile_destroyer.cc
+++ b/chrome/browser/profiles/profile_destroyer.cc
@@ -122,7 +122,7 @@
 }
 
 ProfileDestroyer::ProfileDestroyer(Profile* const profile, HostSet* hosts)
-    : num_hosts_(0), profile_(profile), weak_ptr_factory_(this) {
+    : num_hosts_(0), profile_(profile) {
   if (pending_destroyers_ == NULL)
     pending_destroyers_ = new DestroyerSet;
   pending_destroyers_->insert(this);
diff --git a/chrome/browser/profiles/profile_destroyer.h b/chrome/browser/profiles/profile_destroyer.h
index 8e24ee3b..5d24e19 100644
--- a/chrome/browser/profiles/profile_destroyer.h
+++ b/chrome/browser/profiles/profile_destroyer.h
@@ -58,7 +58,7 @@
   // another instance of ProfileDestroyer that this instance is canceled.
   Profile* profile_;
 
-  base::WeakPtrFactory<ProfileDestroyer> weak_ptr_factory_;
+  base::WeakPtrFactory<ProfileDestroyer> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(ProfileDestroyer);
 };
diff --git a/chrome/browser/profiles/profile_statistics.cc b/chrome/browser/profiles/profile_statistics.cc
index 61f24b7..d9d1907 100644
--- a/chrome/browser/profiles/profile_statistics.cc
+++ b/chrome/browser/profiles/profile_statistics.cc
@@ -12,8 +12,7 @@
 #include "chrome/browser/profiles/profile_statistics_aggregator.h"
 
 ProfileStatistics::ProfileStatistics(Profile* profile)
-    : profile_(profile), aggregator_(nullptr), weak_ptr_factory_(this) {
-}
+    : profile_(profile), aggregator_(nullptr) {}
 
 ProfileStatistics::~ProfileStatistics() {
 }
diff --git a/chrome/browser/profiles/profile_statistics.h b/chrome/browser/profiles/profile_statistics.h
index 966c373..93721155 100644
--- a/chrome/browser/profiles/profile_statistics.h
+++ b/chrome/browser/profiles/profile_statistics.h
@@ -37,7 +37,7 @@
 
   Profile* profile_;
   std::unique_ptr<ProfileStatisticsAggregator> aggregator_;
-  base::WeakPtrFactory<ProfileStatistics> weak_ptr_factory_;
+  base::WeakPtrFactory<ProfileStatistics> weak_ptr_factory_{this};
 };
 
 #endif  // CHROME_BROWSER_PROFILES_PROFILE_STATISTICS_H_
diff --git a/chrome/browser/profiling_host/background_profiling_triggers.cc b/chrome/browser/profiling_host/background_profiling_triggers.cc
index 9f71f67..db1ddb9 100644
--- a/chrome/browser/profiling_host/background_profiling_triggers.cc
+++ b/chrome/browser/profiling_host/background_profiling_triggers.cc
@@ -85,7 +85,7 @@
 
 BackgroundProfilingTriggers::BackgroundProfilingTriggers(
     ProfilingProcessHost* host)
-    : host_(host), weak_ptr_factory_(this) {
+    : host_(host) {
   DCHECK(host_);
 }
 
diff --git a/chrome/browser/profiling_host/background_profiling_triggers.h b/chrome/browser/profiling_host/background_profiling_triggers.h
index 4f54ea8..cba5d09 100644
--- a/chrome/browser/profiling_host/background_profiling_triggers.h
+++ b/chrome/browser/profiling_host/background_profiling_triggers.h
@@ -76,7 +76,7 @@
   // Timer to periodically check memory consumption and upload a slow-report.
   base::RepeatingTimer timer_;
 
-  base::WeakPtrFactory<BackgroundProfilingTriggers> weak_ptr_factory_;
+  base::WeakPtrFactory<BackgroundProfilingTriggers> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(BackgroundProfilingTriggers);
 };
diff --git a/chrome/browser/push_messaging/budget_database.cc b/chrome/browser/push_messaging/budget_database.cc
index b12b4c8..45188db 100644
--- a/chrome/browser/push_messaging/budget_database.cc
+++ b/chrome/browser/push_messaging/budget_database.cc
@@ -51,9 +51,7 @@
 BudgetDatabase::BudgetInfo::~BudgetInfo() = default;
 
 BudgetDatabase::BudgetDatabase(Profile* profile)
-    : profile_(profile),
-      clock_(base::WrapUnique(new base::DefaultClock)),
-      weak_ptr_factory_(this) {
+    : profile_(profile), clock_(base::WrapUnique(new base::DefaultClock)) {
   auto* protodb_provider =
       leveldb_proto::ProtoDatabaseProviderFactory::GetForKey(
           profile->GetProfileKey());
diff --git a/chrome/browser/push_messaging/budget_database.h b/chrome/browser/push_messaging/budget_database.h
index 1bd8b732..14f1453 100644
--- a/chrome/browser/push_messaging/budget_database.h
+++ b/chrome/browser/push_messaging/budget_database.h
@@ -169,7 +169,7 @@
   // The clock used to vend times.
   std::unique_ptr<base::Clock> clock_;
 
-  base::WeakPtrFactory<BudgetDatabase> weak_ptr_factory_;
+  base::WeakPtrFactory<BudgetDatabase> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(BudgetDatabase);
 };
diff --git a/chrome/browser/push_messaging/push_messaging_notification_manager.cc b/chrome/browser/push_messaging/push_messaging_notification_manager.cc
index 2226018..5522c03b 100644
--- a/chrome/browser/push_messaging/push_messaging_notification_manager.cc
+++ b/chrome/browser/push_messaging/push_messaging_notification_manager.cc
@@ -114,7 +114,7 @@
 
 PushMessagingNotificationManager::PushMessagingNotificationManager(
     Profile* profile)
-    : profile_(profile), budget_database_(profile), weak_factory_(this) {}
+    : profile_(profile), budget_database_(profile) {}
 
 PushMessagingNotificationManager::~PushMessagingNotificationManager() = default;
 
diff --git a/chrome/browser/push_messaging/push_messaging_notification_manager.h b/chrome/browser/push_messaging/push_messaging_notification_manager.h
index 41bd07a8..3037534 100644
--- a/chrome/browser/push_messaging/push_messaging_notification_manager.h
+++ b/chrome/browser/push_messaging/push_messaging_notification_manager.h
@@ -110,7 +110,7 @@
       nullptr;
 #endif
 
-  base::WeakPtrFactory<PushMessagingNotificationManager> weak_factory_;
+  base::WeakPtrFactory<PushMessagingNotificationManager> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(PushMessagingNotificationManager);
 };
diff --git a/chrome/browser/push_messaging/push_messaging_service_impl.cc b/chrome/browser/push_messaging/push_messaging_service_impl.cc
index 27f62ba..b2824174 100644
--- a/chrome/browser/push_messaging/push_messaging_service_impl.cc
+++ b/chrome/browser/push_messaging/push_messaging_service_impl.cc
@@ -176,8 +176,7 @@
     : profile_(profile),
       push_subscription_count_(0),
       pending_push_subscription_count_(0),
-      notification_manager_(profile),
-      weak_factory_(this) {
+      notification_manager_(profile) {
   DCHECK(profile);
   HostContentSettingsMapFactory::GetForProfile(profile_)->AddObserver(this);
 
diff --git a/chrome/browser/push_messaging/push_messaging_service_impl.h b/chrome/browser/push_messaging/push_messaging_service_impl.h
index 6aa0c0f..de7fda9 100644
--- a/chrome/browser/push_messaging/push_messaging_service_impl.h
+++ b/chrome/browser/push_messaging/push_messaging_service_impl.h
@@ -307,7 +307,7 @@
   // messages when this is true.
   bool shutdown_started_ = false;
 
-  base::WeakPtrFactory<PushMessagingServiceImpl> weak_factory_;
+  base::WeakPtrFactory<PushMessagingServiceImpl> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(PushMessagingServiceImpl);
 };
diff --git a/chrome/browser/renderer_host/pepper/pepper_flash_browser_host.cc b/chrome/browser/renderer_host/pepper/pepper_flash_browser_host.cc
index 016007f..9d28e92 100644
--- a/chrome/browser/renderer_host/pepper/pepper_flash_browser_host.cc
+++ b/chrome/browser/renderer_host/pepper/pepper_flash_browser_host.cc
@@ -71,9 +71,10 @@
                                                PP_Resource resource)
     : ResourceHost(host->GetPpapiHost(), instance, resource),
       host_(host),
-      delay_timer_(FROM_HERE, base::TimeDelta::FromSeconds(45), this,
-                   &PepperFlashBrowserHost::OnDelayTimerFired),
-      weak_factory_(this) {
+      delay_timer_(FROM_HERE,
+                   base::TimeDelta::FromSeconds(45),
+                   this,
+                   &PepperFlashBrowserHost::OnDelayTimerFired) {
   int unused;
   host->GetRenderFrameIDsForInstance(instance, &render_process_id_, &unused);
 }
diff --git a/chrome/browser/renderer_host/pepper/pepper_flash_browser_host.h b/chrome/browser/renderer_host/pepper/pepper_flash_browser_host.h
index 154120c..f2f40b6 100644
--- a/chrome/browser/renderer_host/pepper/pepper_flash_browser_host.h
+++ b/chrome/browser/renderer_host/pepper/pepper_flash_browser_host.h
@@ -67,7 +67,7 @@
 
   // For fetching the Flash LSO settings.
   scoped_refptr<content_settings::CookieSettings> cookie_settings_;
-  base::WeakPtrFactory<PepperFlashBrowserHost> weak_factory_;
+  base::WeakPtrFactory<PepperFlashBrowserHost> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(PepperFlashBrowserHost);
 };
diff --git a/chrome/browser/renderer_host/pepper/pepper_flash_drm_host.cc b/chrome/browser/renderer_host/pepper/pepper_flash_drm_host.cc
index b007195..0a727e8c 100644
--- a/chrome/browser/renderer_host/pepper/pepper_flash_drm_host.cc
+++ b/chrome/browser/renderer_host/pepper/pepper_flash_drm_host.cc
@@ -115,8 +115,7 @@
 PepperFlashDRMHost::PepperFlashDRMHost(BrowserPpapiHost* host,
                                        PP_Instance instance,
                                        PP_Resource resource)
-    : ppapi::host::ResourceHost(host->GetPpapiHost(), instance, resource),
-      weak_factory_(this) {
+    : ppapi::host::ResourceHost(host->GetPpapiHost(), instance, resource) {
   // Grant permissions to read the flash voucher file.
   int render_process_id;
   int render_frame_id;
diff --git a/chrome/browser/renderer_host/pepper/pepper_flash_drm_host.h b/chrome/browser/renderer_host/pepper/pepper_flash_drm_host.h
index aa4433cc..b9d2ce7f 100644
--- a/chrome/browser/renderer_host/pepper/pepper_flash_drm_host.h
+++ b/chrome/browser/renderer_host/pepper/pepper_flash_drm_host.h
@@ -52,7 +52,7 @@
   scoped_refptr<DeviceIDFetcher> fetcher_;
   scoped_refptr<MonitorFinder> monitor_finder_;
 
-  base::WeakPtrFactory<PepperFlashDRMHost> weak_factory_;
+  base::WeakPtrFactory<PepperFlashDRMHost> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(PepperFlashDRMHost);
 };
diff --git a/chrome/browser/resource_coordinator/intervention_policy_database.cc b/chrome/browser/resource_coordinator/intervention_policy_database.cc
index 7023c09e..e7c1947 100644
--- a/chrome/browser/resource_coordinator/intervention_policy_database.cc
+++ b/chrome/browser/resource_coordinator/intervention_policy_database.cc
@@ -18,8 +18,7 @@
                                InterventionPolicy freezing_policy)
     : discarding_policy(discarding_policy), freezing_policy(freezing_policy) {}
 
-InterventionPolicyDatabase::InterventionPolicyDatabase()
-    : weak_factory_(this) {}
+InterventionPolicyDatabase::InterventionPolicyDatabase() {}
 InterventionPolicyDatabase::~InterventionPolicyDatabase() = default;
 
 InterventionPolicyDatabase::InterventionPolicy
diff --git a/chrome/browser/resource_coordinator/intervention_policy_database.h b/chrome/browser/resource_coordinator/intervention_policy_database.h
index 95463f5f..42b9df1 100644
--- a/chrome/browser/resource_coordinator/intervention_policy_database.h
+++ b/chrome/browser/resource_coordinator/intervention_policy_database.h
@@ -75,7 +75,7 @@
   // The map that stores all the per-origin intervention policies.
   InterventionsMap database_;
 
-  base::WeakPtrFactory<InterventionPolicyDatabase> weak_factory_;
+  base::WeakPtrFactory<InterventionPolicyDatabase> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(InterventionPolicyDatabase);
 };
diff --git a/chrome/browser/resource_coordinator/local_site_characteristics_data_impl.cc b/chrome/browser/resource_coordinator/local_site_characteristics_data_impl.cc
index 6306d82..789564d 100644
--- a/chrome/browser/resource_coordinator/local_site_characteristics_data_impl.cc
+++ b/chrome/browser/resource_coordinator/local_site_characteristics_data_impl.cc
@@ -221,8 +221,7 @@
       database_(database),
       delegate_(delegate),
       fully_initialized_(false),
-      is_dirty_(false),
-      weak_factory_(this) {
+      is_dirty_(false) {
   DCHECK(database_);
   DCHECK(delegate_);
 
diff --git a/chrome/browser/resource_coordinator/local_site_characteristics_data_impl.h b/chrome/browser/resource_coordinator/local_site_characteristics_data_impl.h
index ec9c4d4..ac64f647 100644
--- a/chrome/browser/resource_coordinator/local_site_characteristics_data_impl.h
+++ b/chrome/browser/resource_coordinator/local_site_characteristics_data_impl.h
@@ -306,7 +306,7 @@
 
   SEQUENCE_CHECKER(sequence_checker_);
 
-  base::WeakPtrFactory<LocalSiteCharacteristicsDataImpl> weak_factory_;
+  base::WeakPtrFactory<LocalSiteCharacteristicsDataImpl> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(LocalSiteCharacteristicsDataImpl);
 };
diff --git a/chrome/browser/resource_coordinator/local_site_characteristics_data_reader.cc b/chrome/browser/resource_coordinator/local_site_characteristics_data_reader.cc
index f04a723..dcfa88e 100644
--- a/chrome/browser/resource_coordinator/local_site_characteristics_data_reader.cc
+++ b/chrome/browser/resource_coordinator/local_site_characteristics_data_reader.cc
@@ -13,7 +13,7 @@
 
 LocalSiteCharacteristicsDataReader::LocalSiteCharacteristicsDataReader(
     scoped_refptr<internal::LocalSiteCharacteristicsDataImpl> impl)
-    : impl_(std::move(impl)), weak_factory_(this) {}
+    : impl_(std::move(impl)) {}
 
 LocalSiteCharacteristicsDataReader::~LocalSiteCharacteristicsDataReader() {}
 
diff --git a/chrome/browser/resource_coordinator/local_site_characteristics_data_reader.h b/chrome/browser/resource_coordinator/local_site_characteristics_data_reader.h
index da6b005..1a4b0c4 100644
--- a/chrome/browser/resource_coordinator/local_site_characteristics_data_reader.h
+++ b/chrome/browser/resource_coordinator/local_site_characteristics_data_reader.h
@@ -67,7 +67,7 @@
   const scoped_refptr<internal::LocalSiteCharacteristicsDataImpl> impl_;
 
   // Used for invalidating callbacks.
-  base::WeakPtrFactory<LocalSiteCharacteristicsDataReader> weak_factory_;
+  base::WeakPtrFactory<LocalSiteCharacteristicsDataReader> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(LocalSiteCharacteristicsDataReader);
 };
diff --git a/chrome/browser/resource_coordinator/session_restore_policy.cc b/chrome/browser/resource_coordinator/session_restore_policy.cc
index 28794ce6..27490926 100644
--- a/chrome/browser/resource_coordinator/session_restore_policy.cc
+++ b/chrome/browser/resource_coordinator/session_restore_policy.cc
@@ -96,8 +96,7 @@
 SessionRestorePolicy::SessionRestorePolicy()
     : policy_enabled_(true),
       delegate_(SysInfoDelegate::Get()),
-      simultaneous_tab_loads_(CalculateSimultaneousTabLoads()),
-      weak_factory_(this) {}
+      simultaneous_tab_loads_(CalculateSimultaneousTabLoads()) {}
 
 SessionRestorePolicy::~SessionRestorePolicy() {
   // Record the number of tabs involved in the session restore that use
@@ -266,8 +265,7 @@
                                            const Delegate* delegate)
     : policy_enabled_(policy_enabled),
       delegate_(delegate),
-      simultaneous_tab_loads_(CalculateSimultaneousTabLoads()),
-      weak_factory_(this) {}
+      simultaneous_tab_loads_(CalculateSimultaneousTabLoads()) {}
 
 // static
 size_t SessionRestorePolicy::CalculateSimultaneousTabLoads(
diff --git a/chrome/browser/resource_coordinator/session_restore_policy.h b/chrome/browser/resource_coordinator/session_restore_policy.h
index 84bb4fdc..d2d1fd6 100644
--- a/chrome/browser/resource_coordinator/session_restore_policy.h
+++ b/chrome/browser/resource_coordinator/session_restore_policy.h
@@ -302,7 +302,7 @@
   // It's possible for this policy object to be destroyed while it has posted
   // notifications in flight. The messages are bound to a weak pointer so that
   // they are not delivered after the policy object is destroyed.
-  base::WeakPtrFactory<SessionRestorePolicy> weak_factory_;
+  base::WeakPtrFactory<SessionRestorePolicy> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(SessionRestorePolicy);
 };
diff --git a/chrome/browser/resource_coordinator/tab_manager.cc b/chrome/browser/resource_coordinator/tab_manager.cc
index 346af5c..8f5e271 100644
--- a/chrome/browser/resource_coordinator/tab_manager.cc
+++ b/chrome/browser/resource_coordinator/tab_manager.cc
@@ -157,8 +157,7 @@
       restored_tab_count_(0u),
       background_tab_loading_mode_(BackgroundTabLoadingMode::kStaggered),
       loading_slots_(kNumOfLoadingSlots),
-      tab_load_tracker_(tab_load_tracker),
-      weak_ptr_factory_(this) {
+      tab_load_tracker_(tab_load_tracker) {
 #if defined(OS_CHROMEOS)
   delegate_.reset(new TabManagerDelegate(weak_ptr_factory_.GetWeakPtr()));
 #endif
diff --git a/chrome/browser/resource_coordinator/tab_manager.h b/chrome/browser/resource_coordinator/tab_manager.h
index 56c9954..680891d 100644
--- a/chrome/browser/resource_coordinator/tab_manager.h
+++ b/chrome/browser/resource_coordinator/tab_manager.h
@@ -495,7 +495,7 @@
   TabLoadTracker* const tab_load_tracker_;
 
   // Weak pointer factory used for posting delayed tasks.
-  base::WeakPtrFactory<TabManager> weak_ptr_factory_;
+  base::WeakPtrFactory<TabManager> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(TabManager);
 };
diff --git a/chrome/browser/resource_coordinator/tab_manager_stats_collector.cc b/chrome/browser/resource_coordinator/tab_manager_stats_collector.cc
index f85c6449..8018dc5e 100644
--- a/chrome/browser/resource_coordinator/tab_manager_stats_collector.cc
+++ b/chrome/browser/resource_coordinator/tab_manager_stats_collector.cc
@@ -127,7 +127,7 @@
   const SessionType session_type_;
 };
 
-TabManagerStatsCollector::TabManagerStatsCollector() : weak_factory_(this) {
+TabManagerStatsCollector::TabManagerStatsCollector() {
   SessionRestore::AddObserver(this);
 
   // Post BEST_EFFORT task (which will only run after startup is completed) that
diff --git a/chrome/browser/resource_coordinator/tab_manager_stats_collector.h b/chrome/browser/resource_coordinator/tab_manager_stats_collector.h
index 4ca6598b..efeb0a7 100644
--- a/chrome/browser/resource_coordinator/tab_manager_stats_collector.h
+++ b/chrome/browser/resource_coordinator/tab_manager_stats_collector.h
@@ -268,7 +268,7 @@
   // The start time of an ongoing periodic sample.
   base::TimeTicks sample_start_time_;
 
-  base::WeakPtrFactory<TabManagerStatsCollector> weak_factory_;
+  base::WeakPtrFactory<TabManagerStatsCollector> weak_factory_{this};
 };
 
 }  // namespace resource_coordinator
diff --git a/chrome/browser/safe_browsing/browser_feature_extractor.cc b/chrome/browser/safe_browsing/browser_feature_extractor.cc
index 07f7d49..f952d0f2 100644
--- a/chrome/browser/safe_browsing/browser_feature_extractor.cc
+++ b/chrome/browser/safe_browsing/browser_feature_extractor.cc
@@ -158,12 +158,9 @@
   }
 }
 
-BrowserFeatureExtractor::BrowserFeatureExtractor(
-    WebContents* tab,
-    ClientSideDetectionHost* host)
-    : tab_(tab),
-      host_(host),
-      weak_factory_(this) {
+BrowserFeatureExtractor::BrowserFeatureExtractor(WebContents* tab,
+                                                 ClientSideDetectionHost* host)
+    : tab_(tab), host_(host) {
   DCHECK(tab);
 }
 
diff --git a/chrome/browser/safe_browsing/browser_feature_extractor.h b/chrome/browser/safe_browsing/browser_feature_extractor.h
index a371758..db38af8 100644
--- a/chrome/browser/safe_browsing/browser_feature_extractor.h
+++ b/chrome/browser/safe_browsing/browser_feature_extractor.h
@@ -181,7 +181,7 @@
   content::WebContents* tab_;
   ClientSideDetectionHost* host_;
   base::CancelableTaskTracker cancelable_task_tracker_;
-  base::WeakPtrFactory<BrowserFeatureExtractor> weak_factory_;
+  base::WeakPtrFactory<BrowserFeatureExtractor> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(BrowserFeatureExtractor);
 };
diff --git a/chrome/browser/safe_browsing/certificate_reporting_service.cc b/chrome/browser/safe_browsing/certificate_reporting_service.cc
index e82d8e1..6e50e462 100644
--- a/chrome/browser/safe_browsing/certificate_reporting_service.cc
+++ b/chrome/browser/safe_browsing/certificate_reporting_service.cc
@@ -99,8 +99,7 @@
       clock_(clock),
       report_ttl_(report_ttl),
       retries_enabled_(retries_enabled),
-      current_report_id_(0),
-      weak_factory_(this) {}
+      current_report_id_(0) {}
 
 CertificateReportingService::Reporter::~Reporter() {}
 
diff --git a/chrome/browser/safe_browsing/certificate_reporting_service.h b/chrome/browser/safe_browsing/certificate_reporting_service.h
index dba0255..a782649d 100644
--- a/chrome/browser/safe_browsing/certificate_reporting_service.h
+++ b/chrome/browser/safe_browsing/certificate_reporting_service.h
@@ -166,7 +166,7 @@
 
     base::Closure no_in_flight_reports_;
 
-    base::WeakPtrFactory<Reporter> weak_factory_;
+    base::WeakPtrFactory<Reporter> weak_factory_{this};
 
     DISALLOW_COPY_AND_ASSIGN(Reporter);
   };
diff --git a/chrome/browser/safe_browsing/client_side_detection_host.cc b/chrome/browser/safe_browsing/client_side_detection_host.cc
index c6c3831..b5cf497 100644
--- a/chrome/browser/safe_browsing/client_side_detection_host.cc
+++ b/chrome/browser/safe_browsing/client_side_detection_host.cc
@@ -353,8 +353,7 @@
       should_extract_malware_features_(true),
       should_classify_for_malware_(false),
       pageload_complete_(false),
-      unsafe_unique_page_id_(-1),
-      weak_factory_(this) {
+      unsafe_unique_page_id_(-1) {
   DCHECK(tab);
   // Note: csd_service_ and sb_service will be NULL here in testing.
   csd_service_ = g_browser_process->safe_browsing_detection_service();
diff --git a/chrome/browser/safe_browsing/client_side_detection_host.h b/chrome/browser/safe_browsing/client_side_detection_host.h
index 4afbb18..a946471b 100644
--- a/chrome/browser/safe_browsing/client_side_detection_host.h
+++ b/chrome/browser/safe_browsing/client_side_detection_host.h
@@ -171,7 +171,7 @@
   int unsafe_unique_page_id_;
   std::unique_ptr<security_interstitials::UnsafeResource> unsafe_resource_;
 
-  base::WeakPtrFactory<ClientSideDetectionHost> weak_factory_;
+  base::WeakPtrFactory<ClientSideDetectionHost> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(ClientSideDetectionHost);
 };
diff --git a/chrome/browser/safe_browsing/client_side_detection_service.cc b/chrome/browser/safe_browsing/client_side_detection_service.cc
index c63919b..9d3a2fdc 100644
--- a/chrome/browser/safe_browsing/client_side_detection_service.cc
+++ b/chrome/browser/safe_browsing/client_side_detection_service.cc
@@ -100,9 +100,7 @@
 
 ClientSideDetectionService::ClientSideDetectionService(
     scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory)
-    : enabled_(false),
-      url_loader_factory_(url_loader_factory),
-      weak_factory_(this) {
+    : enabled_(false), url_loader_factory_(url_loader_factory) {
   base::Closure update_renderers =
       base::Bind(&ClientSideDetectionService::SendModelToRenderers,
                  base::Unretained(this));
diff --git a/chrome/browser/safe_browsing/client_side_detection_service.h b/chrome/browser/safe_browsing/client_side_detection_service.h
index d7cd30d2..9f33e22 100644
--- a/chrome/browser/safe_browsing/client_side_detection_service.h
+++ b/chrome/browser/safe_browsing/client_side_detection_service.h
@@ -254,7 +254,7 @@
 
   // Used to asynchronously call the callbacks for
   // SendClientReportPhishingRequest.
-  base::WeakPtrFactory<ClientSideDetectionService> weak_factory_;
+  base::WeakPtrFactory<ClientSideDetectionService> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(ClientSideDetectionService);
 };
diff --git a/chrome/browser/safe_browsing/client_side_model_loader.cc b/chrome/browser/safe_browsing/client_side_model_loader.cc
index 6fb8951..2646d07 100644
--- a/chrome/browser/safe_browsing/client_side_model_loader.cc
+++ b/chrome/browser/safe_browsing/client_side_model_loader.cc
@@ -91,8 +91,7 @@
     : name_(FillInModelName(is_extended_reporting, GetModelNumber())),
       url_(kClientModelUrlPrefix + name_),
       update_renderers_callback_(update_renderers_callback),
-      url_loader_factory_(url_loader_factory),
-      weak_factory_(this) {
+      url_loader_factory_(url_loader_factory) {
   DCHECK(url_.is_valid());
 }
 
@@ -104,8 +103,7 @@
     : name_(model_name),
       url_(kClientModelUrlPrefix + name_),
       update_renderers_callback_(update_renderers_callback),
-      url_loader_factory_(url_loader_factory),
-      weak_factory_(this) {
+      url_loader_factory_(url_loader_factory) {
   DCHECK(url_.is_valid());
 }
 
diff --git a/chrome/browser/safe_browsing/client_side_model_loader.h b/chrome/browser/safe_browsing/client_side_model_loader.h
index fe457cdd..2c6a0de 100644
--- a/chrome/browser/safe_browsing/client_side_model_loader.h
+++ b/chrome/browser/safe_browsing/client_side_model_loader.h
@@ -127,7 +127,7 @@
   base::SequenceChecker fetch_sequence_checker_;
 
   // Used to protect the delayed callback to StartFetchModel()
-  base::WeakPtrFactory<ModelLoader> weak_factory_;
+  base::WeakPtrFactory<ModelLoader> weak_factory_{this};
 
   friend class ClientSideDetectionServiceTest;
   friend class ModelLoaderTest;
diff --git a/chrome/browser/safe_browsing/download_protection/check_client_download_request.cc b/chrome/browser/safe_browsing/download_protection/check_client_download_request.cc
index 3126ad2..4dbd6c1 100644
--- a/chrome/browser/safe_browsing/download_protection/check_client_download_request.cc
+++ b/chrome/browser/safe_browsing/download_protection/check_client_download_request.cc
@@ -156,8 +156,7 @@
       is_extended_reporting_(false),
       is_incognito_(false),
       is_under_advanced_protection_(false),
-      requests_ap_verdicts_(false),
-      weakptr_factory_(this) {
+      requests_ap_verdicts_(false) {
   DCHECK_CURRENTLY_ON(BrowserThread::UI);
   item_->AddObserver(this);
 }
diff --git a/chrome/browser/safe_browsing/download_protection/check_client_download_request.h b/chrome/browser/safe_browsing/download_protection/check_client_download_request.h
index ca9ae31..5c7b0b58 100644
--- a/chrome/browser/safe_browsing/download_protection/check_client_download_request.h
+++ b/chrome/browser/safe_browsing/download_protection/check_client_download_request.h
@@ -143,7 +143,7 @@
   int file_count_;
   int directory_count_;
 
-  base::WeakPtrFactory<CheckClientDownloadRequest> weakptr_factory_;
+  base::WeakPtrFactory<CheckClientDownloadRequest> weakptr_factory_{this};
 
   FRIEND_TEST_ALL_PREFIXES(CheckClientDownloadRequestTest,
                            CheckLimitArchivedExtensions);
diff --git a/chrome/browser/safe_browsing/download_protection/download_feedback_service.cc b/chrome/browser/safe_browsing/download_protection/download_feedback_service.cc
index 3bab86a..69679cf 100644
--- a/chrome/browser/safe_browsing/download_protection/download_feedback_service.cc
+++ b/chrome/browser/safe_browsing/download_protection/download_feedback_service.cc
@@ -73,8 +73,7 @@
     scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory,
     base::TaskRunner* file_task_runner)
     : url_loader_factory_(url_loader_factory),
-      file_task_runner_(file_task_runner),
-      weak_ptr_factory_(this) {
+      file_task_runner_(file_task_runner) {
   DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
 }
 
diff --git a/chrome/browser/safe_browsing/download_protection/download_feedback_service.h b/chrome/browser/safe_browsing/download_protection/download_feedback_service.h
index 10bf60d..e1aeb522 100644
--- a/chrome/browser/safe_browsing/download_protection/download_feedback_service.h
+++ b/chrome/browser/safe_browsing/download_protection/download_feedback_service.h
@@ -94,7 +94,7 @@
   // items are pending.
   base::queue<std::unique_ptr<DownloadFeedback>> active_feedback_;
 
-  base::WeakPtrFactory<DownloadFeedbackService> weak_ptr_factory_;
+  base::WeakPtrFactory<DownloadFeedbackService> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(DownloadFeedbackService);
 };
diff --git a/chrome/browser/safe_browsing/download_protection/file_analyzer.cc b/chrome/browser/safe_browsing/download_protection/file_analyzer.cc
index 4da27ff3..bd7b9db7 100644
--- a/chrome/browser/safe_browsing/download_protection/file_analyzer.cc
+++ b/chrome/browser/safe_browsing/download_protection/file_analyzer.cc
@@ -75,8 +75,7 @@
 
 FileAnalyzer::FileAnalyzer(
     scoped_refptr<BinaryFeatureExtractor> binary_feature_extractor)
-    : binary_feature_extractor_(binary_feature_extractor),
-      weakptr_factory_(this) {
+    : binary_feature_extractor_(binary_feature_extractor) {
   DCHECK_CURRENTLY_ON(BrowserThread::UI);
 }
 
diff --git a/chrome/browser/safe_browsing/download_protection/file_analyzer.h b/chrome/browser/safe_browsing/download_protection/file_analyzer.h
index 99684ff..02ca9ba4 100644
--- a/chrome/browser/safe_browsing/download_protection/file_analyzer.h
+++ b/chrome/browser/safe_browsing/download_protection/file_analyzer.h
@@ -121,7 +121,7 @@
   base::TimeTicks dmg_analysis_start_time_;
 #endif
 
-  base::WeakPtrFactory<FileAnalyzer> weakptr_factory_;
+  base::WeakPtrFactory<FileAnalyzer> weakptr_factory_{this};
 };
 
 }  // namespace safe_browsing
diff --git a/chrome/browser/safe_browsing/download_protection/ppapi_download_request.cc b/chrome/browser/safe_browsing/download_protection/ppapi_download_request.cc
index 5b9a2c5..7bedbc0 100644
--- a/chrome/browser/safe_browsing/download_protection/ppapi_download_request.cc
+++ b/chrome/browser/safe_browsing/download_protection/ppapi_download_request.cc
@@ -60,8 +60,7 @@
       database_manager_(database_manager),
       start_time_(base::TimeTicks::Now()),
       supported_path_(
-          GetSupportedFilePath(default_file_path, alternate_extensions)),
-      weakptr_factory_(this) {
+          GetSupportedFilePath(default_file_path, alternate_extensions)) {
   DCHECK(profile);
   is_extended_reporting_ = IsExtendedReportingEnabled(*profile->GetPrefs());
 
diff --git a/chrome/browser/safe_browsing/download_protection/ppapi_download_request.h b/chrome/browser/safe_browsing/download_protection/ppapi_download_request.h
index 81eaabb..551c522 100644
--- a/chrome/browser/safe_browsing/download_protection/ppapi_download_request.h
+++ b/chrome/browser/safe_browsing/download_protection/ppapi_download_request.h
@@ -165,7 +165,7 @@
 
   bool is_extended_reporting_;
 
-  base::WeakPtrFactory<PPAPIDownloadRequest> weakptr_factory_;
+  base::WeakPtrFactory<PPAPIDownloadRequest> weakptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(PPAPIDownloadRequest);
 };
diff --git a/chrome/browser/safe_browsing/incident_reporting/download_metadata_manager.cc b/chrome/browser/safe_browsing/incident_reporting/download_metadata_manager.cc
index 5ea33f6..fe526174 100644
--- a/chrome/browser/safe_browsing/incident_reporting/download_metadata_manager.cc
+++ b/chrome/browser/safe_browsing/incident_reporting/download_metadata_manager.cc
@@ -330,7 +330,7 @@
   // in order when a pending read operation completes.
   std::list<GetDownloadDetailsCallback> get_details_callbacks_;
 
-  base::WeakPtrFactory<ManagerContext> weak_factory_;
+  base::WeakPtrFactory<ManagerContext> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(ManagerContext);
 };
@@ -429,8 +429,7 @@
     content::DownloadManager* download_manager)
     : task_runner_(std::move(task_runner)),
       metadata_path_(GetMetadataPath(download_manager->GetBrowserContext())),
-      state_(WAITING_FOR_LOAD),
-      weak_factory_(this) {
+      state_(WAITING_FOR_LOAD) {
   // Observe all pre-existing items in the manager.
   content::DownloadManager::DownloadVector items;
   download_manager->GetAllDownloads(&items);
diff --git a/chrome/browser/safe_browsing/incident_reporting/incident_reporting_service.cc b/chrome/browser/safe_browsing/incident_reporting/incident_reporting_service.cc
index 2c8f681b..6f4cd994 100644
--- a/chrome/browser/safe_browsing/incident_reporting/incident_reporting_service.cc
+++ b/chrome/browser/safe_browsing/incident_reporting/incident_reporting_service.cc
@@ -333,9 +333,7 @@
                        &IncidentReportingService::OnCollationTimeout),
       delayed_analysis_callbacks_(
           base::TimeDelta::FromMilliseconds(kDefaultCallbackIntervalMs),
-          GetBackgroundTaskRunner()),
-      receiver_weak_ptr_factory_(this),
-      weak_ptr_factory_(this) {
+          GetBackgroundTaskRunner()) {
   DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
   notification_registrar_.Add(this,
                               chrome::NOTIFICATION_PROFILE_ADDED,
@@ -415,9 +413,7 @@
                        base::TimeDelta::FromMilliseconds(kDefaultUploadDelayMs),
                        this,
                        &IncidentReportingService::OnCollationTimeout),
-      delayed_analysis_callbacks_(delayed_task_interval, delayed_task_runner),
-      receiver_weak_ptr_factory_(this),
-      weak_ptr_factory_(this) {
+      delayed_analysis_callbacks_(delayed_task_interval, delayed_task_runner) {
   notification_registrar_.Add(this,
                               chrome::NOTIFICATION_PROFILE_ADDED,
                               content::NotificationService::AllSources());
diff --git a/chrome/browser/safe_browsing/incident_reporting/incident_reporting_service.h b/chrome/browser/safe_browsing/incident_reporting/incident_reporting_service.h
index 292cc95d..61ef48c1 100644
--- a/chrome/browser/safe_browsing/incident_reporting/incident_reporting_service.h
+++ b/chrome/browser/safe_browsing/incident_reporting/incident_reporting_service.h
@@ -337,12 +337,13 @@
   std::unique_ptr<LastDownloadFinder> last_download_finder_;
 
   // A factory for handing out weak pointers for IncidentReceiver objects.
-  base::WeakPtrFactory<IncidentReportingService> receiver_weak_ptr_factory_;
+  base::WeakPtrFactory<IncidentReportingService> receiver_weak_ptr_factory_{
+      this};
 
   // A factory for handing out weak pointers for internal asynchronous tasks
   // that are posted during normal processing (e.g., environment collection,
   // and report uploads).
-  base::WeakPtrFactory<IncidentReportingService> weak_ptr_factory_;
+  base::WeakPtrFactory<IncidentReportingService> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(IncidentReportingService);
 };
diff --git a/chrome/browser/safe_browsing/incident_reporting/last_download_finder.cc b/chrome/browser/safe_browsing/incident_reporting/last_download_finder.cc
index 5b28c1e4..9f4ea6a 100644
--- a/chrome/browser/safe_browsing/incident_reporting/last_download_finder.cc
+++ b/chrome/browser/safe_browsing/incident_reporting/last_download_finder.cc
@@ -257,9 +257,7 @@
   return finder;
 }
 
-LastDownloadFinder::LastDownloadFinder()
-    : history_service_observer_(this), weak_ptr_factory_(this) {
-}
+LastDownloadFinder::LastDownloadFinder() : history_service_observer_(this) {}
 
 LastDownloadFinder::LastDownloadFinder(
     const DownloadDetailsGetter& download_details_getter,
@@ -267,8 +265,7 @@
     const LastDownloadCallback& callback)
     : download_details_getter_(download_details_getter),
       callback_(callback),
-      history_service_observer_(this),
-      weak_ptr_factory_(this) {
+      history_service_observer_(this) {
   // Observe profile lifecycle events so that the finder can begin or abandon
   // the search in profiles while it is running.
   notification_registrar_.Add(this,
diff --git a/chrome/browser/safe_browsing/incident_reporting/last_download_finder.h b/chrome/browser/safe_browsing/incident_reporting/last_download_finder.h
index faa0b29..bf06622 100644
--- a/chrome/browser/safe_browsing/incident_reporting/last_download_finder.h
+++ b/chrome/browser/safe_browsing/incident_reporting/last_download_finder.h
@@ -152,7 +152,7 @@
       history_service_observer_;
 
   // A factory for asynchronous operations on profiles' HistoryService.
-  base::WeakPtrFactory<LastDownloadFinder> weak_ptr_factory_;
+  base::WeakPtrFactory<LastDownloadFinder> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(LastDownloadFinder);
 };
diff --git a/chrome/browser/safe_browsing/incident_reporting/resource_request_detector.cc b/chrome/browser/safe_browsing/incident_reporting/resource_request_detector.cc
index 132240e4..25883e9 100644
--- a/chrome/browser/safe_browsing/incident_reporting/resource_request_detector.cc
+++ b/chrome/browser/safe_browsing/incident_reporting/resource_request_detector.cc
@@ -146,8 +146,7 @@
     std::unique_ptr<IncidentReceiver> incident_receiver)
     : incident_receiver_(std::move(incident_receiver)),
       database_manager_(database_manager),
-      allow_null_profile_for_testing_(false),
-      weak_ptr_factory_(this) {}
+      allow_null_profile_for_testing_(false) {}
 
 ResourceRequestDetector::~ResourceRequestDetector() {
 }
diff --git a/chrome/browser/safe_browsing/incident_reporting/resource_request_detector.h b/chrome/browser/safe_browsing/incident_reporting/resource_request_detector.h
index 796f5c1b..69f4536 100644
--- a/chrome/browser/safe_browsing/incident_reporting/resource_request_detector.h
+++ b/chrome/browser/safe_browsing/incident_reporting/resource_request_detector.h
@@ -56,7 +56,7 @@
   scoped_refptr<SafeBrowsingDatabaseManager> database_manager_;
   bool allow_null_profile_for_testing_;
 
-  base::WeakPtrFactory<ResourceRequestDetector> weak_ptr_factory_;
+  base::WeakPtrFactory<ResourceRequestDetector> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(ResourceRequestDetector);
 };
diff --git a/chrome/browser/safe_browsing/telemetry/telemetry_service.cc b/chrome/browser/safe_browsing/telemetry/telemetry_service.cc
index 73298e9..2d7a4b4 100644
--- a/chrome/browser/safe_browsing/telemetry/telemetry_service.cc
+++ b/chrome/browser/safe_browsing/telemetry/telemetry_service.cc
@@ -6,7 +6,7 @@
 
 namespace safe_browsing {
 
-TelemetryService::TelemetryService() : weak_factory_(this) {}
+TelemetryService::TelemetryService() {}
 
 TelemetryService::~TelemetryService() {
   weak_factory_.InvalidateWeakPtrs();
diff --git a/chrome/browser/safe_browsing/telemetry/telemetry_service.h b/chrome/browser/safe_browsing/telemetry/telemetry_service.h
index da3b0750..6bce8221 100644
--- a/chrome/browser/safe_browsing/telemetry/telemetry_service.h
+++ b/chrome/browser/safe_browsing/telemetry/telemetry_service.h
@@ -22,7 +22,7 @@
   }
 
  private:
-  base::WeakPtrFactory<TelemetryService> weak_factory_;
+  base::WeakPtrFactory<TelemetryService> weak_factory_{this};
   DISALLOW_COPY_AND_ASSIGN(TelemetryService);
 };
 
diff --git a/chrome/browser/search/instant_service.cc b/chrome/browser/search/instant_service.cc
index 0457b1f..55cd9c9 100644
--- a/chrome/browser/search/instant_service.cc
+++ b/chrome/browser/search/instant_service.cc
@@ -189,8 +189,7 @@
       most_visited_info_(std::make_unique<InstantMostVisitedInfo>()),
       pref_service_(profile_->GetPrefs()),
       theme_observer_(this),
-      native_theme_(ui::NativeTheme::GetInstanceForNativeUi()),
-      weak_ptr_factory_(this) {
+      native_theme_(ui::NativeTheme::GetInstanceForNativeUi()) {
   // The initialization below depends on a typical set of browser threads. Skip
   // it if we are running in a unit test without the full suite.
   if (!content::BrowserThread::CurrentlyOn(content::BrowserThread::UI))
diff --git a/chrome/browser/search/instant_service.h b/chrome/browser/search/instant_service.h
index 2a73342..badf7865 100644
--- a/chrome/browser/search/instant_service.h
+++ b/chrome/browser/search/instant_service.h
@@ -279,7 +279,7 @@
 
   std::unique_ptr<image_fetcher::ImageFetcher> image_fetcher_;
 
-  base::WeakPtrFactory<InstantService> weak_ptr_factory_;
+  base::WeakPtrFactory<InstantService> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(InstantService);
 };
diff --git a/chrome/browser/search/local_ntp_source.cc b/chrome/browser/search/local_ntp_source.cc
index e7e129c..e15faaf28 100644
--- a/chrome/browser/search/local_ntp_source.cc
+++ b/chrome/browser/search/local_ntp_source.cc
@@ -655,7 +655,7 @@
 
 class LocalNtpSource::DesktopLogoObserver {
  public:
-  DesktopLogoObserver() : weak_ptr_factory_(this) {}
+  DesktopLogoObserver() {}
 
   // Get the cached logo.
   void GetCachedLogo(LogoService* service,
@@ -763,7 +763,7 @@
   int version_started_ = 0;
   int version_finished_ = 0;
 
-  base::WeakPtrFactory<DesktopLogoObserver> weak_ptr_factory_;
+  base::WeakPtrFactory<DesktopLogoObserver> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(DesktopLogoObserver);
 };
@@ -781,8 +781,7 @@
       search_suggest_service_(
           SearchSuggestServiceFactory::GetForProfile(profile_)),
       search_suggest_service_observer_(this),
-      logo_service_(nullptr),
-      weak_ptr_factory_(this) {
+      logo_service_(nullptr) {
   DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
 
   // |ntp_background_service_| is null in incognito, or when the feature is
diff --git a/chrome/browser/search/local_ntp_source.h b/chrome/browser/search/local_ntp_source.h
index 5171b3002..fcf2afc 100644
--- a/chrome/browser/search/local_ntp_source.h
+++ b/chrome/browser/search/local_ntp_source.h
@@ -166,7 +166,7 @@
 
   std::unique_ptr<SearchConfigurationProvider> search_config_provider_;
 
-  base::WeakPtrFactory<LocalNtpSource> weak_ptr_factory_;
+  base::WeakPtrFactory<LocalNtpSource> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(LocalNtpSource);
 };
diff --git a/chrome/browser/search/ntp_icon_source.cc b/chrome/browser/search/ntp_icon_source.cc
index c6275e6..c8d0cc1 100644
--- a/chrome/browser/search/ntp_icon_source.cc
+++ b/chrome/browser/search/ntp_icon_source.cc
@@ -270,8 +270,7 @@
       image_fetcher_(std::make_unique<image_fetcher::ImageFetcherImpl>(
           std::make_unique<ImageDecoderImpl>(),
           content::BrowserContext::GetDefaultStoragePartition(profile)
-              ->GetURLLoaderFactoryForBrowserProcess())),
-      weak_ptr_factory_(this) {}
+              ->GetURLLoaderFactoryForBrowserProcess())) {}
 
 NtpIconSource::~NtpIconSource() = default;
 
diff --git a/chrome/browser/search/ntp_icon_source.h b/chrome/browser/search/ntp_icon_source.h
index 4c4a038..9aef5709 100644
--- a/chrome/browser/search/ntp_icon_source.h
+++ b/chrome/browser/search/ntp_icon_source.h
@@ -67,7 +67,7 @@
   Profile* profile_;
   std::unique_ptr<image_fetcher::ImageFetcher> const image_fetcher_;
 
-  base::WeakPtrFactory<NtpIconSource> weak_ptr_factory_;
+  base::WeakPtrFactory<NtpIconSource> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(NtpIconSource);
 };
diff --git a/chrome/browser/search/one_google_bar/one_google_bar_loader_impl.cc b/chrome/browser/search/one_google_bar/one_google_bar_loader_impl.cc
index 0861281..9afc8531 100644
--- a/chrome/browser/search/one_google_bar/one_google_bar_loader_impl.cc
+++ b/chrome/browser/search/one_google_bar/one_google_bar_loader_impl.cc
@@ -268,8 +268,8 @@
     : url_loader_factory_(url_loader_factory),
       google_url_tracker_(google_url_tracker),
       application_locale_(application_locale),
-      account_consistency_mirror_required_(account_consistency_mirror_required),
-      weak_ptr_factory_(this) {}
+      account_consistency_mirror_required_(
+          account_consistency_mirror_required) {}
 
 OneGoogleBarLoaderImpl::~OneGoogleBarLoaderImpl() = default;
 
diff --git a/chrome/browser/search/one_google_bar/one_google_bar_loader_impl.h b/chrome/browser/search/one_google_bar/one_google_bar_loader_impl.h
index deec1d8..d5ba4a0 100644
--- a/chrome/browser/search/one_google_bar/one_google_bar_loader_impl.h
+++ b/chrome/browser/search/one_google_bar/one_google_bar_loader_impl.h
@@ -61,7 +61,7 @@
   std::vector<OneGoogleCallback> callbacks_;
   std::unique_ptr<AuthenticatedURLLoader> pending_request_;
 
-  base::WeakPtrFactory<OneGoogleBarLoaderImpl> weak_ptr_factory_;
+  base::WeakPtrFactory<OneGoogleBarLoaderImpl> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(OneGoogleBarLoaderImpl);
 };
diff --git a/chrome/browser/search/promos/promo_service.cc b/chrome/browser/search/promos/promo_service.cc
index 7e84010..ce6fe6b 100644
--- a/chrome/browser/search/promos/promo_service.cc
+++ b/chrome/browser/search/promos/promo_service.cc
@@ -83,8 +83,7 @@
     scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory,
     GoogleURLTracker* google_url_tracker)
     : url_loader_factory_(url_loader_factory),
-      google_url_tracker_(google_url_tracker),
-      weak_ptr_factory_(this) {}
+      google_url_tracker_(google_url_tracker) {}
 
 PromoService::~PromoService() = default;
 
diff --git a/chrome/browser/search/promos/promo_service.h b/chrome/browser/search/promos/promo_service.h
index 22d6103..39fe6c4 100644
--- a/chrome/browser/search/promos/promo_service.h
+++ b/chrome/browser/search/promos/promo_service.h
@@ -87,7 +87,7 @@
   base::Optional<PromoData> promo_data_;
   Status promo_status_;
 
-  base::WeakPtrFactory<PromoService> weak_ptr_factory_;
+  base::WeakPtrFactory<PromoService> weak_ptr_factory_{this};
 };
 
 #endif  // CHROME_BROWSER_SEARCH_PROMOS_PROMO_SERVICE_H_
diff --git a/chrome/browser/search/search_suggest/search_suggest_loader_impl.cc b/chrome/browser/search/search_suggest/search_suggest_loader_impl.cc
index 3f629833..c17624a 100644
--- a/chrome/browser/search/search_suggest/search_suggest_loader_impl.cc
+++ b/chrome/browser/search/search_suggest/search_suggest_loader_impl.cc
@@ -208,8 +208,7 @@
     const std::string& application_locale)
     : url_loader_factory_(url_loader_factory),
       google_url_tracker_(google_url_tracker),
-      application_locale_(application_locale),
-      weak_ptr_factory_(this) {}
+      application_locale_(application_locale) {}
 
 SearchSuggestLoaderImpl::~SearchSuggestLoaderImpl() = default;
 
diff --git a/chrome/browser/search/search_suggest/search_suggest_loader_impl.h b/chrome/browser/search/search_suggest/search_suggest_loader_impl.h
index 819c5bd..bbc7e82 100644
--- a/chrome/browser/search/search_suggest/search_suggest_loader_impl.h
+++ b/chrome/browser/search/search_suggest/search_suggest_loader_impl.h
@@ -60,7 +60,7 @@
   std::vector<SearchSuggestionsCallback> callbacks_;
   std::unique_ptr<AuthenticatedURLLoader> pending_request_;
 
-  base::WeakPtrFactory<SearchSuggestLoaderImpl> weak_ptr_factory_;
+  base::WeakPtrFactory<SearchSuggestLoaderImpl> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(SearchSuggestLoaderImpl);
 };
diff --git a/chrome/browser/security_events/security_event_sync_bridge_impl.cc b/chrome/browser/security_events/security_event_sync_bridge_impl.cc
index 858ee00..b57f73a187 100644
--- a/chrome/browser/security_events/security_event_sync_bridge_impl.cc
+++ b/chrome/browser/security_events/security_event_sync_bridge_impl.cc
@@ -45,8 +45,7 @@
 SecurityEventSyncBridgeImpl::SecurityEventSyncBridgeImpl(
     syncer::OnceModelTypeStoreFactory store_factory,
     std::unique_ptr<syncer::ModelTypeChangeProcessor> change_processor)
-    : syncer::ModelTypeSyncBridge(std::move(change_processor)),
-      weak_ptr_factory_(this) {
+    : syncer::ModelTypeSyncBridge(std::move(change_processor)) {
   std::move(store_factory)
       .Run(syncer::SECURITY_EVENTS,
            base::BindOnce(&SecurityEventSyncBridgeImpl::OnStoreCreated,
diff --git a/chrome/browser/security_events/security_event_sync_bridge_impl.h b/chrome/browser/security_events/security_event_sync_bridge_impl.h
index 8708b143..b0b38ea 100644
--- a/chrome/browser/security_events/security_event_sync_bridge_impl.h
+++ b/chrome/browser/security_events/security_event_sync_bridge_impl.h
@@ -68,7 +68,7 @@
 
   std::unique_ptr<syncer::ModelTypeStore> store_;
 
-  base::WeakPtrFactory<SecurityEventSyncBridgeImpl> weak_ptr_factory_;
+  base::WeakPtrFactory<SecurityEventSyncBridgeImpl> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(SecurityEventSyncBridgeImpl);
 };
diff --git a/chrome/browser/service_process/service_process_control.cc b/chrome/browser/service_process/service_process_control.cc
index e8c00e0e..0cd60d25 100644
--- a/chrome/browser/service_process/service_process_control.cc
+++ b/chrome/browser/service_process/service_process_control.cc
@@ -82,7 +82,7 @@
 
 // ServiceProcessControl implementation.
 ServiceProcessControl::ServiceProcessControl()
-    : apply_changes_from_upgrade_observer_(false), weak_factory_(this) {
+    : apply_changes_from_upgrade_observer_(false) {
   UpgradeDetector::GetInstance()->AddObserver(this);
 }
 
diff --git a/chrome/browser/service_process/service_process_control.h b/chrome/browser/service_process/service_process_control.h
index c622ed3a..b49089d 100644
--- a/chrome/browser/service_process/service_process_control.h
+++ b/chrome/browser/service_process/service_process_control.h
@@ -214,7 +214,7 @@
   // Same as |Launcher::saved_pid_|.
   base::ProcessId saved_pid_;
 
-  base::WeakPtrFactory<ServiceProcessControl> weak_factory_;
+  base::WeakPtrFactory<ServiceProcessControl> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(ServiceProcessControl);
 };
diff --git a/chrome/browser/sessions/session_restore_test_helper.cc b/chrome/browser/sessions/session_restore_test_helper.cc
index f24886e..6b446ae7 100644
--- a/chrome/browser/sessions/session_restore_test_helper.cc
+++ b/chrome/browser/sessions/session_restore_test_helper.cc
@@ -9,9 +9,7 @@
 #include "testing/gtest/include/gtest/gtest.h"
 
 SessionRestoreTestHelper::SessionRestoreTestHelper()
-    : restore_notification_seen_(false),
-      loop_is_running_(false),
-      weak_ptr_factory(this) {
+    : restore_notification_seen_(false), loop_is_running_(false) {
   callback_subscription_ = SessionRestore::RegisterOnSessionRestoredCallback(
       base::Bind(&SessionRestoreTestHelper::OnSessionRestoreDone,
                  weak_ptr_factory.GetWeakPtr()));
diff --git a/chrome/browser/sessions/session_restore_test_helper.h b/chrome/browser/sessions/session_restore_test_helper.h
index b72f1b8..8985cf4 100644
--- a/chrome/browser/sessions/session_restore_test_helper.h
+++ b/chrome/browser/sessions/session_restore_test_helper.h
@@ -43,7 +43,7 @@
   SessionRestore::CallbackSubscription callback_subscription_;
 
   // For safely binding pointers to callbacks.
-  base::WeakPtrFactory<SessionRestoreTestHelper> weak_ptr_factory;
+  base::WeakPtrFactory<SessionRestoreTestHelper> weak_ptr_factory{this};
 
   DISALLOW_COPY_AND_ASSIGN(SessionRestoreTestHelper);
 };
diff --git a/chrome/browser/sessions/session_service.cc b/chrome/browser/sessions/session_service.cc
index 180b1880..112a50f 100644
--- a/chrome/browser/sessions/session_service.cc
+++ b/chrome/browser/sessions/session_service.cc
@@ -79,8 +79,7 @@
       has_open_trackable_browsers_(false),
       move_on_new_browser_(false),
       force_browser_not_alive_with_no_windows_(false),
-      rebuild_on_next_save_(false),
-      weak_factory_(this) {
+      rebuild_on_next_save_(false) {
   // We should never be created when incognito.
   DCHECK(!profile->IsOffTheRecord());
   Init();
@@ -96,8 +95,7 @@
       has_open_trackable_browsers_(false),
       move_on_new_browser_(false),
       force_browser_not_alive_with_no_windows_(false),
-      rebuild_on_next_save_(false),
-      weak_factory_(this) {
+      rebuild_on_next_save_(false) {
   Init();
 }
 
diff --git a/chrome/browser/sessions/session_service.h b/chrome/browser/sessions/session_service.h
index d571e543..172f18a 100644
--- a/chrome/browser/sessions/session_service.h
+++ b/chrome/browser/sessions/session_service.h
@@ -397,7 +397,7 @@
   // tab's index hasn't changed.
   std::map<SessionID, int> last_selected_tab_in_window_;
 
-  base::WeakPtrFactory<SessionService> weak_factory_;
+  base::WeakPtrFactory<SessionService> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(SessionService);
 };
diff --git a/chrome/browser/sessions/tab_loader_delegate.cc b/chrome/browser/sessions/tab_loader_delegate.cc
index f685120d..a4b19077 100644
--- a/chrome/browser/sessions/tab_loader_delegate.cc
+++ b/chrome/browser/sessions/tab_loader_delegate.cc
@@ -99,13 +99,13 @@
   base::TimeDelta first_timeout_;
   base::TimeDelta timeout_;
 
-  base::WeakPtrFactory<TabLoaderDelegateImpl> weak_factory_;
+  base::WeakPtrFactory<TabLoaderDelegateImpl> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(TabLoaderDelegateImpl);
 };
 
 TabLoaderDelegateImpl::TabLoaderDelegateImpl(TabLoaderCallback* callback)
-    : policy_(&default_policy_), callback_(callback), weak_factory_(this) {
+    : policy_(&default_policy_), callback_(callback) {
   content::GetNetworkConnectionTracker()->AddNetworkConnectionObserver(this);
   auto type = network::mojom::ConnectionType::CONNECTION_UNKNOWN;
   content::GetNetworkConnectionTracker()->GetConnectionType(
diff --git a/chrome/browser/sharing/sharing_device_registration.cc b/chrome/browser/sharing/sharing_device_registration.cc
index dc97bc7..80e1b6c 100644
--- a/chrome/browser/sharing/sharing_device_registration.cc
+++ b/chrome/browser/sharing/sharing_device_registration.cc
@@ -38,8 +38,7 @@
       instance_id_driver_(instance_id_driver),
       vapid_key_manager_(vapid_key_manager),
       gcm_driver_(gcm_driver),
-      local_device_info_provider_(local_device_info_provider),
-      weak_ptr_factory_(this) {}
+      local_device_info_provider_(local_device_info_provider) {}
 
 SharingDeviceRegistration::~SharingDeviceRegistration() = default;
 
diff --git a/chrome/browser/sharing/sharing_device_registration.h b/chrome/browser/sharing/sharing_device_registration.h
index 280398a8..c461ff06 100644
--- a/chrome/browser/sharing/sharing_device_registration.h
+++ b/chrome/browser/sharing/sharing_device_registration.h
@@ -91,7 +91,7 @@
   syncer::LocalDeviceInfoProvider* local_device_info_provider_;
   std::string registered_public_key_;
 
-  base::WeakPtrFactory<SharingDeviceRegistration> weak_ptr_factory_;
+  base::WeakPtrFactory<SharingDeviceRegistration> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(SharingDeviceRegistration);
 };
diff --git a/chrome/browser/sharing/sharing_fcm_handler.cc b/chrome/browser/sharing/sharing_fcm_handler.cc
index ce9d0b6..82b12df 100644
--- a/chrome/browser/sharing/sharing_fcm_handler.cc
+++ b/chrome/browser/sharing/sharing_fcm_handler.cc
@@ -17,9 +17,7 @@
 
 SharingFCMHandler::SharingFCMHandler(gcm::GCMDriver* gcm_driver,
                                      SharingFCMSender* sharing_fcm_sender)
-    : gcm_driver_(gcm_driver),
-      sharing_fcm_sender_(sharing_fcm_sender),
-      weak_ptr_factory_(this) {}
+    : gcm_driver_(gcm_driver), sharing_fcm_sender_(sharing_fcm_sender) {}
 
 SharingFCMHandler::~SharingFCMHandler() {
   StopListening();
diff --git a/chrome/browser/sharing/sharing_fcm_handler.h b/chrome/browser/sharing/sharing_fcm_handler.h
index 263e9b6..c54df3a 100644
--- a/chrome/browser/sharing/sharing_fcm_handler.h
+++ b/chrome/browser/sharing/sharing_fcm_handler.h
@@ -76,7 +76,7 @@
       sharing_handlers_;
   bool is_listening_ = false;
 
-  base::WeakPtrFactory<SharingFCMHandler> weak_ptr_factory_;
+  base::WeakPtrFactory<SharingFCMHandler> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(SharingFCMHandler);
 };
diff --git a/chrome/browser/sharing/sharing_service.cc b/chrome/browser/sharing/sharing_service.cc
index 1e38305..71c2226d 100644
--- a/chrome/browser/sharing/sharing_service.cc
+++ b/chrome/browser/sharing/sharing_service.cc
@@ -79,8 +79,7 @@
       fcm_handler_(std::move(fcm_handler)),
       device_info_tracker_(device_info_tracker),
       sync_service_(sync_service),
-      backoff_entry_(&kRetryBackoffPolicy),
-      weak_ptr_factory_(this) {
+      backoff_entry_(&kRetryBackoffPolicy) {
   fcm_handler_->AddSharingHandler(
       chrome_browser_sharing::SharingMessage::kAckMessage,
       &ack_message_handler_);
diff --git a/chrome/browser/sharing/sharing_service.h b/chrome/browser/sharing/sharing_service.h
index 5df4180e..bb8cff9 100644
--- a/chrome/browser/sharing/sharing_service.h
+++ b/chrome/browser/sharing/sharing_service.h
@@ -101,7 +101,7 @@
   ClickToCallMessageHandler click_to_call_message_handler_;
 #endif  // defined(OS_ANDROID)
 
-  base::WeakPtrFactory<SharingService> weak_ptr_factory_;
+  base::WeakPtrFactory<SharingService> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(SharingService);
 };
diff --git a/chrome/browser/signin/chrome_signin_client.cc b/chrome/browser/signin/chrome_signin_client.cc
index 2954ea6..0796173 100644
--- a/chrome/browser/signin/chrome_signin_client.cc
+++ b/chrome/browser/signin/chrome_signin_client.cc
@@ -93,8 +93,7 @@
 
 }  // namespace
 
-ChromeSigninClient::ChromeSigninClient(Profile* profile)
-    : profile_(profile), weak_ptr_factory_(this) {
+ChromeSigninClient::ChromeSigninClient(Profile* profile) : profile_(profile) {
 #if !defined(OS_CHROMEOS)
   content::GetNetworkConnectionTracker()->AddNetworkConnectionObserver(this);
 #endif
diff --git a/chrome/browser/signin/chrome_signin_client.h b/chrome/browser/signin/chrome_signin_client.h
index 869d060..df241f53 100644
--- a/chrome/browser/signin/chrome_signin_client.h
+++ b/chrome/browser/signin/chrome_signin_client.h
@@ -123,7 +123,7 @@
   scoped_refptr<network::SharedURLLoaderFactory>
       url_loader_factory_for_testing_;
 
-  base::WeakPtrFactory<ChromeSigninClient> weak_ptr_factory_;
+  base::WeakPtrFactory<ChromeSigninClient> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(ChromeSigninClient);
 };
diff --git a/chrome/browser/signin/chrome_signin_proxying_url_loader_factory.cc b/chrome/browser/signin/chrome_signin_proxying_url_loader_factory.cc
index 87c8f10..e56ad64 100644
--- a/chrome/browser/signin/chrome_signin_proxying_url_loader_factory.cc
+++ b/chrome/browser/signin/chrome_signin_proxying_url_loader_factory.cc
@@ -71,12 +71,12 @@
   }
 
  private:
-  ResourceContextData() : weak_factory_(this) {}
+  ResourceContextData() {}
 
   std::set<std::unique_ptr<ProxyingURLLoaderFactory>, base::UniquePtrComparator>
       proxies_;
 
-  base::WeakPtrFactory<ResourceContextData> weak_factory_;
+  base::WeakPtrFactory<ResourceContextData> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(ResourceContextData);
 };
diff --git a/chrome/browser/signin/chrome_signin_proxying_url_loader_factory_unittest.cc b/chrome/browser/signin/chrome_signin_proxying_url_loader_factory_unittest.cc
index 0224078..53f91cf 100644
--- a/chrome/browser/signin/chrome_signin_proxying_url_loader_factory_unittest.cc
+++ b/chrome/browser/signin/chrome_signin_proxying_url_loader_factory_unittest.cc
@@ -30,7 +30,7 @@
 
 class MockDelegate : public HeaderModificationDelegate {
  public:
-  MockDelegate() : weak_factory_(this) {}
+  MockDelegate() {}
   ~MockDelegate() override {}
 
   MOCK_METHOD1(ShouldInterceptNavigation,
@@ -47,7 +47,7 @@
   }
 
  private:
-  base::WeakPtrFactory<MockDelegate> weak_factory_;
+  base::WeakPtrFactory<MockDelegate> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(MockDelegate);
 };
diff --git a/chrome/browser/speech/extension_api/tts_extension_apitest.cc b/chrome/browser/speech/extension_api/tts_extension_apitest.cc
index c3dcfdb6..d43c578 100644
--- a/chrome/browser/speech/extension_api/tts_extension_apitest.cc
+++ b/chrome/browser/speech/extension_api/tts_extension_apitest.cc
@@ -50,9 +50,7 @@
 
 class MockTtsPlatformImpl : public content::TtsPlatform {
  public:
-  MockTtsPlatformImpl()
-      : should_fake_get_voices_(false),
-        ptr_factory_(this) {}
+  MockTtsPlatformImpl() : should_fake_get_voices_(false) {}
 
   bool PlatformImplAvailable() override { return true; }
 
@@ -208,7 +206,7 @@
   int speak_error_count_ = 0;
   bool should_fake_get_voices_;
   std::string error_;
-  base::WeakPtrFactory<MockTtsPlatformImpl> ptr_factory_;
+  base::WeakPtrFactory<MockTtsPlatformImpl> ptr_factory_{this};
 };
 
 class FakeNetworkOnlineStateForTest : public net::NetworkChangeNotifier {
diff --git a/chrome/browser/speech/speech_recognizer.cc b/chrome/browser/speech/speech_recognizer.cc
index 1f37b3dd..a49d3054 100644
--- a/chrome/browser/speech/speech_recognizer.cc
+++ b/chrome/browser/speech/speech_recognizer.cc
@@ -108,7 +108,7 @@
   int session_;
   base::string16 last_result_str_;
 
-  base::WeakPtrFactory<EventListener> weak_factory_;
+  base::WeakPtrFactory<EventListener> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(EventListener);
 };
@@ -124,8 +124,7 @@
           std::move(shared_url_loader_factory_info)),
       accept_language_(accept_language),
       locale_(locale),
-      session_(kInvalidSessionId),
-      weak_factory_(this) {
+      session_(kInvalidSessionId) {
   DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
 }
 
diff --git a/chrome/browser/speech/speech_recognizer_browsertest.cc b/chrome/browser/speech/speech_recognizer_browsertest.cc
index 4fd8839d..0bc7db5 100644
--- a/chrome/browser/speech/speech_recognizer_browsertest.cc
+++ b/chrome/browser/speech/speech_recognizer_browsertest.cc
@@ -28,7 +28,7 @@
 
 class MockSpeechRecognizerDelegate : public SpeechRecognizerDelegate {
  public:
-  MockSpeechRecognizerDelegate() : weak_factory_(this) {}
+  MockSpeechRecognizerDelegate() {}
 
   base::WeakPtr<MockSpeechRecognizerDelegate> GetWeakPtr() {
     return weak_factory_.GetWeakPtr();
@@ -40,7 +40,7 @@
   MOCK_METHOD2(GetSpeechAuthParameters, void(std::string*, std::string*));
 
  private:
-  base::WeakPtrFactory<MockSpeechRecognizerDelegate> weak_factory_;
+  base::WeakPtrFactory<MockSpeechRecognizerDelegate> weak_factory_{this};
 };
 
 class AppListSpeechRecognizerBrowserTest : public InProcessBrowserTest {
diff --git a/chrome/browser/spellchecker/spell_check_host_chrome_impl.cc b/chrome/browser/spellchecker/spell_check_host_chrome_impl.cc
index afd0999..2a8968b 100644
--- a/chrome/browser/spellchecker/spell_check_host_chrome_impl.cc
+++ b/chrome/browser/spellchecker/spell_check_host_chrome_impl.cc
@@ -21,7 +21,7 @@
 
 SpellCheckHostChromeImpl::SpellCheckHostChromeImpl(
     const service_manager::Identity& renderer_identity)
-    : renderer_identity_(renderer_identity), weak_factory_(this) {}
+    : renderer_identity_(renderer_identity) {}
 
 SpellCheckHostChromeImpl::~SpellCheckHostChromeImpl() = default;
 
diff --git a/chrome/browser/spellchecker/spell_check_host_chrome_impl.h b/chrome/browser/spellchecker/spell_check_host_chrome_impl.h
index f5ce9f1..dd3af7f 100644
--- a/chrome/browser/spellchecker/spell_check_host_chrome_impl.h
+++ b/chrome/browser/spellchecker/spell_check_host_chrome_impl.h
@@ -96,7 +96,7 @@
   // A JSON-RPC client that calls the remote Spelling service.
   SpellingServiceClient client_;
 
-  base::WeakPtrFactory<SpellCheckHostChromeImpl> weak_factory_;
+  base::WeakPtrFactory<SpellCheckHostChromeImpl> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(SpellCheckHostChromeImpl);
 };
diff --git a/chrome/browser/spellchecker/spellcheck_custom_dictionary.cc b/chrome/browser/spellchecker/spellcheck_custom_dictionary.cc
index 9f13a66..31619d7 100644
--- a/chrome/browser/spellchecker/spellcheck_custom_dictionary.cc
+++ b/chrome/browser/spellchecker/spellcheck_custom_dictionary.cc
@@ -226,8 +226,7 @@
           base::CreateSequencedTaskRunnerWithTraits({base::MayBlock()})),
       custom_dictionary_path_(
           dictionary_directory_name.Append(chrome::kCustomDictionaryFileName)),
-      is_loaded_(false),
-      weak_ptr_factory_(this) {}
+      is_loaded_(false) {}
 
 SpellcheckCustomDictionary::~SpellcheckCustomDictionary() {
 }
diff --git a/chrome/browser/spellchecker/spellcheck_custom_dictionary.h b/chrome/browser/spellchecker/spellcheck_custom_dictionary.h
index e3ba992..7ea9991 100644
--- a/chrome/browser/spellchecker/spellcheck_custom_dictionary.h
+++ b/chrome/browser/spellchecker/spellcheck_custom_dictionary.h
@@ -226,7 +226,7 @@
   base::CancelableOnceClosure fix_invalid_file_;
 
   // Used to create weak pointers for an instance of this class.
-  base::WeakPtrFactory<SpellcheckCustomDictionary> weak_ptr_factory_;
+  base::WeakPtrFactory<SpellcheckCustomDictionary> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(SpellcheckCustomDictionary);
 };
diff --git a/chrome/browser/spellchecker/spellcheck_hunspell_dictionary.cc b/chrome/browser/spellchecker/spellcheck_hunspell_dictionary.cc
index 5f9f076b..d4ac62ef 100644
--- a/chrome/browser/spellchecker/spellcheck_hunspell_dictionary.cc
+++ b/chrome/browser/spellchecker/spellcheck_hunspell_dictionary.cc
@@ -118,8 +118,7 @@
 #if !defined(OS_ANDROID)
       spellcheck_service_(spellcheck_service),
 #endif
-      download_status_(DOWNLOAD_NONE),
-      weak_ptr_factory_(this) {
+      download_status_(DOWNLOAD_NONE) {
 }
 
 SpellcheckHunspellDictionary::~SpellcheckHunspellDictionary() {
diff --git a/chrome/browser/spellchecker/spellcheck_hunspell_dictionary.h b/chrome/browser/spellchecker/spellcheck_hunspell_dictionary.h
index d2a8492..9181170 100644
--- a/chrome/browser/spellchecker/spellcheck_hunspell_dictionary.h
+++ b/chrome/browser/spellchecker/spellcheck_hunspell_dictionary.h
@@ -178,7 +178,7 @@
   // Dictionary file path and descriptor.
   DictionaryFile dictionary_file_;
 
-  base::WeakPtrFactory<SpellcheckHunspellDictionary> weak_ptr_factory_;
+  base::WeakPtrFactory<SpellcheckHunspellDictionary> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(SpellcheckHunspellDictionary);
 };
diff --git a/chrome/browser/spellchecker/spellcheck_service.cc b/chrome/browser/spellchecker/spellcheck_service.cc
index 5299574f..a6260f1 100644
--- a/chrome/browser/spellchecker/spellcheck_service.cc
+++ b/chrome/browser/spellchecker/spellcheck_service.cc
@@ -52,8 +52,7 @@
     SpellcheckService::BDICT_NOTINITIALIZED;
 
 SpellcheckService::SpellcheckService(content::BrowserContext* context)
-    : context_(context),
-      weak_ptr_factory_(this) {
+    : context_(context) {
   DCHECK_CURRENTLY_ON(BrowserThread::UI);
   PrefService* prefs = user_prefs::UserPrefs::Get(context);
   pref_change_registrar_.Init(prefs);
diff --git a/chrome/browser/spellchecker/spellcheck_service.h b/chrome/browser/spellchecker/spellcheck_service.h
index 60d5a74..18296e64 100644
--- a/chrome/browser/spellchecker/spellcheck_service.h
+++ b/chrome/browser/spellchecker/spellcheck_service.h
@@ -180,7 +180,7 @@
   std::vector<std::unique_ptr<SpellcheckHunspellDictionary>>
       hunspell_dictionaries_;
 
-  base::WeakPtrFactory<SpellcheckService> weak_ptr_factory_;
+  base::WeakPtrFactory<SpellcheckService> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(SpellcheckService);
 };
diff --git a/chrome/browser/ssl/ssl_error_handler.cc b/chrome/browser/ssl/ssl_error_handler.cc
index 51d57e00..610e8cf 100644
--- a/chrome/browser/ssl/ssl_error_handler.cc
+++ b/chrome/browser/ssl/ssl_error_handler.cc
@@ -725,8 +725,7 @@
       cert_error_(cert_error),
       ssl_info_(ssl_info),
       request_url_(request_url),
-      decision_callback_(decision_callback),
-      weak_ptr_factory_(this) {}
+      decision_callback_(decision_callback) {}
 
 SSLErrorHandler::~SSLErrorHandler() {
 }
diff --git a/chrome/browser/ssl/ssl_error_handler.h b/chrome/browser/ssl/ssl_error_handler.h
index 9eb19ee..3f1662dd 100644
--- a/chrome/browser/ssl/ssl_error_handler.h
+++ b/chrome/browser/ssl/ssl_error_handler.h
@@ -242,7 +242,7 @@
 
   std::unique_ptr<CommonNameMismatchHandler> common_name_mismatch_handler_;
 
-  base::WeakPtrFactory<SSLErrorHandler> weak_ptr_factory_;
+  base::WeakPtrFactory<SSLErrorHandler> weak_ptr_factory_{this};
 
   WEB_CONTENTS_USER_DATA_KEY_DECL();
 
diff --git a/chrome/browser/ssl/ssl_error_navigation_throttle.cc b/chrome/browser/ssl/ssl_error_navigation_throttle.cc
index 0395630..e2e182e3 100644
--- a/chrome/browser/ssl/ssl_error_navigation_throttle.cc
+++ b/chrome/browser/ssl/ssl_error_navigation_throttle.cc
@@ -28,8 +28,7 @@
         handle_ssl_error_callback)
     : content::NavigationThrottle(navigation_handle),
       ssl_cert_reporter_(std::move(ssl_cert_reporter)),
-      handle_ssl_error_callback_(std::move(handle_ssl_error_callback)),
-      weak_ptr_factory_(this) {}
+      handle_ssl_error_callback_(std::move(handle_ssl_error_callback)) {}
 
 SSLErrorNavigationThrottle::~SSLErrorNavigationThrottle() {}
 
diff --git a/chrome/browser/ssl/ssl_error_navigation_throttle.h b/chrome/browser/ssl/ssl_error_navigation_throttle.h
index c7981543..5e2743d 100644
--- a/chrome/browser/ssl/ssl_error_navigation_throttle.h
+++ b/chrome/browser/ssl/ssl_error_navigation_throttle.h
@@ -70,7 +70,7 @@
 
   std::unique_ptr<SSLCertReporter> ssl_cert_reporter_;
   HandleSSLErrorCallback handle_ssl_error_callback_;
-  base::WeakPtrFactory<SSLErrorNavigationThrottle> weak_ptr_factory_;
+  base::WeakPtrFactory<SSLErrorNavigationThrottle> weak_ptr_factory_{this};
 };
 
 #endif  // CHROME_BROWSER_SSL_SSL_ERROR_NAVIGATION_THROTTLE_H_
diff --git a/chrome/browser/supervised_user/child_accounts/child_account_service.cc b/chrome/browser/supervised_user/child_accounts/child_account_service.cc
index 6c3ff58..691ba85 100644
--- a/chrome/browser/supervised_user/child_accounts/child_account_service.cc
+++ b/chrome/browser/supervised_user/child_accounts/child_account_service.cc
@@ -70,8 +70,7 @@
     : profile_(profile),
       active_(false),
       family_fetch_backoff_(&kFamilyFetchBackoffPolicy),
-      identity_manager_(IdentityManagerFactory::GetForProfile(profile)),
-      weak_ptr_factory_(this) {}
+      identity_manager_(IdentityManagerFactory::GetForProfile(profile)) {}
 
 ChildAccountService::~ChildAccountService() {}
 
diff --git a/chrome/browser/supervised_user/child_accounts/child_account_service.h b/chrome/browser/supervised_user/child_accounts/child_account_service.h
index 1a0ce035..8e74357e6 100644
--- a/chrome/browser/supervised_user/child_accounts/child_account_service.h
+++ b/chrome/browser/supervised_user/child_accounts/child_account_service.h
@@ -121,7 +121,7 @@
   // Callbacks to run when the user status becomes known.
   std::vector<base::OnceClosure> status_received_callback_list_;
 
-  base::WeakPtrFactory<ChildAccountService> weak_ptr_factory_;
+  base::WeakPtrFactory<ChildAccountService> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(ChildAccountService);
 };
diff --git a/chrome/browser/supervised_user/experimental/supervised_user_blacklist.cc b/chrome/browser/supervised_user/experimental/supervised_user_blacklist.cc
index 2fc2a401..f9a12b50 100644
--- a/chrome/browser/supervised_user/experimental/supervised_user_blacklist.cc
+++ b/chrome/browser/supervised_user/experimental/supervised_user_blacklist.cc
@@ -55,7 +55,7 @@
   return memcmp(data, rhs.data, base::kSHA1Length) < 0;
 }
 
-SupervisedUserBlacklist::SupervisedUserBlacklist() : weak_ptr_factory_(this) {}
+SupervisedUserBlacklist::SupervisedUserBlacklist() {}
 
 SupervisedUserBlacklist::~SupervisedUserBlacklist() {}
 
diff --git a/chrome/browser/supervised_user/experimental/supervised_user_blacklist.h b/chrome/browser/supervised_user/experimental/supervised_user_blacklist.h
index ac6bda0..d185282 100644
--- a/chrome/browser/supervised_user/experimental/supervised_user_blacklist.h
+++ b/chrome/browser/supervised_user/experimental/supervised_user_blacklist.h
@@ -53,7 +53,7 @@
 
   std::vector<Hash> host_hashes_;
 
-  base::WeakPtrFactory<SupervisedUserBlacklist> weak_ptr_factory_;
+  base::WeakPtrFactory<SupervisedUserBlacklist> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(SupervisedUserBlacklist);
 };
diff --git a/chrome/browser/supervised_user/supervised_user_google_auth_navigation_throttle.cc b/chrome/browser/supervised_user/supervised_user_google_auth_navigation_throttle.cc
index 0a14290..d66c72fb 100644
--- a/chrome/browser/supervised_user/supervised_user_google_auth_navigation_throttle.cc
+++ b/chrome/browser/supervised_user/supervised_user_google_auth_navigation_throttle.cc
@@ -39,12 +39,12 @@
         Profile* profile,
         content::NavigationHandle* navigation_handle)
     : content::NavigationThrottle(navigation_handle),
-      child_account_service_(
-          ChildAccountServiceFactory::GetForProfile(profile)),
+      child_account_service_(ChildAccountServiceFactory::GetForProfile(profile))
 #if defined(OS_ANDROID)
-      has_shown_reauth_(false),
+      ,
+      has_shown_reauth_(false)
 #endif
-      weak_ptr_factory_(this) {
+{
 }
 
 SupervisedUserGoogleAuthNavigationThrottle::
diff --git a/chrome/browser/supervised_user/supervised_user_google_auth_navigation_throttle.h b/chrome/browser/supervised_user/supervised_user_google_auth_navigation_throttle.h
index 6c6ec95..6c5fe61 100644
--- a/chrome/browser/supervised_user/supervised_user_google_auth_navigation_throttle.h
+++ b/chrome/browser/supervised_user/supervised_user_google_auth_navigation_throttle.h
@@ -53,7 +53,7 @@
 #endif
 
   base::WeakPtrFactory<SupervisedUserGoogleAuthNavigationThrottle>
-      weak_ptr_factory_;
+      weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(SupervisedUserGoogleAuthNavigationThrottle);
 };
diff --git a/chrome/browser/supervised_user/supervised_user_interstitial.cc b/chrome/browser/supervised_user/supervised_user_interstitial.cc
index c477a0c398..8d2fe746 100644
--- a/chrome/browser/supervised_user/supervised_user_interstitial.cc
+++ b/chrome/browser/supervised_user/supervised_user_interstitial.cc
@@ -78,8 +78,7 @@
  private:
   friend class content::WebContentsUserData<TabCloser>;
 
-  explicit TabCloser(WebContents* web_contents)
-      : web_contents_(web_contents), weak_ptr_factory_(this) {
+  explicit TabCloser(WebContents* web_contents) : web_contents_(web_contents) {
     base::PostTaskWithTraits(FROM_HERE, {BrowserThread::UI},
                              base::BindOnce(&TabCloser::CloseTabImpl,
                                             weak_ptr_factory_.GetWeakPtr()));
@@ -103,7 +102,7 @@
   }
 
   WebContents* web_contents_;
-  base::WeakPtrFactory<TabCloser> weak_ptr_factory_;
+  base::WeakPtrFactory<TabCloser> weak_ptr_factory_{this};
 
   WEB_CONTENTS_USER_DATA_KEY_DECL();
 
@@ -146,8 +145,7 @@
       url_(url),
       reason_(reason),
       callback_(std::move(callback)),
-      scoped_observer_(this),
-      weak_ptr_factory_(this) {}
+      scoped_observer_(this) {}
 
 SupervisedUserInterstitial::~SupervisedUserInterstitial() {}
 
diff --git a/chrome/browser/supervised_user/supervised_user_interstitial.h b/chrome/browser/supervised_user/supervised_user_interstitial.h
index c378ef5..c5fc4c6 100644
--- a/chrome/browser/supervised_user/supervised_user_interstitial.h
+++ b/chrome/browser/supervised_user/supervised_user_interstitial.h
@@ -107,7 +107,7 @@
   ScopedObserver<SupervisedUserService, SupervisedUserInterstitial>
       scoped_observer_;
 
-  base::WeakPtrFactory<SupervisedUserInterstitial> weak_ptr_factory_;
+  base::WeakPtrFactory<SupervisedUserInterstitial> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(SupervisedUserInterstitial);
 };
diff --git a/chrome/browser/supervised_user/supervised_user_navigation_observer.cc b/chrome/browser/supervised_user/supervised_user_navigation_observer.cc
index 0e1e0e1..12ee886 100644
--- a/chrome/browser/supervised_user/supervised_user_navigation_observer.cc
+++ b/chrome/browser/supervised_user/supervised_user_navigation_observer.cc
@@ -29,9 +29,7 @@
 
 SupervisedUserNavigationObserver::SupervisedUserNavigationObserver(
     content::WebContents* web_contents)
-    : content::WebContentsObserver(web_contents),
-      binding_(web_contents, this),
-      weak_ptr_factory_(this) {
+    : content::WebContentsObserver(web_contents), binding_(web_contents, this) {
   Profile* profile =
       Profile::FromBrowserContext(web_contents->GetBrowserContext());
   supervised_user_service_ =
diff --git a/chrome/browser/supervised_user/supervised_user_navigation_observer.h b/chrome/browser/supervised_user/supervised_user_navigation_observer.h
index 2aaacfb..9622c777 100644
--- a/chrome/browser/supervised_user/supervised_user_navigation_observer.h
+++ b/chrome/browser/supervised_user/supervised_user_navigation_observer.h
@@ -111,7 +111,8 @@
       supervised_user::mojom::SupervisedUserCommands>
       binding_;
 
-  base::WeakPtrFactory<SupervisedUserNavigationObserver> weak_ptr_factory_;
+  base::WeakPtrFactory<SupervisedUserNavigationObserver> weak_ptr_factory_{
+      this};
 
   WEB_CONTENTS_USER_DATA_KEY_DECL();
 
diff --git a/chrome/browser/supervised_user/supervised_user_navigation_throttle.cc b/chrome/browser/supervised_user/supervised_user_navigation_throttle.cc
index 591331b..7acb3f9 100644
--- a/chrome/browser/supervised_user/supervised_user_navigation_throttle.cc
+++ b/chrome/browser/supervised_user/supervised_user_navigation_throttle.cc
@@ -141,8 +141,7 @@
                   navigation_handle->GetWebContents()->GetBrowserContext()))
               ->GetURLFilter()),
       deferred_(false),
-      behavior_(SupervisedUserURLFilter::INVALID),
-      weak_ptr_factory_(this) {}
+      behavior_(SupervisedUserURLFilter::INVALID) {}
 
 SupervisedUserNavigationThrottle::~SupervisedUserNavigationThrottle() {}
 
diff --git a/chrome/browser/supervised_user/supervised_user_navigation_throttle.h b/chrome/browser/supervised_user/supervised_user_navigation_throttle.h
index 47f36efd..c1b991a5 100644
--- a/chrome/browser/supervised_user/supervised_user_navigation_throttle.h
+++ b/chrome/browser/supervised_user/supervised_user_navigation_throttle.h
@@ -58,7 +58,8 @@
   bool deferred_;
   supervised_user_error_page::FilteringBehaviorReason reason_;
   SupervisedUserURLFilter::FilteringBehavior behavior_;
-  base::WeakPtrFactory<SupervisedUserNavigationThrottle> weak_ptr_factory_;
+  base::WeakPtrFactory<SupervisedUserNavigationThrottle> weak_ptr_factory_{
+      this};
 
   DISALLOW_COPY_AND_ASSIGN(SupervisedUserNavigationThrottle);
 };
diff --git a/chrome/browser/supervised_user/supervised_user_service.cc b/chrome/browser/supervised_user/supervised_user_service.cc
index 392480f1..9a28919b 100644
--- a/chrome/browser/supervised_user/supervised_user_service.cc
+++ b/chrome/browser/supervised_user/supervised_user_service.cc
@@ -344,11 +344,12 @@
       is_profile_active_(false),
       did_init_(false),
       did_shutdown_(false),
-      blacklist_state_(BlacklistLoadState::NOT_LOADED),
+      blacklist_state_(BlacklistLoadState::NOT_LOADED)
 #if BUILDFLAG(ENABLE_EXTENSIONS)
-      registry_observer_(this),
+      ,
+      registry_observer_(this)
 #endif
-      weak_ptr_factory_(this) {
+{
   url_filter_.AddObserver(this);
 #if BUILDFLAG(ENABLE_EXTENSIONS)
   registry_observer_.Add(extensions::ExtensionRegistry::Get(profile));
diff --git a/chrome/browser/supervised_user/supervised_user_service.h b/chrome/browser/supervised_user/supervised_user_service.h
index f84c581..72dc4d2 100644
--- a/chrome/browser/supervised_user/supervised_user_service.h
+++ b/chrome/browser/supervised_user/supervised_user_service.h
@@ -364,7 +364,7 @@
   bool signout_required_after_supervision_enabled_ = false;
 #endif
 
-  base::WeakPtrFactory<SupervisedUserService> weak_ptr_factory_;
+  base::WeakPtrFactory<SupervisedUserService> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(SupervisedUserService);
 };
diff --git a/chrome/browser/supervised_user/supervised_user_url_filter.cc b/chrome/browser/supervised_user/supervised_user_url_filter.cc
index adeaa3c..c8a298d2 100644
--- a/chrome/browser/supervised_user/supervised_user_url_filter.cc
+++ b/chrome/browser/supervised_user/supervised_user_url_filter.cc
@@ -220,8 +220,7 @@
       blacklist_(nullptr),
       blocking_task_runner_(base::CreateTaskRunnerWithTraits(
           {base::MayBlock(), base::TaskPriority::BEST_EFFORT,
-           base::TaskShutdownBehavior::CONTINUE_ON_SHUTDOWN})),
-      weak_ptr_factory_(this) {}
+           base::TaskShutdownBehavior::CONTINUE_ON_SHUTDOWN})) {}
 
 SupervisedUserURLFilter::~SupervisedUserURLFilter() {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
diff --git a/chrome/browser/supervised_user/supervised_user_url_filter.h b/chrome/browser/supervised_user/supervised_user_url_filter.h
index bdb7026f1..7de081a 100644
--- a/chrome/browser/supervised_user/supervised_user_url_filter.h
+++ b/chrome/browser/supervised_user/supervised_user_url_filter.h
@@ -215,7 +215,7 @@
 
   SEQUENCE_CHECKER(sequence_checker_);
 
-  base::WeakPtrFactory<SupervisedUserURLFilter> weak_ptr_factory_;
+  base::WeakPtrFactory<SupervisedUserURLFilter> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(SupervisedUserURLFilter);
 };
diff --git a/chrome/browser/supervised_user/supervised_user_whitelist_service.cc b/chrome/browser/supervised_user/supervised_user_whitelist_service.cc
index 878fcee..320d5b7 100644
--- a/chrome/browser/supervised_user/supervised_user_whitelist_service.cc
+++ b/chrome/browser/supervised_user/supervised_user_whitelist_service.cc
@@ -38,10 +38,7 @@
     PrefService* prefs,
     component_updater::SupervisedUserWhitelistInstaller* installer,
     const std::string& client_id)
-    : prefs_(prefs),
-      installer_(installer),
-      client_id_(client_id),
-      weak_ptr_factory_(this) {
+    : prefs_(prefs), installer_(installer), client_id_(client_id) {
   DCHECK(prefs);
 }
 
diff --git a/chrome/browser/supervised_user/supervised_user_whitelist_service.h b/chrome/browser/supervised_user/supervised_user_whitelist_service.h
index 76b7d01..740e571b 100644
--- a/chrome/browser/supervised_user/supervised_user_whitelist_service.h
+++ b/chrome/browser/supervised_user/supervised_user_whitelist_service.h
@@ -137,7 +137,7 @@
   std::map<std::string, scoped_refptr<SupervisedUserSiteList> >
       loaded_whitelists_;
 
-  base::WeakPtrFactory<SupervisedUserWhitelistService> weak_ptr_factory_;
+  base::WeakPtrFactory<SupervisedUserWhitelistService> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(SupervisedUserWhitelistService);
 };
diff --git a/chrome/browser/sync/test/integration/sync_extension_installer.cc b/chrome/browser/sync/test/integration/sync_extension_installer.cc
index ad603cc..9db57c1c 100644
--- a/chrome/browser/sync/test/integration/sync_extension_installer.cc
+++ b/chrome/browser/sync/test/integration/sync_extension_installer.cc
@@ -15,8 +15,7 @@
 #include "content/public/browser/notification_source.h"
 
 SyncedExtensionInstaller::SyncedExtensionInstaller(Profile* profile)
-    : profile_(profile),
-      weak_ptr_factory_(this) {
+    : profile_(profile) {
   DoInstallSyncedExtensions();
   registrar_.Add(this,
                  extensions::NOTIFICATION_EXTENSION_UPDATING_STARTED,
diff --git a/chrome/browser/sync/test/integration/sync_extension_installer.h b/chrome/browser/sync/test/integration/sync_extension_installer.h
index 22fbb663..5cab940 100644
--- a/chrome/browser/sync/test/integration/sync_extension_installer.h
+++ b/chrome/browser/sync/test/integration/sync_extension_installer.h
@@ -39,7 +39,7 @@
   Profile* profile_;
   content::NotificationRegistrar registrar_;
 
-  base::WeakPtrFactory<SyncedExtensionInstaller> weak_ptr_factory_;
+  base::WeakPtrFactory<SyncedExtensionInstaller> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(SyncedExtensionInstaller);
 };
diff --git a/chrome/browser/sync/test/integration/updated_progress_marker_checker.cc b/chrome/browser/sync/test/integration/updated_progress_marker_checker.cc
index a561c53b..d2f75ba 100644
--- a/chrome/browser/sync/test/integration/updated_progress_marker_checker.cc
+++ b/chrome/browser/sync/test/integration/updated_progress_marker_checker.cc
@@ -12,7 +12,7 @@
 
 UpdatedProgressMarkerChecker::UpdatedProgressMarkerChecker(
     syncer::ProfileSyncService* service)
-    : SingleClientStatusChangeChecker(service), weak_ptr_factory_(this) {
+    : SingleClientStatusChangeChecker(service) {
   DCHECK(sync_datatype_helper::test()->TestUsesSelfNotifications());
 
   // HasUnsyncedItemsForTest() posts a task to the sync thread which guarantees
diff --git a/chrome/browser/sync/test/integration/updated_progress_marker_checker.h b/chrome/browser/sync/test/integration/updated_progress_marker_checker.h
index fe657424..dbbef69 100644
--- a/chrome/browser/sync/test/integration/updated_progress_marker_checker.h
+++ b/chrome/browser/sync/test/integration/updated_progress_marker_checker.h
@@ -38,7 +38,7 @@
 
   base::Optional<bool> has_unsynced_items_;
 
-  base::WeakPtrFactory<UpdatedProgressMarkerChecker> weak_ptr_factory_;
+  base::WeakPtrFactory<UpdatedProgressMarkerChecker> weak_ptr_factory_{this};
 };
 
 #endif  // CHROME_BROWSER_SYNC_TEST_INTEGRATION_UPDATED_PROGRESS_MARKER_CHECKER_H_
diff --git a/chrome/browser/sync_file_system/drive_backend/callback_tracker_internal.cc b/chrome/browser/sync_file_system/drive_backend/callback_tracker_internal.cc
index c8687a02..306d874 100644
--- a/chrome/browser/sync_file_system/drive_backend/callback_tracker_internal.cc
+++ b/chrome/browser/sync_file_system/drive_backend/callback_tracker_internal.cc
@@ -10,9 +10,7 @@
 namespace drive_backend {
 namespace internal {
 
-AbortHelper::AbortHelper(CallbackTracker* tracker)
-    : tracker_(tracker), weak_ptr_factory_(this) {
-}
+AbortHelper::AbortHelper(CallbackTracker* tracker) : tracker_(tracker) {}
 
 AbortHelper::~AbortHelper() {}
 
diff --git a/chrome/browser/sync_file_system/drive_backend/callback_tracker_internal.h b/chrome/browser/sync_file_system/drive_backend/callback_tracker_internal.h
index e68c3d6..3e21cc1 100644
--- a/chrome/browser/sync_file_system/drive_backend/callback_tracker_internal.h
+++ b/chrome/browser/sync_file_system/drive_backend/callback_tracker_internal.h
@@ -30,7 +30,7 @@
 
  private:
   CallbackTracker* tracker_;  // Not owned.
-  base::WeakPtrFactory<AbortHelper> weak_ptr_factory_;
+  base::WeakPtrFactory<AbortHelper> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(AbortHelper);
 };
diff --git a/chrome/browser/sync_file_system/drive_backend/conflict_resolver.cc b/chrome/browser/sync_file_system/drive_backend/conflict_resolver.cc
index 976e86bb..f3553e3 100644
--- a/chrome/browser/sync_file_system/drive_backend/conflict_resolver.cc
+++ b/chrome/browser/sync_file_system/drive_backend/conflict_resolver.cc
@@ -29,8 +29,7 @@
 namespace drive_backend {
 
 ConflictResolver::ConflictResolver(SyncEngineContext* sync_context)
-    : sync_context_(sync_context),
-      weak_ptr_factory_(this) {}
+    : sync_context_(sync_context) {}
 
 ConflictResolver::~ConflictResolver() {}
 
diff --git a/chrome/browser/sync_file_system/drive_backend/conflict_resolver.h b/chrome/browser/sync_file_system/drive_backend/conflict_resolver.h
index 39095be..9230df4 100644
--- a/chrome/browser/sync_file_system/drive_backend/conflict_resolver.h
+++ b/chrome/browser/sync_file_system/drive_backend/conflict_resolver.h
@@ -78,7 +78,7 @@
 
   SyncEngineContext* sync_context_;  // Not owned.
 
-  base::WeakPtrFactory<ConflictResolver> weak_ptr_factory_;
+  base::WeakPtrFactory<ConflictResolver> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(ConflictResolver);
 };
diff --git a/chrome/browser/sync_file_system/drive_backend/folder_creator.cc b/chrome/browser/sync_file_system/drive_backend/folder_creator.cc
index 8b7c334b..8a07045 100644
--- a/chrome/browser/sync_file_system/drive_backend/folder_creator.cc
+++ b/chrome/browser/sync_file_system/drive_backend/folder_creator.cc
@@ -29,9 +29,7 @@
     : drive_service_(drive_service),
       metadata_database_(metadata_database),
       parent_folder_id_(parent_folder_id),
-      title_(title),
-      weak_ptr_factory_(this) {
-}
+      title_(title) {}
 
 FolderCreator::~FolderCreator() {
 }
diff --git a/chrome/browser/sync_file_system/drive_backend/folder_creator.h b/chrome/browser/sync_file_system/drive_backend/folder_creator.h
index 53457df..7067053c 100644
--- a/chrome/browser/sync_file_system/drive_backend/folder_creator.h
+++ b/chrome/browser/sync_file_system/drive_backend/folder_creator.h
@@ -56,7 +56,7 @@
   const std::string parent_folder_id_;
   const std::string title_;
 
-  base::WeakPtrFactory<FolderCreator> weak_ptr_factory_;
+  base::WeakPtrFactory<FolderCreator> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(FolderCreator);
 };
diff --git a/chrome/browser/sync_file_system/drive_backend/list_changes_task.cc b/chrome/browser/sync_file_system/drive_backend/list_changes_task.cc
index 985f21e..8e009e79 100644
--- a/chrome/browser/sync_file_system/drive_backend/list_changes_task.cc
+++ b/chrome/browser/sync_file_system/drive_backend/list_changes_task.cc
@@ -28,9 +28,7 @@
 namespace drive_backend {
 
 ListChangesTask::ListChangesTask(SyncEngineContext* sync_context)
-    : sync_context_(sync_context),
-      weak_ptr_factory_(this) {
-}
+    : sync_context_(sync_context) {}
 
 ListChangesTask::~ListChangesTask() {
 }
diff --git a/chrome/browser/sync_file_system/drive_backend/list_changes_task.h b/chrome/browser/sync_file_system/drive_backend/list_changes_task.h
index 220dcdd..0d9eacb 100644
--- a/chrome/browser/sync_file_system/drive_backend/list_changes_task.h
+++ b/chrome/browser/sync_file_system/drive_backend/list_changes_task.h
@@ -53,7 +53,7 @@
 
   std::vector<std::string> file_ids_;
 
-  base::WeakPtrFactory<ListChangesTask> weak_ptr_factory_;
+  base::WeakPtrFactory<ListChangesTask> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(ListChangesTask);
 };
diff --git a/chrome/browser/sync_file_system/drive_backend/local_to_remote_syncer.cc b/chrome/browser/sync_file_system/drive_backend/local_to_remote_syncer.cc
index 2303ef9..38bbba9 100644
--- a/chrome/browser/sync_file_system/drive_backend/local_to_remote_syncer.cc
+++ b/chrome/browser/sync_file_system/drive_backend/local_to_remote_syncer.cc
@@ -88,8 +88,7 @@
       sync_action_(SYNC_ACTION_NONE),
       remote_file_change_id_(0),
       retry_on_success_(false),
-      needs_remote_change_listing_(false),
-      weak_ptr_factory_(this) {
+      needs_remote_change_listing_(false) {
   DCHECK(local_is_missing_ ||
          local_change.file_type() == local_metadata.file_type)
       << local_change.DebugString() << " metadata:" << local_metadata.file_type;
diff --git a/chrome/browser/sync_file_system/drive_backend/local_to_remote_syncer.h b/chrome/browser/sync_file_system/drive_backend/local_to_remote_syncer.h
index 85b964ec..83f3413 100644
--- a/chrome/browser/sync_file_system/drive_backend/local_to_remote_syncer.h
+++ b/chrome/browser/sync_file_system/drive_backend/local_to_remote_syncer.h
@@ -125,7 +125,7 @@
 
   std::unique_ptr<FolderCreator> folder_creator_;
 
-  base::WeakPtrFactory<LocalToRemoteSyncer> weak_ptr_factory_;
+  base::WeakPtrFactory<LocalToRemoteSyncer> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(LocalToRemoteSyncer);
 };
diff --git a/chrome/browser/sync_file_system/drive_backend/metadata_database.cc b/chrome/browser/sync_file_system/drive_backend/metadata_database.cc
index fc0ba964..f0c770a 100644
--- a/chrome/browser/sync_file_system/drive_backend/metadata_database.cc
+++ b/chrome/browser/sync_file_system/drive_backend/metadata_database.cc
@@ -1293,16 +1293,13 @@
   return WriteToDatabase();
 }
 
-MetadataDatabase::MetadataDatabase(
-    const base::FilePath& database_path,
-    bool enable_on_disk_index,
-    leveldb::Env* env_override)
+MetadataDatabase::MetadataDatabase(const base::FilePath& database_path,
+                                   bool enable_on_disk_index,
+                                   leveldb::Env* env_override)
     : database_path_(database_path),
       env_override_(env_override),
       enable_on_disk_index_(enable_on_disk_index),
-      largest_known_change_id_(0),
-      weak_ptr_factory_(this) {
-}
+      largest_known_change_id_(0) {}
 
 SyncStatusCode MetadataDatabase::Initialize() {
   SyncStatusCode status = SYNC_STATUS_UNKNOWN;
diff --git a/chrome/browser/sync_file_system/drive_backend/metadata_database.h b/chrome/browser/sync_file_system/drive_backend/metadata_database.h
index 31189ca..e708d94 100644
--- a/chrome/browser/sync_file_system/drive_backend/metadata_database.h
+++ b/chrome/browser/sync_file_system/drive_backend/metadata_database.h
@@ -402,7 +402,7 @@
 
   std::unique_ptr<MetadataDatabaseIndexInterface> index_;
 
-  base::WeakPtrFactory<MetadataDatabase> weak_ptr_factory_;
+  base::WeakPtrFactory<MetadataDatabase> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(MetadataDatabase);
 };
diff --git a/chrome/browser/sync_file_system/drive_backend/register_app_task.cc b/chrome/browser/sync_file_system/drive_backend/register_app_task.cc
index 42131fe..4b22b916a 100644
--- a/chrome/browser/sync_file_system/drive_backend/register_app_task.cc
+++ b/chrome/browser/sync_file_system/drive_backend/register_app_task.cc
@@ -37,9 +37,7 @@
                                  const std::string& app_id)
     : sync_context_(sync_context),
       create_folder_retry_count_(0),
-      app_id_(app_id),
-      weak_ptr_factory_(this) {
-}
+      app_id_(app_id) {}
 
 RegisterAppTask::~RegisterAppTask() {
 }
diff --git a/chrome/browser/sync_file_system/drive_backend/register_app_task.h b/chrome/browser/sync_file_system/drive_backend/register_app_task.h
index 964194e..5caaf1c 100644
--- a/chrome/browser/sync_file_system/drive_backend/register_app_task.h
+++ b/chrome/browser/sync_file_system/drive_backend/register_app_task.h
@@ -55,7 +55,7 @@
 
   std::unique_ptr<FolderCreator> folder_creator_;
 
-  base::WeakPtrFactory<RegisterAppTask> weak_ptr_factory_;
+  base::WeakPtrFactory<RegisterAppTask> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(RegisterAppTask);
 };
diff --git a/chrome/browser/sync_file_system/drive_backend/remote_to_local_syncer.cc b/chrome/browser/sync_file_system/drive_backend/remote_to_local_syncer.cc
index a88885b..b110241 100644
--- a/chrome/browser/sync_file_system/drive_backend/remote_to_local_syncer.cc
+++ b/chrome/browser/sync_file_system/drive_backend/remote_to_local_syncer.cc
@@ -102,9 +102,7 @@
       file_type_(SYNC_FILE_TYPE_UNKNOWN),
       sync_action_(SYNC_ACTION_NONE),
       prepared_(false),
-      sync_root_deletion_(false),
-      weak_ptr_factory_(this) {
-}
+      sync_root_deletion_(false) {}
 
 RemoteToLocalSyncer::~RemoteToLocalSyncer() {
 }
diff --git a/chrome/browser/sync_file_system/drive_backend/remote_to_local_syncer.h b/chrome/browser/sync_file_system/drive_backend/remote_to_local_syncer.h
index e5584171..b5e52eb4 100644
--- a/chrome/browser/sync_file_system/drive_backend/remote_to_local_syncer.h
+++ b/chrome/browser/sync_file_system/drive_backend/remote_to_local_syncer.h
@@ -214,7 +214,7 @@
   std::unique_ptr<SyncFileMetadata> local_metadata_;
   std::unique_ptr<FileChangeList> local_changes_;
 
-  base::WeakPtrFactory<RemoteToLocalSyncer> weak_ptr_factory_;
+  base::WeakPtrFactory<RemoteToLocalSyncer> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(RemoteToLocalSyncer);
 };
diff --git a/chrome/browser/sync_file_system/drive_backend/sync_engine.cc b/chrome/browser/sync_file_system/drive_backend/sync_engine.cc
index bf01ad35..121330b 100644
--- a/chrome/browser/sync_file_system/drive_backend/sync_engine.cc
+++ b/chrome/browser/sync_file_system/drive_backend/sync_engine.cc
@@ -739,8 +739,7 @@
       has_refresh_token_(false),
       network_available_(false),
       sync_enabled_(false),
-      env_override_(env_override),
-      weak_ptr_factory_(this) {
+      env_override_(env_override) {
   DCHECK(sync_file_system_dir_.IsAbsolute());
   if (notification_manager_)
     notification_manager_->AddObserver(this);
diff --git a/chrome/browser/sync_file_system/drive_backend/sync_engine.h b/chrome/browser/sync_file_system/drive_backend/sync_engine.h
index 0b5d467..a2bc036b 100644
--- a/chrome/browser/sync_file_system/drive_backend/sync_engine.h
+++ b/chrome/browser/sync_file_system/drive_backend/sync_engine.h
@@ -229,7 +229,7 @@
 
   CallbackTracker callback_tracker_;
 
-  base::WeakPtrFactory<SyncEngine> weak_ptr_factory_;
+  base::WeakPtrFactory<SyncEngine> weak_ptr_factory_{this};
   DISALLOW_COPY_AND_ASSIGN(SyncEngine);
 };
 
diff --git a/chrome/browser/sync_file_system/drive_backend/sync_engine_initializer.cc b/chrome/browser/sync_file_system/drive_backend/sync_engine_initializer.cc
index 4d1dd0f..e410f201 100644
--- a/chrome/browser/sync_file_system/drive_backend/sync_engine_initializer.cc
+++ b/chrome/browser/sync_file_system/drive_backend/sync_engine_initializer.cc
@@ -59,8 +59,7 @@
       env_override_(env_override),
       database_path_(database_path),
       find_sync_root_retry_count_(0),
-      largest_change_id_(0),
-      weak_ptr_factory_(this) {
+      largest_change_id_(0) {
   DCHECK(sync_context);
 }
 
diff --git a/chrome/browser/sync_file_system/drive_backend/sync_engine_initializer.h b/chrome/browser/sync_file_system/drive_backend/sync_engine_initializer.h
index 1fce116..b8fe192 100644
--- a/chrome/browser/sync_file_system/drive_backend/sync_engine_initializer.h
+++ b/chrome/browser/sync_file_system/drive_backend/sync_engine_initializer.h
@@ -112,7 +112,7 @@
 
   std::unique_ptr<google_apis::FileResource> sync_root_folder_;
 
-  base::WeakPtrFactory<SyncEngineInitializer> weak_ptr_factory_;
+  base::WeakPtrFactory<SyncEngineInitializer> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(SyncEngineInitializer);
 };
diff --git a/chrome/browser/sync_file_system/drive_backend/sync_task.cc b/chrome/browser/sync_file_system/drive_backend/sync_task.cc
index 1092019e..bc37232 100644
--- a/chrome/browser/sync_file_system/drive_backend/sync_task.cc
+++ b/chrome/browser/sync_file_system/drive_backend/sync_task.cc
@@ -24,7 +24,7 @@
 
 }  // namespace
 
-ExclusiveTask::ExclusiveTask() : weak_ptr_factory_(this) {}
+ExclusiveTask::ExclusiveTask() {}
 ExclusiveTask::~ExclusiveTask() {}
 
 void ExclusiveTask::RunPreflight(std::unique_ptr<SyncTaskToken> token) {
diff --git a/chrome/browser/sync_file_system/drive_backend/sync_task.h b/chrome/browser/sync_file_system/drive_backend/sync_task.h
index a5e1f42..ed7e270b 100644
--- a/chrome/browser/sync_file_system/drive_backend/sync_task.h
+++ b/chrome/browser/sync_file_system/drive_backend/sync_task.h
@@ -44,7 +44,7 @@
   virtual void RunExclusive(const SyncStatusCallback& callback) = 0;
 
  private:
-  base::WeakPtrFactory<ExclusiveTask> weak_ptr_factory_;
+  base::WeakPtrFactory<ExclusiveTask> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(ExclusiveTask);
 };
diff --git a/chrome/browser/sync_file_system/drive_backend/sync_task_manager.cc b/chrome/browser/sync_file_system/drive_backend/sync_task_manager.cc
index db0bf4b..dd40d0b 100644
--- a/chrome/browser/sync_file_system/drive_backend/sync_task_manager.cc
+++ b/chrome/browser/sync_file_system/drive_backend/sync_task_manager.cc
@@ -65,8 +65,7 @@
       maximum_background_task_(maximum_background_task),
       pending_task_seq_(0),
       task_token_seq_(SyncTaskToken::kMinimumBackgroundTaskTokenID),
-      task_runner_(task_runner),
-      weak_ptr_factory_(this) {}
+      task_runner_(task_runner) {}
 
 SyncTaskManager::~SyncTaskManager() {
   weak_ptr_factory_.InvalidateWeakPtrs();
diff --git a/chrome/browser/sync_file_system/drive_backend/sync_task_manager.h b/chrome/browser/sync_file_system/drive_backend/sync_task_manager.h
index 82e018c9..4f3627c 100644
--- a/chrome/browser/sync_file_system/drive_backend/sync_task_manager.h
+++ b/chrome/browser/sync_file_system/drive_backend/sync_task_manager.h
@@ -204,7 +204,7 @@
   scoped_refptr<base::SequencedTaskRunner> task_runner_;
   base::SequenceChecker sequence_checker_;
 
-  base::WeakPtrFactory<SyncTaskManager> weak_ptr_factory_;
+  base::WeakPtrFactory<SyncTaskManager> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(SyncTaskManager);
 };
diff --git a/chrome/browser/sync_file_system/drive_backend/sync_task_manager_unittest.cc b/chrome/browser/sync_file_system/drive_backend/sync_task_manager_unittest.cc
index 37e9e168..6d1652bc 100644
--- a/chrome/browser/sync_file_system/drive_backend/sync_task_manager_unittest.cc
+++ b/chrome/browser/sync_file_system/drive_backend/sync_task_manager_unittest.cc
@@ -125,11 +125,8 @@
 
 class MultihopSyncTask : public ExclusiveTask {
  public:
-  MultihopSyncTask(bool* task_started,
-                   bool* task_completed)
-      : task_started_(task_started),
-        task_completed_(task_completed),
-        weak_ptr_factory_(this) {
+  MultihopSyncTask(bool* task_started, bool* task_completed)
+      : task_started_(task_started), task_completed_(task_completed) {
     DCHECK(task_started_);
     DCHECK(task_completed_);
   }
@@ -154,7 +151,7 @@
 
   bool* task_started_;
   bool* task_completed_;
-  base::WeakPtrFactory<MultihopSyncTask> weak_ptr_factory_;
+  base::WeakPtrFactory<MultihopSyncTask> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(MultihopSyncTask);
 };
@@ -175,11 +172,7 @@
   BackgroundTask(const std::string& app_id,
                  const base::FilePath& path,
                  Stats* stats)
-      : app_id_(app_id),
-        path_(path),
-        stats_(stats),
-        weak_ptr_factory_(this) {
-  }
+      : app_id_(app_id), path_(path), stats_(stats) {}
 
   ~BackgroundTask() override {}
 
@@ -216,7 +209,7 @@
   base::FilePath path_;
   Stats* stats_;
 
-  base::WeakPtrFactory<BackgroundTask> weak_ptr_factory_;
+  base::WeakPtrFactory<BackgroundTask> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(BackgroundTask);
 };
@@ -232,9 +225,7 @@
       : name_(name),
         app_id_(app_id),
         paths_(paths.begin(), paths.end()),
-        log_(log),
-        weak_ptr_factory_(this) {
-  }
+        log_(log) {}
 
   ~BlockerUpdateTestHelper() override {}
 
@@ -281,7 +272,7 @@
   base::circular_deque<std::string> paths_;
   Log* log_;
 
-  base::WeakPtrFactory<BlockerUpdateTestHelper> weak_ptr_factory_;
+  base::WeakPtrFactory<BlockerUpdateTestHelper> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(BlockerUpdateTestHelper);
 };
diff --git a/chrome/browser/sync_file_system/drive_backend/sync_worker.cc b/chrome/browser/sync_file_system/drive_backend/sync_worker.cc
index 11c6feb..f7866bd5 100644
--- a/chrome/browser/sync_file_system/drive_backend/sync_worker.cc
+++ b/chrome/browser/sync_file_system/drive_backend/sync_worker.cc
@@ -56,8 +56,7 @@
       should_check_remote_change_(true),
       listing_remote_changes_(false),
       sync_enabled_(false),
-      extension_service_(extension_service),
-      weak_ptr_factory_(this) {
+      extension_service_(extension_service) {
   sequence_checker_.DetachFromSequence();
   DCHECK(base_dir_.IsAbsolute());
 }
diff --git a/chrome/browser/sync_file_system/drive_backend/sync_worker.h b/chrome/browser/sync_file_system/drive_backend/sync_worker.h
index 2e26432..c19ce9a 100644
--- a/chrome/browser/sync_file_system/drive_backend/sync_worker.h
+++ b/chrome/browser/sync_file_system/drive_backend/sync_worker.h
@@ -180,7 +180,7 @@
 
   base::SequenceChecker sequence_checker_;
 
-  base::WeakPtrFactory<SyncWorker> weak_ptr_factory_;
+  base::WeakPtrFactory<SyncWorker> weak_ptr_factory_{this};
   DISALLOW_COPY_AND_ASSIGN(SyncWorker);
 };
 
diff --git a/chrome/browser/sync_file_system/drive_backend/uninstall_app_task.cc b/chrome/browser/sync_file_system/drive_backend/uninstall_app_task.cc
index a6351aa..7c6e2f4e 100644
--- a/chrome/browser/sync_file_system/drive_backend/uninstall_app_task.cc
+++ b/chrome/browser/sync_file_system/drive_backend/uninstall_app_task.cc
@@ -26,9 +26,7 @@
     : sync_context_(sync_context),
       app_id_(app_id),
       uninstall_flag_(uninstall_flag),
-      app_root_tracker_id_(0),
-      weak_ptr_factory_(this) {
-}
+      app_root_tracker_id_(0) {}
 
 UninstallAppTask::~UninstallAppTask() {
 }
diff --git a/chrome/browser/sync_file_system/drive_backend/uninstall_app_task.h b/chrome/browser/sync_file_system/drive_backend/uninstall_app_task.h
index 65deb166..b6825642 100644
--- a/chrome/browser/sync_file_system/drive_backend/uninstall_app_task.h
+++ b/chrome/browser/sync_file_system/drive_backend/uninstall_app_task.h
@@ -52,7 +52,7 @@
   UninstallFlag uninstall_flag_;
   int64_t app_root_tracker_id_;
 
-  base::WeakPtrFactory<UninstallAppTask> weak_ptr_factory_;
+  base::WeakPtrFactory<UninstallAppTask> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(UninstallAppTask);
 };
diff --git a/chrome/browser/sync_file_system/local/root_delete_helper.cc b/chrome/browser/sync_file_system/local/root_delete_helper.cc
index f2203b3..766d8d4 100644
--- a/chrome/browser/sync_file_system/local/root_delete_helper.cc
+++ b/chrome/browser/sync_file_system/local/root_delete_helper.cc
@@ -43,8 +43,7 @@
     : file_system_context_(file_system_context),
       url_(url),
       callback_(callback),
-      sync_status_(sync_status),
-      weak_factory_(this) {
+      sync_status_(sync_status) {
   DCHECK(file_system_context_.get());
   DCHECK(url_.is_valid());
   DCHECK(!callback_.is_null());
diff --git a/chrome/browser/sync_file_system/local/root_delete_helper.h b/chrome/browser/sync_file_system/local/root_delete_helper.h
index 1c8a383..ebb521d0 100644
--- a/chrome/browser/sync_file_system/local/root_delete_helper.h
+++ b/chrome/browser/sync_file_system/local/root_delete_helper.h
@@ -54,7 +54,7 @@
   // Not owned; owner of this instance owns it.
   LocalFileSyncStatus* sync_status_;
 
-  base::WeakPtrFactory<RootDeleteHelper> weak_factory_;
+  base::WeakPtrFactory<RootDeleteHelper> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(RootDeleteHelper);
 };
diff --git a/chrome/browser/sync_file_system/local/syncable_file_operation_runner_unittest.cc b/chrome/browser/sync_file_system/local/syncable_file_operation_runner_unittest.cc
index a5aa783..0a021f6b 100644
--- a/chrome/browser/sync_file_system/local/syncable_file_operation_runner_unittest.cc
+++ b/chrome/browser/sync_file_system/local/syncable_file_operation_runner_unittest.cc
@@ -65,8 +65,7 @@
         callback_count_(0),
         write_status_(File::FILE_ERROR_FAILED),
         write_bytes_(0),
-        write_complete_(false),
-        weak_factory_(this) {}
+        write_complete_(false) {}
 
   void SetUp() override {
     ASSERT_TRUE(dir_.CreateUniqueTempDir());
@@ -160,7 +159,7 @@
   MockBlobURLRequestContext url_request_context_;
 
  private:
-  base::WeakPtrFactory<SyncableFileOperationRunnerTest> weak_factory_;
+  base::WeakPtrFactory<SyncableFileOperationRunnerTest> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(SyncableFileOperationRunnerTest);
 };
diff --git a/chrome/browser/sync_file_system/local/syncable_file_system_operation.cc b/chrome/browser/sync_file_system/local/syncable_file_system_operation.cc
index 97e9f501..e6965a8 100644
--- a/chrome/browser/sync_file_system/local/syncable_file_system_operation.cc
+++ b/chrome/browser/sync_file_system/local/syncable_file_system_operation.cc
@@ -359,7 +359,7 @@
     const FileSystemURL& url,
     storage::FileSystemContext* file_system_context,
     std::unique_ptr<storage::FileSystemOperationContext> operation_context)
-    : url_(url), weak_factory_(this) {
+    : url_(url) {
   DCHECK(file_system_context);
   SyncFileSystemBackend* backend =
       SyncFileSystemBackend::GetBackend(file_system_context);
diff --git a/chrome/browser/sync_file_system/local/syncable_file_system_operation.h b/chrome/browser/sync_file_system/local/syncable_file_system_operation.h
index 05449cf..7b184710 100644
--- a/chrome/browser/sync_file_system/local/syncable_file_system_operation.h
+++ b/chrome/browser/sync_file_system/local/syncable_file_system_operation.h
@@ -129,7 +129,7 @@
 
   StatusCallback completion_callback_;
 
-  base::WeakPtrFactory<SyncableFileSystemOperation> weak_factory_;
+  base::WeakPtrFactory<SyncableFileSystemOperation> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(SyncableFileSystemOperation);
 };
diff --git a/chrome/browser/sync_file_system/local/syncable_file_system_unittest.cc b/chrome/browser/sync_file_system/local/syncable_file_system_unittest.cc
index 1f2d54f..6aa6600 100644
--- a/chrome/browser/sync_file_system/local/syncable_file_system_unittest.cc
+++ b/chrome/browser/sync_file_system/local/syncable_file_system_unittest.cc
@@ -39,8 +39,7 @@
         file_system_(GURL("http://example.com/"),
                      in_memory_env_.get(),
                      base::ThreadTaskRunnerHandle::Get().get(),
-                     base::ThreadTaskRunnerHandle::Get().get()),
-        weak_factory_(this) {}
+                     base::ThreadTaskRunnerHandle::Get().get()) {}
 
   void SetUp() override {
     ASSERT_TRUE(data_dir_.CreateUniqueTempDir());
@@ -105,7 +104,7 @@
  private:
   scoped_refptr<LocalFileSyncContext> sync_context_;
 
-  base::WeakPtrFactory<SyncableFileSystemTest> weak_factory_;
+  base::WeakPtrFactory<SyncableFileSystemTest> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(SyncableFileSystemTest);
 };
diff --git a/chrome/browser/sync_file_system/sync_file_system_service.cc b/chrome/browser/sync_file_system/sync_file_system_service.cc
index 54b016fd..a76c8f6 100644
--- a/chrome/browser/sync_file_system/sync_file_system_service.cc
+++ b/chrome/browser/sync_file_system/sync_file_system_service.cc
@@ -150,12 +150,11 @@
 class LocalSyncRunner : public SyncProcessRunner,
                         public LocalFileSyncService::Observer {
  public:
-  LocalSyncRunner(const std::string& name,
-                  SyncFileSystemService* sync_service)
-      : SyncProcessRunner(name, sync_service,
-                          nullptr,  /* timer_helper */
-                          1  /* max_parallel_task */),
-        factory_(this) {}
+  LocalSyncRunner(const std::string& name, SyncFileSystemService* sync_service)
+      : SyncProcessRunner(name,
+                          sync_service,
+                          nullptr, /* timer_helper */
+                          1 /* max_parallel_task */) {}
 
   void StartSync(const SyncStatusCallback& callback) override {
     GetSyncService()->local_service_->ProcessLocalChange(
@@ -185,7 +184,7 @@
     callback.Run(status);
   }
 
-  base::WeakPtrFactory<LocalSyncRunner> factory_;
+  base::WeakPtrFactory<LocalSyncRunner> factory_{this};
   DISALLOW_COPY_AND_ASSIGN(LocalSyncRunner);
 };
 
@@ -196,12 +195,12 @@
   RemoteSyncRunner(const std::string& name,
                    SyncFileSystemService* sync_service,
                    RemoteFileSyncService* remote_service)
-      : SyncProcessRunner(name, sync_service,
-                          nullptr,  /* timer_helper */
-                          1  /* max_parallel_task */),
+      : SyncProcessRunner(name,
+                          sync_service,
+                          nullptr, /* timer_helper */
+                          1 /* max_parallel_task */),
         remote_service_(remote_service),
-        last_state_(REMOTE_SERVICE_OK),
-        factory_(this) {}
+        last_state_(REMOTE_SERVICE_OK) {}
 
   void StartSync(const SyncStatusCallback& callback) override {
     remote_service_->ProcessRemoteChange(
@@ -250,7 +249,7 @@
 
   RemoteFileSyncService* remote_service_;
   RemoteServiceState last_state_;
-  base::WeakPtrFactory<RemoteSyncRunner> factory_;
+  base::WeakPtrFactory<RemoteSyncRunner> factory_{this};
   DISALLOW_COPY_AND_ASSIGN(RemoteSyncRunner);
 };
 
diff --git a/chrome/browser/sync_file_system/sync_process_runner.cc b/chrome/browser/sync_file_system/sync_process_runner.cc
index d3fc3be..6c739a9 100644
--- a/chrome/browser/sync_file_system/sync_process_runner.cc
+++ b/chrome/browser/sync_file_system/sync_process_runner.cc
@@ -69,8 +69,7 @@
       running_tasks_(0),
       timer_helper_(std::move(timer_helper)),
       service_state_(SYNC_SERVICE_RUNNING),
-      pending_changes_(0),
-      factory_(this) {
+      pending_changes_(0) {
   DCHECK_LE(1u, max_parallel_task_);
   if (!timer_helper_)
     timer_helper_.reset(new BaseTimerHelper);
diff --git a/chrome/browser/sync_file_system/sync_process_runner.h b/chrome/browser/sync_file_system/sync_process_runner.h
index 1b9b0dc..8e3a81e 100644
--- a/chrome/browser/sync_file_system/sync_process_runner.h
+++ b/chrome/browser/sync_file_system/sync_process_runner.h
@@ -118,7 +118,7 @@
   base::TimeTicks throttle_until_;
 
   int64_t pending_changes_;
-  base::WeakPtrFactory<SyncProcessRunner> factory_;
+  base::WeakPtrFactory<SyncProcessRunner> factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(SyncProcessRunner);
 };
diff --git a/chrome/browser/task_manager/providers/child_process_task_provider.cc b/chrome/browser/task_manager/providers/child_process_task_provider.cc
index f4e816f..038ad0d 100644
--- a/chrome/browser/task_manager/providers/child_process_task_provider.cc
+++ b/chrome/browser/task_manager/providers/child_process_task_provider.cc
@@ -45,9 +45,7 @@
 
 }  // namespace
 
-ChildProcessTaskProvider::ChildProcessTaskProvider()
-    : weak_ptr_factory_(this) {
-}
+ChildProcessTaskProvider::ChildProcessTaskProvider() {}
 
 ChildProcessTaskProvider::~ChildProcessTaskProvider() {
 }
diff --git a/chrome/browser/task_manager/providers/child_process_task_provider.h b/chrome/browser/task_manager/providers/child_process_task_provider.h
index f45955f..705f288 100644
--- a/chrome/browser/task_manager/providers/child_process_task_provider.h
+++ b/chrome/browser/task_manager/providers/child_process_task_provider.h
@@ -76,7 +76,7 @@
 
   // Always keep this the last member of this class to make sure it's the
   // first thing to be destructed.
-  base::WeakPtrFactory<ChildProcessTaskProvider> weak_ptr_factory_;
+  base::WeakPtrFactory<ChildProcessTaskProvider> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(ChildProcessTaskProvider);
 };
diff --git a/chrome/browser/task_manager/providers/render_process_host_task_provider.cc b/chrome/browser/task_manager/providers/render_process_host_task_provider.cc
index a83e94d..8629b0e 100644
--- a/chrome/browser/task_manager/providers/render_process_host_task_provider.cc
+++ b/chrome/browser/task_manager/providers/render_process_host_task_provider.cc
@@ -25,8 +25,7 @@
 
 namespace task_manager {
 
-RenderProcessHostTaskProvider::RenderProcessHostTaskProvider()
-    : weak_ptr_factory_(this) {
+RenderProcessHostTaskProvider::RenderProcessHostTaskProvider() {
   registrar_.Add(this, content::NOTIFICATION_RENDERER_PROCESS_CREATED,
                  content::NotificationService::AllBrowserContextsAndSources());
   registrar_.Add(this, content::NOTIFICATION_RENDERER_PROCESS_CLOSED,
diff --git a/chrome/browser/task_manager/providers/render_process_host_task_provider.h b/chrome/browser/task_manager/providers/render_process_host_task_provider.h
index 1b03d12e..41951a8d 100644
--- a/chrome/browser/task_manager/providers/render_process_host_task_provider.h
+++ b/chrome/browser/task_manager/providers/render_process_host_task_provider.h
@@ -57,7 +57,7 @@
 
   // Always keep this the last member of this class to make sure it's the
   // first thing to be destructed.
-  base::WeakPtrFactory<RenderProcessHostTaskProvider> weak_ptr_factory_;
+  base::WeakPtrFactory<RenderProcessHostTaskProvider> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(RenderProcessHostTaskProvider);
 };
diff --git a/chrome/browser/task_manager/providers/service_worker_task_provider.cc b/chrome/browser/task_manager/providers/service_worker_task_provider.cc
index 1464670..ad8afe5 100644
--- a/chrome/browser/task_manager/providers/service_worker_task_provider.cc
+++ b/chrome/browser/task_manager/providers/service_worker_task_provider.cc
@@ -23,8 +23,7 @@
 
 namespace task_manager {
 
-ServiceWorkerTaskProvider::ServiceWorkerTaskProvider()
-    : weak_ptr_factory_(this) {}
+ServiceWorkerTaskProvider::ServiceWorkerTaskProvider() {}
 
 ServiceWorkerTaskProvider::~ServiceWorkerTaskProvider() = default;
 
diff --git a/chrome/browser/task_manager/providers/service_worker_task_provider.h b/chrome/browser/task_manager/providers/service_worker_task_provider.h
index f67f0a1..f9032ad 100644
--- a/chrome/browser/task_manager/providers/service_worker_task_provider.h
+++ b/chrome/browser/task_manager/providers/service_worker_task_provider.h
@@ -100,7 +100,7 @@
 
   content::NotificationRegistrar registrar_;
 
-  base::WeakPtrFactory<ServiceWorkerTaskProvider> weak_ptr_factory_;
+  base::WeakPtrFactory<ServiceWorkerTaskProvider> weak_ptr_factory_{this};
 };
 
 }  // namespace task_manager
diff --git a/chrome/browser/task_manager/providers/web_contents/web_contents_task_provider.cc b/chrome/browser/task_manager/providers/web_contents/web_contents_task_provider.cc
index ce3daf49..a96edb0 100644
--- a/chrome/browser/task_manager/providers/web_contents/web_contents_task_provider.cc
+++ b/chrome/browser/task_manager/providers/web_contents/web_contents_task_provider.cc
@@ -97,7 +97,7 @@
   // States whether we did record a main frame for this entry.
   SiteInstance* main_frame_site_instance_;
 
-  base::WeakPtrFactory<WebContentsEntry> weak_factory_;
+  base::WeakPtrFactory<WebContentsEntry> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(WebContentsEntry);
 };
@@ -108,8 +108,7 @@
                                    WebContentsTaskProvider* provider)
     : WebContentsObserver(web_contents),
       provider_(provider),
-      main_frame_site_instance_(nullptr),
-      weak_factory_(this) {}
+      main_frame_site_instance_(nullptr) {}
 
 WebContentsEntry::~WebContentsEntry() {
   ClearAllTasks(false);
diff --git a/chrome/browser/task_manager/sampling/task_group.cc b/chrome/browser/task_manager/sampling/task_group.cc
index 9407ea1..9c4e5a0 100644
--- a/chrome/browser/task_manager/sampling/task_group.cc
+++ b/chrome/browser/task_manager/sampling/task_group.cc
@@ -119,8 +119,7 @@
 #endif  // defined(OS_LINUX) || defined(OS_MACOSX)
       idle_wakeups_per_second_(-1),
       gpu_memory_has_duplicates_(false),
-      is_backgrounded_(false),
-      weak_ptr_factory_(this) {
+      is_backgrounded_(false) {
   if (process_id_ != base::kNullProcessId && !is_running_in_vm_) {
     worker_thread_sampler_ = base::MakeRefCounted<TaskGroupSampler>(
         base::Process::Open(process_id_), blocking_pool_runner,
diff --git a/chrome/browser/task_manager/sampling/task_group.h b/chrome/browser/task_manager/sampling/task_group.h
index dfd52eb7..0226511 100644
--- a/chrome/browser/task_manager/sampling/task_group.h
+++ b/chrome/browser/task_manager/sampling/task_group.h
@@ -216,7 +216,7 @@
 
   // Always keep this the last member of this class so that it's the first to be
   // destroyed.
-  base::WeakPtrFactory<TaskGroup> weak_ptr_factory_;
+  base::WeakPtrFactory<TaskGroup> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(TaskGroup);
 };
diff --git a/chrome/browser/task_manager/sampling/task_manager_impl.cc b/chrome/browser/task_manager/sampling/task_manager_impl.cc
index 425fb545b..9677d5c 100644
--- a/chrome/browser/task_manager/sampling/task_manager_impl.cc
+++ b/chrome/browser/task_manager/sampling/task_manager_impl.cc
@@ -81,8 +81,7 @@
            base::TaskShutdownBehavior::SKIP_ON_SHUTDOWN})),
       shared_sampler_(new SharedSampler(blocking_pool_runner_)),
       is_running_(false),
-      waiting_for_memory_dump_(false),
-      weak_ptr_factory_(this) {
+      waiting_for_memory_dump_(false) {
   DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
 
   task_providers_.emplace_back(new BrowserProcessTaskProvider());
diff --git a/chrome/browser/task_manager/sampling/task_manager_impl.h b/chrome/browser/task_manager/sampling/task_manager_impl.h
index f96a72d..225549a7 100644
--- a/chrome/browser/task_manager/sampling/task_manager_impl.h
+++ b/chrome/browser/task_manager/sampling/task_manager_impl.h
@@ -225,7 +225,7 @@
   // memory_instrumentation.
   bool waiting_for_memory_dump_;
 
-  base::WeakPtrFactory<TaskManagerImpl> weak_ptr_factory_;
+  base::WeakPtrFactory<TaskManagerImpl> weak_ptr_factory_{this};
   DISALLOW_COPY_AND_ASSIGN(TaskManagerImpl);
 };
 
diff --git a/chrome/browser/themes/theme_service.cc b/chrome/browser/themes/theme_service.cc
index 21d24c0..e2d0592 100644
--- a/chrome/browser/themes/theme_service.cc
+++ b/chrome/browser/themes/theme_service.cc
@@ -323,8 +323,7 @@
       number_of_infobars_(0),
       original_theme_provider_(*this, false, false),
       incognito_theme_provider_(*this, true, false),
-      default_theme_provider_(*this, false, true),
-      weak_ptr_factory_(this) {}
+      default_theme_provider_(*this, false, true) {}
 
 ThemeService::~ThemeService() {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
diff --git a/chrome/browser/themes/theme_service.h b/chrome/browser/themes/theme_service.h
index 103f83f..cfedfeb 100644
--- a/chrome/browser/themes/theme_service.h
+++ b/chrome/browser/themes/theme_service.h
@@ -349,7 +349,7 @@
   ScopedObserver<ui::NativeTheme, ui::NativeThemeObserver>
       native_theme_observer_{this};
 
-  base::WeakPtrFactory<ThemeService> weak_ptr_factory_;
+  base::WeakPtrFactory<ThemeService> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(ThemeService);
 };
diff --git a/chrome/browser/tracing/trace_event_system_stats_monitor.cc b/chrome/browser/tracing/trace_event_system_stats_monitor.cc
index 993b96b..060be9b 100644
--- a/chrome/browser/tracing/trace_event_system_stats_monitor.cc
+++ b/chrome/browser/tracing/trace_event_system_stats_monitor.cc
@@ -45,8 +45,7 @@
 
 //////////////////////////////////////////////////////////////////////////////
 
-TraceEventSystemStatsMonitor::TraceEventSystemStatsMonitor()
-    : weak_factory_(this) {
+TraceEventSystemStatsMonitor::TraceEventSystemStatsMonitor() {
   // Force the "system_stats" category to show up in the trace viewer.
   base::trace_event::TraceLog::GetCategoryGroupEnabled(
       TRACE_DISABLED_BY_DEFAULT("system_stats"));
diff --git a/chrome/browser/tracing/trace_event_system_stats_monitor.h b/chrome/browser/tracing/trace_event_system_stats_monitor.h
index a1a3be5..f533a89e 100644
--- a/chrome/browser/tracing/trace_event_system_stats_monitor.h
+++ b/chrome/browser/tracing/trace_event_system_stats_monitor.h
@@ -44,7 +44,7 @@
   // Indicates if profiling has started.
   bool is_profiling_ = false;
 
-  base::WeakPtrFactory<TraceEventSystemStatsMonitor> weak_factory_;
+  base::WeakPtrFactory<TraceEventSystemStatsMonitor> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(TraceEventSystemStatsMonitor);
 };
diff --git a/chrome/browser/ui/apps/chrome_app_delegate.cc b/chrome/browser/ui/apps/chrome_app_delegate.cc
index 01760bc..24163f1 100644
--- a/chrome/browser/ui/apps/chrome_app_delegate.cc
+++ b/chrome/browser/ui/apps/chrome_app_delegate.cc
@@ -184,8 +184,7 @@
     : has_been_shown_(false),
       is_hidden_(true),
       for_lock_screen_app_(false),
-      new_window_contents_delegate_(new NewWindowContentsDelegate()),
-      weak_factory_(this) {
+      new_window_contents_delegate_(new NewWindowContentsDelegate()) {
   if (keep_alive) {
     keep_alive_.reset(new ScopedKeepAlive(KeepAliveOrigin::CHROME_APP_DELEGATE,
                                           KeepAliveRestartOption::DISABLED));
diff --git a/chrome/browser/ui/apps/chrome_app_delegate.h b/chrome/browser/ui/apps/chrome_app_delegate.h
index ee81fb8c..6f05df63 100644
--- a/chrome/browser/ui/apps/chrome_app_delegate.h
+++ b/chrome/browser/ui/apps/chrome_app_delegate.h
@@ -93,7 +93,7 @@
   std::unique_ptr<NewWindowContentsDelegate> new_window_contents_delegate_;
   base::Closure terminating_callback_;
   content::NotificationRegistrar registrar_;
-  base::WeakPtrFactory<ChromeAppDelegate> weak_factory_;
+  base::WeakPtrFactory<ChromeAppDelegate> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(ChromeAppDelegate);
 };
diff --git a/chrome/browser/ui/autofill/payments/card_unmask_prompt_view_browsertest.cc b/chrome/browser/ui/autofill/payments/card_unmask_prompt_view_browsertest.cc
index bb119a5..3c164ba 100644
--- a/chrome/browser/ui/autofill/payments/card_unmask_prompt_view_browsertest.cc
+++ b/chrome/browser/ui/autofill/payments/card_unmask_prompt_view_browsertest.cc
@@ -37,7 +37,7 @@
 
 class TestCardUnmaskDelegate : public CardUnmaskDelegate {
  public:
-  TestCardUnmaskDelegate() : weak_factory_(this) {}
+  TestCardUnmaskDelegate() {}
 
   virtual ~TestCardUnmaskDelegate() {}
 
@@ -56,7 +56,7 @@
  private:
   UnmaskResponse response_;
 
-  base::WeakPtrFactory<TestCardUnmaskDelegate> weak_factory_;
+  base::WeakPtrFactory<TestCardUnmaskDelegate> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(TestCardUnmaskDelegate);
 };
@@ -69,8 +69,7 @@
       : CardUnmaskPromptControllerImpl(
             user_prefs::UserPrefs::Get(contents->GetBrowserContext()),
             false),
-        runner_(runner),
-        weak_factory_(this) {}
+        runner_(runner) {}
 
   // CardUnmaskPromptControllerImpl:.
   // When the confirm button is clicked.
@@ -136,7 +135,7 @@
   bool expected_failure_temporary_ = false;
   bool expected_failure_permanent_ = false;
   scoped_refptr<content::MessageLoopRunner> runner_;
-  base::WeakPtrFactory<TestCardUnmaskPromptController> weak_factory_;
+  base::WeakPtrFactory<TestCardUnmaskPromptController> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(TestCardUnmaskPromptController);
 };
diff --git a/chrome/browser/ui/bookmarks/bookmark_context_menu_controller.cc b/chrome/browser/ui/bookmarks/bookmark_context_menu_controller.cc
index 1005956..c644abde 100644
--- a/chrome/browser/ui/bookmarks/bookmark_context_menu_controller.cc
+++ b/chrome/browser/ui/bookmarks/bookmark_context_menu_controller.cc
@@ -105,8 +105,7 @@
       opened_from_(opened_from),
       parent_(parent),
       selection_(selection),
-      model_(BookmarkModelFactory::GetForBrowserContext(profile)),
-      weak_factory_(this) {
+      model_(BookmarkModelFactory::GetForBrowserContext(profile)) {
   DCHECK(profile_);
   DCHECK(model_->loaded());
   menu_model_.reset(new ui::SimpleMenuModel(this));
diff --git a/chrome/browser/ui/bookmarks/bookmark_context_menu_controller.h b/chrome/browser/ui/bookmarks/bookmark_context_menu_controller.h
index ad4f03307..c5835d8 100644
--- a/chrome/browser/ui/bookmarks/bookmark_context_menu_controller.h
+++ b/chrome/browser/ui/bookmarks/bookmark_context_menu_controller.h
@@ -104,7 +104,7 @@
   bookmarks::BookmarkModel* model_;
   std::unique_ptr<ui::SimpleMenuModel> menu_model_;
   // Used to detect deletion of |this| executing a command.
-  base::WeakPtrFactory<BookmarkContextMenuController> weak_factory_;
+  base::WeakPtrFactory<BookmarkContextMenuController> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(BookmarkContextMenuController);
 };
diff --git a/chrome/browser/ui/browser.cc b/chrome/browser/ui/browser.cc
index 53fe269..ddb4ea1 100644
--- a/chrome/browser/ui/browser.cc
+++ b/chrome/browser/ui/browser.cc
@@ -451,13 +451,13 @@
       app_controller_(MaybeCreateWebAppController(this)),
       bookmark_bar_state_(BookmarkBar::HIDDEN),
       command_controller_(new chrome::BrowserCommandController(this)),
-      window_has_shown_(false),
+      window_has_shown_(false)
 #if BUILDFLAG(ENABLE_EXTENSIONS)
+      ,
       extension_browser_window_helper_(
-          std::make_unique<extensions::ExtensionBrowserWindowHelper>(this)),
+          std::make_unique<extensions::ExtensionBrowserWindowHelper>(this))
 #endif
-      chrome_updater_factory_(this),
-      weak_factory_(this) {
+{
   // If this causes a crash then a window is being opened using a profile type
   // that is disallowed by policy. The crash prevents the disabled window type
   // from opening at all, but the path that triggered it should be fixed.
diff --git a/chrome/browser/ui/browser.h b/chrome/browser/ui/browser.h
index 5374cfd..57c6536 100644
--- a/chrome/browser/ui/browser.h
+++ b/chrome/browser/ui/browser.h
@@ -1101,10 +1101,10 @@
 #endif
 
   // The following factory is used for chrome update coalescing.
-  base::WeakPtrFactory<Browser> chrome_updater_factory_;
+  base::WeakPtrFactory<Browser> chrome_updater_factory_{this};
 
   // The following factory is used to close the frame at a later time.
-  base::WeakPtrFactory<Browser> weak_factory_;
+  base::WeakPtrFactory<Browser> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(Browser);
 };
diff --git a/chrome/browser/ui/browser_instant_controller.cc b/chrome/browser/ui/browser_instant_controller.cc
index c9a4bb1..53b13b6f 100644
--- a/chrome/browser/ui/browser_instant_controller.cc
+++ b/chrome/browser/ui/browser_instant_controller.cc
@@ -45,7 +45,7 @@
   friend class content::WebContentsUserData<TabReloader>;
 
   explicit TabReloader(content::WebContents* web_contents)
-      : web_contents_(web_contents), weak_ptr_factory_(this) {
+      : web_contents_(web_contents) {
     base::PostTaskWithTraits(FROM_HERE, {content::BrowserThread::UI},
                              base::BindOnce(&TabReloader::ReloadImpl,
                                             weak_ptr_factory_.GetWeakPtr()));
@@ -64,7 +64,7 @@
   }
 
   content::WebContents* web_contents_;
-  base::WeakPtrFactory<TabReloader> weak_ptr_factory_;
+  base::WeakPtrFactory<TabReloader> weak_ptr_factory_{this};
   WEB_CONTENTS_USER_DATA_KEY_DECL();
 };
 
diff --git a/chrome/browser/ui/browser_tab_strip_model_delegate.cc b/chrome/browser/ui/browser_tab_strip_model_delegate.cc
index 0ca8bbd..1727ce73 100644
--- a/chrome/browser/ui/browser_tab_strip_model_delegate.cc
+++ b/chrome/browser/ui/browser_tab_strip_model_delegate.cc
@@ -35,7 +35,7 @@
 // BrowserTabStripModelDelegate, public:
 
 BrowserTabStripModelDelegate::BrowserTabStripModelDelegate(Browser* browser)
-    : browser_(browser), weak_factory_(this) {}
+    : browser_(browser) {}
 
 BrowserTabStripModelDelegate::~BrowserTabStripModelDelegate() {}
 
diff --git a/chrome/browser/ui/browser_tab_strip_model_delegate.h b/chrome/browser/ui/browser_tab_strip_model_delegate.h
index d5a55f2..0f23028 100644
--- a/chrome/browser/ui/browser_tab_strip_model_delegate.h
+++ b/chrome/browser/ui/browser_tab_strip_model_delegate.h
@@ -47,7 +47,7 @@
   Browser* const browser_;
 
   // The following factory is used to close the frame at a later time.
-  base::WeakPtrFactory<BrowserTabStripModelDelegate> weak_factory_;
+  base::WeakPtrFactory<BrowserTabStripModelDelegate> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(BrowserTabStripModelDelegate);
 };
diff --git a/chrome/browser/ui/exclusive_access/fullscreen_controller_test.cc b/chrome/browser/ui/exclusive_access/fullscreen_controller_test.cc
index ffd2375..a54c97e 100644
--- a/chrome/browser/ui/exclusive_access/fullscreen_controller_test.cc
+++ b/chrome/browser/ui/exclusive_access/fullscreen_controller_test.cc
@@ -59,7 +59,7 @@
 const char FullscreenControllerTest::kFullscreenMouseLockHTML[] =
     "/fullscreen_mouselock/fullscreen_mouselock.html";
 
-FullscreenControllerTest::FullscreenControllerTest() : weak_ptr_factory_(this) {
+FullscreenControllerTest::FullscreenControllerTest() {
   // It is important to disable system keyboard lock as low-level test utilities
   // may install a keyboard hook to listen for keyboard events and having an
   // active system hook may cause issues with that mechanism.
diff --git a/chrome/browser/ui/exclusive_access/fullscreen_controller_test.h b/chrome/browser/ui/exclusive_access/fullscreen_controller_test.h
index 2042279..26ebf243 100644
--- a/chrome/browser/ui/exclusive_access/fullscreen_controller_test.h
+++ b/chrome/browser/ui/exclusive_access/fullscreen_controller_test.h
@@ -116,7 +116,7 @@
 
   base::test::ScopedFeatureList scoped_feature_list_;
 
-  base::WeakPtrFactory<FullscreenControllerTest> weak_ptr_factory_;
+  base::WeakPtrFactory<FullscreenControllerTest> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(FullscreenControllerTest);
 };
diff --git a/chrome/browser/ui/exclusive_access/mouse_lock_controller.cc b/chrome/browser/ui/exclusive_access/mouse_lock_controller.cc
index deb2779..b44e6319 100644
--- a/chrome/browser/ui/exclusive_access/mouse_lock_controller.cc
+++ b/chrome/browser/ui/exclusive_access/mouse_lock_controller.cc
@@ -32,8 +32,7 @@
     : ExclusiveAccessControllerBase(manager),
       mouse_lock_state_(MOUSELOCK_UNLOCKED),
       fake_mouse_lock_for_test_(false),
-      bubble_hide_callback_for_test_(),
-      weak_ptr_factory_(this) {}
+      bubble_hide_callback_for_test_() {}
 
 MouseLockController::~MouseLockController() {
 }
diff --git a/chrome/browser/ui/exclusive_access/mouse_lock_controller.h b/chrome/browser/ui/exclusive_access/mouse_lock_controller.h
index 429a0bcf..50e76b9 100644
--- a/chrome/browser/ui/exclusive_access/mouse_lock_controller.h
+++ b/chrome/browser/ui/exclusive_access/mouse_lock_controller.h
@@ -98,7 +98,7 @@
   // Called when the page requests (successfully or not) or loses mouse lock.
   base::OnceClosure lock_state_callback_for_test_;
 
-  base::WeakPtrFactory<MouseLockController> weak_ptr_factory_;
+  base::WeakPtrFactory<MouseLockController> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(MouseLockController);
 };
diff --git a/chrome/browser/ui/extensions/extension_action_view_controller.cc b/chrome/browser/ui/extensions/extension_action_view_controller.cc
index 085f424..28d030c4 100644
--- a/chrome/browser/ui/extensions/extension_action_view_controller.cc
+++ b/chrome/browser/ui/extensions/extension_action_view_controller.cc
@@ -60,8 +60,7 @@
       icon_factory_(browser->profile(), extension, extension_action, this),
       extension_registry_(
           extensions::ExtensionRegistry::Get(browser_->profile())),
-      popup_host_observer_(this),
-      weak_factory_(this) {
+      popup_host_observer_(this) {
   DCHECK(extensions_container);
   DCHECK(extension_action);
   DCHECK(extension);
diff --git a/chrome/browser/ui/extensions/extension_action_view_controller.h b/chrome/browser/ui/extensions/extension_action_view_controller.h
index be1b8e3..4996c8c 100644
--- a/chrome/browser/ui/extensions/extension_action_view_controller.h
+++ b/chrome/browser/ui/extensions/extension_action_view_controller.h
@@ -187,7 +187,7 @@
   ScopedObserver<extensions::ExtensionHost, extensions::ExtensionHostObserver>
       popup_host_observer_;
 
-  base::WeakPtrFactory<ExtensionActionViewController> weak_factory_;
+  base::WeakPtrFactory<ExtensionActionViewController> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(ExtensionActionViewController);
 };
diff --git a/chrome/browser/ui/extensions/extension_enable_flow.cc b/chrome/browser/ui/extensions/extension_enable_flow.cc
index d7f70315..e3e758c 100644
--- a/chrome/browser/ui/extensions/extension_enable_flow.cc
+++ b/chrome/browser/ui/extensions/extension_enable_flow.cc
@@ -33,8 +33,7 @@
       delegate_(delegate),
       parent_contents_(NULL),
       parent_window_(NULL),
-      extension_registry_observer_(this),
-      weak_ptr_factory_(this) {}
+      extension_registry_observer_(this) {}
 
 ExtensionEnableFlow::~ExtensionEnableFlow() {
 }
diff --git a/chrome/browser/ui/extensions/extension_enable_flow.h b/chrome/browser/ui/extensions/extension_enable_flow.h
index 89747e0..b4e0d681 100644
--- a/chrome/browser/ui/extensions/extension_enable_flow.h
+++ b/chrome/browser/ui/extensions/extension_enable_flow.h
@@ -114,7 +114,7 @@
                  extensions::ExtensionRegistryObserver>
       extension_registry_observer_;
 
-  base::WeakPtrFactory<ExtensionEnableFlow> weak_ptr_factory_;
+  base::WeakPtrFactory<ExtensionEnableFlow> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(ExtensionEnableFlow);
 };
diff --git a/chrome/browser/ui/extensions/extension_installed_bubble.cc b/chrome/browser/ui/extensions/extension_installed_bubble.cc
index a7cf6af..7104ac3c 100644
--- a/chrome/browser/ui/extensions/extension_installed_bubble.cc
+++ b/chrome/browser/ui/extensions/extension_installed_bubble.cc
@@ -49,8 +49,7 @@
       : bubble_(std::move(bubble)),
         extension_registry_observer_(this),
         browser_list_observer_(this),
-        animation_wait_retries_(0),
-        weak_factory_(this) {
+        animation_wait_retries_(0) {
     // |extension| has been initialized but not loaded at this point. We need to
     // wait on showing the Bubble until the EXTENSION_LOADED gets fired.
     extension_registry_observer_.Add(
@@ -142,7 +141,7 @@
   // action toolbar is animating.
   int animation_wait_retries_;
 
-  base::WeakPtrFactory<ExtensionInstalledBubbleObserver> weak_factory_;
+  base::WeakPtrFactory<ExtensionInstalledBubbleObserver> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(ExtensionInstalledBubbleObserver);
 };
diff --git a/chrome/browser/ui/javascript_dialogs/javascript_dialog_views.cc b/chrome/browser/ui/javascript_dialogs/javascript_dialog_views.cc
index ead533b..017df66 100644
--- a/chrome/browser/ui/javascript_dialogs/javascript_dialog_views.cc
+++ b/chrome/browser/ui/javascript_dialogs/javascript_dialog_views.cc
@@ -112,8 +112,7 @@
       message_text_(message_text),
       default_prompt_text_(default_prompt_text),
       dialog_callback_(std::move(dialog_callback)),
-      dialog_force_closed_callback_(std::move(dialog_force_closed_callback)),
-      weak_factory_(this) {
+      dialog_force_closed_callback_(std::move(dialog_force_closed_callback)) {
   int options = views::MessageBoxView::DETECT_DIRECTIONALITY;
   if (dialog_type == content::JAVASCRIPT_DIALOG_TYPE_PROMPT)
     options |= views::MessageBoxView::HAS_PROMPT_FIELD;
diff --git a/chrome/browser/ui/javascript_dialogs/javascript_dialog_views.h b/chrome/browser/ui/javascript_dialogs/javascript_dialog_views.h
index eb9589b..ea463ac 100644
--- a/chrome/browser/ui/javascript_dialogs/javascript_dialog_views.h
+++ b/chrome/browser/ui/javascript_dialogs/javascript_dialog_views.h
@@ -79,7 +79,7 @@
   // The message box view whose commands we handle.
   views::MessageBoxView* message_box_view_;
 
-  base::WeakPtrFactory<JavaScriptDialogViews> weak_factory_;
+  base::WeakPtrFactory<JavaScriptDialogViews> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(JavaScriptDialogViews);
 };
diff --git a/chrome/browser/ui/libgtkui/app_indicator_icon.cc b/chrome/browser/ui/libgtkui/app_indicator_icon.cc
index b3c3ed9..b1720e9 100644
--- a/chrome/browser/ui/libgtkui/app_indicator_icon.cc
+++ b/chrome/browser/ui/libgtkui/app_indicator_icon.cc
@@ -152,11 +152,7 @@
 AppIndicatorIcon::AppIndicatorIcon(std::string id,
                                    const gfx::ImageSkia& image,
                                    const base::string16& tool_tip)
-    : id_(id),
-      icon_(nullptr),
-      menu_model_(nullptr),
-      icon_change_count_(0),
-      weak_factory_(this) {
+    : id_(id), icon_(nullptr), menu_model_(nullptr), icon_change_count_(0) {
   std::unique_ptr<base::Environment> env(base::Environment::Create());
   desktop_env_ = base::nix::GetDesktopEnvironment(env.get());
 
diff --git a/chrome/browser/ui/libgtkui/app_indicator_icon.h b/chrome/browser/ui/libgtkui/app_indicator_icon.h
index a8f207e..327879a8 100644
--- a/chrome/browser/ui/libgtkui/app_indicator_icon.h
+++ b/chrome/browser/ui/libgtkui/app_indicator_icon.h
@@ -100,7 +100,7 @@
   base::FilePath temp_dir_;
   int icon_change_count_;
 
-  base::WeakPtrFactory<AppIndicatorIcon> weak_factory_;
+  base::WeakPtrFactory<AppIndicatorIcon> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(AppIndicatorIcon);
 };
diff --git a/chrome/browser/ui/login/login_handler.cc b/chrome/browser/ui/login/login_handler.cc
index 52435cc..50c2e8e6 100644
--- a/chrome/browser/ui/login/login_handler.cc
+++ b/chrome/browser/ui/login/login_handler.cc
@@ -98,8 +98,7 @@
     : WebContentsObserver(web_contents),
       auth_info_(auth_info),
       auth_required_callback_(std::move(auth_required_callback)),
-      prompt_started_(false),
-      weak_factory_(this) {
+      prompt_started_(false) {
   DCHECK(web_contents);
 }
 
diff --git a/chrome/browser/ui/login/login_handler.h b/chrome/browser/ui/login/login_handler.h
index c2777a8..58a1a1c 100644
--- a/chrome/browser/ui/login/login_handler.h
+++ b/chrome/browser/ui/login/login_handler.h
@@ -204,7 +204,7 @@
 
   // True if the extensions logic has run and the prompt logic has started.
   bool prompt_started_;
-  base::WeakPtrFactory<LoginHandler> weak_factory_;
+  base::WeakPtrFactory<LoginHandler> weak_factory_{this};
 };
 
 // Details to provide the content::NotificationObserver.  Used by the automation
diff --git a/chrome/browser/ui/login/login_interstitial_delegate.cc b/chrome/browser/ui/login/login_interstitial_delegate.cc
index c1a918e..811e098 100644
--- a/chrome/browser/ui/login/login_interstitial_delegate.cc
+++ b/chrome/browser/ui/login/login_interstitial_delegate.cc
@@ -18,8 +18,7 @@
       interstitial_page_(content::InterstitialPage::Create(web_contents,
                                                            true,
                                                            request_url,
-                                                           this)),
-      weak_ptr_factory_(this) {
+                                                           this)) {
   // When shown, interstitial page takes ownership of |this|.
   interstitial_page_->Show();
 }
diff --git a/chrome/browser/ui/login/login_interstitial_delegate.h b/chrome/browser/ui/login/login_interstitial_delegate.h
index 19429f3..aa264e3 100644
--- a/chrome/browser/ui/login/login_interstitial_delegate.h
+++ b/chrome/browser/ui/login/login_interstitial_delegate.h
@@ -45,7 +45,7 @@
  private:
   base::OnceClosure callback_;
   content::InterstitialPage* interstitial_page_;
-  base::WeakPtrFactory<LoginInterstitialDelegate> weak_ptr_factory_;
+  base::WeakPtrFactory<LoginInterstitialDelegate> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(LoginInterstitialDelegate);
 };
diff --git a/chrome/browser/ui/login/login_tab_helper.cc b/chrome/browser/ui/login/login_tab_helper.cc
index b6545bc..bb029ea 100644
--- a/chrome/browser/ui/login/login_tab_helper.cc
+++ b/chrome/browser/ui/login/login_tab_helper.cc
@@ -136,7 +136,7 @@
 }
 
 LoginTabHelper::LoginTabHelper(content::WebContents* web_contents)
-    : content::WebContentsObserver(web_contents), weak_ptr_factory_(this) {}
+    : content::WebContentsObserver(web_contents) {}
 
 void LoginTabHelper::HandleCredentials(
     const base::Optional<net::AuthCredentials>& credentials) {
diff --git a/chrome/browser/ui/login/login_tab_helper.h b/chrome/browser/ui/login/login_tab_helper.h
index 298bb07..4f27613 100644
--- a/chrome/browser/ui/login/login_tab_helper.h
+++ b/chrome/browser/ui/login/login_tab_helper.h
@@ -55,7 +55,7 @@
 
   net::AuthChallengeInfo challenge_;
 
-  base::WeakPtrFactory<LoginTabHelper> weak_ptr_factory_;
+  base::WeakPtrFactory<LoginTabHelper> weak_ptr_factory_{this};
 
   WEB_CONTENTS_USER_DATA_KEY_DECL();
 
diff --git a/chrome/browser/ui/media_router/media_router_ui_base.cc b/chrome/browser/ui/media_router/media_router_ui_base.cc
index d644722..2834a9e 100644
--- a/chrome/browser/ui/media_router/media_router_ui_base.cc
+++ b/chrome/browser/ui/media_router/media_router_ui_base.cc
@@ -170,8 +170,7 @@
   }
 };
 
-MediaRouterUIBase::MediaRouterUIBase()
-    : initiator_(nullptr), weak_factory_(this) {}
+MediaRouterUIBase::MediaRouterUIBase() : initiator_(nullptr) {}
 
 MediaRouterUIBase::~MediaRouterUIBase() {
   if (query_result_manager_.get())
diff --git a/chrome/browser/ui/media_router/media_router_ui_base.h b/chrome/browser/ui/media_router/media_router_ui_base.h
index 8ab5588..ddeade8 100644
--- a/chrome/browser/ui/media_router/media_router_ui_base.h
+++ b/chrome/browser/ui/media_router/media_router_ui_base.h
@@ -359,7 +359,7 @@
 
   // NOTE: Weak pointers must be invalidated before all other member variables.
   // Therefore |weak_factory_| must be placed at the end.
-  base::WeakPtrFactory<MediaRouterUIBase> weak_factory_;
+  base::WeakPtrFactory<MediaRouterUIBase> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(MediaRouterUIBase);
 };
diff --git a/chrome/browser/ui/passwords/manage_passwords_ui_controller.cc b/chrome/browser/ui/passwords/manage_passwords_ui_controller.cc
index 4442bdc..dd2c162 100644
--- a/chrome/browser/ui/passwords/manage_passwords_ui_controller.cc
+++ b/chrome/browser/ui/passwords/manage_passwords_ui_controller.cc
@@ -85,8 +85,7 @@
     content::WebContents* web_contents)
     : content::WebContentsObserver(web_contents),
       bubble_status_(NOT_SHOWN),
-      are_passwords_revealed_when_next_bubble_is_opened_(false),
-      weak_ptr_factory_(this) {
+      are_passwords_revealed_when_next_bubble_is_opened_(false) {
   passwords_data_.set_client(
       ChromePasswordManagerClient::FromWebContents(web_contents));
   password_manager::PasswordStore* password_store =
diff --git a/chrome/browser/ui/passwords/manage_passwords_ui_controller.h b/chrome/browser/ui/passwords/manage_passwords_ui_controller.h
index f3630591..58cebb6 100644
--- a/chrome/browser/ui/passwords/manage_passwords_ui_controller.h
+++ b/chrome/browser/ui/passwords/manage_passwords_ui_controller.h
@@ -256,7 +256,7 @@
   // time the internal state of ManagePasswordsUIController has nothing to do
   // with the old bubble.
   // Invalidating all the weak pointers will detach the current bubble.
-  base::WeakPtrFactory<ManagePasswordsUIController> weak_ptr_factory_;
+  base::WeakPtrFactory<ManagePasswordsUIController> weak_ptr_factory_{this};
 
   WEB_CONTENTS_USER_DATA_KEY_DECL();
 
diff --git a/chrome/browser/ui/passwords/password_generation_popup_controller_impl.cc b/chrome/browser/ui/passwords/password_generation_popup_controller_impl.cc
index 999fc5157..d979b9a 100644
--- a/chrome/browser/ui/passwords/password_generation_popup_controller_impl.cc
+++ b/chrome/browser/ui/passwords/password_generation_popup_controller_impl.cc
@@ -123,8 +123,7 @@
                          web_contents->GetNativeView()),
       password_selected_(false),
       state_(kOfferGeneration),
-      key_press_handler_manager_(new KeyPressRegistrator(frame)),
-      weak_ptr_factory_(this) {
+      key_press_handler_manager_(new KeyPressRegistrator(frame)) {
 #if !defined(OS_ANDROID)
   zoom::ZoomController* zoom_controller =
       zoom::ZoomController::FromWebContents(web_contents);
diff --git a/chrome/browser/ui/passwords/password_generation_popup_controller_impl.h b/chrome/browser/ui/passwords/password_generation_popup_controller_impl.h
index 2041549..0078b50e 100644
--- a/chrome/browser/ui/passwords/password_generation_popup_controller_impl.h
+++ b/chrome/browser/ui/passwords/password_generation_popup_controller_impl.h
@@ -197,7 +197,8 @@
 
   std::unique_ptr<KeyPressRegistrator> key_press_handler_manager_;
 
-  base::WeakPtrFactory<PasswordGenerationPopupControllerImpl> weak_ptr_factory_;
+  base::WeakPtrFactory<PasswordGenerationPopupControllerImpl> weak_ptr_factory_{
+      this};
 
   DISALLOW_COPY_AND_ASSIGN(PasswordGenerationPopupControllerImpl);
 };
diff --git a/chrome/browser/ui/prefs/prefs_tab_helper.cc b/chrome/browser/ui/prefs/prefs_tab_helper.cc
index 976e9e51..0d27cee 100644
--- a/chrome/browser/ui/prefs/prefs_tab_helper.cc
+++ b/chrome/browser/ui/prefs/prefs_tab_helper.cc
@@ -284,8 +284,8 @@
 
 PrefsTabHelper::PrefsTabHelper(WebContents* contents)
     : web_contents_(contents),
-      profile_(Profile::FromBrowserContext(web_contents_->GetBrowserContext())),
-      weak_ptr_factory_(this) {
+      profile_(
+          Profile::FromBrowserContext(web_contents_->GetBrowserContext())) {
   PrefService* prefs = profile_->GetPrefs();
   if (prefs) {
 #if !defined(OS_ANDROID)
diff --git a/chrome/browser/ui/prefs/prefs_tab_helper.h b/chrome/browser/ui/prefs/prefs_tab_helper.h
index a84f3df..f9994ae 100644
--- a/chrome/browser/ui/prefs/prefs_tab_helper.h
+++ b/chrome/browser/ui/prefs/prefs_tab_helper.h
@@ -70,7 +70,7 @@
       default_zoom_level_subscription_;
   FontPrefChangeNotifier::Registrar font_change_registrar_;
 #endif  // !defined(OS_ANDROID)
-  base::WeakPtrFactory<PrefsTabHelper> weak_ptr_factory_;
+  base::WeakPtrFactory<PrefsTabHelper> weak_ptr_factory_{this};
 
   WEB_CONTENTS_USER_DATA_KEY_DECL();
 
diff --git a/chrome/browser/ui/search/local_ntp_browsertest.cc b/chrome/browser/ui/search/local_ntp_browsertest.cc
index ea91566..f52fd9e 100644
--- a/chrome/browser/ui/search/local_ntp_browsertest.cc
+++ b/chrome/browser/ui/search/local_ntp_browsertest.cc
@@ -1035,7 +1035,7 @@
 class TestNavigationThrottle : public content::NavigationThrottle {
  public:
   explicit TestNavigationThrottle(content::NavigationHandle* handle)
-      : content::NavigationThrottle(handle), weak_ptr_factory_(this) {}
+      : content::NavigationThrottle(handle) {}
 
   static std::unique_ptr<NavigationThrottle> Create(
       content::NavigationHandle* handle) {
@@ -1063,7 +1063,7 @@
                                        navigation_handle()->GetURL());
   }
 
-  base::WeakPtrFactory<TestNavigationThrottle> weak_ptr_factory_;
+  base::WeakPtrFactory<TestNavigationThrottle> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(TestNavigationThrottle);
 };
diff --git a/chrome/browser/ui/startup/default_browser_infobar_delegate.cc b/chrome/browser/ui/startup/default_browser_infobar_delegate.cc
index 55ec20d..a303fc3e 100644
--- a/chrome/browser/ui/startup/default_browser_infobar_delegate.cc
+++ b/chrome/browser/ui/startup/default_browser_infobar_delegate.cc
@@ -31,8 +31,7 @@
     : ConfirmInfoBarDelegate(),
       profile_(profile),
       should_expire_(false),
-      action_taken_(false),
-      weak_factory_(this) {
+      action_taken_(false) {
   // We want the info-bar to stick-around for few seconds and then be hidden
   // on the next navigation after that.
   base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
diff --git a/chrome/browser/ui/startup/default_browser_infobar_delegate.h b/chrome/browser/ui/startup/default_browser_infobar_delegate.h
index 9e33eaca..6523cb8 100644
--- a/chrome/browser/ui/startup/default_browser_infobar_delegate.h
+++ b/chrome/browser/ui/startup/default_browser_infobar_delegate.h
@@ -64,7 +64,7 @@
   bool action_taken_;
 
   // Used to delay the expiration of the info-bar.
-  base::WeakPtrFactory<DefaultBrowserInfoBarDelegate> weak_factory_;
+  base::WeakPtrFactory<DefaultBrowserInfoBarDelegate> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(DefaultBrowserInfoBarDelegate);
 };
diff --git a/chrome/browser/ui/tab_contents/core_tab_helper.cc b/chrome/browser/ui/tab_contents/core_tab_helper.cc
index 45909069..118ee62 100644
--- a/chrome/browser/ui/tab_contents/core_tab_helper.cc
+++ b/chrome/browser/ui/tab_contents/core_tab_helper.cc
@@ -58,9 +58,7 @@
 }  // namespace
 
 CoreTabHelper::CoreTabHelper(WebContents* web_contents)
-    : content::WebContentsObserver(web_contents),
-      content_restrictions_(0),
-      weak_factory_(this) {}
+    : content::WebContentsObserver(web_contents), content_restrictions_(0) {}
 
 CoreTabHelper::~CoreTabHelper() {}
 
diff --git a/chrome/browser/ui/tab_contents/core_tab_helper.h b/chrome/browser/ui/tab_contents/core_tab_helper.h
index b418c7e..4ee6f9b 100644
--- a/chrome/browser/ui/tab_contents/core_tab_helper.h
+++ b/chrome/browser/ui/tab_contents/core_tab_helper.h
@@ -70,7 +70,7 @@
   // (full-page plugins for now only) permissions.
   int content_restrictions_;
 
-  base::WeakPtrFactory<CoreTabHelper> weak_factory_;
+  base::WeakPtrFactory<CoreTabHelper> weak_factory_{this};
 
   WEB_CONTENTS_USER_DATA_KEY_DECL();
 
diff --git a/chrome/browser/ui/tab_ui_helper.cc b/chrome/browser/ui/tab_ui_helper.cc
index 2d912ca..fd29eda 100644
--- a/chrome/browser/ui/tab_ui_helper.cc
+++ b/chrome/browser/ui/tab_ui_helper.cc
@@ -34,7 +34,7 @@
     : title(FormatUrlToSubdomain(url)), favicon(favicon::GetDefaultFavicon()) {}
 
 TabUIHelper::TabUIHelper(content::WebContents* contents)
-    : WebContentsObserver(contents), weak_ptr_factory_(this) {}
+    : WebContentsObserver(contents) {}
 TabUIHelper::~TabUIHelper() {}
 
 base::string16 TabUIHelper::GetTitle() const {
diff --git a/chrome/browser/ui/tab_ui_helper.h b/chrome/browser/ui/tab_ui_helper.h
index 6093dedc..e166b75 100644
--- a/chrome/browser/ui/tab_ui_helper.h
+++ b/chrome/browser/ui/tab_ui_helper.h
@@ -80,7 +80,7 @@
   // navigation when the tab is opened in background.
   std::unique_ptr<TabUIData> tab_ui_data_;
   base::CancelableTaskTracker favicon_tracker_;
-  base::WeakPtrFactory<TabUIHelper> weak_ptr_factory_;
+  base::WeakPtrFactory<TabUIHelper> weak_ptr_factory_{this};
 
   WEB_CONTENTS_USER_DATA_KEY_DECL();
 
diff --git a/chrome/browser/ui/tabs/hover_tab_selector.cc b/chrome/browser/ui/tabs/hover_tab_selector.cc
index 7acd42e3..63691f6 100644
--- a/chrome/browser/ui/tabs/hover_tab_selector.cc
+++ b/chrome/browser/ui/tabs/hover_tab_selector.cc
@@ -11,11 +11,8 @@
 #include "base/threading/thread_task_runner_handle.h"
 #include "chrome/browser/ui/tabs/tab_strip_model.h"
 
-HoverTabSelector::HoverTabSelector(
-    TabStripModel* tab_strip_model)
-    : tab_strip_model_(tab_strip_model),
-      tab_transition_tab_index_(-1),
-      weak_factory_(this) {
+HoverTabSelector::HoverTabSelector(TabStripModel* tab_strip_model)
+    : tab_strip_model_(tab_strip_model), tab_transition_tab_index_(-1) {
   DCHECK(tab_strip_model_);
 }
 
diff --git a/chrome/browser/ui/tabs/hover_tab_selector.h b/chrome/browser/ui/tabs/hover_tab_selector.h
index 550ba94..5fa4cf75 100644
--- a/chrome/browser/ui/tabs/hover_tab_selector.h
+++ b/chrome/browser/ui/tabs/hover_tab_selector.h
@@ -37,7 +37,7 @@
   int tab_transition_tab_index_;
 
   // Factory for creating tab transition tasks.
-  base::WeakPtrFactory<HoverTabSelector> weak_factory_;
+  base::WeakPtrFactory<HoverTabSelector> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(HoverTabSelector);
 };
diff --git a/chrome/browser/ui/tabs/tab_strip_model.cc b/chrome/browser/ui/tabs/tab_strip_model.cc
index 01a8068d..89f36fd 100644
--- a/chrome/browser/ui/tabs/tab_strip_model.cc
+++ b/chrome/browser/ui/tabs/tab_strip_model.cc
@@ -287,7 +287,7 @@
 // TabStripModel, public:
 
 TabStripModel::TabStripModel(TabStripModelDelegate* delegate, Profile* profile)
-    : delegate_(delegate), profile_(profile), weak_factory_(this) {
+    : delegate_(delegate), profile_(profile) {
   DCHECK(delegate_);
   order_controller_.reset(new TabStripModelOrderController(this));
 
diff --git a/chrome/browser/ui/tabs/tab_strip_model.h b/chrome/browser/ui/tabs/tab_strip_model.h
index 1299037..056cba0 100644
--- a/chrome/browser/ui/tabs/tab_strip_model.h
+++ b/chrome/browser/ui/tabs/tab_strip_model.h
@@ -709,7 +709,7 @@
   // |tab_scrubbing_interval_timer_|.
   size_t tabs_scrubbed_by_key_press_count_ = 0;
 
-  base::WeakPtrFactory<TabStripModel> weak_factory_;
+  base::WeakPtrFactory<TabStripModel> weak_factory_{this};
 
   DISALLOW_IMPLICIT_CONSTRUCTORS(TabStripModel);
 };
diff --git a/chrome/browser/ui/toolbar/media_router_action_controller.cc b/chrome/browser/ui/toolbar/media_router_action_controller.cc
index cda871f..3cb20eb 100644
--- a/chrome/browser/ui/toolbar/media_router_action_controller.cc
+++ b/chrome/browser/ui/toolbar/media_router_action_controller.cc
@@ -138,8 +138,7 @@
       media_router::MediaRoutesObserver(router),
       profile_(profile),
       shown_by_policy_(
-          MediaRouterActionController::IsActionShownByPolicy(profile)),
-      weak_factory_(this) {
+          MediaRouterActionController::IsActionShownByPolicy(profile)) {
   CHECK(profile_);
   media_router::IssuesObserver::Init();
   pref_change_registrar_.Init(profile->GetPrefs());
diff --git a/chrome/browser/ui/toolbar/media_router_action_controller.h b/chrome/browser/ui/toolbar/media_router_action_controller.h
index 9faad405..6b69e50 100644
--- a/chrome/browser/ui/toolbar/media_router_action_controller.h
+++ b/chrome/browser/ui/toolbar/media_router_action_controller.h
@@ -125,7 +125,7 @@
 
   base::ObserverList<Observer>::Unchecked observers_;
 
-  base::WeakPtrFactory<MediaRouterActionController> weak_factory_;
+  base::WeakPtrFactory<MediaRouterActionController> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(MediaRouterActionController);
 };
diff --git a/chrome/browser/ui/toolbar/toolbar_actions_bar.cc b/chrome/browser/ui/toolbar/toolbar_actions_bar.cc
index 196bf75..ed2241b 100644
--- a/chrome/browser/ui/toolbar/toolbar_actions_bar.cc
+++ b/chrome/browser/ui/toolbar/toolbar_actions_bar.cc
@@ -110,8 +110,7 @@
       popped_out_action_(nullptr),
       is_popped_out_sticky_(false),
       is_showing_bubble_(false),
-      tab_strip_observer_(this),
-      weak_ptr_factory_(this) {
+      tab_strip_observer_(this) {
   if (model_)  // |model_| can be null in unittests.
     model_observer_.Add(model_);
 
diff --git a/chrome/browser/ui/toolbar/toolbar_actions_bar.h b/chrome/browser/ui/toolbar/toolbar_actions_bar.h
index 8ceb350c..0ab6ac5 100644
--- a/chrome/browser/ui/toolbar/toolbar_actions_bar.h
+++ b/chrome/browser/ui/toolbar/toolbar_actions_bar.h
@@ -365,7 +365,7 @@
 
   base::ObserverList<ToolbarActionsBarObserver>::Unchecked observers_;
 
-  base::WeakPtrFactory<ToolbarActionsBar> weak_ptr_factory_;
+  base::WeakPtrFactory<ToolbarActionsBar> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(ToolbarActionsBar);
 };
diff --git a/chrome/browser/ui/toolbar/toolbar_actions_model.cc b/chrome/browser/ui/toolbar/toolbar_actions_model.cc
index ed537f5..2f91fd54 100644
--- a/chrome/browser/ui/toolbar/toolbar_actions_model.cc
+++ b/chrome/browser/ui/toolbar/toolbar_actions_model.cc
@@ -56,8 +56,7 @@
       has_active_bubble_(false),
       extension_action_observer_(this),
       extension_registry_observer_(this),
-      load_error_reporter_observer_(this),
-      weak_ptr_factory_(this) {
+      load_error_reporter_observer_(this) {
   extensions::ExtensionSystem::Get(profile_)->ready().Post(
       FROM_HERE, base::BindOnce(&ToolbarActionsModel::OnReady,
                                 weak_ptr_factory_.GetWeakPtr()));
diff --git a/chrome/browser/ui/toolbar/toolbar_actions_model.h b/chrome/browser/ui/toolbar/toolbar_actions_model.h
index 3264895..72bca3c 100644
--- a/chrome/browser/ui/toolbar/toolbar_actions_model.h
+++ b/chrome/browser/ui/toolbar/toolbar_actions_model.h
@@ -333,7 +333,7 @@
                  extensions::LoadErrorReporter::Observer>
       load_error_reporter_observer_;
 
-  base::WeakPtrFactory<ToolbarActionsModel> weak_ptr_factory_;
+  base::WeakPtrFactory<ToolbarActionsModel> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(ToolbarActionsModel);
 };
diff --git a/chrome/browser/ui/unload_controller.cc b/chrome/browser/ui/unload_controller.cc
index e48d8fd8..e736aab 100644
--- a/chrome/browser/ui/unload_controller.cc
+++ b/chrome/browser/ui/unload_controller.cc
@@ -29,9 +29,7 @@
 // UnloadController, public:
 
 UnloadController::UnloadController(Browser* browser)
-    : browser_(browser),
-      is_attempting_to_close_browser_(false),
-      weak_factory_(this) {
+    : browser_(browser), is_attempting_to_close_browser_(false) {
   browser_->tab_strip_model()->AddObserver(this);
 }
 
diff --git a/chrome/browser/ui/unload_controller.h b/chrome/browser/ui/unload_controller.h
index f067acc..23f7bc8 100644
--- a/chrome/browser/ui/unload_controller.h
+++ b/chrome/browser/ui/unload_controller.h
@@ -150,7 +150,7 @@
   // are currently confirming that the browser is closable.
   base::Callback<void(bool)> on_close_confirmed_;
 
-  base::WeakPtrFactory<UnloadController> weak_factory_;
+  base::WeakPtrFactory<UnloadController> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(UnloadController);
 };
diff --git a/chrome/browser/ui/views/apps/app_info_dialog/app_info_footer_panel.cc b/chrome/browser/ui/views/apps/app_info_dialog/app_info_footer_panel.cc
index 768f0c1d..0dfeccf 100644
--- a/chrome/browser/ui/views/apps/app_info_dialog/app_info_footer_panel.cc
+++ b/chrome/browser/ui/views/apps/app_info_dialog/app_info_footer_panel.cc
@@ -31,8 +31,7 @@
 
 AppInfoFooterPanel::AppInfoFooterPanel(Profile* profile,
                                        const extensions::Extension* app)
-    : AppInfoPanel(profile, app),
-      weak_ptr_factory_(this) {
+    : AppInfoPanel(profile, app) {
   ChromeLayoutProvider* provider = ChromeLayoutProvider::Get();
 
   SetLayoutManager(std::make_unique<views::BoxLayout>(
diff --git a/chrome/browser/ui/views/apps/app_info_dialog/app_info_footer_panel.h b/chrome/browser/ui/views/apps/app_info_dialog/app_info_footer_panel.h
index 6802272..688e172 100644
--- a/chrome/browser/ui/views/apps/app_info_dialog/app_info_footer_panel.h
+++ b/chrome/browser/ui/views/apps/app_info_dialog/app_info_footer_panel.h
@@ -89,7 +89,7 @@
   std::unique_ptr<extensions::ExtensionUninstallDialog>
       extension_uninstall_dialog_;
 
-  base::WeakPtrFactory<AppInfoFooterPanel> weak_ptr_factory_;
+  base::WeakPtrFactory<AppInfoFooterPanel> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(AppInfoFooterPanel);
 };
diff --git a/chrome/browser/ui/views/apps/app_info_dialog/app_info_header_panel.cc b/chrome/browser/ui/views/apps/app_info_dialog/app_info_header_panel.cc
index 5edf371..577fae3 100644
--- a/chrome/browser/ui/views/apps/app_info_dialog/app_info_header_panel.cc
+++ b/chrome/browser/ui/views/apps/app_info_dialog/app_info_header_panel.cc
@@ -48,8 +48,7 @@
 
 AppInfoHeaderPanel::AppInfoHeaderPanel(Profile* profile,
                                        const extensions::Extension* app)
-    : AppInfoPanel(profile, app),
-      weak_ptr_factory_(this) {
+    : AppInfoPanel(profile, app) {
   ChromeLayoutProvider* provider = ChromeLayoutProvider::Get();
 
   SetLayoutManager(std::make_unique<views::BoxLayout>(
diff --git a/chrome/browser/ui/views/apps/app_info_dialog/app_info_header_panel.h b/chrome/browser/ui/views/apps/app_info_dialog/app_info_header_panel.h
index 6d541f87..9a4ecc3 100644
--- a/chrome/browser/ui/views/apps/app_info_dialog/app_info_header_panel.h
+++ b/chrome/browser/ui/views/apps/app_info_dialog/app_info_header_panel.h
@@ -58,7 +58,7 @@
 
   std::unique_ptr<extensions::ChromeAppIcon> app_icon_;
 
-  base::WeakPtrFactory<AppInfoHeaderPanel> weak_ptr_factory_;
+  base::WeakPtrFactory<AppInfoHeaderPanel> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(AppInfoHeaderPanel);
 };
diff --git a/chrome/browser/ui/views/apps/app_info_dialog/app_info_summary_panel.cc b/chrome/browser/ui/views/apps/app_info_dialog/app_info_summary_panel.cc
index e344830..f882522 100644
--- a/chrome/browser/ui/views/apps/app_info_dialog/app_info_summary_panel.cc
+++ b/chrome/browser/ui/views/apps/app_info_dialog/app_info_summary_panel.cc
@@ -99,11 +99,10 @@
 AppInfoSummaryPanel::AppInfoSummaryPanel(Profile* profile,
                                          const extensions::Extension* app)
     : AppInfoPanel(profile, app),
-      size_value_(NULL),
-      homepage_link_(NULL),
-      licenses_link_(NULL),
-      launch_options_combobox_(NULL),
-      weak_ptr_factory_(this) {
+      size_value_(nullptr),
+      homepage_link_(nullptr),
+      licenses_link_(nullptr),
+      launch_options_combobox_(nullptr) {
   SetLayoutManager(std::make_unique<views::BoxLayout>(
       views::BoxLayout::Orientation::kVertical, gfx::Insets(),
       ChromeLayoutProvider::Get()->GetDistanceMetric(
diff --git a/chrome/browser/ui/views/apps/app_info_dialog/app_info_summary_panel.h b/chrome/browser/ui/views/apps/app_info_dialog/app_info_summary_panel.h
index f370929c..0132f8ff 100644
--- a/chrome/browser/ui/views/apps/app_info_dialog/app_info_summary_panel.h
+++ b/chrome/browser/ui/views/apps/app_info_dialog/app_info_summary_panel.h
@@ -86,7 +86,7 @@
   std::unique_ptr<LaunchOptionsComboboxModel> launch_options_combobox_model_;
   views::Combobox* launch_options_combobox_;
 
-  base::WeakPtrFactory<AppInfoSummaryPanel> weak_ptr_factory_;
+  base::WeakPtrFactory<AppInfoSummaryPanel> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(AppInfoSummaryPanel);
 };
diff --git a/chrome/browser/ui/views/autofill/autofill_popup_base_view.cc b/chrome/browser/ui/views/autofill/autofill_popup_base_view.cc
index c749627a..65b533c 100644
--- a/chrome/browser/ui/views/autofill/autofill_popup_base_view.cc
+++ b/chrome/browser/ui/views/autofill/autofill_popup_base_view.cc
@@ -59,9 +59,7 @@
 AutofillPopupBaseView::AutofillPopupBaseView(
     AutofillPopupViewDelegate* delegate,
     views::Widget* parent_widget)
-    : delegate_(delegate),
-      parent_widget_(parent_widget),
-      weak_ptr_factory_(this) {}
+    : delegate_(delegate), parent_widget_(parent_widget) {}
 
 AutofillPopupBaseView::~AutofillPopupBaseView() {
   if (delegate_) {
diff --git a/chrome/browser/ui/views/autofill/autofill_popup_base_view.h b/chrome/browser/ui/views/autofill/autofill_popup_base_view.h
index a77786a..4974e11 100644
--- a/chrome/browser/ui/views/autofill/autofill_popup_base_view.h
+++ b/chrome/browser/ui/views/autofill/autofill_popup_base_view.h
@@ -110,7 +110,7 @@
   // The time when the popup was shown.
   base::Time show_time_;
 
-  base::WeakPtrFactory<AutofillPopupBaseView> weak_ptr_factory_;
+  base::WeakPtrFactory<AutofillPopupBaseView> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(AutofillPopupBaseView);
 };
diff --git a/chrome/browser/ui/views/autofill/payments/card_unmask_prompt_views.cc b/chrome/browser/ui/views/autofill/payments/card_unmask_prompt_views.cc
index 0d5cadc..fe8b16a 100644
--- a/chrome/browser/ui/views/autofill/payments/card_unmask_prompt_views.cc
+++ b/chrome/browser/ui/views/autofill/payments/card_unmask_prompt_views.cc
@@ -70,9 +70,7 @@
 CardUnmaskPromptViews::CardUnmaskPromptViews(
     CardUnmaskPromptController* controller,
     content::WebContents* web_contents)
-    : controller_(controller),
-      web_contents_(web_contents),
-      weak_ptr_factory_(this) {
+    : controller_(controller), web_contents_(web_contents) {
   chrome::RecordDialogCreation(chrome::DialogIdentifier::CARD_UNMASK);
 }
 
diff --git a/chrome/browser/ui/views/autofill/payments/card_unmask_prompt_views.h b/chrome/browser/ui/views/autofill/payments/card_unmask_prompt_views.h
index 77e1926d..ab7d494a 100644
--- a/chrome/browser/ui/views/autofill/payments/card_unmask_prompt_views.h
+++ b/chrome/browser/ui/views/autofill/payments/card_unmask_prompt_views.h
@@ -118,7 +118,7 @@
   views::Label* overlay_label_ = nullptr;
   views::Throbber* progress_throbber_ = nullptr;
 
-  base::WeakPtrFactory<CardUnmaskPromptViews> weak_ptr_factory_;
+  base::WeakPtrFactory<CardUnmaskPromptViews> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(CardUnmaskPromptViews);
 };
diff --git a/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc b/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc
index 4303e9b4..f3206b75 100644
--- a/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc
+++ b/chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc
@@ -533,8 +533,7 @@
       infobar_visible_(false),
       size_animation_(this),
       throbbing_view_(nullptr),
-      bookmark_bar_state_(BookmarkBar::SHOW),
-      show_folder_method_factory_(this) {
+      bookmark_bar_state_(BookmarkBar::SHOW) {
   SetID(VIEW_ID_BOOKMARK_BAR);
   Init();
 
diff --git a/chrome/browser/ui/views/bookmarks/bookmark_bar_view.h b/chrome/browser/ui/views/bookmarks/bookmark_bar_view.h
index dc3b518..f474142 100644
--- a/chrome/browser/ui/views/bookmarks/bookmark_bar_view.h
+++ b/chrome/browser/ui/views/bookmarks/bookmark_bar_view.h
@@ -438,7 +438,7 @@
   base::ObserverList<BookmarkBarViewObserver>::Unchecked observers_;
 
   // Factory used to delay showing of the drop menu.
-  base::WeakPtrFactory<BookmarkBarView> show_folder_method_factory_;
+  base::WeakPtrFactory<BookmarkBarView> show_folder_method_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(BookmarkBarView);
 };
diff --git a/chrome/browser/ui/views/bookmarks/bookmark_drag_drop_views.cc b/chrome/browser/ui/views/bookmarks/bookmark_drag_drop_views.cc
index d1027b5..bf4573a 100644
--- a/chrome/browser/ui/views/bookmarks/bookmark_drag_drop_views.cc
+++ b/chrome/browser/ui/views/bookmarks/bookmark_drag_drop_views.cc
@@ -177,8 +177,7 @@
         start_point_(params.start_point),
         do_drag_callback_(std::move(do_drag_callback)),
         drag_data_(std::make_unique<ui::OSExchangeData>()),
-        observer_(this),
-        weak_factory_(this) {
+        observer_(this) {
     observer_.Add(model_);
 
     // Set up our OLE machinery.
@@ -273,7 +272,7 @@
   ScopedObserver<bookmarks::BookmarkModel, bookmarks::BookmarkModelObserver>
       observer_;
 
-  base::WeakPtrFactory<BookmarkDragHelper> weak_factory_;
+  base::WeakPtrFactory<BookmarkDragHelper> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(BookmarkDragHelper);
 };
diff --git a/chrome/browser/ui/views/create_application_shortcut_view.cc b/chrome/browser/ui/views/create_application_shortcut_view.cc
index 5799a15..54db863 100644
--- a/chrome/browser/ui/views/create_application_shortcut_view.cc
+++ b/chrome/browser/ui/views/create_application_shortcut_view.cc
@@ -43,9 +43,7 @@
     Profile* profile,
     const extensions::Extension* app,
     const base::Callback<void(bool)>& close_callback)
-    : profile_(profile),
-      close_callback_(close_callback),
-      weak_ptr_factory_(this) {
+    : profile_(profile), close_callback_(close_callback) {
   set_margins(ChromeLayoutProvider::Get()->GetDialogInsetsForContentType(
       views::TEXT, views::TEXT));
   InitControls();
diff --git a/chrome/browser/ui/views/create_application_shortcut_view.h b/chrome/browser/ui/views/create_application_shortcut_view.h
index ece18c4..9402472c 100644
--- a/chrome/browser/ui/views/create_application_shortcut_view.h
+++ b/chrome/browser/ui/views/create_application_shortcut_view.h
@@ -72,7 +72,8 @@
   // Target shortcut and file handler info.
   std::unique_ptr<web_app::ShortcutInfo> shortcut_info_;
 
-  base::WeakPtrFactory<CreateChromeApplicationShortcutView> weak_ptr_factory_;
+  base::WeakPtrFactory<CreateChromeApplicationShortcutView> weak_ptr_factory_{
+      this};
 
   DISALLOW_COPY_AND_ASSIGN(CreateChromeApplicationShortcutView);
 };
diff --git a/chrome/browser/ui/views/download/download_item_view.cc b/chrome/browser/ui/views/download/download_item_view.cc
index 7f202a2..69f2f63b 100644
--- a/chrome/browser/ui/views/download/download_item_view.cc
+++ b/chrome/browser/ui/views/download/download_item_view.cc
@@ -156,8 +156,7 @@
       creation_time_(base::Time::Now()),
       time_download_warning_shown_(base::Time()),
       accessible_alert_(accessible_alert),
-      announce_accessible_alert_soon_(false),
-      weak_ptr_factory_(this) {
+      announce_accessible_alert_soon_(false) {
   SetInkDropMode(InkDropMode::ON_NO_GESTURE_HANDLER);
   model_->AddObserver(this);
   set_context_menu_controller(this);
diff --git a/chrome/browser/ui/views/download/download_item_view.h b/chrome/browser/ui/views/download/download_item_view.h
index 5975013..f04c238 100644
--- a/chrome/browser/ui/views/download/download_item_view.h
+++ b/chrome/browser/ui/views/download/download_item_view.h
@@ -408,7 +408,7 @@
 
   // Method factory used to delay reenabling of the item when opening the
   // downloaded file.
-  base::WeakPtrFactory<DownloadItemView> weak_ptr_factory_;
+  base::WeakPtrFactory<DownloadItemView> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(DownloadItemView);
 };
diff --git a/chrome/browser/ui/views/elevation_icon_setter.cc b/chrome/browser/ui/views/elevation_icon_setter.cc
index b996c0b0..e90f6ca 100644
--- a/chrome/browser/ui/views/elevation_icon_setter.cc
+++ b/chrome/browser/ui/views/elevation_icon_setter.cc
@@ -59,7 +59,7 @@
 
 ElevationIconSetter::ElevationIconSetter(views::LabelButton* button,
                                          base::OnceClosure callback)
-    : button_(button), weak_factory_(this) {
+    : button_(button) {
 #if defined(OS_WIN)
   base::PostTaskAndReplyWithResult(
       base::CreateCOMSTATaskRunnerWithTraits(
diff --git a/chrome/browser/ui/views/elevation_icon_setter.h b/chrome/browser/ui/views/elevation_icon_setter.h
index 848cdc9c..c1c9177 100644
--- a/chrome/browser/ui/views/elevation_icon_setter.h
+++ b/chrome/browser/ui/views/elevation_icon_setter.h
@@ -33,7 +33,7 @@
   void SetButtonIcon(base::OnceClosure callback, const SkBitmap& icon);
 
   views::LabelButton* button_;
-  base::WeakPtrFactory<ElevationIconSetter> weak_factory_;
+  base::WeakPtrFactory<ElevationIconSetter> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(ElevationIconSetter);
 };
diff --git a/chrome/browser/ui/views/frame/browser_root_view.cc b/chrome/browser/ui/views/frame/browser_root_view.cc
index a1b4920..78636592 100644
--- a/chrome/browser/ui/views/frame/browser_root_view.cc
+++ b/chrome/browser/ui/views/frame/browser_root_view.cc
@@ -105,9 +105,7 @@
 
 BrowserRootView::BrowserRootView(BrowserView* browser_view,
                                  views::Widget* widget)
-    : views::internal::RootView(widget),
-      browser_view_(browser_view),
-      weak_ptr_factory_(this) {}
+    : views::internal::RootView(widget), browser_view_(browser_view) {}
 
 BrowserRootView::~BrowserRootView() = default;
 
diff --git a/chrome/browser/ui/views/frame/browser_root_view.h b/chrome/browser/ui/views/frame/browser_root_view.h
index 4684632..90565f26 100644
--- a/chrome/browser/ui/views/frame/browser_root_view.h
+++ b/chrome/browser/ui/views/frame/browser_root_view.h
@@ -127,7 +127,7 @@
 
   std::unique_ptr<DropInfo> drop_info_;
 
-  base::WeakPtrFactory<BrowserRootView> weak_ptr_factory_;
+  base::WeakPtrFactory<BrowserRootView> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(BrowserRootView);
 };
diff --git a/chrome/browser/ui/views/frame/global_menu_bar_x11.cc b/chrome/browser/ui/views/frame/global_menu_bar_x11.cc
index 7c0b35e..0f0816a 100644
--- a/chrome/browser/ui/views/frame/global_menu_bar_x11.cc
+++ b/chrome/browser/ui/views/frame/global_menu_bar_x11.cc
@@ -335,8 +335,7 @@
       profiles_menu_(nullptr),
       top_sites_(nullptr),
       tab_restore_service_(nullptr),
-      scoped_observer_(this),
-      weak_ptr_factory_(this) {
+      scoped_observer_(this) {
   EnsureMethodsLoaded();
 
   if (server_new)
diff --git a/chrome/browser/ui/views/frame/global_menu_bar_x11.h b/chrome/browser/ui/views/frame/global_menu_bar_x11.h
index 88110d2b..fdc8bdd 100644
--- a/chrome/browser/ui/views/frame/global_menu_bar_x11.h
+++ b/chrome/browser/ui/views/frame/global_menu_bar_x11.h
@@ -184,7 +184,7 @@
   ScopedObserver<history::TopSites, history::TopSitesObserver> scoped_observer_;
 
   // For callbacks may be run after destruction.
-  base::WeakPtrFactory<GlobalMenuBarX11> weak_ptr_factory_;
+  base::WeakPtrFactory<GlobalMenuBarX11> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(GlobalMenuBarX11);
 };
diff --git a/chrome/browser/ui/views/ime/ime_warning_bubble_view.cc b/chrome/browser/ui/views/ime/ime_warning_bubble_view.cc
index bce1064..d06e533 100644
--- a/chrome/browser/ui/views/ime/ime_warning_bubble_view.cc
+++ b/chrome/browser/ui/views/ime/ime_warning_bubble_view.cc
@@ -93,8 +93,7 @@
       browser_view_(browser_view),
       browser_(browser_view->browser()),
       response_callback_(callback),
-      toolbar_actions_bar_observer_(this),
-      weak_ptr_factory_(this) {
+      toolbar_actions_bar_observer_(this) {
   container_ = browser_view_->toolbar()->browser_actions();
   toolbar_actions_bar_ = container_->toolbar_actions_bar();
   BrowserList::AddObserver(this);
diff --git a/chrome/browser/ui/views/ime/ime_warning_bubble_view.h b/chrome/browser/ui/views/ime/ime_warning_bubble_view.h
index 3fb41336..6413178 100644
--- a/chrome/browser/ui/views/ime/ime_warning_bubble_view.h
+++ b/chrome/browser/ui/views/ime/ime_warning_bubble_view.h
@@ -94,7 +94,7 @@
   ScopedObserver<ToolbarActionsBar, ToolbarActionsBarObserver>
       toolbar_actions_bar_observer_;
 
-  base::WeakPtrFactory<ImeWarningBubbleView> weak_ptr_factory_;
+  base::WeakPtrFactory<ImeWarningBubbleView> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(ImeWarningBubbleView);
 };
diff --git a/chrome/browser/ui/views/media_router/cast_dialog_no_sinks_view.cc b/chrome/browser/ui/views/media_router/cast_dialog_no_sinks_view.cc
index 523abc1a..35d0875 100644
--- a/chrome/browser/ui/views/media_router/cast_dialog_no_sinks_view.cc
+++ b/chrome/browser/ui/views/media_router/cast_dialog_no_sinks_view.cc
@@ -36,7 +36,7 @@
 namespace media_router {
 
 CastDialogNoSinksView::CastDialogNoSinksView(Profile* profile)
-    : profile_(profile), weak_factory_(this) {
+    : profile_(profile) {
   SetLayoutManager(std::make_unique<views::BoxLayout>(
       views::BoxLayout::Orientation::kVertical));
   looking_for_sinks_view_ = CreateLookingForSinksView();
diff --git a/chrome/browser/ui/views/media_router/cast_dialog_no_sinks_view.h b/chrome/browser/ui/views/media_router/cast_dialog_no_sinks_view.h
index 8bcee39..ca6a7e36 100644
--- a/chrome/browser/ui/views/media_router/cast_dialog_no_sinks_view.h
+++ b/chrome/browser/ui/views/media_router/cast_dialog_no_sinks_view.h
@@ -51,7 +51,7 @@
 
   Profile* const profile_;
 
-  base::WeakPtrFactory<CastDialogNoSinksView> weak_factory_;
+  base::WeakPtrFactory<CastDialogNoSinksView> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(CastDialogNoSinksView);
 };
diff --git a/chrome/browser/ui/views/media_router/cast_dialog_view.cc b/chrome/browser/ui/views/media_router/cast_dialog_view.cc
index 371ee91..8edd34b 100644
--- a/chrome/browser/ui/views/media_router/cast_dialog_view.cc
+++ b/chrome/browser/ui/views/media_router/cast_dialog_view.cc
@@ -267,8 +267,7 @@
       selected_source_(SourceType::kTab),
       controller_(controller),
       profile_(profile),
-      metrics_(start_time),
-      weak_factory_(this) {
+      metrics_(start_time) {
   ShowNoSinksView();
 }
 
diff --git a/chrome/browser/ui/views/media_router/cast_dialog_view.h b/chrome/browser/ui/views/media_router/cast_dialog_view.h
index c50445c..fea1f2fb 100644
--- a/chrome/browser/ui/views/media_router/cast_dialog_view.h
+++ b/chrome/browser/ui/views/media_router/cast_dialog_view.h
@@ -242,7 +242,7 @@
   // When this is set to true, the dialog does not close on blur.
   bool keep_shown_for_testing_ = false;
 
-  base::WeakPtrFactory<CastDialogView> weak_factory_;
+  base::WeakPtrFactory<CastDialogView> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(CastDialogView);
 };
diff --git a/chrome/browser/ui/views/passwords/credentials_item_view.cc b/chrome/browser/ui/views/passwords/credentials_item_view.cc
index aeb1a9e..6c81f45 100644
--- a/chrome/browser/ui/views/passwords/credentials_item_view.cc
+++ b/chrome/browser/ui/views/passwords/credentials_item_view.cc
@@ -68,8 +68,7 @@
       upper_label_(nullptr),
       lower_label_(nullptr),
       info_icon_(nullptr),
-      hover_color_(hover_color),
-      weak_ptr_factory_(this) {
+      hover_color_(hover_color) {
   set_notify_enter_exit_on_child(true);
   // Create an image-view for the avatar. Make sure it ignores events so that
   // the parent can receive the events instead.
diff --git a/chrome/browser/ui/views/passwords/credentials_item_view.h b/chrome/browser/ui/views/passwords/credentials_item_view.h
index 60dd5f2..b95bc6a 100644
--- a/chrome/browser/ui/views/passwords/credentials_item_view.h
+++ b/chrome/browser/ui/views/passwords/credentials_item_view.h
@@ -68,7 +68,7 @@
 
   SkColor hover_color_;
 
-  base::WeakPtrFactory<CredentialsItemView> weak_ptr_factory_;
+  base::WeakPtrFactory<CredentialsItemView> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(CredentialsItemView);
 };
diff --git a/chrome/browser/ui/views/payments/cvc_unmask_view_controller.cc b/chrome/browser/ui/views/payments/cvc_unmask_view_controller.cc
index 2b04820..cdaaf3076 100644
--- a/chrome/browser/ui/views/payments/cvc_unmask_view_controller.cc
+++ b/chrome/browser/ui/views/payments/cvc_unmask_view_controller.cc
@@ -70,8 +70,7 @@
               ->IsOffTheRecord()),
       full_card_request_(this,
                          &payments_client_,
-                         state->GetPersonalDataManager()),
-      weak_ptr_factory_(this) {
+                         state->GetPersonalDataManager()) {
   full_card_request_.GetFullCard(
       credit_card,
       autofill::AutofillClient::UnmaskCardReason::UNMASK_FOR_PAYMENT_REQUEST,
diff --git a/chrome/browser/ui/views/payments/cvc_unmask_view_controller.h b/chrome/browser/ui/views/payments/cvc_unmask_view_controller.h
index 2530fb0..76ec94c 100644
--- a/chrome/browser/ui/views/payments/cvc_unmask_view_controller.h
+++ b/chrome/browser/ui/views/payments/cvc_unmask_view_controller.h
@@ -103,7 +103,7 @@
   autofill::payments::FullCardRequest full_card_request_;
   base::WeakPtr<autofill::CardUnmaskDelegate> unmask_delegate_;
 
-  base::WeakPtrFactory<CvcUnmaskViewController> weak_ptr_factory_;
+  base::WeakPtrFactory<CvcUnmaskViewController> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(CvcUnmaskViewController);
 };
diff --git a/chrome/browser/ui/views/policy/enterprise_startup_dialog_view.cc b/chrome/browser/ui/views/policy/enterprise_startup_dialog_view.cc
index 66ebda7a..ad90767c 100644
--- a/chrome/browser/ui/views/policy/enterprise_startup_dialog_view.cc
+++ b/chrome/browser/ui/views/policy/enterprise_startup_dialog_view.cc
@@ -65,8 +65,7 @@
 
 EnterpriseStartupDialogView::EnterpriseStartupDialogView(
     EnterpriseStartupDialog::DialogResultCallback callback)
-    : callback_(std::move(callback)),
-      weak_factory_(this) {
+    : callback_(std::move(callback)) {
   SetBorder(views::CreateEmptyBorder(GetDialogInsets()));
   CreateDialogWidget(this, nullptr, nullptr)->Show();
 #if defined(OS_MACOSX)
diff --git a/chrome/browser/ui/views/policy/enterprise_startup_dialog_view.h b/chrome/browser/ui/views/policy/enterprise_startup_dialog_view.h
index 8950ce1..391727d 100644
--- a/chrome/browser/ui/views/policy/enterprise_startup_dialog_view.h
+++ b/chrome/browser/ui/views/policy/enterprise_startup_dialog_view.h
@@ -65,7 +65,7 @@
   EnterpriseStartupDialog::DialogResultCallback callback_;
   bool can_show_browser_window_ = false;
 
-  base::WeakPtrFactory<EnterpriseStartupDialogView> weak_factory_;
+  base::WeakPtrFactory<EnterpriseStartupDialogView> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(EnterpriseStartupDialogView);
 };
diff --git a/chrome/browser/ui/views/send_tab_to_self/send_tab_to_self_bubble_view_impl.cc b/chrome/browser/ui/views/send_tab_to_self/send_tab_to_self_bubble_view_impl.cc
index f9bb3ca..6be9806 100644
--- a/chrome/browser/ui/views/send_tab_to_self/send_tab_to_self_bubble_view_impl.cc
+++ b/chrome/browser/ui/views/send_tab_to_self/send_tab_to_self_bubble_view_impl.cc
@@ -32,8 +32,7 @@
     SendTabToSelfBubbleController* controller)
     : LocationBarBubbleDelegateView(anchor_view, anchor_point, web_contents),
       web_contents_(web_contents),
-      controller_(controller),
-      weak_factory_(this) {
+      controller_(controller) {
   DCHECK(controller);
 }
 
diff --git a/chrome/browser/ui/views/send_tab_to_self/send_tab_to_self_bubble_view_impl.h b/chrome/browser/ui/views/send_tab_to_self/send_tab_to_self_bubble_view_impl.h
index b96a30f..ca50560 100644
--- a/chrome/browser/ui/views/send_tab_to_self/send_tab_to_self_bubble_view_impl.h
+++ b/chrome/browser/ui/views/send_tab_to_self/send_tab_to_self_bubble_view_impl.h
@@ -113,7 +113,7 @@
   // The device that the user has selected to share tab to.
   base::Optional<size_t> selected_device_index_;
 
-  base::WeakPtrFactory<SendTabToSelfBubbleViewImpl> weak_factory_;
+  base::WeakPtrFactory<SendTabToSelfBubbleViewImpl> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(SendTabToSelfBubbleViewImpl);
 };
diff --git a/chrome/browser/ui/views/ssl_client_certificate_selector.cc b/chrome/browser/ui/views/ssl_client_certificate_selector.cc
index 7f7ae00..5d65ddf7 100644
--- a/chrome/browser/ui/views/ssl_client_certificate_selector.cc
+++ b/chrome/browser/ui/views/ssl_client_certificate_selector.cc
@@ -88,8 +88,7 @@
       auth_observer_impl_(
           std::make_unique<SSLClientAuthObserverImpl>(web_contents,
                                                       cert_request_info,
-                                                      std::move(delegate))),
-      weak_factory_(this) {
+                                                      std::move(delegate))) {
   chrome::RecordDialogCreation(
       chrome::DialogIdentifier::SSL_CLIENT_CERTIFICATE_SELECTOR);
 }
diff --git a/chrome/browser/ui/views/ssl_client_certificate_selector.h b/chrome/browser/ui/views/ssl_client_certificate_selector.h
index 0dc5191..7410b341 100644
--- a/chrome/browser/ui/views/ssl_client_certificate_selector.h
+++ b/chrome/browser/ui/views/ssl_client_certificate_selector.h
@@ -52,7 +52,7 @@
 
   std::unique_ptr<SSLClientAuthObserverImpl> auth_observer_impl_;
 
-  base::WeakPtrFactory<SSLClientCertificateSelector> weak_factory_;
+  base::WeakPtrFactory<SSLClientCertificateSelector> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(SSLClientCertificateSelector);
 };
diff --git a/chrome/browser/ui/views/status_icons/status_icon_linux_dbus.cc b/chrome/browser/ui/views/status_icons/status_icon_linux_dbus.cc
index 90608e1..898887e 100644
--- a/chrome/browser/ui/views/status_icons/status_icon_linux_dbus.cc
+++ b/chrome/browser/ui/views/status_icons/status_icon_linux_dbus.cc
@@ -141,8 +141,7 @@
 
 }  // namespace
 
-StatusIconLinuxDbus::StatusIconLinuxDbus()
-    : bus_(CreateBus()), weak_factory_(this) {
+StatusIconLinuxDbus::StatusIconLinuxDbus() : bus_(CreateBus()) {
   CheckStatusNotifierWatcherHasOwner();
 }
 
diff --git a/chrome/browser/ui/views/status_icons/status_icon_linux_dbus.h b/chrome/browser/ui/views/status_icons/status_icon_linux_dbus.h
index fc2608d..bd15a50 100644
--- a/chrome/browser/ui/views/status_icons/status_icon_linux_dbus.h
+++ b/chrome/browser/ui/views/status_icons/status_icon_linux_dbus.h
@@ -111,7 +111,7 @@
   // our own menu.
   std::unique_ptr<views::MenuRunner> menu_runner_;
 
-  base::WeakPtrFactory<StatusIconLinuxDbus> weak_factory_;
+  base::WeakPtrFactory<StatusIconLinuxDbus> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(StatusIconLinuxDbus);
 };
diff --git a/chrome/browser/ui/views/tabs/tab_drag_controller.cc b/chrome/browser/ui/views/tabs/tab_drag_controller.cc
index f54d2d3..ad42f3f 100644
--- a/chrome/browser/ui/views/tabs/tab_drag_controller.cc
+++ b/chrome/browser/ui/views/tabs/tab_drag_controller.cc
@@ -403,8 +403,7 @@
       move_loop_widget_(NULL),
       is_mutating_(false),
       attach_x_(-1),
-      attach_index_(-1),
-      weak_factory_(this) {
+      attach_index_(-1) {
   g_tab_drag_controller = this;
 }
 
diff --git a/chrome/browser/ui/views/tabs/tab_drag_controller.h b/chrome/browser/ui/views/tabs/tab_drag_controller.h
index d37d756..0bb03cf 100644
--- a/chrome/browser/ui/views/tabs/tab_drag_controller.h
+++ b/chrome/browser/ui/views/tabs/tab_drag_controller.h
@@ -656,7 +656,7 @@
 
   std::unique_ptr<WindowFinder> window_finder_;
 
-  base::WeakPtrFactory<TabDragController> weak_factory_;
+  base::WeakPtrFactory<TabDragController> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(TabDragController);
 };
diff --git a/chrome/browser/ui/views/toolbar/toolbar_button.cc b/chrome/browser/ui/views/toolbar/toolbar_button.cc
index 8f95492..1dd3ed0 100644
--- a/chrome/browser/ui/views/toolbar/toolbar_button.cc
+++ b/chrome/browser/ui/views/toolbar/toolbar_button.cc
@@ -46,8 +46,7 @@
     : views::LabelButton(listener, base::string16(), CONTEXT_TOOLBAR_BUTTON),
       model_(std::move(model)),
       tab_strip_model_(tab_strip_model),
-      trigger_menu_on_long_press_(trigger_menu_on_long_press),
-      show_menu_factory_(this) {
+      trigger_menu_on_long_press_(trigger_menu_on_long_press) {
   set_has_ink_drop_action_on_click(true);
   set_context_menu_controller(this);
 
diff --git a/chrome/browser/ui/views/toolbar/toolbar_button.h b/chrome/browser/ui/views/toolbar/toolbar_button.h
index 8bcd8d27..aa5cb62 100644
--- a/chrome/browser/ui/views/toolbar/toolbar_button.h
+++ b/chrome/browser/ui/views/toolbar/toolbar_button.h
@@ -166,7 +166,7 @@
   std::unique_ptr<views::InstallableInkDrop> installable_ink_drop_;
 
   // A factory for tasks that show the dropdown context menu for the button.
-  base::WeakPtrFactory<ToolbarButton> show_menu_factory_;
+  base::WeakPtrFactory<ToolbarButton> show_menu_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(ToolbarButton);
 };
diff --git a/chrome/browser/ui/webui/bluetooth_internals/bluetooth_internals_handler.cc b/chrome/browser/ui/webui/bluetooth_internals/bluetooth_internals_handler.cc
index 62ed38c..a65ef86a 100644
--- a/chrome/browser/ui/webui/bluetooth_internals/bluetooth_internals_handler.cc
+++ b/chrome/browser/ui/webui/bluetooth_internals/bluetooth_internals_handler.cc
@@ -15,7 +15,7 @@
 
 BluetoothInternalsHandler::BluetoothInternalsHandler(
     mojom::BluetoothInternalsHandlerRequest request)
-    : binding_(this, std::move(request)), weak_ptr_factory_(this) {}
+    : binding_(this, std::move(request)) {}
 
 BluetoothInternalsHandler::~BluetoothInternalsHandler() {}
 
diff --git a/chrome/browser/ui/webui/bluetooth_internals/bluetooth_internals_handler.h b/chrome/browser/ui/webui/bluetooth_internals/bluetooth_internals_handler.h
index 59cf500..3de443d 100644
--- a/chrome/browser/ui/webui/bluetooth_internals/bluetooth_internals_handler.h
+++ b/chrome/browser/ui/webui/bluetooth_internals/bluetooth_internals_handler.h
@@ -26,7 +26,7 @@
                     scoped_refptr<device::BluetoothAdapter> adapter);
 
   mojo::Binding<mojom::BluetoothInternalsHandler> binding_;
-  base::WeakPtrFactory<BluetoothInternalsHandler> weak_ptr_factory_;
+  base::WeakPtrFactory<BluetoothInternalsHandler> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(BluetoothInternalsHandler);
 };
diff --git a/chrome/browser/ui/webui/certificates_handler.cc b/chrome/browser/ui/webui/certificates_handler.cc
index a2a09b2..9db6be9b 100644
--- a/chrome/browser/ui/webui/certificates_handler.cc
+++ b/chrome/browser/ui/webui/certificates_handler.cc
@@ -287,8 +287,7 @@
 CertificatesHandler::CertificatesHandler()
     : requested_certificate_manager_model_(false),
       use_hardware_backed_(false),
-      file_access_provider_(base::MakeRefCounted<FileAccessProvider>()),
-      weak_ptr_factory_(this) {}
+      file_access_provider_(base::MakeRefCounted<FileAccessProvider>()) {}
 
 CertificatesHandler::~CertificatesHandler() {}
 
diff --git a/chrome/browser/ui/webui/certificates_handler.h b/chrome/browser/ui/webui/certificates_handler.h
index 1ae3da8a..8a688f13 100644
--- a/chrome/browser/ui/webui/certificates_handler.h
+++ b/chrome/browser/ui/webui/certificates_handler.h
@@ -214,7 +214,7 @@
   base::IDMap<std::unique_ptr<CertificateManagerModel::CertInfo>>
       cert_info_id_map_;
 
-  base::WeakPtrFactory<CertificatesHandler> weak_ptr_factory_;
+  base::WeakPtrFactory<CertificatesHandler> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(CertificatesHandler);
 };
diff --git a/chrome/browser/ui/webui/domain_reliability_internals_ui.cc b/chrome/browser/ui/webui/domain_reliability_internals_ui.cc
index e0976b8..148a714 100644
--- a/chrome/browser/ui/webui/domain_reliability_internals_ui.cc
+++ b/chrome/browser/ui/webui/domain_reliability_internals_ui.cc
@@ -16,7 +16,7 @@
 
 DomainReliabilityInternalsUI::DomainReliabilityInternalsUI(
     content::WebUI* web_ui)
-    : content::WebUIController(web_ui), weak_factory_(this) {
+    : content::WebUIController(web_ui) {
   content::WebUIDataSource* html_source = content::WebUIDataSource::Create(
       chrome::kChromeUIDomainReliabilityInternalsHost);
   html_source->OverrideContentSecurityPolicyScriptSrc(
diff --git a/chrome/browser/ui/webui/domain_reliability_internals_ui.h b/chrome/browser/ui/webui/domain_reliability_internals_ui.h
index 62436b5..384474ea 100644
--- a/chrome/browser/ui/webui/domain_reliability_internals_ui.h
+++ b/chrome/browser/ui/webui/domain_reliability_internals_ui.h
@@ -26,7 +26,7 @@
   void UpdateData(const base::ListValue* args);
   void OnDataUpdated(base::Value data) const;
 
-  base::WeakPtrFactory<DomainReliabilityInternalsUI> weak_factory_;
+  base::WeakPtrFactory<DomainReliabilityInternalsUI> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(DomainReliabilityInternalsUI);
 };
diff --git a/chrome/browser/ui/webui/download_internals/download_internals_ui_message_handler.cc b/chrome/browser/ui/webui/download_internals/download_internals_ui_message_handler.cc
index 5c2ef62..eb6d5d6 100644
--- a/chrome/browser/ui/webui/download_internals/download_internals_ui_message_handler.cc
+++ b/chrome/browser/ui/webui/download_internals/download_internals_ui_message_handler.cc
@@ -17,7 +17,7 @@
 namespace download_internals {
 
 DownloadInternalsUIMessageHandler::DownloadInternalsUIMessageHandler()
-    : download_service_(nullptr), weak_ptr_factory_(this) {}
+    : download_service_(nullptr) {}
 
 DownloadInternalsUIMessageHandler::~DownloadInternalsUIMessageHandler() {
   if (download_service_)
diff --git a/chrome/browser/ui/webui/download_internals/download_internals_ui_message_handler.h b/chrome/browser/ui/webui/download_internals/download_internals_ui_message_handler.h
index ac0a3c6..2fb3159 100644
--- a/chrome/browser/ui/webui/download_internals/download_internals_ui_message_handler.h
+++ b/chrome/browser/ui/webui/download_internals/download_internals_ui_message_handler.h
@@ -44,7 +44,8 @@
 
   download::DownloadService* download_service_;
 
-  base::WeakPtrFactory<DownloadInternalsUIMessageHandler> weak_ptr_factory_;
+  base::WeakPtrFactory<DownloadInternalsUIMessageHandler> weak_ptr_factory_{
+      this};
 
   DISALLOW_COPY_AND_ASSIGN(DownloadInternalsUIMessageHandler);
 };
diff --git a/chrome/browser/ui/webui/flags_ui.cc b/chrome/browser/ui/webui/flags_ui.cc
index 3970a7c..ccb06ed 100644
--- a/chrome/browser/ui/webui/flags_ui.cc
+++ b/chrome/browser/ui/webui/flags_ui.cc
@@ -315,9 +315,7 @@
 //
 ///////////////////////////////////////////////////////////////////////////////
 
-FlagsUI::FlagsUI(content::WebUI* web_ui)
-    : WebUIController(web_ui),
-      weak_factory_(this) {
+FlagsUI::FlagsUI(content::WebUI* web_ui) : WebUIController(web_ui) {
   Profile* profile = Profile::FromWebUI(web_ui);
 
   auto handler_owner = std::make_unique<FlagsDOMHandler>();
diff --git a/chrome/browser/ui/webui/flags_ui.h b/chrome/browser/ui/webui/flags_ui.h
index f28cbaf3..c41991b2 100644
--- a/chrome/browser/ui/webui/flags_ui.h
+++ b/chrome/browser/ui/webui/flags_ui.h
@@ -28,7 +28,7 @@
       ui::ScaleFactor scale_factor);
 
  private:
-  base::WeakPtrFactory<FlagsUI> weak_factory_;
+  base::WeakPtrFactory<FlagsUI> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(FlagsUI);
 };
diff --git a/chrome/browser/ui/webui/gcm_internals_ui.cc b/chrome/browser/ui/webui/gcm_internals_ui.cc
index 79bf8d2..b1e16e8 100644
--- a/chrome/browser/ui/webui/gcm_internals_ui.cc
+++ b/chrome/browser/ui/webui/gcm_internals_ui.cc
@@ -55,13 +55,12 @@
       const gcm::GCMClient::GCMStatistics& args) const;
 
   // Factory for creating references in callbacks.
-  base::WeakPtrFactory<GcmInternalsUIMessageHandler> weak_ptr_factory_;
+  base::WeakPtrFactory<GcmInternalsUIMessageHandler> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(GcmInternalsUIMessageHandler);
 };
 
-GcmInternalsUIMessageHandler::GcmInternalsUIMessageHandler()
-    : weak_ptr_factory_(this) {}
+GcmInternalsUIMessageHandler::GcmInternalsUIMessageHandler() {}
 
 GcmInternalsUIMessageHandler::~GcmInternalsUIMessageHandler() {}
 
diff --git a/chrome/browser/ui/webui/invalidations_message_handler.cc b/chrome/browser/ui/webui/invalidations_message_handler.cc
index 7b21427..858391b 100644
--- a/chrome/browser/ui/webui/invalidations_message_handler.cc
+++ b/chrome/browser/ui/webui/invalidations_message_handler.cc
@@ -40,8 +40,7 @@
 
 }  // namespace
 
-InvalidationsMessageHandler::InvalidationsMessageHandler()
-    : logger_(NULL), weak_ptr_factory_(this) {}
+InvalidationsMessageHandler::InvalidationsMessageHandler() : logger_(nullptr) {}
 
 InvalidationsMessageHandler::~InvalidationsMessageHandler() {
   if (logger_)
diff --git a/chrome/browser/ui/webui/invalidations_message_handler.h b/chrome/browser/ui/webui/invalidations_message_handler.h
index 8d94440..f357963 100644
--- a/chrome/browser/ui/webui/invalidations_message_handler.h
+++ b/chrome/browser/ui/webui/invalidations_message_handler.h
@@ -57,7 +57,7 @@
   // register ourselves as Observers for any notifications.
   invalidation::InvalidationLogger* logger_;
 
-  base::WeakPtrFactory<InvalidationsMessageHandler> weak_ptr_factory_;
+  base::WeakPtrFactory<InvalidationsMessageHandler> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(InvalidationsMessageHandler);
 };
diff --git a/chrome/browser/ui/webui/media/webrtc_logs_ui.cc b/chrome/browser/ui/webui/media/webrtc_logs_ui.cc
index f49bed1..c4172e9 100644
--- a/chrome/browser/ui/webui/media/webrtc_logs_ui.cc
+++ b/chrome/browser/ui/webui/media/webrtc_logs_ui.cc
@@ -160,7 +160,7 @@
   std::vector<UploadList::UploadInfo> event_logs_;
 
   // Factory for creating weak references to instances of this class.
-  base::WeakPtrFactory<WebRtcLogsDOMHandler> weak_ptr_factory_;
+  base::WeakPtrFactory<WebRtcLogsDOMHandler> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(WebRtcLogsDOMHandler);
 };
@@ -174,8 +174,7 @@
       original_browser_context_id_(webrtc_event_logging::GetBrowserContextId(
           profile->GetOriginalProfile())),
       text_log_upload_list_(
-          webrtc_logging::TextLogList::CreateWebRtcLogList(profile)),
-      weak_ptr_factory_(this) {
+          webrtc_logging::TextLogList::CreateWebRtcLogList(profile)) {
   DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
 }
 
diff --git a/chrome/browser/ui/webui/memory_internals_ui.cc b/chrome/browser/ui/webui/memory_internals_ui.cc
index 5cedf0d..30482e5 100644
--- a/chrome/browser/ui/webui/memory_internals_ui.cc
+++ b/chrome/browser/ui/webui/memory_internals_ui.cc
@@ -167,13 +167,13 @@
   scoped_refptr<ui::SelectFileDialog> select_file_dialog_;
   content::WebUI* web_ui_;  // The WebUI that owns us.
 
-  base::WeakPtrFactory<MemoryInternalsDOMHandler> weak_factory_;
+  base::WeakPtrFactory<MemoryInternalsDOMHandler> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(MemoryInternalsDOMHandler);
 };
 
 MemoryInternalsDOMHandler::MemoryInternalsDOMHandler(content::WebUI* web_ui)
-    : web_ui_(web_ui), weak_factory_(this) {}
+    : web_ui_(web_ui) {}
 
 MemoryInternalsDOMHandler::~MemoryInternalsDOMHandler() {
   if (select_file_dialog_)
diff --git a/chrome/browser/ui/webui/nacl_ui.cc b/chrome/browser/ui/webui/nacl_ui.cc
index e818ddd34..89228f3 100644
--- a/chrome/browser/ui/webui/nacl_ui.cc
+++ b/chrome/browser/ui/webui/nacl_ui.cc
@@ -133,7 +133,7 @@
   std::string pnacl_version_string_;
 
   // Factory for the creating refs in callbacks.
-  base::WeakPtrFactory<NaClDomHandler> weak_ptr_factory_;
+  base::WeakPtrFactory<NaClDomHandler> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(NaClDomHandler);
 };
@@ -141,8 +141,7 @@
 NaClDomHandler::NaClDomHandler()
     : has_plugin_info_(false),
       pnacl_path_validated_(false),
-      pnacl_path_exists_(false),
-      weak_ptr_factory_(this) {
+      pnacl_path_exists_(false) {
   PluginService::GetInstance()->GetPlugins(base::Bind(
       &NaClDomHandler::OnGotPlugins, weak_ptr_factory_.GetWeakPtr()));
 }
diff --git a/chrome/browser/ui/webui/net_export_ui.cc b/chrome/browser/ui/webui/net_export_ui.cc
index 88704cb..c50cd8b 100644
--- a/chrome/browser/ui/webui/net_export_ui.cc
+++ b/chrome/browser/ui/webui/net_export_ui.cc
@@ -151,7 +151,7 @@
 
   scoped_refptr<ui::SelectFileDialog> select_file_dialog_;
 
-  base::WeakPtrFactory<NetExportMessageHandler> weak_ptr_factory_;
+  base::WeakPtrFactory<NetExportMessageHandler> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(NetExportMessageHandler);
 };
@@ -159,8 +159,7 @@
 NetExportMessageHandler::NetExportMessageHandler()
     : file_writer_(g_browser_process->system_network_context_manager()
                        ->GetNetExportFileWriter()),
-      state_observer_manager_(this),
-      weak_ptr_factory_(this) {
+      state_observer_manager_(this) {
   file_writer_->Initialize();
 }
 
diff --git a/chrome/browser/ui/webui/net_internals/net_internals_ui_browsertest.cc b/chrome/browser/ui/webui/net_internals/net_internals_ui_browsertest.cc
index 330df84..4b93e83 100644
--- a/chrome/browser/ui/webui/net_internals/net_internals_ui_browsertest.cc
+++ b/chrome/browser/ui/webui/net_internals/net_internals_ui_browsertest.cc
@@ -138,14 +138,14 @@
 
   NetInternalsTest* net_internals_test_;
 
-  base::WeakPtrFactory<MessageHandler> weak_factory_;
+  base::WeakPtrFactory<MessageHandler> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(MessageHandler);
 };
 
 NetInternalsTest::MessageHandler::MessageHandler(
     NetInternalsTest* net_internals_test)
-    : net_internals_test_(net_internals_test), weak_factory_(this) {}
+    : net_internals_test_(net_internals_test) {}
 
 void NetInternalsTest::MessageHandler::RegisterMessages() {
   RegisterMessage(
diff --git a/chrome/browser/ui/webui/policy_ui_handler.cc b/chrome/browser/ui/webui/policy_ui_handler.cc
index afe6d33..390df4b 100644
--- a/chrome/browser/ui/webui/policy_ui_handler.cc
+++ b/chrome/browser/ui/webui/policy_ui_handler.cc
@@ -692,7 +692,7 @@
 
 #endif  // defined(OS_CHROMEOS)
 
-PolicyUIHandler::PolicyUIHandler() : weak_factory_(this) {}
+PolicyUIHandler::PolicyUIHandler() {}
 
 PolicyUIHandler::~PolicyUIHandler() {
   GetPolicyService()->RemoveObserver(policy::POLICY_DOMAIN_CHROME, this);
diff --git a/chrome/browser/ui/webui/policy_ui_handler.h b/chrome/browser/ui/webui/policy_ui_handler.h
index 368f204..3d0b89d 100644
--- a/chrome/browser/ui/webui/policy_ui_handler.h
+++ b/chrome/browser/ui/webui/policy_ui_handler.h
@@ -107,7 +107,7 @@
   std::unique_ptr<PolicyStatusProvider> device_status_provider_;
   std::unique_ptr<PolicyStatusProvider> machine_status_provider_;
 
-  base::WeakPtrFactory<PolicyUIHandler> weak_factory_;
+  base::WeakPtrFactory<PolicyUIHandler> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(PolicyUIHandler);
 };
diff --git a/chrome/browser/ui/webui/print_preview/extension_printer_handler.cc b/chrome/browser/ui/webui/print_preview/extension_printer_handler.cc
index e57fe7d..38c8cd00 100644
--- a/chrome/browser/ui/webui/print_preview/extension_printer_handler.cc
+++ b/chrome/browser/ui/webui/print_preview/extension_printer_handler.cc
@@ -107,7 +107,7 @@
 }  // namespace
 
 ExtensionPrinterHandler::ExtensionPrinterHandler(Profile* profile)
-    : profile_(profile), weak_ptr_factory_(this) {}
+    : profile_(profile) {}
 
 ExtensionPrinterHandler::~ExtensionPrinterHandler() {
 }
diff --git a/chrome/browser/ui/webui/print_preview/extension_printer_handler.h b/chrome/browser/ui/webui/print_preview/extension_printer_handler.h
index 6fb8c001..2f88ff82 100644
--- a/chrome/browser/ui/webui/print_preview/extension_printer_handler.h
+++ b/chrome/browser/ui/webui/print_preview/extension_printer_handler.h
@@ -102,7 +102,7 @@
   std::unique_ptr<PwgRasterConverter> pwg_raster_converter_;
   int pending_enumeration_count_ = 0;
 
-  base::WeakPtrFactory<ExtensionPrinterHandler> weak_ptr_factory_;
+  base::WeakPtrFactory<ExtensionPrinterHandler> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(ExtensionPrinterHandler);
 };
diff --git a/chrome/browser/ui/webui/print_preview/pdf_printer_handler.cc b/chrome/browser/ui/webui/print_preview/pdf_printer_handler.cc
index 11dbe4f..6147b07 100644
--- a/chrome/browser/ui/webui/print_preview/pdf_printer_handler.cc
+++ b/chrome/browser/ui/webui/print_preview/pdf_printer_handler.cc
@@ -140,8 +140,7 @@
                                      StickySettings* sticky_settings)
     : preview_web_contents_(preview_web_contents),
       profile_(profile),
-      sticky_settings_(sticky_settings),
-      weak_ptr_factory_(this) {}
+      sticky_settings_(sticky_settings) {}
 
 PdfPrinterHandler::~PdfPrinterHandler() {
   if (select_file_dialog_.get())
diff --git a/chrome/browser/ui/webui/print_preview/pdf_printer_handler.h b/chrome/browser/ui/webui/print_preview/pdf_printer_handler.h
index 7e70b27..06f5799e 100644
--- a/chrome/browser/ui/webui/print_preview/pdf_printer_handler.h
+++ b/chrome/browser/ui/webui/print_preview/pdf_printer_handler.h
@@ -107,7 +107,7 @@
   // The callback to call when complete.
   PrintCallback print_callback_;
 
-  base::WeakPtrFactory<PdfPrinterHandler> weak_ptr_factory_;
+  base::WeakPtrFactory<PdfPrinterHandler> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(PdfPrinterHandler);
 };
diff --git a/chrome/browser/ui/webui/print_preview/print_preview_handler.cc b/chrome/browser/ui/webui/print_preview/print_preview_handler.cc
index 6a423a2..e827cf24 100644
--- a/chrome/browser/ui/webui/print_preview/print_preview_handler.cc
+++ b/chrome/browser/ui/webui/print_preview/print_preview_handler.cc
@@ -457,8 +457,7 @@
       manage_printers_dialog_request_count_(0),
       reported_failed_preview_(false),
       has_logged_printers_count_(false),
-      identity_manager_(nullptr),
-      weak_factory_(this) {
+      identity_manager_(nullptr) {
   ReportUserActionHistogram(PREVIEW_STARTED);
 }
 
diff --git a/chrome/browser/ui/webui/print_preview/print_preview_handler.h b/chrome/browser/ui/webui/print_preview/print_preview_handler.h
index 923414d2..b4c5aad9 100644
--- a/chrome/browser/ui/webui/print_preview/print_preview_handler.h
+++ b/chrome/browser/ui/webui/print_preview/print_preview_handler.h
@@ -365,7 +365,7 @@
   // Set of preview request ids for failed previews.
   std::set<int> preview_failures_;
 
-  base::WeakPtrFactory<PrintPreviewHandler> weak_factory_;
+  base::WeakPtrFactory<PrintPreviewHandler> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(PrintPreviewHandler);
 };
diff --git a/chrome/browser/ui/webui/print_preview/privet_printer_handler.cc b/chrome/browser/ui/webui/print_preview/privet_printer_handler.cc
index 5552f767..5aa315fd 100644
--- a/chrome/browser/ui/webui/print_preview/privet_printer_handler.cc
+++ b/chrome/browser/ui/webui/print_preview/privet_printer_handler.cc
@@ -42,7 +42,7 @@
 }  //  namespace
 
 PrivetPrinterHandler::PrivetPrinterHandler(Profile* profile)
-    : profile_(profile), weak_ptr_factory_(this) {}
+    : profile_(profile) {}
 
 PrivetPrinterHandler::~PrivetPrinterHandler() {}
 
diff --git a/chrome/browser/ui/webui/print_preview/privet_printer_handler.h b/chrome/browser/ui/webui/print_preview/privet_printer_handler.h
index 7b77b61..37b9f3d 100644
--- a/chrome/browser/ui/webui/print_preview/privet_printer_handler.h
+++ b/chrome/browser/ui/webui/print_preview/privet_printer_handler.h
@@ -106,7 +106,7 @@
   PrintCallback print_callback_;
   GetCapabilityCallback capabilities_callback_;
 
-  base::WeakPtrFactory<PrivetPrinterHandler> weak_ptr_factory_;
+  base::WeakPtrFactory<PrivetPrinterHandler> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(PrivetPrinterHandler);
 };
diff --git a/chrome/browser/ui/webui/quota_internals/quota_internals_proxy.cc b/chrome/browser/ui/webui/quota_internals/quota_internals_proxy.cc
index 0228ad9..fd56493 100644
--- a/chrome/browser/ui/webui/quota_internals/quota_internals_proxy.cc
+++ b/chrome/browser/ui/webui/quota_internals/quota_internals_proxy.cc
@@ -21,9 +21,7 @@
 namespace quota_internals {
 
 QuotaInternalsProxy::QuotaInternalsProxy(QuotaInternalsHandler* handler)
-    : handler_(handler),
-      weak_factory_(this) {
-}
+    : handler_(handler) {}
 
 void QuotaInternalsProxy::RequestInfo(
     scoped_refptr<storage::QuotaManager> quota_manager) {
diff --git a/chrome/browser/ui/webui/quota_internals/quota_internals_proxy.h b/chrome/browser/ui/webui/quota_internals/quota_internals_proxy.h
index f5c38a3a..0f562f5 100644
--- a/chrome/browser/ui/webui/quota_internals/quota_internals_proxy.h
+++ b/chrome/browser/ui/webui/quota_internals/quota_internals_proxy.h
@@ -82,7 +82,7 @@
   std::set<std::pair<std::string, blink::mojom::StorageType>> hosts_visited_,
       hosts_pending_;
   std::vector<PerHostStorageInfo> report_pending_;
-  base::WeakPtrFactory<QuotaInternalsProxy> weak_factory_;
+  base::WeakPtrFactory<QuotaInternalsProxy> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(QuotaInternalsProxy);
 };
diff --git a/chrome/browser/ui/webui/settings/about_handler.cc b/chrome/browser/ui/webui/settings/about_handler.cc
index 0c8444b..3c5033f 100644
--- a/chrome/browser/ui/webui/settings/about_handler.cc
+++ b/chrome/browser/ui/webui/settings/about_handler.cc
@@ -277,8 +277,7 @@
 
 namespace settings {
 
-AboutHandler::AboutHandler()
-    : apply_changes_from_upgrade_observer_(false), weak_factory_(this) {
+AboutHandler::AboutHandler() : apply_changes_from_upgrade_observer_(false) {
   UpgradeDetector::GetInstance()->AddObserver(this);
 }
 
diff --git a/chrome/browser/ui/webui/settings/about_handler.h b/chrome/browser/ui/webui/settings/about_handler.h
index e2ed18f..3e8af449f 100644
--- a/chrome/browser/ui/webui/settings/about_handler.h
+++ b/chrome/browser/ui/webui/settings/about_handler.h
@@ -174,7 +174,7 @@
   bool apply_changes_from_upgrade_observer_;
 
   // Used for callbacks.
-  base::WeakPtrFactory<AboutHandler> weak_factory_;
+  base::WeakPtrFactory<AboutHandler> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(AboutHandler);
 };
diff --git a/chrome/browser/ui/webui/settings/appearance_handler.cc b/chrome/browser/ui/webui/settings/appearance_handler.cc
index 435767b8b..8669504 100644
--- a/chrome/browser/ui/webui/settings/appearance_handler.cc
+++ b/chrome/browser/ui/webui/settings/appearance_handler.cc
@@ -19,7 +19,7 @@
 namespace settings {
 
 AppearanceHandler::AppearanceHandler(content::WebUI* webui)
-    : profile_(Profile::FromWebUI(webui)), weak_ptr_factory_(this) {}
+    : profile_(Profile::FromWebUI(webui)) {}
 
 AppearanceHandler::~AppearanceHandler() {}
 
diff --git a/chrome/browser/ui/webui/settings/appearance_handler.h b/chrome/browser/ui/webui/settings/appearance_handler.h
index 3acb6d5..dabbd536 100644
--- a/chrome/browser/ui/webui/settings/appearance_handler.h
+++ b/chrome/browser/ui/webui/settings/appearance_handler.h
@@ -57,7 +57,7 @@
 
   Profile* profile_;  // Weak pointer.
 
-  base::WeakPtrFactory<AppearanceHandler> weak_ptr_factory_;
+  base::WeakPtrFactory<AppearanceHandler> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(AppearanceHandler);
 };
diff --git a/chrome/browser/ui/webui/settings/font_handler.cc b/chrome/browser/ui/webui/settings/font_handler.cc
index 7053f743..2c25ebed 100644
--- a/chrome/browser/ui/webui/settings/font_handler.cc
+++ b/chrome/browser/ui/webui/settings/font_handler.cc
@@ -39,9 +39,7 @@
 namespace settings {
 
 FontHandler::FontHandler(content::WebUI* webui)
-    : extension_registry_observer_(this),
-      profile_(Profile::FromWebUI(webui)),
-      weak_ptr_factory_(this) {
+    : extension_registry_observer_(this), profile_(Profile::FromWebUI(webui)) {
 #if defined(OS_MACOSX)
   // Perform validation for saved fonts.
   settings_utils::ValidateSavedFonts(profile_->GetPrefs());
diff --git a/chrome/browser/ui/webui/settings/font_handler.h b/chrome/browser/ui/webui/settings/font_handler.h
index d7c58c2..f88659d 100644
--- a/chrome/browser/ui/webui/settings/font_handler.h
+++ b/chrome/browser/ui/webui/settings/font_handler.h
@@ -75,7 +75,7 @@
 
   Profile* profile_;  // Weak pointer.
 
-  base::WeakPtrFactory<FontHandler> weak_ptr_factory_;
+  base::WeakPtrFactory<FontHandler> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(FontHandler);
 };
diff --git a/chrome/browser/ui/webui/settings/profile_info_handler.cc b/chrome/browser/ui/webui/settings/profile_info_handler.cc
index 0d63bac..f99ba77 100644
--- a/chrome/browser/ui/webui/settings/profile_info_handler.cc
+++ b/chrome/browser/ui/webui/settings/profile_info_handler.cc
@@ -40,8 +40,7 @@
 #if defined(OS_CHROMEOS)
       user_manager_observer_(this),
 #endif
-      profile_observer_(this),
-      callback_weak_ptr_factory_(this) {
+      profile_observer_(this) {
 #if defined(OS_CHROMEOS)
   // Set up the chrome://userimage/ source.
   content::URLDataSource::Add(profile,
diff --git a/chrome/browser/ui/webui/settings/profile_info_handler.h b/chrome/browser/ui/webui/settings/profile_info_handler.h
index 0d7d986..1c40211 100644
--- a/chrome/browser/ui/webui/settings/profile_info_handler.h
+++ b/chrome/browser/ui/webui/settings/profile_info_handler.h
@@ -82,7 +82,7 @@
       profile_observer_;
 
   // Used to cancel callbacks when JavaScript becomes disallowed.
-  base::WeakPtrFactory<ProfileInfoHandler> callback_weak_ptr_factory_;
+  base::WeakPtrFactory<ProfileInfoHandler> callback_weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(ProfileInfoHandler);
 };
diff --git a/chrome/browser/ui/webui/settings/reset_settings_handler.cc b/chrome/browser/ui/webui/settings/reset_settings_handler.cc
index 6350f23f..0268d4b 100644
--- a/chrome/browser/ui/webui/settings/reset_settings_handler.cc
+++ b/chrome/browser/ui/webui/settings/reset_settings_handler.cc
@@ -73,7 +73,7 @@
 const char ResetSettingsHandler::kCctResetSettingsHash[] = "cct";
 
 ResetSettingsHandler::ResetSettingsHandler(Profile* profile)
-    : profile_(profile), callback_weak_ptr_factory_(this) {
+    : profile_(profile) {
   google_brand::GetBrand(&brandcode_);
 }
 
diff --git a/chrome/browser/ui/webui/settings/reset_settings_handler.h b/chrome/browser/ui/webui/settings/reset_settings_handler.h
index 1a9458c..db6f0822 100644
--- a/chrome/browser/ui/webui/settings/reset_settings_handler.h
+++ b/chrome/browser/ui/webui/settings/reset_settings_handler.h
@@ -111,7 +111,7 @@
   std::string brandcode_;
 
   // Used to cancel callbacks when JavaScript becomes disallowed.
-  base::WeakPtrFactory<ResetSettingsHandler> callback_weak_ptr_factory_;
+  base::WeakPtrFactory<ResetSettingsHandler> callback_weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(ResetSettingsHandler);
 };
diff --git a/chrome/browser/ui/webui/settings/search_engines_handler.cc b/chrome/browser/ui/webui/settings/search_engines_handler.cc
index be2b79c..24247be5 100644
--- a/chrome/browser/ui/webui/settings/search_engines_handler.cc
+++ b/chrome/browser/ui/webui/settings/search_engines_handler.cc
@@ -46,7 +46,7 @@
 namespace settings {
 
 SearchEnginesHandler::SearchEnginesHandler(Profile* profile)
-    : profile_(profile), list_controller_(profile), weak_ptr_factory_(this) {
+    : profile_(profile), list_controller_(profile) {
   pref_change_registrar_.Init(profile_->GetPrefs());
 }
 
diff --git a/chrome/browser/ui/webui/settings/search_engines_handler.h b/chrome/browser/ui/webui/settings/search_engines_handler.h
index b764a28..5452f1ee 100644
--- a/chrome/browser/ui/webui/settings/search_engines_handler.h
+++ b/chrome/browser/ui/webui/settings/search_engines_handler.h
@@ -101,7 +101,7 @@
   KeywordEditorController list_controller_;
   std::unique_ptr<EditSearchEngineController> edit_controller_;
   PrefChangeRegistrar pref_change_registrar_;
-  base::WeakPtrFactory<SearchEnginesHandler> weak_ptr_factory_;
+  base::WeakPtrFactory<SearchEnginesHandler> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(SearchEnginesHandler);
 };
diff --git a/chrome/browser/ui/webui/settings/settings_clear_browsing_data_handler.cc b/chrome/browser/ui/webui/settings/settings_clear_browsing_data_handler.cc
index cd56f96a..de71dd6 100644
--- a/chrome/browser/ui/webui/settings/settings_clear_browsing_data_handler.cc
+++ b/chrome/browser/ui/webui/settings/settings_clear_browsing_data_handler.cc
@@ -76,8 +76,7 @@
     : profile_(Profile::FromWebUI(webui)),
       sync_service_(ProfileSyncServiceFactory::GetForProfile(profile_)),
       sync_service_observer_(this),
-      show_history_deletion_dialog_(false),
-      weak_ptr_factory_(this) {}
+      show_history_deletion_dialog_(false) {}
 
 ClearBrowsingDataHandler::~ClearBrowsingDataHandler() {
 }
diff --git a/chrome/browser/ui/webui/settings/settings_clear_browsing_data_handler.h b/chrome/browser/ui/webui/settings/settings_clear_browsing_data_handler.h
index 76d27cb..9434c78 100644
--- a/chrome/browser/ui/webui/settings/settings_clear_browsing_data_handler.h
+++ b/chrome/browser/ui/webui/settings/settings_clear_browsing_data_handler.h
@@ -108,7 +108,7 @@
   // A weak pointer factory for asynchronous calls referencing this class.
   // The weak pointers are invalidated in |OnJavascriptDisallowed()| and
   // |HandleInitialize()| to cancel previously initiated tasks.
-  base::WeakPtrFactory<ClearBrowsingDataHandler> weak_ptr_factory_;
+  base::WeakPtrFactory<ClearBrowsingDataHandler> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(ClearBrowsingDataHandler);
 };
diff --git a/chrome/browser/ui/webui/settings/settings_default_browser_handler.cc b/chrome/browser/ui/webui/settings/settings_default_browser_handler.cc
index f46e5ef..ef43d963 100644
--- a/chrome/browser/ui/webui/settings/settings_default_browser_handler.cc
+++ b/chrome/browser/ui/webui/settings/settings_default_browser_handler.cc
@@ -30,7 +30,7 @@
 
 }  // namespace
 
-DefaultBrowserHandler::DefaultBrowserHandler() : weak_ptr_factory_(this) {}
+DefaultBrowserHandler::DefaultBrowserHandler() {}
 
 DefaultBrowserHandler::~DefaultBrowserHandler() {}
 
diff --git a/chrome/browser/ui/webui/settings/settings_default_browser_handler.h b/chrome/browser/ui/webui/settings/settings_default_browser_handler.h
index fe71f65..92f83a2 100644
--- a/chrome/browser/ui/webui/settings/settings_default_browser_handler.h
+++ b/chrome/browser/ui/webui/settings/settings_default_browser_handler.h
@@ -61,7 +61,7 @@
   PrefChangeRegistrar local_state_pref_registrar_;
 
   // Used to invalidate the DefaultBrowserWorker callback.
-  base::WeakPtrFactory<DefaultBrowserHandler> weak_ptr_factory_;
+  base::WeakPtrFactory<DefaultBrowserHandler> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(DefaultBrowserHandler);
 };
diff --git a/chrome/browser/ui/webui/settings/settings_manage_profile_handler.cc b/chrome/browser/ui/webui/settings/settings_manage_profile_handler.cc
index e3bcb9e..40505a4 100644
--- a/chrome/browser/ui/webui/settings/settings_manage_profile_handler.cc
+++ b/chrome/browser/ui/webui/settings/settings_manage_profile_handler.cc
@@ -48,7 +48,7 @@
 }  // namespace
 
 ManageProfileHandler::ManageProfileHandler(Profile* profile)
-    : profile_(profile), observer_(this), weak_factory_(this) {}
+    : profile_(profile), observer_(this) {}
 
 ManageProfileHandler::~ManageProfileHandler() {}
 
diff --git a/chrome/browser/ui/webui/settings/settings_manage_profile_handler.h b/chrome/browser/ui/webui/settings/settings_manage_profile_handler.h
index 32da11d..210f76c 100644
--- a/chrome/browser/ui/webui/settings/settings_manage_profile_handler.h
+++ b/chrome/browser/ui/webui/settings/settings_manage_profile_handler.h
@@ -91,7 +91,7 @@
   ScopedObserver<ProfileAttributesStorage, ManageProfileHandler> observer_;
 
   // For generating weak pointers to itself for callbacks.
-  base::WeakPtrFactory<ManageProfileHandler> weak_factory_;
+  base::WeakPtrFactory<ManageProfileHandler> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(ManageProfileHandler);
 };
diff --git a/chrome/browser/ui/webui/signin/dice_turn_sync_on_helper.cc b/chrome/browser/ui/webui/signin/dice_turn_sync_on_helper.cc
index 3d96edf7..9f94108c 100644
--- a/chrome/browser/ui/webui/signin/dice_turn_sync_on_helper.cc
+++ b/chrome/browser/ui/webui/signin/dice_turn_sync_on_helper.cc
@@ -152,8 +152,7 @@
           DiceTurnSyncOnHelperShutdownNotifierFactory::GetInstance()
               ->Get(profile)
               ->Subscribe(base::Bind(&DiceTurnSyncOnHelper::AbortAndDelete,
-                                     base::Unretained(this)))),
-      weak_pointer_factory_(this) {
+                                     base::Unretained(this)))) {
   DCHECK(delegate_);
   DCHECK(profile_);
   // Should not start syncing if the profile is already authenticated
diff --git a/chrome/browser/ui/webui/signin/dice_turn_sync_on_helper.h b/chrome/browser/ui/webui/signin/dice_turn_sync_on_helper.h
index 7f73e734..6f1a148 100644
--- a/chrome/browser/ui/webui/signin/dice_turn_sync_on_helper.h
+++ b/chrome/browser/ui/webui/signin/dice_turn_sync_on_helper.h
@@ -222,7 +222,7 @@
   std::unique_ptr<KeyedServiceShutdownNotifier::Subscription>
       shutdown_subscription_;
 
-  base::WeakPtrFactory<DiceTurnSyncOnHelper> weak_pointer_factory_;
+  base::WeakPtrFactory<DiceTurnSyncOnHelper> weak_pointer_factory_{this};
   DISALLOW_COPY_AND_ASSIGN(DiceTurnSyncOnHelper);
 };
 
diff --git a/chrome/browser/ui/webui/signin/inline_login_handler.cc b/chrome/browser/ui/webui/signin/inline_login_handler.cc
index d0aee56..d025828e 100644
--- a/chrome/browser/ui/webui/signin/inline_login_handler.cc
+++ b/chrome/browser/ui/webui/signin/inline_login_handler.cc
@@ -36,7 +36,7 @@
 const char kSignInPromoQueryKeyShowAccountManagement[] =
     "showAccountManagement";
 
-InlineLoginHandler::InlineLoginHandler() : weak_ptr_factory_(this) {}
+InlineLoginHandler::InlineLoginHandler() {}
 
 InlineLoginHandler::~InlineLoginHandler() {}
 
diff --git a/chrome/browser/ui/webui/signin/inline_login_handler.h b/chrome/browser/ui/webui/signin/inline_login_handler.h
index 4977139..65e1ac8 100644
--- a/chrome/browser/ui/webui/signin/inline_login_handler.h
+++ b/chrome/browser/ui/webui/signin/inline_login_handler.h
@@ -88,7 +88,7 @@
                              bool trusted_found,
                              bool choose_what_to_sync) = 0;
 
-  base::WeakPtrFactory<InlineLoginHandler> weak_ptr_factory_;
+  base::WeakPtrFactory<InlineLoginHandler> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(InlineLoginHandler);
 };
diff --git a/chrome/browser/ui/webui/signin/inline_login_handler_impl.cc b/chrome/browser/ui/webui/signin/inline_login_handler_impl.cc
index f4be871..dd4df45 100644
--- a/chrome/browser/ui/webui/signin/inline_login_handler_impl.cc
+++ b/chrome/browser/ui/webui/signin/inline_login_handler_impl.cc
@@ -485,7 +485,7 @@
 }
 
 InlineLoginHandlerImpl::InlineLoginHandlerImpl()
-    : confirm_untrusted_signin_(false), weak_factory_(this) {}
+    : confirm_untrusted_signin_(false) {}
 
 InlineLoginHandlerImpl::~InlineLoginHandlerImpl() {}
 
diff --git a/chrome/browser/ui/webui/signin/inline_login_handler_impl.h b/chrome/browser/ui/webui/signin/inline_login_handler_impl.h
index 2782fc3..e05ee3a 100644
--- a/chrome/browser/ui/webui/signin/inline_login_handler_impl.h
+++ b/chrome/browser/ui/webui/signin/inline_login_handler_impl.h
@@ -125,7 +125,7 @@
   // process.
   bool confirm_untrusted_signin_;
 
-  base::WeakPtrFactory<InlineLoginHandlerImpl> weak_factory_;
+  base::WeakPtrFactory<InlineLoginHandlerImpl> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(InlineLoginHandlerImpl);
 };
diff --git a/chrome/browser/ui/webui/signin/inline_login_ui.cc b/chrome/browser/ui/webui/signin/inline_login_ui.cc
index 70e313af..9b42b10 100644
--- a/chrome/browser/ui/webui/signin/inline_login_ui.cc
+++ b/chrome/browser/ui/webui/signin/inline_login_ui.cc
@@ -98,9 +98,7 @@
 
 }  // namespace
 
-InlineLoginUI::InlineLoginUI(content::WebUI* web_ui)
-    : WebDialogUI(web_ui),
-      weak_factory_(this) {
+InlineLoginUI::InlineLoginUI(content::WebUI* web_ui) : WebDialogUI(web_ui) {
   if (!IsValidChromeSigninReason(web_ui->GetWebContents()->GetVisibleURL()))
     return;
 
diff --git a/chrome/browser/ui/webui/signin/inline_login_ui.h b/chrome/browser/ui/webui/signin/inline_login_ui.h
index 3b9ff05..82c0959 100644
--- a/chrome/browser/ui/webui/signin/inline_login_ui.h
+++ b/chrome/browser/ui/webui/signin/inline_login_ui.h
@@ -18,7 +18,7 @@
   ~InlineLoginUI() override;
 
  private:
-  base::WeakPtrFactory<InlineLoginUI> weak_factory_;
+  base::WeakPtrFactory<InlineLoginUI> weak_factory_{this};
   DISALLOW_COPY_AND_ASSIGN(InlineLoginUI);
 };
 
diff --git a/chrome/browser/ui/webui/signin/signin_create_profile_handler.cc b/chrome/browser/ui/webui/signin/signin_create_profile_handler.cc
index aff5ff8..b029534 100644
--- a/chrome/browser/ui/webui/signin/signin_create_profile_handler.cc
+++ b/chrome/browser/ui/webui/signin/signin_create_profile_handler.cc
@@ -45,8 +45,7 @@
 #include "ui/base/l10n/l10n_util.h"
 
 SigninCreateProfileHandler::SigninCreateProfileHandler()
-    : profile_creation_type_(NO_CREATION_IN_PROGRESS),
-      weak_ptr_factory_(this) {}
+    : profile_creation_type_(NO_CREATION_IN_PROGRESS) {}
 
 SigninCreateProfileHandler::~SigninCreateProfileHandler() {}
 
diff --git a/chrome/browser/ui/webui/signin/signin_create_profile_handler.h b/chrome/browser/ui/webui/signin/signin_create_profile_handler.h
index 8462672..db7c0811 100644
--- a/chrome/browser/ui/webui/signin/signin_create_profile_handler.h
+++ b/chrome/browser/ui/webui/signin/signin_create_profile_handler.h
@@ -132,7 +132,7 @@
 
   content::NotificationRegistrar registrar_;
 
-  base::WeakPtrFactory<SigninCreateProfileHandler> weak_ptr_factory_;
+  base::WeakPtrFactory<SigninCreateProfileHandler> weak_ptr_factory_{this};
 
  private:
   DISALLOW_COPY_AND_ASSIGN(SigninCreateProfileHandler);
diff --git a/chrome/browser/ui/webui/signin/user_manager_screen_handler.cc b/chrome/browser/ui/webui/signin/user_manager_screen_handler.cc
index d9f0e7e..1e7be5ff 100644
--- a/chrome/browser/ui/webui/signin/user_manager_screen_handler.cc
+++ b/chrome/browser/ui/webui/signin/user_manager_screen_handler.cc
@@ -273,7 +273,7 @@
 
 // UserManagerScreenHandler ---------------------------------------------------
 
-UserManagerScreenHandler::UserManagerScreenHandler() : weak_ptr_factory_(this) {
+UserManagerScreenHandler::UserManagerScreenHandler() {
   profile_attributes_storage_observer_.reset(
       new UserManagerScreenHandler::ProfileUpdateObserver(
           g_browser_process->profile_manager(), this));
diff --git a/chrome/browser/ui/webui/signin/user_manager_screen_handler.h b/chrome/browser/ui/webui/signin/user_manager_screen_handler.h
index 7a13899..8906900c 100644
--- a/chrome/browser/ui/webui/signin/user_manager_screen_handler.h
+++ b/chrome/browser/ui/webui/signin/user_manager_screen_handler.h
@@ -124,7 +124,7 @@
   // The CancelableTaskTracker is currently used by GetProfileStatistics
   base::CancelableTaskTracker tracker_;
 
-  base::WeakPtrFactory<UserManagerScreenHandler> weak_ptr_factory_;
+  base::WeakPtrFactory<UserManagerScreenHandler> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(UserManagerScreenHandler);
 };
diff --git a/chrome/browser/ui/webui/supervised_user_internals_message_handler.cc b/chrome/browser/ui/webui/supervised_user_internals_message_handler.cc
index 4cc098c..d9fab3f 100644
--- a/chrome/browser/ui/webui/supervised_user_internals_message_handler.cc
+++ b/chrome/browser/ui/webui/supervised_user_internals_message_handler.cc
@@ -118,7 +118,7 @@
 }  // namespace
 
 SupervisedUserInternalsMessageHandler::SupervisedUserInternalsMessageHandler()
-    : scoped_observer_(this), weak_factory_(this) {}
+    : scoped_observer_(this) {}
 
 SupervisedUserInternalsMessageHandler::
     ~SupervisedUserInternalsMessageHandler() {
diff --git a/chrome/browser/ui/webui/supervised_user_internals_message_handler.h b/chrome/browser/ui/webui/supervised_user_internals_message_handler.h
index aa6c3d9b..7be0cfac 100644
--- a/chrome/browser/ui/webui/supervised_user_internals_message_handler.h
+++ b/chrome/browser/ui/webui/supervised_user_internals_message_handler.h
@@ -65,7 +65,8 @@
   ScopedObserver<SupervisedUserURLFilter, SupervisedUserURLFilter::Observer>
       scoped_observer_;
 
-  base::WeakPtrFactory<SupervisedUserInternalsMessageHandler> weak_factory_;
+  base::WeakPtrFactory<SupervisedUserInternalsMessageHandler> weak_factory_{
+      this};
 
   DISALLOW_COPY_AND_ASSIGN(SupervisedUserInternalsMessageHandler);
 };
diff --git a/chrome/browser/ui/webui/sync_file_system_internals/extension_statuses_handler.cc b/chrome/browser/ui/webui/sync_file_system_internals/extension_statuses_handler.cc
index e5006aa..cf5c1ba9 100644
--- a/chrome/browser/ui/webui/sync_file_system_internals/extension_statuses_handler.cc
+++ b/chrome/browser/ui/webui/sync_file_system_internals/extension_statuses_handler.cc
@@ -60,8 +60,7 @@
 }  // namespace
 
 ExtensionStatusesHandler::ExtensionStatusesHandler(Profile* profile)
-    : profile_(profile),
-      weak_ptr_factory_(this) {}
+    : profile_(profile) {}
 
 ExtensionStatusesHandler::~ExtensionStatusesHandler() {}
 
diff --git a/chrome/browser/ui/webui/sync_file_system_internals/extension_statuses_handler.h b/chrome/browser/ui/webui/sync_file_system_internals/extension_statuses_handler.h
index 26fef71..6088033 100644
--- a/chrome/browser/ui/webui/sync_file_system_internals/extension_statuses_handler.h
+++ b/chrome/browser/ui/webui/sync_file_system_internals/extension_statuses_handler.h
@@ -37,7 +37,7 @@
   void DidGetExtensionStatuses(const base::ListValue& list);
 
   Profile* profile_;
-  base::WeakPtrFactory<ExtensionStatusesHandler> weak_ptr_factory_;
+  base::WeakPtrFactory<ExtensionStatusesHandler> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(ExtensionStatusesHandler);
 };
diff --git a/chrome/browser/ui/webui/sync_file_system_internals/file_metadata_handler.cc b/chrome/browser/ui/webui/sync_file_system_internals/file_metadata_handler.cc
index 67a37f0..050b6031 100644
--- a/chrome/browser/ui/webui/sync_file_system_internals/file_metadata_handler.cc
+++ b/chrome/browser/ui/webui/sync_file_system_internals/file_metadata_handler.cc
@@ -25,8 +25,7 @@
 namespace syncfs_internals {
 
 FileMetadataHandler::FileMetadataHandler(Profile* profile)
-    : profile_(profile),
-      weak_factory_(this) {}
+    : profile_(profile) {}
 
 FileMetadataHandler::~FileMetadataHandler() {}
 
diff --git a/chrome/browser/ui/webui/sync_file_system_internals/file_metadata_handler.h b/chrome/browser/ui/webui/sync_file_system_internals/file_metadata_handler.h
index eac5ccc6..5a387e05e 100644
--- a/chrome/browser/ui/webui/sync_file_system_internals/file_metadata_handler.h
+++ b/chrome/browser/ui/webui/sync_file_system_internals/file_metadata_handler.h
@@ -38,7 +38,7 @@
   void DidGetFileMetadata(const base::ListValue& files);
 
   Profile* profile_;
-  base::WeakPtrFactory<FileMetadataHandler> weak_factory_;
+  base::WeakPtrFactory<FileMetadataHandler> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(FileMetadataHandler);
 };
diff --git a/chrome/browser/ui/webui/sync_internals_message_handler.cc b/chrome/browser/ui/webui/sync_internals_message_handler.cc
index 4b2ed4b..69dc7e8 100644
--- a/chrome/browser/ui/webui/sync_internals_message_handler.cc
+++ b/chrome/browser/ui/webui/sync_internals_message_handler.cc
@@ -73,8 +73,7 @@
 SyncInternalsMessageHandler::SyncInternalsMessageHandler(
     AboutSyncDataDelegate about_sync_data_delegate)
     : include_specifics_(GetIncludeSpecificsInitialState()),
-      about_sync_data_delegate_(std::move(about_sync_data_delegate)),
-      weak_ptr_factory_(this) {}
+      about_sync_data_delegate_(std::move(about_sync_data_delegate)) {}
 
 SyncInternalsMessageHandler::~SyncInternalsMessageHandler() {
   UnregisterModelNotifications();
diff --git a/chrome/browser/ui/webui/sync_internals_message_handler.h b/chrome/browser/ui/webui/sync_internals_message_handler.h
index 73c613c6..8d99944 100644
--- a/chrome/browser/ui/webui/sync_internals_message_handler.h
+++ b/chrome/browser/ui/webui/sync_internals_message_handler.h
@@ -150,7 +150,7 @@
   // An abstraction of who creates the about sync info value map.
   AboutSyncDataDelegate about_sync_data_delegate_;
 
-  base::WeakPtrFactory<SyncInternalsMessageHandler> weak_ptr_factory_;
+  base::WeakPtrFactory<SyncInternalsMessageHandler> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(SyncInternalsMessageHandler);
 };
diff --git a/chrome/browser/ui/webui/system_info_ui.cc b/chrome/browser/ui/webui/system_info_ui.cc
index f366029..cf886af5 100644
--- a/chrome/browser/ui/webui/system_info_ui.cc
+++ b/chrome/browser/ui/webui/system_info_ui.cc
@@ -88,7 +88,7 @@
   void OnSystemInfo(std::unique_ptr<SystemLogsResponse> sys_info);
 
  private:
-  base::WeakPtrFactory<SystemInfoHandler> weak_ptr_factory_;
+  base::WeakPtrFactory<SystemInfoHandler> weak_ptr_factory_{this};
   DISALLOW_COPY_AND_ASSIGN(SystemInfoHandler);
 };
 
@@ -97,7 +97,7 @@
 // SystemInfoHandler
 //
 ////////////////////////////////////////////////////////////////////////////////
-SystemInfoHandler::SystemInfoHandler() : weak_ptr_factory_(this) {}
+SystemInfoHandler::SystemInfoHandler() {}
 
 SystemInfoHandler::~SystemInfoHandler() {}
 
diff --git a/chrome/browser/ui/webui/version_handler.cc b/chrome/browser/ui/webui/version_handler.cc
index 3737138f..b62cff1 100644
--- a/chrome/browser/ui/webui/version_handler.cc
+++ b/chrome/browser/ui/webui/version_handler.cc
@@ -56,7 +56,7 @@
 
 }  // namespace
 
-VersionHandler::VersionHandler() : weak_ptr_factory_(this) {}
+VersionHandler::VersionHandler() {}
 
 VersionHandler::~VersionHandler() {
 }
diff --git a/chrome/browser/ui/webui/version_handler.h b/chrome/browser/ui/webui/version_handler.h
index d121739..e4c27a53 100644
--- a/chrome/browser/ui/webui/version_handler.h
+++ b/chrome/browser/ui/webui/version_handler.h
@@ -38,7 +38,7 @@
   void OnGotPlugins(const std::vector<content::WebPluginInfo>& plugins);
 
   // Factory for the creating refs in callbacks.
-  base::WeakPtrFactory<VersionHandler> weak_ptr_factory_;
+  base::WeakPtrFactory<VersionHandler> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(VersionHandler);
 };
diff --git a/chrome/browser/ui/webui/welcome/welcome_ui.cc b/chrome/browser/ui/webui/welcome/welcome_ui.cc
index 43eb3a9..1662426 100644
--- a/chrome/browser/ui/webui/welcome/welcome_ui.cc
+++ b/chrome/browser/ui/webui/welcome/welcome_ui.cc
@@ -132,7 +132,7 @@
 }  // namespace
 
 WelcomeUI::WelcomeUI(content::WebUI* web_ui, const GURL& url)
-    : content::WebUIController(web_ui), weak_ptr_factory_(this) {
+    : content::WebUIController(web_ui) {
   Profile* profile = Profile::FromWebUI(web_ui);
 
   // This page is not shown to incognito or guest profiles. If one should end up
diff --git a/chrome/browser/ui/webui/welcome/welcome_ui.h b/chrome/browser/ui/webui/welcome/welcome_ui.h
index 55896de..ed54ca23 100644
--- a/chrome/browser/ui/webui/welcome/welcome_ui.h
+++ b/chrome/browser/ui/webui/welcome/welcome_ui.h
@@ -35,7 +35,7 @@
  private:
   void StorePageSeen(Profile* profile);
   std::unique_ptr<nux::NtpBackgroundFetcher> background_fetcher_;
-  base::WeakPtrFactory<WelcomeUI> weak_ptr_factory_;
+  base::WeakPtrFactory<WelcomeUI> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(WelcomeUI);
 };
diff --git a/chrome/browser/upgrade_detector/upgrade_detector_impl.cc b/chrome/browser/upgrade_detector/upgrade_detector_impl.cc
index 4392e66..cfb6b7d 100644
--- a/chrome/browser/upgrade_detector/upgrade_detector_impl.cc
+++ b/chrome/browser/upgrade_detector/upgrade_detector_impl.cc
@@ -155,8 +155,7 @@
       is_auto_update_enabled_(true),
       simulating_outdated_(SimulatingOutdated()),
       is_testing_(simulating_outdated_ || IsTesting()),
-      build_date_(base::GetBuildTime()),
-      weak_factory_(this) {
+      build_date_(base::GetBuildTime()) {
   InitializeThresholds();
   const base::CommandLine& cmd_line = *base::CommandLine::ForCurrentProcess();
   // The different command line switches that affect testing can't be used
diff --git a/chrome/browser/upgrade_detector/upgrade_detector_impl.h b/chrome/browser/upgrade_detector/upgrade_detector_impl.h
index b39e21a..8b4584a 100644
--- a/chrome/browser/upgrade_detector/upgrade_detector_impl.h
+++ b/chrome/browser/upgrade_detector/upgrade_detector_impl.h
@@ -155,7 +155,7 @@
   // We use this factory to create callback tasks for UpgradeDetected. We pass
   // the task to the actual upgrade detection code, which is in
   // DetectUpgradeTask.
-  base::WeakPtrFactory<UpgradeDetectorImpl> weak_factory_;
+  base::WeakPtrFactory<UpgradeDetectorImpl> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(UpgradeDetectorImpl);
 };
diff --git a/chrome/browser/usb/usb_browsertest.cc b/chrome/browser/usb/usb_browsertest.cc
index 74974e5..47e868a 100644
--- a/chrome/browser/usb/usb_browsertest.cc
+++ b/chrome/browser/usb/usb_browsertest.cc
@@ -73,7 +73,7 @@
 class FakeUsbChooser : public WebUsbChooser {
  public:
   explicit FakeUsbChooser(RenderFrameHost* render_frame_host)
-      : WebUsbChooser(render_frame_host), weak_factory_(this) {}
+      : WebUsbChooser(render_frame_host) {}
 
   ~FakeUsbChooser() override {}
 
@@ -92,7 +92,7 @@
   }
 
  private:
-  base::WeakPtrFactory<FakeUsbChooser> weak_factory_;
+  base::WeakPtrFactory<FakeUsbChooser> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(FakeUsbChooser);
 };
diff --git a/chrome/browser/usb/usb_chooser_context.cc b/chrome/browser/usb/usb_chooser_context.cc
index 5efd847..af169f57 100644
--- a/chrome/browser/usb/usb_chooser_context.cc
+++ b/chrome/browser/usb/usb_chooser_context.cc
@@ -131,8 +131,7 @@
                          CONTENT_SETTINGS_TYPE_USB_GUARD,
                          CONTENT_SETTINGS_TYPE_USB_CHOOSER_DATA),
       is_incognito_(profile->IsOffTheRecord()),
-      client_binding_(this),
-      weak_factory_(this) {
+      client_binding_(this) {
   usb_policy_allowed_devices_.reset(new UsbPolicyAllowedDevices(
       profile->GetPrefs(), g_browser_process->local_state()));
 }
diff --git a/chrome/browser/usb/usb_chooser_context.h b/chrome/browser/usb/usb_chooser_context.h
index 17aae09a..a3920bb 100644
--- a/chrome/browser/usb/usb_chooser_context.h
+++ b/chrome/browser/usb/usb_chooser_context.h
@@ -125,7 +125,7 @@
       client_binding_;
   base::ObserverList<DeviceObserver> device_observer_list_;
 
-  base::WeakPtrFactory<UsbChooserContext> weak_factory_;
+  base::WeakPtrFactory<UsbChooserContext> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(UsbChooserContext);
 };
diff --git a/chrome/browser/usb/usb_chooser_controller.cc b/chrome/browser/usb/usb_chooser_controller.cc
index d15ef93..2ce08fb 100644
--- a/chrome/browser/usb/usb_chooser_controller.cc
+++ b/chrome/browser/usb/usb_chooser_controller.cc
@@ -96,8 +96,7 @@
       filters_(std::move(device_filters)),
       callback_(std::move(callback)),
       web_contents_(WebContents::FromRenderFrameHost(render_frame_host)),
-      observer_(this),
-      weak_factory_(this) {
+      observer_(this) {
   RenderFrameHost* main_frame = web_contents_->GetMainFrame();
   requesting_origin_ = render_frame_host->GetLastCommittedOrigin();
   embedding_origin_ = main_frame->GetLastCommittedOrigin();
diff --git a/chrome/browser/usb/usb_chooser_controller.h b/chrome/browser/usb/usb_chooser_controller.h
index 16c51fd..58add784 100644
--- a/chrome/browser/usb/usb_chooser_controller.h
+++ b/chrome/browser/usb/usb_chooser_controller.h
@@ -71,7 +71,7 @@
   std::vector<std::pair<std::string, base::string16>> devices_;
   // Maps from device name to number of devices.
   std::unordered_map<base::string16, int> device_name_map_;
-  base::WeakPtrFactory<UsbChooserController> weak_factory_;
+  base::WeakPtrFactory<UsbChooserController> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(UsbChooserController);
 };
diff --git a/chrome/browser/usb/web_usb_chooser_desktop.cc b/chrome/browser/usb/web_usb_chooser_desktop.cc
index d2f0befb0..07435c17d 100644
--- a/chrome/browser/usb/web_usb_chooser_desktop.cc
+++ b/chrome/browser/usb/web_usb_chooser_desktop.cc
@@ -15,7 +15,7 @@
 
 WebUsbChooserDesktop::WebUsbChooserDesktop(
     content::RenderFrameHost* render_frame_host)
-    : WebUsbChooser(render_frame_host), weak_factory_(this) {}
+    : WebUsbChooser(render_frame_host) {}
 
 WebUsbChooserDesktop::~WebUsbChooserDesktop() {
   if (bubble_)
diff --git a/chrome/browser/usb/web_usb_chooser_desktop.h b/chrome/browser/usb/web_usb_chooser_desktop.h
index cbbe2f0..7fa6ae3 100644
--- a/chrome/browser/usb/web_usb_chooser_desktop.h
+++ b/chrome/browser/usb/web_usb_chooser_desktop.h
@@ -26,7 +26,7 @@
  private:
   BubbleReference bubble_;
 
-  base::WeakPtrFactory<WebUsbChooserDesktop> weak_factory_;
+  base::WeakPtrFactory<WebUsbChooserDesktop> weak_factory_{this};
   DISALLOW_COPY_AND_ASSIGN(WebUsbChooserDesktop);
 };
 
diff --git a/chrome/browser/usb/web_usb_detector.cc b/chrome/browser/usb/web_usb_detector.cc
index a58ef13..d8f23f14 100644
--- a/chrome/browser/usb/web_usb_detector.cc
+++ b/chrome/browser/usb/web_usb_detector.cc
@@ -178,7 +178,7 @@
 
 }  // namespace
 
-WebUsbDetector::WebUsbDetector() : client_binding_(this), weak_factory_(this) {}
+WebUsbDetector::WebUsbDetector() : client_binding_(this) {}
 
 WebUsbDetector::~WebUsbDetector() {}
 
diff --git a/chrome/browser/usb/web_usb_detector.h b/chrome/browser/usb/web_usb_detector.h
index 2396ff7..efdc4445 100644
--- a/chrome/browser/usb/web_usb_detector.h
+++ b/chrome/browser/usb/web_usb_detector.h
@@ -40,7 +40,7 @@
   mojo::AssociatedBinding<device::mojom::UsbDeviceManagerClient>
       client_binding_;
 
-  base::WeakPtrFactory<WebUsbDetector> weak_factory_;
+  base::WeakPtrFactory<WebUsbDetector> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(WebUsbDetector);
 };
diff --git a/chrome/browser/usb/web_usb_service_impl.cc b/chrome/browser/usb/web_usb_service_impl.cc
index bceb5ea..031b384 100644
--- a/chrome/browser/usb/web_usb_service_impl.cc
+++ b/chrome/browser/usb/web_usb_service_impl.cc
@@ -23,8 +23,7 @@
     : render_frame_host_(render_frame_host),
       usb_chooser_(std::move(usb_chooser)),
       device_observer_(this),
-      permission_observer_(this),
-      weak_factory_(this) {
+      permission_observer_(this) {
   DCHECK(render_frame_host_);
   content::WebContents* web_contents =
       content::WebContents::FromRenderFrameHost(render_frame_host_);
diff --git a/chrome/browser/usb/web_usb_service_impl.h b/chrome/browser/usb/web_usb_service_impl.h
index e3761fc..a1b7b973 100644
--- a/chrome/browser/usb/web_usb_service_impl.h
+++ b/chrome/browser/usb/web_usb_service_impl.h
@@ -98,7 +98,7 @@
   ScopedObserver<ChooserContextBase, ChooserContextBase::PermissionObserver>
       permission_observer_;
 
-  base::WeakPtrFactory<WebUsbServiceImpl> weak_factory_;
+  base::WeakPtrFactory<WebUsbServiceImpl> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(WebUsbServiceImpl);
 };
diff --git a/chrome/browser/vr/assets_loader.cc b/chrome/browser/vr/assets_loader.cc
index 35f9c76e..9e06dfb 100644
--- a/chrome/browser/vr/assets_loader.cc
+++ b/chrome/browser/vr/assets_loader.cc
@@ -245,8 +245,7 @@
 
 AssetsLoader::AssetsLoader()
     : main_thread_task_runner_(base::CreateSingleThreadTaskRunnerWithTraits(
-          {content::BrowserThread::UI})),
-      weak_ptr_factory_(this) {
+          {content::BrowserThread::UI})) {
   DCHECK(main_thread_task_runner_.get());
 }
 
diff --git a/chrome/browser/vr/assets_loader.h b/chrome/browser/vr/assets_loader.h
index cddcf5d8..9069c5c 100644
--- a/chrome/browser/vr/assets_loader.h
+++ b/chrome/browser/vr/assets_loader.h
@@ -96,7 +96,7 @@
   std::unique_ptr<MetricsHelper> metrics_helper_;
   OnComponentReadyCallback on_component_ready_callback_;
 
-  base::WeakPtrFactory<AssetsLoader> weak_ptr_factory_;
+  base::WeakPtrFactory<AssetsLoader> weak_ptr_factory_{this};
 
   friend struct AssetsLoaderSingletonTrait;
 };
diff --git a/chrome/browser/vr/browser_renderer.cc b/chrome/browser/vr/browser_renderer.cc
index c85742f..0982c18f 100644
--- a/chrome/browser/vr/browser_renderer.cc
+++ b/chrome/browser/vr/browser_renderer.cc
@@ -35,8 +35,7 @@
       browser_(browser),
       ui_processing_time_(sliding_time_size),
       ui_controller_update_time_(sliding_time_size),
-      ui_(std::move(ui)),
-      weak_ptr_factory_(this) {
+      ui_(std::move(ui)) {
   scheduler_delegate_->SetBrowserRenderer(this);
 }
 
diff --git a/chrome/browser/vr/browser_renderer.h b/chrome/browser/vr/browser_renderer.h
index fdfd3be..999b79c 100644
--- a/chrome/browser/vr/browser_renderer.h
+++ b/chrome/browser/vr/browser_renderer.h
@@ -135,7 +135,7 @@
   // it must be destroyed before graphics_delegate_.
   std::unique_ptr<UiInterface> ui_;
 
-  base::WeakPtrFactory<BrowserRenderer> weak_ptr_factory_;
+  base::WeakPtrFactory<BrowserRenderer> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(BrowserRenderer);
 };
diff --git a/chrome/browser/vr/service/browser_xr_runtime.cc b/chrome/browser/vr/service/browser_xr_runtime.cc
index ec1dac3..c8e5df3 100644
--- a/chrome/browser/vr/service/browser_xr_runtime.cc
+++ b/chrome/browser/vr/service/browser_xr_runtime.cc
@@ -158,8 +158,7 @@
     : id_(id),
       runtime_(std::move(runtime)),
       display_info_(ValidateVRDisplayInfo(display_info.get(), id)),
-      binding_(this),
-      weak_ptr_factory_(this) {
+      binding_(this) {
   device::mojom::XRRuntimeEventListenerAssociatedPtr listener;
   binding_.Bind(mojo::MakeRequest(&listener));
 
diff --git a/chrome/browser/vr/service/browser_xr_runtime.h b/chrome/browser/vr/service/browser_xr_runtime.h
index 0bf45e5..fa77d1b 100644
--- a/chrome/browser/vr/service/browser_xr_runtime.h
+++ b/chrome/browser/vr/service/browser_xr_runtime.h
@@ -121,7 +121,7 @@
 
   base::ObserverList<BrowserXRRuntimeObserver> observers_;
 
-  base::WeakPtrFactory<BrowserXRRuntime> weak_ptr_factory_;
+  base::WeakPtrFactory<BrowserXRRuntime> weak_ptr_factory_{this};
 };
 
 }  // namespace vr
diff --git a/chrome/browser/vr/service/xr_device_impl.cc b/chrome/browser/vr/service/xr_device_impl.cc
index db3b47b..a0052f5 100644
--- a/chrome/browser/vr/service/xr_device_impl.cc
+++ b/chrome/browser/vr/service/xr_device_impl.cc
@@ -82,8 +82,7 @@
           render_frame_host ? render_frame_host->GetView()->HasFocus() : false),
       runtime_manager_(std::move(runtime_manager)),
       render_frame_host_(render_frame_host),
-      binding_(this),
-      weak_ptr_factory_(this) {
+      binding_(this) {
   binding_.Bind(std::move(request));
   magic_window_controllers_.set_connection_error_handler(base::BindRepeating(
       &XRDeviceImpl::OnInlineSessionDisconnected,
diff --git a/chrome/browser/vr/service/xr_device_impl.h b/chrome/browser/vr/service/xr_device_impl.h
index dad22da..da4f77ff 100644
--- a/chrome/browser/vr/service/xr_device_impl.h
+++ b/chrome/browser/vr/service/xr_device_impl.h
@@ -119,7 +119,7 @@
 
   InterfaceSet<device::mojom::XRSessionControllerPtr> magic_window_controllers_;
 
-  base::WeakPtrFactory<XRDeviceImpl> weak_ptr_factory_;
+  base::WeakPtrFactory<XRDeviceImpl> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(XRDeviceImpl);
 };
diff --git a/chrome/browser/vr/speech_recognizer.cc b/chrome/browser/vr/speech_recognizer.cc
index 55a14b5..0f1f90a 100644
--- a/chrome/browser/vr/speech_recognizer.cc
+++ b/chrome/browser/vr/speech_recognizer.cc
@@ -112,15 +112,13 @@
   int session_;
   base::string16 last_result_str_;
 
-  base::WeakPtrFactory<SpeechRecognizerOnIO> weak_factory_;
+  base::WeakPtrFactory<SpeechRecognizerOnIO> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(SpeechRecognizerOnIO);
 };
 
 SpeechRecognizerOnIO::SpeechRecognizerOnIO()
-    : speech_timeout_(new base::OneShotTimer()),
-      session_(kInvalidSessionId),
-      weak_factory_(this) {}
+    : speech_timeout_(new base::OneShotTimer()), session_(kInvalidSessionId) {}
 
 SpeechRecognizerOnIO::~SpeechRecognizerOnIO() {
   DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
@@ -303,8 +301,7 @@
           std::move(shared_url_loader_factory_info)),
       accept_language_(accept_language),
       locale_(locale),
-      speech_recognizer_on_io_(std::make_unique<SpeechRecognizerOnIO>()),
-      weak_factory_(this) {
+      speech_recognizer_on_io_(std::make_unique<SpeechRecognizerOnIO>()) {
   DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
 }
 
diff --git a/chrome/browser/vr/speech_recognizer.h b/chrome/browser/vr/speech_recognizer.h
index 3ce7ca7..7e3358ff 100644
--- a/chrome/browser/vr/speech_recognizer.h
+++ b/chrome/browser/vr/speech_recognizer.h
@@ -134,7 +134,7 @@
 
   // Note that this object is destroyed on IO thread.
   std::unique_ptr<SpeechRecognizerOnIO> speech_recognizer_on_io_;
-  base::WeakPtrFactory<SpeechRecognizer> weak_factory_;
+  base::WeakPtrFactory<SpeechRecognizer> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(SpeechRecognizer);
 };
diff --git a/chrome/browser/vr/ui.cc b/chrome/browser/vr/ui.cc
index a24b9d5..5536967 100644
--- a/chrome/browser/vr/ui.cc
+++ b/chrome/browser/vr/ui.cc
@@ -136,8 +136,7 @@
       input_manager_(std::make_unique<UiInputManager>(scene_.get())),
       keyboard_delegate_(std::move(keyboard_delegate)),
       text_input_delegate_(std::move(text_input_delegate)),
-      audio_delegate_(std::move(audio_delegate)),
-      weak_ptr_factory_(this) {
+      audio_delegate_(std::move(audio_delegate)) {
   UiInitialState state = ui_initial_state;
   if (text_input_delegate_) {
     text_input_delegate_->SetRequestFocusCallback(
diff --git a/chrome/browser/vr/ui.h b/chrome/browser/vr/ui.h
index 68e1f7f6a..f0a072d 100644
--- a/chrome/browser/vr/ui.h
+++ b/chrome/browser/vr/ui.h
@@ -234,7 +234,7 @@
   std::unique_ptr<TextInputDelegate> text_input_delegate_;
   std::unique_ptr<AudioDelegate> audio_delegate_;
 
-  base::WeakPtrFactory<Ui> weak_ptr_factory_;
+  base::WeakPtrFactory<Ui> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(Ui);
 };
diff --git a/chrome/browser/vr/ui_host/vr_ui_host_impl.cc b/chrome/browser/vr/ui_host/vr_ui_host_impl.cc
index 8c5404ea..6132399 100644
--- a/chrome/browser/vr/ui_host/vr_ui_host_impl.cc
+++ b/chrome/browser/vr/ui_host/vr_ui_host_impl.cc
@@ -126,8 +126,7 @@
                            device::mojom::XRCompositorHostPtr compositor)
     : compositor_(std::move(compositor)),
       main_thread_task_runner_(base::ThreadTaskRunnerHandle::Get()),
-      triggered_capturing_transience_(&triggered_capturing_state_model_),
-      weak_ptr_factory_(this) {
+      triggered_capturing_transience_(&triggered_capturing_state_model_) {
   DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
   DVLOG(1) << __func__;
 
diff --git a/chrome/browser/vr/ui_host/vr_ui_host_impl.h b/chrome/browser/vr/ui_host/vr_ui_host_impl.h
index e0ee1f7..c20f3d46 100644
--- a/chrome/browser/vr/ui_host/vr_ui_host_impl.h
+++ b/chrome/browser/vr/ui_host/vr_ui_host_impl.h
@@ -125,7 +125,7 @@
 
   THREAD_CHECKER(thread_checker_);
 
-  base::WeakPtrFactory<VRUiHostImpl> weak_ptr_factory_;
+  base::WeakPtrFactory<VRUiHostImpl> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(VRUiHostImpl);
 };
diff --git a/chrome/browser/web_applications/components/web_app_icon_downloader.cc b/chrome/browser/web_applications/components/web_app_icon_downloader.cc
index be23a89b0..4641d54 100644
--- a/chrome/browser/web_applications/components/web_app_icon_downloader.cc
+++ b/chrome/browser/web_applications/components/web_app_icon_downloader.cc
@@ -27,8 +27,7 @@
       extra_favicon_urls_(extra_favicon_urls),
       callback_(std::move(callback)),
       https_status_code_class_histogram_name_(
-          https_status_code_class_histogram_name),
-      weak_ptr_factory_(this) {}
+          https_status_code_class_histogram_name) {}
 
 WebAppIconDownloader::~WebAppIconDownloader() {}
 
diff --git a/chrome/browser/web_applications/components/web_app_icon_downloader.h b/chrome/browser/web_applications/components/web_app_icon_downloader.h
index 7137076..2ab0ea1e 100644
--- a/chrome/browser/web_applications/components/web_app_icon_downloader.h
+++ b/chrome/browser/web_applications/components/web_app_icon_downloader.h
@@ -113,7 +113,7 @@
   // The histogram name to log individual fetch results under.
   std::string https_status_code_class_histogram_name_;
 
-  base::WeakPtrFactory<WebAppIconDownloader> weak_ptr_factory_;
+  base::WeakPtrFactory<WebAppIconDownloader> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(WebAppIconDownloader);
 };
diff --git a/chrome/browser/web_applications/system_web_app_manager.cc b/chrome/browser/web_applications/system_web_app_manager.cc
index b07d20d..5243ca8 100644
--- a/chrome/browser/web_applications/system_web_app_manager.cc
+++ b/chrome/browser/web_applications/system_web_app_manager.cc
@@ -76,8 +76,7 @@
 
 SystemWebAppManager::SystemWebAppManager(Profile* profile)
     : on_apps_synchronized_(new base::OneShotEvent()),
-      pref_service_(profile->GetPrefs()),
-      weak_ptr_factory_(this) {
+      pref_service_(profile->GetPrefs()) {
   if (base::CommandLine::ForCurrentProcess()->HasSwitch(
           ::switches::kTestType)) {
     // Always update in tests, and return early to avoid populating with real
diff --git a/chrome/browser/web_applications/system_web_app_manager.h b/chrome/browser/web_applications/system_web_app_manager.h
index 5efc31c..a248e2f 100644
--- a/chrome/browser/web_applications/system_web_app_manager.h
+++ b/chrome/browser/web_applications/system_web_app_manager.h
@@ -126,7 +126,7 @@
 
   WebAppUiDelegate* ui_delegate_ = nullptr;
 
-  base::WeakPtrFactory<SystemWebAppManager> weak_ptr_factory_;
+  base::WeakPtrFactory<SystemWebAppManager> weak_ptr_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(SystemWebAppManager);
 };
diff --git a/chrome/browser/webauthn/authenticator_request_dialog_model.cc b/chrome/browser/webauthn/authenticator_request_dialog_model.cc
index 64de291..8074722 100644
--- a/chrome/browser/webauthn/authenticator_request_dialog_model.cc
+++ b/chrome/browser/webauthn/authenticator_request_dialog_model.cc
@@ -94,7 +94,7 @@
 
 AuthenticatorRequestDialogModel::AuthenticatorRequestDialogModel(
     const std::string& relying_party_id)
-    : relying_party_id_(relying_party_id), weak_factory_(this) {}
+    : relying_party_id_(relying_party_id) {}
 
 AuthenticatorRequestDialogModel::~AuthenticatorRequestDialogModel() {
   for (auto& observer : observers_)
diff --git a/chrome/browser/webauthn/authenticator_request_dialog_model.h b/chrome/browser/webauthn/authenticator_request_dialog_model.h
index b1c5c25..a67f1525 100644
--- a/chrome/browser/webauthn/authenticator_request_dialog_model.h
+++ b/chrome/browser/webauthn/authenticator_request_dialog_model.h
@@ -491,7 +491,7 @@
 
   bool incognito_mode_ = false;
 
-  base::WeakPtrFactory<AuthenticatorRequestDialogModel> weak_factory_;
+  base::WeakPtrFactory<AuthenticatorRequestDialogModel> weak_factory_{this};
 
   DISALLOW_COPY_AND_ASSIGN(AuthenticatorRequestDialogModel);
 };
diff --git a/chrome/browser/webauthn/chrome_authenticator_request_delegate.cc b/chrome/browser/webauthn/chrome_authenticator_request_delegate.cc
index fc3b5561..b4e3740 100644
--- a/chrome/browser/webauthn/chrome_authenticator_request_delegate.cc
+++ b/chrome/browser/webauthn/chrome_authenticator_request_delegate.cc
@@ -88,8 +88,7 @@
       relying_party_id_(relying_party_id),
       transient_dialog_model_holder_(
           std::make_unique<AuthenticatorRequestDialogModel>(relying_party_id)),
-      weak_dialog_model_(transient_dialog_model_holder_.get()),
-      weak_ptr_factory_(this) {}
+      weak_dialog_model_(transient_dialog_model_holder_.get()) {}
 
 ChromeAuthenticatorRequestDelegate::~ChromeAuthenticatorRequestDelegate() {
   // Currently, completion of the request is indicated by //content destroying
diff --git a/chrome/browser/webauthn/chrome_authenticator_request_delegate.h b/chrome/browser/webauthn/chrome_authenticator_request_delegate.h
index 49b404b..ca7748a 100644
--- a/chrome/browser/webauthn/chrome_authenticator_request_delegate.h
+++ b/chrome/browser/webauthn/chrome_authenticator_request_delegate.h
@@ -145,7 +145,8 @@
   // rendered and all request handler callbacks will be ignored.
   bool disable_ui_ = false;
 
-  base::WeakPtrFactory<ChromeAuthenticatorRequestDelegate> weak_ptr_factory_;
+  base::WeakPtrFactory<ChromeAuthenticatorRequestDelegate> weak_ptr_factory_{
+      this};
 
   DISALLOW_COPY_AND_ASSIGN(ChromeAuthenticatorRequestDelegate);
 };