Workaround for Chrome Compression Proxy converting images to WebP. #1241

This commit is contained in:
ccd0 2017-01-06 09:35:44 -08:00
parent a968e294c8
commit 4f9f1941be
4 changed files with 8 additions and 4 deletions

View File

@ -407,6 +407,7 @@ QR =
QR.handleFiles [blob] QR.handleFiles [blob]
else else
QR.error "Can't load file." QR.error "Can't load file."
, Accept: Object.keys(QR.extensionFromType).join(',')
handleFiles: (files) -> handleFiles: (files) ->
if @ isnt QR # file input if @ isnt QR # file input

View File

@ -43,6 +43,7 @@ QR.oekaki =
blob.name = post.file.name blob.name = post.file.name
QR.handleFiles [blob] QR.handleFiles [blob]
QR.oekaki.edit() QR.oekaki.edit()
, Accept: Object.keys(QR.extensionFromType).join(',')
setup: -> setup: ->
$.global -> $.global ->

View File

@ -25,6 +25,7 @@ ajax = (request, sender, sendResponse) ->
xhr = new XMLHttpRequest() xhr = new XMLHttpRequest()
xhr.open 'GET', request.url, true xhr.open 'GET', request.url, true
xhr.setRequestHeader key, value for key, value of request.headers
xhr.responseType = request.responseType xhr.responseType = request.responseType
xhr.addEventListener 'load', -> xhr.addEventListener 'load', ->
if @readyState is @DONE && xhr.status is 200 if @readyState is @DONE && xhr.status is 200

View File

@ -4,8 +4,8 @@ eventPageRequest = do ->
chrome.runtime.onMessage.addListener (data) -> chrome.runtime.onMessage.addListener (data) ->
callbacks[data.id] data callbacks[data.id] data
delete callbacks[data.id] delete callbacks[data.id]
(url, responseType, cb) -> (url, headers, responseType, cb) ->
chrome.runtime.sendMessage {url, responseType}, (id) -> chrome.runtime.sendMessage {url, headers, responseType}, (id) ->
callbacks[id] = cb callbacks[id] = cb
<% } %> <% } %>
@ -29,7 +29,7 @@ CrossOrigin =
cb null cb null
xhr.send() xhr.send()
else else
eventPageRequest url, 'arraybuffer', ({response, contentType, contentDisposition, error}) -> eventPageRequest url, headers, 'arraybuffer', ({response, contentType, contentDisposition, error}) ->
return cb null if error return cb null if error
cb new Uint8Array(response), contentType, contentDisposition cb new Uint8Array(response), contentType, contentDisposition
<% } %> <% } %>
@ -66,7 +66,7 @@ CrossOrigin =
GM_xmlhttpRequest options GM_xmlhttpRequest options
<% } %> <% } %>
file: (url, cb) -> file: (url, cb, headers={}) ->
CrossOrigin.binary url, (data, contentType, contentDisposition) -> CrossOrigin.binary url, (data, contentType, contentDisposition) ->
return cb null unless data? return cb null unless data?
name = url.match(/([^\/]+)\/*$/)?[1] name = url.match(/([^\/]+)\/*$/)?[1]
@ -82,6 +82,7 @@ CrossOrigin =
blob = new Blob([data], {type: mime}) blob = new Blob([data], {type: mime})
blob.name = name blob.name = name
cb blob cb blob
, headers
json: do -> json: do ->
callbacks = {} callbacks = {}