[webkit-changes] [WebKit/WebKit] 9e0b32: Expose https://www.w3.org/TR/image-capture/#dom-me...

youennf noreply at github.com
Tue Mar 14 04:03:37 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 9e0b3254278178d3a02f9633130eb222fa52d4c9
      https://github.com/WebKit/WebKit/commit/9e0b3254278178d3a02f9633130eb222fa52d4c9
  Author: Youenn Fablet <youennf at gmail.com>
  Date:   2023-03-14 (Tue, 14 Mar 2023)

  Changed paths:
    M LayoutTests/fast/mediastream/MediaStreamTrack-getCapabilities-expected.txt
    M LayoutTests/fast/mediastream/MediaStreamTrack-getCapabilities.html
    M Source/WTF/wtf/PlatformHave.h
    M Source/WebCore/Modules/mediastream/MediaDevices.cpp
    M Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp
    M Source/WebCore/Modules/mediastream/MediaStreamTrack.h
    M Source/WebCore/Modules/mediastream/MediaStreamTrack.idl
    M Source/WebCore/platform/mediastream/MediaConstraints.cpp
    M Source/WebCore/platform/mediastream/RealtimeMediaSource.cpp
    M Source/WebCore/platform/mediastream/RealtimeMediaSourceCapabilities.h
    M Source/WebCore/platform/mediastream/RealtimeMediaSourceSupportedConstraints.cpp
    M Source/WebCore/platform/mediastream/RealtimeMediaSourceSupportedConstraints.h
    M Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.mm
    M Source/WebCore/platform/mock/MockRealtimeVideoSource.cpp
    M Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in

  Log Message:
  -----------
  Expose https://www.w3.org/TR/image-capture/#dom-mediatrackcapabilities-focusdistance
https://bugs.webkit.org/show_bug.cgi?id=253645
rdar://problem/106497310

Reviewed by Eric Carlson.

Expose focusDistance to allow web developers to disambiguate between various cameras.
In macOS/iOS, we can use https://developer.apple.com/documentation/avfoundation/avcapturedevice/3751762-minimumfocusdistance?changes=_5, which we can expose as focusDistance.min. We do not have a focusDistance.max so we leave that field undefined.
To do so, we use numeric_values<double>::max as the undefined value.

Covered by updated layout test and updated mock camera.
Mock front camera does not have any focus distance info and mock back camera has min focus distance of 0.2.

* LayoutTests/fast/mediastream/MediaStreamTrack-getCapabilities-expected.txt:
* LayoutTests/fast/mediastream/MediaStreamTrack-getCapabilities.html:
* Source/WTF/wtf/PlatformHave.h:
* Source/WebCore/Modules/mediastream/MediaDevices.cpp:
(WebCore::hasInvalidGetDisplayMediaConstraint):
* Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp:
(WebCore::capabilityDoubleRange):
(WebCore::MediaStreamTrack::getCapabilities const):
* Source/WebCore/Modules/mediastream/MediaStreamTrack.h:
* Source/WebCore/Modules/mediastream/MediaStreamTrack.idl:
* Source/WebCore/platform/mediastream/MediaConstraints.cpp:
(WebCore::MediaTrackConstraintSetMap::set):
* Source/WebCore/platform/mediastream/RealtimeMediaSource.cpp:
(WebCore::RealtimeMediaSource::fitnessDistance):
(WebCore::RealtimeMediaSource::applyConstraint):
(WebCore::RealtimeMediaSource::supportsConstraint):
(WebCore::RealtimeMediaSource::supportsConstraints):
* Source/WebCore/platform/mediastream/RealtimeMediaSourceCapabilities.h:
(WebCore::RealtimeMediaSourceCapabilities::RealtimeMediaSourceCapabilities):
(WebCore::RealtimeMediaSourceCapabilities::supportsFocusDistance const):
(WebCore::RealtimeMediaSourceCapabilities::focusDistance const):
(WebCore::RealtimeMediaSourceCapabilities::setFocusDistance):
* Source/WebCore/platform/mediastream/RealtimeMediaSourceSupportedConstraints.cpp:
(WebCore::RealtimeMediaSourceSupportedConstraints::supportsConstraint const):
* Source/WebCore/platform/mediastream/RealtimeMediaSourceSupportedConstraints.h:
(WebCore::RealtimeMediaSourceSupportedConstraints::RealtimeMediaSourceSupportedConstraints):
(WebCore::RealtimeMediaSourceSupportedConstraints::supportsFocusDistance const):
(WebCore::RealtimeMediaSourceSupportedConstraints::setSupportsFocusDistance):
* Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.mm:
(WebCore::AVVideoCaptureSource::capabilities):
* Source/WebCore/platform/mock/MockRealtimeVideoSource.cpp:
(WebCore::MockRealtimeVideoSource::capabilities):
* Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in:

Canonical link: https://commits.webkit.org/261624@main




More information about the webkit-changes mailing list