# Expected failures when running over HTTP.
(blank).document.location write (readback)
(blank).history.forward(0) call
(blank).length read [value: 0]
(blank).location write (readback)
(blank).location.assign('about:blank') call
(blank).location.replace('about:blank') call
(blank).postMessage read [value: function () { [native code] }]
(third-party).frames.length read [value: 2]
(third-party).frames[0] probe [value: [object global]]
(third-party).history.forward(0) call
(third-party).length read [value: 2]
(third-party).postMessage read [value: function () { [native code] }]
(third-party).window.length read [value: 2]
(third-party).window[0] probe [value: [object global]]
open() frame name lookup

# Issue 9394
(blank).document.open() call

# Issue 9395
(blank).document.write('hi mom') call
