| <script> | 
 | if (window.testRunner) | 
 |     testRunner.dumpAsText(); | 
 |      | 
 | function log(s) | 
 | { | 
 |     if (window.testRunner) | 
 |         alert(s); | 
 |     else | 
 |         logger.document.write('<p>' + s + '</p>'); | 
 | } | 
 |  | 
 | function shouldBe(a, b) | 
 | { | 
 |     var evalA; | 
 |     try { | 
 |         evalA = eval(a) | 
 |     } catch (e) { | 
 |         evalA = 'Caught exception: ' + e; | 
 |     } | 
 |      | 
 |     if (evalA == b) | 
 |         log('PASS: ' + a + ' should be ' + b + ' and is.\n'); | 
 |     else | 
 |         log('FAIL: ' + a + ' should be ' + b + ' but instead is ' + evalA + '.\n'); | 
 | } | 
 | </script> | 
 | <frameset rows="250, *"> | 
 | <frameset cols="*, 250"> | 
 | <frame name="logger"> | 
 | <frame | 
 |     name="frame" | 
 |     src="javascript: | 
 |         top.log('This page tests whether an iframe correctly reports renderer-dependent values ' + | 
 |                 'when executing a javascript: load. If the test passes, you\'ll see a series of ' + | 
 |                 '\'PASS\' messages below.\n' | 
 |                 ); | 
 |         top.shouldBe('frame.frameElement.getBoundingClientRect().width', 250); | 
 |         top.shouldBe('frame.frameElement.clientWidth', 250); | 
 |         top.shouldBe('frame.frameElement.getBoundingClientRect().height', 250); | 
 |         top.shouldBe('frame.frameElement.clientHeight', 250); | 
 |     " | 
 | > | 
 | </frameset> | 
 | </frameset> |