diff options
Diffstat (limited to 'src/background/components/operation.js')
-rw-r--r-- | src/background/components/operation.js | 127 |
1 files changed, 0 insertions, 127 deletions
diff --git a/src/background/components/operation.js b/src/background/components/operation.js deleted file mode 100644 index ce93270..0000000 --- a/src/background/components/operation.js +++ /dev/null @@ -1,127 +0,0 @@ -import messages from 'shared/messages'; -import operations from 'shared/operations'; -import * as tabs from '../shared//tabs'; -import * as zooms from '../shared/zooms'; -import * as consoleActions from '../actions/console'; - -export default class BackgroundComponent { - constructor(store) { - this.store = store; - - browser.runtime.onMessage.addListener((message, sender) => { - try { - return this.onMessage(message, sender); - } catch (e) { - return browser.tabs.sendMessage(sender.tab.id, { - type: messages.CONSOLE_SHOW_ERROR, - text: e.message, - }); - } - }); - } - - onMessage(message, sender) { - switch (message.type) { - case messages.BACKGROUND_OPERATION: - return this.store.dispatch( - this.exec(message.operation, sender.tab)); - } - } - - // eslint-disable-next-line complexity, max-lines-per-function - async exec(operation, tab) { - let tabState = this.store.getState().tab; - - switch (operation.type) { - case operations.TAB_CLOSE: - await tabs.closeTab(tab.id); - break; - case operations.TAB_CLOSE_FORCE: - await tabs.closeTabForce(tab.id); - break; - case operations.TAB_REOPEN: - await tabs.reopenTab(); - break; - case operations.TAB_PREV: - await tabs.selectPrevTab(tab.index, operation.count); - break; - case operations.TAB_NEXT: - await tabs.selectNextTab(tab.index, operation.count); - break; - case operations.TAB_FIRST: - await tabs.selectFirstTab(); - break; - case operations.TAB_LAST: - await tabs.selectLastTab(); - break; - case operations.TAB_PREV_SEL: - if (tabState.previousSelected > 0) { - await tabs.selectTab(tabState.previousSelected); - } - break; - case operations.TAB_RELOAD: - await tabs.reload(tab, operation.cache); - break; - case operations.TAB_PIN: - await tabs.updateTabPinned(tab, true); - break; - case operations.TAB_UNPIN: - await tabs.updateTabPinned(tab, false); - break; - case operations.TAB_TOGGLE_PINNED: - await tabs.toggleTabPinned(tab); - break; - case operations.TAB_DUPLICATE: - await tabs.duplicate(tab.id); - break; - case operations.ZOOM_IN: - await zooms.zoomIn(); - break; - case operations.ZOOM_OUT: - await zooms.zoomOut(); - break; - case operations.ZOOM_NEUTRAL: - await zooms.neutral(); - break; - case operations.COMMAND_SHOW: - return consoleActions.showCommand(tab, ''); - case operations.COMMAND_SHOW_OPEN: - if (operation.alter) { - // alter url - return consoleActions.showCommand(tab, 'open ' + tab.url); - } - return consoleActions.showCommand(tab, 'open '); - case operations.COMMAND_SHOW_TABOPEN: - if (operation.alter) { - // alter url - return consoleActions.showCommand(tab, 'tabopen ' + tab.url); - } - return consoleActions.showCommand(tab, 'tabopen '); - case operations.COMMAND_SHOW_WINOPEN: - if (operation.alter) { - // alter url - return consoleActions.showCommand(tab, 'winopen ' + tab.url); - } - return consoleActions.showCommand(tab, 'winopen '); - case operations.COMMAND_SHOW_BUFFER: - return consoleActions.showCommand(tab, 'buffer '); - case operations.COMMAND_SHOW_ADDBOOKMARK: - if (operation.alter) { - return consoleActions.showCommand(tab, 'addbookmark ' + tab.title); - } - return consoleActions.showCommand(tab, 'addbookmark '); - case operations.FIND_START: - return consoleActions.showFind(tab); - case operations.CANCEL: - return consoleActions.hide(tab); - case operations.PAGE_SOURCE: - await browser.tabs.create({ - url: 'view-source:' + tab.url, - index: tab.index + 1, - openerTabId: tab.id, - }); - break; - } - return { type: '' }; - } -} |