diff --git a/ext/fg/frame.html b/ext/fg/frame.html index e0b9eac5..3fe42eb2 100644 --- a/ext/fg/frame.html +++ b/ext/fg/frame.html @@ -32,6 +32,7 @@ + diff --git a/ext/fg/js/api.js b/ext/fg/js/api.js index e252637e..b4d75c3c 100644 --- a/ext/fg/js/api.js +++ b/ext/fg/js/api.js @@ -17,47 +17,30 @@ */ -function apiInvoke(action, params={}) { - return new Promise((resolve, reject) => { - try { - chrome.runtime.sendMessage({action, params}, ({result, error}) => { - if (error) { - reject(error); - } else { - resolve(result); - } - }); - } catch (e) { - window.yomichanOrphaned = true; - reject(e.message); - } - }); -} - function apiOptionsGet() { - return apiInvoke('optionsGet'); + return utilInvoke('optionsGet'); } function apiTermsFind(text) { - return apiInvoke('termsFind', {text}); + return utilInvoke('termsFind', {text}); } function apiKanjiFind(text) { - return apiInvoke('kanjiFind', {text}); + return utilInvoke('kanjiFind', {text}); } function apiTemplateRender(template, data) { - return apiInvoke('templateRender', {data, template}); + return utilInvoke('templateRender', {data, template}); } function apiDefinitionsAddable(definitions, modes) { - return apiInvoke('definitionsAddable', {definitions, modes}).catch(() => null); + return utilInvoke('definitionsAddable', {definitions, modes}).catch(() => null); } function apiDefinitionAdd(definition, mode) { - return apiInvoke('definitionAdd', {definition, mode}); + return utilInvoke('definitionAdd', {definition, mode}); } function apiNoteView(noteId) { - return apiInvoke('noteView', {noteId}); + return utilInvoke('noteView', {noteId}); } diff --git a/ext/fg/js/util.js b/ext/fg/js/util.js new file mode 100644 index 00000000..311fc065 --- /dev/null +++ b/ext/fg/js/util.js @@ -0,0 +1,35 @@ +/* + * Copyright (C) 2016 Alex Yatskov + * Author: Alex Yatskov + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + + +function utilInvoke(action, params={}) { + return new Promise((resolve, reject) => { + try { + chrome.runtime.sendMessage({action, params}, ({result, error}) => { + if (error) { + reject(error); + } else { + resolve(result); + } + }); + } catch (e) { + window.yomichanOrphaned = true; + reject(e.message); + } + }); +} diff --git a/ext/manifest.json b/ext/manifest.json index 288976f3..48308b17 100644 --- a/ext/manifest.json +++ b/ext/manifest.json @@ -15,11 +15,13 @@ "content_scripts": [{ "matches": ["http://*/*", "https://*/*", "file://*/*"], "js": [ - "fg/js/document.js", - "fg/js/source-range.js", - "fg/js/source-element.js", "fg/js/api.js", + "fg/js/document.js", "fg/js/popup.js", + "fg/js/source-element.js", + "fg/js/source-range.js", + "fg/js/util.js", + "fg/js/frontend.js" ], "css": ["fg/css/client.css"]