Ver código fonte

LibWeb: Add methods to Document that must do nothing

This change adds the `clear()`, `captureEvents()` and `releaseEvents()`
methods to the document object. These methods are obsolete, but are
still included in the HTML specification, which says they must do
nothing.
Tim Ledbetter 1 ano atrás
pai
commit
0564e06f10

+ 3 - 0
Tests/LibWeb/Text/expected/DOM/Document-methods-that-must-do-nothing.txt

@@ -0,0 +1,3 @@
+document.clear() returns undefined: true
+document.captureEvents() returns undefined: true
+document.releaseEvents() returns undefined: true

+ 9 - 0
Tests/LibWeb/Text/input/DOM/Document-methods-that-must-do-nothing.html

@@ -0,0 +1,9 @@
+<!DOCTYPE html>
+<script src="../include.js"></script>
+<script>
+    test(() => {
+        println(`document.clear() returns undefined: ${document.clear() === undefined}`);
+        println(`document.captureEvents() returns undefined: ${document.captureEvents() === undefined}`);
+        println(`document.releaseEvents() returns undefined: ${document.releaseEvents() === undefined}`);
+    });
+</script>

+ 18 - 0
Userland/Libraries/LibWeb/DOM/Document.cpp

@@ -1472,6 +1472,24 @@ JS::NonnullGCPtr<HTML::HTMLAllCollection> Document::all()
     return *m_all;
 }
 
+// https://html.spec.whatwg.org/multipage/obsolete.html#dom-document-clear
+void Document::clear()
+{
+    // Do nothing
+}
+
+// https://html.spec.whatwg.org/multipage/obsolete.html#dom-document-captureevents
+void Document::capture_events()
+{
+    // Do nothing
+}
+
+// https://html.spec.whatwg.org/multipage/obsolete.html#dom-document-releaseevents
+void Document::release_events()
+{
+    // Do nothing
+}
+
 Color Document::link_color() const
 {
     if (m_link_color.has_value())

+ 4 - 0
Userland/Libraries/LibWeb/DOM/Document.h

@@ -243,6 +243,10 @@ public:
     JS::NonnullGCPtr<HTMLCollection> scripts();
     JS::NonnullGCPtr<HTML::HTMLAllCollection> all();
 
+    void clear();
+    void capture_events();
+    void release_events();
+
     String const& source() const { return m_source; }
     void set_source(String source) { m_source = move(source); }
 

+ 4 - 0
Userland/Libraries/LibWeb/DOM/Document.idl

@@ -78,6 +78,10 @@ interface Document : Node {
 
     readonly attribute HTMLAllCollection all;
 
+    undefined clear();
+    undefined captureEvents();
+    undefined releaseEvents();
+
     [CEReactions, NewObject] Element createElement(DOMString tagName, optional (DOMString or ElementCreationOptions) options = {});
     [CEReactions, NewObject] Element createElementNS([FlyString] DOMString? namespace, DOMString qualifiedName, optional (DOMString or ElementCreationOptions) options = {});
     DocumentFragment createDocumentFragment();