Selection interface working for synthetic operations

This commit is contained in:
Patrick Shaughnessy 2020-01-31 21:56:36 -05:00
parent e697e6cca7
commit 5ef3358951
30 changed files with 812 additions and 8468 deletions

View file

@ -214,6 +214,12 @@ partial interface Document {
Document includes DocumentOrShadowRoot;
// https://w3c.github.io/selection-api/#dom-document
partial interface Document {
Selection? getSelection();
};
// Servo internal API.
partial interface Document {
[Throws]

View file

@ -95,6 +95,12 @@ partial interface mixin GlobalEventHandlers {
attribute EventHandler ontransitionend;
};
// https://w3c.github.io/selection-api/#extensions-to-globaleventhandlers-interface
partial interface mixin GlobalEventHandlers {
attribute EventHandler onselectstart;
attribute EventHandler onselectionchange;
};
// https://html.spec.whatwg.org/multipage/#windoweventhandlers
[Exposed=Window]
interface mixin WindowEventHandlers {

View file

@ -0,0 +1,32 @@
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
// https://w3c.github.io/selection-api/#selection-interface
[Exposed=Window]
interface Selection {
readonly attribute Node? anchorNode;
readonly attribute unsigned long anchorOffset;
readonly attribute Node? focusNode;
readonly attribute unsigned long focusOffset;
readonly attribute boolean isCollapsed;
readonly attribute unsigned long rangeCount;
readonly attribute DOMString type;
[Throws] Range getRangeAt(unsigned long index);
void addRange(Range range);
[Throws] void removeRange(Range range);
void removeAllRanges();
void empty();
[Throws] void collapse(Node? node, optional unsigned long offset = 0);
[Throws] void setPosition(Node? node, optional unsigned long offset = 0);
[Throws] void collapseToStart();
[Throws] void collapseToEnd();
[Throws] void extend(Node node, optional unsigned long offset = 0);
[Throws]
void setBaseAndExtent(Node anchorNode, unsigned long anchorOffset, Node focusNode, unsigned long focusOffset);
[Throws] void selectAllChildren(Node node);
[CEReactions, Throws]
void deleteFromDocument();
boolean containsNode(Node node, optional boolean allowPartialContainment = false);
stringifier DOMString ();
};

View file

@ -175,6 +175,12 @@ partial interface Window {
readonly attribute unsigned long runningAnimationCount;
};
// https://w3c.github.io/selection-api/#dom-document
partial interface Window {
Selection? getSelection();
};
dictionary WindowPostMessageOptions : PostMessageOptions {
USVString targetOrigin = "/";
};