aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom
diff options
context:
space:
mode:
authorbors-servo <lbergstrom+bors@mozilla.com>2016-06-09 02:48:30 -0500
committerbors-servo <lbergstrom+bors@mozilla.com>2016-06-09 02:48:30 -0500
commit77e0089c1234b4a762f0676a46f1921c76b7f362 (patch)
tree806e3727351208cae5349c5a1707a42a4ef11305 /components/script/dom
parent04b682195d2a75ad5961ec05ec1f7a1503c3f3f3 (diff)
parent3bb093cc16875c6fcfe5e7de9c9f6760ff9e18fc (diff)
downloadservo-77e0089c1234b4a762f0676a46f1921c76b7f362.tar.gz
servo-77e0089c1234b4a762f0676a46f1921c76b7f362.zip
Auto merge of #11548 - kevgs:default_view2, r=Ms2ger
Make Document::DefaultView return a null value when there's no browsing context Fixes #11469. <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/11548) <!-- Reviewable:end -->
Diffstat (limited to 'components/script/dom')
-rw-r--r--components/script/dom/document.rs8
-rw-r--r--components/script/dom/element.rs25
-rw-r--r--components/script/dom/webidls/Document.webidl2
3 files changed, 27 insertions, 8 deletions
diff --git a/components/script/dom/document.rs b/components/script/dom/document.rs
index 6e4b4b030e8..4dfb484a301 100644
--- a/components/script/dom/document.rs
+++ b/components/script/dom/document.rs
@@ -2551,8 +2551,12 @@ impl DocumentMethods for Document {
}
// https://html.spec.whatwg.org/multipage/#dom-document-defaultview
- fn DefaultView(&self) -> Root<Window> {
- Root::from_ref(&*self.window)
+ fn GetDefaultView(&self) -> Option<Root<Window>> {
+ if self.browsing_context.is_none() {
+ None
+ } else {
+ Some(Root::from_ref(&*self.window))
+ }
}
// https://html.spec.whatwg.org/multipage/#dom-document-cookie
diff --git a/components/script/dom/element.rs b/components/script/dom/element.rs
index 5b7c9ecf4aa..0b639539f5f 100644
--- a/components/script/dom/element.rs
+++ b/components/script/dom/element.rs
@@ -1315,7 +1315,10 @@ impl Element {
}
// Step 5
- let win = doc.DefaultView();
+ let win = match doc.GetDefaultView() {
+ None => return,
+ Some(win) => win,
+ };
// Step 7
if *self.root_element() == *self {
@@ -1653,7 +1656,10 @@ impl ElementMethods for Element {
}
// Step 3
- let win = doc.DefaultView();
+ let win = match doc.GetDefaultView() {
+ None => return 0.0,
+ Some(win) => win,
+ };
// Step 5
if *self.root_element() == *self {
@@ -1701,7 +1707,10 @@ impl ElementMethods for Element {
}
// Step 5
- let win = doc.DefaultView();
+ let win = match doc.GetDefaultView() {
+ None => return,
+ Some(win) => win,
+ };
// Step 7
if *self.root_element() == *self {
@@ -1739,7 +1748,10 @@ impl ElementMethods for Element {
}
// Step 3
- let win = doc.DefaultView();
+ let win = match doc.GetDefaultView() {
+ None => return 0.0,
+ Some(win) => win,
+ };
// Step 5
if *self.root_element() == *self {
@@ -1787,7 +1799,10 @@ impl ElementMethods for Element {
}
// Step 5
- let win = doc.DefaultView();
+ let win = match doc.GetDefaultView() {
+ None => return,
+ Some(win) => win,
+ };
// Step 7
if *self.root_element() == *self {
diff --git a/components/script/dom/webidls/Document.webidl b/components/script/dom/webidls/Document.webidl
index 0e5c7b661a6..6b365378c92 100644
--- a/components/script/dom/webidls/Document.webidl
+++ b/components/script/dom/webidls/Document.webidl
@@ -118,7 +118,7 @@ partial /*sealed*/ interface Document {
// void writeln(DOMString... text);
// user interaction
- readonly attribute Window/*Proxy?*/ defaultView;
+ readonly attribute Window?/*Proxy?*/ defaultView;
readonly attribute Element? activeElement;
boolean hasFocus();
// attribute DOMString designMode;