make auxiliary browsing-context script-closeable

This commit is contained in:
Gregory Terzian 2018-06-05 09:45:39 +08:00
parent a0082c57c8
commit fee5428316
4 changed files with 3 additions and 19 deletions

View file

@ -609,13 +609,13 @@ impl WindowMethods for Window {
// https://html.spec.whatwg.org/multipage/#dom-window-close
fn Close(&self) {
let window_proxy = self.window_proxy();
// Note: check the length of the "session history", as opposed to the joint session history?
// see https://github.com/whatwg/html/issues/3734
if let Ok(history_length) = self.History().GetLength() {
// TODO: allow auxilliary browsing contexts created by script to be script-closeable,
// regardless of history length.
let is_auxiliary = window_proxy.is_auxiliary();
// https://html.spec.whatwg.org/multipage/#script-closable
let is_script_closable = self.is_top_level() && history_length == 1;
let is_script_closable = (self.is_top_level() && history_length == 1) || is_auxiliary;
if is_script_closable {
let doc = self.Document();
// https://html.spec.whatwg.org/multipage/#closing-browsing-contexts

View file

@ -1,5 +0,0 @@
[opener-closed.html]
type: testharness
expected: CRASH
[An auxiliary browsing context should report `null` for `window.opener` when that browsing context is discarded]
expected: CRASH

View file

@ -1,5 +0,0 @@
[opener-noopener.html]
type: testharness
[Auxiliary browsing context created via `window.open` setting `noopener` should report `window.opener` `null`]
expected: FAIL

View file

@ -1,6 +0,0 @@
[choose-_self-001.html]
type: testharness
expected: TIMEOUT
[The current browsing context must be chosen if the given name is "_self"]
expected: TIMEOUT