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/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);
 };