| This is a testharness.js-based test. |
| Found 90 tests; 48 PASS, 42 FAIL, 0 TIMEOUT, 0 NOTRUN. |
| PASS Basic sanity-checking (cross-origin) |
| PASS Basic sanity-checking (same-origin + document.domain) |
| PASS Basic sanity-checking (cross-site) |
| FAIL Only certain properties are accessible cross-origin (cross-origin) Blocked a frame with origin "http://web-platform.test:8001" from accessing a cross-origin frame. |
| FAIL Only certain properties are accessible cross-origin (same-origin + document.domain) Blocked a frame with origin "http://web-platform.test:8001" from accessing a cross-origin frame. |
| FAIL Only certain properties are accessible cross-origin (cross-site) Blocked a frame with origin "http://web-platform.test:8001" from accessing a cross-origin frame. |
| FAIL Only certain properties are usable as cross-origin this objects (cross-origin) promise_test: Unhandled rejection with value: object "SecurityError: Blocked a frame with origin "http://web-platform.test:8001" from accessing a cross-origin frame." |
| FAIL Only certain properties are usable as cross-origin this objects (same-origin + document.domain) promise_test: Unhandled rejection with value: object "SecurityError: Blocked a frame with origin "http://web-platform.test:8001" from accessing a cross-origin frame." |
| FAIL Only certain properties are usable as cross-origin this objects (cross-site) promise_test: Unhandled rejection with value: object "SecurityError: Blocked a frame with origin "http://web-platform.test:8001" from accessing a cross-origin frame." |
| PASS [[GetPrototypeOf]] should return null (cross-origin) |
| PASS [[GetPrototypeOf]] should return null (same-origin + document.domain) |
| PASS [[GetPrototypeOf]] should return null (cross-site) |
| FAIL [[SetPrototypeOf]] should return false (cross-origin) assert_throws_js: proto setter |call| on cross-origin Window function "function() { protoSetter.call(win, new Object()); }" threw object "SecurityError: Blocked a frame with origin "http://web-platform.test:8001" from accessing a cross-origin frame." ("SecurityError") expected instance of function "function TypeError() { [native code] }" ("TypeError") |
| FAIL [[SetPrototypeOf]] should return false (same-origin + document.domain) assert_throws_js: proto setter |call| on cross-origin Window function "function() { protoSetter.call(win, new Object()); }" threw object "SecurityError: Blocked a frame with origin "http://web-platform.test:8001" from accessing a cross-origin frame." ("SecurityError") expected instance of function "function TypeError() { [native code] }" ("TypeError") |
| FAIL [[SetPrototypeOf]] should return false (cross-site) assert_throws_js: proto setter |call| on cross-origin Window function "function() { protoSetter.call(win, new Object()); }" threw object "SecurityError: Blocked a frame with origin "http://web-platform.test:8001" from accessing a cross-origin frame." ("SecurityError") expected instance of function "function TypeError() { [native code] }" ("TypeError") |
| PASS [[IsExtensible]] should return true for cross-origin objects (cross-origin) |
| PASS [[IsExtensible]] should return true for cross-origin objects (same-origin + document.domain) |
| PASS [[IsExtensible]] should return true for cross-origin objects (cross-site) |
| FAIL [[PreventExtensions]] should throw for cross-origin objects (cross-origin) assert_throws_js: preventExtensions on cross-origin Window should throw function "function() { Object.preventExtensions(win) }" threw object "SecurityError: Blocked a frame with origin "http://web-platform.test:8001" from accessing a cross-origin frame." ("SecurityError") expected instance of function "function TypeError() { [native code] }" ("TypeError") |
| FAIL [[PreventExtensions]] should throw for cross-origin objects (same-origin + document.domain) assert_throws_js: preventExtensions on cross-origin Window should throw function "function() { Object.preventExtensions(win) }" threw object "SecurityError: Blocked a frame with origin "http://web-platform.test:8001" from accessing a cross-origin frame." ("SecurityError") expected instance of function "function TypeError() { [native code] }" ("TypeError") |
| FAIL [[PreventExtensions]] should throw for cross-origin objects (cross-site) assert_throws_js: preventExtensions on cross-origin Window should throw function "function() { Object.preventExtensions(win) }" threw object "SecurityError: Blocked a frame with origin "http://web-platform.test:8001" from accessing a cross-origin frame." ("SecurityError") expected instance of function "function TypeError() { [native code] }" ("TypeError") |
| FAIL [[GetOwnProperty]] - Properties on cross-origin objects should be reported |own| (cross-origin) Blocked a frame with origin "http://web-platform.test:8001" from accessing a cross-origin frame. |
| FAIL [[GetOwnProperty]] - Properties on cross-origin objects should be reported |own| (same-origin + document.domain) Blocked a frame with origin "http://web-platform.test:8001" from accessing a cross-origin frame. |
| FAIL [[GetOwnProperty]] - Properties on cross-origin objects should be reported |own| (cross-site) Blocked a frame with origin "http://web-platform.test:8001" from accessing a cross-origin frame. |
| FAIL [[GetOwnProperty]] - Property descriptors for cross-origin properties should be set up correctly (cross-origin) assert_equals: property descriptor for 0 should be enumerable expected true but got false |
| FAIL [[GetOwnProperty]] - Property descriptors for cross-origin properties should be set up correctly (same-origin + document.domain) assert_equals: property descriptor for 0 should be enumerable expected true but got false |
| FAIL [[GetOwnProperty]] - Property descriptors for cross-origin properties should be set up correctly (cross-site) assert_equals: property descriptor for 0 should be enumerable expected true but got false |
| PASS [[GetOwnProperty]] - Subframe named 'then' should shadow the default 'then' value (cross-origin) |
| PASS [[GetOwnProperty]] - Subframe named 'then' should shadow the default 'then' value (same-origin + document.domain) |
| PASS [[GetOwnProperty]] - Subframe named 'then' should shadow the default 'then' value (cross-site) |
| PASS [[GetOwnProperty]] - Subframes should be visible cross-origin only if their names don't match the names of cross-origin-exposed IDL properties (cross-origin) |
| PASS [[GetOwnProperty]] - Subframes should be visible cross-origin only if their names don't match the names of cross-origin-exposed IDL properties (same-origin + document.domain) |
| PASS [[GetOwnProperty]] - Subframes should be visible cross-origin only if their names don't match the names of cross-origin-exposed IDL properties (cross-site) |
| PASS [[GetOwnProperty]] - Should be able to get a property descriptor for an indexed property only if it corresponds to a child window. (cross-origin) |
| PASS [[GetOwnProperty]] - Should be able to get a property descriptor for an indexed property only if it corresponds to a child window. (same-origin + document.domain) |
| PASS [[GetOwnProperty]] - Should be able to get a property descriptor for an indexed property only if it corresponds to a child window. (cross-site) |
| PASS [[Delete]] Should throw on cross-origin objects (cross-origin) |
| PASS [[Delete]] Should throw on cross-origin objects (same-origin + document.domain) |
| PASS [[Delete]] Should throw on cross-origin objects (cross-site) |
| PASS [[DefineOwnProperty]] Should throw for cross-origin objects (cross-origin) |
| PASS [[DefineOwnProperty]] Should throw for cross-origin objects (same-origin + document.domain) |
| PASS [[DefineOwnProperty]] Should throw for cross-origin objects (cross-site) |
| FAIL Can only enumerate safelisted enumerable properties (cross-origin) assert_equals: Enumerate all enumerable safelisted cross-origin Window properties expected 2 but got 0 |
| FAIL Can only enumerate safelisted enumerable properties (same-origin + document.domain) assert_equals: Enumerate all enumerable safelisted cross-origin Window properties expected 2 but got 0 |
| FAIL Can only enumerate safelisted enumerable properties (cross-site) assert_equals: Enumerate all enumerable safelisted cross-origin Window properties expected 2 but got 0 |
| FAIL [[OwnPropertyKeys]] should return all properties from cross-origin objects (cross-origin) assert_array_equals: Object.getOwnPropertyNames() gives the right answer for cross-origin Window lengths differ, expected array ["0", "1", "blur", "close", "closed", "focus", "frames", "length", "location", "opener", "parent", "postMessage", "self", "then", "top", "window"] length 16, got ["blur", "close", "closed", "focus", "frames", "length", "location", "opener", "parent", "postMessage", "self", "top", "window"] length 13 |
| FAIL [[OwnPropertyKeys]] should return all properties from cross-origin objects (same-origin + document.domain) assert_array_equals: Object.getOwnPropertyNames() gives the right answer for cross-origin Window lengths differ, expected array ["0", "1", "blur", "close", "closed", "focus", "frames", "length", "location", "opener", "parent", "postMessage", "self", "then", "top", "window"] length 16, got ["blur", "close", "closed", "focus", "frames", "length", "location", "opener", "parent", "postMessage", "self", "top", "window"] length 13 |
| FAIL [[OwnPropertyKeys]] should return all properties from cross-origin objects (cross-site) assert_array_equals: Object.getOwnPropertyNames() gives the right answer for cross-origin Window lengths differ, expected array ["0", "1", "blur", "close", "closed", "focus", "frames", "length", "location", "opener", "parent", "postMessage", "self", "then", "top", "window"] length 16, got ["blur", "close", "closed", "focus", "frames", "length", "location", "opener", "parent", "postMessage", "self", "top", "window"] length 13 |
| FAIL [[OwnPropertyKeys]] should return the right symbol-named properties for cross-origin objects (cross-origin) assert_array_equals: Object.getOwnPropertySymbols() should return the three symbol-named properties that are exposed on a cross-origin Window lengths differ, expected array [symbol "Symbol(Symbol.toStringTag)", symbol "Symbol(Symbol.hasInstance)", symbol "Symbol(Symbol.isConcatSpreadable)"] length 3, got [] length 0 |
| FAIL [[OwnPropertyKeys]] should return the right symbol-named properties for cross-origin objects (same-origin + document.domain) assert_array_equals: Object.getOwnPropertySymbols() should return the three symbol-named properties that are exposed on a cross-origin Window lengths differ, expected array [symbol "Symbol(Symbol.toStringTag)", symbol "Symbol(Symbol.hasInstance)", symbol "Symbol(Symbol.isConcatSpreadable)"] length 3, got [] length 0 |
| FAIL [[OwnPropertyKeys]] should return the right symbol-named properties for cross-origin objects (cross-site) assert_array_equals: Object.getOwnPropertySymbols() should return the three symbol-named properties that are exposed on a cross-origin Window lengths differ, expected array [symbol "Symbol(Symbol.toStringTag)", symbol "Symbol(Symbol.hasInstance)", symbol "Symbol(Symbol.isConcatSpreadable)"] length 3, got [] length 0 |
| FAIL [[OwnPropertyKeys]] should place the symbols after the property names after the subframe indices (cross-origin) assert_equals: 'then' property should be added to the end of the string list if not there expected "then" but got "close" |
| FAIL [[OwnPropertyKeys]] should place the symbols after the property names after the subframe indices (same-origin + document.domain) assert_equals: 'then' property should be added to the end of the string list if not there expected "then" but got "close" |
| FAIL [[OwnPropertyKeys]] should place the symbols after the property names after the subframe indices (cross-site) assert_equals: 'then' property should be added to the end of the string list if not there expected "then" but got "close" |
| FAIL [[OwnPropertyKeys]] should not reorder where 'then' appears if it's a named subframe, nor add another copy of 'then' (cross-origin) assert_equals: expected "then" but got "postMessage" |
| FAIL [[OwnPropertyKeys]] should not reorder where 'then' appears if it's a named subframe, nor add another copy of 'then' (same-origin + document.domain) assert_equals: expected "then" but got "postMessage" |
| FAIL [[OwnPropertyKeys]] should not reorder where 'then' appears if it's a named subframe, nor add another copy of 'then' (cross-site) assert_equals: expected "then" but got "postMessage" |
| PASS A and B jointly observe the same identity for cross-origin Window and Location (cross-origin) |
| PASS A and B jointly observe the same identity for cross-origin Window and Location (same-origin + document.domain) |
| PASS A and B jointly observe the same identity for cross-origin Window and Location (cross-site) |
| PASS Cross-origin functions get local Function.prototype (cross-origin) |
| PASS Cross-origin functions get local Function.prototype (same-origin + document.domain) |
| PASS Cross-origin functions get local Function.prototype (cross-site) |
| FAIL Cross-origin Window accessors get local Function.prototype (cross-origin) Cannot read property 'name' of undefined |
| FAIL Cross-origin Window accessors get local Function.prototype (same-origin + document.domain) Cannot read property 'name' of undefined |
| FAIL Cross-origin Window accessors get local Function.prototype (cross-site) Cannot read property 'name' of undefined |
| PASS Same-origin observers get different functions for cross-origin objects (cross-origin) |
| PASS Same-origin observers get different functions for cross-origin objects (same-origin + document.domain) |
| PASS Same-origin observers get different functions for cross-origin objects (cross-site) |
| FAIL Same-origin observers get different accessors for cross-origin Window (cross-origin) assert_not_equals: different Window accessors per-incumbent script settings object got disallowed value undefined |
| FAIL Same-origin observers get different accessors for cross-origin Window (same-origin + document.domain) assert_not_equals: different Window accessors per-incumbent script settings object got disallowed value undefined |
| FAIL Same-origin observers get different accessors for cross-origin Window (cross-site) assert_not_equals: different Window accessors per-incumbent script settings object got disallowed value undefined |
| FAIL Same-origin observers get different accessors for cross-origin Location (cross-origin) Blocked a frame with origin "http://web-platform.test:8001" from accessing a cross-origin frame. |
| FAIL Same-origin observers get different accessors for cross-origin Location (same-origin + document.domain) Blocked a frame with origin "http://web-platform.test:8001" from accessing a cross-origin frame. |
| FAIL Same-origin observers get different accessors for cross-origin Location (cross-site) Blocked a frame with origin "http://web-platform.test:8001" from accessing a cross-origin frame. |
| PASS {}.toString.call() does the right thing on cross-origin objects (cross-origin) |
| PASS {}.toString.call() does the right thing on cross-origin objects (same-origin + document.domain) |
| PASS {}.toString.call() does the right thing on cross-origin objects (cross-site) |
| PASS Resolving a promise with a cross-origin window without a 'then' subframe should work (cross-origin) |
| PASS Resolving a promise with a cross-origin window without a 'then' subframe should work (same-origin + document.domain) |
| PASS Resolving a promise with a cross-origin window without a 'then' subframe should work (cross-site) |
| PASS Resolving a promise with a cross-origin window with a 'then' subframe should work (cross-origin) |
| PASS Resolving a promise with a cross-origin window with a 'then' subframe should work (same-origin + document.domain) |
| PASS Resolving a promise with a cross-origin window with a 'then' subframe should work (cross-site) |
| PASS Resolving a promise with a cross-origin location should work (cross-origin) |
| PASS Resolving a promise with a cross-origin location should work (same-origin + document.domain) |
| PASS Resolving a promise with a cross-origin location should work (cross-site) |
| PASS LegacyLenientThis behavior (cross-origin) |
| PASS LegacyLenientThis behavior (same-origin + document.domain) |
| PASS LegacyLenientThis behavior (cross-site) |
| Harness: the test ran to completion. |
| |