chrome.dart

Build Status

An library for accessing the Chrome APIs in a packaged app or extension.

Installing

Add this to your package's pubspec.yaml file:

dependencies:
  chrome: any

Using the library

import 'package:chrome/chrome_app.dart' as chrome;

void main() {
  chrome.runtime.getPlatformInfo().then((Map m) {
    print(m.toString());
  });
}

Also, see the FAQ.

In your pubspec.yaml

In order to build your app with pub build, you'll need to tell it to select the CSP compliant output of dart2js. To do that, add these lines:

transformers:
- chrome

to your pubspec.yaml file.

Documentation

Documentation is available at:

Breaking Changes

For version 0.5.0, we removed the older chrome.socket API in favor of the new chrome.sockets API. In order to continue using the older API, you can reference it directly via an import:

import 'package:chrome/gen/socket.dart';

Libraries

chrome.alarms
Use the chrome.alarms API to schedule code to run periodically or at a specified time in the future.
chrome.app
chrome.audio
The chrome.audio API is provided to allow users to get information about and control the audio devices attached to the system. This API is currently only implemented for ChromeOS.
chrome.bluetooth
Use the chrome.bluetooth API to connect to a Bluetooth device. All functions report failures via chrome.runtime.lastError.
chrome.bluetoothLowEnergy
The chrome.bluetoothLowEnergy API is used to communicate with Bluetooth Smart (Low Energy) devices using the Generic Attribute Profile (GATT).
chrome.bluetoothSocket
Use the chrome.bluetoothSocket API to send and receive data to Bluetooth devices using RFCOMM and L2CAP connections.
chrome.bookmarks
Use the chrome.bookmarks API to create, organize, and otherwise manipulate bookmarks. Also see Override Pages, which you can use to create a custom Bookmark Manager page.
chrome.browser
Use the chrome.browser API to interact with the Chrome browser associated with the current application and Chrome profile.
chrome.browserAction
Use browser actions to put icons in the main Google Chrome toolbar, to the right of the address bar. In addition to its icon, a browser action can also have a tooltip, a badge, and a popup.
chrome.browsingData
Use the chrome.browsingData API to remove browsing data from a user's local profile.
chrome.build
A library to de-sym link packages directories, and make real copies of the packages references.
chrome.certificateProvider
Use this API to expose certificates to the platform which can use these certificates for TLS authentications.
chrome.commands
Use the commands API to add keyboard shortcuts that trigger actions in your extension, for example, an action to open the browser action or send a command to the extension.
chrome.contentSettings
Use the chrome.contentSettings API to change settings that control whether websites can use features such as cookies, JavaScript, and plugins. More generally speaking, content settings allow you to customize Chrome's behavior on a per-site basis instead of globally.
chrome.contextMenus
Use the chrome.contextMenus API to add items to Google Chrome's context menu. You can choose what types of objects your context menu additions apply to, such as images, hyperlinks, and pages.
chrome.cookies
Use the chrome.cookies API to query and modify cookies, and to be notified when they change.
chrome.debugger
The chrome.debugger API serves as an alternate transport for Chrome's remote debugging protocol. Use chrome.debugger to attach to one or more tabs to instrument network interaction, debug JavaScript, mutate the DOM and CSS, etc. Use the Debuggee tabId to target tabs with sendCommand and route events by tabId from onEvent callbacks.
chrome.declarativeContent
Use the chrome.declarativeContent API to take actions depending on the content of a page, without requiring permission to read the page's content.
chrome.declarativeWebRequest
Note: this API is currently on hold, without concrete plans to move to stable. Use the chrome.declarativeWebRequest API to intercept, block, or modify requests in-flight. It is significantly faster than the chrome.webRequest API because you can register rules that are evaluated in the browser rather than the JavaScript engine with reduces roundtrip latencies and allows higher efficiency.
chrome.desktopCapture
Desktop Capture API that can be used to capture content of screen, individual windows or tabs.
chrome.devtools
chrome.documentScan
Use the chrome.documentScan API to discover and retrieve images from attached paper document scanners.
chrome.downloads
Use the chrome.downloads API to programmatically initiate, monitor, manipulate, and search for downloads.
chrome.enterprise
chrome.events
The chrome.events namespace contains common types used by APIs dispatching events to notify you when something interesting happens.
chrome.extension
The chrome.extension API has utilities that can be used by any extension page. It includes support for exchanging messages between an extension and its content scripts or between extensions, as described in detail in Message Passing.
chrome.extensionTypes
The chrome.extensionTypes API contains type declarations for Chrome extensions.
chrome.fileBrowserHandler
Use the chrome.fileBrowserHandler API to extend the Chrome OS file browser. For example, you can use this API to enable users to upload files to your website.
chrome.fileSystem
Use the chrome.fileSystem API to create, read, navigate, and write to the user's local file system. With this API, Chrome Apps can read and write to a user-selected location. For example, a text editor app can use the API to read and write local documents. All failures are notified via chrome.runtime.lastError.
chrome.fileSystemProvider
Use the chrome.fileSystemProvider API to create file systems, that can be accessible from the file manager on Chrome OS.
chrome.fontSettings
Use the chrome.fontSettings API to manage Chrome's font settings.
chrome.gcm
Use chrome.gcm to enable apps and extensions to send and receive messages through the Google Cloud Messaging Service.
chrome.hid
Use the chrome.hid API to interact with connected HID devices. This API provides access to HID operations from within the context of an app. Using this API, apps can function as drivers for hardware devices. [...]
chrome.history
Use the chrome.history API to interact with the browser's record of visited pages. You can add, remove, and query for URLs in the browser's history. To override the history page with your own version, see Override Pages.
chrome.i18n
Use the chrome.i18n infrastructure to implement internationalization across your whole app or extension.
chrome.identity
Use the chrome.identity API to get OAuth2 access tokens.
chrome.idle
Use the chrome.idle API to detect when the machine's idle state changes.
chrome.infobars
Use the chrome.infobars API to add a horizontal panel just above a tab's contents. See the screenshot below.
chrome.input
chrome.instanceID
Use chrome.instanceID to access the Instance ID service.
chrome.location
todo(vadimt): Consider reusing WebKit/Blink types, if this is possible. Use the chrome.location API to retrieve the geographic location of the host machine. This API is a version of the HTML Geolocation API that is compatible with event pages.
chrome.management
The chrome.management API provides ways to manage the list of extensions/apps that are installed and running. It is particularly useful for extensions that override the built-in New Tab page.
chrome.mediaGalleries
Use the chrome.mediaGalleries API to access media files (audio, images, video) from the user's local disks (with the user's consent).
chrome.networking
chrome.notifications
Use the chrome.notifications API to create rich notifications using templates and show these notifications to users in the system tray.
chrome.omnibox
The omnibox API allows you to register a keyword with Google Chrome's address bar, which is also known as the omnibox.
chrome.pageAction
Use the chrome.pageAction API to put icons in the main Google Chrome toolbar, to the right of the address bar. Page actions represent actions that can be taken on the current page, but that aren't applicable to all pages. Page actions appear grayed out when inactive.
chrome.pageCapture
Use the chrome.pageCapture API to save a tab as MHTML.
chrome.permissions
Use the chrome.permissions API to request declared optional permissions at run time rather than install time, so users understand why the permissions are needed and grant only those that are necessary.
chrome.platformKeys
Use the chrome.platformKeys API to access client certificates managed by the platform. If the user or policy grants the permission, an extension can use such a certficate in its custom authentication protocol. E.g. this allows usage of platform managed certificates in third party VPNs (see $(ref:vpnProvider chrome.vpnProvider)).
chrome.power
Use the chrome.power API to override the system's power management features.
chrome.printerProvider
The chrome.printerProvider API exposes events used by print manager to query printers controlled by extensions, to query their capabilities and to submit print jobs to these printers.
chrome.privacy
Use the chrome.privacy API to control usage of the features in Chrome that can affect a user's privacy. This API relies on the ChromeSetting prototype of the type API for getting and setting Chrome's configuration.
chrome.processes
Use the chrome.processes API to interact with the browser's processes.
chrome.proxy
Use the chrome.proxy API to manage Chrome's proxy settings. This API relies on the ChromeSetting prototype of the type API for getting and setting the proxy configuration.
chrome.runtime
Use the chrome.runtime API to retrieve the background page, return details about the manifest, and listen for and respond to events in the app or extension lifecycle. You can also use this API to convert the relative path of URLs to fully-qualified URLs.
chrome.scriptBadge
Use the chrome.scriptBadge API to control the behaviour of the script badge.
chrome.serial
Use the chrome.serial API to read from and write to a device connected to a serial port.
chrome.sessions
Use the chrome.sessions API to query and restore tabs and windows from a browsing session.
chrome.signedInDevices
Use the chrome.signedInDevices API to get a list of devices signed into chrome with the same account as the current profile.
chrome.socket
Use the chrome.socket API to send and receive data over the network using TCP and UDP connections. Note: Starting with Chrome 33, this API is deprecated in favor of the sockets.udp, sockets.tcp and sockets.tcpServer APIs.
chrome.sockets
chrome.storage
Use the chrome.storage API to store, retrieve, and track changes to user data.
chrome.syncFileSystem
Use the chrome.syncFileSystem API to save and synchronize data on Google Drive. This API is NOT for accessing arbitrary user docs stored in Google Drive. It provides app-specific syncable storage for offline and caching usage so that the same data can be available across different clients. Read Manage Data for more on using this API.
chrome.system
chrome.tabCapture
Use the chrome.tabCapture API to interact with tab media streams.
chrome.tabs
Use the chrome.tabs API to interact with the browser's tab system. You can use this API to create, modify, and rearrange tabs in the browser.
chrome.topSites
Use the chrome.topSites API to access the top sites that are displayed on the new tab page.
chrome.tts
Use the chrome.tts API to play synthesized text-to-speech (TTS). See also the related ttsEngine API, which allows an extension to implement a speech engine.
chrome.ttsEngine
Use the chrome.ttsEngine API to implement a text-to-speech(TTS) engine using an extension. If your extension registers using this API, it will receive events containing an utterance to be spoken and other parameters when any extension or Chrome App uses the tts API to generate speech. Your extension can then use any available web technology to synthesize and output the speech, and send events back to the calling function to report the status.
chrome.types
The chrome.types API contains type declarations for Chrome.
chrome.usb
Use the chrome.usb API to interact with connected USB devices. This API provides access to USB operations from within the context of an app. Using this API, apps can function as drivers for hardware devices. [...]
chrome.vpnProvider
Use the chrome.vpnProvider API to implement a VPN client.
chrome.wallpaper
Use the chrome.wallpaper API to change the ChromeOS wallpaper.
chrome.webNavigation
Use the chrome.webNavigation API to receive notifications about the status of navigation requests in-flight.
chrome.webRequest
Use the chrome.webRequest API to observe and analyze traffic and to intercept, block, or modify requests in-flight.
chrome.windows
Use the chrome.windows API to interact with browser windows. You can use this API to create, modify, and rearrange windows in the browser.
chrome_app
A library to expose the Chrome app APIs.
chrome_ext
A library to expose the Chrome ext APIs.
chrome_transformer