diff --git a/CHANGELOG.md b/CHANGELOG.md index 0f5c305ec..ec1bdb969 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,9 @@ Sometimes the changelog has notes (not comprehensive) acknowledging people's wor ### v1.11.17 +**v1.11.17.2** *(2015-11-15)* - [[Firefox](https://raw.githubusercontent.com/ccd0/4chan-x/1.11.17.2/builds/4chan-X-noupdate.user.js "Firefox version")] [[Chromium](https://raw.githubusercontent.com/ccd0/4chan-x/1.11.17.2/builds/4chan-X-noupdate.crx "Chromium version")] +- Merge v1.11.16.9: Bring back scrolling prevention when captcha is focused. + **v1.11.17.1** *(2015-11-15)* - [[Firefox](https://raw.githubusercontent.com/ccd0/4chan-x/1.11.17.1/builds/4chan-X-noupdate.user.js "Firefox version")] [[Chromium](https://raw.githubusercontent.com/ccd0/4chan-x/1.11.17.1/builds/4chan-X-noupdate.crx "Chromium version")] - Merge v1.11.16.8: Remove obsolete captcha bug workaround that may be causing scrolling to top. diff --git a/builds/4chan-X-beta.crx b/builds/4chan-X-beta.crx index e0b4fd91d..ce09288ad 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 a15394c96..a56f315b3 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.11.17.1 +// @version 1.11.17.2 // @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 422b62f11..8cc9a0cf4 100644 --- a/builds/4chan-X-beta.user.js +++ b/builds/4chan-X-beta.user.js @@ -1,7 +1,7 @@ // Generated by CoffeeScript // ==UserScript== // @name 4chan X beta -// @version 1.11.17.1 +// @version 1.11.17.2 // @minGMVer 1.14 // @minFFVer 26 // @namespace 4chan-X @@ -433,7 +433,7 @@ doc = d.documentElement; g = { - VERSION: '1.11.17.1', + VERSION: '1.11.17.2', NAMESPACE: '4chan X.', boards: {} }; @@ -7115,7 +7115,15 @@ return $.queueTask(function() { if (!QR.inBubble()) { QR.hasFocus = d.activeElement && QR.nodes.el.contains(d.activeElement); - return QR.nodes.el.classList.toggle('focus', QR.hasFocus); + QR.nodes.el.classList.toggle('focus', QR.hasFocus); + } + if (QR.captcha.isEnabled && QR.captcha === Captcha.v2 && !QR.captcha.noscript) { + if (QR.inCaptcha()) { + QR.scrollY = window.scrollY; + return $.on(d, 'scroll', QR.scrollLock); + } else { + return $.off(d, 'scroll', QR.scrollLock); + } } }); }, @@ -7126,6 +7134,17 @@ return getComputedStyle(el).visibility !== 'hidden' && el.getBoundingClientRect().bottom > 0; }); }, + inCaptcha: function() { + var ref; + return (((ref = d.activeElement) != null ? ref.nodeName : void 0) === 'IFRAME' && QR.nodes.el.contains(d.activeElement)) || (QR.hasFocus && QR.inBubble()); + }, + scrollLock: function() { + if (QR.inCaptcha()) { + return window.scroll(window.scrollX, QR.scrollY); + } else { + return $.off(d, 'scroll', QR.scrollLock); + } + }, hide: function() { d.activeElement.blur(); $.addClass(QR.nodes.el, 'autohide'); @@ -8758,7 +8777,7 @@ } }, watchBubbles: function(mutations) { - var k, len1, mutation, node, results; + var k, len1, mutation, node, overlay, results; results = []; for (k = 0, len1 = mutations.length; k < len1; k++) { mutation = mutations[k]; @@ -8769,9 +8788,17 @@ for (q = 0, len2 = ref.length; q < len2; q++) { node = ref[q]; if ($('iframe[src^="https://www.google.com/recaptcha/api2/frame"]', node)) { - results1.push(new MutationObserver(this.fixBubble.bind(this, node)).observe(node, { + new MutationObserver(this.fixBubble.bind(this, node)).observe(node, { attributes: true - })); + }); + if (overlay = $('div[style*="position: fixed;"]', node)) { + results1.push($.on(overlay, 'click', function() { + var ref1; + return (ref1 = $('#qr iframe')) != null ? ref1.blur() : void 0; + })); + } else { + results1.push(void 0); + } } else { results1.push(void 0); } @@ -19803,18 +19830,8 @@ "#qr .captcha-root {\n" + " position: relative;\n" + "}\n" + -"#qr .captcha-container > div {\n" + +"#qr .captcha-container > div > div {\n" + " margin: auto;\n" + -" width: 304px;\n" + -"}\n" + -"/* scrollable with scroll bar hidden; prevents scroll on space press */\n" + -":root.blink #qr .captcha-container > div {\n" + -" overflow: hidden;\n" + -"}\n" + -":root.blink #qr .captcha-container > div > div:first-of-type {\n" + -" overflow-y: scroll;\n" + -" overflow-x: hidden;\n" + -" padding-right: 15px;\n" + "}\n" + "#qr .captcha-counter {\n" + " display: block;\n" + diff --git a/builds/4chan-X-noupdate.crx b/builds/4chan-X-noupdate.crx index e018b5c46..a81120cfe 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 7deb7cc59..f6c107356 100644 --- a/builds/4chan-X-noupdate.user.js +++ b/builds/4chan-X-noupdate.user.js @@ -1,7 +1,7 @@ // Generated by CoffeeScript // ==UserScript== // @name 4chan X -// @version 1.11.17.1 +// @version 1.11.17.2 // @minGMVer 1.14 // @minFFVer 26 // @namespace 4chan-X @@ -433,7 +433,7 @@ doc = d.documentElement; g = { - VERSION: '1.11.17.1', + VERSION: '1.11.17.2', NAMESPACE: '4chan X.', boards: {} }; @@ -7115,7 +7115,15 @@ return $.queueTask(function() { if (!QR.inBubble()) { QR.hasFocus = d.activeElement && QR.nodes.el.contains(d.activeElement); - return QR.nodes.el.classList.toggle('focus', QR.hasFocus); + QR.nodes.el.classList.toggle('focus', QR.hasFocus); + } + if (QR.captcha.isEnabled && QR.captcha === Captcha.v2 && !QR.captcha.noscript) { + if (QR.inCaptcha()) { + QR.scrollY = window.scrollY; + return $.on(d, 'scroll', QR.scrollLock); + } else { + return $.off(d, 'scroll', QR.scrollLock); + } } }); }, @@ -7126,6 +7134,17 @@ return getComputedStyle(el).visibility !== 'hidden' && el.getBoundingClientRect().bottom > 0; }); }, + inCaptcha: function() { + var ref; + return (((ref = d.activeElement) != null ? ref.nodeName : void 0) === 'IFRAME' && QR.nodes.el.contains(d.activeElement)) || (QR.hasFocus && QR.inBubble()); + }, + scrollLock: function() { + if (QR.inCaptcha()) { + return window.scroll(window.scrollX, QR.scrollY); + } else { + return $.off(d, 'scroll', QR.scrollLock); + } + }, hide: function() { d.activeElement.blur(); $.addClass(QR.nodes.el, 'autohide'); @@ -8758,7 +8777,7 @@ } }, watchBubbles: function(mutations) { - var k, len1, mutation, node, results; + var k, len1, mutation, node, overlay, results; results = []; for (k = 0, len1 = mutations.length; k < len1; k++) { mutation = mutations[k]; @@ -8769,9 +8788,17 @@ for (q = 0, len2 = ref.length; q < len2; q++) { node = ref[q]; if ($('iframe[src^="https://www.google.com/recaptcha/api2/frame"]', node)) { - results1.push(new MutationObserver(this.fixBubble.bind(this, node)).observe(node, { + new MutationObserver(this.fixBubble.bind(this, node)).observe(node, { attributes: true - })); + }); + if (overlay = $('div[style*="position: fixed;"]', node)) { + results1.push($.on(overlay, 'click', function() { + var ref1; + return (ref1 = $('#qr iframe')) != null ? ref1.blur() : void 0; + })); + } else { + results1.push(void 0); + } } else { results1.push(void 0); } @@ -19803,18 +19830,8 @@ "#qr .captcha-root {\n" + " position: relative;\n" + "}\n" + -"#qr .captcha-container > div {\n" + +"#qr .captcha-container > div > div {\n" + " margin: auto;\n" + -" width: 304px;\n" + -"}\n" + -"/* scrollable with scroll bar hidden; prevents scroll on space press */\n" + -":root.blink #qr .captcha-container > div {\n" + -" overflow: hidden;\n" + -"}\n" + -":root.blink #qr .captcha-container > div > div:first-of-type {\n" + -" overflow-y: scroll;\n" + -" overflow-x: hidden;\n" + -" padding-right: 15px;\n" + "}\n" + "#qr .captcha-counter {\n" + " display: block;\n" + diff --git a/builds/4chan-X.crx b/builds/4chan-X.crx index 4abb035bf..e5a0b6c21 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 abcc0b9df..fc73983f3 100644 --- a/builds/4chan-X.meta.js +++ b/builds/4chan-X.meta.js @@ -1,6 +1,6 @@ // ==UserScript== // @name 4chan X -// @version 1.11.17.1 +// @version 1.11.17.2 // @minGMVer 1.14 // @minFFVer 26 // @namespace 4chan-X diff --git a/builds/4chan-X.user.js b/builds/4chan-X.user.js index 611b8b873..f069f53fc 100644 --- a/builds/4chan-X.user.js +++ b/builds/4chan-X.user.js @@ -1,7 +1,7 @@ // Generated by CoffeeScript // ==UserScript== // @name 4chan X -// @version 1.11.17.1 +// @version 1.11.17.2 // @minGMVer 1.14 // @minFFVer 26 // @namespace 4chan-X @@ -433,7 +433,7 @@ doc = d.documentElement; g = { - VERSION: '1.11.17.1', + VERSION: '1.11.17.2', NAMESPACE: '4chan X.', boards: {} }; @@ -7115,7 +7115,15 @@ return $.queueTask(function() { if (!QR.inBubble()) { QR.hasFocus = d.activeElement && QR.nodes.el.contains(d.activeElement); - return QR.nodes.el.classList.toggle('focus', QR.hasFocus); + QR.nodes.el.classList.toggle('focus', QR.hasFocus); + } + if (QR.captcha.isEnabled && QR.captcha === Captcha.v2 && !QR.captcha.noscript) { + if (QR.inCaptcha()) { + QR.scrollY = window.scrollY; + return $.on(d, 'scroll', QR.scrollLock); + } else { + return $.off(d, 'scroll', QR.scrollLock); + } } }); }, @@ -7126,6 +7134,17 @@ return getComputedStyle(el).visibility !== 'hidden' && el.getBoundingClientRect().bottom > 0; }); }, + inCaptcha: function() { + var ref; + return (((ref = d.activeElement) != null ? ref.nodeName : void 0) === 'IFRAME' && QR.nodes.el.contains(d.activeElement)) || (QR.hasFocus && QR.inBubble()); + }, + scrollLock: function() { + if (QR.inCaptcha()) { + return window.scroll(window.scrollX, QR.scrollY); + } else { + return $.off(d, 'scroll', QR.scrollLock); + } + }, hide: function() { d.activeElement.blur(); $.addClass(QR.nodes.el, 'autohide'); @@ -8758,7 +8777,7 @@ } }, watchBubbles: function(mutations) { - var k, len1, mutation, node, results; + var k, len1, mutation, node, overlay, results; results = []; for (k = 0, len1 = mutations.length; k < len1; k++) { mutation = mutations[k]; @@ -8769,9 +8788,17 @@ for (q = 0, len2 = ref.length; q < len2; q++) { node = ref[q]; if ($('iframe[src^="https://www.google.com/recaptcha/api2/frame"]', node)) { - results1.push(new MutationObserver(this.fixBubble.bind(this, node)).observe(node, { + new MutationObserver(this.fixBubble.bind(this, node)).observe(node, { attributes: true - })); + }); + if (overlay = $('div[style*="position: fixed;"]', node)) { + results1.push($.on(overlay, 'click', function() { + var ref1; + return (ref1 = $('#qr iframe')) != null ? ref1.blur() : void 0; + })); + } else { + results1.push(void 0); + } } else { results1.push(void 0); } @@ -19803,18 +19830,8 @@ "#qr .captcha-root {\n" + " position: relative;\n" + "}\n" + -"#qr .captcha-container > div {\n" + +"#qr .captcha-container > div > div {\n" + " margin: auto;\n" + -" width: 304px;\n" + -"}\n" + -"/* scrollable with scroll bar hidden; prevents scroll on space press */\n" + -":root.blink #qr .captcha-container > div {\n" + -" overflow: hidden;\n" + -"}\n" + -":root.blink #qr .captcha-container > div > div:first-of-type {\n" + -" overflow-y: scroll;\n" + -" overflow-x: hidden;\n" + -" padding-right: 15px;\n" + "}\n" + "#qr .captcha-counter {\n" + " display: block;\n" + diff --git a/builds/4chan-X.zip b/builds/4chan-X.zip index 79ada2039..ced1415f2 100644 Binary files a/builds/4chan-X.zip and b/builds/4chan-X.zip differ diff --git a/builds/updates-beta.xml b/builds/updates-beta.xml index f4c452d09..48a3c6f68 100644 --- a/builds/updates-beta.xml +++ b/builds/updates-beta.xml @@ -1,7 +1,7 @@ - + diff --git a/builds/updates.xml b/builds/updates.xml index 968c76a33..f1a1ba6c5 100644 --- a/builds/updates.xml +++ b/builds/updates.xml @@ -1,7 +1,7 @@ - + diff --git a/version.json b/version.json index 7a5cc7361..fa176f3cd 100644 --- a/version.json +++ b/version.json @@ -1,4 +1,4 @@ { - "version": "1.11.17.1", - "date": "2015-11-16T06:41:09.771Z" + "version": "1.11.17.2", + "date": "2015-11-16T07:50:49.812Z" }