This should be covered by a green overlay.

A single square should be visible covered by a green overlay.

This test ensures that transforming a non-fast scrollable area correctly updates list of non-fast scrollable rects (See http://crbug.com/417345).

On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".

PASS nonFastScrollableRects.length is 1
PASS rectToString(nonFastScrollableRects[0]) is "[0, 0, 222, 222]"
Trigger style update
PASS internals.updateStyleAndReturnAffectedElementCount() is 1
Verifying layout hasn't been triggered
PASS internals.needsLayoutCount() is 3
Update non-fast element's transform
Trigger style update
PASS internals.updateStyleAndReturnAffectedElementCount() is 1
Verifying layout still hasn't been triggered
PASS internals.needsLayoutCount() is 3
Verifying non-fast regions have been updated
PASS nonFastScrollableRects.length is 1
PASS rectToString(nonFastScrollableRects[0]) is "[110, 10, 222, 222]"
PASS successfullyParsed is true

TEST COMPLETE


