WebExtension: added embedded WebExtension to store the preferences for the transition

This commit is contained in:
kkapsner 2017-05-21 13:17:35 +02:00
parent a9c7d97708
commit a6e1b05045
6 changed files with 63 additions and 4 deletions

View File

@ -15,6 +15,8 @@
const preferences = require("sdk/simple-prefs");
const prefs = preferences.prefs;
require("./webExtension");
const notificationPref = {
doShow: function(){
return prefs.showNotifications;

27
lib/webExtension.js Normal file
View File

@ -0,0 +1,27 @@
/* jslint moz: true */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
(function(){
const webExtension = require("sdk/webextension");
const preferences = require("sdk/simple-prefs");
const prefs = preferences.prefs;
// console.log("starting webExtension");
webExtension.startup().then(function(api){
api.browser.runtime.onConnect.addListener(function(port){
var prefNames = Object.keys(prefs);
// console.log("syncing prefs", prefNames);
prefNames.forEach(function(name){
if (!name.startsWith("sdk.")){
var obj = {};
obj[name] = prefs[name];
port.postMessage(obj);
preferences.on(name, function(){
obj[name] = prefs[name];
port.postMessage(obj);
});
}
});
});
});
}());

View File

@ -172,11 +172,12 @@
"version": "0.3.8-Development",
"engines": {
"firefox": ">=45.0a1",
"fennec": ">=45.0"
"firefox": ">=50.0",
"fennec": ">=50.0"
},
"permissions": {
"private-browsing": true,
"multiprocess": true
}
},
"hasEmbeddedWebExtension": true
}

View File

@ -3,7 +3,7 @@ Version 0.3.8:
-
new features:
-
- added embedded WebExtension to store the preferences for the transition
fixes:
- prevented error when canvas has size zero

View File

@ -0,0 +1,18 @@
/* jslint moz: true */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
(function(){
"use strict";
browser.storage.local.set({
storageVersion: 0.1
});
var port = browser.runtime.connect();
port.onMessage.addListener(function(data){
if (data){
browser.storage.local.set(data);
}
});
}());

View File

@ -0,0 +1,11 @@
{
"manifest_version": 2,
"name": "embeddedCanvasBlocker@kkapsner.de",
"version": "0.1",
"background": {
"scripts": ["background.js"]
},
"permissions": [
"storage"
]
}