This is clearly a browser issue (and should be reported to the Chromium team Reported here and here. Thanks to @ferow2k and @GameAlchemist for the links).
To get around this you can make your own arc clone:
function arc(ctx, x, y, radius, sa, ea) {
var step = 0.01,
a = sa + step;
ctx.moveTo(x + radius * Math.cos(sa),
y + radius * Math.sin(sa));
for(; a < ea; a+=step) {
ctx.lineTo(x + radius * Math.cos(a),
y + radius * Math.sin(a));
}
}
Then use it as:
//ctx.arc(px,py,radio,startSegment,endSegment);
arc(ctx, px,py,radio,startSegment,endSegment);
The step value can be calculated dynamically using the formula for circle circumference (Øxπ) divided down (to avoid too many overlaps):
var steps = radius * Math.PI * 0.25,
step = Math.PI / steps;
I didn't make counter-clock-wise option for it but if you need that you should be able to make that with this as basis.
It will not be as performant as the built-in arc of course (but not bad either). You may have to adjust the step value for an even finer arc if you intend to draw it bigger. At least it will get you around the wobbling arc.