I have been disappointed by cross browser discrepancies in the canvas element. Chrome and FF handle Alpha values very differently, and the results are extremely noticeable if you do anything that involves layering many semi-transparent layers on top of each other. There are other floating point rounding error quirks as well, e.g., firefox can translate a context by 0.001px whereas chrome is limited to a precision of only 0.01px. These discrepancies make it impossible to do certain things that look the same on all browsers.