Retire the non-traits versions of ScopedObservation<> and
ScopedMultiSourceObservation<>

This CL removes the option to specify function pointers in templates --
all instantiations should rely on ScopedObservationTraits<> from now on.

Bug: 1380837

Change-Id: I057bcd5d7938d8e20b618e4928326c8c2e317f3b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4016378
Reviewed-by: Daniel Cheng <[email protected]>
Commit-Queue: Andrew Rayskiy <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1070075}
diff --git a/base/scoped_multi_source_observation_unittest.cc b/base/scoped_multi_source_observation_unittest.cc
index c4eba8e..0cd8953 100644
--- a/base/scoped_multi_source_observation_unittest.cc
+++ b/base/scoped_multi_source_observation_unittest.cc
@@ -6,6 +6,7 @@
 
 #include "base/containers/contains.h"
 #include "base/ranges/algorithm.h"
+#include "base/scoped_observation_traits.h"
 #include "base/test/gtest_util.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
@@ -190,12 +191,23 @@
 
 using TestScopedMultiSourceObservationWithNonDefaultNames =
     ScopedMultiSourceObservation<TestSourceWithNonDefaultNames,
-                                 TestSourceObserver,
-                                 &TestSourceWithNonDefaultNames::AddFoo,
-                                 &TestSourceWithNonDefaultNames::RemoveFoo>;
+                                 TestSourceObserver>;
 
 }  // namespace
 
+template <>
+struct ScopedObservationTraits<TestSourceWithNonDefaultNames,
+                               TestSourceObserver> {
+  static void AddObserver(TestSourceWithNonDefaultNames* source,
+                          TestSourceObserver* observer) {
+    source->AddFoo(observer);
+  }
+  static void RemoveObserver(TestSourceWithNonDefaultNames* source,
+                             TestSourceObserver* observer) {
+    source->RemoveFoo(observer);
+  }
+};
+
 TEST_F(ScopedMultiSourceObservationTest, NonDefaultNames) {
   TestSourceWithNonDefaultNames nds1;