Add PrefStore::GetValues

Currently there's no way to proxy a PrefStore, which we need to
in the new prefs service, because there's no way to get its
initial state. The existing observer interface can only be used
to get changed values and GetValue requires that you know all the
keys in advance.

GetValues involve a deep copy, but the intended consumer needs to
take ownership to send the value over the wire anyway.

Design doc: https://docs.google.com/document/d/1Fj013SXClTzk4Yfq2eoL9OkKfN0h-GLXPAokCXFkcTY/edit?usp=sharing

BUG=654988

Review-Url: https://codereview.chromium.org/2692203007
Cr-Commit-Position: refs/heads/master@{#451691}
Committed: https://chromium.googlesource.com/chromium/src/+/311d4a192239299e42e66b1319b19ee58a5a4b06
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.android:android_cronet_tester

Review-Url: https://codereview.chromium.org/2692203007
Cr-Commit-Position: refs/heads/master@{#452336}
diff --git a/components/prefs/value_map_pref_store.h b/components/prefs/value_map_pref_store.h
index 8310a9b..34d1095 100644
--- a/components/prefs/value_map_pref_store.h
+++ b/components/prefs/value_map_pref_store.h
@@ -25,6 +25,7 @@
   // PrefStore overrides:
   bool GetValue(const std::string& key,
                 const base::Value** value) const override;
+  std::unique_ptr<base::DictionaryValue> GetValues() const override;
   void AddObserver(PrefStore::Observer* observer) override;
   void RemoveObserver(PrefStore::Observer* observer) override;
   bool HasObservers() const override;