The default behaviour of a <linearGradient> if gradientUnits="userSpaceOnUse" is set and x1, x2, y1, y2 are unset differs between browsers.
<svg class="definitions" width="50" height="50">
<defs>
<linearGradient gradientUnits="userSpaceOnUse" id="gradient" x1="0" x2="150" y1="0" y2="0">
<stop offset="0" stop-color="#FF0000"></stop>
<stop offset="0.5" stop-color="#00FF00"></stop>
<stop offset="1" stop-color="#0000FF"></stop>
</linearGradient>
<linearGradient gradientUnits="userSpaceOnUse" id="gradientDefault">
<stop offset="0" stop-color="#FF0000"></stop>
<stop offset="0.5" stop-color="#00FF00"></stop>
<stop offset="1" stop-color="#0000FF"></stop>
</linearGradient>
</defs>
</svg>
<svg width="150" height="100">
<rect x="0" y="0" width="150" height="100" fill="url(#gradient)"></rect>
</svg>
<svg width="150" height="100">
<rect x="0" y="0" width="150" height="100" fill="url(#gradientDefault)"></rect>
</svg>