blob: 1ad1d7db2d2a233139c2b2a935aa3560cc1a96a6 [file] [log] [blame]
// Copyright 2021 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";
package tast.cros.network;
import "google/protobuf/empty.proto";
option go_package = "chromiumos/tast/services/cros/network";
// AllowlistService tests that ChromeOS connectivity works as expected behind a
// firewall configured according to our support page.
service AllowlistService {
// SetupFirewall sets up a firewall using `iptables`, blocking https and https
// connections through the default ports (80,443). Only http/s connections
// coming from a specified port are allowed.
rpc SetupFirewall(SetupFirewallRequest) returns (google.protobuf.Empty) {}
// GaiaLogin starts a new Chrome instance behind a proxy and performs
// Chrome OS login using the specified credentials.
rpc GaiaLogin(GaiaLoginRequest) returns (google.protobuf.Empty) {}
// CheckArcAppInstalled verifies that a specified ARC app is installed.
rpc CheckArcAppInstalled(CheckArcAppInstalledRequest)
returns (google.protobuf.Empty) {}
// CheckExtensionInstalled verifies that specified extension is installed.
rpc CheckExtensionInstalled(CheckExtensionInstalledRequest)
returns (google.protobuf.Empty) {}
}
message SetupFirewallRequest {
// Must be a valid port number. Only http/s connection from this port are
// allowed by the firewall.
uint32 allowed_port = 1;
}
message GaiaLoginRequest {
string username = 1;
string password = 2;
// Host and port of an HTTP proxy, formatted as "<host>:<port>". The new
// instance of Chrome will point to the proxy via command line args.
string proxy_host_and_port = 3;
}
message CheckArcAppInstalledRequest { string app_name = 1; }
message CheckExtensionInstalledRequest { string extension_title = 1; }