<!DOCTYPE HTML>

<!-- READ BEFORE UPDATING:
If this test is updated make sure to increment the "revision" value of the
associated test in content/test/gpu/page_sets/pixel_tests.py. This will ensure
that the baseline images are regenerated on the next run.
-->

<html>
<head>
<title>Browser Plugin Compositing Test: Projected Blue Box over Black Background</title>
<style type="text/css">
.nomargin {
  margin: 0px auto;
}
</style>
<script>
var g_swapsBeforeAck = 100;

function main()
{
  waitForFinish();
}

function waitForFinish()
{
  if (g_swapsBeforeAck == 0) {
    domAutomationController.send("SUCCESS");
  } else {
    g_swapsBeforeAck--;
    document.getElementById('plugin').style.zIndex = g_swapsBeforeAck + 1;
    window.requestAnimationFrame(waitForFinish);
  }
}
</script>
</head>
<body onload="main()">
<div id="container" style="position:absolute; top:0px; left:0px">

<!-- Browser plugin is navigated to the base64 encoding of the following
<html>
<head>
<style type="text/css">
.nomargin {
  margin: 0px auto;
}

#container {
  -webkit-perspective: 500;
}

#container > div {
  position: relative;
  margin: 50px;
  width: 125px;
  height: 75px;
}

#container > :first-child {
  background-color: blue;
  -webkit-transform: rotateY(45deg);
}
</style>
</head>
<body>
<div style="position:relative; width:200px; height:200px; background-color:black; zindex-0">
</div>
<div id="container" style="position:absolute; top:0px; left:0px">
  <div id="blue_box"></div>
</div>
</body>
</html>
//-->

<object id="plugin" src="data:text/html;base64,DQo8aHRtbD4NCjxoZWFkPg0KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCi5ub21hcmdpbiB7DQogIG1hcmdpbjogMHB4IGF1dG87DQp9DQoNCiNjb250YWluZXIgew0KICAtd2Via2l0LXBlcnNwZWN0aXZlOiA1MDA7DQp9DQoNCiNjb250YWluZXIgPiBkaXYgew0KICBwb3NpdGlvbjogcmVsYXRpdmU7DQogIG1hcmdpbjogNTBweDsNCiAgd2lkdGg6IDEyNXB4Ow0KICBoZWlnaHQ6IDc1cHg7DQp9DQoNCiNjb250YWluZXIgPiA6Zmlyc3QtY2hpbGQgew0KICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOw0KICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlWSg0NWRlZyk7DQp9DQo8L3N0eWxlPg0KPC9oZWFkPg0KPGJvZHk+DQo8ZGl2IHN0eWxlPSJwb3NpdGlvbjpyZWxhdGl2ZTsgd2lkdGg6MjAwcHg7IGhlaWdodDoyMDBweDsgYmFja2dyb3VuZC1jb2xvcjpibGFjazsgemluZGV4LTAiPg0KPC9kaXY+DQo8ZGl2IGlkPSJjb250YWluZXIiIHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjBweDsgbGVmdDowcHgiPg0KICA8ZGl2IGlkPSJibHVlX2JveCI+PC9kaXY+DQo8L2Rpdj4NCjwvYm9keT4NCjwvaHRtbD4NCg==" type="application/browser-plugin" width="400px" height="300px">
</div>
</body>
</html>
