Finnnn, you are right.

From html5 specification, http://www.w3.org/TR/2012/WD-html5-author-20120329/the-canvas-element.html#the-canvas-element

The canvas element has two attributes to control the size of the coordinate space: width and height.

These attributes, when specified, must have values that are valid non-negative integers.

The width attribute defaults to 300, and the height attribute defaults to 150.


Arrange your layout such that there is a div and that div's only job is to dictate and be the size you want the canvas to be.

var canvas = document.createElement('canvas');
canvas.width = div.clientWidth;
canvas.height = div.clientHeight;

Then add the canvas to the div.


I can confirm that in Chrome, the default size is 300px x 150px.