commit
261914328f
@ -1,6 +1,7 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<body>
|
||||
<script src="js/polyfill-gecko.js"></script>
|
||||
<script src="../lib/handlebars.min.js"></script>
|
||||
<script src="js/templates.js"></script>
|
||||
<script src="js/dictionary.js"></script>
|
||||
|
15
ext/bg/js/polyfill-gecko.js
Normal file
15
ext/bg/js/polyfill-gecko.js
Normal file
@ -0,0 +1,15 @@
|
||||
// Gecko does not currently support chrome.storage.sync, use storage.local instead
|
||||
// https://bugzilla.mozilla.org/show_bug.cgi?id=1220494
|
||||
if (!chrome.storage.sync) {
|
||||
chrome.storage.sync = chrome.storage.local;
|
||||
}
|
||||
|
||||
// Gecko does not currently support chrome.runtime.onInstalled, just ignore calls to it
|
||||
// (https://bugzilla.mozilla.org/show_bug.cgi?id=1252871)
|
||||
if (!chrome.runtime.onInstalled) {
|
||||
chrome.runtime.onInstalled = {
|
||||
'addListener' : function(){},
|
||||
'hasListener' : function(){},
|
||||
'removeListener' : function(){}
|
||||
};
|
||||
}
|
@ -46,8 +46,17 @@ class Translator {
|
||||
|
||||
const pendingLoads = [];
|
||||
for (let key of files) {
|
||||
/*
|
||||
Spidermonkey does not implement lexical bindings for for-of loop
|
||||
(see https://bugzilla.mozilla.org/show_bug.cgi?id=449811)
|
||||
so we need to manually make a new declaration for key.
|
||||
Otherwise key will always remain the same in the callback to loadData
|
||||
and the dictionary data will not be set correctly
|
||||
*/
|
||||
let key_ = key;
|
||||
pendingLoads.push(key);
|
||||
Translator.loadData(this.paths[key], (response) => {
|
||||
let key = key_
|
||||
switch (key) {
|
||||
case 'rules':
|
||||
this.deinflector.setRules(JSON.parse(response));
|
||||
@ -228,6 +237,7 @@ class Translator {
|
||||
|
||||
static loadData(url, callback) {
|
||||
const xhr = new XMLHttpRequest();
|
||||
xhr.overrideMimeType("application/json");
|
||||
xhr.addEventListener('load', () => callback(xhr.responseText));
|
||||
xhr.open('GET', chrome.extension.getURL(url), true);
|
||||
xhr.send();
|
||||
|
@ -163,6 +163,7 @@
|
||||
|
||||
<script src="../lib/jquery-2.2.2.min.js"></script>
|
||||
<script src="../lib/bootstrap-3.3.6-dist/js/bootstrap.min.js"></script>
|
||||
<script src="js/polyfill-gecko.js"></script>
|
||||
<script src="js/options.js"></script>
|
||||
<script src="js/options-form.js"></script>
|
||||
</body>
|
||||
|
@ -62,10 +62,8 @@ class Popup {
|
||||
return;
|
||||
}
|
||||
|
||||
const doc = this.popup.contentDocument;
|
||||
doc.open();
|
||||
doc.write(content);
|
||||
doc.close();
|
||||
const doc = this.popup;
|
||||
doc.srcdoc=content;
|
||||
}
|
||||
|
||||
sendMessage(action, params, callback) {
|
||||
|
@ -16,6 +16,19 @@
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
// Polyfill caretRangeFromPoint() using the newer caretPositionFromPoint()
|
||||
if (!document.caretRangeFromPoint){
|
||||
document.caretRangeFromPoint = function polyfillcaretRangeFromPoint(x,y){
|
||||
let range = document.createRange();
|
||||
let position = document.caretPositionFromPoint(x,y);
|
||||
if (!position) {
|
||||
return null;
|
||||
}
|
||||
range.setStart(position.offsetNode, position.offset);
|
||||
range.setEnd(position.offsetNode, position.offset);
|
||||
return range;
|
||||
};
|
||||
}
|
||||
|
||||
class Range {
|
||||
constructor(range) {
|
||||
|
@ -15,8 +15,10 @@
|
||||
"css": ["fg/css/client.css"]
|
||||
}],
|
||||
"minimum_chrome_version": "45.0.0.0",
|
||||
"options_page": "bg/options.html",
|
||||
"permissions": ["storage"],
|
||||
"options_ui": {
|
||||
"page": "bg/options.html"
|
||||
},
|
||||
"permissions": ["*://127.0.0.1/*", "storage"],
|
||||
"web_accessible_resources": [
|
||||
"fg/css/frame.css",
|
||||
"fg/img/add_kanji.png",
|
||||
@ -26,5 +28,10 @@
|
||||
"fg/js/frame.js",
|
||||
"fg/ttf/kanji-stroke-orders.ttf",
|
||||
"fg/ttf/vl-gothic-regular.ttf"
|
||||
]
|
||||
],
|
||||
"applications": {
|
||||
"gecko": {
|
||||
"id": "yomichan-gecko@example.com"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user