Tests that requestAnimationFrame is throttled in subframes that are outside the viewport

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


Frame is initially outside the viewport so requestAnimationFrame should be throttled
PASS testFrame.contentWindow.internals.isRequestAnimationFrameThrottled() became true
PASS internals.isRequestAnimationFrameThrottled() is false
PASS testFrame.contentWindow.internals.isRequestAnimationFrameThrottled() is true
PASS grandChildFrame.contentWindow.internals.isRequestAnimationFrameThrottled() is true
Scrolling frame into view.
RequestAnimationFrame should no longer be throttled
PASS internals.isRequestAnimationFrameThrottled() is false
PASS grandChildFrame.contentWindow.internals.isRequestAnimationFrameThrottled() is false
PASS testFrame.contentWindow.internals.isRequestAnimationFrameThrottled() is false
Scrolling frame out of view again.
PASS internals.isRequestAnimationFrameThrottled() is false
PASS testFrame.contentWindow.internals.isRequestAnimationFrameThrottled() became true
PASS testFrame.contentWindow.internals.isRequestAnimationFrameThrottled() is true
PASS grandChildFrame.contentWindow.internals.isRequestAnimationFrameThrottled() is true
PASS successfullyParsed is true

TEST COMPLETE

