blob: e5f6d07e3a3997cf9f2fd88742e4d32a3a44d18f [file] [log] [blame]
// Copyright (c) 2012 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.
// API for integration testing. To be used on test images with a test component
// extension.
[platforms=("chromeos"),
implemented_in="chrome/browser/chromeos/extensions/autotest_private/autotest_private_api.h"]
namespace autotestPrivate {
dictionary LoginStatusDict {
// Are we logged in?
boolean isLoggedIn;
// Is the logged-in user the owner?
boolean isOwner;
// Is the screen locked?
boolean isScreenLocked;
// Is the screen ready for password?
boolean isReadyForPassword;
// Is the logged-in user a regular user?
boolean isRegularUser;
// Are we logged into the guest account?
boolean isGuest;
// Are we logged into kiosk-app mode?
boolean isKiosk;
DOMString email;
DOMString displayEmail;
// User image: 'file', 'profile' or a number.
DOMString userImage;
};
callback LoginStatusCallback = void (LoginStatusDict status);
dictionary ExtensionInfoDict {
DOMString id;
DOMString version;
DOMString name;
DOMString publicKey;
DOMString description;
DOMString backgroundUrl;
DOMString optionsUrl;
DOMString[] hostPermissions;
DOMString[] effectiveHostPermissions;
DOMString[] apiPermissions;
boolean isComponent;
boolean isInternal;
boolean isUserInstalled;
boolean isEnabled;
boolean allowedInIncognito;
boolean hasPageAction;
};
dictionary ExtensionsInfoArray {
ExtensionInfoDict[] extensions;
};
callback ExtensionsInfoCallback = void (ExtensionsInfoArray info);
dictionary Notification {
DOMString id;
DOMString type;
DOMString title;
DOMString message;
long priority;
long progress;
};
callback NotificationArrayCallback = void (Notification[] notifications);
dictionary Printer {
DOMString printerName;
DOMString? printerId;
DOMString? printerType;
DOMString? printerDesc;
DOMString? printerMakeAndModel;
DOMString? printerUri;
DOMString? printerPpd;
};
callback PrinterArrayCallback = void (Printer[] printers);
dictionary PlayStoreState {
// Whether the Play Store allowed for the current user.
boolean allowed;
// Whether the Play Store currently enabled.
boolean? enabled;
// Whether the Play Store managed by policy.
boolean? managed;
};
callback PlayStoreStateCallback = void (PlayStoreState result);
dictionary HistogramBucket {
// Minimum sample value that can be stored in this bucket (i.e. inclusive).
long min;
// Exclusive maximum value for samples stored this bucket.
long max;
// Number of samples stored in this bucket.
long count;
};
dictionary Histogram {
// Buckets containing samples.
HistogramBucket[] buckets;
};
callback HistogramCallback = void (Histogram histogram);
dictionary AssistantQueryResponse {
DOMString? text;
DOMString? htmlResponse;
DOMString? htmlFallback;
};
callback AssistantQueryResponseCallback =
void(AssistantQueryResponse response);
callback IsAppShownCallback = void (boolean appShown);
callback IsArcProvisionedCallback = void (boolean arcProvisioned);
dictionary ArcAppDict {
DOMString name;
DOMString packageName;
DOMString activity;
DOMString intentUri;
DOMString iconResourceId;
double lastLaunchTime;
double installTime;
boolean sticky;
boolean notificationsEnabled;
boolean ready;
boolean suspended;
boolean showInLauncher;
boolean shortcut;
boolean launchable;
};
callback GetArcAppCallback = void (ArcAppDict package);
dictionary ArcPackageDict {
DOMString packageName;
long packageVersion;
DOMString lastBackupAndroidId;
double lastBackupTime;
boolean shouldSync;
boolean system;
boolean vpnProvider;
};
callback GetArcPackageCallback = void (ArcPackageDict package);
callback LaunchArcAppCallback = void (boolean appLaunched);
callback TakeScreenshotCallback = void (DOMString base64Png);
callback EnsureWindowServiceClientHasDrawnWindowCallback =
void(boolean success);
callback GetPrimaryDisplayScaleFactorCallback = void (double scaleFactor);
callback VoidCallback = void ();
interface Functions {
// Logout of a user session.
static void logout();
// Restart the browser.
static void restart();
// Shutdown the browser.
// |force|: if set, ignore ongoing downloads and onunbeforeunload handlers.
static void shutdown(boolean force);
// Get login status.
static void loginStatus(LoginStatusCallback callback);
// Locks the screen.
static void lockScreen();
// Get info about installed extensions.
static void getExtensionsInfo(ExtensionsInfoCallback callback);
// Simulates a memory access bug for asan testing.
static void simulateAsanMemoryBug();
// Set the touchpad pointer sensitivity setting.
// |value|: the pointer sensitivity setting index.
static void setTouchpadSensitivity(long value);
// Turn on/off tap-to-click for the touchpad.
// |enabled|: if set, enable tap-to-click.
static void setTapToClick(boolean enabled);
// Turn on/off three finger click for the touchpad.
// |enabled|: if set, enable three finger click.
static void setThreeFingerClick(boolean enabled);
// Turn on/off tap dragging for the touchpad.
// |enabled|: if set, enable tap dragging.
static void setTapDragging(boolean enabled);
// Turn on/off Australian scrolling for devices other than wheel mouse.
// |enabled|: if set, enable Australian scrolling.
static void setNaturalScroll(boolean enabled);
// Set the mouse pointer sensitivity setting.
// |value|: the pointer sensitivity setting index.
static void setMouseSensitivity(long value);
// Swap the primary mouse button for left click.
// |right|: if set, swap the primary mouse button.
static void setPrimaryButtonRight(boolean right);
// Turn on/off reverse scrolling for mice.
// |enabled|: if set, enable reverse scrolling.
static void setMouseReverseScroll(boolean enabled);
// Get visible notifications on the system.
static void getVisibleNotifications(NotificationArrayCallback callback);
// Get state of the Play Store.
static void getPlayStoreState(PlayStoreStateCallback callback);
// Get list of available printers
static void getPrinterList(PrinterArrayCallback callback);
// Returns true if requested app is shown in Chrome.
static void isAppShown(DOMString appId, IsAppShownCallback callback);
// Returns true if ARC is provisioned.
static void isArcProvisioned(IsArcProvisionedCallback callback);
// Gets information about the requested ARC app.
static void getArcApp(DOMString appId, GetArcAppCallback callback);
// Gets information about requested ARC package.
static void getArcPackage(DOMString packageName,
GetArcPackageCallback callback);
// Launches ARC app with optional intent. Returns true if ARC is active,
// app exists and launch request is passed to Android.
static void launchArcApp(DOMString appId, DOMString intent,
LaunchArcAppCallback callback);
// Launches an application from the launcher with the given appId.
static void launchApp(DOMString appId, VoidCallback callback);
// Closes an application the given appId in case it was running.
static void closeApp(DOMString appId, VoidCallback callback);
// Update printer. Printer with empty ID is considered new.
static void updatePrinter(Printer printer);
// Remove printer.
static void removePrinter(DOMString printerId);
// Enable/disable the Play Store.
// |enabled|: if set, enable the Play Store.
// |callback|: Called when the operation has completed.
static void setPlayStoreEnabled(boolean enabled, VoidCallback callback);
// Get details about a histogram displayed at chrome://histogram.
// |name|: Histogram name, e.g. "Accessibility.CrosAutoclick".
// |callback|: Invoked with details.
static void getHistogram(DOMString name, HistogramCallback callback);
// Run the crostini installer GUI to install the default crostini
// vm / container and create sshfs mount. The installer launches the
// crostini terminal app on completion. The installer expects that
// crostini is not already installed.
// |callback|: Called when the operation has completed.
static void runCrostiniInstaller(VoidCallback callback);
// Run the crostini uninstaller GUI to remove the default crostini
// vm / container. The callback is invoked upon completion.
static void runCrostiniUninstaller(VoidCallback callback);
// Enable/disable Crostini in preferences.
// |enabled|: Enable Crostini.
// |callback|: Called when the operation has completed.
static void setCrostiniEnabled(boolean enabled, VoidCallback callback);
// Takes a screenshot and returns the data in base64 encoded PNG format.
static void takeScreenshot(TakeScreenshotCallback callback);
// Makes a basic request to ML Service, triggering 1. ML Service
// daemon startup, and 2. the initial D-Bus -> Mojo IPC bootstrap.
// |callback|: Called when the operation has completed.
static void bootstrapMachineLearningService(VoidCallback callback);
// Enable/disable the Google Assistant
// |callback|: Called when the operation has completed.
static void setAssistantEnabled(boolean enabled, long timeout_ms,
VoidCallback callback);
// Send a text query via Google Assistant.
// |callback|: Called when response has been received.
static void sendAssistantTextQuery(DOMString query, long timeout_ms,
AssistantQueryResponseCallback callback);
// Enable/disable a Crostini app's "scaled" property.
// |appId|: The Crostini application ID.
// |scaled|: The app is "scaled" when shown, which means it uses low display
// density.
// |callback|: Called when the operation has completed.
static void setCrostiniAppScaled(DOMString appId, boolean scaled,
VoidCallback callback);
// Ensure that the Window Service client identified by |clientName| has
// drawn any window. |callback| is invoked with true if the client has drawn
// anything or when it does so before the time out. Otherwise, an error
// is raised when timeout happens.
static void ensureWindowServiceClientHasDrawnWindow(
DOMString clientName,
long timeout_ms,
EnsureWindowServiceClientHasDrawnWindowCallback callback);
// Get the primary display scale factor.
// |callback| is invoked with the scale factor.
static void getPrimaryDisplayScaleFactor(
GetPrimaryDisplayScaleFactorCallback callback);
};
};