diff --git a/CHANGELOG.md b/CHANGELOG.md
index 9dbdc2290..7a9456cb5 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,6 +4,11 @@
### v1.13.14
+**v1.13.14.9** *(2017-11-17)* - [[Userscript](https://raw.githubusercontent.com/ccd0/4chan-x/1.13.14.9/builds/4chan-X-noupdate.user.js)] [[Chrome extension](https://raw.githubusercontent.com/ccd0/4chan-x/1.13.14.9/builds/4chan-X-noupdate.crx)]
+- Hard disable 'Force Noscript Captcha for v1' in GM4 for now.
+- Work around double loading issue in Greasemonkey 4. #1629
+- Fix 'Open front page' keybind in Tampermonkey.
+
**v1.13.14.8** *(2017-11-16)* - [[Userscript](https://raw.githubusercontent.com/ccd0/4chan-x/1.13.14.8/builds/4chan-X-noupdate.user.js)] [[Chrome extension](https://raw.githubusercontent.com/ccd0/4chan-x/1.13.14.8/builds/4chan-X-noupdate.crx)]
- Yet more Greasemonkey 4 related fixes.
diff --git a/builds/4chan-X-beta.crx b/builds/4chan-X-beta.crx
index 11aff3eef..186444b4c 100644
Binary files a/builds/4chan-X-beta.crx and b/builds/4chan-X-beta.crx differ
diff --git a/builds/4chan-X-beta.meta.js b/builds/4chan-X-beta.meta.js
index e5dd19907..6e8f04272 100644
--- a/builds/4chan-X-beta.meta.js
+++ b/builds/4chan-X-beta.meta.js
@@ -1,6 +1,6 @@
// ==UserScript==
// @name 4chan X beta
-// @version 1.13.14.8
+// @version 1.13.14.9
// @minGMVer 1.14
// @minFFVer 26
// @namespace 4chan-X
diff --git a/builds/4chan-X-beta.user.js b/builds/4chan-X-beta.user.js
index 2c512d08d..8a3d59e50 100644
--- a/builds/4chan-X-beta.user.js
+++ b/builds/4chan-X-beta.user.js
@@ -1,6 +1,6 @@
// ==UserScript==
// @name 4chan X beta
-// @version 1.13.14.8
+// @version 1.13.14.9
// @minGMVer 1.14
// @minFFVer 26
// @namespace 4chan-X
@@ -159,7 +159,7 @@ docSet = function() {
};
g = {
- VERSION: '1.13.14.8',
+ VERSION: '1.13.14.9',
NAMESPACE: '4chan X.',
boards: {}
};
@@ -17136,7 +17136,7 @@ Keybinds = (function() {
}
break;
case Conf['Open front page']:
- $.open("/" + g.BOARD + "/");
+ $.open(location.origin + "/" + g.BOARD + "/");
break;
case Conf['Next page']:
if (!(g.VIEW === 'index' && g.BOARD.ID !== 'f')) {
@@ -21452,7 +21452,7 @@ QR = (function() {
'video/webm': 'webm'
},
init: function() {
- var noscript, sc, version;
+ var info, noscript, sc, version;
if (!Conf['Quick Reply']) {
return;
}
@@ -21460,7 +21460,7 @@ QR = (function() {
if (g.VIEW === 'archive') {
return;
}
- version = Conf[g.VIEW === 'thread' ? 'Use Recaptcha v1' : 'Use Recaptcha v1 on Index'] && (Main.jsEnabled || location.protocol === 'https:') ? (noscript = location.protocol === 'https:' && (Conf['Force Noscript Captcha for v1'] || !Main.jsEnabled), noscript ? 'noscript' : 'v1') : 'v2';
+ version = Conf[g.VIEW === 'thread' ? 'Use Recaptcha v1' : 'Use Recaptcha v1 on Index'] && (Main.jsEnabled || location.protocol === 'https:') ? (noscript = location.protocol === 'https:' && (Conf['Force Noscript Captcha for v1'] || !Main.jsEnabled), (info = typeof GM !== "undefined" && GM !== null ? GM.info : void 0) && info.scriptHandler === 'Greasemonkey' && /^4\./.test(info.version) ? noscript = false : void 0, noscript ? 'noscript' : 'v1') : 'v2';
this.captcha = Captcha[version];
$.on(d, '4chanXInitFinished', function() {
return BoardConfig.ready(QR.initReady);
@@ -24641,6 +24641,15 @@ Main = (function() {
if (location.hostname === 'boards.4chan.org' && d.documentElement && !d.doctype) {
return;
}
+ if (doc && $.hasClass(doc, 'fourchan-x')) {
+ return;
+ }
+ $.asap(docSet, function() {
+ $.addClass(doc, 'fourchan-x', 'seaweedchan');
+ if ($.engine) {
+ return $.addClass(doc, "ua-" + $.engine);
+ }
+ });
$.on(d, '4chanXInitFinished', function() {
if (Main.expectInitFinished) {
return delete Main.expectInitFinished;
@@ -24687,9 +24696,6 @@ Main = (function() {
Conf['QR Shortcut'] = true;
Conf['Bottom QR Link'] = true;
Conf['Toggleable Thread Watcher'] = true;
- if ($.engine === 'gecko' && (typeof GM !== "undefined" && GM !== null)) {
- Conf['Force Noscript Captcha for v1'] = false;
- }
($.getSync || $.get)({
'jsWhitelist': Conf['jsWhitelist']
}, function(arg) {
@@ -24850,11 +24856,7 @@ Main = (function() {
if ((ref = $('link[href*=mobile]', d.head)) != null) {
ref.disabled = true;
}
- $.addClass(doc, 'fourchan-x', 'seaweedchan');
$.addClass(doc, g.VIEW === 'thread' ? 'thread-view' : g.VIEW);
- if ($.engine) {
- $.addClass(doc, "ua-" + $.engine);
- }
$.onExists(doc, '.ad-cnt, .adg-rects > .desktop', function(ad) {
return $.onExists(ad, 'img, iframe', function() {
return $.addClass(doc, 'ads-loaded');
diff --git a/builds/4chan-X-noupdate.crx b/builds/4chan-X-noupdate.crx
index d6601cb0a..8259147a0 100644
Binary files a/builds/4chan-X-noupdate.crx and b/builds/4chan-X-noupdate.crx differ
diff --git a/builds/4chan-X-noupdate.user.js b/builds/4chan-X-noupdate.user.js
index 0440f3e0b..343943c57 100644
--- a/builds/4chan-X-noupdate.user.js
+++ b/builds/4chan-X-noupdate.user.js
@@ -1,6 +1,6 @@
// ==UserScript==
// @name 4chan X
-// @version 1.13.14.8
+// @version 1.13.14.9
// @minGMVer 1.14
// @minFFVer 26
// @namespace 4chan-X
@@ -159,7 +159,7 @@ docSet = function() {
};
g = {
- VERSION: '1.13.14.8',
+ VERSION: '1.13.14.9',
NAMESPACE: '4chan X.',
boards: {}
};
@@ -17136,7 +17136,7 @@ Keybinds = (function() {
}
break;
case Conf['Open front page']:
- $.open("/" + g.BOARD + "/");
+ $.open(location.origin + "/" + g.BOARD + "/");
break;
case Conf['Next page']:
if (!(g.VIEW === 'index' && g.BOARD.ID !== 'f')) {
@@ -21452,7 +21452,7 @@ QR = (function() {
'video/webm': 'webm'
},
init: function() {
- var noscript, sc, version;
+ var info, noscript, sc, version;
if (!Conf['Quick Reply']) {
return;
}
@@ -21460,7 +21460,7 @@ QR = (function() {
if (g.VIEW === 'archive') {
return;
}
- version = Conf[g.VIEW === 'thread' ? 'Use Recaptcha v1' : 'Use Recaptcha v1 on Index'] && (Main.jsEnabled || location.protocol === 'https:') ? (noscript = location.protocol === 'https:' && (Conf['Force Noscript Captcha for v1'] || !Main.jsEnabled), noscript ? 'noscript' : 'v1') : 'v2';
+ version = Conf[g.VIEW === 'thread' ? 'Use Recaptcha v1' : 'Use Recaptcha v1 on Index'] && (Main.jsEnabled || location.protocol === 'https:') ? (noscript = location.protocol === 'https:' && (Conf['Force Noscript Captcha for v1'] || !Main.jsEnabled), (info = typeof GM !== "undefined" && GM !== null ? GM.info : void 0) && info.scriptHandler === 'Greasemonkey' && /^4\./.test(info.version) ? noscript = false : void 0, noscript ? 'noscript' : 'v1') : 'v2';
this.captcha = Captcha[version];
$.on(d, '4chanXInitFinished', function() {
return BoardConfig.ready(QR.initReady);
@@ -24641,6 +24641,15 @@ Main = (function() {
if (location.hostname === 'boards.4chan.org' && d.documentElement && !d.doctype) {
return;
}
+ if (doc && $.hasClass(doc, 'fourchan-x')) {
+ return;
+ }
+ $.asap(docSet, function() {
+ $.addClass(doc, 'fourchan-x', 'seaweedchan');
+ if ($.engine) {
+ return $.addClass(doc, "ua-" + $.engine);
+ }
+ });
$.on(d, '4chanXInitFinished', function() {
if (Main.expectInitFinished) {
return delete Main.expectInitFinished;
@@ -24687,9 +24696,6 @@ Main = (function() {
Conf['QR Shortcut'] = true;
Conf['Bottom QR Link'] = true;
Conf['Toggleable Thread Watcher'] = true;
- if ($.engine === 'gecko' && (typeof GM !== "undefined" && GM !== null)) {
- Conf['Force Noscript Captcha for v1'] = false;
- }
($.getSync || $.get)({
'jsWhitelist': Conf['jsWhitelist']
}, function(arg) {
@@ -24850,11 +24856,7 @@ Main = (function() {
if ((ref = $('link[href*=mobile]', d.head)) != null) {
ref.disabled = true;
}
- $.addClass(doc, 'fourchan-x', 'seaweedchan');
$.addClass(doc, g.VIEW === 'thread' ? 'thread-view' : g.VIEW);
- if ($.engine) {
- $.addClass(doc, "ua-" + $.engine);
- }
$.onExists(doc, '.ad-cnt, .adg-rects > .desktop', function(ad) {
return $.onExists(ad, 'img, iframe', function() {
return $.addClass(doc, 'ads-loaded');
diff --git a/builds/4chan-X.crx b/builds/4chan-X.crx
index 4076485cd..d101156e4 100644
Binary files a/builds/4chan-X.crx and b/builds/4chan-X.crx differ
diff --git a/builds/4chan-X.meta.js b/builds/4chan-X.meta.js
index d7106f8f9..9480e953b 100644
--- a/builds/4chan-X.meta.js
+++ b/builds/4chan-X.meta.js
@@ -1,6 +1,6 @@
// ==UserScript==
// @name 4chan X
-// @version 1.13.14.8
+// @version 1.13.14.9
// @minGMVer 1.14
// @minFFVer 26
// @namespace 4chan-X
diff --git a/builds/4chan-X.user.js b/builds/4chan-X.user.js
index 7d3a38868..d77aac912 100644
--- a/builds/4chan-X.user.js
+++ b/builds/4chan-X.user.js
@@ -1,6 +1,6 @@
// ==UserScript==
// @name 4chan X
-// @version 1.13.14.8
+// @version 1.13.14.9
// @minGMVer 1.14
// @minFFVer 26
// @namespace 4chan-X
@@ -159,7 +159,7 @@ docSet = function() {
};
g = {
- VERSION: '1.13.14.8',
+ VERSION: '1.13.14.9',
NAMESPACE: '4chan X.',
boards: {}
};
@@ -17136,7 +17136,7 @@ Keybinds = (function() {
}
break;
case Conf['Open front page']:
- $.open("/" + g.BOARD + "/");
+ $.open(location.origin + "/" + g.BOARD + "/");
break;
case Conf['Next page']:
if (!(g.VIEW === 'index' && g.BOARD.ID !== 'f')) {
@@ -21452,7 +21452,7 @@ QR = (function() {
'video/webm': 'webm'
},
init: function() {
- var noscript, sc, version;
+ var info, noscript, sc, version;
if (!Conf['Quick Reply']) {
return;
}
@@ -21460,7 +21460,7 @@ QR = (function() {
if (g.VIEW === 'archive') {
return;
}
- version = Conf[g.VIEW === 'thread' ? 'Use Recaptcha v1' : 'Use Recaptcha v1 on Index'] && (Main.jsEnabled || location.protocol === 'https:') ? (noscript = location.protocol === 'https:' && (Conf['Force Noscript Captcha for v1'] || !Main.jsEnabled), noscript ? 'noscript' : 'v1') : 'v2';
+ version = Conf[g.VIEW === 'thread' ? 'Use Recaptcha v1' : 'Use Recaptcha v1 on Index'] && (Main.jsEnabled || location.protocol === 'https:') ? (noscript = location.protocol === 'https:' && (Conf['Force Noscript Captcha for v1'] || !Main.jsEnabled), (info = typeof GM !== "undefined" && GM !== null ? GM.info : void 0) && info.scriptHandler === 'Greasemonkey' && /^4\./.test(info.version) ? noscript = false : void 0, noscript ? 'noscript' : 'v1') : 'v2';
this.captcha = Captcha[version];
$.on(d, '4chanXInitFinished', function() {
return BoardConfig.ready(QR.initReady);
@@ -24641,6 +24641,15 @@ Main = (function() {
if (location.hostname === 'boards.4chan.org' && d.documentElement && !d.doctype) {
return;
}
+ if (doc && $.hasClass(doc, 'fourchan-x')) {
+ return;
+ }
+ $.asap(docSet, function() {
+ $.addClass(doc, 'fourchan-x', 'seaweedchan');
+ if ($.engine) {
+ return $.addClass(doc, "ua-" + $.engine);
+ }
+ });
$.on(d, '4chanXInitFinished', function() {
if (Main.expectInitFinished) {
return delete Main.expectInitFinished;
@@ -24687,9 +24696,6 @@ Main = (function() {
Conf['QR Shortcut'] = true;
Conf['Bottom QR Link'] = true;
Conf['Toggleable Thread Watcher'] = true;
- if ($.engine === 'gecko' && (typeof GM !== "undefined" && GM !== null)) {
- Conf['Force Noscript Captcha for v1'] = false;
- }
($.getSync || $.get)({
'jsWhitelist': Conf['jsWhitelist']
}, function(arg) {
@@ -24850,11 +24856,7 @@ Main = (function() {
if ((ref = $('link[href*=mobile]', d.head)) != null) {
ref.disabled = true;
}
- $.addClass(doc, 'fourchan-x', 'seaweedchan');
$.addClass(doc, g.VIEW === 'thread' ? 'thread-view' : g.VIEW);
- if ($.engine) {
- $.addClass(doc, "ua-" + $.engine);
- }
$.onExists(doc, '.ad-cnt, .adg-rects > .desktop', function(ad) {
return $.onExists(ad, 'img, iframe', function() {
return $.addClass(doc, 'ads-loaded');
diff --git a/builds/4chan-X.zip b/builds/4chan-X.zip
index 520ced05d..62b476ffd 100644
Binary files a/builds/4chan-X.zip and b/builds/4chan-X.zip differ
diff --git a/builds/updates-beta.json b/builds/updates-beta.json
index 670a61980..7d3cc704d 100644
--- a/builds/updates-beta.json
+++ b/builds/updates-beta.json
@@ -3,7 +3,7 @@
"4chan-x@4chan-x.net": {
"updates": [
{
- "version": "1.13.14.8",
+ "version": "1.13.14.9",
"update_link": "https://www.4chan-x.net/builds/4chan-X-beta.crx"
}
]
diff --git a/builds/updates-beta.xml b/builds/updates-beta.xml
index 79eedf3f2..6189d4569 100644
--- a/builds/updates-beta.xml
+++ b/builds/updates-beta.xml
@@ -1,7 +1,7 @@
-
+
diff --git a/builds/updates.json b/builds/updates.json
index 6dcfc3598..adaa3ef2f 100644
--- a/builds/updates.json
+++ b/builds/updates.json
@@ -3,7 +3,7 @@
"4chan-x@4chan-x.net": {
"updates": [
{
- "version": "1.13.14.8",
+ "version": "1.13.14.9",
"update_link": "https://www.4chan-x.net/builds/4chan-X.crx"
}
]
diff --git a/builds/updates.xml b/builds/updates.xml
index d21d6369c..570e66840 100644
--- a/builds/updates.xml
+++ b/builds/updates.xml
@@ -1,7 +1,7 @@
-
+
diff --git a/version.json b/version.json
index 7de1c3979..60b4c81f3 100644
--- a/version.json
+++ b/version.json
@@ -1,4 +1,4 @@
{
- "version": "1.13.14.8",
- "date": "2017-11-16T05:51:41.932Z"
+ "version": "1.13.14.9",
+ "date": "2017-11-17T23:03:05.833Z"
}
\ No newline at end of file