Begin implementation of Crostini App Registry

This patch begins the implementation of the Crostini App Registry, which
will be used to maintain a cache of the installed apps so that we can
populate the app launcher without requiring Crostini to be running.
For now we just support the most basic fields from .desktop files, but
this will be expanded later to support other fields and localization.

We key the stored data off an extension id generated from the desktop
file id to simplify integration with the App List, which currently
expects the id to be a valid extension id.

Bug: 821662
Change-Id: I196de114cf975c1402dce4b7550bc4eb5ce0ef1e
Reviewed-on: https://chromium-review.googlesource.com/961169
Reviewed-by: Xiyuan Xia <[email protected]>
Reviewed-by: Nicholas Verne <[email protected]>
Reviewed-by: Sam McNally <[email protected]>
Reviewed-by: Bernhard Bauer <[email protected]>
Commit-Queue: Timothy Loh <[email protected]>
Cr-Commit-Position: refs/heads/master@{#544929}
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
index 91b4eb6..3bc58b8 100644
--- a/chrome/browser/prefs/browser_prefs.cc
+++ b/chrome/browser/prefs/browser_prefs.cc
@@ -201,6 +201,7 @@
 #include "chrome/browser/chromeos/app_mode/kiosk_app_manager.h"
 #include "chrome/browser/chromeos/arc/arc_session_manager.h"
 #include "chrome/browser/chromeos/arc/policy/arc_policy_bridge.h"
+#include "chrome/browser/chromeos/crostini/crostini_registry_service.h"
 #include "chrome/browser/chromeos/customization/customization_document.h"
 #include "chrome/browser/chromeos/display/display_prefs.h"
 #include "chrome/browser/chromeos/extensions/echo_private_api.h"
@@ -622,6 +623,7 @@
 
 #if defined(OS_CHROMEOS)
   arc::prefs::RegisterProfilePrefs(registry);
+  chromeos::CrostiniRegistryService::RegisterProfilePrefs(registry);
   chromeos::first_run::RegisterProfilePrefs(registry);
   chromeos::file_system_provider::RegisterProfilePrefs(registry);
   chromeos::KeyPermissions::RegisterProfilePrefs(registry);