<!doctype html>
<title>posting an imagedata (from a cloned canvas) in an array</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<div id="log"></div>
<script>
async_test(function() {

  var canvas = document.createElement('canvas');
  var clone = canvas.cloneNode(true);
  var ctx = clone.getContext('2d');
  var imagedata = ctx.getImageData(0, 0, 300, 150);
  postMessage([imagedata], '*', []);

  onmessage = this.step_func(function(e) {
    function processPixels(imagedata) {
      var pixeldata = imagedata.data;
      for (var i = 0; i < pixeldata.length; i = i+4) {
        pixeldata[i] = 128;
        assert_equals(pixeldata[i], 128);
      }
    }
    processPixels(e.data[0]);
    this.done();
  });

});
</script>

