From 168944277c503f112e2675301f21e1e3aff9e37e Mon Sep 17 00:00:00 2001 From: Mayhem Date: Tue, 13 Aug 2013 03:03:50 +0200 Subject: [PATCH 01/15] 4chan X should attempt to handle this Chrome db corruption bug. This'll warn users about this bug and show them how to fix it. --- src/General/Main.coffee | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/src/General/Main.coffee b/src/General/Main.coffee index 039ad745d..60e4d026c 100644 --- a/src/General/Main.coffee +++ b/src/General/Main.coffee @@ -1,5 +1,5 @@ Main = - init: (items) -> + init: -> pathname = location.pathname.split '/' g.BOARD = new Board pathname[1] return if g.BOARD.ID in ['z', 'fk'] @@ -30,13 +30,25 @@ Main = Conf[db] = boards: {} Conf['selectedArchives'] = {} Conf['archives'] = Redirect.archives - $.get Conf, Main.initFeatures + $.get Conf, (items) -> + $.extend Conf, items + <% if (type === 'crx') { %> + unless items + new Notification 'error', $.el 'span', + innerHTML: """ + It seems like your <%= meta.name %> settings became corrupted due to a Chrome bug.
+ Unfortunately, you'll have to fix it yourself. + """ + # Track resolution of this bug. + Main.logError + message: 'Chrome Storage API bug' + error: new Error chrome.runtime.lastError.message or 'no lastError.message' + <% } %> + Main.initFeatures() $.on d, '4chanMainInit', Main.initStyle - initFeatures: (items) -> - Conf = items - + initFeatures: -> switch location.hostname when 'api.4chan.org' return From 87b8a3c9511f6dd2cba6735ae58e95f977bac0f3 Mon Sep 17 00:00:00 2001 From: Mayhem Date: Tue, 13 Aug 2013 03:10:01 +0200 Subject: [PATCH 02/15] Do not warn Firefox users about missing flexbox support anymore. 4chan X assumes Fx22+. --- src/General/Main.coffee | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/src/General/Main.coffee b/src/General/Main.coffee index 60e4d026c..f58223368 100644 --- a/src/General/Main.coffee +++ b/src/General/Main.coffee @@ -211,17 +211,6 @@ Main = catch err new Notification 'warning', 'Cookies need to be enabled on 4chan for <%= meta.name %> to properly function.', 30 - <% if (type === 'userscript') { %> - el = $.el 'span' - el.style.flex = 'test' - if el.style.flex is 'test' - el.innerHTML = """ - Firefox is not correctly set up and some <%= meta.name %> features will be displayed incorrectly.
- Follow the instructions of the install guide to fix it. - """ - new Notification 'warning', el, 30 - <% } %> - $.event '4chanXInitFinished' callbackNodes: (klass, nodes) -> From fb28d20870ea31b7cce4f849ba0420f17810afce Mon Sep 17 00:00:00 2001 From: Mayhem Date: Tue, 13 Aug 2013 03:34:09 +0200 Subject: [PATCH 03/15] Shave a line by removing an useless check. --- src/General/Main.coffee | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/General/Main.coffee b/src/General/Main.coffee index f58223368..1456e4090 100644 --- a/src/General/Main.coffee +++ b/src/General/Main.coffee @@ -176,9 +176,8 @@ Main = location.replace href or "/#{g.BOARD}/" return - unless $.hasClass doc, 'fourchan-x' - # Something might have gone wrong! - Main.initStyle() + # Something might have gone wrong! + Main.initStyle() if board = $ '.board' threads = [] From f1cf1addfe0708aeaf59d545beda65d3dd011f20 Mon Sep 17 00:00:00 2001 From: Mayhem Date: Tue, 13 Aug 2013 12:56:21 +0200 Subject: [PATCH 04/15] Move the header menu button into the header shortcuts. --- css/style.css | 3 --- html/General/Header.html | 5 ----- src/General/Header.coffee | 15 ++++++++++++--- src/Images/ImageExpand.coffee | 2 +- src/Posting/QR.coffee | 2 +- 5 files changed, 14 insertions(+), 13 deletions(-) diff --git a/css/style.css b/css/style.css index 32819ef69..c597b6826 100644 --- a/css/style.css +++ b/css/style.css @@ -189,9 +189,6 @@ a[href="javascript:;"] { text-decoration: none; padding: 1px; } -#shortcuts:empty { - display: none; -} .shortcut:not(:last-child)::after { content: " / "; } diff --git a/html/General/Header.html b/html/General/Header.html index 9251d7ff3..2e0088f42 100644 --- a/html/General/Header.html +++ b/html/General/Header.html @@ -1,9 +1,4 @@
- - - - - diff --git a/src/General/Header.coffee b/src/General/Header.coffee index 47588d98c..efbc288fc 100644 --- a/src/General/Header.coffee +++ b/src/General/Header.coffee @@ -10,7 +10,12 @@ Header = @toggle = $ '#toggle-header-bar', @bar @menu = new UI.Menu 'header' - $.on $('.menu-button', @bar), 'click', @menuToggle + menuButton = $.el 'a', + className: 'menu-button' + innerHTML: '' + href: 'javascript:;' + $.on menuButton, 'click', @menuToggle + @addShortcut menuButton, 0 $.on @toggle, 'mousedown', @toggleBarVisibility $.on window, 'load hashchange', Header.hashScroll $.on d, 'CreateNotification', @createNotification @@ -247,11 +252,15 @@ Header = top -= headRect.top + headRect.height window.scrollBy 0, top - addShortcut: (el) -> + addShortcut: (el, index) -> shortcut = $.el 'span', className: 'shortcut' $.add shortcut, el - $.prepend $('#shortcuts', Header.bar), shortcut + shortcuts = $ '#shortcuts', Header.bar + nodes = [shortcuts.childNodes...] + nodes.splice index, 0, shortcut + $.add shortcuts, nodes + menuToggle: (e) -> Header.menu.toggle e, @, g diff --git a/src/Images/ImageExpand.coffee b/src/Images/ImageExpand.coffee index 6a3a06f20..cf28bef59 100644 --- a/src/Images/ImageExpand.coffee +++ b/src/Images/ImageExpand.coffee @@ -8,7 +8,7 @@ ImageExpand = title: 'Expand All Images' href: 'javascript:;' $.on @EAI, 'click', ImageExpand.cb.toggleAll - Header.addShortcut @EAI + Header.addShortcut @EAI, 2 Post::callbacks.push name: 'Image Expansion' diff --git a/src/Posting/QR.coffee b/src/Posting/QR.coffee index 791802066..7c6d0afdf 100644 --- a/src/Posting/QR.coffee +++ b/src/Posting/QR.coffee @@ -27,7 +27,7 @@ QR = $.event 'CloseMenu' QR.open() QR.nodes.com.focus() - Header.addShortcut sc + Header.addShortcut sc, 1 $.on d, 'QRGetSelectedPost', ({detail: cb}) -> cb QR.selected From 0ee17f32ce8dfc746de9b70d1d7e7bda0656aef4 Mon Sep 17 00:00:00 2001 From: Mayhem Date: Tue, 13 Aug 2013 13:53:15 +0200 Subject: [PATCH 05/15] Use classes to position menus and sub-menus. --- css/style.css | 24 ++++++++++++++++++++++++ src/General/UI.coffee | 42 ++++++++++++++++++++---------------------- 2 files changed, 44 insertions(+), 22 deletions(-) diff --git a/css/style.css b/css/style.css index c597b6826..e9777b123 100644 --- a/css/style.css +++ b/css/style.css @@ -885,6 +885,18 @@ a.hide-announcement { position: absolute; outline: none; } +#menu.top { + top: 100%; +} +#menu.bottom { + bottom: 100%; +} +#menu.left { + left: 0; +} +#menu.right { + right: 0; +} .entry { cursor: pointer; outline: none; @@ -921,6 +933,18 @@ a.hide-announcement { position: absolute; margin: -1px 0; } +.submenu.top { + top: 0; +} +.submenu.bottom { + bottom: 0; +} +.submenu.left { + left: 100%; +} +.submenu.right { + right: 100%; +} .entry input { margin: 0; } diff --git a/src/General/UI.coffee b/src/General/UI.coffee index 84bc40a08..7fb0abe2d 100644 --- a/src/General/UI.coffee +++ b/src/General/UI.coffee @@ -67,19 +67,18 @@ UI = do -> bLeft = window.scrollX + bRect.left cHeight = doc.clientHeight cWidth = doc.clientWidth - [top, bottom] = if bRect.top + bRect.height + mRect.height < cHeight - ['100%', null] + if bRect.top + bRect.height + mRect.height < cHeight + $.addClass menu, 'top' + $.rmClass menu, 'bottom' else - [null, '100%'] - [left, right] = if bRect.left + mRect.width < cWidth - ['0px', null] + $.addClass menu, 'bottom' + $.rmClass menu, 'top' + if bRect.left + mRect.width < cWidth + $.addClass menu, 'left' + $.rmClass menu, 'right' else - [null, '0px'] - {style} = menu - style.top = top - style.right = right - style.bottom = bottom - style.left = left + $.addClass menu, 'right' + $.rmClass menu, 'left' menu.focus() @@ -155,19 +154,18 @@ UI = do -> eRect = entry.getBoundingClientRect() cHeight = doc.clientHeight cWidth = doc.clientWidth - [top, bottom] = if eRect.top + sRect.height < cHeight - ['0px', 'auto'] + if eRect.top + sRect.height < cHeight + $.addClass submenu, 'top' + $.rmClass submenu, 'bottom' else - ['auto', '0px'] - [left, right] = if eRect.right + sRect.width < cWidth - ['100%', 'auto'] + $.addClass submenu, 'bottom' + $.rmClass submenu, 'top' + if eRect.right + sRect.width < cWidth + $.addClass submenu, 'left' + $.rmClass submenu, 'right' else - ['auto', '100%'] - {style} = submenu - style.top = top - style.bottom = bottom - style.left = left - style.right = right + $.addClass submenu, 'right' + $.rmClass submenu, 'left' addEntry: (e) -> entry = e.detail From 8ef04b655c3df0397ad58f162163959b754dd303 Mon Sep 17 00:00:00 2001 From: Mayhem Date: Tue, 13 Aug 2013 14:48:57 +0200 Subject: [PATCH 06/15] Don't show `(...)` when updating watched threads status and there's nothing to fetch. --- src/Monitoring/ThreadWatcher.coffee | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Monitoring/ThreadWatcher.coffee b/src/Monitoring/ThreadWatcher.coffee index ff36315c5..9465187ba 100644 --- a/src/Monitoring/ThreadWatcher.coffee +++ b/src/Monitoring/ThreadWatcher.coffee @@ -86,8 +86,9 @@ ThreadWatcher = fetched: 0 fetching: 0 fetchAllStatus: -> + return unless (threads = ThreadWatcher.getAll()).length ThreadWatcher.status.textContent = '...' - for thread in ThreadWatcher.getAll() + for thread in threads ThreadWatcher.fetchStatus thread return fetchStatus: ({boardID, threadID, data}) -> From 5afdca921cb6959aa50336ac7875dda187dffe73 Mon Sep 17 00:00:00 2001 From: Enzo Moretti Date: Tue, 13 Aug 2013 15:07:47 +0200 Subject: [PATCH 07/15] Adding /d/ to Foolz Beta --- json/archives.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/json/archives.json b/json/archives.json index 647889b55..2f1ac503c 100644 --- a/json/archives.json +++ b/json/archives.json @@ -105,6 +105,6 @@ "https": true, "withCredentials": true, "software": "foolfuuka", - "boards": ["a", "co", "gd", "h", "jp", "m", "mlp", "q", "sp", "tg", "tv", "u", "v", "vg", "vp", "vr", "wsg"], - "files": ["a", "gd", "h", "jp", "m", "q", "tg", "u", "vg", "vp", "vr", "wsg"] + "boards": ["a", "co", "d", "gd", "h", "jp", "m", "mlp", "q", "sp", "tg", "tv", "u", "v", "vg", "vp", "vr", "wsg"], + "files": ["a", "d", "gd", "h", "jp", "m", "q", "tg", "u", "vg", "vp", "vr", "wsg"] }] From 3581a235e75b4ee15177221596534af2bbada435 Mon Sep 17 00:00:00 2001 From: Mayhem Date: Tue, 13 Aug 2013 16:29:54 +0200 Subject: [PATCH 08/15] Fix post menus in stubs. Also removed some old arguments, fixed some semantics, added Get.threadFromNode, and used it. --- src/Filtering/PostHiding.coffee | 2 +- src/Filtering/ThreadHiding.coffee | 2 +- src/General/Get.coffee | 10 ++++++---- src/Menu/Menu.coffee | 20 ++++++++++++++------ src/Miscellaneous/ExpandThread.coffee | 2 +- src/Posting/QR.coffee | 2 +- 6 files changed, 24 insertions(+), 14 deletions(-) diff --git a/src/Filtering/PostHiding.coffee b/src/Filtering/PostHiding.coffee index bfa586e50..74bef51d8 100644 --- a/src/Filtering/PostHiding.coffee +++ b/src/Filtering/PostHiding.coffee @@ -166,7 +166,7 @@ PostHiding = className: 'stub' $.add post.nodes.stub, a if Conf['Menu'] - $.add post.nodes.stub, [$.tn(' '), Menu.makeButton post] + $.add post.nodes.stub, [$.tn(' '), Menu.makeButton()] $.prepend post.nodes.root, post.nodes.stub show: (post, showRecursively=Conf['Recursive Hiding']) -> diff --git a/src/Filtering/ThreadHiding.coffee b/src/Filtering/ThreadHiding.coffee index 49d3607f3..65fd05f0a 100644 --- a/src/Filtering/ThreadHiding.coffee +++ b/src/Filtering/ThreadHiding.coffee @@ -151,7 +151,7 @@ ThreadHiding = className: 'stub' $.add thread.stub, a if Conf['Menu'] - $.add thread.stub, [$.tn(' '), Menu.makeButton OP] + $.add thread.stub, [$.tn(' '), Menu.makeButton()] $.prepend threadRoot, thread.stub show: (thread) -> diff --git a/src/General/Get.coffee b/src/General/Get.coffee index fe2a056b0..d5f2334a0 100644 --- a/src/General/Get.coffee +++ b/src/General/Get.coffee @@ -10,6 +10,8 @@ Get = "/#{thread.board}/ - #{excerpt}" threadFromRoot: (root) -> g.threads["#{g.BOARD}.#{root.id[1..]}"] + threadFromNode: (node) -> + Get.threadFromRoot $.x 'ancestor::div[@class="thread"]', node postFromRoot: (root) -> link = $ 'a[title="Highlight this post"]', root boardID = link.pathname.split('/')[1] @@ -17,10 +19,10 @@ Get = index = root.dataset.clone post = g.posts["#{boardID}.#{postID}"] if index then post.clones[index] else post - postFromNode: (root) -> - Get.postFromRoot $.x 'ancestor::div[contains(@class,"postContainer")][1]', root - contextFromNode: (quotelink) -> - Get.postFromRoot $.x 'ancestor::div[parent::div[@class="thread"]][1]', quotelink + postFromNode: (node) -> + Get.postFromRoot $.x 'ancestor::div[contains(@class,"postContainer")][1]', node + contextFromNode: (node) -> + Get.postFromRoot $.x 'ancestor::div[parent::div[@class="thread"]][1]', node postDataFromLink: (link) -> if link.hostname is 'boards.4chan.org' path = link.pathname.split '/' diff --git a/src/Menu/Menu.coffee b/src/Menu/Menu.coffee index 0c5bc4af9..94ed4896d 100644 --- a/src/Menu/Menu.coffee +++ b/src/Menu/Menu.coffee @@ -10,10 +10,10 @@ Menu = node: -> if @isClone button = $ '.menu-button', @nodes.info - else - button = Menu.makeButton @ - $.add @nodes.info, [$.tn('\u00A0'), button] - $.on button, 'click', Menu.toggle + $.on button, 'click', Menu.toggle + return + button = Menu.makeButton() + $.add @nodes.info, [$.tn('\u00A0'), button] makeButton: do -> a = null @@ -22,7 +22,15 @@ Menu = className: 'menu-button' innerHTML: '[]' href: 'javascript:;' - a.cloneNode true + button = a.cloneNode true + $.on button, 'click', Menu.toggle + button toggle: (e) -> - Menu.menu.toggle e, @, Get.postFromNode @ + try + # Posts, inlined posts, hidden replies. + post = Get.postFromNode @ + catch + # Hidden threads. + post = Get.threadFromNode(@).OP + Menu.menu.toggle e, @, post diff --git a/src/Miscellaneous/ExpandThread.coffee b/src/Miscellaneous/ExpandThread.coffee index c18bd8088..513a24368 100644 --- a/src/Miscellaneous/ExpandThread.coffee +++ b/src/Miscellaneous/ExpandThread.coffee @@ -23,7 +23,7 @@ ExpandThread = text.join(' ') + '.' cbToggle: -> - ExpandThread.toggle Get.threadFromRoot @parentNode + ExpandThread.toggle Get.threadFromNode @ toggle: (thread) -> threadRoot = thread.OP.nodes.root.parentNode diff --git a/src/Posting/QR.coffee b/src/Posting/QR.coffee index 7c6d0afdf..88a226a9e 100644 --- a/src/Posting/QR.coffee +++ b/src/Posting/QR.coffee @@ -340,7 +340,7 @@ QR = $.addClass QR.nodes.el, 'dump' QR.cooldown.auto = true {com, thread} = QR.nodes - thread.value = Get.contextFromNode(@).thread unless com.value + thread.value = Get.threadFromNode @ unless com.value caretPos = com.selectionStart # Replace selection for text. From 3f1625f881899e995ab345bb877b92005477d294 Mon Sep 17 00:00:00 2001 From: Mayhem Date: Tue, 13 Aug 2013 16:52:38 +0200 Subject: [PATCH 09/15] Fix third level lists markdown in changelog. --- CHANGELOG.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 883682af1..b123a9807 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,10 +2,12 @@ - It is now possible to open all watched threads via the `Open all threads` button in the Thread Watcher's menu. - Added the `Current Board` setting to switch between showing watched threads from the current board or all boards, disabled by default. - About dead (404'd) threads: - - Dead threads will be typographically indicated with a strikethrough. - - Dead threads will directly link to the corresponding archive when available. - - A button to prune all 404'd threads from the list is now available. - - Added the `Auto Prune` setting to automatically prune 404'd threads, disabled by default. +
    +
  • Dead threads will be typographically indicated with a strikethrough. +
  • Dead threads will directly link to the corresponding archive when available. +
  • A button to prune all 404'd threads from the list is now available. +
  • Added the `Auto Prune` setting to automatically prune 404'd threads, disabled by default. +
- The current thread is now highlighted in the list of watched threads. - Watching the current thread can be done in the Header's menu too. - Removed the `Check for Updates` setting: From 1c33b235d04e82e0be1a9783bf382cf256d6baf5 Mon Sep 17 00:00:00 2001 From: Mayhem Date: Tue, 13 Aug 2013 17:13:59 +0200 Subject: [PATCH 10/15] Release 4chan X v3.7.0. --- CHANGELOG.md | 2 ++ package.json | 2 +- src/General/Header.coffee | 1 - 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b123a9807..3168af372 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,5 @@ +## 3.7.0 - *2013-08-13* + - **Thread Watcher** improvements: - It is now possible to open all watched threads via the `Open all threads` button in the Thread Watcher's menu. - Added the `Current Board` setting to switch between showing watched threads from the current board or all boards, disabled by default. diff --git a/package.json b/package.json index 2f097642f..77c02c133 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "4chan-X", - "version": "3.6.0", + "version": "3.7.0", "description": "Cross-browser extension for productive lurking on 4chan.", "meta": { "name": "4chan X", diff --git a/src/General/Header.coffee b/src/General/Header.coffee index efbc288fc..55210db34 100644 --- a/src/General/Header.coffee +++ b/src/General/Header.coffee @@ -261,7 +261,6 @@ Header = nodes.splice index, 0, shortcut $.add shortcuts, nodes - menuToggle: (e) -> Header.menu.toggle e, @, g From 2f13855508f14eba6c96e04345030a7bc7288de6 Mon Sep 17 00:00:00 2001 From: Mayhem Date: Tue, 13 Aug 2013 18:53:32 +0200 Subject: [PATCH 11/15] Fixed a typo in QuoteCT which erroneously reported quotelinks inside cross-board clones as cross-thread quotelinks. --- src/Quotelinks/QuoteCT.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Quotelinks/QuoteCT.coffee b/src/Quotelinks/QuoteCT.coffee index effbd9da5..8dbce5916 100644 --- a/src/Quotelinks/QuoteCT.coffee +++ b/src/Quotelinks/QuoteCT.coffee @@ -20,6 +20,6 @@ QuoteCT = continue unless threadID # deadlink if @isClone quotelink.textContent = quotelink.textContent.replace QuoteCT.text, '' - if boardID is @board.ID and threadID isnt thread.ID + if boardID is board.ID and threadID isnt thread.ID $.add quotelink, $.tn QuoteCT.text return From 46c50baaba0b6c05beba7ae3be0b42d9bd12dbd5 Mon Sep 17 00:00:00 2001 From: Mayhem Date: Tue, 13 Aug 2013 18:56:10 +0200 Subject: [PATCH 12/15] Remove some useless code in QuoteCT. --- src/Quotelinks/QuoteCT.coffee | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/Quotelinks/QuoteCT.coffee b/src/Quotelinks/QuoteCT.coffee index 8dbce5916..92cd9dcbc 100644 --- a/src/Quotelinks/QuoteCT.coffee +++ b/src/Quotelinks/QuoteCT.coffee @@ -10,12 +10,9 @@ QuoteCT = node: -> # Stop there if it's a clone of a post in the same thread. return if @isClone and @thread is @context.thread - # Stop there if there's no quotes in that post. - return unless (quotes = @quotes).length - {quotelinks} = @nodes {board, thread} = if @isClone then @context else @ - for quotelink in quotelinks + for quotelink in @nodes.quotelinks {boardID, threadID} = Get.postDataFromLink quotelink continue unless threadID # deadlink if @isClone From b7ddfa5c661d210749a626ae93331976e147d58c Mon Sep 17 00:00:00 2001 From: Mayhem Date: Tue, 13 Aug 2013 19:10:57 +0200 Subject: [PATCH 13/15] Shave a line and move a few things around in QuoteOP. --- src/Quotelinks/QuoteOP.coffee | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/Quotelinks/QuoteOP.coffee b/src/Quotelinks/QuoteOP.coffee index 281b0241f..4b39298a8 100644 --- a/src/Quotelinks/QuoteOP.coffee +++ b/src/Quotelinks/QuoteOP.coffee @@ -12,18 +12,17 @@ QuoteOP = return if @isClone and @thread is @context.thread # Stop there if there's no quotes in that post. return unless (quotes = @quotes).length - {quotelinks} = @nodes # rm (OP) from cross-thread quotes. if @isClone and @thread.fullID in quotes for quotelink in quotelinks quotelink.textContent = quotelink.textContent.replace QuoteOP.text, '' - op = (if @isClone then @context else @).thread.fullID + {fullID} = (if @isClone then @context else @).thread # add (OP) to quotes quoting this context's OP. - return unless op in quotes - for quotelink in quotelinks + return unless fullID in quotes + for quotelink in @nodes.quotelinks {boardID, postID} = Get.postDataFromLink quotelink - if "#{boardID}.#{postID}" is op + if "#{boardID}.#{postID}" is fullID $.add quotelink, $.tn QuoteOP.text return From 4c6323dc6ebb38fe3ab9e635e74b6f0464abb6b5 Mon Sep 17 00:00:00 2001 From: Mayhem Date: Tue, 13 Aug 2013 20:58:06 +0200 Subject: [PATCH 14/15] Fx <23 doesn't have HTMLCanvasElement? --- CHANGELOG.md | 2 ++ lib/polyfill.coffee | 2 ++ 2 files changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3168af372..c60ac0cf0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,5 @@ +- Fixed an error for Firefox <23 users. + ## 3.7.0 - *2013-08-13* - **Thread Watcher** improvements: diff --git a/lib/polyfill.coffee b/lib/polyfill.coffee index 3cec1905a..6bab699cb 100644 --- a/lib/polyfill.coffee +++ b/lib/polyfill.coffee @@ -1,7 +1,9 @@ Polyfill = init: -> + <% if (type === 'crx') { %> Polyfill.toBlob() Polyfill.visibility() + <% } %> toBlob: -> HTMLCanvasElement::toBlob or= (cb) -> data = atob @toDataURL()[22..] From e0a44bcb6908dcc85918ecba51d9fe5efdc80209 Mon Sep 17 00:00:00 2001 From: Mayhem Date: Tue, 13 Aug 2013 20:58:29 +0200 Subject: [PATCH 15/15] Release 4chan X v3.7.1. --- CHANGELOG.md | 2 ++ package.json | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c60ac0cf0..b42da98c8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,5 @@ +### 3.7.1 - *2013-08-13* + - Fixed an error for Firefox <23 users. ## 3.7.0 - *2013-08-13* diff --git a/package.json b/package.json index 77c02c133..e3499da18 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "4chan-X", - "version": "3.7.0", + "version": "3.7.1", "description": "Cross-browser extension for productive lurking on 4chan.", "meta": { "name": "4chan X",