// Copyright 2016 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// https://dom.spec.whatwg.org/#mixin-documentorshadowroot
interface mixin DocumentOrShadowRoot {
// Selection API
// https://w3c.github.io/selection-api/#extensions-to-document-interface
[Affects=Nothing] Selection? getSelection();
// Web-Animation-API
//https://drafts.csswg.org/web-animations/#extensions-to-the-documentorshadowroot-interface-mixin
[Measure] sequence<Animation> getAnimations();
// CSSOM View Module
// https://drafts.csswg.org/cssom-view/#extensions-to-the-document-interface
[Measure] Element? elementFromPoint(double x, double y);
[Measure] sequence<Element> elementsFromPoint(double x, double y);
readonly attribute Element? activeElement;
[SameObject] readonly attribute StyleSheetList styleSheets;
// PointerLock API
// https://w3c.github.io/pointerlock/
readonly attribute Element? pointerLockElement;
// Fullscreen API
// https://fullscreen.spec.whatwg.org/
[LegacyLenientSetter] readonly attribute Element? fullscreenElement;
[MeasureAs=AdoptedStyleSheets] attribute ObservableArray<CSSStyleSheet> adoptedStyleSheets;
// Picture-in-picture API
// https://w3c.github.io/picture-in-picture/#documentorshadowroot-extension
[Measure] readonly attribute Element? pictureInPictureElement;
};