blob: 60680ef6b7406bc8df452963996ea065dff5e4c2 [file] [log] [blame]
// Copyright 2018 The Chromium OS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
syntax = "proto3";
option optimize_for = LITE_RUNTIME;
package vm_tools.apps;
// Corresponds to a .desktop file from the Desktop Entry Spec:
// https://www.freedesktop.org/wiki/Specifications/desktop-entry-spec/
// with some additional parameters to support broader compatibility.
// This message is replicated in vm_tools/proto/container_host.proto, and the
// two definitions should be kept in sync.
message App {
// A "localestring". Entries with a locale should set the |locale| field to
// the value inside the [] and the default entry should leave it empty. The
// browser is responsible for mapping this to something it can use.
message LocaleString {
message Entry {
string locale = 1;
string value = 2;
}
repeated Entry values = 1;
}
// A repeated "localestring". Entries with a locale should set the |locale|
// field to the value inside the [], e.g for the key "Name[fr]", |locale|
// should be "fr"; for the default entry, |locale| should be empty. The
// browser is responsible for mapping this to something it can use.
message LocaleStrings {
message StringsWithLocale {
string locale = 1;
repeated string value = 2;
}
repeated StringsWithLocale values = 1;
}
// This is the 'key' for the application and used in other requests such as
// launching the application or retrieving its icon.
string desktop_file_id = 1;
// These fields map directly to keys from the Desktop Entry spec:
// https://specifications.freedesktop.org/desktop-entry-spec/latest/ar01s06.html.
LocaleString name = 2;
LocaleString comment = 3;
repeated string mime_types = 4;
bool no_display = 5;
string startup_wm_class = 6;
bool startup_notify = 7;
LocaleStrings keywords = 9;
string exec = 12;
// This is the first argument of the 'exec' key, representing the name of the
// executable.
string executable_file_name = 10;
// If set, the package_id of the installed package that owns this .desktop
// file. If not set, the .desktop file is not owned by an installed package.
string package_id = 8;
// Similar to |mime_types| for applications that do not support mime types.
repeated string extensions = 11;
}
message ApplicationList {
enum VmType {
TERMINA = 0;
PLUGIN_VM = 1;
BOREALIS = 2;
}
repeated App apps = 1;
string vm_name = 2;
string container_name = 3;
// The owner of the vm and container.
string owner_id = 4;
VmType vm_type = 5;
}
// Used by the container to request that the host launches a new Terminal
// application.
message TerminalParams {
// Extra parameters to use when launching a terminal application that allow
// executing a command inside the terminal.
repeated string params = 1;
// Name of the VM to launch the terminal in.
string vm_name = 2;
// Name of the container within the VM to launch the terminal in.
string container_name = 3;
// The owner of the VM and container.
string owner_id = 4;
// Current working directory, optional to override default home dir.
string cwd = 5;
}
// MIME type mapping information internal to the container.
message MimeTypes {
// MIME type mappings with file extension as the key without a period prefix
// and MIME type as the value.
map<string, string> mime_type_mappings = 1;
// Name of the VM this came from.
string vm_name = 2;
// Name of the container this came from.
string container_name = 3;
// The owner of the VM and container.
string owner_id = 4;
}