initial repo - firefox-fix-web - Firefox extension: fix web | |
git clone git://git.codemadness.org/firefox-fix-web | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit d0229906849489c71a94f40f1788ffff6119aee8 | |
Author: Hiltjo Posthuma <[email protected]> | |
Date: Tue, 7 Aug 2018 20:18:03 +0200 | |
initial repo | |
Diffstat: | |
A .gitignore | 1 + | |
A LICENSE | 15 +++++++++++++++ | |
A Makefile | 7 +++++++ | |
A README | 31 +++++++++++++++++++++++++++++… | |
A TODO | 9 +++++++++ | |
A extension/global/fiximg.js | 9 +++++++++ | |
A extension/global/focus.js | 66 +++++++++++++++++++++++++++++… | |
A extension/manifest.json | 45 +++++++++++++++++++++++++++++… | |
A extension/site/buienradar.css | 3 +++ | |
A extension/site/gamekings.css | 20 ++++++++++++++++++++ | |
A extension/site/gamekings.js | 16 ++++++++++++++++ | |
A extension/site/hardwareinfo.css | 7 +++++++ | |
A extension/site/hardwareinfo.js | 9 +++++++++ | |
A extension/site/kudtkoekiewet.js | 5 +++++ | |
A extension/site/tweakers.js | 10 ++++++++++ | |
A extension/site/twitter.css | 3 +++ | |
16 files changed, 256 insertions(+), 0 deletions(-) | |
--- | |
diff --git a/.gitignore b/.gitignore | |
@@ -0,0 +1 @@ | |
+*.xpi | |
diff --git a/LICENSE b/LICENSE | |
@@ -0,0 +1,15 @@ | |
+ISC License | |
+ | |
+Copyright (c) 2018 Hiltjo Posthuma <[email protected]> | |
+ | |
+Permission to use, copy, modify, and/or distribute this software for any | |
+purpose with or without fee is hereby granted, provided that the above | |
+copyright notice and this permission notice appear in all copies. | |
+ | |
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | |
+WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | |
+MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | |
+ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | |
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | |
+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | |
+OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | |
diff --git a/Makefile b/Makefile | |
@@ -0,0 +1,7 @@ | |
+package: clean | |
+ ( cd extension; \ | |
+ zip -r -FS ../firefox-extension.xpi *; \ | |
+ cd ../ ) | |
+ | |
+clean: | |
+ rm -f firefox-extension.xpi | |
diff --git a/README b/README | |
@@ -0,0 +1,31 @@ | |
+Features | |
+-------- | |
+ | |
+- focus.js: Focus the first input field with ctrl-space if no input with | |
+ "autofocus" is present. | |
+- fiximg.js: Fixup some elements to show images. Javascript is commonly abused | |
+ to "lazyload" images. | |
+ | |
+ | |
+Build dependencies | |
+------------------ | |
+- POSIX shell | |
+- Make | |
+- zip | |
+ | |
+ | |
+Build | |
+----- | |
+make | |
+ | |
+ | |
+Install | |
+------- | |
+ | |
+in about:config set | |
+xpinstall.signatures.required to true | |
+ | |
+(I don't support Mozilla add-on store nazism) | |
+ | |
+ | |
+Then on the add-ons page load the .xpi file from disk or from a url. | |
diff --git a/TODO b/TODO | |
@@ -0,0 +1,9 @@ | |
+- CSS: disable animations? CSS animation override? | |
+- CSS: disable transitions? | |
+- detect big overlay with opacity: 0 in some way? | |
+- detect bad constrast in content text: grey on white, dark grey on black: | |
+ override using CSS. | |
+- detect common javascript image links of some frameworks and fix them up? | |
+ - check React, Vue.js, etc. | |
+- fixup "font-awesome" icons somehow? classname: "fa fa-blablabla" | |
+- fixup other font icons somehow? for example on bol.com: rating stars. | |
diff --git a/extension/global/fiximg.js b/extension/global/fiximg.js | |
@@ -0,0 +1,9 @@ | |
+(function() { | |
+ Array.from(document.querySelectorAll("img[data-mediumthumb]")).map(fun… | |
+ img.src = img.getAttribute("data-mediumthumb"); | |
+ }); | |
+ | |
+ Array.from(document.querySelectorAll("img[data-original]")).map(functi… | |
+ img.src = img.getAttribute("data-original"); | |
+ }); | |
+})(); | |
diff --git a/extension/global/focus.js b/extension/global/focus.js | |
@@ -0,0 +1,66 @@ | |
+// ==UserScript== | |
+// @name Input focus | |
+// @namespace - | |
+// @description Input focus | |
+// @version 1.1 | |
+// @grant none | |
+// ==/UserScript== | |
+// | |
+// 1.1 | |
+// - added toggle to blur field (ctrl+space). | |
+// | |
+(function() { | |
+ function hasfocus(el) { | |
+ return el === document.activeElement; | |
+ } | |
+ function findfield() { | |
+ var found = null; | |
+ var el = document.activeElement; | |
+ if(typeof(el) == 'object') { | |
+ var type = (el.type || '').toLowerCase(); | |
+ if(el.tagName == 'INPUT' && ['text', 'search'].indexOf… | |
+ found = el; | |
+ } | |
+ if(found === null) { | |
+ var els = document.getElementsByTagName('input') || []; | |
+ for(var i = 0; i < els.length; i++) { | |
+ var type = (els[i].type || '').toLowerCase(); | |
+ if(['text', 'search'].indexOf(type) != -1) { | |
+ found = els[i]; | |
+ break; | |
+ } | |
+ } | |
+ } | |
+ if(found !== null) { | |
+ return found; | |
+ } | |
+ return null; | |
+ } | |
+ function focusfield(el) { | |
+ if(el === null) | |
+ return el; | |
+ el.click(); // Some sites require this to clear the input fiel… | |
+ var value = el.value || ''; | |
+ el.selectionStart = 0; // value.length; | |
+ el.selectionEnd = value.length; | |
+ el.focus(); | |
+ return el; | |
+ } | |
+ function blurfield(el) { | |
+ el.blur(); | |
+ } | |
+ function onkeydown(e) { | |
+ if(e.ctrlKey && e.keyCode == 32) { /* ctrl + space */ | |
+ var el = findfield(); | |
+ /* toggle */ | |
+ if(hasfocus(el)) { | |
+ blurfield(el); | |
+ } else { | |
+ focusfield(el); | |
+ } | |
+ | |
+ } | |
+ } | |
+ window.addEventListener('keydown', onkeydown, true); | |
+// focusfield(findfield()); | |
+})(); | |
diff --git a/extension/manifest.json b/extension/manifest.json | |
@@ -0,0 +1,45 @@ | |
+{ | |
+ "manifest_version": 2, | |
+ "name": "fix-web", | |
+ "version": "1.0", | |
+ "description": "Scripts to make the web suck less and fixup some thing… | |
+ "permissions": [ "activeTab" ], | |
+ "background": { "scripts": [] }, | |
+ "applications": { | |
+ "gecko": { | |
+ "id": "[email protected]" | |
+ } | |
+ }, | |
+ "content_scripts": [ | |
+ { | |
+ "matches": [ "*://*/*" ], | |
+ "js": [ "global/focus.js", "global/fiximg.js" ] | |
+ }, | |
+ { | |
+ "matches": [ "*://www.gamekings.tv/*" ], | |
+ "js": [ "site/gamekings.js" ], | |
+ "css": [ "site/gamekings.css" ] | |
+ }, | |
+ { | |
+ "matches": [ "*://kudtkoekiewet.nl/*" ], | |
+ "js": [ "site/kudtkoekiewet.js" ] | |
+ }, | |
+ { | |
+ "matches": [ "*://twitter.com/*" ], | |
+ "css": [ "site/twitter.css" ] | |
+ }, | |
+ { | |
+ "matches": [ "*://tweakers.net/*" ], | |
+ "js": [ "site/tweakers.js" ] | |
+ }, | |
+ { | |
+ "matches": [ "*://www.buienradar.nl/*" ], | |
+ "css": [ "site/buienradar.css" ] | |
+ }, | |
+ { | |
+ "matches": [ "*://*.hardware.info/*" ], | |
+ "css": [ "site/hardwareinfo.css" ], | |
+ "js": [ "site/hardwareinfo.js" ] | |
+ } | |
+ ] | |
+} | |
diff --git a/extension/site/buienradar.css b/extension/site/buienradar.css | |
@@ -0,0 +1,3 @@ | |
+#br-ad-outofpage, .spec-block { | |
+ display: none !important; | |
+} | |
diff --git a/extension/site/gamekings.css b/extension/site/gamekings.css | |
@@ -0,0 +1,20 @@ | |
+.getpremium, .slider { | |
+ display: none !important; | |
+ | |
+} | |
+.content { | |
+ opacity: 1 !important; | |
+} | |
+.post__image { | |
+ top: 0 !important; | |
+ left: 0 !important; | |
+ width: 100% !important; | |
+ height: 100% !important; | |
+ position: static !important; | |
+ transition: none !important; | |
+ transform: none !important; | |
+} | |
+.video { | |
+ overflow: initial !important; | |
+ height: auto !important; | |
+} | |
diff --git a/extension/site/gamekings.js b/extension/site/gamekings.js | |
@@ -0,0 +1,16 @@ | |
+(function() { | |
+ | |
+Array.from(document.querySelectorAll("#videoplayer[data-url]")).map(function(v… | |
+ var url = v.getAttribute("data-url") || ""; | |
+ var thumb = v.getAttribute("data-thumb") || ""; | |
+ if (url.length && thumb.length) { | |
+ var a = document.createElement("a"); | |
+ a.href = url; | |
+ a.innerHTML = "<img src=\"" + thumb + "\" alt=\"\" />"; | |
+ | |
+ v.parentNode.replaceChild(a, v); | |
+ } | |
+}); | |
+ | |
+})(); | |
+ | |
diff --git a/extension/site/hardwareinfo.css b/extension/site/hardwareinfo.css | |
@@ -0,0 +1,7 @@ | |
+#sitearea > div:not([id='content']) *, | |
+#sitearea > div:not([id='content']) { | |
+ display: none !important; | |
+ color: transparent !important; | |
+ border: 0 !important; | |
+ background: none !important; | |
+} | |
diff --git a/extension/site/hardwareinfo.js b/extension/site/hardwareinfo.js | |
@@ -0,0 +1,9 @@ | |
+(function() { | |
+ | |
+var c = document.getElementById("cookiecontainer"); | |
+if (typeof(c) != "undefined" && (document.cookie || "").match("cookiebar=1") =… | |
+ document.cookie = "cookiebar=1"; | |
+ window.location.reload(true); | |
+} | |
+ | |
+})(); | |
diff --git a/extension/site/kudtkoekiewet.js b/extension/site/kudtkoekiewet.js | |
@@ -0,0 +1,5 @@ | |
+(function() { | |
+ | |
+location.href = location.search.match(/t=(.*)/)[1]+"?kudtcookiewet=jakapmetzeu… | |
+ | |
+})(); | |
diff --git a/extension/site/tweakers.js b/extension/site/tweakers.js | |
@@ -0,0 +1,10 @@ | |
+(function() { | |
+ | |
+var c = document.getElementById("cookieContainer"); | |
+if (typeof(c) != "undefined") { | |
+ var b = c.getElementsByClassName("fancyButton"); | |
+ if (b.length) | |
+ b[0].click(); | |
+} | |
+ | |
+})(); | |
diff --git a/extension/site/twitter.css b/extension/site/twitter.css | |
@@ -0,0 +1,3 @@ | |
+form.NoScriptForm{ | |
+ display: none !important; | |
+} |