Add isDemoSession to chrome.app.runtime LaunchData
Adds the |isDemoSession| boolean property to launch data for the
chrome.app.runtime.onLaunched event.
Built-in platform apps on Chrome OS will check this to enable special
Chrome OS Demo Mode behavior.
This CL adds the property as |false|; a follow-up CL will correctly set
it to |true| when the device is actually in Demo Mode.
Bug: 835024
Change-Id: Ie77f50f1551c3dfb00fff27e7779775ceca1f44d
Reviewed-on: https://chromium-review.googlesource.com/1121113
Reviewed-by: Devlin <[email protected]>
Reviewed-by: Sergey Volk <[email protected]>
Commit-Queue: Michael Giuffrida <[email protected]>
Cr-Commit-Position: refs/heads/master@{#574447}
diff --git a/extensions/browser/api/app_runtime/app_runtime_api.cc b/extensions/browser/api/app_runtime/app_runtime_api.cc
index 76088287..c8489e6 100644
--- a/extensions/browser/api/app_runtime/app_runtime_api.cc
+++ b/extensions/browser/api/app_runtime/app_runtime_api.cc
@@ -53,6 +53,9 @@
UMA_HISTOGRAM_ENUMERATION("Extensions.AppLaunchSource", source,
app_runtime::LaunchSource::LAUNCH_SOURCE_LAST + 1);
+ launch_data->SetBoolean("isDemoSession",
+ ExtensionsBrowserClient::Get()->IsInDemoMode());
+
// "Forced app mode" is true for Chrome OS kiosk mode.
launch_data->SetBoolean(
"isKioskSession",
diff --git a/extensions/browser/extensions_browser_client.h b/extensions/browser/extensions_browser_client.h
index 9e8ebb1..0a0003d 100644
--- a/extensions/browser/extensions_browser_client.h
+++ b/extensions/browser/extensions_browser_client.h
@@ -201,6 +201,9 @@
// ExternalProtocolHandler::PermitLaunchUrl() in Chrome.
virtual void PermitExternalProtocolHandler() = 0;
+ // Return true if the device is enrolled in Demo Mode.
+ virtual bool IsInDemoMode() = 0;
+
// Return true if the system is run in forced app mode.
virtual bool IsRunningInForcedAppMode() = 0;
diff --git a/extensions/browser/test_extensions_browser_client.cc b/extensions/browser/test_extensions_browser_client.cc
index 1975203..766f077 100644
--- a/extensions/browser/test_extensions_browser_client.cc
+++ b/extensions/browser/test_extensions_browser_client.cc
@@ -189,6 +189,10 @@
void TestExtensionsBrowserClient::PermitExternalProtocolHandler() {
}
+bool TestExtensionsBrowserClient::IsInDemoMode() {
+ return false;
+}
+
bool TestExtensionsBrowserClient::IsRunningInForcedAppMode() { return false; }
bool TestExtensionsBrowserClient::IsAppModeForcedForApp(
diff --git a/extensions/browser/test_extensions_browser_client.h b/extensions/browser/test_extensions_browser_client.h
index 9e0210d..5daf46d8 100644
--- a/extensions/browser/test_extensions_browser_client.h
+++ b/extensions/browser/test_extensions_browser_client.h
@@ -117,6 +117,7 @@
std::unique_ptr<ExtensionHostDelegate> CreateExtensionHostDelegate() override;
bool DidVersionUpdate(content::BrowserContext* context) override;
void PermitExternalProtocolHandler() override;
+ bool IsInDemoMode() override;
bool IsRunningInForcedAppMode() override;
bool IsAppModeForcedForApp(const ExtensionId& extension_id) override;
bool IsLoggedInAsPublicAccount() override;