Commit 24a34b8e authored by Nicholas Verne's avatar Nicholas Verne Committed by Commit Bot

Reland "Supports the new vsh-into-running-container syntax"

This is a reland of e9753daf

Original change's description:
> 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/1082055
> Reviewed-by: Timothy Loh <timloh@chromium.org>
> Commit-Queue: Nicholas Verne <nverne@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#563568}

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