author Jim Blandy <>
Thu, 30 Mar 2023 16:23:26 +0000
changeset 658645 9754c55103ef774188e1e813a3ef5d4f5487b35c
parent 635948 8a62d45d03cfe41d7f33b9e629d4ed03b9b4abba
permissions -rw-r--r--
Bug 1825449: Don't warn on mismatched WebGPU error scope push/pop. r=webgpu-reviewers,teoxoy In the graphics process, don't warn on receipt of mismatched DevicePushErrorScope/DevicePopErrorScope messages, since these can be easily caused by ordinary content and do not indicate anything wrong with Firefox. Differential Revision:

/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* 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
 * The origin of this IDL file is
 * Copyright © 2012 W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3C
 * liability, trademark and document use rules apply.

// These two enums are in the spec even though they're not used directly in the
// API due to
// Their binding code is used in the implementation.

enum VideoFacingModeEnum {

enum MediaSourceEnum {
    // If values are added, adjust n_values in Histograms.json (2 places)

dictionary ConstrainLongRange {
    long min;
    long max;
    long exact;
    long ideal;

dictionary ConstrainDoubleRange {
    double min;
    double max;
    double exact;
    double ideal;

dictionary ConstrainBooleanParameters {
    boolean exact;
    boolean ideal;

dictionary ConstrainDOMStringParameters {
    (DOMString or sequence<DOMString>) exact;
    (DOMString or sequence<DOMString>) ideal;

typedef (long or ConstrainLongRange) ConstrainLong;
typedef (double or ConstrainDoubleRange) ConstrainDouble;
typedef (boolean or ConstrainBooleanParameters) ConstrainBoolean;
typedef (DOMString or sequence<DOMString> or ConstrainDOMStringParameters) ConstrainDOMString;

// Note: When adding new constraints, remember to update the SelectSettings()
// function in MediaManager.cpp to make OverconstrainedError's constraint work!

dictionary MediaTrackConstraintSet {
    ConstrainLong width;
    ConstrainLong height;
    ConstrainDouble frameRate;
    ConstrainDOMString facingMode;
    DOMString mediaSource;
    long long browserWindow;
    boolean scrollWithPage;
    ConstrainDOMString deviceId;
    ConstrainDOMString groupId;
    ConstrainLong viewportOffsetX;
    ConstrainLong viewportOffsetY;
    ConstrainLong viewportWidth;
    ConstrainLong viewportHeight;
    ConstrainBoolean echoCancellation;
    ConstrainBoolean noiseSuppression;
    ConstrainBoolean autoGainControl;
    ConstrainLong channelCount;

dictionary MediaTrackConstraints : MediaTrackConstraintSet {
    sequence<MediaTrackConstraintSet> advanced;

enum MediaStreamTrackState {

interface MediaStreamTrack : EventTarget {
    readonly    attribute DOMString             kind;
    readonly    attribute DOMString             id;
    readonly    attribute DOMString             label;
                attribute boolean               enabled;
    readonly    attribute boolean               muted;
                attribute EventHandler          onmute;
                attribute EventHandler          onunmute;
    readonly    attribute MediaStreamTrackState readyState;
                attribute EventHandler          onended;
    MediaStreamTrack       clone ();
    undefined              stop ();
//  MediaTrackCapabilities getCapabilities ();
    MediaTrackConstraints  getConstraints ();
    MediaTrackSettings     getSettings ();

    [NewObject, NeedsCallerType]
    Promise<undefined>     applyConstraints (optional MediaTrackConstraints constraints = {});
//              attribute EventHandler          onoverconstrained;