blob: 67075be425dac442fbe0275effcf484f1759d67e [file] [log] [blame]
// Copyright 2023 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "third_party/blink/renderer/modules/mediastream/restriction_target.h"
#include "third_party/blink/public/mojom/mediastream/media_devices.mojom-blink.h"
#include "third_party/blink/renderer/bindings/core/v8/script_promise.h"
#include "third_party/blink/renderer/modules/mediastream/media_devices.h"
#include "third_party/blink/renderer/modules/mediastream/sub_capture_target.h"
#include "third_party/blink/renderer/platform/bindings/script_state.h"
namespace blink {
ScriptPromise<RestrictionTarget> RestrictionTarget::fromElement(
ScriptState* script_state,
Element* element,
ExceptionState& exception_state) {
DCHECK(IsMainThread());
MediaDevices* const media_devices =
GetMediaDevices(script_state, element, exception_state);
if (!media_devices) {
CHECK(exception_state.HadException()); // Exception thrown by helper.
return EmptyPromise();
}
return media_devices->ProduceRestrictionTarget(script_state, element,
exception_state);
}
RestrictionTarget::RestrictionTarget(String id)
: SubCaptureTarget(SubCaptureTarget::Type::kRestrictionTarget,
std::move(id)) {}
} // namespace blink