WebApp: record both application and user preference for display mode

We persist both the app's preference and the user's preference for
the display mode.

The user's preference (open in Browser tab or in Standalone window) was already being stored and synced.
This field is renamed as user_display_mode.

We now additionally store the app's preference, as display_mode. Note it is only stored locally, not synced.

Not yet implemented: recording app's preferred display mode
in the extensions-based implementation of bookmark apps -
crbug.com/1014346

[email protected]

Bug: 1014347, 1013968
Change-Id: Icab31053e40761194f62e961e3317acea655bca6
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1882197
Commit-Queue: Eric Willigers <[email protected]>
Reviewed-by: Marc Treib <[email protected]>
Reviewed-by: Alan Cutter <[email protected]>
Reviewed-by: Alexey Baskakov <[email protected]>
Cr-Commit-Position: refs/heads/master@{#710294}
diff --git a/chrome/browser/web_applications/web_app_database.h b/chrome/browser/web_applications/web_app_database.h
index ce62631..ef5ea55 100644
--- a/chrome/browser/web_applications/web_app_database.h
+++ b/chrome/browser/web_applications/web_app_database.h
@@ -13,6 +13,7 @@
 #include "base/optional.h"
 #include "base/sequence_checker.h"
 #include "chrome/browser/web_applications/components/web_app_helpers.h"
+#include "chrome/browser/web_applications/proto/web_app.pb.h"
 #include "chrome/browser/web_applications/web_app_registrar.h"
 #include "components/sync/model/model_type_store.h"
 #include "components/sync/protocol/web_app_specifics.pb.h"
@@ -93,11 +94,17 @@
 };
 
 blink::mojom::DisplayMode ToMojomDisplayMode(
-    ::sync_pb::WebAppSpecifics::DisplayMode display_mode);
+    WebAppProto::DisplayMode display_mode);
 
-::sync_pb::WebAppSpecifics::DisplayMode ToWebAppSpecificsDisplayMode(
+blink::mojom::DisplayMode ToMojomDisplayMode(
+    ::sync_pb::WebAppSpecifics::UserDisplayMode user_display_mode);
+
+WebAppProto::DisplayMode ToWebAppProtoDisplayMode(
     blink::mojom::DisplayMode display_mode);
 
+::sync_pb::WebAppSpecifics::UserDisplayMode ToWebAppSpecificsUserDisplayMode(
+    blink::mojom::DisplayMode user_display_mode);
+
 }  // namespace web_app
 
 #endif  // CHROME_BROWSER_WEB_APPLICATIONS_WEB_APP_DATABASE_H_