From 4f9f1941be2aea72b4d8145a62d9835087fbfc39 Mon Sep 17 00:00:00 2001 From: ccd0 Date: Fri, 6 Jan 2017 09:35:44 -0800 Subject: [PATCH] Workaround for Chrome Compression Proxy converting images to WebP. #1241 --- src/Posting/QR.coffee | 1 + src/Posting/QR.oekaki.coffee | 1 + src/meta/eventPage.coffee | 1 + src/platform/CrossOrigin.coffee | 9 +++++---- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/Posting/QR.coffee b/src/Posting/QR.coffee index 22f0c177e..871cf2a7d 100644 --- a/src/Posting/QR.coffee +++ b/src/Posting/QR.coffee @@ -407,6 +407,7 @@ QR = QR.handleFiles [blob] else QR.error "Can't load file." + , Accept: Object.keys(QR.extensionFromType).join(',') handleFiles: (files) -> if @ isnt QR # file input diff --git a/src/Posting/QR.oekaki.coffee b/src/Posting/QR.oekaki.coffee index f1daaf97d..0721f6c30 100644 --- a/src/Posting/QR.oekaki.coffee +++ b/src/Posting/QR.oekaki.coffee @@ -43,6 +43,7 @@ QR.oekaki = blob.name = post.file.name QR.handleFiles [blob] QR.oekaki.edit() + , Accept: Object.keys(QR.extensionFromType).join(',') setup: -> $.global -> diff --git a/src/meta/eventPage.coffee b/src/meta/eventPage.coffee index de87915e4..06c056ac8 100644 --- a/src/meta/eventPage.coffee +++ b/src/meta/eventPage.coffee @@ -25,6 +25,7 @@ ajax = (request, sender, sendResponse) -> xhr = new XMLHttpRequest() xhr.open 'GET', request.url, true + xhr.setRequestHeader key, value for key, value of request.headers xhr.responseType = request.responseType xhr.addEventListener 'load', -> if @readyState is @DONE && xhr.status is 200 diff --git a/src/platform/CrossOrigin.coffee b/src/platform/CrossOrigin.coffee index fdfa1cf65..4414ff7dd 100644 --- a/src/platform/CrossOrigin.coffee +++ b/src/platform/CrossOrigin.coffee @@ -4,8 +4,8 @@ eventPageRequest = do -> chrome.runtime.onMessage.addListener (data) -> callbacks[data.id] data delete callbacks[data.id] - (url, responseType, cb) -> - chrome.runtime.sendMessage {url, responseType}, (id) -> + (url, headers, responseType, cb) -> + chrome.runtime.sendMessage {url, headers, responseType}, (id) -> callbacks[id] = cb <% } %> @@ -29,7 +29,7 @@ CrossOrigin = cb null xhr.send() else - eventPageRequest url, 'arraybuffer', ({response, contentType, contentDisposition, error}) -> + eventPageRequest url, headers, 'arraybuffer', ({response, contentType, contentDisposition, error}) -> return cb null if error cb new Uint8Array(response), contentType, contentDisposition <% } %> @@ -66,7 +66,7 @@ CrossOrigin = GM_xmlhttpRequest options <% } %> - file: (url, cb) -> + file: (url, cb, headers={}) -> CrossOrigin.binary url, (data, contentType, contentDisposition) -> return cb null unless data? name = url.match(/([^\/]+)\/*$/)?[1] @@ -82,6 +82,7 @@ CrossOrigin = blob = new Blob([data], {type: mime}) blob.name = name cb blob + , headers json: do -> callbacks = {}