Remove most ScopedVector usage from c/b/extensions.

Replace them with vector<unique_ptr<T>>.

After this CL there will be only 3 places where ScopedVector
would still be around. Since those (language_settings_private_delegate.cc,
web_navigation_apitest.cc and chrome_content_browser_client_extensions_part.cc)
are non-trivial, I will try to remove ScopedVector from them in subsequent CLs.

BUG=556939
Test=None, internal only change.

Review-Url: https://codereview.chromium.org/2310683002
Cr-Commit-Position: refs/heads/master@{#417042}
diff --git a/chrome/browser/extensions/extension_management.h b/chrome/browser/extensions/extension_management.h
index b3010588..9d9831e8 100644
--- a/chrome/browser/extensions/extension_management.h
+++ b/chrome/browser/extensions/extension_management.h
@@ -12,7 +12,6 @@
 #include "base/containers/scoped_ptr_hash_map.h"
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
-#include "base/memory/scoped_vector.h"
 #include "base/memory/singleton.h"
 #include "base/observer_list.h"
 #include "base/values.h"
@@ -82,7 +81,8 @@
 
   // Get the list of ManagementPolicy::Provider controlled by extension
   // management policy settings.
-  std::vector<ManagementPolicy::Provider*> GetProviders() const;
+  const std::vector<std::unique_ptr<ManagementPolicy::Provider>>& GetProviders()
+      const;
 
   // Checks if extensions are blacklisted by default, by policy. When true,
   // this means that even extensions without an ID should be blacklisted (e.g.
@@ -187,7 +187,7 @@
 
   base::ObserverList<Observer, true> observer_list_;
   PrefChangeRegistrar pref_change_registrar_;
-  ScopedVector<ManagementPolicy::Provider> providers_;
+  std::vector<std::unique_ptr<ManagementPolicy::Provider>> providers_;
 
   DISALLOW_COPY_AND_ASSIGN(ExtensionManagement);
 };