diff options
author | Shin'ya Ueoka <ueokande@i-beam.org> | 2017-10-08 15:19:25 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-10-08 15:19:25 +0900 |
commit | 0183161145d36cbafb7dbd86ca3a1aac6faca43f (patch) | |
tree | aed757bfb5f8789156439d1e1fdff4e221376aaa /src/background/actions/operation.js | |
parent | 0f54a203dba38acdd080a928cee95f875fe84706 (diff) | |
parent | 57f798044d32ba7f9dc10a34ac31ad5dbdbf56ae (diff) |
Merge pull request #22 from ueokande/separate-domains
Refactor: Separate domains
Diffstat (limited to 'src/background/actions/operation.js')
-rw-r--r-- | src/background/actions/operation.js | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/src/background/actions/operation.js b/src/background/actions/operation.js new file mode 100644 index 0000000..d736c09 --- /dev/null +++ b/src/background/actions/operation.js @@ -0,0 +1,52 @@ +import operations from 'shared/operations'; +import messages from 'shared/messages'; +import * as tabs from 'background/tabs'; +import * as zooms from 'background/zooms'; + +const sendConsoleShowCommand = (tab, command) => { + return browser.tabs.sendMessage(tab.id, { + type: messages.CONSOLE_SHOW_COMMAND, + command, + }); +}; + +const exec = (operation, tab) => { + switch (operation.type) { + case operations.TAB_CLOSE: + return tabs.closeTab(tab.id); + case operations.TAB_REOPEN: + return tabs.reopenTab(); + case operations.TAB_PREV: + return tabs.selectPrevTab(tab.index, operation.count); + case operations.TAB_NEXT: + return tabs.selectNextTab(tab.index, operation.count); + case operations.TAB_RELOAD: + return tabs.reload(tab, operation.cache); + case operations.ZOOM_IN: + return zooms.zoomIn(); + case operations.ZOOM_OUT: + return zooms.zoomOut(); + case operations.ZOOM_NEUTRAL: + return zooms.neutral(); + case operations.COMMAND_SHOW: + return sendConsoleShowCommand(tab, ''); + case operations.COMMAND_SHOW_OPEN: + if (operation.alter) { + // alter url + return sendConsoleShowCommand(tab, 'open ' + tab.url); + } + return sendConsoleShowCommand(tab, 'open '); + case operations.COMMAND_SHOW_TABOPEN: + if (operation.alter) { + // alter url + return sendConsoleShowCommand(tab, 'tabopen ' + tab.url); + } + return sendConsoleShowCommand(tab, 'tabopen '); + case operations.COMMAND_SHOW_BUFFER: + return sendConsoleShowCommand(tab, 'buffer '); + default: + return Promise.resolve(); + } +}; + +export { exec }; |