OLD | NEW |
1 /* | 1 /* |
2 * This file is part of Adblock Plus <http://adblockplus.org/>, | 2 * This file is part of Adblock Plus <http://adblockplus.org/>, |
3 * Copyright (C) 2006-2014 Eyeo GmbH | 3 * Copyright (C) 2006-2014 Eyeo GmbH |
4 * | 4 * |
5 * Adblock Plus is free software: you can redistribute it and/or modify | 5 * Adblock Plus is free software: you can redistribute it and/or modify |
6 * it under the terms of the GNU General Public License version 3 as | 6 * it under the terms of the GNU General Public License version 3 as |
7 * published by the Free Software Foundation. | 7 * published by the Free Software Foundation. |
8 * | 8 * |
9 * Adblock Plus is distributed in the hope that it will be useful, | 9 * Adblock Plus is distributed in the hope that it will be useful, |
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of | 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
(...skipping 363 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
374 this._context.strokeStyle = "rgba(255, 0, 0, 0.7)"; | 374 this._context.strokeStyle = "rgba(255, 0, 0, 0.7)"; |
375 this._context.lineWidth = 3; | 375 this._context.lineWidth = 3; |
376 this._context.lineJoin = "round"; | 376 this._context.lineJoin = "round"; |
377 | 377 |
378 // Reduce colors asynchronously | 378 // Reduce colors asynchronously |
379 this._pixelData = this._context.getImageData(this.imageOffset, this.imageOff
set, | 379 this._pixelData = this._context.getImageData(this.imageOffset, this.imageOff
set, |
380 this._canvas.width - this.imageOffset * 2, | 380 this._canvas.width - this.imageOffset * 2, |
381 this._canvas.height - this.imageOffset * 2
); | 381 this._canvas.height - this.imageOffset * 2
); |
382 this._max = this._pixelData.width * this._pixelData.height * 4; | 382 this._max = this._pixelData.width * this._pixelData.height * 4; |
383 this._i = 0; | 383 this._i = 0; |
384 Utils.threadManager.currentThread.dispatch(this, Ci.nsIEventTarget.DISPATCH_
NORMAL); | 384 Utils.runAsync(this.run.bind(this)); |
385 }, | 385 }, |
386 | 386 |
387 run: function() | 387 run: function() |
388 { | 388 { |
389 // Process only 5000 bytes at a time to prevent browser hangs | 389 // Process only 5000 bytes at a time to prevent browser hangs |
390 let endIndex = Math.min(this._i + 5000, this._max); | 390 let endIndex = Math.min(this._i + 5000, this._max); |
391 let i = this._i; | 391 let i = this._i; |
392 for (; i < endIndex; i++) | 392 for (; i < endIndex; i++) |
393 this._pixelData.data[i] = this._mapping[this._pixelData.data[i] >> 6]; | 393 this._pixelData.data[i] = this._mapping[this._pixelData.data[i] >> 6]; |
394 | 394 |
395 if (i >= this._max) | 395 if (i >= this._max) |
396 { | 396 { |
397 // Save data back and we are done | 397 // Save data back and we are done |
398 this._context.putImageData(this._pixelData, this.imageOffset, this.imageOf
fset); | 398 this._context.putImageData(this._pixelData, this.imageOffset, this.imageOf
fset); |
399 this._callback(); | 399 this._callback(); |
400 } | 400 } |
401 else | 401 else |
402 { | 402 { |
403 this._i = i; | 403 this._i = i; |
404 Utils.threadManager.currentThread.dispatch(this, Ci.nsIEventTarget.DISPATC
H_NORMAL); | 404 Utils.runAsync(this.run.bind(this)); |
405 } | 405 } |
406 }, | 406 }, |
407 | 407 |
408 get enabled() this._enabled, | 408 get enabled() this._enabled, |
409 set enabled(enabled) | 409 set enabled(enabled) |
410 { | 410 { |
411 if (this._enabled == enabled) | 411 if (this._enabled == enabled) |
412 return; | 412 return; |
413 | 413 |
414 this._enabled = enabled; | 414 this._enabled = enabled; |
(...skipping 1147 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1562 | 1562 |
1563 function censorURL(url) | 1563 function censorURL(url) |
1564 { | 1564 { |
1565 return url.replace(/([?;&\/#][^?;&\/#]+?=)[^?;&\/#]+/g, "$1*"); | 1565 return url.replace(/([?;&\/#][^?;&\/#]+?=)[^?;&\/#]+/g, "$1*"); |
1566 } | 1566 } |
1567 | 1567 |
1568 function encodeHTML(str) | 1568 function encodeHTML(str) |
1569 { | 1569 { |
1570 return str.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").
replace(/"/g, """); | 1570 return str.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").
replace(/"/g, """); |
1571 } | 1571 } |
OLD | NEW |