diff options
author | Shin'ya Ueoka <ueokande@i-beam.org> | 2018-07-29 00:04:24 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-07-29 00:04:24 +0900 |
commit | af90ef59566210fa8715816d639ae1025f2aa2fb (patch) | |
tree | 0c66e88229b11c9b154772a6a93dbb6def0d6dcf /src/background | |
parent | ed2bd7d75ee1e7aa1db7d03c3f908c740ded1983 (diff) | |
parent | 09c5247dbadb468a764eef308634503484d398c5 (diff) |
Merge pull request #441 from ueokande/search-on-paste
Search on paste
Diffstat (limited to 'src/background')
-rw-r--r-- | src/background/infrastructures/content-message-listener.js | 6 | ||||
-rw-r--r-- | src/background/repositories/find.js | 3 | ||||
-rw-r--r-- | src/background/usecases/command.js | 3 | ||||
-rw-r--r-- | src/background/usecases/link.js | 3 | ||||
-rw-r--r-- | src/background/usecases/operation.js | 6 | ||||
-rw-r--r-- | src/background/usecases/parsers.js | 26 |
6 files changed, 14 insertions, 33 deletions
diff --git a/src/background/infrastructures/content-message-listener.js b/src/background/infrastructures/content-message-listener.js index 58716fb..4fcc6a6 100644 --- a/src/background/infrastructures/content-message-listener.js +++ b/src/background/infrastructures/content-message-listener.js @@ -19,7 +19,11 @@ export default class ContentMessageListener { run() { browser.runtime.onMessage.addListener((message, sender) => { try { - return this.onMessage(message, sender).catch((e) => { + let ret = this.onMessage(message, sender); + if (!(ret instanceof Promise)) { + return {}; + } + return ret.catch((e) => { return browser.tabs.sendMessage(sender.tab.id, { type: messages.CONSOLE_SHOW_ERROR, text: e.message, diff --git a/src/background/repositories/find.js b/src/background/repositories/find.js index 9482e78..6656c58 100644 --- a/src/background/repositories/find.js +++ b/src/background/repositories/find.js @@ -12,7 +12,8 @@ export default class FindRepository { } setKeyword(keyword) { - return this.cache.set(FIND_KEYWORD_KEY, keyword); + this.cache.set(FIND_KEYWORD_KEY, keyword); + return Promise.resolve(); } } diff --git a/src/background/usecases/command.js b/src/background/usecases/command.js index 3dbf768..7fd2e57 100644 --- a/src/background/usecases/command.js +++ b/src/background/usecases/command.js @@ -1,4 +1,5 @@ import * as parsers from './parsers'; +import * as urls from '../../shared/urls'; import TabPresenter from '../presenters/tab'; import WindowPresenter from '../presenters/window'; import SettingRepository from '../repositories/setting'; @@ -103,6 +104,6 @@ export default class CommandIndicator { async urlOrSearch(keywords) { let settings = await this.settingRepository.get(); - return parsers.normalizeUrl(keywords, settings.search); + return urls.normalizeUrl(keywords, settings.search); } } diff --git a/src/background/usecases/link.js b/src/background/usecases/link.js index f9e474a..1339fdf 100644 --- a/src/background/usecases/link.js +++ b/src/background/usecases/link.js @@ -8,8 +8,7 @@ export default class LinkInteractor { } openToTab(url, tabId) { - this.tabPresenter.open(url, tabId); - + return this.tabPresenter.open(url, tabId); } async openNewTab(url, openerId, background) { diff --git a/src/background/usecases/operation.js b/src/background/usecases/operation.js index 86f39ca..7bf93e4 100644 --- a/src/background/usecases/operation.js +++ b/src/background/usecases/operation.js @@ -126,7 +126,7 @@ export default class OperationInteractor { async showCommand() { let tab = await this.tabPresenter.getCurrent(); - this.consolePresenter.showCommand(tab.id, ''); + return this.consolePresenter.showCommand(tab.id, ''); } async showOpenCommand(alter) { @@ -173,12 +173,12 @@ export default class OperationInteractor { async findStart() { let tab = await this.tabPresenter.getCurrent(); - this.consolePresenter.showFind(tab.id); + return this.consolePresenter.showFind(tab.id); } async hideConsole() { let tab = await this.tabPresenter.getCurrent(); - this.consolePresenter.hide(tab.id); + return this.consolePresenter.hide(tab.id); } onTabSelected(tabId) { diff --git a/src/background/usecases/parsers.js b/src/background/usecases/parsers.js index cda26c3..43c8177 100644 --- a/src/background/usecases/parsers.js +++ b/src/background/usecases/parsers.js @@ -1,27 +1,3 @@ -const trimStart = (str) => { - // NOTE String.trimStart is available on Firefox 61 - return str.replace(/^\s+/, ''); -}; - -const normalizeUrl = (keywords, searchSettings) => { - try { - return new URL(keywords).href; - } catch (e) { - if (keywords.includes('.') && !keywords.includes(' ')) { - return 'http://' + keywords; - } - let template = searchSettings.engines[searchSettings.default]; - let query = keywords; - - let first = trimStart(keywords).split(' ')[0]; - if (Object.keys(searchSettings.engines).includes(first)) { - template = searchSettings.engines[first]; - query = trimStart(trimStart(keywords).slice(first.length)); - } - return template.replace('{}', encodeURIComponent(query)); - } -}; - const mustNumber = (v) => { let num = Number(v); if (isNaN(num)) { @@ -52,4 +28,4 @@ const parseSetOption = (word, types) => { } }; -export { normalizeUrl, parseSetOption }; +export { parseSetOption }; |