3.0.0 • Published 10 years ago
chrome-tool v3.0.0
chrome-tool
Compatible with Chrome 45 and higher. For older versions you might need to polyfill these:
- Object.assign
- Promise
- Map
Installation:
npm install chrome-tool --saveTabs
import { Tabs } from 'chrome-tool';The API works like chrome.tabs.* except that it returns promises.
Functions:
Tabs.get(tabId: number): PromiseTabs.getCurrent(): PromiseTabs.create(createProperties): PromiseTabs.duplicate(tabId: number): PromiseTabs.query(queryInfo): PromiseTabs.highlight(highlightInfo): PromiseTabs.update(tabId?: number, updateProperties): PromiseTabs.move(tabIds: number | number[], moveProperties): PromiseTabs.reload(tabId?: number, reloadProperties?): PromiseTabs.remove(tabIds: number | number[]): PromiseTabs.detectLanguage(tabId?: number): PromiseTabs.captureVisibleTab(windowId?: number, options?): PromiseTabs.executeScript(tabId?: number, details): PromiseTabs.insertCSS(tabId?: number, object details): PromiseTabs.setZoom(tabId?: number, zoomFactor: number): PromiseTabs.getZoom(tabId?: number): PromiseTabs.setZoomSettings(tabId?: number, zoomSettings): PromiseTabs.getZoomSettings(tabId?: number): Promise
Events:
Tabs.onCreated(callback): voidTabs.onUpdated(callback): voidTabs.onMoved(callback): voidTabs.onSelectionChanged(callback): voidTabs.onActiveChanged(callback): voidTabs.onActivated(callback): voidTabs.onHighlightChanged(callback): voidTabs.onHighlighted(callback): voidTabs.onDetached(callback): voidTabs.onAttached(callback): voidTabs.onRemoved(callback): voidTabs.onReplaced(callback): voidTabs.onZoomChange(callback): void
Custom functions:
Tabs.getHighlighted(): PromiseTabs.getActive(): PromiseTabs.open(openerTab: { id: number }, url: string): PromiseTabs.count(): PromiseTabs.moveHighlighted(direction: number): PromiseTabs.moveToNewWindow(tabs: Tab[], incognito: boolean): PromiseTabs.moveToWindow(tabs: Tab[], targetWindowId: number): PromiseTabs.closeOthers(): Promise
Windows
import { Windows } from 'chrome-tool';The API works like chrome.windows.* except that it returns promises.
Functions:
Windows.get(windowId, getInfo?): PromiseWindows.getCurrent(getInfo?): PromiseWindows.getLastFocused(getInfo?): PromiseWindows.getAll(getInfo?): PromiseWindows.create(createData?): PromiseWindows.update(windowId, updateInfo): PromiseWindows.remove(windowId): Promise
Events:
Windows.onCreated(callback): voidWindows.onRemoved(callback): voidWindows.onFocusChanged(callback): void
Custom functions:
Windows.open(windows: string[][], reuseThreshold = 1): void-windows: 2-dimensional array of URLs to open as windows -reuseThreshold: Re-uses the current window if its number of tabs is less than or equal
Runtime
import { Runtime } from 'chrome-tool';The API works like chrome.runtime.* except that it returns promises.
Functions:
Runtime.getBackgroundPage(): PromiseRuntime.openOptionsPage(): PromiseRuntime.getManifest(): anyRuntime.getURL(string path): stringRuntime.setUninstallURL(url: string): PromiseRuntime.reload(): voidRuntime.requestUpdateCheck(): PromiseRuntime.restart(): voidRuntime.connect(extensionId?: string, connectInfo?): PortRuntime.connectNative(application: string): PortRuntime.sendNativeMessage(application: string, message): PromiseRuntime.getPlatformInfo(): PromiseRuntime.getPackageDirectoryEntry(): Promise
Modified functions (these work differently than described in Chrome's docs):
sendMessage(operation: string, message): PromiseonMessage(operation: string, callback): void
Events:
Runtime.onStartup(callback): voidRuntime.onInstalled(callback): voidRuntime.onSuspend(callback): voidRuntime.onSuspendCanceled(callback): voidRuntime.onUpdateAvailable(callback): voidRuntime.onConnect(callback): voidRuntime.onConnectExternal(callback): voidRuntime.onMessageExternal(callback): voidRuntime.onRestartRequired(callback): void
StorageSync
import { StorageSync } from 'chrome-tool';The API works like chrome.storage.sync.* except that it returns promises.
Functions:
StorageSync.get(keys?: string | string[] | object): PromiseStorageSync.getBytesInUse(keys?: string | string[]): PromiseStorageSync.set(items): PromiseStorageSync.remove(keys: string | string[]): PromiseStorageSync.clear(): Promise
Events:
StorageSync.onChanged(callback): void
BrowserAction
import { BrowserAction } from 'chrome-tool';The API works like chrome.browserAction.* except that it returns promises.
Functions:
BrowserAction.getTitle(details: object): PromiseBrowserAction.getPopup(details: object): PromiseBrowserAction.getBadgeText(details: object): PromiseBrowserAction.getBadgeBackgroundColor(details: object): PromiseBrowserAction.setTitle(details: object): voidBrowserAction.setPopup(details: object): voidBrowserAction.setBadgeText(details: object): voidBrowserAction.setBadgeBackgroundColor(details: object): voidBrowserAction.setIcon(details: object): PromiseBrowserAction.enable(tabId?: number): voidBrowserAction.disable(tabId?: number): void
Events:
BrowserAction.onClicked(callback): void
Management
import { getExtensionInfo } from 'chrome-tool/management';Functions:
getExtensionInfo(): Promise- chrome.managment.getSelf()
Internationalization
import { getString } from 'chrome-tool/i18n';getString(name: string, substitution?: number | string): string- Slight improvement over the builtin chrome.i18n.getMessage - Read the implementation
ContextMenuItem
import { ContextMenuItem } from 'chrome-tool/i18n';let item = new ContextMenuItem(id?: string, contexts?: string[], onclick?: function);
item.show();
item.hide();
item.setVisible(visibility: boolean);Contributing
Download source and compile:
git clone git@github.com:[USERNAME]/chrome-tool.git
makeWatch for changes and recompile:
make watchRun tests:
npm test