Use std::unique_ptr expressing ownership in PrefService and PrefServiceSyncable.

Change-Id: I2fe10a0aa80796b4af0a36c7db355cfa8b8144e7
Bug: 
Reviewed-on: https://chromium-review.googlesource.com/790112
Reviewed-by: Jochen Eisinger <[email protected]>
Reviewed-by: Sam McNally <[email protected]>
Commit-Queue: François Degros <[email protected]>
Cr-Commit-Position: refs/heads/master@{#521238}
diff --git a/components/prefs/pref_value_store.h b/components/prefs/pref_value_store.h
index 3895fa790..4181d11 100644
--- a/components/prefs/pref_value_store.h
+++ b/components/prefs/pref_value_store.h
@@ -6,6 +6,7 @@
 #define COMPONENTS_PREFS_PREF_VALUE_STORE_H_
 
 #include <map>
+#include <memory>
 #include <string>
 #include <type_traits>
 #include <vector>
@@ -115,7 +116,7 @@
   // by the parameters passed, if unequal NULL.
   //
   // The new PrefValueStore is passed the |delegate| in its constructor.
-  PrefValueStore* CloneAndSpecialize(
+  std::unique_ptr<PrefValueStore> CloneAndSpecialize(
       PrefStore* managed_prefs,
       PrefStore* supervised_user_prefs,
       PrefStore* extension_prefs,