// Copyright 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// https://w3c.github.io/mediacapture-image/#ImageCaptureAPI

[
    ActiveScriptWrappable,
    ConstructorCallWith=ExecutionContext,
    Constructor(MediaStreamTrack track),
    DependentLifetime,
    MeasureAs=ImageCaptureConstructor,
    RaisesException=Constructor,
    RuntimeEnabled=ImageCapture
] interface ImageCapture {
    [ImplementedAs=videoStreamTrack] readonly attribute MediaStreamTrack track;

    [CallWith=ScriptState] Promise<PhotoCapabilities> getPhotoCapabilities();
    [CallWith=ScriptState] Promise<PhotoSettings> getPhotoSettings();
    [CallWith=ScriptState] Promise<void> setOptions(PhotoSettings photoSettings);
    [CallWith=ScriptState] Promise<Blob> takePhoto(optional PhotoSettings photoSettings);
    [CallWith=ScriptState] Promise<ImageBitmap> grabFrame();
};
