Commit e9753daf authored by Nicholas Verne's avatar Nicholas Verne Committed by Commit Bot

Supports the new vsh-into-running-container syntax

It is no longer necessary to use the run_container.sh script every time a
container shell is needed. If the container is already running, vsh now allows
"direct access".

Bug: 848447
Change-Id: Ia9aeb120befd016386816cdd16fb3336b45426ff
Reviewed-on: https://chromium-review.googlesource.com/1082055Reviewed-by: default avatarTimothy Loh <timloh@chromium.org>
Commit-Queue: Nicholas Verne <nverne@chromium.org>
Cr-Commit-Position: refs/heads/master@{#563568}
parent baa63d79
......@@ -744,31 +744,28 @@ void CrostiniManager::LaunchContainerTerminal(
Profile* profile,
const std::string& vm_name,
const std::string& container_name) {
std::string container_username = ContainerUserNameForProfile(profile);
std::string vsh_crosh = base::StringPrintf(
"chrome-extension://%s/html/crosh.html?command=vmshell",
kCrostiniCroshBuiltinAppId);
std::string vm_name_param = net::EscapeQueryParamValue(
base::StringPrintf("--vm_name=%s", vm_name.c_str()), false);
std::string container_name_param = net::EscapeQueryParamValue(
base::StringPrintf("--target_container=%s", container_name.c_str()),
false);
std::string owner_id_param = net::EscapeQueryParamValue(
base::StringPrintf("--owner_id=%s",
CryptohomeIdForProfile(profile).c_str()),
false);
std::string lxd_dir =
net::EscapeQueryParamValue("LXD_DIR=/mnt/stateful/lxd", false);
std::string lxd_conf =
net::EscapeQueryParamValue("LXD_CONF=/mnt/stateful/lxd_conf", false);
const extensions::Extension* crosh_extension =
extensions::ExtensionRegistry::Get(profile)->GetInstalledExtension(
kCrostiniCroshBuiltinAppId);
std::vector<base::StringPiece> pieces = {
vsh_crosh, vm_name_param, owner_id_param, "--",
lxd_dir, lxd_conf, "run_container.sh", "--container_name",
container_name, "--user", container_username, "--shell"};
vsh_crosh, vm_name_param, container_name_param, owner_id_param};
GURL vsh_in_crosh_url(base::JoinString(pieces, "&args[]="));
const extensions::Extension* crosh_extension =
extensions::ExtensionRegistry::Get(profile)->GetInstalledExtension(
kCrostiniCroshBuiltinAppId);
AppLaunchParams launch_params(
profile, crosh_extension, extensions::LAUNCH_CONTAINER_WINDOW,
WindowOpenDisposition::NEW_WINDOW, extensions::SOURCE_APP_LAUNCHER);
......
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