Tue, 06 Jan 2015 21:39:09 +0100
Conditionally force memory storage according to privacy.thirdparty.isolate;
This solves Tor bug #9701, complying with disk avoidance documented in
https://www.torproject.org/projects/torbrowser/design/#disk-avoidance.
michael@0 | 1 | function makePattern(len, start, inc) { |
michael@0 | 2 | var pattern = []; |
michael@0 | 3 | while(len) { |
michael@0 | 4 | pattern.push(start); |
michael@0 | 5 | start = (start + inc) % 256; |
michael@0 | 6 | --len; |
michael@0 | 7 | } |
michael@0 | 8 | return pattern; |
michael@0 | 9 | } |
michael@0 | 10 | |
michael@0 | 11 | function setPattern(imageData, pattern) { |
michael@0 | 12 | if (pattern.length != imageData.data.length) |
michael@0 | 13 | throw Error('Invalid pattern'); |
michael@0 | 14 | for (var i = 0; i < pattern.length; ++i) |
michael@0 | 15 | imageData.data[i] = pattern[i]; |
michael@0 | 16 | } |
michael@0 | 17 | |
michael@0 | 18 | function checkPattern(imageData, pattern) { |
michael@0 | 19 | if (pattern.length != imageData.data.length) |
michael@0 | 20 | throw Error('Invalid pattern'); |
michael@0 | 21 | for (var i = 0; i < pattern.length; ++i) |
michael@0 | 22 | if (imageData.data[i] != pattern[i]) |
michael@0 | 23 | return false; |
michael@0 | 24 | return true; |
michael@0 | 25 | } |