Commit 2d001317 authored by khmel@chromium.org's avatar khmel@chromium.org Committed by Commit Bot

arc: Handle switch arc-disable-system-default-apps

This handles this switch and set ARC request param accordingly.

TEST=Locally, unit test
BUG=b:147978162

Change-Id: I739fb91481ce054ab6e175100ead6dade246a418
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2042375
Commit-Queue: Yury Khmel <khmel@chromium.org>
Reviewed-by: default avatarYusuke Sato <yusukes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#739133}
parent e87ec01a
......@@ -93,6 +93,10 @@ const char kArcDisableGmsCoreCache[] = "arc-disable-gms-core-cache";
// 'en-US,en' as preferred languages.
const char kArcDisableLocaleSync[] = "arc-disable-locale-sync";
// Used for development of Android app that are included into ARC++ as system
// default apps in order to be able to install them via adb.
const char kArcDisableSystemDefaultApps[] = "arc-disable-system-default-apps";
// Flag that disables ARC Play Auto Install flow that installs set of predefined
// apps silently. Used in autotests to resolve racy conditions.
const char kArcDisablePlayAutoInstall[] = "arc-disable-play-auto-install";
......
......@@ -42,6 +42,8 @@ COMPONENT_EXPORT(CHROMEOS_CONSTANTS)
extern const char kArcDisableGmsCoreCache[];
COMPONENT_EXPORT(CHROMEOS_CONSTANTS) extern const char kArcDisableLocaleSync[];
COMPONENT_EXPORT(CHROMEOS_CONSTANTS)
extern const char kArcDisableSystemDefaultApps[];
COMPONENT_EXPORT(CHROMEOS_CONSTANTS)
extern const char kArcDisablePlayAutoInstall[];
COMPONENT_EXPORT(CHROMEOS_CONSTANTS) extern const char kArcForceCacheAppIcons[];
COMPONENT_EXPORT(CHROMEOS_CONSTANTS) extern const char kArcForceShowOptInUi[];
......
......@@ -98,6 +98,8 @@ class ArcContainerClientAdapter
request.set_arc_custom_tabs_experiment(params.arc_custom_tabs_experiment);
request.set_arc_print_spooler_experiment(
params.arc_print_spooler_experiment);
request.set_disable_system_default_app(
params.arc_disable_system_default_app);
chromeos::SessionManagerClient::Get()->StartArcMiniContainer(
request, std::move(callback));
......
......@@ -398,6 +398,10 @@ void ArcSessionImpl::DoStartMiniInstance(size_t num_cores_disabled) {
}
}
params.arc_disable_system_default_app =
base::CommandLine::ForCurrentProcess()->HasSwitch(
chromeos::switches::kArcDisableSystemDefaultApps);
VLOG(1) << "Starting ARC mini instance with lcd_density="
<< params.lcd_density
<< ", num_cores_disabled=" << params.num_cores_disabled;
......
......@@ -43,6 +43,9 @@ struct StartParams {
// Experiment flag for ARC Print Spooler.
bool arc_print_spooler_experiment = false;
// Flag to disable system default apps.
bool arc_disable_system_default_app = false;
// The number of logical CPU cores that are currently disabled on the host.
// This parameter is used only for starting ARCVM.
uint32_t num_cores_disabled = 0;
......
......@@ -110,6 +110,8 @@ std::vector<std::string> GenerateKernelCmdline(
start_params.arc_custom_tabs_experiment),
base::StringPrintf("androidboot.arc_print_spooler=%d",
start_params.arc_print_spooler_experiment),
base::StringPrintf("androidboot.disable_system_default_app=%d",
start_params.arc_disable_system_default_app),
"androidboot.chromeos_channel=" + channel,
"androidboot.boottime_offset=" + MonotonicTimestamp(),
// TODO(yusukes): remove this once arcvm supports SELinux.
......
......@@ -593,6 +593,21 @@ TEST_F(ArcVmClientAdapterTest, StartUpgradeArc_DemoMode) {
EXPECT_TRUE(base::Contains(request.params(), "androidboot.arc_demo_mode=1"));
}
TEST_F(ArcVmClientAdapterTest, StartUpgradeArc_DisableSystemDefaultApp) {
StartParams start_params(GetPopulatedStartParams());
start_params.arc_disable_system_default_app = true;
SetValidUserInfo();
StartMiniArcWithParams(std::move(start_params));
UpgradeParams params(GetPopulatedUpgradeParams());
UpgradeArcWithParams(true, std::move(params));
EXPECT_TRUE(GetStartConciergeCalled());
EXPECT_TRUE(GetTestConciergeClient()->start_arc_vm_called());
EXPECT_FALSE(arc_instance_stopped_called());
EXPECT_TRUE(
base::Contains(GetTestConciergeClient()->start_arc_vm_request().params(),
"androidboot.disable_system_default_app=1"));
}
// Tests that StartArcVm() is called with valid parameters.
TEST_F(ArcVmClientAdapterTest, UpgradeArc_StartArcVmParams) {
SetValidUserInfo();
......
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