<canvas width = "100" height = "100"></canvas>
Это не размеры а разрешение ) по умолчанию они 300x200, просто тут они идут как атрибуты, но суть та же, если задан стиль с размерами, то отображаться будет размер именно такой, какой в стиле, но если он не задан, то размер будет соответствовать разрешению в пикселах, хотя стилевые свойства будут пустые. (хотя они и так будут пустые, если их только не в коде задать)
Вобщем я для себя понял так что для размеров канвы, именно размеров на страничке, приоритет имеет именно стилевое свойство w/h, но если оно не задано, то на размер влияет разрешение
<style type = "text/css">
canvas{
width: 40px;
height: 30px;
border: 1px solid red;
}
</style>
<canvas width = "1024" height = "768"></canvas>
Выглядит крохотным но на нем уместится скрин моего монитора.
Может из-за этой мешанины атрибутов и свойств в браузерах какой нибудь косяк? Попробуйте в разметке не задавать их, а только в коде менять.