chromium/third_party/blink/renderer/core/html/custom/custom_element_registry.idl

// 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://html.spec.whatwg.org/C/#customelementregistry

[Exposed=Window]
interface CustomElementRegistry {
    [CallWith=ScriptState, RuntimeEnabled=ScopedCustomElementRegistry] constructor();
    [CallWith=ScriptState, CEReactions, RaisesException, MeasureAs=CustomElementRegistryDefine] void define(DOMString name, CustomElementConstructor constructor, optional ElementDefinitionOptions options = {});
    any get(DOMString name);
    [RuntimeEnabled=CustomElementsGetName] DOMString? getName(CustomElementConstructor constructor);
    [CallWith=ScriptState,RaisesException] Promise<CustomElementConstructor> whenDefined(DOMString name);
    [CEReactions] void upgrade(Node root);
};

callback CustomElementConstructor = any ();

// Blink specific types. HTML standard does not explicitly define these types.
callback CustomElementAdoptedCallback = void (Document oldOwner, Document newOwner);
callback CustomElementAttributeChangedCallback = void (DOMString localName, DOMString? oldValue, DOMString? newValue, USVString? attrNamespace);
callback CustomElementFormAssociatedCallback = void (HTMLFormElement? form);
callback CustomElementFormDisabledCallback = void (boolean disabled);
enum FormStateRestoreMode { "restore", "autocomplete" };
callback CustomElementFormStateRestoreCallback = void (ControlValue value, FormStateRestoreMode mode);