This repository has been archived on 2020-04-04. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
Vim-Vixen/src/background/infrastructures/ContentMessageClient.ts
2019-08-29 03:37:58 +00:00

38 lines
1,019 B
TypeScript

import { injectable } from 'tsyringe';
import * as messages from '../../shared/messages';
@injectable()
export default class ContentMessageClient {
async broadcastSettingsChanged(): Promise<void> {
let tabs = await browser.tabs.query({});
for (let tab of tabs) {
if (!tab.id || tab.url && tab.url.startsWith('about:')) {
continue;
}
browser.tabs.sendMessage(tab.id, {
type: messages.SETTINGS_CHANGED,
});
}
}
async getAddonEnabled(tabId: number): Promise<boolean> {
let enabled = await browser.tabs.sendMessage(tabId, {
type: messages.ADDON_ENABLED_QUERY,
});
return enabled as any as boolean;
}
async toggleAddonEnabled(tabId: number): Promise<void> {
await browser.tabs.sendMessage(tabId, {
type: messages.ADDON_TOGGLE_ENABLED,
});
}
async scrollTo(tabId: number, x: number, y: number): Promise<void> {
await browser.tabs.sendMessage(tabId, {
type: messages.TAB_SCROLL_TO,
x,
y,
});
}
}