diff --git a/CHANGELOG.md b/CHANGELOG.md
index b75a8f8e3..b416d24be 100755
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,6 +4,9 @@ The links to individual versions below are to copies of the script with the upda
### v1.10.4
+**v1.10.4.6** *(2015-03-15)* - [[Firefox](https://raw.githubusercontent.com/ccd0/4chan-x/1.10.4.6/builds/4chan-X-noupdate.user.js "Firefox version")] [[Chromium](https://raw.githubusercontent.com/ccd0/4chan-x/1.10.4.6/builds/4chan-X-noupdate.crx "Chromium version")]
+- Work around Greasemonkey 3.0 bug causing multiple tabs to be opened upon posting. For now, users will have to either enable popups on boards.4chan.org or downgrade to Greasemonkey 2.3.
+
**v1.10.4.5** *(2015-03-13)* - [[Firefox](https://raw.githubusercontent.com/ccd0/4chan-x/1.10.4.5/builds/4chan-X-noupdate.user.js "Firefox version")] [[Chromium](https://raw.githubusercontent.com/ccd0/4chan-x/1.10.4.5/builds/4chan-X-noupdate.crx "Chromium version")]
- Fix wait-to-post error messages pausing autoposting.
diff --git a/builds/4chan-X-beta.crx b/builds/4chan-X-beta.crx
index ecd9b141f..527f1c4f8 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 dc825f9ce..f508d7b5f 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.10.4.5
+// @version 1.10.4.6
// @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 a3d0a2fa2..f65ca8958 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.10.4.5
+// @version 1.10.4.6
// @minGMVer 1.14
// @minFFVer 26
// @namespace 4chan-X
@@ -395,7 +395,7 @@
doc = d.documentElement;
g = {
- VERSION: '1.10.4.5',
+ VERSION: '1.10.4.6',
NAMESPACE: '4chan X.',
NAME: '4chan X',
FAQ: 'https://github.com/ccd0/4chan-x/wiki/Frequently-Asked-Questions',
@@ -764,7 +764,9 @@
}));
};
- $.open = GM_openInTab;
+ $.open = GM_info.version === 'unknown' ? function(URL) {
+ return $.globalEval("window.open(" + (JSON.stringify(URL)) + ", '_blank');");
+ } : GM_openInTab;
$.debounce = function(wait, fn) {
var args, exec, lastCall, that, timeout;
diff --git a/builds/4chan-X-noupdate.crx b/builds/4chan-X-noupdate.crx
index b9a1fcc67..8fb01a831 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 12d182544..8981deae5 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.10.4.5
+// @version 1.10.4.6
// @minGMVer 1.14
// @minFFVer 26
// @namespace 4chan-X
@@ -394,7 +394,7 @@
doc = d.documentElement;
g = {
- VERSION: '1.10.4.5',
+ VERSION: '1.10.4.6',
NAMESPACE: '4chan X.',
NAME: '4chan X',
FAQ: 'https://github.com/ccd0/4chan-x/wiki/Frequently-Asked-Questions',
@@ -763,7 +763,9 @@
}));
};
- $.open = GM_openInTab;
+ $.open = GM_info.version === 'unknown' ? function(URL) {
+ return $.globalEval("window.open(" + (JSON.stringify(URL)) + ", '_blank');");
+ } : GM_openInTab;
$.debounce = function(wait, fn) {
var args, exec, lastCall, that, timeout;
diff --git a/builds/4chan-X.crx b/builds/4chan-X.crx
index 434f9533c..354d6d521 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 4dcb4d3ae..de474a162 100644
--- a/builds/4chan-X.meta.js
+++ b/builds/4chan-X.meta.js
@@ -1,6 +1,6 @@
// ==UserScript==
// @name 4chan X
-// @version 1.10.4.5
+// @version 1.10.4.6
// @minGMVer 1.14
// @minFFVer 26
// @namespace 4chan-X
diff --git a/builds/4chan-X.user.js b/builds/4chan-X.user.js
index dc5a8e9d1..5beef193c 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.10.4.5
+// @version 1.10.4.6
// @minGMVer 1.14
// @minFFVer 26
// @namespace 4chan-X
@@ -395,7 +395,7 @@
doc = d.documentElement;
g = {
- VERSION: '1.10.4.5',
+ VERSION: '1.10.4.6',
NAMESPACE: '4chan X.',
NAME: '4chan X',
FAQ: 'https://github.com/ccd0/4chan-x/wiki/Frequently-Asked-Questions',
@@ -764,7 +764,9 @@
}));
};
- $.open = GM_openInTab;
+ $.open = GM_info.version === 'unknown' ? function(URL) {
+ return $.globalEval("window.open(" + (JSON.stringify(URL)) + ", '_blank');");
+ } : GM_openInTab;
$.debounce = function(wait, fn) {
var args, exec, lastCall, that, timeout;
diff --git a/builds/4chan-X.zip b/builds/4chan-X.zip
index c59299695..7ead84da5 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 b21fea480..44f70cba0 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 00a2e0d2e..ea4b68d2c 100644
--- a/builds/updates.xml
+++ b/builds/updates.xml
@@ -1,7 +1,7 @@
-
+
diff --git a/package.json b/package.json
index b16d22f3c..9852ee9e4 100755
--- a/package.json
+++ b/package.json
@@ -3,8 +3,8 @@
"description": "Cross-browser userscript for maximum lurking on 4chan.",
"meta": {
"name": "4chan X",
- "version": "1.10.4.5",
- "date": "2015-03-14T03:50:11.775Z",
+ "version": "1.10.4.6",
+ "date": "2015-03-15T07:03:19.956Z",
"repo": "https://github.com/ccd0/4chan-x/",
"page": "https://github.com/ccd0/4chan-x",
"downloads": "https://ccd0.github.io/4chan-x/builds/",
diff --git a/src/General/lib/$.coffee b/src/General/lib/$.coffee
index e690c705b..7991388f2 100755
--- a/src/General/lib/$.coffee
+++ b/src/General/lib/$.coffee
@@ -221,7 +221,11 @@ $.event = (event, detail, root=d) ->
$.open =
<% if (type === 'userscript') { %>
- GM_openInTab
+ if GM_info.version is 'unknown' # GM_info.version is broken in GM3.0
+ # XXX https://github.com/greasemonkey/greasemonkey/issues/2094
+ (URL) -> $.globalEval "window.open(#{JSON.stringify URL}, '_blank');"
+ else
+ GM_openInTab
<% } else { %>
(URL) -> window.open URL, '_blank'
<% } %>