summaryrefslogtreecommitdiff
path: root/data/extensions/html5-video-everywhere@lejenome.me
diff options
context:
space:
mode:
authorRuben Rodriguez <ruben@gnu.org>2015-07-13 22:54:20 -0500
committerRuben Rodriguez <ruben@gnu.org>2015-07-13 22:54:20 -0500
commit3d2f2cbc6f20a5bb9cb2eba3dfccb6b4986a0d04 (patch)
tree01353611f4f1d5f7c1c68e5722c4d6a2314cb600 /data/extensions/html5-video-everywhere@lejenome.me
parent240c29c1d9cf6a2adfad8692917d60cde071cce3 (diff)
HTML5 Video Everywhere updated to 0.2.38.1
Diffstat (limited to 'data/extensions/html5-video-everywhere@lejenome.me')
-rw-r--r--data/extensions/html5-video-everywhere@lejenome.me/META-INF/manifest.mf127
-rw-r--r--data/extensions/html5-video-everywhere@lejenome.me/META-INF/mozilla.rsabin0 -> 4192 bytes
-rw-r--r--data/extensions/html5-video-everywhere@lejenome.me/META-INF/mozilla.sf4
-rwxr-xr-x[-rw-r--r--]data/extensions/html5-video-everywhere@lejenome.me/bootstrap.js0
-rw-r--r--data/extensions/html5-video-everywhere@lejenome.me/defaults/preferences/prefs.js8
-rw-r--r--data/extensions/html5-video-everywhere@lejenome.me/harness-options.json78
-rw-r--r--data/extensions/html5-video-everywhere@lejenome.me/install.rdf7
-rw-r--r--data/extensions/html5-video-everywhere@lejenome.me/options.xul15
-rw-r--r--data/extensions/html5-video-everywhere@lejenome.me/resources/html5-video-everywhere/data/break.js3
-rw-r--r--data/extensions/html5-video-everywhere@lejenome.me/resources/html5-video-everywhere/data/common.js5
-rw-r--r--data/extensions/html5-video-everywhere@lejenome.me/resources/html5-video-everywhere/data/dailymotion.js1
-rw-r--r--data/extensions/html5-video-everywhere@lejenome.me/resources/html5-video-everywhere/data/facebook.js3
-rw-r--r--data/extensions/html5-video-everywhere@lejenome.me/resources/html5-video-everywhere/data/flashgot-YouTubeSwf.js2
-rw-r--r--data/extensions/html5-video-everywhere@lejenome.me/resources/html5-video-everywhere/data/metacafe.js2
-rw-r--r--data/extensions/html5-video-everywhere@lejenome.me/resources/html5-video-everywhere/data/video-player.js26
-rw-r--r--data/extensions/html5-video-everywhere@lejenome.me/resources/html5-video-everywhere/data/vimeo.js1
-rw-r--r--data/extensions/html5-video-everywhere@lejenome.me/resources/html5-video-everywhere/data/youtube.js42
-rw-r--r--data/extensions/html5-video-everywhere@lejenome.me/resources/html5-video-everywhere/lib/facebook.js2
-rw-r--r--data/extensions/html5-video-everywhere@lejenome.me/resources/html5-video-everywhere/lib/flashgot-YouTube.js5
-rw-r--r--data/extensions/html5-video-everywhere@lejenome.me/resources/html5-video-everywhere/lib/main.js48
20 files changed, 328 insertions, 51 deletions
diff --git a/data/extensions/html5-video-everywhere@lejenome.me/META-INF/manifest.mf b/data/extensions/html5-video-everywhere@lejenome.me/META-INF/manifest.mf
new file mode 100644
index 0000000..8b51fb4
--- /dev/null
+++ b/data/extensions/html5-video-everywhere@lejenome.me/META-INF/manifest.mf
@@ -0,0 +1,127 @@
+Manifest-Version: 1.0
+
+Name: install.rdf
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: yEAlVKMLjXkyf3c7msk/Xw==
+SHA1-Digest: aV3Z43FdsOjtb5MVBqTufnvUCLc=
+
+Name: bootstrap.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: 7e6z9LJUzPhqfgyfhRMzhA==
+SHA1-Digest: TWD0b5BkAoKXr56l0Tt3AkKBy8s=
+
+Name: harness-options.json
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: gvOukOdXNjdHv1ejWNp02g==
+SHA1-Digest: kbPOKwGp8XnWtsH95t0fwLRplOE=
+
+Name: locales.json
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: p3Qh60/6wDH/UunTuTWZjQ==
+SHA1-Digest: DBci+JD/520hUnFSB3zB1xoBE9g=
+
+Name: options.xul
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: AQXhzeAfLxO+ATnTSo9pOw==
+SHA1-Digest: TjNQdfc9jutGAHq9GjWhCrjsXaI=
+
+Name: defaults/preferences/prefs.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: WB3cSv+b4ydlRWW5JKfkyw==
+SHA1-Digest: 8NhNf95wV6r8Pj6T2VaLw4URH/k=
+
+Name: resources/html5-video-everywhere/data/break.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: FHcsZl9Qe91hW/7B28cAkg==
+SHA1-Digest: P4o5B+pFXkcUyTcjR/EjVPN2NEY=
+
+Name: resources/html5-video-everywhere/data/common.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: E1LUgC77SvIagwSzhOELtQ==
+SHA1-Digest: RKAZ/SxZXihI9RR/YuPqx/qr+Zo=
+
+Name: resources/html5-video-everywhere/data/dailymotion.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: ozG1xmyo2629YYbN1ZP18Q==
+SHA1-Digest: 9opU+TINoR5HlMlK1LTq29yB3OA=
+
+Name: resources/html5-video-everywhere/data/facebook.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: fqr4Z17t/ZoygcVknd9/dg==
+SHA1-Digest: xicvIjTGA2Usu3fRfOkDnoEZaek=
+
+Name: resources/html5-video-everywhere/data/flashgot-YouTubeSwf.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: T+XZ+Rd72kqQauBCH92lDQ==
+SHA1-Digest: FqZ/r+c3xYHqFzMwYAQLk2OP9vU=
+
+Name: resources/html5-video-everywhere/data/metacafe.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: NMql8+nLTPMdxjV6sP5H3g==
+SHA1-Digest: q2qpkNvUhobvaJjcc7UalhgXnMI=
+
+Name: resources/html5-video-everywhere/data/video-player.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: GdLZBfcj0UrWd0diFLtwlQ==
+SHA1-Digest: T4kSzQs0WwEMwBTvWXR0zG9Xvio=
+
+Name: resources/html5-video-everywhere/data/vimeo.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: vysLIrQbnaQs04x+JUaY1A==
+SHA1-Digest: /4NusOTf5vM0OvXpI/gBGnd+CwU=
+
+Name: resources/html5-video-everywhere/data/youtube-formats.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: ba8pxu4YWbMTFLI7u9nSww==
+SHA1-Digest: 8LdbGx/9NDqLQ9CndverrJzTRHA=
+
+Name: resources/html5-video-everywhere/data/youtube.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: fw7qzIDcMToQ8yY0VkEdqQ==
+SHA1-Digest: ezxXLeySGAqP/Yh/E3UCTu1F/RE=
+
+Name: resources/html5-video-everywhere/lib/break.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: Gs/Etew95x/lD3IuZifl5Q==
+SHA1-Digest: 56GIkHz/2jJL9bEjPkLPdO1KVNo=
+
+Name: resources/html5-video-everywhere/lib/common.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: CYP8cXv4SBDfwNklEF7UmA==
+SHA1-Digest: 5B8qBt1SCvK4GERTM/ggXyZLYiM=
+
+Name: resources/html5-video-everywhere/lib/dailymotion.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: G7beTZLJ9bV8qd4TQKvSJA==
+SHA1-Digest: rg2Qw46iUoN3IjqEDdcklKTq3XM=
+
+Name: resources/html5-video-everywhere/lib/facebook.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: MwgClTBiBe7LFJNcvKMjlg==
+SHA1-Digest: H9dSJUDuos2GyVC5dqLB/wMH+9Q=
+
+Name: resources/html5-video-everywhere/lib/flashgot-YouTube.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: VHCubRXtltPxbjJwQSP8Ug==
+SHA1-Digest: ejl5VDFw9wkD6xs+QZGKxD0B6jw=
+
+Name: resources/html5-video-everywhere/lib/main.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: R6NltxG2mAW+bFuh2zJOdQ==
+SHA1-Digest: HjEEU999PhXM4vX4gski8wIY058=
+
+Name: resources/html5-video-everywhere/lib/metacafe.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: Kapqu2JlNqdfYVl1mzWZVQ==
+SHA1-Digest: Wk6FJJqfUJsTY4EsqXHkk9hMkmc=
+
+Name: resources/html5-video-everywhere/lib/vimeo.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: jTJdcUeScUvccb3lLljoNg==
+SHA1-Digest: PFedn4/SHpnfvE32ZXSLJON1SYg=
+
+Name: resources/html5-video-everywhere/lib/youtube.js
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: 2iKx56tEhaAJbSLMWZITlA==
+SHA1-Digest: nEY1iWkxNKagLglR5KVwjS+meYU=
+
diff --git a/data/extensions/html5-video-everywhere@lejenome.me/META-INF/mozilla.rsa b/data/extensions/html5-video-everywhere@lejenome.me/META-INF/mozilla.rsa
new file mode 100644
index 0000000..71cd3a1
--- /dev/null
+++ b/data/extensions/html5-video-everywhere@lejenome.me/META-INF/mozilla.rsa
Binary files differ
diff --git a/data/extensions/html5-video-everywhere@lejenome.me/META-INF/mozilla.sf b/data/extensions/html5-video-everywhere@lejenome.me/META-INF/mozilla.sf
new file mode 100644
index 0000000..fdecacb
--- /dev/null
+++ b/data/extensions/html5-video-everywhere@lejenome.me/META-INF/mozilla.sf
@@ -0,0 +1,4 @@
+Signature-Version: 1.0
+MD5-Digest-Manifest: rXdZTR03/BLV1sP4JNWVTA==
+SHA1-Digest-Manifest: F+qwFdUpvRczR7PLQrIdFhIzwPE=
+
diff --git a/data/extensions/html5-video-everywhere@lejenome.me/bootstrap.js b/data/extensions/html5-video-everywhere@lejenome.me/bootstrap.js
index 840103a..840103a 100644..100755
--- a/data/extensions/html5-video-everywhere@lejenome.me/bootstrap.js
+++ b/data/extensions/html5-video-everywhere@lejenome.me/bootstrap.js
diff --git a/data/extensions/html5-video-everywhere@lejenome.me/defaults/preferences/prefs.js b/data/extensions/html5-video-everywhere@lejenome.me/defaults/preferences/prefs.js
index 348e8f9..42b12f8 100644
--- a/data/extensions/html5-video-everywhere@lejenome.me/defaults/preferences/prefs.js
+++ b/data/extensions/html5-video-everywhere@lejenome.me/defaults/preferences/prefs.js
@@ -5,7 +5,13 @@ pref("extensions.html5-video-everywhere@lejenome.me.prefCdc", 0);
pref("extensions.html5-video-everywhere@lejenome.me.prefQlt", 2);
pref("extensions.html5-video-everywhere@lejenome.me.autoplay", 2);
pref("extensions.html5-video-everywhere@lejenome.me.preload", 2);
+pref("extensions.html5-video-everywhere@lejenome.me.loop", 2);
pref("extensions.html5-video-everywhere@lejenome.me.volume", 100);
pref("extensions.html5-video-everywhere@lejenome.me.player", 0);
pref("extensions.html5-video-everywhere@lejenome.me.disableEmbed", false);
-pref("extensions.html5-video-everywhere@lejenome.me.disable", "");
+pref("extensions.html5-video-everywhere@lejenome.me.disablebreak", false);
+pref("extensions.html5-video-everywhere@lejenome.me.disabledailymotion", false);
+pref("extensions.html5-video-everywhere@lejenome.me.disablefacebook", false);
+pref("extensions.html5-video-everywhere@lejenome.me.disablemetacafe", false);
+pref("extensions.html5-video-everywhere@lejenome.me.disablevimeo", false);
+pref("extensions.html5-video-everywhere@lejenome.me.disableyoutube", false);
diff --git a/data/extensions/html5-video-everywhere@lejenome.me/harness-options.json b/data/extensions/html5-video-everywhere@lejenome.me/harness-options.json
index 3ae072a..8bc27ae 100644
--- a/data/extensions/html5-video-everywhere@lejenome.me/harness-options.json
+++ b/data/extensions/html5-video-everywhere@lejenome.me/harness-options.json
@@ -5,7 +5,7 @@
"is-sdk-bundled": false,
"jetpackID": "html5-video-everywhere@lejenome.me",
"loader": "addon-sdk/lib/sdk/loader/cuddlefish.js",
- "main": "main",
+ "main": "./lib/main.js",
"mainPath": "html5-video-everywhere/main",
"manifest": {
"html5-video-everywhere/break": {
@@ -36,7 +36,7 @@
},
"html5-video-everywhere/facebook": {
"docsSHA256": null,
- "jsSHA256": "c6a46824a0bac1fdcc434e60aec31247fc2992ef0e51c2de323b6b285d320ad3",
+ "jsSHA256": "b1b059dcca9426349b83f5194d910b7cf2fc217811b9e56ab52aebba3076f1ef",
"moduleName": "facebook",
"packageName": "html5-video-everywhere",
"requirements": {},
@@ -44,7 +44,7 @@
},
"html5-video-everywhere/flashgot-YouTube": {
"docsSHA256": null,
- "jsSHA256": "126b5e88bb2d17aa80945b7616466b747b29bac06c88e031ac8f43e5d6d001a4",
+ "jsSHA256": "82248ac1442dd88f87de49b9f7eccde9c78c83360c124a2e126205cf7b8b16a5",
"moduleName": "flashgot-YouTube",
"packageName": "html5-video-everywhere",
"requirements": {
@@ -57,7 +57,7 @@
},
"html5-video-everywhere/main": {
"docsSHA256": "40f094347101eaf752165137f7ff4e55c6f6bb08eba8225a04c13cefe5ebc1c9",
- "jsSHA256": "f03f04fb553f7641efe5d3427240c53dd48879f2058ae4d0b8b43cf3070eea21",
+ "jsSHA256": "2c646510b6adcf416063dcbb9a5302a32adf5f60c225a9993f93ddc1459b09f2",
"moduleName": "main",
"packageName": "html5-video-everywhere",
"requirements": {
@@ -129,12 +129,12 @@
"description": "Replace video player with Firefox native video player",
"homepage": "https://github.com/lejenome/html5-video-everywhere",
"license": "MPL 2.0",
- "main": "main",
+ "main": "./lib/main.js",
"name": "html5-video-everywhere",
"permissions": {
"private-browsing": true
},
- "version": "0.2.30"
+ "version": "0.2.38"
}
},
"name": "html5-video-everywhere",
@@ -322,6 +322,26 @@
"value": 2
},
{
+ "name": "loop",
+ "options": [
+ {
+ "label": "Default",
+ "value": "2"
+ },
+ {
+ "label": "Always",
+ "value": "1"
+ },
+ {
+ "label": "Never",
+ "value": "0"
+ }
+ ],
+ "title": "Auto Loop Video",
+ "type": "menulist",
+ "value": 2
+ },
+ {
"name": "volume",
"title": "Volume",
"type": "integer",
@@ -354,12 +374,46 @@
"value": false
},
{
- "description": "comma-separated list of drivers to disable",
- "hidden": true,
- "name": "disable",
- "title": "Drivers to disable",
- "type": "string",
- "value": ""
+ "description": "Use default video player on Break",
+ "name": "disablebreak",
+ "title": "Disable on Break",
+ "type": "bool",
+ "value": false
+ },
+ {
+ "description": "Use default video player on Dailymotion",
+ "name": "disabledailymotion",
+ "title": "Disable on Dailymotion",
+ "type": "bool",
+ "value": false
+ },
+ {
+ "description": "Use default video player on Facebook",
+ "name": "disablefacebook",
+ "title": "Disable on Facebook",
+ "type": "bool",
+ "value": false
+ },
+ {
+ "description": "Use default video player on Metacafe",
+ "name": "disablemetacafe",
+ "title": "Disable on Metacafe",
+ "type": "bool",
+ "value": false
+ },
+ {
+ "description": "Use default video player on Vimeo",
+ "name": "disablevimeo",
+ "title": "Disable on Vimeo",
+ "type": "bool",
+ "value": false
+ },
+ {
+ "description": "Use default video player on Youtube",
+ "name": "disableyoutube",
+ "title": "Disable on Youtube",
+ "type": "bool",
+ "value": false
}
],
"preferencesBranch": "html5-video-everywhere@lejenome.me",
diff --git a/data/extensions/html5-video-everywhere@lejenome.me/install.rdf b/data/extensions/html5-video-everywhere@lejenome.me/install.rdf
index 964f608..550a5c5 100644
--- a/data/extensions/html5-video-everywhere@lejenome.me/install.rdf
+++ b/data/extensions/html5-video-everywhere@lejenome.me/install.rdf
@@ -1,9 +1,8 @@
-<?xml version="1.0" encoding="utf-8"?><!-- 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/. --><RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:em="http://www.mozilla.org/2004/em-rdf#">
+<?xml version='1.0' encoding='utf-8'?>
+<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:em="http://www.mozilla.org/2004/em-rdf#">
<Description about="urn:mozilla:install-manifest">
<em:id>html5-video-everywhere@lejenome.me</em:id>
- <em:version>0.2.30</em:version>
+ <em:version>0.2.38.1-signed</em:version>
<em:type>2</em:type>
<em:bootstrap>true</em:bootstrap>
<em:unpack>false</em:unpack>
diff --git a/data/extensions/html5-video-everywhere@lejenome.me/options.xul b/data/extensions/html5-video-everywhere@lejenome.me/options.xul
index 54bb84e..35bd9ac 100644
--- a/data/extensions/html5-video-everywhere@lejenome.me/options.xul
+++ b/data/extensions/html5-video-everywhere@lejenome.me/options.xul
@@ -66,5 +66,20 @@
</menupopup>
</menulist>
</setting>
+ <setting data-jetpack-id="html5-video-everywhere@lejenome.me" pref="extensions.html5-video-everywhere@lejenome.me.loop" pref-name="loop" title="Auto Loop Video" type="menulist">
+ <menulist>
+ <menupopup>
+ <menuitem label="Default" value="2"/>
+ <menuitem label="Always" value="1"/>
+ <menuitem label="Never" value="0"/>
+ </menupopup>
+ </menulist>
+ </setting>
<setting data-jetpack-id="html5-video-everywhere@lejenome.me" pref="extensions.html5-video-everywhere@lejenome.me.volume" pref-name="volume" title="Volume" type="integer"/>
+ <setting data-jetpack-id="html5-video-everywhere@lejenome.me" pref="extensions.html5-video-everywhere@lejenome.me.disablebreak" pref-name="disablebreak" title="Disable on Break" type="bool">Use default video player on Break</setting>
+ <setting data-jetpack-id="html5-video-everywhere@lejenome.me" pref="extensions.html5-video-everywhere@lejenome.me.disabledailymotion" pref-name="disabledailymotion" title="Disable on Dailymotion" type="bool">Use default video player on Dailymotion</setting>
+ <setting data-jetpack-id="html5-video-everywhere@lejenome.me" pref="extensions.html5-video-everywhere@lejenome.me.disablefacebook" pref-name="disablefacebook" title="Disable on Facebook" type="bool">Use default video player on Facebook</setting>
+ <setting data-jetpack-id="html5-video-everywhere@lejenome.me" pref="extensions.html5-video-everywhere@lejenome.me.disablemetacafe" pref-name="disablemetacafe" title="Disable on Metacafe" type="bool">Use default video player on Metacafe</setting>
+ <setting data-jetpack-id="html5-video-everywhere@lejenome.me" pref="extensions.html5-video-everywhere@lejenome.me.disablevimeo" pref-name="disablevimeo" title="Disable on Vimeo" type="bool">Use default video player on Vimeo</setting>
+ <setting data-jetpack-id="html5-video-everywhere@lejenome.me" pref="extensions.html5-video-everywhere@lejenome.me.disableyoutube" pref-name="disableyoutube" title="Disable on Youtube" type="bool">Use default video player on Youtube</setting>
</vbox>
diff --git a/data/extensions/html5-video-everywhere@lejenome.me/resources/html5-video-everywhere/data/break.js b/data/extensions/html5-video-everywhere@lejenome.me/resources/html5-video-everywhere/data/break.js
index 342cd45..24fbcb8 100644
--- a/data/extensions/html5-video-everywhere@lejenome.me/resources/html5-video-everywhere/data/break.js
+++ b/data/extensions/html5-video-everywhere@lejenome.me/resources/html5-video-everywhere/data/break.js
@@ -28,7 +28,8 @@
vp.props({
controls: true,
autoplay: autoPlay(true),
- preload: preLoad()
+ preload: preLoad(),
+ loop: isLoop()
});
vp.style({
width: "100%",
diff --git a/data/extensions/html5-video-everywhere@lejenome.me/resources/html5-video-everywhere/data/common.js b/data/extensions/html5-video-everywhere@lejenome.me/resources/html5-video-everywhere/data/common.js
index 8598dd4..cf95590 100644
--- a/data/extensions/html5-video-everywhere@lejenome.me/resources/html5-video-everywhere/data/common.js
+++ b/data/extensions/html5-video-everywhere@lejenome.me/resources/html5-video-everywhere/data/common.js
@@ -1,10 +1,10 @@
/* global OPTIONS:true, onPrefChange:true, LANGS:true */
/* global createNode:true, asyncGet:true, onReady:true, logify:true */
/* global preLoad:true, autoPlay:true, HANDLE_VOL_PREF_CHANGE:true */
-/* global rmChildren:true, Qlt:true, Cdc:true, chgPref:true */
+/* global rmChildren:true, Qlt:true, Cdc:true, chgPref:true, isLoop:true */
// the following jshint global rule is only because jshint support for ES6 arrow
// functions is limited
-/* global wrapper:true, args:true, auto:true */
+/* global wrapper:true, args:true, auto:true, lp:true */
"use strict";
//This Addons Preferences
@@ -99,6 +99,7 @@ const autoPlay = (auto = false) => ((OPTIONS.autoplay === 1 || auto === true) &&
OPTIONS.autoplay !== 0);
const preLoad = (auto = false) => ((OPTIONS.preload === 1 || auto === true) &&
OPTIONS.preload !== 0) ? "auto" : "metadata";
+const isLoop = (lp = false) => ((OPTIONS.loop === 1 || lp) && OPTIONS.loop !== 0);
const rmChildren = (prnt) => {
while (prnt && prnt.firstChild)
diff --git a/data/extensions/html5-video-everywhere@lejenome.me/resources/html5-video-everywhere/data/dailymotion.js b/data/extensions/html5-video-everywhere@lejenome.me/resources/html5-video-everywhere/data/dailymotion.js
index f83b1ce..59dd351 100644
--- a/data/extensions/html5-video-everywhere@lejenome.me/resources/html5-video-everywhere/data/dailymotion.js
+++ b/data/extensions/html5-video-everywhere@lejenome.me/resources/html5-video-everywhere/data/dailymotion.js
@@ -35,6 +35,7 @@
controls: true,
autoplay: autoPlay(),
preload: preLoad(),
+ loop: isLoop(),
poster: poster
});
vp.style({
diff --git a/data/extensions/html5-video-everywhere@lejenome.me/resources/html5-video-everywhere/data/facebook.js b/data/extensions/html5-video-everywhere@lejenome.me/resources/html5-video-everywhere/data/facebook.js
index 43d241c..608b48c 100644
--- a/data/extensions/html5-video-everywhere@lejenome.me/resources/html5-video-everywhere/data/facebook.js
+++ b/data/extensions/html5-video-everywhere@lejenome.me/resources/html5-video-everywhere/data/facebook.js
@@ -14,7 +14,8 @@
vp.props({
controls: true,
autoplay: autoPlay(true),
- preload: preLoad()
+ preload: preLoad(),
+ loop: isLoop()
});
vp.style({
width: "100%",
diff --git a/data/extensions/html5-video-everywhere@lejenome.me/resources/html5-video-everywhere/data/flashgot-YouTubeSwf.js b/data/extensions/html5-video-everywhere@lejenome.me/resources/html5-video-everywhere/data/flashgot-YouTubeSwf.js
index 8bb4723..8f36a47 100644
--- a/data/extensions/html5-video-everywhere@lejenome.me/resources/html5-video-everywhere/data/flashgot-YouTubeSwf.js
+++ b/data/extensions/html5-video-everywhere@lejenome.me/resources/html5-video-everywhere/data/flashgot-YouTubeSwf.js
@@ -15,7 +15,7 @@
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
***** END LICENSE BLOCK *****/
/* the following jshint rules are added by Moez Bouhlel to pass
diff --git a/data/extensions/html5-video-everywhere@lejenome.me/resources/html5-video-everywhere/data/metacafe.js b/data/extensions/html5-video-everywhere@lejenome.me/resources/html5-video-everywhere/data/metacafe.js
index 7fc9cc2..f689666 100644
--- a/data/extensions/html5-video-everywhere@lejenome.me/resources/html5-video-everywhere/data/metacafe.js
+++ b/data/extensions/html5-video-everywhere@lejenome.me/resources/html5-video-everywhere/data/metacafe.js
@@ -28,6 +28,7 @@
vp.props({
autoplay: autoPlay(true),
preload: preLoad(),
+ loop: isLoop(),
controls: true
});
vp.style({
@@ -52,6 +53,7 @@
vp.props({
autoplay: autoPlay(false),
preload: preLoad(),
+ loop: isLoop(),
controls: true
});
vp.style({
diff --git a/data/extensions/html5-video-everywhere@lejenome.me/resources/html5-video-everywhere/data/video-player.js b/data/extensions/html5-video-everywhere@lejenome.me/resources/html5-video-everywhere/data/video-player.js
index 1c578e2..8cbe2bb 100644
--- a/data/extensions/html5-video-everywhere@lejenome.me/resources/html5-video-everywhere/data/video-player.js
+++ b/data/extensions/html5-video-everywhere@lejenome.me/resources/html5-video-everywhere/data/video-player.js
@@ -225,6 +225,7 @@ VP.prototype.setupLBP = function() {
this.container.style.marginLeft = "0px";
};
VP.prototype.setupContextMenu = function(idx) {
+ /* jshint maxstatements:false */
this._contextMenu = createNode("menu", {
type: "context", //"popup",
id: "h5vew-contextmenu"
@@ -293,7 +294,20 @@ VP.prototype.setupContextMenu = function(idx) {
onclick: (e) =>
this.slctLang(e.target.label)
}));
-
+ var loopMenu = createNode("menu", {
+ id: "h5vew-menu-loop",
+ label: "Loop Video"
+ });
+ ["Never", "Always", "Default"].forEach((n, i) => {
+ loopMenu.appendChild(createNode("menuitem", {
+ type: "radio",
+ label: n,
+ radiogroup: "menu-loop",
+ checked: (OPTIONS.loop === i),
+ onclick: (e) =>
+ chgPref("loop", i)
+ }));
+ });
var autoNextMenu = createNode("menuitem", {
id: "h5vew-menu-autonext",
type: "checkbox",
@@ -310,6 +324,14 @@ VP.prototype.setupContextMenu = function(idx) {
this._contextMenu.removeChild(disableMenu);
}
});
+ var aboutMenu = createNode("menuitem", {
+ id: "h5vew-menu-about",
+ label: "About HTML5 Video EveryWhere",
+ onclick: () =>
+ window.open("http://lejenome.github.io/html5-video-everywhere#v=" +
+ OPTIONS.addon.version + "&id=" + OPTIONS.addon.id,
+ "h5vew-about", "width=550,height=280,menubar=no,toolbar=no,location=no,status=no,chrome=on,modal=on")
+ });
const prefChanged = (name) => {
if (name === "autoNext")
autoNextMenu.checked = OPTIONS.autoNext;
@@ -319,8 +341,10 @@ VP.prototype.setupContextMenu = function(idx) {
this._contextMenu.appendChild(cdcMenu);
if (this._langs.length > 0)
this._contextMenu.appendChild(langMenu);
+ this._contextMenu.appendChild(loopMenu);
this._contextMenu.appendChild(autoNextMenu);
this._contextMenu.appendChild(disableMenu);
+ this._contextMenu.appendChild(aboutMenu);
this.container.appendChild(this._contextMenu);
// TODO: fix assigning contextMenu and uncommant createNode("video") ^
this.container.contextmenu = "h5vew-contextmenu";
diff --git a/data/extensions/html5-video-everywhere@lejenome.me/resources/html5-video-everywhere/data/vimeo.js b/data/extensions/html5-video-everywhere@lejenome.me/resources/html5-video-everywhere/data/vimeo.js
index d0cede6..39701a8 100644
--- a/data/extensions/html5-video-everywhere@lejenome.me/resources/html5-video-everywhere/data/vimeo.js
+++ b/data/extensions/html5-video-everywhere@lejenome.me/resources/html5-video-everywhere/data/vimeo.js
@@ -33,6 +33,7 @@
className: conf.className,
autoplay: autoPlay(),
preload: preLoad(),
+ loop: isLoop(),
controls: true,
poster: conf.poster,
volume: OPTIONS.volume / 100
diff --git a/data/extensions/html5-video-everywhere@lejenome.me/resources/html5-video-everywhere/data/youtube.js b/data/extensions/html5-video-everywhere@lejenome.me/resources/html5-video-everywhere/data/youtube.js
index b8eef42..b7d3840 100644
--- a/data/extensions/html5-video-everywhere@lejenome.me/resources/html5-video-everywhere/data/youtube.js
+++ b/data/extensions/html5-video-everywhere@lejenome.me/resources/html5-video-everywhere/data/youtube.js
@@ -25,23 +25,25 @@
var player_container = getPlayerContainer(conf);
if (!player_container)
return;
+ var seek = getSeek();
vp = new VP(player_container);
- vp.srcs(conf.fmts, FMT_WRAPPER, (fmt) => fmt.url);
- vp.containerProps({
- className: conf.className || ""
- });
+ vp.srcs(conf.fmts, FMT_WRAPPER, (fmt) => fmt.url + seek);
+ //vp.containerProps({
+ // className: conf.className || ""
+ //});
vp.props({
id: "video_player",
className: conf.className || "",
- autoplay: autoPlay(!conf.isEmbed),
+ autoplay: autoPlay(location.search.search("autoplay=") === -1 ? !conf.isEmbed : location.search.search("autoplay=0") === -1),
preload: preLoad(),
+ loop: isLoop(location.search.search("loop=1") !== -1),
controls: true,
poster: conf.poster || "",
volume: OPTIONS.volume / 100
});
- vp.style({
- position: "relative"
- });
+ //vp.style({
+ // position: "relative"
+ //});
vp.tracksList((conf.tracks || []).map(i => i.lc), (lang, resolve, reject) => {
var o = conf.tracks.find((i) => i.lc === lang);
if (o === undefined)
@@ -90,7 +92,7 @@
vp.srcs(conf.fmts, FMT_WRAPPER);
if (conf && conf.isWatch)
vp.containerProps({
- className: " player-height player-width"
+ className: " player-height player-width player-api"
});
if (conf && conf.isChannel)
vp.containerProps({
@@ -135,7 +137,7 @@
conf.className = "c4-player-container"; //+ " html5-main-video"
} else {
conf.id = location.search.slice(1).match(/v=([^/?#]*)/)[1];
- conf.className = "player-width player-height";
+ conf.className = "player-width player-height player-api";
}
if (!conf.id)
reject({
@@ -301,7 +303,25 @@
webvtt += (i + 1) + "\n" + tl1 + " --> " + tl2 + "\n" + els[i].textContent + "\n\n";
}
- resolve("data:text/vtt;base64," + btoa(webvtt.replace("&#39;", "'", "g")));
+ resolve("data:text/vtt;base64," + btoa(window.unescape(
+ encodeURIComponent(webvtt.replace("&#39;", "'", "g")))));
});
}
+
+ function getSeek() {
+ var seek = 0;
+ if (location.search.search("start=") > -1) {
+ seek = location.search.match(/start=(\d+)/);
+ seek = seek ? parseInt(seek[1]) : 0;
+ } else if (location.search.search(/[&?]t=\d/) > -1) {
+ seek = location.search.match(/[&?]t=([^&]*)/)[1];
+ var h = seek.match(/(\d+)h/);
+ var m = seek.match(/(\d+)m/);
+ var s = seek.match(/(\d+)s/);
+ seek = (h ? parseInt(h[1]) : 0) * 3600 +
+ (m ? parseInt(m[1]) : 0) * 60 +
+ (s ? parseInt(s[1]) : 0);
+ }
+ return seek > 0 ? ("#t=" + seek) : "";
+ }
}()); \ No newline at end of file
diff --git a/data/extensions/html5-video-everywhere@lejenome.me/resources/html5-video-everywhere/lib/facebook.js b/data/extensions/html5-video-everywhere@lejenome.me/resources/html5-video-everywhere/lib/facebook.js
index d252044..1198b28 100644
--- a/data/extensions/html5-video-everywhere@lejenome.me/resources/html5-video-everywhere/lib/facebook.js
+++ b/data/extensions/html5-video-everywhere@lejenome.me/resources/html5-video-everywhere/lib/facebook.js
@@ -1,5 +1,5 @@
"use strict";
-var match = [/https?:\/\/(www\.|beta\.)?facebook.com\/video.php\?.*/];
+var match = [/https?:\/\/(www\.|beta\.)?facebook.com\/(.*\/videos\/.*|video.php\?.*)/];
var inject = [
"facebook.js"
];
diff --git a/data/extensions/html5-video-everywhere@lejenome.me/resources/html5-video-everywhere/lib/flashgot-YouTube.js b/data/extensions/html5-video-everywhere@lejenome.me/resources/html5-video-everywhere/lib/flashgot-YouTube.js
index 9e9e1da..3507fb8 100644
--- a/data/extensions/html5-video-everywhere@lejenome.me/resources/html5-video-everywhere/lib/flashgot-YouTube.js
+++ b/data/extensions/html5-video-everywhere@lejenome.me/resources/html5-video-everywhere/lib/flashgot-YouTube.js
@@ -15,11 +15,12 @@
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
***** END LICENSE BLOCK *****/
/* Modified By Moez Bouhlel to be used on HTML5-Video-EveryWhere */
/* jshint laxbreak:true, maxstatements:false, evil:true, latedef:false */
+/* jshint maxdepth:4 */
/* jshint maxcomplexity:false, -W116 */
/* global args:false */
"use strict";
@@ -491,6 +492,8 @@ Youtube.fix_signature = function(data, fmts, swf_url, cb) {
if (sig) {
fg.log("Fmt", itag, "url fixed:", sig);
fmts[itag].url += "&signature=" + encodeURIComponent(sig);
+ if(!sig.match(/^[0-9A-Z]{40}\.[0-9A-Z]{40}$/))
+ fg.setPref("media.YouTube.decode_signature_func", "");
} else {
fg.log("Failed to fix fmt", itag, "signature");
delete fmts[itag];
diff --git a/data/extensions/html5-video-everywhere@lejenome.me/resources/html5-video-everywhere/lib/main.js b/data/extensions/html5-video-everywhere@lejenome.me/resources/html5-video-everywhere/lib/main.js
index bcf9685..d416289 100644
--- a/data/extensions/html5-video-everywhere@lejenome.me/resources/html5-video-everywhere/lib/main.js
+++ b/data/extensions/html5-video-everywhere@lejenome.me/resources/html5-video-everywhere/lib/main.js
@@ -6,7 +6,7 @@ const {
const {
add, remove
} = require("sdk/util/array");
-const data = require("sdk/self").data;
+const _self = require("sdk/self");
const pageMod = require("sdk/page-mod");
const events = require("sdk/system/events");
const staticArgs = require("sdk/system").staticArgs;
@@ -24,11 +24,17 @@ const allDrivers = {
"metacafe": require("./metacafe"),
"youtube": require("./youtube")
};
-var disabledDrivers = prefs.disable.split(",").map(i => i.trim());
const drivers = (Array.isArray(staticArgs.drivers) ?
staticArgs.drivers :
- Object.keys(allDrivers)).filter(i =>
- disabledDrivers.indexOf(i) === -1
+ Object.keys(allDrivers)).filter(drvName =>
+ prefs["disable" + drvName] === false
+);
+
+//ensure preferences match the state of disabled drivers
+Object.keys(allDrivers).filter(drvName =>
+ drivers.indexOf(drvName) === -1
+).forEach(drvName =>
+ prefs["disable" + drvName] = true
);
@@ -40,16 +46,16 @@ const onWorkerAttach = (drvName, listen) => (worker) => {
_prefs[pref] = prefs[pref];
_prefs.driver = drvName;
_prefs.production = staticArgs.production;
+ _prefs.addon = {
+ id: _self.id,
+ version: _self.version
+ };
worker.port.emit("preferences", _prefs);
add(workers, worker);
worker.port.on("prefChang", (pref) =>
prefs[pref.name] = pref.val);
- worker.port.on("disable", () => {
- disabledDrivers.push(drvName);
- prefs.disable = disabledDrivers.join(",");
- remove(drivers, drvName);
- pageMods[drvName].destroy();
- });
+ worker.port.on("disable", () =>
+ prefs["disable" + drvName] = true);
for (let evt in listen) {
logify("Add listener:", evt);
worker.port.on(evt, (obj) => {
@@ -61,15 +67,18 @@ const onWorkerAttach = (drvName, listen) => (worker) => {
});
};
-for (let drvName of drivers) {
+
+drivers.forEach(setupDriver);
+
+function setupDriver(drvName) {
var driver = allDrivers[drvName];
if (driver.match === void(0))
- continue;
+ return;
var scripts, styles;
scripts = common.inject.concat(driver.inject)
- .map(i => data.url(i));
+ .map(i => _self.data.url(i));
styles = common.style.concat(driver.style || [])
- .map(i => data.url(i));
+ .map(i => _self.data.url(i));
pageMods[drvName] = pageMod.PageMod({
include: driver.match,
contentScriptFile: scripts,
@@ -110,7 +119,16 @@ require("sdk/simple-prefs").on("", function prefChangeHandler(pref) {
prefs.volume = 100;
else if (pref === "volume" && prefs.volume < 0)
prefs.volume = 0;
- else
+ else if (pref.startsWith("disable")) {
+ let drvName = /^disable(.+)/.exec(pref)[1];
+ if (prefs[pref] === false) {
+ add(drivers, drvName);
+ setupDriver(drvName);
+ } else {
+ remove(drivers, drvName);
+ pageMods[drvName].destroy();
+ }
+ } else
workersPrefHandler(pref);
});