<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

<html lang="en">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <title>Canvas Mask</title>
  <style type="text/css" media="screen">
    #canvas1 {
      height: 300px;
      width: 400px;
      border: 1px solid black;
    }

    .masked {
/*      transform: rotate(10deg);*/
      -webkit-mask: -webkit-canvas(canvas1);
    }
  </style>
  <script type="text/javascript" charset="utf-8">
  
    var gPageWidth = 320;
    var gPageHeight = 200;

    function drawPageShadow(shadowWidth)
    {
        var ctx = document.getCSSCanvasContext('2d', 'canvas1', gPageWidth, gPageHeight);
        ctx.clearRect (0, 0, gPageWidth, gPageHeight);

        var gradient = ctx.createLinearGradient(0, 0, shadowWidth, 0);
        gradient.addColorStop(0, 'rgba(0,0,0,1)');
        gradient.addColorStop(1, 'rgba(0,0,0,0)');
        ctx.fillStyle = gradient;
        ctx.fillRect (0, 0, shadowWidth, gPageHeight);    
    }
    
    function redrawCanvas(event)
    {
      drawPageShadow(event.pageX);
    }
    
    function onPageLoad()
    {
      drawPageShadow(640);
    }
    
    window.addEventListener('load', onPageLoad, false);
    
  </script>
</head>
<body>

  <p>Hovering over the image or text should cause the element to be redrawn with a new mask</p>
  <a href="https://bugs.webkit.org/show_bug.cgi?id=19954">https://bugs.webkit.org/show_bug.cgi?id=19954</a>
  <h2>Image with mask</h2>
  <img src="http://www.google.com/intl/en_ALL/images/logo.gif"  width="320" height="200" alt="Clown Fish" class="masked"
    onmousemove="redrawCanvas(event)">

    <h2>Div with mask</h2>
    <div class="masked" style="width: 640px" onmousemove="redrawCanvas(event)">
     Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
    </div>
  
</body>
</html>
