update_client: write pv and fp in prefs.

This CL allows the update_client to persist some component
metadata in prefs during Component::StateUpdated.

New functions were added to update_client::PersistedData to provide
access to these persisted members.

The persisted data is not used in any Chrome component updater
execution flows but the data is going be used by //chrome/updater to
query the version of CRXs installed by update client.

Bug: 1052164
Change-Id: I48c62e9dea12ec8a68d7ad003d3651b90df7b26e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2063148
Reviewed-by: Joshua Pawlicki <[email protected]>
Commit-Queue: Sorin Jianu <[email protected]>
Cr-Commit-Position: refs/heads/master@{#742668}
diff --git a/components/update_client/persisted_data_unittest.cc b/components/update_client/persisted_data_unittest.cc
index 7f7ae6e..6b107d1 100644
--- a/components/update_client/persisted_data_unittest.cc
+++ b/components/update_client/persisted_data_unittest.cc
@@ -7,6 +7,7 @@
 #include <string>
 #include <vector>
 
+#include "base/version.h"
 #include "components/prefs/testing_pref_service.h"
 #include "components/update_client/activity_data_service.h"
 #include "components/update_client/persisted_data.h"
@@ -50,6 +51,15 @@
   EXPECT_FALSE(pf2.empty());
   // The following has a 1 / 2^128 chance of being flaky.
   EXPECT_NE(pf1, pf2);
+
+  EXPECT_FALSE(metadata->GetProductVersion("someappid").IsValid());
+  metadata->SetProductVersion("someappid", base::Version("1.0"));
+  EXPECT_EQ(base::Version("1.0"), metadata->GetProductVersion("someappid"));
+
+  EXPECT_TRUE(metadata->GetFingerprint("someappid").empty());
+  metadata->SetFingerprint("someappid", "somefingerprint");
+  EXPECT_STREQ("somefingerprint",
+               metadata->GetFingerprint("someappid").c_str());
 }
 
 TEST(PersistedDataTest, SharedPref) {