Background operation as Clean Architecture

This commit is contained in:
Shin'ya Ueoka 2018-07-28 10:42:32 +09:00
parent ab29706348
commit 66c23423f9
7 changed files with 318 additions and 3 deletions

View file

@ -1,16 +1,36 @@
import messages from '../../shared/messages';
export default class ConsolePresenter {
showCommand(tabId, command) {
return browser.tabs.sendMessage(tabId, {
type: messages.CONSOLE_SHOW_COMMAND,
command,
});
}
showFind(tabId) {
return browser.tabs.sendMessage(tabId, {
type: messages.CONSOLE_SHOW_FIND
});
}
showInfo(tabId, message) {
return browser.tabs.sendMessage(tabId, {
type: messages.CONSOLE_SHOW_INFO,
text: message,
});
}
showError(tabId, message) {
return browser.tabs.sendMessage(tabId, {
type: messages.CONSOLE_SHOW_ERROR,
text: message,
});
}
hide(tabId) {
return browser.tabs.sendMessage(tabId, {
type: messages.CONSOLE_HIDE,
});
}
}

View file

@ -48,6 +48,41 @@ export default class TabPresenter {
return browser.tabs.remove(ids);
}
async reopen() {
let window = await browser.windows.getCurrent();
let sessions = await browser.sessions.getRecentlyClosed();
let session = sessions.find((s) => {
return s.tab && s.tab.windowId === window.id;
});
if (!session) {
return;
}
if (session.tab) {
return browser.sessions.restore(session.tab.sessionId);
}
return browser.sessions.restore(session.window.sessionId);
}
reload(tabId, cache) {
return browser.tabs.reload(tabId, { bypassCache: cache });
}
setPinned(tabId, pinned) {
return browser.tabs.update(tabId, { pinned });
}
duplicate(id) {
return browser.tabs.duplicate(id);
}
getZoom(tabId) {
return browser.tabs.getZoom(tabId);
}
setZoom(tabId, factor) {
return browser.tabs.setZoom(tabId, factor);
}
async createAdjacent(url, { openerTabId, active }) {
let tabs = await browser.tabs.query({
active: true, currentWindow: true