UpdateExtensionPref will take unique_ptr<Value>

...instead of a raw pointer, to clarify ownership and help avoid errors.

This CL:
* changes ExtensionScopedPref::UpdateExtensionPref to require a unique_ptr<Value> to be passed in,
* changes ContentSettingsStore::GetSettingsForExtension to return a unique_ptr
* does all the mechanical changes to callsites to make this compile.

BUG=688848
[email protected], [email protected], [email protected]

Review-Url: https://codereview.chromium.org/2760193002
Cr-Commit-Position: refs/heads/master@{#458720}
diff --git a/chrome/browser/extensions/extension_message_bubble_controller.cc b/chrome/browser/extensions/extension_message_bubble_controller.cc
index 0d56e48..268b913 100644
--- a/chrome/browser/extensions/extension_message_bubble_controller.cc
+++ b/chrome/browser/extensions/extension_message_bubble_controller.cc
@@ -77,8 +77,9 @@
   if (pref_name.empty())
     return;
   extensions::ExtensionPrefs* prefs = extensions::ExtensionPrefs::Get(profile_);
-  prefs->UpdateExtensionPref(extension_id, pref_name,
-                             value ? new base::Value(value) : NULL);
+  prefs->UpdateExtensionPref(
+      extension_id, pref_name,
+      value ? base::MakeUnique<base::Value>(value) : nullptr);
 }
 
 std::string