Commit 0fadb60c authored by Yusuke Sato's avatar Yusuke Sato Committed by Commit Bot

arc: Add kEnableArcVm

BUG=b:118408409
TEST=try

Change-Id: Id4eab57052f4221d5150e68294f54a22821f22df
Reviewed-on: https://chromium-review.googlesource.com/c/1354400Reviewed-by: default avatarHidehiko Abe <hidehiko@chromium.org>
Commit-Queue: Yusuke Sato <yusukes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#612278}
parent 0d4e91e5
...@@ -296,6 +296,9 @@ const char kEnableArc[] = "enable-arc"; ...@@ -296,6 +296,9 @@ const char kEnableArc[] = "enable-arc";
// Enables "hide Skip button" for ARC setup in the OOBE flow. // Enables "hide Skip button" for ARC setup in the OOBE flow.
const char kEnableArcOobeOptinNoSkip[] = "enable-arc-oobe-optin-no-skip"; const char kEnableArcOobeOptinNoSkip[] = "enable-arc-oobe-optin-no-skip";
// Enables ARC VM.
const char kEnableArcVm[] = "enable-arcvm";
// Enables using a random url for captive portal detection. // Enables using a random url for captive portal detection.
const char kEnableCaptivePortalRandomUrl[] = "enable-captive-portal-random-url"; const char kEnableCaptivePortalRandomUrl[] = "enable-captive-portal-random-url";
......
...@@ -86,6 +86,7 @@ CHROMEOS_EXPORT extern const char kDisableVolumeAdjustSound[]; ...@@ -86,6 +86,7 @@ CHROMEOS_EXPORT extern const char kDisableVolumeAdjustSound[];
CHROMEOS_EXPORT extern const char kDisableWakeOnWifi[]; CHROMEOS_EXPORT extern const char kDisableWakeOnWifi[];
CHROMEOS_EXPORT extern const char kEnableArc[]; CHROMEOS_EXPORT extern const char kEnableArc[];
CHROMEOS_EXPORT extern const char kEnableArcOobeOptinNoSkip[]; CHROMEOS_EXPORT extern const char kEnableArcOobeOptinNoSkip[];
CHROMEOS_EXPORT extern const char kEnableArcVm[];
CHROMEOS_EXPORT extern const char kEnableCaptivePortalRandomUrl[]; CHROMEOS_EXPORT extern const char kEnableCaptivePortalRandomUrl[];
CHROMEOS_EXPORT extern const char kEnableCastReceiver[]; CHROMEOS_EXPORT extern const char kEnableCastReceiver[];
CHROMEOS_EXPORT extern const char kEnableChromevoxDeveloperOption[]; CHROMEOS_EXPORT extern const char kEnableChromevoxDeveloperOption[];
......
...@@ -71,6 +71,11 @@ bool IsArcAvailable() { ...@@ -71,6 +71,11 @@ bool IsArcAvailable() {
base::FeatureList::IsEnabled(kEnableArcFeature)); base::FeatureList::IsEnabled(kEnableArcFeature));
} }
bool IsArcVmEnabled() {
return base::CommandLine::ForCurrentProcess()->HasSwitch(
chromeos::switches::kEnableArcVm);
}
bool ShouldArcAlwaysStart() { bool ShouldArcAlwaysStart() {
const auto* command_line = base::CommandLine::ForCurrentProcess(); const auto* command_line = base::CommandLine::ForCurrentProcess();
if (!command_line->HasSwitch(chromeos::switches::kArcStartMode)) if (!command_line->HasSwitch(chromeos::switches::kArcStartMode))
......
...@@ -36,6 +36,9 @@ namespace arc { ...@@ -36,6 +36,9 @@ namespace arc {
// check, so it is ok to access them directly. // check, so it is ok to access them directly.
bool IsArcAvailable(); bool IsArcAvailable();
// Returns true if ARC VM is enabled.
bool IsArcVmEnabled();
// Returns true if ARC should always start within the primary user session // Returns true if ARC should always start within the primary user session
// (opted in user or not), and other supported mode such as guest and Kiosk // (opted in user or not), and other supported mode such as guest and Kiosk
// mode. // mode.
......
...@@ -155,6 +155,14 @@ TEST_F(ArcUtilTest, IsArcAvailable_OfficiallySupported) { ...@@ -155,6 +155,14 @@ TEST_F(ArcUtilTest, IsArcAvailable_OfficiallySupported) {
EXPECT_TRUE(IsArcKioskAvailable()); EXPECT_TRUE(IsArcKioskAvailable());
} }
TEST_F(ArcUtilTest, IsArcVmEnablede) {
EXPECT_FALSE(IsArcVmEnabled());
auto* command_line = base::CommandLine::ForCurrentProcess();
command_line->InitFromArgv({"", "--enable-arcvm"});
EXPECT_TRUE(IsArcVmEnabled());
}
// TODO(hidehiko): Add test for IsArcKioskMode(). // TODO(hidehiko): Add test for IsArcKioskMode().
// It depends on UserManager, but a utility to inject fake instance is // It depends on UserManager, but a utility to inject fake instance is
// available only in chrome/. To use it in components/, refactoring is needed. // available only in chrome/. To use it in components/, refactoring is needed.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment