mirror of
https://github.com/klzgrad/naiveproxy.git
synced 2024-11-28 16:26:10 +03:00
311 lines
12 KiB
Plaintext
311 lines
12 KiB
Plaintext
|
// Copyright 2015 The Chromium Authors. All rights reserved.
|
||
|
// Use of this source code is governed by a BSD-style license that can be
|
||
|
// found in the LICENSE file.
|
||
|
//
|
||
|
// Next MinVersion: 27
|
||
|
|
||
|
module arc.mojom;
|
||
|
|
||
|
import "gfx.mojom";
|
||
|
import "scale_factor.mojom";
|
||
|
|
||
|
// Describes OrientationLock request.
|
||
|
// Note: ChromeOS currently assumes the internal panel is always landscape.
|
||
|
// All rotation angles mentioned here are measured clockwise.
|
||
|
[Extensible]
|
||
|
enum OrientationLock {
|
||
|
NONE = 0,
|
||
|
// Rotated 90 or 270 deg.
|
||
|
PORTRAIT = 1,
|
||
|
// Rotated 0 or 180 deg.
|
||
|
LANDSCAPE = 2,
|
||
|
// Keep the current orientation.
|
||
|
CURRENT = 3,
|
||
|
// Rotated 90 deg.
|
||
|
PORTRAIT_PRIMARY = 4,
|
||
|
// Rotated 0 deg.
|
||
|
LANDSCAPE_PRIMARY = 5,
|
||
|
// Rotated 270 deg.
|
||
|
PORTRAIT_SECONDARY = 6,
|
||
|
// Rotated 180 deg.
|
||
|
LANDSCAPE_SECONDARY = 7,
|
||
|
};
|
||
|
|
||
|
// Describes installation result.
|
||
|
struct InstallationResult {
|
||
|
string package_name;
|
||
|
bool success; // true if app was installed successfully.
|
||
|
};
|
||
|
|
||
|
// Describes ARC app.
|
||
|
struct AppInfo {
|
||
|
string name;
|
||
|
string package_name;
|
||
|
string activity;
|
||
|
[MinVersion=2] bool sticky; // true if the app cannot be uninstalled
|
||
|
[MinVersion=7] bool notifications_enabled;
|
||
|
[MinVersion=12] OrientationLock orientation_lock;
|
||
|
};
|
||
|
|
||
|
// Describes ARC package.
|
||
|
struct ArcPackageInfo {
|
||
|
string package_name;
|
||
|
int32 package_version;
|
||
|
int64 last_backup_android_id;
|
||
|
int64 last_backup_time;
|
||
|
bool sync; // true if package installation should be synced
|
||
|
[MinVersion=11] bool system; // true if package is system package.
|
||
|
// true if package registers VPNService intent.
|
||
|
[MinVersion=25] bool vpn_provider;
|
||
|
};
|
||
|
|
||
|
// Describes ARC app shortcut.
|
||
|
struct ShortcutInfo {
|
||
|
string name;
|
||
|
string package_name;
|
||
|
string icon_resource_id;
|
||
|
string intent_uri;
|
||
|
};
|
||
|
|
||
|
// Page for ShowPackageInfoOnPage.
|
||
|
[Extensible]
|
||
|
enum ShowPackageInfoPage {
|
||
|
// The main package info page.
|
||
|
MAIN = 0,
|
||
|
|
||
|
// Page for managing links assigned to the app.
|
||
|
MANAGE_LINKS = 1,
|
||
|
};
|
||
|
|
||
|
// Describes a Play Store app discovery result.
|
||
|
struct AppDiscoveryResult {
|
||
|
string? launch_intent_uri;
|
||
|
string? install_intent_uri;
|
||
|
string? label;
|
||
|
bool is_instant_app;
|
||
|
bool is_recent;
|
||
|
string? publisher_name;
|
||
|
string? formatted_price;
|
||
|
float review_score;
|
||
|
array<uint8> icon_png_data;
|
||
|
[MinVersion=22] string? package_name;
|
||
|
};
|
||
|
|
||
|
// Describes the status of an app discovery request, including completed
|
||
|
// states and all possible anomalies.
|
||
|
[Extensible]
|
||
|
enum AppDiscoveryRequestState {
|
||
|
// Request handled successfully.
|
||
|
SUCCESS = 0,
|
||
|
// Request canceled when a newer request is sent.
|
||
|
CANCELED = 1,
|
||
|
// Request failed due to any communication error or Play Store internal error.
|
||
|
ERROR_DEPRECATED = 2,
|
||
|
|
||
|
// All possible reasons of ending a request:
|
||
|
// PlayStoreProxyService is not available.
|
||
|
PLAY_STORE_PROXY_NOT_AVAILABLE = 3,
|
||
|
// It fails to cancel the previous request.
|
||
|
FAILED_TO_CALL_CANCEL = 4,
|
||
|
// It fails to call findApps API.
|
||
|
FAILED_TO_CALL_FINDAPPS = 5,
|
||
|
// It comes with invalid parameters.
|
||
|
REQUEST_HAS_INVALID_PARAMS = 6,
|
||
|
// It times out.
|
||
|
REQUEST_TIMEOUT = 7,
|
||
|
// At least one result returned from Phonesky has an unmatched request code.
|
||
|
PHONESKY_RESULT_REQUEST_CODE_UNMATCHED = 8,
|
||
|
// At least one result returned from Phonesky has an unmatched session id.
|
||
|
PHONESKY_RESULT_SESSION_ID_UNMATCHED = 9,
|
||
|
// Phonesky returns with an unmatched request code.
|
||
|
PHONESKY_REQUEST_REQUEST_CODE_UNMATCHED = 10,
|
||
|
// The app discovery service is not available.
|
||
|
PHONESKY_APP_DISCOVERY_NOT_AVAILABLE = 11,
|
||
|
// The installed Phonesky version doesn't support app discovery.
|
||
|
PHONESKY_VERSION_NOT_SUPPORTED = 12,
|
||
|
// It gets an unexpected exception from Phonesky.
|
||
|
PHONESKY_UNEXPECTED_EXCEPTION = 13,
|
||
|
// The Phonesky app discovery service thinks it's malformed.
|
||
|
PHONESKY_MALFORMED_QUERY = 14,
|
||
|
// An internal error happens in Phonesky while processing the request.
|
||
|
PHONESKY_INTERNAL_ERROR = 15,
|
||
|
// At least one result returned with invalid app data.
|
||
|
PHONESKY_RESULT_INVALID_DATA = 16,
|
||
|
};
|
||
|
|
||
|
// Next method ID: 18
|
||
|
interface AppHost {
|
||
|
// Sends newly added ARC app to Chrome. This message is sent when ARC receives
|
||
|
// package added notification. Multiple apps may be added in the one package.
|
||
|
[MinVersion=1] OnAppAddedDeprecated@2(AppInfo app);
|
||
|
|
||
|
// Receives an icon of required |scale_factor| for specific ARC app. The app
|
||
|
// is defined by |package_name| and |activity|. The icon content cannot be
|
||
|
// empty and must match to |scale_factor| assuming 48x48 for
|
||
|
// SCALE_FACTOR_100P. |scale_factor| is an enum defined at ui/base/layout.h.
|
||
|
// |icon_png_data| is a png-encoded image.
|
||
|
OnAppIcon@1(string package_name, string activity,
|
||
|
ScaleFactor scale_factor, array<uint8> icon_png_data);
|
||
|
|
||
|
// Receives a list of available ARC apps to Chrome. Members of AppInfo must
|
||
|
// contain non-empty string.
|
||
|
OnAppListRefreshed@0(array<AppInfo> apps);
|
||
|
|
||
|
// Notifies that a package has been added.
|
||
|
[MinVersion=8] OnPackageAdded@8(ArcPackageInfo arcPackageInfo);
|
||
|
|
||
|
// Notifies that a package list of apps has been updated.
|
||
|
[MinVersion=14] OnPackageAppListRefreshed@13(string package_name,
|
||
|
array<AppInfo> apps);
|
||
|
|
||
|
// Receives a list of available ARC packages to Chrome. Members of
|
||
|
// PackageInfo must contain non-empty string.
|
||
|
[MinVersion=8] OnPackageListRefreshed@9(array<ArcPackageInfo> packages);
|
||
|
|
||
|
// Notifies that a package has been modified.
|
||
|
[MinVersion=8] OnPackageModified@10(ArcPackageInfo arcPackageInfo);
|
||
|
|
||
|
// Sends removed ARC package to Chrome. |package_name| must contain non-empty
|
||
|
// string. This message is sent when ARC receives package removed
|
||
|
// notification. Removing one package can potentially remove more than one
|
||
|
// app.
|
||
|
[MinVersion=1] OnPackageRemoved@3(string package_name);
|
||
|
|
||
|
// Sends information about newly created task |package_name| and |activity|
|
||
|
// specifies launch activity and |intent| is initial intent used to start
|
||
|
// new task.
|
||
|
[MinVersion=4] OnTaskCreated@4(int32 task_id@0,
|
||
|
string package_name@1,
|
||
|
string activity@2,
|
||
|
[MinVersion=13] string? name@3,
|
||
|
[MinVersion=15] string? intent@4);
|
||
|
|
||
|
// Sends task label and icon.
|
||
|
[MinVersion=19] OnTaskDescriptionUpdated@17(int32 task_id,
|
||
|
string label,
|
||
|
array<uint8> icon_png_data);
|
||
|
|
||
|
// Notifies that task has been destroyed.
|
||
|
[MinVersion=4] OnTaskDestroyed@5(int32 task_id);
|
||
|
|
||
|
// Notifies that task requested orientation lock.
|
||
|
[MinVersion=12] OnTaskOrientationLockRequested@12(int32 task_id,
|
||
|
OrientationLock lock);
|
||
|
|
||
|
// Notifies that task has been activated.
|
||
|
[MinVersion=4] OnTaskSetActive@6(int32 task_id);
|
||
|
|
||
|
// Notifies that notifications enabled settings in Android is changed.
|
||
|
[MinVersion=7] OnNotificationsEnabledChanged@7(string package_name,
|
||
|
bool enabled);
|
||
|
|
||
|
// Notifies that an application shortcut needs to be created.
|
||
|
[MinVersion=9] OnInstallShortcut@11(ShortcutInfo shortcut);
|
||
|
|
||
|
// Notifies that Play Store installation has been started. |package_name|
|
||
|
// specifies installation package
|
||
|
[MinVersion=16] OnInstallationStarted@14(
|
||
|
[MinVersion=17] string? package_name@0);
|
||
|
|
||
|
// Notifies that Play Store installation is finished. |result| contains
|
||
|
// details of installation result.
|
||
|
[MinVersion=16] OnInstallationFinished@15(
|
||
|
[MinVersion=17] InstallationResult? result@1);
|
||
|
|
||
|
// Notifies that an application shortcut needs to be deleted. Shortcut is
|
||
|
// defined by its |intent_uri| and |package_name|.
|
||
|
[MinVersion=18] OnUninstallShortcut@16(string package_name,
|
||
|
string intent_uri);
|
||
|
};
|
||
|
|
||
|
// TODO(lhchavez): Migrate all request/response messages to Mojo.
|
||
|
// Next method ID: 22
|
||
|
interface AppInstance {
|
||
|
// DEPRECATED: Please use Init@21 instead.
|
||
|
InitDeprecated@0(AppHost host_ptr);
|
||
|
|
||
|
// Establishes full-duplex communication with the host.
|
||
|
[MinVersion=26] Init@21(AppHost host_ptr) => ();
|
||
|
|
||
|
[MinVersion=1] CanHandleResolutionDeprecated@4(
|
||
|
string package_name, string activity, Rect dimension) =>
|
||
|
(bool can_handle);
|
||
|
|
||
|
// Closes the the given task.
|
||
|
[MinVersion=4] CloseTask@8(int32 task_id);
|
||
|
|
||
|
// Requests information about task.
|
||
|
[MinVersion=3] GetTaskInfo@6(int32 task_id) => (string package_name,
|
||
|
string activity);
|
||
|
|
||
|
// Sends a request to ARC to install package.
|
||
|
[MinVersion=8] InstallPackage@11(ArcPackageInfo arcPackageInfo);
|
||
|
|
||
|
LaunchAppDeprecated@1(string package_name, string activity,
|
||
|
[MinVersion=1] Rect? dimension_on_screen);
|
||
|
|
||
|
// Sends a request to ARC to launch an ARC app defined by |package_name| and
|
||
|
// |activity|, which cannot be empty.
|
||
|
[MinVersion=23] LaunchApp@18(string package_name, string activity,
|
||
|
int64 display_id);
|
||
|
|
||
|
[MinVersion=9] LaunchIntentDeprecated@12(string intent_uri,
|
||
|
Rect? dimension_on_screen);
|
||
|
|
||
|
// Sends a request to ARC to launch an intent. The intent is encoded as a URI
|
||
|
// string. See Intent.toUri().
|
||
|
[MinVersion=23] LaunchIntent@19(string intent_uri, int64 display_id);
|
||
|
|
||
|
// Sends a request to ARC to refresh a list of ARC apps.
|
||
|
// OnRefreshAppsList is expected in response to this message. However,
|
||
|
// response may not be sent if ARC is not ready yet (boot completed event is
|
||
|
// not received).
|
||
|
RefreshAppList@2();
|
||
|
|
||
|
// Sends a request to ARC for the ARC app icon of a required scale factor.
|
||
|
// Scale factor is an enum defined at ui/base/layout.h. App is defined by
|
||
|
// |package_name| and |activity|, which cannot be empty.
|
||
|
RequestAppIcon@3(string package_name, string activity,
|
||
|
ScaleFactor scale_factor);
|
||
|
|
||
|
// Sends a request for the ARC shortcut icon of a given resource id and scale
|
||
|
// factor.
|
||
|
[MinVersion=9] RequestIcon@13(string icon_resource_id,
|
||
|
ScaleFactor scale_factor) =>
|
||
|
(array<uint8> icon_png_data);
|
||
|
|
||
|
// Removes cached shortcut icon with the given resource id.
|
||
|
[MinVersion=9] RemoveCachedIcon@14(string icon_resource_id);
|
||
|
|
||
|
// Activates the given task and move it to foreground.
|
||
|
[MinVersion=4] SetTaskActive@7(int32 task_id);
|
||
|
|
||
|
[MinVersion=5] ShowPackageInfoDeprecated@9(string package_name,
|
||
|
Rect dimension_on_screen);
|
||
|
|
||
|
[MinVersion=10] ShowPackageInfoOnPageDeprecated@15(string package_name,
|
||
|
ShowPackageInfoPage page,
|
||
|
Rect dimension_on_screen);
|
||
|
|
||
|
// Sends a request to ARC to show package info for given package on the
|
||
|
// specified page.
|
||
|
[MinVersion=23] ShowPackageInfoOnPage@20(string package_name,
|
||
|
ShowPackageInfoPage page,
|
||
|
int64 display_id);
|
||
|
|
||
|
// Sets notification setting for the package.
|
||
|
[MinVersion=6] SetNotificationsEnabled@10(string package_name, bool enabled);
|
||
|
|
||
|
// Sends a request to ARC to start PAI flow.
|
||
|
[MinVersion=21] StartPaiFlow@17();
|
||
|
|
||
|
// Sends a request to ARC to uninstall the given package. Error (if ever
|
||
|
// happens) is ignored, and uninstall option should appear in the UI.
|
||
|
[MinVersion=2] UninstallPackage@5(string package_name);
|
||
|
|
||
|
// Starts a query for Play Store apps.
|
||
|
[MinVersion=20] GetRecentAndSuggestedAppsFromPlayStore@16(
|
||
|
string query, int32 max_results) =>
|
||
|
(AppDiscoveryRequestState state@1, array<AppDiscoveryResult> results@0);
|
||
|
};
|