// 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. // developerPrivate API. // This is a private API exposing developing and debugging functionalities for // apps and extensions. namespace developerPrivate { enum ItemType { hosted_app, packaged_app, legacy_packaged_app, extension, theme }; dictionary ItemInspectView { // path to the inspect page. DOMString path; // For lazy background pages, the value is -1. long render_process_id; long render_view_id; boolean incognito; boolean generatedBackgroundPage; }; dictionary InstallWarning { DOMString message; }; dictionary ItemInfo { DOMString id; DOMString name; DOMString version; DOMString description; boolean may_disable; boolean enabled; DOMString? disabled_reason; boolean isApp; ItemType type; boolean allow_activity; boolean allow_file_access; boolean wants_file_access; boolean incognito_enabled; boolean is_unpacked; boolean allow_reload; boolean terminated; boolean allow_incognito; DOMString icon_url; // Path of an unpacked extension. DOMString? path; // Options settings page for the item. DOMString? options_url; DOMString? app_launch_url; DOMString? homepage_url; DOMString? update_url; InstallWarning[] install_warnings; boolean offline_enabled; // All views of the current extension. ItemInspectView[] views; }; dictionary InspectOptions { DOMString extension_id; DOMString render_process_id; DOMString render_view_id; boolean incognito; }; enum PackStatus { SUCCESS, ERROR, WARNING }; enum FileType { LOAD, PEM }; enum SelectType { FILE, FOLDER }; enum EventType { INSTALLED, UNINSTALLED, LOADED, UNLOADED, // New window / view opened. VIEW_REGISTERED, // window / view closed. VIEW_UNREGISTERED }; dictionary PackDirectoryResponse { // The response message of success or error. DOMString message; // Unpacked items's path. DOMString item_path; // Permanent key path. DOMString pem_path; long override_flags; PackStatus status; }; dictionary ProjectInfo { DOMString name; }; dictionary EventData { EventType event_type; DOMString item_id; }; callback VoidCallback = void (); callback BooleanCallback = void (boolean result); callback ItemsInfoCallback = void (ItemInfo[] result); callback GetStringsCallback = void (object result); callback GetProjectsInfoCallback = void (ProjectInfo[] result); callback PathCallback = void (DOMString path); callback PackCallback = void (PackDirectoryResponse response); callback VoidCallback = void(); interface Functions { // Runs auto update for extensions and apps immediately. // |callback| : Called with the boolean result, true if autoUpdate is // successful. static void autoUpdate(BooleanCallback callback); // Returns information of all the extensions and apps installed. // |include_disabled| : include disabled items. // |include_terminated| : include terminated items. // |callback| : Called with items info. static void getItemsInfo(boolean include_disabled, boolean include_terminated, ItemsInfoCallback callback); // Opens a permissions dialog for given |itemId|. static void showPermissionsDialog(DOMString itemId, optional VoidCallback callback); // Opens an inspect window for given |options| static void inspect(InspectOptions options, optional VoidCallback callback); // Enable / Disable file access for a given |item_id| static void allowFileAccess(DOMString item_id, boolean allow, optional VoidCallback callback); // Reloads a given item with |itemId|. static void reload(DOMString itemId, optional VoidCallback callback); // Enable / Disable a given item with id |itemId|. static void enable(DOMString itemId, boolean enable, optional VoidCallback callback); // Allow / Disallow item with |item_id| in incognito mode. static void allowIncognito(DOMString item_id, boolean allow, VoidCallback callback); // Load a user selected unpacked item static void loadUnpacked(optional VoidCallback callback); // Copies the syncfs folder for the extension to local disk. static void exportSyncfsFolderToLocalfs(DOMString folder_name, optional VoidCallback callback); // Loads the unpacked app / extension. // |callback| called with itemId of the loaded item. static void loadProject(DOMString project_name, PathCallback callback); // Open Dialog to browse to an entry. // |select_type| : Select a file or a folder. // |file_type| : Required file type. For Example pem type is for private // key and load type is for an unpacked item. // |callback| : called with selected item's path. static void choosePath(SelectType select_type, FileType file_type, PathCallback callback); // Pack an item with given |path| and |private_key_path| // |callback| : called with the success result string. static void packDirectory(DOMString path, DOMString private_key_path, long flags, PackCallback callback); // Gets localized translated strings for apps_debugger. It returns the // strings as a dictionary mapping from string identifier to the // translated string to use in the apps_debugger app UI. static void getStrings(GetStringsCallback callback); // Returns true if the profile is managed. static void isProfileManaged(BooleanCallback callback); }; interface Events { // Fired when a item state is changed. static void onItemStateChanged(EventData response); }; };