Вы должны установить ширину и высоту вручную.
Это можно сделать с помощью события JavaScript onresize - это хорошо, потому что вам почти всегда нужно перерисовывать поверхность холста по размеру в любом случае.
РЕДАКТИРОВАТЬ:
Из спецификации W3, вот интерфейс DOM canvas:
http://www.w3.org/TR/html5/the-canvas-element.html
interface HTMLCanvasElement : HTMLElement {
attribute unsigned long width;
attribute unsigned long height;
DOMString toDataURL(in optional DOMString type, in any... args);
void toBlob(in FileCallback, in optional DOMString type, in any... args);
object getContext(in DOMString contextId, in any... args);
};
Элемент canvas имеет два атрибута для управления размером
координатное пространство: ширина и высота. Эти атрибуты, если указаны,
должны иметь значения, которые являются действительными неотрицательными целыми числами. Правила для
парсинг неотрицательных целых чисел должен быть использован для получения их числовых
ценности. Если атрибут отсутствует или при его анализе возвращается значение
ошибка, то вместо этого должно использоваться значение по умолчанию. Ширина
атрибут по умолчанию равен 300, а атрибут высоты по умолчанию равен 150.