diff options
Diffstat (limited to 'src/background/components')
-rw-r--r-- | src/background/components/operation.js | 94 |
1 files changed, 49 insertions, 45 deletions
diff --git a/src/background/components/operation.js b/src/background/components/operation.js index 465baf0..ce93270 100644 --- a/src/background/components/operation.js +++ b/src/background/components/operation.js @@ -2,6 +2,7 @@ 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) { @@ -23,101 +24,104 @@ export default class BackgroundComponent { switch (message.type) { case messages.BACKGROUND_OPERATION: return this.store.dispatch( - this.exec(message.operation, sender.tab), - sender); + this.exec(message.operation, sender.tab)); } } // eslint-disable-next-line complexity, max-lines-per-function - exec(operation, tab) { + async exec(operation, tab) { let tabState = this.store.getState().tab; switch (operation.type) { case operations.TAB_CLOSE: - return tabs.closeTab(tab.id); + await tabs.closeTab(tab.id); + break; case operations.TAB_CLOSE_FORCE: - return tabs.closeTabForce(tab.id); + await tabs.closeTabForce(tab.id); + break; case operations.TAB_REOPEN: - return tabs.reopenTab(); + await tabs.reopenTab(); + break; case operations.TAB_PREV: - return tabs.selectPrevTab(tab.index, operation.count); + await tabs.selectPrevTab(tab.index, operation.count); + break; case operations.TAB_NEXT: - return tabs.selectNextTab(tab.index, operation.count); + await tabs.selectNextTab(tab.index, operation.count); + break; case operations.TAB_FIRST: - return tabs.selectFirstTab(); + await tabs.selectFirstTab(); + break; case operations.TAB_LAST: - return tabs.selectLastTab(); + await tabs.selectLastTab(); + break; case operations.TAB_PREV_SEL: if (tabState.previousSelected > 0) { - return tabs.selectTab(tabState.previousSelected); + await tabs.selectTab(tabState.previousSelected); } break; case operations.TAB_RELOAD: - return tabs.reload(tab, operation.cache); + await tabs.reload(tab, operation.cache); + break; case operations.TAB_PIN: - return tabs.updateTabPinned(tab, true); + await tabs.updateTabPinned(tab, true); + break; case operations.TAB_UNPIN: - return tabs.updateTabPinned(tab, false); + await tabs.updateTabPinned(tab, false); + break; case operations.TAB_TOGGLE_PINNED: - return tabs.toggleTabPinned(tab); + await tabs.toggleTabPinned(tab); + break; case operations.TAB_DUPLICATE: - return tabs.duplicate(tab.id); + await tabs.duplicate(tab.id); + break; case operations.ZOOM_IN: - return zooms.zoomIn(); + await zooms.zoomIn(); + break; case operations.ZOOM_OUT: - return zooms.zoomOut(); + await zooms.zoomOut(); + break; case operations.ZOOM_NEUTRAL: - return zooms.neutral(); + await zooms.neutral(); + break; case operations.COMMAND_SHOW: - return this.sendConsoleShowCommand(tab, ''); + return consoleActions.showCommand(tab, ''); case operations.COMMAND_SHOW_OPEN: if (operation.alter) { // alter url - return this.sendConsoleShowCommand(tab, 'open ' + tab.url); + return consoleActions.showCommand(tab, 'open ' + tab.url); } - return this.sendConsoleShowCommand(tab, 'open '); + return consoleActions.showCommand(tab, 'open '); case operations.COMMAND_SHOW_TABOPEN: if (operation.alter) { // alter url - return this.sendConsoleShowCommand(tab, 'tabopen ' + tab.url); + return consoleActions.showCommand(tab, 'tabopen ' + tab.url); } - return this.sendConsoleShowCommand(tab, 'tabopen '); + return consoleActions.showCommand(tab, 'tabopen '); case operations.COMMAND_SHOW_WINOPEN: if (operation.alter) { // alter url - return this.sendConsoleShowCommand(tab, 'winopen ' + tab.url); + return consoleActions.showCommand(tab, 'winopen ' + tab.url); } - return this.sendConsoleShowCommand(tab, 'winopen '); + return consoleActions.showCommand(tab, 'winopen '); case operations.COMMAND_SHOW_BUFFER: - return this.sendConsoleShowCommand(tab, 'buffer '); + return consoleActions.showCommand(tab, 'buffer '); case operations.COMMAND_SHOW_ADDBOOKMARK: if (operation.alter) { - return this.sendConsoleShowCommand(tab, 'addbookmark ' + tab.title); + return consoleActions.showCommand(tab, 'addbookmark ' + tab.title); } - return this.sendConsoleShowCommand(tab, 'addbookmark '); + return consoleActions.showCommand(tab, 'addbookmark '); case operations.FIND_START: - return browser.tabs.sendMessage(tab.id, { - type: messages.CONSOLE_SHOW_FIND - }); + return consoleActions.showFind(tab); case operations.CANCEL: - return browser.tabs.sendMessage(tab.id, { - type: messages.CONSOLE_HIDE, - }); + return consoleActions.hide(tab); case operations.PAGE_SOURCE: - return browser.tabs.create({ + await browser.tabs.create({ url: 'view-source:' + tab.url, index: tab.index + 1, openerTabId: tab.id, }); - default: - return Promise.resolve(); + break; } - } - - sendConsoleShowCommand(tab, command) { - return browser.tabs.sendMessage(tab.id, { - type: messages.CONSOLE_SHOW_COMMAND, - command, - }); + return { type: '' }; } } |