Add public session launch flag

This CL adds a flag to the launchData in chrome.runtime.app.onLaunched
to indicate whether the app is being launched in a public session.

BUG=508608

Review URL: https://codereview.chromium.org/1375353002

Cr-Commit-Position: refs/heads/master@{#351696}
diff --git a/chrome/browser/extensions/chrome_extensions_browser_client.cc b/chrome/browser/extensions/chrome_extensions_browser_client.cc
index e2dce03..c1eb2d74 100644
--- a/chrome/browser/extensions/chrome_extensions_browser_client.cc
+++ b/chrome/browser/extensions/chrome_extensions_browser_client.cc
@@ -50,6 +50,7 @@
 #include "chrome/browser/extensions/updater/chromeos_extension_cache_delegate.h"
 #include "chrome/browser/extensions/updater/extension_cache_impl.h"
 #include "chromeos/chromeos_switches.h"
+#include "components/user_manager/user_manager.h"
 #else
 #include "extensions/browser/updater/null_extension_cache.h"
 #endif
@@ -225,6 +226,14 @@
   return chrome::IsRunningInForcedAppMode();
 }
 
+bool ChromeExtensionsBrowserClient::IsLoggedInAsPublicAccount() {
+#if defined(OS_CHROMEOS)
+  return user_manager::UserManager::Get()->IsLoggedInAsPublicAccount();
+#else
+  return false;
+#endif
+}
+
 ApiActivityMonitor* ChromeExtensionsBrowserClient::GetApiActivityMonitor(
     content::BrowserContext* context) {
   // The ActivityLog monitors and records function calls and events.