Adopt base::NoDestructor for KeyedService factories

For changes under /chrome/browser/autofill

It replaces base::Singleton, following the latest recommendation
in base/ and browser_context_keyed_service_factory.h.

For factories with a trivial destructor, it makes no difference.

LSC doc:
https://docs.google.com/document/d/1x1LqRQyfBOmpMkNQBYs7QBPSxLtuiImvmgcJYI_kaS4/edit?usp=sharing

This CL was uploaded by git cl split.

[email protected]

Bug: 925323
Change-Id: Id285df999e7af5e53e06f6a892c6705ac39bc994
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4573382
Reviewed-by: Maxim Kolosovskiy <[email protected]>
Auto-Submit: Mikel Astiz <[email protected]>
Commit-Queue: Maxim Kolosovskiy <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1150401}
diff --git a/chrome/browser/autofill/iban_manager_factory.h b/chrome/browser/autofill/iban_manager_factory.h
index b669b23..9fff74e 100644
--- a/chrome/browser/autofill/iban_manager_factory.h
+++ b/chrome/browser/autofill/iban_manager_factory.h
@@ -10,7 +10,7 @@
 
 namespace base {
 template <typename T>
-struct DefaultSingletonTraits;
+class NoDestructor;
 }
 
 class Profile;
@@ -29,7 +29,7 @@
   static IBANManagerFactory* GetInstance();
 
  private:
-  friend struct base::DefaultSingletonTraits<IBANManagerFactory>;
+  friend base::NoDestructor<IBANManagerFactory>;
 
   IBANManagerFactory();
   ~IBANManagerFactory() override;