Blame layout/generic/test/test_invalidate_during_plugin_paint.html

Packit f0b94e
Packit f0b94e
<html>
Packit f0b94e
<head>
Packit f0b94e
  <title>Test handling plugins invalidating during paint</title>
Packit f0b94e
  <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>    
Packit f0b94e
  <script type="text/javascript" src="plugin-utils.js"></script>
Packit f0b94e
  <script type="text/javascript">
Packit f0b94e
    setTestPluginEnabledState(SpecialPowers.Ci.nsIPluginTag.STATE_ENABLED);
Packit f0b94e
  </script>
Packit f0b94e
  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
Packit f0b94e
  <style>
Packit f0b94e
  embed { width:200px; height:200px; display:block; }
Packit f0b94e
  </style>
Packit f0b94e
</head>
Packit f0b94e
<body>
Packit f0b94e

Packit f0b94e
Packit f0b94e
  <embed id="p1" type="application/x-test" drawmode="solid" color="80808080"></embed>
Packit f0b94e
Packit f0b94e
Packit f0b94e
<script class="testbody" type="text/javascript">
Packit f0b94e
var p1 = document.getElementById("p1");
Packit f0b94e
var initialPaintCount;
Packit f0b94e
Packit f0b94e
function checkEnded() {
Packit f0b94e
  var paints = p1.getPaintCount() - initialPaintCount;
Packit f0b94e
  if (paints > 20) {
Packit f0b94e
    ok(true, "Got " + paints + " paints");
Packit f0b94e
    SimpleTest.finish();
Packit f0b94e
    return;
Packit f0b94e
  }
Packit f0b94e
Packit f0b94e
  setTimeout(checkEnded, 30);  
Packit f0b94e
}
Packit f0b94e
Packit f0b94e
function doTest() {
Packit f0b94e
  initialPaintCount = p1.getPaintCount();
Packit f0b94e
Packit f0b94e
  // Tell the plugin to invalidate every time it paints
Packit f0b94e
  p1.setInvalidateDuringPaint(true);
Packit f0b94e
  // Trigger an invalidation to get painting started
Packit f0b94e
  p1.setColor("FFFFFFFF");
Packit f0b94e
  // Now we should have an infinite cycle of painting and invalidations.
Packit f0b94e
Packit f0b94e
  // Poll for more than 20 paints to happen.
Packit f0b94e
  checkEnded();
Packit f0b94e
}
Packit f0b94e
Packit f0b94e
// Need to run 'doTest' after painting is unsuppressed, or we'll set clip
Packit f0b94e
// regions to empty.
Packit f0b94e
addLoadEvent(doTest);
Packit f0b94e
SimpleTest.waitForExplicitFinish();
Packit f0b94e
SimpleTest.requestFlakyTimeout("untriaged");
Packit f0b94e
Packit f0b94e
</script>
Packit f0b94e
Packit f0b94e
</body>
Packit f0b94e
</html>