Tests that SVG animations are properly paused in iframes that are inserted into hidden pages.

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


Setting page visibility to hidden
Inserting frame in document
PASS frame.contentWindow.internals.areSVGAnimationsPaused is true
PASS frame.contentDocument.getElementsByTagName('svg')[0].animationsPaused() is true
PASS grandChildFrame.contentWindow.internals.areSVGAnimationsPaused is true
PASS grandChildFrame.contentDocument.getElementsByTagName('svg')[0].animationsPaused() is true
Setting page visibility to visible
PASS frame.contentWindow.internals.areSVGAnimationsPaused is false
PASS frame.contentDocument.getElementsByTagName('svg')[0].animationsPaused() is false
PASS grandChildFrame.contentWindow.internals.areSVGAnimationsPaused is false
PASS grandChildFrame.contentDocument.getElementsByTagName('svg')[0].animationsPaused() is false
PASS successfullyParsed is true

TEST COMPLETE

