component updater: persistent metadata.
Add a table to track cross-profile component usage. The table is a
protobuf that has entries recording component usage for each component
installed.
When a user signs in:
Component updater adds component usage entry when Load is called AND a
component is loaded(succeed or fail). Component updater deletes component
usage entry when Unload is called.
When no user signs in:
No entry is added or deleted.
BUG=chromium:811431
TEST=unittest
platform_AddPrinter.epson
e2e test: Load/Unload when multiple users sign in/sign out. Manually check
persistent metadata/component existence is corrrect after each operation.
TODO: have an autotest to cover the e2e test. crbug.com/839542
Change-Id: I5e72ee8734adf6c6f1d8e885f4a41ebd33822af2
Reviewed-on: https://chromium-review.googlesource.com/946559
Commit-Queue: Xiaochu Liu <[email protected]>
Reviewed-by: Lei Zhang <[email protected]>
Reviewed-by: Joshua Pawlicki <[email protected]>
Cr-Commit-Position: refs/heads/master@{#557785}
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
index 00bb7e3..793b6af 100644
--- a/chrome/browser/prefs/browser_prefs.cc
+++ b/chrome/browser/prefs/browser_prefs.cc
@@ -143,6 +143,7 @@
#include "extensions/browser/extension_prefs.h"
#if defined(OS_CHROMEOS)
#include "chrome/browser/chromeos/login/easy_unlock/easy_unlock_service.h"
+#include "chrome/browser/component_updater/metadata_table_chromeos.h"
#endif
#endif // BUILDFLAG(ENABLE_EXTENSIONS)
@@ -434,6 +435,7 @@
chromeos::UserImageManager::RegisterPrefs(registry);
chromeos::UserSessionManager::RegisterPrefs(registry);
chromeos::echo_offer::RegisterPrefs(registry);
+ component_updater::MetadataTable::RegisterPrefs(registry);
cryptauth::CryptAuthDeviceIdProviderImpl::RegisterLocalPrefs(registry);
extensions::ExtensionAssetsManagerChromeOS::RegisterPrefs(registry);
extensions::lock_screen_data::LockScreenItemStorage::RegisterLocalState(