<svg width="800" height="600" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">

<mask id="Mask" maskUnits="userSpaceOnUse" x="0" y="0" width="100" height="300">
    <rect x="0" y="0" width="800" height="300" fill="red"/>
</mask>

<script>
if (window.layoutTestController)
    layoutTestController.waitUntilDone();

window.setTimeout("clickNow()", 0);

function clickNow() {
    if (window.eventSender) {
        eventSender.mouseMoveTo(150, 135);
        eventSender.mouseDown();
        eventSender.mouseUp();
    }

    if (window.layoutTestController) {
        layoutTestController.notifyDone();
    }
}

function mouseHandler(evt)
{
    document.getElementById("Mask").setAttribute("width", "800");
}
</script>

<g onclick="mouseHandler()">
    <rect x="0" y="100" width="800" height="100" fill="blue" mask="url(#Mask)"/>
</g>
</svg>
