WebExtensions port Minimum Viable Product. Works in Firefox

- comment out chrome.extension.sendMessage
- rename chrome.storage.sync to chrome.storage.local
- remove createShadowRoot
- add reload_once function
This commit is contained in:
codebicycle
2016-11-08 16:19:46 +02:00
parent ecba83c028
commit 58429f5878
3 changed files with 17 additions and 9 deletions

View File

@@ -1,4 +1,4 @@
chrome.extension.sendMessage({}, function(response) { // chrome.extension.sendMessage({}, function(response) {
var tc = { var tc = {
settings: { settings: {
speed: 1.0, // default 1x speed: 1.0, // default 1x
@@ -21,7 +21,7 @@ chrome.extension.sendMessage({}, function(response) {
} }
}; };
chrome.storage.sync.get(tc.settings, function(storage) { chrome.storage.local.get(tc.settings, function(storage) {
tc.settings.speed = Number(storage.speed); tc.settings.speed = Number(storage.speed);
tc.settings.speedStep = Number(storage.speedStep); tc.settings.speedStep = Number(storage.speedStep);
tc.settings.rewindTime = Number(storage.rewindTime); tc.settings.rewindTime = Number(storage.rewindTime);
@@ -62,7 +62,7 @@ chrome.extension.sendMessage({}, function(response) {
var speed = this.getSpeed(); var speed = this.getSpeed();
this.speedIndicator.textContent = speed; this.speedIndicator.textContent = speed;
tc.settings.speed = speed; tc.settings.speed = speed;
chrome.storage.sync.set({'speed': speed}); chrome.storage.local.set({'speed': speed});
}.bind(this)); }.bind(this));
target.playbackRate = tc.settings.speed; target.playbackRate = tc.settings.speed;
@@ -94,7 +94,7 @@ chrome.extension.sendMessage({}, function(response) {
wrapper.addEventListener('mousedown', prevent, true); wrapper.addEventListener('mousedown', prevent, true);
wrapper.addEventListener('click', prevent, true); wrapper.addEventListener('click', prevent, true);
var shadow = wrapper.createShadowRoot(); var shadow = wrapper
var shadowTemplate = ` var shadowTemplate = `
<style> <style>
@import "${chrome.extension.getURL('shadow.css')}"; @import "${chrome.extension.getURL('shadow.css')}";
@@ -364,4 +364,4 @@ chrome.extension.sendMessage({}, function(response) {
animation = false; animation = false;
}, 2000); }, 2000);
} }
}); // });

View File

@@ -4,7 +4,7 @@
"version": "0.4.2", "version": "0.4.2",
"manifest_version": 2, "manifest_version": 2,
"description": "Speed up, slow down, advance and rewind any HTML5 video with quick shortcuts.", "description": "Speed up, slow down, advance and rewind any HTML5 video with quick shortcuts.",
"homepage_url": "https://github.com/igrigorik/videospeed", "homepage_url": "https://github.com/codebicycle/videospeed",
"icons": { "icons": {
"16": "icons/icon16.png", "16": "icons/icon16.png",
"48": "icons/icon48.png", "48": "icons/icon48.png",

View File

@@ -110,7 +110,7 @@ function save_options() {
fasterKeyCode = isNaN(fasterKeyCode) ? tcDefaults.fasterKeyCode : fasterKeyCode; fasterKeyCode = isNaN(fasterKeyCode) ? tcDefaults.fasterKeyCode : fasterKeyCode;
displayKeyCode = isNaN(displayKeyCode) ? tcDefaults.displayKeyCode : displayKeyCode; displayKeyCode = isNaN(displayKeyCode) ? tcDefaults.displayKeyCode : displayKeyCode;
chrome.storage.sync.set({ chrome.storage.local.set({
speedStep: speedStep, speedStep: speedStep,
rewindTime: rewindTime, rewindTime: rewindTime,
advanceTime: advanceTime, advanceTime: advanceTime,
@@ -134,7 +134,7 @@ function save_options() {
// Restores options from chrome.storage // Restores options from chrome.storage
function restore_options() { function restore_options() {
chrome.storage.sync.get(tcDefaults, function(storage) { chrome.storage.local.get(tcDefaults, function(storage) {
document.getElementById('speedStep').value = storage.speedStep.toFixed(2); document.getElementById('speedStep').value = storage.speedStep.toFixed(2);
document.getElementById('rewindTime').value = storage.rewindTime; document.getElementById('rewindTime').value = storage.rewindTime;
document.getElementById('advanceTime').value = storage.advanceTime; document.getElementById('advanceTime').value = storage.advanceTime;
@@ -150,7 +150,7 @@ function restore_options() {
} }
function restore_defaults() { function restore_defaults() {
chrome.storage.sync.set(tcDefaults, function() { chrome.storage.local.set(tcDefaults, function() {
restore_options(); restore_options();
// Update status to let user know options were saved. // Update status to let user know options were saved.
var status = document.getElementById('status'); var status = document.getElementById('status');
@@ -167,7 +167,15 @@ function initShortcutInput(inputId) {
document.getElementById(inputId).addEventListener('keydown', recordKeyPress); document.getElementById(inputId).addEventListener('keydown', recordKeyPress);
} }
function reload_once() {
if(!window.location.hash) {
window.location = window.location + '#loaded';
window.location.reload();
}
}
document.addEventListener('DOMContentLoaded', function () { document.addEventListener('DOMContentLoaded', function () {
reload_once();
restore_options(); restore_options();
document.getElementById('save').addEventListener('click', save_options); document.getElementById('save').addEventListener('click', save_options);