More Firefox hacking!!
I explained my
situation to colleague and he asked something rather obvious. What if the problem is not the canvas code but the way its being called ...
So I created a second script with a loop instead of "setInterval" and it does NOT exhibit issue (10,000,000 iterations).
Time to go further down the rabbit hole.
http://www.jumpstation.co.uk/evil/badactor.html with a line commented out
//context.beginPath();
no issue, but very slow, about 4x slower than when not commented out.
I then ran the original again just to prove to myself that the issue still existed, it did.
http://www.jumpstation.co.uk/evil/badactor.html with a line commented out
//context.arc(0, 0, 10, 0, 2 * Math.PI, true);
no issue, normal speed
http://www.jumpstation.co.uk/evil/badactor.html with a line commented out
//context.fill();
no issue
http://www.jumpstation.co.uk/evil/badactor.html with a line commented out
//context.closePath();
Issue and no slow down
Another live 32bit distro
knoppix:: Firefox 33.1(direct binary) ~ no issue
Do older version of Firefox have the same problem?
Time to go spelunking
https://ftp.mozilla.org/pub/mozilla.org/firefox/releases/
Mozilla Firefox-4.0rc2 - "Hooray! Your Firefox is up to date", 2x slower, no leak
Mozilla Firefox-8.0 - wouldn't run
Mozilla Firefox-10.0.12esr no leak
Mozilla Firefox-17.0.11esr no leak
Mozilla Firefox-20.0 no leak
Mozilla Firefox-23.0 no leak [1]
Mozilla Firefox-24.0 no leak [1]
Mozilla Firefox-24.0esr no leak
Mozilla Firefox-24.8.0esr no leak
Mozilla Firefox-24.8.1esr no leak
Mozilla Firefox 33.1 [Repeating for safety] ~ leak detected
Mozilla Firefox-30.0 leak
Mozilla Firefox-31.0 leak
Mozilla Firefox-32.0 leak
Mozilla Firefox-33.0 leak
Attack wave II
Mozilla Firefox-25.0.1 [1] no leak
Mozilla Firefox-26.0 [1] NO LEAK
Mozilla Firefox-27.0 [1] LEAK
Mozilla Firefox-28.0 [1] leak
Mozilla Firefox-29.0.1 leak
[1] The code I am using reports the date at the beginning of the test and then after the "setInterval" has been called 400,000 times, which is runs for 25 - 30mins. For all versions the code
console.log(new Date());
produced the date and time but these two versions of Firefox output
object Date