haikuwebkit/LayoutTests/media/mediacapabilities/mediacapabilities-types-exp...

88 lines
6.2 KiB
Plaintext
Raw Permalink Normal View History

Add initial DOM support for Media Capabilities https://bugs.webkit.org/show_bug.cgi?id=181064 Reviewed by Eric Carlson. Source/WebCore: Test: media/mediacapabilities/mediacapabilities-types.html Add basic, cross-platform, DOM facing type and API support for Media Capabilities API. * bindings/scripts/CodeGenerator.pm: (WK_ucfirst): * CMakeLists.txt: * DerivedSources.make: * Modules/mediacapabilities/AudioConfiguration.h: Added. * Modules/mediacapabilities/AudioConfiguration.idl: Added. * Modules/mediacapabilities/MediaCapabilities.cpp: Added. (WebCore::bucketMIMETypes): (WebCore::isValidMIMEType): (WebCore::isValidVideoConfiguration): (WebCore::isValidAudioConfiguration): (WebCore::isValidMediaConfiguration): (WebCore::MediaCapabilities::decodingInfo): (WebCore::MediaCapabilities::encodingInfo): * Modules/mediacapabilities/MediaCapabilities.h: Added. * Modules/mediacapabilities/MediaCapabilities.idl: Added. * Modules/mediacapabilities/MediaCapabilitiesInfo.h: Added. (WebCore::MediaCapabilitiesInfo::supported const): (WebCore::MediaCapabilitiesInfo::setSupported): (WebCore::MediaCapabilitiesInfo::smooth const): (WebCore::MediaCapabilitiesInfo::setSmooth): (WebCore::MediaCapabilitiesInfo::powerEfficient const): (WebCore::MediaCapabilitiesInfo::setPowerEfficient): * Modules/mediacapabilities/MediaCapabilitiesInfo.idl: Added. * Modules/mediacapabilities/MediaConfiguration.h: Added. * Modules/mediacapabilities/MediaConfiguration.idl: Added. * Modules/mediacapabilities/MediaDecodingConfiguration.h: Added. * Modules/mediacapabilities/MediaDecodingConfiguration.idl: Added. * Modules/mediacapabilities/MediaDecodingType.h: Added. * Modules/mediacapabilities/MediaDecodingType.idl: Added. * Modules/mediacapabilities/MediaEncodingConfiguration.h: Added. * Modules/mediacapabilities/MediaEncodingConfiguration.idl: Added. * Modules/mediacapabilities/MediaEncodingType.h: Added. * Modules/mediacapabilities/MediaEncodingType.idl: Added. * Modules/mediacapabilities/NavigatorMediaCapabilities.cpp: Added. (WebCore::NavigatorMediaCapabilities::NavigatorMediaCapabilities): (WebCore::NavigatorMediaCapabilities::supplementName): (WebCore::NavigatorMediaCapabilities::from): (WebCore::NavigatorMediaCapabilities::mediaCapabilities): (WebCore::NavigatorMediaCapabilities::mediaCapabilities const): * Modules/mediacapabilities/NavigatorMediaCapabilities.h: Added. * Modules/mediacapabilities/NavigatorMediaCapabilities.idl: Added. * Modules/mediacapabilities/ScreenColorGamut.h: Added. * Modules/mediacapabilities/ScreenColorGamut.idl: Added. * Modules/mediacapabilities/ScreenLuminance.h: Added. (WebCore::ScreenLuminance::min const): (WebCore::ScreenLuminance::setMin): (WebCore::ScreenLuminance::max const): (WebCore::ScreenLuminance::setMax): (WebCore::ScreenLuminance::maxAverage const): (WebCore::ScreenLuminance::setMaxAverage): * Modules/mediacapabilities/ScreenLuminance.idl: Added. * Modules/mediacapabilities/VideoConfiguration.h: Added. * Modules/mediacapabilities/VideoConfiguration.idl: Added. * Sources.txt: * WebCore.xcodeproj/project.pbxproj: * bindings/js/WebCoreBuiltinNames.h: * page/RuntimeEnabledFeatures.h: (WebCore::RuntimeEnabledFeatures::setMediaCapabilitiesEnabled): (WebCore::RuntimeEnabledFeatures::mediaCapabilitiesEnabled const): * page/Settings.yaml: Source/WebKit: Add a new preference to enable the (disabled-by-default) Media Capabilities API. * Shared/WebPreferences.yaml: * UIProcess/API/C/WKPreferences.cpp: (WKPreferencesSetMediaCapabilitiesEnabled): (WKPreferencesGetMediaCapabilitiesEnabled): * UIProcess/API/C/WKPreferencesRef.h: Source/WebKitLegacy/mac: Add a new preference to enable the (disabled-by-default) Media Capabilities API. * WebView/WebPreferenceKeysPrivate.h: * WebView/WebPreferences.mm: (+[WebPreferences initialize]): (-[WebPreferences mediaCapabilitiesEnabled]): (-[WebPreferences setMediaCapabilitiesEnabled:]): * WebView/WebPreferencesPrivate.h: * WebView/WebView.mm: (-[WebView _preferencesChanged:]): Tools: * DumpRenderTree/mac/DumpRenderTree.mm: (resetWebPreferencesToConsistentValues): * WebKitTestRunner/TestController.cpp: (WTR::TestController::resetPreferencesToConsistentValues): LayoutTests: * fast/dom/navigator-detached-no-crash-expected.txt: * media/mediacapabilities/mediacapabilities-types-expected.txt: Added. * media/mediacapabilities/mediacapabilities-types.html: Added. * platform/gtk/fast/dom/navigator-detached-no-crash-expected.txt: * platform/mac-elcapitan-wk2/fast/dom/navigator-detached-no-crash-expected.txt: * platform/mac-wk1/fast/dom/navigator-detached-no-crash-expected.txt: * platform/win/fast/dom/navigator-detached-no-crash-expected.txt: Canonical link: https://commits.webkit.org/196952@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226228 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-12-21 18:28:21 +00:00
Test basic dictionary and enum types of Media Capabilities API
On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
PASS () => {
return navigator.mediaCapabilities.decodingInfo({ type: 'file' });
} rejected promise with TypeError: Type error.
PASS () => {
return navigator.mediaCapabilities.decodingInfo({ type: 'media-source' });
} rejected promise with TypeError: Type error.
PASS () => {
return navigator.mediaCapabilities.decodingInfo({ type: 'file', audio: { } });
} rejected promise with TypeError: Member AudioConfiguration.contentType is required and must be an instance of DOMString.
PASS () => {
return navigator.mediaCapabilities.decodingInfo({ type: 'file', audio: { contentType: 'video/mp4; codecs="avc1"' } });
} rejected promise with TypeError: Type error.
PASS () => {
return navigator.mediaCapabilities.decodingInfo({ type: 'file', video: { } });
} rejected promise with TypeError: Member VideoConfiguration.bitrate is required and must be an instance of unsigned long long.
PASS () => {
return navigator.mediaCapabilities.decodingInfo({ type: 'file', video: { contentType: 'audio/mp3', width: 640, height: 480, bitrate: 1000, framerate: 24 } });
} rejected promise with TypeError: Type error.
PASS () => {
return navigator.mediaCapabilities.decodingInfo({ type: 'file', video: { contentType: 'video/mp4; codecs="avc1"', height: 480, bitrate: 1000, framerate: 24 } });
} rejected promise with TypeError: Member VideoConfiguration.width is required and must be an instance of unsigned long.
PASS () => {
return navigator.mediaCapabilities.decodingInfo({ type: 'file', video: { contentType: 'video/mp4; codecs="avc1,vp9"', width:640, height: 480, bitrate: 1000, framerate: 24 } });
} rejected promise with TypeError: Type error.
PASS () => {
return navigator.mediaCapabilities.decodingInfo({ type: 'file', video: { contentType: 'video/mp4', width:640, height: 480, bitrate: 1000, framerate: 24 } });
} rejected promise with TypeError: Type error.
PASS () => {
return navigator.mediaCapabilities.decodingInfo({ type: 'file', video: { contentType: 'video/mp4; codecs="avc1"', width: 640, height: 480, bitrate: 1000, framerate: 0 } });
} rejected promise with TypeError: Type error.
PASS () => {
return navigator.mediaCapabilities.decodingInfo({ type: 'file', video: { contentType: 'video/mp4; codecs="avc1"', width: 640, height: 480, bitrate: 1000, framerate: "24/a" } });
[MediaCapabilities] Implement MediaEngineConfigurationFactory registration https://bugs.webkit.org/show_bug.cgi?id=189438 Reviewed by Eric Carlson. Source/WebCore: Implement a mechanism to register platform-specific MediaEngineConfigurationFactory methods, and a mechanism to iterate over those registered factories when createDecodingConfiguration() and createEncodingConfiguration() are called. The Factory has been radically simplified; the concept of MediaEngineDecodingConfiguration and MediaEngineEncodingConfiguration and its subclasess have been removed. Since the primary objects representing video and audio configurations are IDLDictionaries, the native objects are just structs full of POD types (and Strings). Since these have no dependencies on higher-level HTML concepts, they can be moved into platform/ and accessed from there. This patch also converts MediaCapabilitiesInfo to an Interface, so its implementation also can become a struct and live in platform/. The MediaEngineDecodingConfigurationMock and MediaEngineEncodingConfigurationMock have been consolidated in a single class which simply parses MediaDecodingConfiguration and MediaEncodingConifguration objects (now that they live in Platform) and return a MediaCapabilitiesInfo object (now that it does too). * Modules/mediacapabilities/MediaCapabilities.cpp: (WebCore::isValidVideoConfiguration): (WebCore::MediaCapabilities::decodingInfo): (WebCore::MediaCapabilities::encodingInfo): * Modules/mediacapabilities/MediaCapabilitiesInfo.h: Removed. * Modules/mediacapabilities/MediaCapabilitiesInfo.idl: * Modules/mediacapabilities/VideoConfiguration.idl: * Sources.txt: * WebCore.xcodeproj/project.pbxproj: * platform/MediaCapabilitiesInfo.h: Copied from Source/WebCore/Modules/mediacapabilities/MediaDecodingType.h. * platform/mediacapabilities/AudioConfiguration.h: Renamed from Source/WebCore/Modules/mediacapabilities/AudioConfiguration.h. * platform/mediacapabilities/MediaConfiguration.h: Renamed from Source/WebCore/Modules/mediacapabilities/MediaConfiguration.h. * platform/mediacapabilities/MediaDecodingConfiguration.h: Renamed from Source/WebCore/Modules/mediacapabilities/MediaDecodingConfiguration.h. * platform/mediacapabilities/MediaDecodingType.h: Renamed from Source/WebCore/Modules/mediacapabilities/MediaDecodingType.h. * platform/mediacapabilities/MediaEncodingConfiguration.h: Renamed from Source/WebCore/Modules/mediacapabilities/MediaEncodingConfiguration.h. * platform/mediacapabilities/MediaEncodingType.h: Renamed from Source/WebCore/Modules/mediacapabilities/MediaEncodingType.h. * platform/mediacapabilities/MediaEngineConfiguration.cpp: Removed. * platform/mediacapabilities/MediaEngineConfiguration.h: Removed. * platform/mediacapabilities/MediaEngineConfigurationFactory.cpp: (WebCore::factories): (WebCore::MediaEngineConfigurationFactory::createDecodingConfiguration): (WebCore::MediaEngineConfigurationFactory::createEncodingConfiguration): * platform/mediacapabilities/MediaEngineConfigurationFactory.h: * platform/mediacapabilities/MediaEngineEncodingConfiguration.h: Removed. * platform/mediacapabilities/VideoConfiguration.h: Renamed from Source/WebCore/Modules/mediacapabilities/VideoConfiguration.h. * platform/mediastream/mac/DisplayCaptureSourceCocoa.h: * platform/mock/MediaEngineConfigurationFactoryMock.cpp: Added. (WebCore::canDecodeMedia): (WebCore::canSmoothlyDecodeMedia): (WebCore::canPowerEfficientlyDecodeMedia): (WebCore::canEncodeMedia): (WebCore::canSmoothlyEncodeMedia): (WebCore::canPowerEfficientlyEncodeMedia): (WebCore::MediaEngineConfigurationFactoryMock::createDecodingConfiguration): (WebCore::MediaEngineConfigurationFactoryMock::createEncodingConfiguration): * platform/mock/MediaEngineConfigurationFactoryMock.h: Renamed from Source/WebCore/platform/mediacapabilities/MediaEngineDecodingConfiguration.h. * platform/mock/MediaEngineDecodingConfigurationMock.cpp: Removed. * platform/mock/MediaEngineDecodingConfigurationMock.h: Removed. * platform/mock/MediaEngineEncodingConfigurationMock.cpp: Removed. * platform/mock/MediaEngineEncodingConfigurationMock.h: Removed. LayoutTests: * media/mediacapabilities/mediacapabilities-types-expected.txt: Canonical link: https://commits.webkit.org/204502@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@235919 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-09-11 23:18:15 +00:00
} rejected promise with TypeError: The provided value is non-finite.
Add initial DOM support for Media Capabilities https://bugs.webkit.org/show_bug.cgi?id=181064 Reviewed by Eric Carlson. Source/WebCore: Test: media/mediacapabilities/mediacapabilities-types.html Add basic, cross-platform, DOM facing type and API support for Media Capabilities API. * bindings/scripts/CodeGenerator.pm: (WK_ucfirst): * CMakeLists.txt: * DerivedSources.make: * Modules/mediacapabilities/AudioConfiguration.h: Added. * Modules/mediacapabilities/AudioConfiguration.idl: Added. * Modules/mediacapabilities/MediaCapabilities.cpp: Added. (WebCore::bucketMIMETypes): (WebCore::isValidMIMEType): (WebCore::isValidVideoConfiguration): (WebCore::isValidAudioConfiguration): (WebCore::isValidMediaConfiguration): (WebCore::MediaCapabilities::decodingInfo): (WebCore::MediaCapabilities::encodingInfo): * Modules/mediacapabilities/MediaCapabilities.h: Added. * Modules/mediacapabilities/MediaCapabilities.idl: Added. * Modules/mediacapabilities/MediaCapabilitiesInfo.h: Added. (WebCore::MediaCapabilitiesInfo::supported const): (WebCore::MediaCapabilitiesInfo::setSupported): (WebCore::MediaCapabilitiesInfo::smooth const): (WebCore::MediaCapabilitiesInfo::setSmooth): (WebCore::MediaCapabilitiesInfo::powerEfficient const): (WebCore::MediaCapabilitiesInfo::setPowerEfficient): * Modules/mediacapabilities/MediaCapabilitiesInfo.idl: Added. * Modules/mediacapabilities/MediaConfiguration.h: Added. * Modules/mediacapabilities/MediaConfiguration.idl: Added. * Modules/mediacapabilities/MediaDecodingConfiguration.h: Added. * Modules/mediacapabilities/MediaDecodingConfiguration.idl: Added. * Modules/mediacapabilities/MediaDecodingType.h: Added. * Modules/mediacapabilities/MediaDecodingType.idl: Added. * Modules/mediacapabilities/MediaEncodingConfiguration.h: Added. * Modules/mediacapabilities/MediaEncodingConfiguration.idl: Added. * Modules/mediacapabilities/MediaEncodingType.h: Added. * Modules/mediacapabilities/MediaEncodingType.idl: Added. * Modules/mediacapabilities/NavigatorMediaCapabilities.cpp: Added. (WebCore::NavigatorMediaCapabilities::NavigatorMediaCapabilities): (WebCore::NavigatorMediaCapabilities::supplementName): (WebCore::NavigatorMediaCapabilities::from): (WebCore::NavigatorMediaCapabilities::mediaCapabilities): (WebCore::NavigatorMediaCapabilities::mediaCapabilities const): * Modules/mediacapabilities/NavigatorMediaCapabilities.h: Added. * Modules/mediacapabilities/NavigatorMediaCapabilities.idl: Added. * Modules/mediacapabilities/ScreenColorGamut.h: Added. * Modules/mediacapabilities/ScreenColorGamut.idl: Added. * Modules/mediacapabilities/ScreenLuminance.h: Added. (WebCore::ScreenLuminance::min const): (WebCore::ScreenLuminance::setMin): (WebCore::ScreenLuminance::max const): (WebCore::ScreenLuminance::setMax): (WebCore::ScreenLuminance::maxAverage const): (WebCore::ScreenLuminance::setMaxAverage): * Modules/mediacapabilities/ScreenLuminance.idl: Added. * Modules/mediacapabilities/VideoConfiguration.h: Added. * Modules/mediacapabilities/VideoConfiguration.idl: Added. * Sources.txt: * WebCore.xcodeproj/project.pbxproj: * bindings/js/WebCoreBuiltinNames.h: * page/RuntimeEnabledFeatures.h: (WebCore::RuntimeEnabledFeatures::setMediaCapabilitiesEnabled): (WebCore::RuntimeEnabledFeatures::mediaCapabilitiesEnabled const): * page/Settings.yaml: Source/WebKit: Add a new preference to enable the (disabled-by-default) Media Capabilities API. * Shared/WebPreferences.yaml: * UIProcess/API/C/WKPreferences.cpp: (WKPreferencesSetMediaCapabilitiesEnabled): (WKPreferencesGetMediaCapabilitiesEnabled): * UIProcess/API/C/WKPreferencesRef.h: Source/WebKitLegacy/mac: Add a new preference to enable the (disabled-by-default) Media Capabilities API. * WebView/WebPreferenceKeysPrivate.h: * WebView/WebPreferences.mm: (+[WebPreferences initialize]): (-[WebPreferences mediaCapabilitiesEnabled]): (-[WebPreferences setMediaCapabilitiesEnabled:]): * WebView/WebPreferencesPrivate.h: * WebView/WebView.mm: (-[WebView _preferencesChanged:]): Tools: * DumpRenderTree/mac/DumpRenderTree.mm: (resetWebPreferencesToConsistentValues): * WebKitTestRunner/TestController.cpp: (WTR::TestController::resetPreferencesToConsistentValues): LayoutTests: * fast/dom/navigator-detached-no-crash-expected.txt: * media/mediacapabilities/mediacapabilities-types-expected.txt: Added. * media/mediacapabilities/mediacapabilities-types.html: Added. * platform/gtk/fast/dom/navigator-detached-no-crash-expected.txt: * platform/mac-elcapitan-wk2/fast/dom/navigator-detached-no-crash-expected.txt: * platform/mac-wk1/fast/dom/navigator-detached-no-crash-expected.txt: * platform/win/fast/dom/navigator-detached-no-crash-expected.txt: Canonical link: https://commits.webkit.org/196952@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226228 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-12-21 18:28:21 +00:00
PASS () => {
return navigator.mediaCapabilities.decodingInfo({ type: 'file', video: { contentType: 'video/mp4; codecs="avc1"', width: 640, height: 480, bitrate: 1000, framerate: "24/0" } });
[MediaCapabilities] Implement MediaEngineConfigurationFactory registration https://bugs.webkit.org/show_bug.cgi?id=189438 Reviewed by Eric Carlson. Source/WebCore: Implement a mechanism to register platform-specific MediaEngineConfigurationFactory methods, and a mechanism to iterate over those registered factories when createDecodingConfiguration() and createEncodingConfiguration() are called. The Factory has been radically simplified; the concept of MediaEngineDecodingConfiguration and MediaEngineEncodingConfiguration and its subclasess have been removed. Since the primary objects representing video and audio configurations are IDLDictionaries, the native objects are just structs full of POD types (and Strings). Since these have no dependencies on higher-level HTML concepts, they can be moved into platform/ and accessed from there. This patch also converts MediaCapabilitiesInfo to an Interface, so its implementation also can become a struct and live in platform/. The MediaEngineDecodingConfigurationMock and MediaEngineEncodingConfigurationMock have been consolidated in a single class which simply parses MediaDecodingConfiguration and MediaEncodingConifguration objects (now that they live in Platform) and return a MediaCapabilitiesInfo object (now that it does too). * Modules/mediacapabilities/MediaCapabilities.cpp: (WebCore::isValidVideoConfiguration): (WebCore::MediaCapabilities::decodingInfo): (WebCore::MediaCapabilities::encodingInfo): * Modules/mediacapabilities/MediaCapabilitiesInfo.h: Removed. * Modules/mediacapabilities/MediaCapabilitiesInfo.idl: * Modules/mediacapabilities/VideoConfiguration.idl: * Sources.txt: * WebCore.xcodeproj/project.pbxproj: * platform/MediaCapabilitiesInfo.h: Copied from Source/WebCore/Modules/mediacapabilities/MediaDecodingType.h. * platform/mediacapabilities/AudioConfiguration.h: Renamed from Source/WebCore/Modules/mediacapabilities/AudioConfiguration.h. * platform/mediacapabilities/MediaConfiguration.h: Renamed from Source/WebCore/Modules/mediacapabilities/MediaConfiguration.h. * platform/mediacapabilities/MediaDecodingConfiguration.h: Renamed from Source/WebCore/Modules/mediacapabilities/MediaDecodingConfiguration.h. * platform/mediacapabilities/MediaDecodingType.h: Renamed from Source/WebCore/Modules/mediacapabilities/MediaDecodingType.h. * platform/mediacapabilities/MediaEncodingConfiguration.h: Renamed from Source/WebCore/Modules/mediacapabilities/MediaEncodingConfiguration.h. * platform/mediacapabilities/MediaEncodingType.h: Renamed from Source/WebCore/Modules/mediacapabilities/MediaEncodingType.h. * platform/mediacapabilities/MediaEngineConfiguration.cpp: Removed. * platform/mediacapabilities/MediaEngineConfiguration.h: Removed. * platform/mediacapabilities/MediaEngineConfigurationFactory.cpp: (WebCore::factories): (WebCore::MediaEngineConfigurationFactory::createDecodingConfiguration): (WebCore::MediaEngineConfigurationFactory::createEncodingConfiguration): * platform/mediacapabilities/MediaEngineConfigurationFactory.h: * platform/mediacapabilities/MediaEngineEncodingConfiguration.h: Removed. * platform/mediacapabilities/VideoConfiguration.h: Renamed from Source/WebCore/Modules/mediacapabilities/VideoConfiguration.h. * platform/mediastream/mac/DisplayCaptureSourceCocoa.h: * platform/mock/MediaEngineConfigurationFactoryMock.cpp: Added. (WebCore::canDecodeMedia): (WebCore::canSmoothlyDecodeMedia): (WebCore::canPowerEfficientlyDecodeMedia): (WebCore::canEncodeMedia): (WebCore::canSmoothlyEncodeMedia): (WebCore::canPowerEfficientlyEncodeMedia): (WebCore::MediaEngineConfigurationFactoryMock::createDecodingConfiguration): (WebCore::MediaEngineConfigurationFactoryMock::createEncodingConfiguration): * platform/mock/MediaEngineConfigurationFactoryMock.h: Renamed from Source/WebCore/platform/mediacapabilities/MediaEngineDecodingConfiguration.h. * platform/mock/MediaEngineDecodingConfigurationMock.cpp: Removed. * platform/mock/MediaEngineDecodingConfigurationMock.h: Removed. * platform/mock/MediaEngineEncodingConfigurationMock.cpp: Removed. * platform/mock/MediaEngineEncodingConfigurationMock.h: Removed. LayoutTests: * media/mediacapabilities/mediacapabilities-types-expected.txt: Canonical link: https://commits.webkit.org/204502@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@235919 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-09-11 23:18:15 +00:00
} rejected promise with TypeError: The provided value is non-finite.
Add initial DOM support for Media Capabilities https://bugs.webkit.org/show_bug.cgi?id=181064 Reviewed by Eric Carlson. Source/WebCore: Test: media/mediacapabilities/mediacapabilities-types.html Add basic, cross-platform, DOM facing type and API support for Media Capabilities API. * bindings/scripts/CodeGenerator.pm: (WK_ucfirst): * CMakeLists.txt: * DerivedSources.make: * Modules/mediacapabilities/AudioConfiguration.h: Added. * Modules/mediacapabilities/AudioConfiguration.idl: Added. * Modules/mediacapabilities/MediaCapabilities.cpp: Added. (WebCore::bucketMIMETypes): (WebCore::isValidMIMEType): (WebCore::isValidVideoConfiguration): (WebCore::isValidAudioConfiguration): (WebCore::isValidMediaConfiguration): (WebCore::MediaCapabilities::decodingInfo): (WebCore::MediaCapabilities::encodingInfo): * Modules/mediacapabilities/MediaCapabilities.h: Added. * Modules/mediacapabilities/MediaCapabilities.idl: Added. * Modules/mediacapabilities/MediaCapabilitiesInfo.h: Added. (WebCore::MediaCapabilitiesInfo::supported const): (WebCore::MediaCapabilitiesInfo::setSupported): (WebCore::MediaCapabilitiesInfo::smooth const): (WebCore::MediaCapabilitiesInfo::setSmooth): (WebCore::MediaCapabilitiesInfo::powerEfficient const): (WebCore::MediaCapabilitiesInfo::setPowerEfficient): * Modules/mediacapabilities/MediaCapabilitiesInfo.idl: Added. * Modules/mediacapabilities/MediaConfiguration.h: Added. * Modules/mediacapabilities/MediaConfiguration.idl: Added. * Modules/mediacapabilities/MediaDecodingConfiguration.h: Added. * Modules/mediacapabilities/MediaDecodingConfiguration.idl: Added. * Modules/mediacapabilities/MediaDecodingType.h: Added. * Modules/mediacapabilities/MediaDecodingType.idl: Added. * Modules/mediacapabilities/MediaEncodingConfiguration.h: Added. * Modules/mediacapabilities/MediaEncodingConfiguration.idl: Added. * Modules/mediacapabilities/MediaEncodingType.h: Added. * Modules/mediacapabilities/MediaEncodingType.idl: Added. * Modules/mediacapabilities/NavigatorMediaCapabilities.cpp: Added. (WebCore::NavigatorMediaCapabilities::NavigatorMediaCapabilities): (WebCore::NavigatorMediaCapabilities::supplementName): (WebCore::NavigatorMediaCapabilities::from): (WebCore::NavigatorMediaCapabilities::mediaCapabilities): (WebCore::NavigatorMediaCapabilities::mediaCapabilities const): * Modules/mediacapabilities/NavigatorMediaCapabilities.h: Added. * Modules/mediacapabilities/NavigatorMediaCapabilities.idl: Added. * Modules/mediacapabilities/ScreenColorGamut.h: Added. * Modules/mediacapabilities/ScreenColorGamut.idl: Added. * Modules/mediacapabilities/ScreenLuminance.h: Added. (WebCore::ScreenLuminance::min const): (WebCore::ScreenLuminance::setMin): (WebCore::ScreenLuminance::max const): (WebCore::ScreenLuminance::setMax): (WebCore::ScreenLuminance::maxAverage const): (WebCore::ScreenLuminance::setMaxAverage): * Modules/mediacapabilities/ScreenLuminance.idl: Added. * Modules/mediacapabilities/VideoConfiguration.h: Added. * Modules/mediacapabilities/VideoConfiguration.idl: Added. * Sources.txt: * WebCore.xcodeproj/project.pbxproj: * bindings/js/WebCoreBuiltinNames.h: * page/RuntimeEnabledFeatures.h: (WebCore::RuntimeEnabledFeatures::setMediaCapabilitiesEnabled): (WebCore::RuntimeEnabledFeatures::mediaCapabilitiesEnabled const): * page/Settings.yaml: Source/WebKit: Add a new preference to enable the (disabled-by-default) Media Capabilities API. * Shared/WebPreferences.yaml: * UIProcess/API/C/WKPreferences.cpp: (WKPreferencesSetMediaCapabilitiesEnabled): (WKPreferencesGetMediaCapabilitiesEnabled): * UIProcess/API/C/WKPreferencesRef.h: Source/WebKitLegacy/mac: Add a new preference to enable the (disabled-by-default) Media Capabilities API. * WebView/WebPreferenceKeysPrivate.h: * WebView/WebPreferences.mm: (+[WebPreferences initialize]): (-[WebPreferences mediaCapabilitiesEnabled]): (-[WebPreferences setMediaCapabilitiesEnabled:]): * WebView/WebPreferencesPrivate.h: * WebView/WebView.mm: (-[WebView _preferencesChanged:]): Tools: * DumpRenderTree/mac/DumpRenderTree.mm: (resetWebPreferencesToConsistentValues): * WebKitTestRunner/TestController.cpp: (WTR::TestController::resetPreferencesToConsistentValues): LayoutTests: * fast/dom/navigator-detached-no-crash-expected.txt: * media/mediacapabilities/mediacapabilities-types-expected.txt: Added. * media/mediacapabilities/mediacapabilities-types.html: Added. * platform/gtk/fast/dom/navigator-detached-no-crash-expected.txt: * platform/mac-elcapitan-wk2/fast/dom/navigator-detached-no-crash-expected.txt: * platform/mac-wk1/fast/dom/navigator-detached-no-crash-expected.txt: * platform/win/fast/dom/navigator-detached-no-crash-expected.txt: Canonical link: https://commits.webkit.org/196952@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226228 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-12-21 18:28:21 +00:00
PASS () => {
return navigator.mediaCapabilities.decodingInfo({ type: 'invalid', video: { contentType: 'video/mp4; codecs="avc1"', width: 640, height: 480, bitrate: 1000, framerate: 24 } });
} rejected promise with TypeError: Type error.
PASS () => {
return navigator.mediaCapabilities.encodingInfo({ type: 'record' });
} rejected promise with TypeError: Type error.
PASS () => {
return navigator.mediaCapabilities.encodingInfo({ type: 'record', audio: { } });
} rejected promise with TypeError: Member AudioConfiguration.contentType is required and must be an instance of DOMString.
PASS () => {
return navigator.mediaCapabilities.decodingInfo({ type: 'record', audio: { } });
} rejected promise with TypeError: Member AudioConfiguration.contentType is required and must be an instance of DOMString.
PASS () => {
return navigator.mediaCapabilities.decodingInfo({ type: 'record', audio: { contentType: 'video/mp4; codecs="avc1"' } });
} rejected promise with TypeError: Type error.
PASS () => {
return navigator.mediaCapabilities.decodingInfo({ type: 'record', video: { } });
} rejected promise with TypeError: Member VideoConfiguration.bitrate is required and must be an instance of unsigned long long.
PASS () => {
return navigator.mediaCapabilities.decodingInfo({ type: 'record', video: { contentType: 'audio/mp3', width: 640, height: 480, bitrate: 1000, framerate: 24 } });
} rejected promise with TypeError: Type error.
PASS () => {
return navigator.mediaCapabilities.decodingInfo({ type: 'record', video: { contentType: 'video/mp4; codecs="avc1"', height: 480, bitrate: 1000, framerate: 24 } });
} rejected promise with TypeError: Member VideoConfiguration.width is required and must be an instance of unsigned long.
PASS () => {
return navigator.mediaCapabilities.decodingInfo({ type: 'record', video: { contentType: 'video/mp4; codecs="avc1,vp9"', width:640, height: 480, bitrate: 1000, framerate: 24 } });
} rejected promise with TypeError: Type error.
PASS () => {
return navigator.mediaCapabilities.decodingInfo({ type: 'record', video: { contentType: 'video/mp4', width:640, height: 480, bitrate: 1000, framerate: 24 } });
} rejected promise with TypeError: Type error.
PASS () => {
return navigator.mediaCapabilities.decodingInfo({ type: 'record', video: { contentType: 'video/mp4; codecs="avc1"', width: 640, height: 480, bitrate: 1000, framerate: 0 } });
} rejected promise with TypeError: Type error.
PASS () => {
return navigator.mediaCapabilities.decodingInfo({ type: 'record', video: { contentType: 'video/mp4; codecs="avc1"', width: 640, height: 480, bitrate: 1000, framerate: "24/a" } });
[MediaCapabilities] Implement MediaEngineConfigurationFactory registration https://bugs.webkit.org/show_bug.cgi?id=189438 Reviewed by Eric Carlson. Source/WebCore: Implement a mechanism to register platform-specific MediaEngineConfigurationFactory methods, and a mechanism to iterate over those registered factories when createDecodingConfiguration() and createEncodingConfiguration() are called. The Factory has been radically simplified; the concept of MediaEngineDecodingConfiguration and MediaEngineEncodingConfiguration and its subclasess have been removed. Since the primary objects representing video and audio configurations are IDLDictionaries, the native objects are just structs full of POD types (and Strings). Since these have no dependencies on higher-level HTML concepts, they can be moved into platform/ and accessed from there. This patch also converts MediaCapabilitiesInfo to an Interface, so its implementation also can become a struct and live in platform/. The MediaEngineDecodingConfigurationMock and MediaEngineEncodingConfigurationMock have been consolidated in a single class which simply parses MediaDecodingConfiguration and MediaEncodingConifguration objects (now that they live in Platform) and return a MediaCapabilitiesInfo object (now that it does too). * Modules/mediacapabilities/MediaCapabilities.cpp: (WebCore::isValidVideoConfiguration): (WebCore::MediaCapabilities::decodingInfo): (WebCore::MediaCapabilities::encodingInfo): * Modules/mediacapabilities/MediaCapabilitiesInfo.h: Removed. * Modules/mediacapabilities/MediaCapabilitiesInfo.idl: * Modules/mediacapabilities/VideoConfiguration.idl: * Sources.txt: * WebCore.xcodeproj/project.pbxproj: * platform/MediaCapabilitiesInfo.h: Copied from Source/WebCore/Modules/mediacapabilities/MediaDecodingType.h. * platform/mediacapabilities/AudioConfiguration.h: Renamed from Source/WebCore/Modules/mediacapabilities/AudioConfiguration.h. * platform/mediacapabilities/MediaConfiguration.h: Renamed from Source/WebCore/Modules/mediacapabilities/MediaConfiguration.h. * platform/mediacapabilities/MediaDecodingConfiguration.h: Renamed from Source/WebCore/Modules/mediacapabilities/MediaDecodingConfiguration.h. * platform/mediacapabilities/MediaDecodingType.h: Renamed from Source/WebCore/Modules/mediacapabilities/MediaDecodingType.h. * platform/mediacapabilities/MediaEncodingConfiguration.h: Renamed from Source/WebCore/Modules/mediacapabilities/MediaEncodingConfiguration.h. * platform/mediacapabilities/MediaEncodingType.h: Renamed from Source/WebCore/Modules/mediacapabilities/MediaEncodingType.h. * platform/mediacapabilities/MediaEngineConfiguration.cpp: Removed. * platform/mediacapabilities/MediaEngineConfiguration.h: Removed. * platform/mediacapabilities/MediaEngineConfigurationFactory.cpp: (WebCore::factories): (WebCore::MediaEngineConfigurationFactory::createDecodingConfiguration): (WebCore::MediaEngineConfigurationFactory::createEncodingConfiguration): * platform/mediacapabilities/MediaEngineConfigurationFactory.h: * platform/mediacapabilities/MediaEngineEncodingConfiguration.h: Removed. * platform/mediacapabilities/VideoConfiguration.h: Renamed from Source/WebCore/Modules/mediacapabilities/VideoConfiguration.h. * platform/mediastream/mac/DisplayCaptureSourceCocoa.h: * platform/mock/MediaEngineConfigurationFactoryMock.cpp: Added. (WebCore::canDecodeMedia): (WebCore::canSmoothlyDecodeMedia): (WebCore::canPowerEfficientlyDecodeMedia): (WebCore::canEncodeMedia): (WebCore::canSmoothlyEncodeMedia): (WebCore::canPowerEfficientlyEncodeMedia): (WebCore::MediaEngineConfigurationFactoryMock::createDecodingConfiguration): (WebCore::MediaEngineConfigurationFactoryMock::createEncodingConfiguration): * platform/mock/MediaEngineConfigurationFactoryMock.h: Renamed from Source/WebCore/platform/mediacapabilities/MediaEngineDecodingConfiguration.h. * platform/mock/MediaEngineDecodingConfigurationMock.cpp: Removed. * platform/mock/MediaEngineDecodingConfigurationMock.h: Removed. * platform/mock/MediaEngineEncodingConfigurationMock.cpp: Removed. * platform/mock/MediaEngineEncodingConfigurationMock.h: Removed. LayoutTests: * media/mediacapabilities/mediacapabilities-types-expected.txt: Canonical link: https://commits.webkit.org/204502@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@235919 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-09-11 23:18:15 +00:00
} rejected promise with TypeError: The provided value is non-finite.
Add initial DOM support for Media Capabilities https://bugs.webkit.org/show_bug.cgi?id=181064 Reviewed by Eric Carlson. Source/WebCore: Test: media/mediacapabilities/mediacapabilities-types.html Add basic, cross-platform, DOM facing type and API support for Media Capabilities API. * bindings/scripts/CodeGenerator.pm: (WK_ucfirst): * CMakeLists.txt: * DerivedSources.make: * Modules/mediacapabilities/AudioConfiguration.h: Added. * Modules/mediacapabilities/AudioConfiguration.idl: Added. * Modules/mediacapabilities/MediaCapabilities.cpp: Added. (WebCore::bucketMIMETypes): (WebCore::isValidMIMEType): (WebCore::isValidVideoConfiguration): (WebCore::isValidAudioConfiguration): (WebCore::isValidMediaConfiguration): (WebCore::MediaCapabilities::decodingInfo): (WebCore::MediaCapabilities::encodingInfo): * Modules/mediacapabilities/MediaCapabilities.h: Added. * Modules/mediacapabilities/MediaCapabilities.idl: Added. * Modules/mediacapabilities/MediaCapabilitiesInfo.h: Added. (WebCore::MediaCapabilitiesInfo::supported const): (WebCore::MediaCapabilitiesInfo::setSupported): (WebCore::MediaCapabilitiesInfo::smooth const): (WebCore::MediaCapabilitiesInfo::setSmooth): (WebCore::MediaCapabilitiesInfo::powerEfficient const): (WebCore::MediaCapabilitiesInfo::setPowerEfficient): * Modules/mediacapabilities/MediaCapabilitiesInfo.idl: Added. * Modules/mediacapabilities/MediaConfiguration.h: Added. * Modules/mediacapabilities/MediaConfiguration.idl: Added. * Modules/mediacapabilities/MediaDecodingConfiguration.h: Added. * Modules/mediacapabilities/MediaDecodingConfiguration.idl: Added. * Modules/mediacapabilities/MediaDecodingType.h: Added. * Modules/mediacapabilities/MediaDecodingType.idl: Added. * Modules/mediacapabilities/MediaEncodingConfiguration.h: Added. * Modules/mediacapabilities/MediaEncodingConfiguration.idl: Added. * Modules/mediacapabilities/MediaEncodingType.h: Added. * Modules/mediacapabilities/MediaEncodingType.idl: Added. * Modules/mediacapabilities/NavigatorMediaCapabilities.cpp: Added. (WebCore::NavigatorMediaCapabilities::NavigatorMediaCapabilities): (WebCore::NavigatorMediaCapabilities::supplementName): (WebCore::NavigatorMediaCapabilities::from): (WebCore::NavigatorMediaCapabilities::mediaCapabilities): (WebCore::NavigatorMediaCapabilities::mediaCapabilities const): * Modules/mediacapabilities/NavigatorMediaCapabilities.h: Added. * Modules/mediacapabilities/NavigatorMediaCapabilities.idl: Added. * Modules/mediacapabilities/ScreenColorGamut.h: Added. * Modules/mediacapabilities/ScreenColorGamut.idl: Added. * Modules/mediacapabilities/ScreenLuminance.h: Added. (WebCore::ScreenLuminance::min const): (WebCore::ScreenLuminance::setMin): (WebCore::ScreenLuminance::max const): (WebCore::ScreenLuminance::setMax): (WebCore::ScreenLuminance::maxAverage const): (WebCore::ScreenLuminance::setMaxAverage): * Modules/mediacapabilities/ScreenLuminance.idl: Added. * Modules/mediacapabilities/VideoConfiguration.h: Added. * Modules/mediacapabilities/VideoConfiguration.idl: Added. * Sources.txt: * WebCore.xcodeproj/project.pbxproj: * bindings/js/WebCoreBuiltinNames.h: * page/RuntimeEnabledFeatures.h: (WebCore::RuntimeEnabledFeatures::setMediaCapabilitiesEnabled): (WebCore::RuntimeEnabledFeatures::mediaCapabilitiesEnabled const): * page/Settings.yaml: Source/WebKit: Add a new preference to enable the (disabled-by-default) Media Capabilities API. * Shared/WebPreferences.yaml: * UIProcess/API/C/WKPreferences.cpp: (WKPreferencesSetMediaCapabilitiesEnabled): (WKPreferencesGetMediaCapabilitiesEnabled): * UIProcess/API/C/WKPreferencesRef.h: Source/WebKitLegacy/mac: Add a new preference to enable the (disabled-by-default) Media Capabilities API. * WebView/WebPreferenceKeysPrivate.h: * WebView/WebPreferences.mm: (+[WebPreferences initialize]): (-[WebPreferences mediaCapabilitiesEnabled]): (-[WebPreferences setMediaCapabilitiesEnabled:]): * WebView/WebPreferencesPrivate.h: * WebView/WebView.mm: (-[WebView _preferencesChanged:]): Tools: * DumpRenderTree/mac/DumpRenderTree.mm: (resetWebPreferencesToConsistentValues): * WebKitTestRunner/TestController.cpp: (WTR::TestController::resetPreferencesToConsistentValues): LayoutTests: * fast/dom/navigator-detached-no-crash-expected.txt: * media/mediacapabilities/mediacapabilities-types-expected.txt: Added. * media/mediacapabilities/mediacapabilities-types.html: Added. * platform/gtk/fast/dom/navigator-detached-no-crash-expected.txt: * platform/mac-elcapitan-wk2/fast/dom/navigator-detached-no-crash-expected.txt: * platform/mac-wk1/fast/dom/navigator-detached-no-crash-expected.txt: * platform/win/fast/dom/navigator-detached-no-crash-expected.txt: Canonical link: https://commits.webkit.org/196952@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226228 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-12-21 18:28:21 +00:00
PASS () => {
return navigator.mediaCapabilities.decodingInfo({ type: 'record', video: { contentType: 'video/mp4; codecs="avc1"', width: 640, height: 480, bitrate: 1000, framerate: "24/-1" } });
[MediaCapabilities] Implement MediaEngineConfigurationFactory registration https://bugs.webkit.org/show_bug.cgi?id=189438 Reviewed by Eric Carlson. Source/WebCore: Implement a mechanism to register platform-specific MediaEngineConfigurationFactory methods, and a mechanism to iterate over those registered factories when createDecodingConfiguration() and createEncodingConfiguration() are called. The Factory has been radically simplified; the concept of MediaEngineDecodingConfiguration and MediaEngineEncodingConfiguration and its subclasess have been removed. Since the primary objects representing video and audio configurations are IDLDictionaries, the native objects are just structs full of POD types (and Strings). Since these have no dependencies on higher-level HTML concepts, they can be moved into platform/ and accessed from there. This patch also converts MediaCapabilitiesInfo to an Interface, so its implementation also can become a struct and live in platform/. The MediaEngineDecodingConfigurationMock and MediaEngineEncodingConfigurationMock have been consolidated in a single class which simply parses MediaDecodingConfiguration and MediaEncodingConifguration objects (now that they live in Platform) and return a MediaCapabilitiesInfo object (now that it does too). * Modules/mediacapabilities/MediaCapabilities.cpp: (WebCore::isValidVideoConfiguration): (WebCore::MediaCapabilities::decodingInfo): (WebCore::MediaCapabilities::encodingInfo): * Modules/mediacapabilities/MediaCapabilitiesInfo.h: Removed. * Modules/mediacapabilities/MediaCapabilitiesInfo.idl: * Modules/mediacapabilities/VideoConfiguration.idl: * Sources.txt: * WebCore.xcodeproj/project.pbxproj: * platform/MediaCapabilitiesInfo.h: Copied from Source/WebCore/Modules/mediacapabilities/MediaDecodingType.h. * platform/mediacapabilities/AudioConfiguration.h: Renamed from Source/WebCore/Modules/mediacapabilities/AudioConfiguration.h. * platform/mediacapabilities/MediaConfiguration.h: Renamed from Source/WebCore/Modules/mediacapabilities/MediaConfiguration.h. * platform/mediacapabilities/MediaDecodingConfiguration.h: Renamed from Source/WebCore/Modules/mediacapabilities/MediaDecodingConfiguration.h. * platform/mediacapabilities/MediaDecodingType.h: Renamed from Source/WebCore/Modules/mediacapabilities/MediaDecodingType.h. * platform/mediacapabilities/MediaEncodingConfiguration.h: Renamed from Source/WebCore/Modules/mediacapabilities/MediaEncodingConfiguration.h. * platform/mediacapabilities/MediaEncodingType.h: Renamed from Source/WebCore/Modules/mediacapabilities/MediaEncodingType.h. * platform/mediacapabilities/MediaEngineConfiguration.cpp: Removed. * platform/mediacapabilities/MediaEngineConfiguration.h: Removed. * platform/mediacapabilities/MediaEngineConfigurationFactory.cpp: (WebCore::factories): (WebCore::MediaEngineConfigurationFactory::createDecodingConfiguration): (WebCore::MediaEngineConfigurationFactory::createEncodingConfiguration): * platform/mediacapabilities/MediaEngineConfigurationFactory.h: * platform/mediacapabilities/MediaEngineEncodingConfiguration.h: Removed. * platform/mediacapabilities/VideoConfiguration.h: Renamed from Source/WebCore/Modules/mediacapabilities/VideoConfiguration.h. * platform/mediastream/mac/DisplayCaptureSourceCocoa.h: * platform/mock/MediaEngineConfigurationFactoryMock.cpp: Added. (WebCore::canDecodeMedia): (WebCore::canSmoothlyDecodeMedia): (WebCore::canPowerEfficientlyDecodeMedia): (WebCore::canEncodeMedia): (WebCore::canSmoothlyEncodeMedia): (WebCore::canPowerEfficientlyEncodeMedia): (WebCore::MediaEngineConfigurationFactoryMock::createDecodingConfiguration): (WebCore::MediaEngineConfigurationFactoryMock::createEncodingConfiguration): * platform/mock/MediaEngineConfigurationFactoryMock.h: Renamed from Source/WebCore/platform/mediacapabilities/MediaEngineDecodingConfiguration.h. * platform/mock/MediaEngineDecodingConfigurationMock.cpp: Removed. * platform/mock/MediaEngineDecodingConfigurationMock.h: Removed. * platform/mock/MediaEngineEncodingConfigurationMock.cpp: Removed. * platform/mock/MediaEngineEncodingConfigurationMock.h: Removed. LayoutTests: * media/mediacapabilities/mediacapabilities-types-expected.txt: Canonical link: https://commits.webkit.org/204502@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@235919 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-09-11 23:18:15 +00:00
} rejected promise with TypeError: The provided value is non-finite.
Add initial DOM support for Media Capabilities https://bugs.webkit.org/show_bug.cgi?id=181064 Reviewed by Eric Carlson. Source/WebCore: Test: media/mediacapabilities/mediacapabilities-types.html Add basic, cross-platform, DOM facing type and API support for Media Capabilities API. * bindings/scripts/CodeGenerator.pm: (WK_ucfirst): * CMakeLists.txt: * DerivedSources.make: * Modules/mediacapabilities/AudioConfiguration.h: Added. * Modules/mediacapabilities/AudioConfiguration.idl: Added. * Modules/mediacapabilities/MediaCapabilities.cpp: Added. (WebCore::bucketMIMETypes): (WebCore::isValidMIMEType): (WebCore::isValidVideoConfiguration): (WebCore::isValidAudioConfiguration): (WebCore::isValidMediaConfiguration): (WebCore::MediaCapabilities::decodingInfo): (WebCore::MediaCapabilities::encodingInfo): * Modules/mediacapabilities/MediaCapabilities.h: Added. * Modules/mediacapabilities/MediaCapabilities.idl: Added. * Modules/mediacapabilities/MediaCapabilitiesInfo.h: Added. (WebCore::MediaCapabilitiesInfo::supported const): (WebCore::MediaCapabilitiesInfo::setSupported): (WebCore::MediaCapabilitiesInfo::smooth const): (WebCore::MediaCapabilitiesInfo::setSmooth): (WebCore::MediaCapabilitiesInfo::powerEfficient const): (WebCore::MediaCapabilitiesInfo::setPowerEfficient): * Modules/mediacapabilities/MediaCapabilitiesInfo.idl: Added. * Modules/mediacapabilities/MediaConfiguration.h: Added. * Modules/mediacapabilities/MediaConfiguration.idl: Added. * Modules/mediacapabilities/MediaDecodingConfiguration.h: Added. * Modules/mediacapabilities/MediaDecodingConfiguration.idl: Added. * Modules/mediacapabilities/MediaDecodingType.h: Added. * Modules/mediacapabilities/MediaDecodingType.idl: Added. * Modules/mediacapabilities/MediaEncodingConfiguration.h: Added. * Modules/mediacapabilities/MediaEncodingConfiguration.idl: Added. * Modules/mediacapabilities/MediaEncodingType.h: Added. * Modules/mediacapabilities/MediaEncodingType.idl: Added. * Modules/mediacapabilities/NavigatorMediaCapabilities.cpp: Added. (WebCore::NavigatorMediaCapabilities::NavigatorMediaCapabilities): (WebCore::NavigatorMediaCapabilities::supplementName): (WebCore::NavigatorMediaCapabilities::from): (WebCore::NavigatorMediaCapabilities::mediaCapabilities): (WebCore::NavigatorMediaCapabilities::mediaCapabilities const): * Modules/mediacapabilities/NavigatorMediaCapabilities.h: Added. * Modules/mediacapabilities/NavigatorMediaCapabilities.idl: Added. * Modules/mediacapabilities/ScreenColorGamut.h: Added. * Modules/mediacapabilities/ScreenColorGamut.idl: Added. * Modules/mediacapabilities/ScreenLuminance.h: Added. (WebCore::ScreenLuminance::min const): (WebCore::ScreenLuminance::setMin): (WebCore::ScreenLuminance::max const): (WebCore::ScreenLuminance::setMax): (WebCore::ScreenLuminance::maxAverage const): (WebCore::ScreenLuminance::setMaxAverage): * Modules/mediacapabilities/ScreenLuminance.idl: Added. * Modules/mediacapabilities/VideoConfiguration.h: Added. * Modules/mediacapabilities/VideoConfiguration.idl: Added. * Sources.txt: * WebCore.xcodeproj/project.pbxproj: * bindings/js/WebCoreBuiltinNames.h: * page/RuntimeEnabledFeatures.h: (WebCore::RuntimeEnabledFeatures::setMediaCapabilitiesEnabled): (WebCore::RuntimeEnabledFeatures::mediaCapabilitiesEnabled const): * page/Settings.yaml: Source/WebKit: Add a new preference to enable the (disabled-by-default) Media Capabilities API. * Shared/WebPreferences.yaml: * UIProcess/API/C/WKPreferences.cpp: (WKPreferencesSetMediaCapabilitiesEnabled): (WKPreferencesGetMediaCapabilitiesEnabled): * UIProcess/API/C/WKPreferencesRef.h: Source/WebKitLegacy/mac: Add a new preference to enable the (disabled-by-default) Media Capabilities API. * WebView/WebPreferenceKeysPrivate.h: * WebView/WebPreferences.mm: (+[WebPreferences initialize]): (-[WebPreferences mediaCapabilitiesEnabled]): (-[WebPreferences setMediaCapabilitiesEnabled:]): * WebView/WebPreferencesPrivate.h: * WebView/WebView.mm: (-[WebView _preferencesChanged:]): Tools: * DumpRenderTree/mac/DumpRenderTree.mm: (resetWebPreferencesToConsistentValues): * WebKitTestRunner/TestController.cpp: (WTR::TestController::resetPreferencesToConsistentValues): LayoutTests: * fast/dom/navigator-detached-no-crash-expected.txt: * media/mediacapabilities/mediacapabilities-types-expected.txt: Added. * media/mediacapabilities/mediacapabilities-types.html: Added. * platform/gtk/fast/dom/navigator-detached-no-crash-expected.txt: * platform/mac-elcapitan-wk2/fast/dom/navigator-detached-no-crash-expected.txt: * platform/mac-wk1/fast/dom/navigator-detached-no-crash-expected.txt: * platform/win/fast/dom/navigator-detached-no-crash-expected.txt: Canonical link: https://commits.webkit.org/196952@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@226228 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2017-12-21 18:28:21 +00:00
PASS () => {
return navigator.mediaCapabilities.decodingInfo({ type: 'invalid', video: { contentType: 'video/mp4; codecs="avc1"', width: 640, height: 480, bitrate: 1000, framerate: 24 } });
} rejected promise with TypeError: Type error.
PASS successfullyParsed is true
TEST COMPLETE