<!DOCTYPE html>
<script src="../resources/js-test.js"></script>
<script src="../resources/run-after-layout-and-paint.js"></script>
<script src="resources/non-fast-scrollable-region-testing.js"></script>

<script>
// Perform the test without any description text (with the plugin at the top
// left) so the non-fast rect is not affected by platform-specific differences
// in text height.
setPrintTestResultsLazily();
description('This test ensures that a plugin which wants to receive wheel ' +
            'events is included in the non-fast scrollable region.');
window.jsTestIsAsync = true;

onload = function() {
  runAfterLayoutAndPaint(function() {
    nonFastScrollableRects = internals.nonFastScrollableRects(document);
    if (window.internals) {
      shouldBe('nonFastScrollableRects.length', '1');
      shouldBeEqualToString('rectToString(nonFastScrollableRects[0])', '[8, 8, 300, 150]');
    } else {
      debug('This test requires access to internals.nonFastScrollableRects.');
    }

    finishJSTest();
  });
}
</script>

<embed id="plugin" type="application/x-webkit-test-webplugin"></embed>
<div style="height:2000px"></div>
