Implementing document.hasFocus method. #6475

This commit is contained in:
Maciej Skrzypkowski 2015-07-22 22:31:29 +02:00
parent 8edf1a5ecd
commit 07c0cd8a18
3 changed files with 22 additions and 7 deletions

View file

@ -1183,6 +1183,27 @@ impl<'a> DocumentMethods for &'a Document {
} }
} }
// https://html.spec.whatwg.org/#dom-document-hasfocus
fn HasFocus(self) -> bool {
let target = self; // Step 1.
let window = self.window.root();
let window = window.r();
let browsing_context = window.browsing_context();
let browsing_context = browsing_context.as_ref();
match browsing_context {
Some(browsing_context) => {
let condidate = browsing_context.active_document(); // Step 2.
if condidate.node.get_unique_id() == target.node.get_unique_id() { // Step 3.
true
} else {
false //TODO Step 4.
}
}
None => false
}
}
// https://dom.spec.whatwg.org/#dom-document-documenturi // https://dom.spec.whatwg.org/#dom-document-documenturi
fn DocumentURI(self) -> DOMString { fn DocumentURI(self) -> DOMString {
self.URL() self.URL()

View file

@ -114,7 +114,7 @@ partial /*sealed*/ interface Document {
// user interaction // user interaction
readonly attribute Window/*Proxy?*/ defaultView; readonly attribute Window/*Proxy?*/ defaultView;
// readonly attribute Element? activeElement; // readonly attribute Element? activeElement;
// boolean hasFocus(); boolean hasFocus();
// attribute DOMString designMode; // attribute DOMString designMode;
// boolean execCommand(DOMString commandId, optional boolean showUI = false, optional DOMString value = ""); // boolean execCommand(DOMString commandId, optional boolean showUI = false, optional DOMString value = "");
// boolean queryCommandEnabled(DOMString commandId); // boolean queryCommandEnabled(DOMString commandId);

View file

@ -30,9 +30,6 @@
[Document interface: operation writeln(DOMString)] [Document interface: operation writeln(DOMString)]
expected: FAIL expected: FAIL
[Document interface: operation hasFocus()]
expected: FAIL
[Document interface: attribute designMode] [Document interface: attribute designMode]
expected: FAIL expected: FAIL
@ -1098,9 +1095,6 @@
[Document interface: calling writeln(DOMString) on document.implementation.createDocument(null, "", null) with too few arguments must throw TypeError] [Document interface: calling writeln(DOMString) on document.implementation.createDocument(null, "", null) with too few arguments must throw TypeError]
expected: FAIL expected: FAIL
[Document interface: document.implementation.createDocument(null, "", null) must inherit property "hasFocus" with the proper type (61)]
expected: FAIL
[Document interface: document.implementation.createDocument(null, "", null) must inherit property "designMode" with the proper type (62)] [Document interface: document.implementation.createDocument(null, "", null) must inherit property "designMode" with the proper type (62)]
expected: FAIL expected: FAIL