Source/JavaScriptCore/Configurations/FeatureDefines.xcconfig

@@ENABLE_FULLSCREEN_API_iphonesimulator = $(ENABLE_FULLSCREEN_API$(WK_IOS_12));
154154ENABLE_FULLSCREEN_API_IOS_SINCE_12 = ENABLE_FULLSCREEN_API;
155155ENABLE_FULLSCREEN_API_macosx = ENABLE_FULLSCREEN_API;
156156
 157ENABLE_PICTUREINPICTURE_API = ENABLE_PICTUREINPICTURE_API;
 158//ENABLE_PICTUREINPICTURE_API = $(ENABLE_PICTUREINPICTURE_API_$(WK_PLATFORM_NAME));
 159//ENABLE_PICTUREINPICTURE_API_iphoneos = $(ENABLE_PICTUREINPICTURE_API$(WK_IOS_12));
 160//ENABLE_PICTUREINPICTURE_API_iphonesimulator = $(ENABLE_PICTUREINPICTURE_API$(WK_IOS_12));
 161//ENABLE_PICTUREINPICTURE_API_IOS_SINCE_12 = ENABLE_PICTUREINPICTURE_API;
 162//ENABLE_PICTUREINPICTURE_API_macosx = ENABLE_PICTUREINPICTURE_API;
 163
157164ENABLE_GAMEPAD = $(ENABLE_GAMEPAD_$(WK_PLATFORM_NAME));
158165ENABLE_GAMEPAD_iphoneos = ENABLE_GAMEPAD;
159166ENABLE_GAMEPAD_iosmac = ENABLE_GAMEPAD;

@@ENABLE_WIRELESS_PLAYBACK_TARGET = ENABLE_WIRELESS_PLAYBACK_TARGET;
374381
375382ENABLE_XSLT = ENABLE_XSLT;
376383
377 FEATURE_DEFINES = $(ENABLE_3D_TRANSFORMS) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_APPLE_PAY) $(ENABLE_APPLE_PAY_SESSION_V3) $(ENABLE_APPLE_PAY_SESSION_V4) $(ENABLE_APPLICATION_MANIFEST) $(ENABLE_ATTACHMENT_ELEMENT) $(ENABLE_AVF_CAPTIONS) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CONTENT_FILTERING) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS_ANIMATIONS_LEVEL_2) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_SCROLL_SNAP) $(ENABLE_CSS_SELECTORS_LEVEL4) $(ENABLE_CSS_TRAILING_WORD) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATA_INTERACTION) $(ENABLE_DATACUE_VALUE) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DRAG_SUPPORT) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_EXPERIMENTAL_FEATURES) $(ENABLE_FAST_JIT_PERMISSIONS) $(ENABLE_FILTERS_LEVEL_2) $(ENABLE_FTL_JIT) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDEXED_DATABASE_IN_WORKERS) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_INTERSECTION_OBSERVER) $(ENABLE_INTL) $(ENABLE_IOS_GESTURE_EVENTS) $(ENABLE_IOS_TOUCH_EVENTS) $(ENABLE_JIT) $(ENABLE_JS_ASYNC_ITERATION) $(ENABLE_KEYBOARD_CODE_ATTRIBUTE) $(ENABLE_KEYBOARD_KEY_ATTRIBUTE) $(ENABLE_LAYOUT_FORMATTING_CONTEXT) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_CUSTOM_PROTOCOL_MANAGER) $(ENABLE_LEGACY_ENCRYPTED_MEDIA) $(ENABLE_LETTERPRESS) $(ENABLE_MAC_GESTURE_EVENTS) $(ENABLE_MAC_VIDEO_TOOLBOX) $(ENABLE_MATHML) $(ENABLE_MEDIA_CAPTURE) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SESSION) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_MEDIA_STREAM) $(ENABLE_METER_ELEMENT) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NAVIGATOR_STANDALONE) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAYMENT_REQUEST) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_POINTER_LOCK) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_RESOURCE_USAGE) $(ENABLE_RUBBER_BANDING) $(ENABLE_SERVICE_CONTROLS) $(ENABLE_SERVICE_WORKER) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_STREAMS_API) $(ENABLE_SUBTLE_CRYPTO) $(ENABLE_SVG_FONTS) $(ENABLE_TELEPHONE_NUMBER_DETECTION) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_USER_MESSAGE_HANDLERS) $(ENABLE_USERSELECT_ALL) $(ENABLE_VARIATION_FONTS) $(ENABLE_VIDEO) $(ENABLE_VIDEO_PRESENTATION_MODE) $(ENABLE_VIDEO_TRACK) $(ENABLE_VIDEO_USES_ELEMENT_FULLSCREEN) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_AUTHN) $(ENABLE_WEB_RTC) $(ENABLE_WEBASSEMBLY) $(ENABLE_WEBASSEMBLY_STREAMING_API) $(ENABLE_WEBGL) $(ENABLE_WEBGL2) $(ENABLE_WEBGPU) $(ENABLE_WIRELESS_PLAYBACK_TARGET) $(ENABLE_XSLT);
 384FEATURE_DEFINES = $(ENABLE_3D_TRANSFORMS) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_APPLE_PAY) $(ENABLE_APPLE_PAY_SESSION_V3) $(ENABLE_APPLE_PAY_SESSION_V4) $(ENABLE_APPLICATION_MANIFEST) $(ENABLE_ATTACHMENT_ELEMENT) $(ENABLE_AVF_CAPTIONS) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CONTENT_FILTERING) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS_ANIMATIONS_LEVEL_2) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_SCROLL_SNAP) $(ENABLE_CSS_SELECTORS_LEVEL4) $(ENABLE_CSS_TRAILING_WORD) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATA_INTERACTION) $(ENABLE_DATACUE_VALUE) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DRAG_SUPPORT) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_EXPERIMENTAL_FEATURES) $(ENABLE_FAST_JIT_PERMISSIONS) $(ENABLE_FILTERS_LEVEL_2) $(ENABLE_FTL_JIT) $(ENABLE_FULLSCREEN_API) $(ENABLE_PICTUREINPICTURE_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDEXED_DATABASE_IN_WORKERS) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_INTERSECTION_OBSERVER) $(ENABLE_INTL) $(ENABLE_IOS_GESTURE_EVENTS) $(ENABLE_IOS_TOUCH_EVENTS) $(ENABLE_JIT) $(ENABLE_JS_ASYNC_ITERATION) $(ENABLE_KEYBOARD_CODE_ATTRIBUTE) $(ENABLE_KEYBOARD_KEY_ATTRIBUTE) $(ENABLE_LAYOUT_FORMATTING_CONTEXT) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_CUSTOM_PROTOCOL_MANAGER) $(ENABLE_LEGACY_ENCRYPTED_MEDIA) $(ENABLE_LETTERPRESS) $(ENABLE_MAC_GESTURE_EVENTS) $(ENABLE_MAC_VIDEO_TOOLBOX) $(ENABLE_MATHML) $(ENABLE_MEDIA_CAPTURE) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SESSION) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_MEDIA_STREAM) $(ENABLE_METER_ELEMENT) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NAVIGATOR_STANDALONE) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAYMENT_REQUEST) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_POINTER_LOCK) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_RESOURCE_USAGE) $(ENABLE_RUBBER_BANDING) $(ENABLE_SERVICE_CONTROLS) $(ENABLE_SERVICE_WORKER) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_STREAMS_API) $(ENABLE_SUBTLE_CRYPTO) $(ENABLE_SVG_FONTS) $(ENABLE_TELEPHONE_NUMBER_DETECTION) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_USER_MESSAGE_HANDLERS) $(ENABLE_USERSELECT_ALL) $(ENABLE_VARIATION_FONTS) $(ENABLE_VIDEO) $(ENABLE_VIDEO_PRESENTATION_MODE) $(ENABLE_VIDEO_TRACK) $(ENABLE_VIDEO_USES_ELEMENT_FULLSCREEN) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_AUTHN) $(ENABLE_WEB_RTC) $(ENABLE_WEBASSEMBLY) $(ENABLE_WEBASSEMBLY_STREAMING_API) $(ENABLE_WEBGL) $(ENABLE_WEBGL2) $(ENABLE_WEBGPU) $(ENABLE_WIRELESS_PLAYBACK_TARGET) $(ENABLE_XSLT);

Source/WebCore/Configurations/FeatureDefines.xcconfig

@@ENABLE_FULLSCREEN_API_iphonesimulator = $(ENABLE_FULLSCREEN_API$(WK_IOS_12));
154154ENABLE_FULLSCREEN_API_IOS_SINCE_12 = ENABLE_FULLSCREEN_API;
155155ENABLE_FULLSCREEN_API_macosx = ENABLE_FULLSCREEN_API;
156156
 157ENABLE_PICTUREINPICTURE_API = ENABLE_PICTUREINPICTURE_API;
 158//ENABLE_PICTUREINPICTURE_API = $(ENABLE_PICTUREINPICTURE_API_$(WK_PLATFORM_NAME));
 159//ENABLE_PICTUREINPICTURE_API_iphoneos = $(ENABLE_PICTUREINPICTURE_API$(WK_IOS_12));
 160//ENABLE_PICTUREINPICTURE_API_iphonesimulator = $(ENABLE_PICTUREINPICTURE_API$(WK_IOS_12));
 161//ENABLE_PICTUREINPICTURE_API_IOS_SINCE_12 = ENABLE_PICTUREINPICTURE_API;
 162//ENABLE_PICTUREINPICTURE_API_macosx = ENABLE_PICTUREINPICTURE_API;
 163
157164ENABLE_GAMEPAD = $(ENABLE_GAMEPAD_$(WK_PLATFORM_NAME));
158165ENABLE_GAMEPAD_iphoneos = ENABLE_GAMEPAD;
159166ENABLE_GAMEPAD_iosmac = ENABLE_GAMEPAD;

@@ENABLE_WIRELESS_PLAYBACK_TARGET = ENABLE_WIRELESS_PLAYBACK_TARGET;
374381
375382ENABLE_XSLT = ENABLE_XSLT;
376383
377 FEATURE_DEFINES = $(ENABLE_3D_TRANSFORMS) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_APPLE_PAY) $(ENABLE_APPLE_PAY_SESSION_V3) $(ENABLE_APPLE_PAY_SESSION_V4) $(ENABLE_APPLICATION_MANIFEST) $(ENABLE_ATTACHMENT_ELEMENT) $(ENABLE_AVF_CAPTIONS) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CONTENT_FILTERING) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS_ANIMATIONS_LEVEL_2) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_SCROLL_SNAP) $(ENABLE_CSS_SELECTORS_LEVEL4) $(ENABLE_CSS_TRAILING_WORD) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATA_INTERACTION) $(ENABLE_DATACUE_VALUE) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DRAG_SUPPORT) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_EXPERIMENTAL_FEATURES) $(ENABLE_FAST_JIT_PERMISSIONS) $(ENABLE_FILTERS_LEVEL_2) $(ENABLE_FTL_JIT) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDEXED_DATABASE_IN_WORKERS) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_INTERSECTION_OBSERVER) $(ENABLE_INTL) $(ENABLE_IOS_GESTURE_EVENTS) $(ENABLE_IOS_TOUCH_EVENTS) $(ENABLE_JIT) $(ENABLE_JS_ASYNC_ITERATION) $(ENABLE_KEYBOARD_CODE_ATTRIBUTE) $(ENABLE_KEYBOARD_KEY_ATTRIBUTE) $(ENABLE_LAYOUT_FORMATTING_CONTEXT) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_CUSTOM_PROTOCOL_MANAGER) $(ENABLE_LEGACY_ENCRYPTED_MEDIA) $(ENABLE_LETTERPRESS) $(ENABLE_MAC_GESTURE_EVENTS) $(ENABLE_MAC_VIDEO_TOOLBOX) $(ENABLE_MATHML) $(ENABLE_MEDIA_CAPTURE) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SESSION) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_MEDIA_STREAM) $(ENABLE_METER_ELEMENT) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NAVIGATOR_STANDALONE) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAYMENT_REQUEST) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_POINTER_LOCK) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_RESOURCE_USAGE) $(ENABLE_RUBBER_BANDING) $(ENABLE_SERVICE_CONTROLS) $(ENABLE_SERVICE_WORKER) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_STREAMS_API) $(ENABLE_SUBTLE_CRYPTO) $(ENABLE_SVG_FONTS) $(ENABLE_TELEPHONE_NUMBER_DETECTION) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_USER_MESSAGE_HANDLERS) $(ENABLE_USERSELECT_ALL) $(ENABLE_VARIATION_FONTS) $(ENABLE_VIDEO) $(ENABLE_VIDEO_PRESENTATION_MODE) $(ENABLE_VIDEO_TRACK) $(ENABLE_VIDEO_USES_ELEMENT_FULLSCREEN) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_AUTHN) $(ENABLE_WEB_RTC) $(ENABLE_WEBASSEMBLY) $(ENABLE_WEBASSEMBLY_STREAMING_API) $(ENABLE_WEBGL) $(ENABLE_WEBGL2) $(ENABLE_WEBGPU) $(ENABLE_WIRELESS_PLAYBACK_TARGET) $(ENABLE_XSLT);
 384FEATURE_DEFINES = $(ENABLE_3D_TRANSFORMS) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_APPLE_PAY) $(ENABLE_APPLE_PAY_SESSION_V3) $(ENABLE_APPLE_PAY_SESSION_V4) $(ENABLE_APPLICATION_MANIFEST) $(ENABLE_ATTACHMENT_ELEMENT) $(ENABLE_AVF_CAPTIONS) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CONTENT_FILTERING) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS_ANIMATIONS_LEVEL_2) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_SCROLL_SNAP) $(ENABLE_CSS_SELECTORS_LEVEL4) $(ENABLE_CSS_TRAILING_WORD) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATA_INTERACTION) $(ENABLE_DATACUE_VALUE) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DRAG_SUPPORT) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_EXPERIMENTAL_FEATURES) $(ENABLE_FAST_JIT_PERMISSIONS) $(ENABLE_FILTERS_LEVEL_2) $(ENABLE_FTL_JIT) $(ENABLE_FULLSCREEN_API) $(ENABLE_PICTUREINPICTURE_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDEXED_DATABASE_IN_WORKERS) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_INTERSECTION_OBSERVER) $(ENABLE_INTL) $(ENABLE_IOS_GESTURE_EVENTS) $(ENABLE_IOS_TOUCH_EVENTS) $(ENABLE_JIT) $(ENABLE_JS_ASYNC_ITERATION) $(ENABLE_KEYBOARD_CODE_ATTRIBUTE) $(ENABLE_KEYBOARD_KEY_ATTRIBUTE) $(ENABLE_LAYOUT_FORMATTING_CONTEXT) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_CUSTOM_PROTOCOL_MANAGER) $(ENABLE_LEGACY_ENCRYPTED_MEDIA) $(ENABLE_LETTERPRESS) $(ENABLE_MAC_GESTURE_EVENTS) $(ENABLE_MAC_VIDEO_TOOLBOX) $(ENABLE_MATHML) $(ENABLE_MEDIA_CAPTURE) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SESSION) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_MEDIA_STREAM) $(ENABLE_METER_ELEMENT) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NAVIGATOR_STANDALONE) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAYMENT_REQUEST) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_POINTER_LOCK) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_RESOURCE_USAGE) $(ENABLE_RUBBER_BANDING) $(ENABLE_SERVICE_CONTROLS) $(ENABLE_SERVICE_WORKER) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_STREAMS_API) $(ENABLE_SUBTLE_CRYPTO) $(ENABLE_SVG_FONTS) $(ENABLE_TELEPHONE_NUMBER_DETECTION) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_USER_MESSAGE_HANDLERS) $(ENABLE_USERSELECT_ALL) $(ENABLE_VARIATION_FONTS) $(ENABLE_VIDEO) $(ENABLE_VIDEO_PRESENTATION_MODE) $(ENABLE_VIDEO_TRACK) $(ENABLE_VIDEO_USES_ELEMENT_FULLSCREEN) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_AUTHN) $(ENABLE_WEB_RTC) $(ENABLE_WEBASSEMBLY) $(ENABLE_WEBASSEMBLY_STREAMING_API) $(ENABLE_WEBGL) $(ENABLE_WEBGL2) $(ENABLE_WEBGPU) $(ENABLE_WIRELESS_PLAYBACK_TARGET) $(ENABLE_XSLT);

Source/WebCore/PAL/Configurations/FeatureDefines.xcconfig

@@ENABLE_FULLSCREEN_API_iphonesimulator = $(ENABLE_FULLSCREEN_API$(WK_IOS_12));
154154ENABLE_FULLSCREEN_API_IOS_SINCE_12 = ENABLE_FULLSCREEN_API;
155155ENABLE_FULLSCREEN_API_macosx = ENABLE_FULLSCREEN_API;
156156
 157ENABLE_PICTUREINPICTURE_API = ENABLE_PICTUREINPICTURE_API;
 158//ENABLE_PICTUREINPICTURE_API = $(ENABLE_PICTUREINPICTURE_API_$(WK_PLATFORM_NAME));
 159//ENABLE_PICTUREINPICTURE_API_iphoneos = $(ENABLE_PICTUREINPICTURE_API$(WK_IOS_12));
 160//ENABLE_PICTUREINPICTURE_API_iphonesimulator = $(ENABLE_PICTUREINPICTURE_API$(WK_IOS_12));
 161//ENABLE_PICTUREINPICTURE_API_IOS_SINCE_12 = ENABLE_PICTUREINPICTURE_API;
 162//ENABLE_PICTUREINPICTURE_API_macosx = ENABLE_PICTUREINPICTURE_API;
 163
157164ENABLE_GAMEPAD = $(ENABLE_GAMEPAD_$(WK_PLATFORM_NAME));
158165ENABLE_GAMEPAD_iphoneos = ENABLE_GAMEPAD;
159166ENABLE_GAMEPAD_iosmac = ENABLE_GAMEPAD;

@@ENABLE_WIRELESS_PLAYBACK_TARGET = ENABLE_WIRELESS_PLAYBACK_TARGET;
374381
375382ENABLE_XSLT = ENABLE_XSLT;
376383
377 FEATURE_DEFINES = $(ENABLE_3D_TRANSFORMS) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_APPLE_PAY) $(ENABLE_APPLE_PAY_SESSION_V3) $(ENABLE_APPLE_PAY_SESSION_V4) $(ENABLE_APPLICATION_MANIFEST) $(ENABLE_ATTACHMENT_ELEMENT) $(ENABLE_AVF_CAPTIONS) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CONTENT_FILTERING) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS_ANIMATIONS_LEVEL_2) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_SCROLL_SNAP) $(ENABLE_CSS_SELECTORS_LEVEL4) $(ENABLE_CSS_TRAILING_WORD) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATA_INTERACTION) $(ENABLE_DATACUE_VALUE) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DRAG_SUPPORT) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_EXPERIMENTAL_FEATURES) $(ENABLE_FAST_JIT_PERMISSIONS) $(ENABLE_FILTERS_LEVEL_2) $(ENABLE_FTL_JIT) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDEXED_DATABASE_IN_WORKERS) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_INTERSECTION_OBSERVER) $(ENABLE_INTL) $(ENABLE_IOS_GESTURE_EVENTS) $(ENABLE_IOS_TOUCH_EVENTS) $(ENABLE_JIT) $(ENABLE_JS_ASYNC_ITERATION) $(ENABLE_KEYBOARD_CODE_ATTRIBUTE) $(ENABLE_KEYBOARD_KEY_ATTRIBUTE) $(ENABLE_LAYOUT_FORMATTING_CONTEXT) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_CUSTOM_PROTOCOL_MANAGER) $(ENABLE_LEGACY_ENCRYPTED_MEDIA) $(ENABLE_LETTERPRESS) $(ENABLE_MAC_GESTURE_EVENTS) $(ENABLE_MAC_VIDEO_TOOLBOX) $(ENABLE_MATHML) $(ENABLE_MEDIA_CAPTURE) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SESSION) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_MEDIA_STREAM) $(ENABLE_METER_ELEMENT) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NAVIGATOR_STANDALONE) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAYMENT_REQUEST) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_POINTER_LOCK) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_RESOURCE_USAGE) $(ENABLE_RUBBER_BANDING) $(ENABLE_SERVICE_CONTROLS) $(ENABLE_SERVICE_WORKER) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_STREAMS_API) $(ENABLE_SUBTLE_CRYPTO) $(ENABLE_SVG_FONTS) $(ENABLE_TELEPHONE_NUMBER_DETECTION) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_USER_MESSAGE_HANDLERS) $(ENABLE_USERSELECT_ALL) $(ENABLE_VARIATION_FONTS) $(ENABLE_VIDEO) $(ENABLE_VIDEO_PRESENTATION_MODE) $(ENABLE_VIDEO_TRACK) $(ENABLE_VIDEO_USES_ELEMENT_FULLSCREEN) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_AUTHN) $(ENABLE_WEB_RTC) $(ENABLE_WEBASSEMBLY) $(ENABLE_WEBASSEMBLY_STREAMING_API) $(ENABLE_WEBGL) $(ENABLE_WEBGL2) $(ENABLE_WEBGPU) $(ENABLE_WIRELESS_PLAYBACK_TARGET) $(ENABLE_XSLT);
 384FEATURE_DEFINES = $(ENABLE_3D_TRANSFORMS) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_APPLE_PAY) $(ENABLE_APPLE_PAY_SESSION_V3) $(ENABLE_APPLE_PAY_SESSION_V4) $(ENABLE_APPLICATION_MANIFEST) $(ENABLE_ATTACHMENT_ELEMENT) $(ENABLE_AVF_CAPTIONS) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CONTENT_FILTERING) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS_ANIMATIONS_LEVEL_2) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_SCROLL_SNAP) $(ENABLE_CSS_SELECTORS_LEVEL4) $(ENABLE_CSS_TRAILING_WORD) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATA_INTERACTION) $(ENABLE_DATACUE_VALUE) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DRAG_SUPPORT) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_EXPERIMENTAL_FEATURES) $(ENABLE_FAST_JIT_PERMISSIONS) $(ENABLE_FILTERS_LEVEL_2) $(ENABLE_FTL_JIT) $(ENABLE_FULLSCREEN_API) $(ENABLE_PICTUREINPICTURE_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDEXED_DATABASE_IN_WORKERS) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_INTERSECTION_OBSERVER) $(ENABLE_INTL) $(ENABLE_IOS_GESTURE_EVENTS) $(ENABLE_IOS_TOUCH_EVENTS) $(ENABLE_JIT) $(ENABLE_JS_ASYNC_ITERATION) $(ENABLE_KEYBOARD_CODE_ATTRIBUTE) $(ENABLE_KEYBOARD_KEY_ATTRIBUTE) $(ENABLE_LAYOUT_FORMATTING_CONTEXT) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_CUSTOM_PROTOCOL_MANAGER) $(ENABLE_LEGACY_ENCRYPTED_MEDIA) $(ENABLE_LETTERPRESS) $(ENABLE_MAC_GESTURE_EVENTS) $(ENABLE_MAC_VIDEO_TOOLBOX) $(ENABLE_MATHML) $(ENABLE_MEDIA_CAPTURE) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SESSION) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_MEDIA_STREAM) $(ENABLE_METER_ELEMENT) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NAVIGATOR_STANDALONE) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAYMENT_REQUEST) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_POINTER_LOCK) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_RESOURCE_USAGE) $(ENABLE_RUBBER_BANDING) $(ENABLE_SERVICE_CONTROLS) $(ENABLE_SERVICE_WORKER) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_STREAMS_API) $(ENABLE_SUBTLE_CRYPTO) $(ENABLE_SVG_FONTS) $(ENABLE_TELEPHONE_NUMBER_DETECTION) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_USER_MESSAGE_HANDLERS) $(ENABLE_USERSELECT_ALL) $(ENABLE_VARIATION_FONTS) $(ENABLE_VIDEO) $(ENABLE_VIDEO_PRESENTATION_MODE) $(ENABLE_VIDEO_TRACK) $(ENABLE_VIDEO_USES_ELEMENT_FULLSCREEN) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_AUTHN) $(ENABLE_WEB_RTC) $(ENABLE_WEBASSEMBLY) $(ENABLE_WEBASSEMBLY_STREAMING_API) $(ENABLE_WEBGL) $(ENABLE_WEBGL2) $(ENABLE_WEBGPU) $(ENABLE_WIRELESS_PLAYBACK_TARGET) $(ENABLE_XSLT);

Source/WebCore/dom/Document.cpp

@@void Document::addDocumentToFullScreenChangeEventQueue(Document* doc)
65386538 m_fullScreenChangeEventTargetQueue.append(target);
65396539}
65406540
 6541#endif
 6542
 6543#if ENABLE(PICTUREINPICTURE_API)
 6544
 6545bool Document::pictureInPictureEnabled() const
 6546{
 6547 return false;
 6548}
 6549
 6550void Document::exitPictureInPicture()
 6551{
 6552
 6553}
 6554
65416555#endif
65426556
65436557#if ENABLE(POINTER_LOCK)

Source/WebCore/dom/Document.h

@@public:
11881188 Element* webkitFullscreenElementForBindings() const { return ancestorElementInThisScope(webkitFullscreenElement()); }
11891189 WEBCORE_EXPORT void webkitExitFullscreen();
11901190#endif
 1191
 1192#if ENABLE(PICTUREINPICTURE_API)
 1193 WEBCORE_EXPORT bool pictureInPictureEnabled() const;
 1194 Element* pictureInPictureElement() const { return nil; }
 1195 Element* pictureInPictureElementForBindings() const { return nil; }
 1196 WEBCORE_EXPORT void exitPictureInPicture();
 1197#endif
11911198
11921199#if ENABLE(POINTER_LOCK)
11931200 WEBCORE_EXPORT void exitPointerLock();

Source/WebCore/dom/Document.idl

@@typedef (
155155 [NotEnumerable, Conditional=FULLSCREEN_API, EnabledBySetting=FullScreen] attribute EventHandler onwebkitfullscreenchange;
156156 [NotEnumerable, Conditional=FULLSCREEN_API, EnabledBySetting=FullScreen] attribute EventHandler onwebkitfullscreenerror;
157157
 158 [Conditional=PICTUREINPICTURE_API, EnabledBySetting=PictureInPicture] readonly attribute boolean pictureInPictureEnabled;
 159 [Conditional=PICTUREINPICTURE_API, EnabledBySetting=PictureInPicture, ImplementedAs=pictureInPictureElementForBindings] readonly attribute Element? pictureInPictureElement;
 160 [Conditional=PICTUREINPICTURE_API, EnabledBySetting=PictureInPicture] void exitPictureInPicture();
 161
158162 // Extensions from Pointer Lock API (https://www.w3.org/TR/pointerlock/#extensions-to-the-document-interface).
159163 [NotEnumerable, Conditional=POINTER_LOCK] attribute EventHandler onpointerlockchange; // FIXME: Should be enumerable.
160164 [NotEnumerable, Conditional=POINTER_LOCK] attribute EventHandler onpointerlockerror; // FIXME: Should be enumerable.

Source/WebCore/dom/Element.cpp

@@void Element::setContainsFullScreenElementOnAncestorsCrossingFrameBoundaries(boo
32413241 element->setContainsFullScreenElement(flag);
32423242}
32433243#endif
 3244
 3245#if ENABLE(PICTUREINPICTURE_API)
 3246void Element::requestPictureInPicture(DOMPromiseDeferred<void>&& promise)
 3247{
 3248 promise.reject(NotSupportedError, "The operation is not supported.");
 3249}
 3250#endif
32443251
32453252#if ENABLE(POINTER_LOCK)
32463253void Element::requestPointerLock()

Source/WebCore/dom/Element.h

2828#include "Document.h"
2929#include "ElementData.h"
3030#include "HTMLNames.h"
 31#include "JSDOMPromiseDeferred.h"
3132#include "KeyframeAnimationOptions.h"
3233#include "ScrollToOptions.h"
3334#include "ScrollTypes.h"

@@public:
490491 WEBCORE_EXPORT void requestPointerLock();
491492#endif
492493
 494#if ENABLE(PICTUREINPICTURE_API)
 495 virtual bool disablePictureInPicture() const { ASSERT(false); return true; }
 496 virtual void setDisablePictureInPicture(bool) { ASSERT(false); return; }
 497 void requestPictureInPicture(DOMPromiseDeferred<void>&&);
 498#endif
 499
493500 bool isSpellCheckingEnabled() const;
494501
495502 bool hasID() const;

Source/WebCore/dom/Element.idl

9898 [Conditional=FULLSCREEN_API, EnabledBySetting=FullScreen, ImplementedAs=webkitRequestFullscreen] void webkitRequestFullScreen(); // Prefixed Mozilla version.
9999 [Conditional=FULLSCREEN_API, EnabledBySetting=FullScreen] void webkitRequestFullscreen(); // Prefixed W3C version.
100100
 101 [Conditional=PICTUREINPICTURE_API, EnabledBySetting=PictureInPicture, Reflect] attribute boolean disablePictureInPicture;
 102 [Conditional=PICTUREINPICTURE_API, EnabledBySetting=PictureInPicture] Promise<void> requestPictureInPicture();
 103
101104 // Extensions from Pointer Lock API (https://w3c.github.io/pointerlock/#extensions-to-the-element-interface).
102105 [Conditional=POINTER_LOCK] void requestPointerLock();
103106

Source/WebCore/dom/EventNames.h

@@namespace WebCore {
124124 macro(enter) \
125125 macro(error) \
126126 macro(exit) \
 127 macro(enterpictureinpicture) \
127128 macro(fetch) \
128129 macro(finish) \
129130 macro(focus) \

@@namespace WebCore {
152153 macro(keystatuseschange) \
153154 macro(keyup) \
154155 macro(languagechange) \
 156 macro(leavepictureinpicture) \
155157 macro(levelchange) \
156158 macro(load) \
157159 macro(loadeddata) \

Source/WebCore/html/HTMLAttributeNames.in

@@dir
113113direction
114114dirname
115115disabled
 116disablepictureinpicture
116117disposition
117118download
118119draggable

@@ondrop
232233ondurationchange
233234onemptied
234235onended
 236onenterpictureinpicture
235237onerror
236238onfocus
237239onfocusin

@@ongesturestart
246248ongesturechange
247249ongestureend
248250onlanguagechange
 251onleavepictureinpicture
249252onload
250253onloadeddata
251254onloadedmetadata

Source/WebCore/html/HTMLElement.cpp

@@HTMLElement::EventHandlerNameMap HTMLElement::createEventHandlerNameMap()
265265 &ondurationchangeAttr.get(),
266266 &onemptiedAttr.get(),
267267 &onendedAttr.get(),
 268 &onenterpictureinpictureAttr.get(),
268269 &onerrorAttr.get(),
269270 &onfocusAttr.get(),
270271 &onfocusinAttr.get(),

@@HTMLElement::EventHandlerNameMap HTMLElement::createEventHandlerNameMap()
277278 &onkeydownAttr.get(),
278279 &onkeypressAttr.get(),
279280 &onkeyupAttr.get(),
 281 &onleavepictureinpictureAttr.get(),
280282 &onloadAttr.get(),
281283 &onloadeddataAttr.get(),
282284 &onloadedmetadataAttr.get(),

Source/WebCore/html/HTMLVideoElement.h

@@public:
6464#if ENABLE(FULLSCREEN_API) && PLATFORM(IOS)
6565 void webkitRequestFullscreen() override;
6666#endif
 67
 68#if ENABLE(PICTUREINPICTURE_API)
 69 bool disablePictureInPicture() const override { return m_disablePictureInPicture; }
 70 void setDisablePictureInPicture(bool value) override { m_disablePictureInPicture = value; }
 71#endif
6772
6873 // Used by canvas to gain raw pixel access
6974 void paintCurrentFrameInContext(GraphicsContext&, const FloatRect&);

@@private:
123128
124129 unsigned m_lastReportedVideoWidth { 0 };
125130 unsigned m_lastReportedVideoHeight { 0 };
 131
 132#if ENABLE(PICTUREINPICTURE_API)
 133 bool m_disablePictureInPicture { false };
 134#endif
126135};
127136
128137} // namespace WebCore

Source/WebCore/page/Settings.yaml

@@paginateDuringLayoutEnabled:
241241fullScreenEnabled:
242242 initial: false
243243 conditional: FULLSCREEN_API
 244pictureInPictureEnabled:
 245 initial: false
 246 conditional: PICTUREINPICTURE_API
244247asynchronousSpellCheckingEnabled:
245248 initial: false
246249

Source/WebInspectorUI/UserInterface/Models/ScriptTimelineRecord.js

@@WI.ScriptTimelineRecord.EventType.displayName = function(eventType, details, inc
249249 nameMap.set("dragover", "Drag Over");
250250 nameMap.set("dragstart", "Drag Start");
251251 nameMap.set("durationchange", "Duration Change");
 252 nameMap.set("enterpictureinpicture", "Enter Picture-In-Picture");
252253 nameMap.set("focusin", "Focus In");
253254 nameMap.set("focusout", "Focus Out");
254255 nameMap.set("gesturechange", "Gesture Change");

@@WI.ScriptTimelineRecord.EventType.displayName = function(eventType, details, inc
265266 nameMap.set("keydown", "Key Down");
266267 nameMap.set("keypress", "Key Press");
267268 nameMap.set("keyup", "Key Up");
 269 nameMap.set("leavepictureinpicture", "Leave Picture-In-Picture");
268270 nameMap.set("levelchange", "Level Change");
269271 nameMap.set("loadeddata", "Loaded Data");
270272 nameMap.set("loadedmetadata", "Loaded Metadata");

Source/WebKit/Configurations/FeatureDefines.xcconfig

@@ENABLE_FULLSCREEN_API_iphonesimulator = $(ENABLE_FULLSCREEN_API$(WK_IOS_12));
154154ENABLE_FULLSCREEN_API_IOS_SINCE_12 = ENABLE_FULLSCREEN_API;
155155ENABLE_FULLSCREEN_API_macosx = ENABLE_FULLSCREEN_API;
156156
 157ENABLE_PICTUREINPICTURE_API = ENABLE_PICTUREINPICTURE_API;
 158//ENABLE_PICTUREINPICTURE_API = $(ENABLE_PICTUREINPICTURE_API_$(WK_PLATFORM_NAME));
 159//ENABLE_PICTUREINPICTURE_API_iphoneos = $(ENABLE_PICTUREINPICTURE_API$(WK_IOS_12));
 160//ENABLE_PICTUREINPICTURE_API_iphonesimulator = $(ENABLE_PICTUREINPICTURE_API$(WK_IOS_12));
 161//ENABLE_PICTUREINPICTURE_API_IOS_SINCE_12 = ENABLE_PICTUREINPICTURE_API;
 162//ENABLE_PICTUREINPICTURE_API_macosx = ENABLE_PICTUREINPICTURE_API;
 163
157164ENABLE_GAMEPAD = $(ENABLE_GAMEPAD_$(WK_PLATFORM_NAME));
158165ENABLE_GAMEPAD_iphoneos = ENABLE_GAMEPAD;
159166ENABLE_GAMEPAD_iosmac = ENABLE_GAMEPAD;

@@ENABLE_WIRELESS_PLAYBACK_TARGET = ENABLE_WIRELESS_PLAYBACK_TARGET;
374381
375382ENABLE_XSLT = ENABLE_XSLT;
376383
377 FEATURE_DEFINES = $(ENABLE_3D_TRANSFORMS) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_APPLE_PAY) $(ENABLE_APPLE_PAY_SESSION_V3) $(ENABLE_APPLE_PAY_SESSION_V4) $(ENABLE_APPLICATION_MANIFEST) $(ENABLE_ATTACHMENT_ELEMENT) $(ENABLE_AVF_CAPTIONS) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CONTENT_FILTERING) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS_ANIMATIONS_LEVEL_2) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_SCROLL_SNAP) $(ENABLE_CSS_SELECTORS_LEVEL4) $(ENABLE_CSS_TRAILING_WORD) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATA_INTERACTION) $(ENABLE_DATACUE_VALUE) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DRAG_SUPPORT) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_EXPERIMENTAL_FEATURES) $(ENABLE_FAST_JIT_PERMISSIONS) $(ENABLE_FILTERS_LEVEL_2) $(ENABLE_FTL_JIT) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDEXED_DATABASE_IN_WORKERS) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_INTERSECTION_OBSERVER) $(ENABLE_INTL) $(ENABLE_IOS_GESTURE_EVENTS) $(ENABLE_IOS_TOUCH_EVENTS) $(ENABLE_JIT) $(ENABLE_JS_ASYNC_ITERATION) $(ENABLE_KEYBOARD_CODE_ATTRIBUTE) $(ENABLE_KEYBOARD_KEY_ATTRIBUTE) $(ENABLE_LAYOUT_FORMATTING_CONTEXT) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_CUSTOM_PROTOCOL_MANAGER) $(ENABLE_LEGACY_ENCRYPTED_MEDIA) $(ENABLE_LETTERPRESS) $(ENABLE_MAC_GESTURE_EVENTS) $(ENABLE_MAC_VIDEO_TOOLBOX) $(ENABLE_MATHML) $(ENABLE_MEDIA_CAPTURE) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SESSION) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_MEDIA_STREAM) $(ENABLE_METER_ELEMENT) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NAVIGATOR_STANDALONE) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAYMENT_REQUEST) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_POINTER_LOCK) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_RESOURCE_USAGE) $(ENABLE_RUBBER_BANDING) $(ENABLE_SERVICE_CONTROLS) $(ENABLE_SERVICE_WORKER) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_STREAMS_API) $(ENABLE_SUBTLE_CRYPTO) $(ENABLE_SVG_FONTS) $(ENABLE_TELEPHONE_NUMBER_DETECTION) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_USER_MESSAGE_HANDLERS) $(ENABLE_USERSELECT_ALL) $(ENABLE_VARIATION_FONTS) $(ENABLE_VIDEO) $(ENABLE_VIDEO_PRESENTATION_MODE) $(ENABLE_VIDEO_TRACK) $(ENABLE_VIDEO_USES_ELEMENT_FULLSCREEN) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_AUTHN) $(ENABLE_WEB_RTC) $(ENABLE_WEBASSEMBLY) $(ENABLE_WEBASSEMBLY_STREAMING_API) $(ENABLE_WEBGL) $(ENABLE_WEBGL2) $(ENABLE_WEBGPU) $(ENABLE_WIRELESS_PLAYBACK_TARGET) $(ENABLE_XSLT);
 384FEATURE_DEFINES = $(ENABLE_3D_TRANSFORMS) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_APPLE_PAY) $(ENABLE_APPLE_PAY_SESSION_V3) $(ENABLE_APPLE_PAY_SESSION_V4) $(ENABLE_APPLICATION_MANIFEST) $(ENABLE_ATTACHMENT_ELEMENT) $(ENABLE_AVF_CAPTIONS) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CONTENT_FILTERING) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS_ANIMATIONS_LEVEL_2) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_SCROLL_SNAP) $(ENABLE_CSS_SELECTORS_LEVEL4) $(ENABLE_CSS_TRAILING_WORD) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATA_INTERACTION) $(ENABLE_DATACUE_VALUE) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DRAG_SUPPORT) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_EXPERIMENTAL_FEATURES) $(ENABLE_FAST_JIT_PERMISSIONS) $(ENABLE_FILTERS_LEVEL_2) $(ENABLE_FTL_JIT) $(ENABLE_FULLSCREEN_API) $(ENABLE_PICTUREINPICTURE_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDEXED_DATABASE_IN_WORKERS) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_INTERSECTION_OBSERVER) $(ENABLE_INTL) $(ENABLE_IOS_GESTURE_EVENTS) $(ENABLE_IOS_TOUCH_EVENTS) $(ENABLE_JIT) $(ENABLE_JS_ASYNC_ITERATION) $(ENABLE_KEYBOARD_CODE_ATTRIBUTE) $(ENABLE_KEYBOARD_KEY_ATTRIBUTE) $(ENABLE_LAYOUT_FORMATTING_CONTEXT) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_CUSTOM_PROTOCOL_MANAGER) $(ENABLE_LEGACY_ENCRYPTED_MEDIA) $(ENABLE_LETTERPRESS) $(ENABLE_MAC_GESTURE_EVENTS) $(ENABLE_MAC_VIDEO_TOOLBOX) $(ENABLE_MATHML) $(ENABLE_MEDIA_CAPTURE) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SESSION) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_MEDIA_STREAM) $(ENABLE_METER_ELEMENT) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NAVIGATOR_STANDALONE) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAYMENT_REQUEST) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_POINTER_LOCK) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_RESOURCE_USAGE) $(ENABLE_RUBBER_BANDING) $(ENABLE_SERVICE_CONTROLS) $(ENABLE_SERVICE_WORKER) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_STREAMS_API) $(ENABLE_SUBTLE_CRYPTO) $(ENABLE_SVG_FONTS) $(ENABLE_TELEPHONE_NUMBER_DETECTION) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_USER_MESSAGE_HANDLERS) $(ENABLE_USERSELECT_ALL) $(ENABLE_VARIATION_FONTS) $(ENABLE_VIDEO) $(ENABLE_VIDEO_PRESENTATION_MODE) $(ENABLE_VIDEO_TRACK) $(ENABLE_VIDEO_USES_ELEMENT_FULLSCREEN) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_AUTHN) $(ENABLE_WEB_RTC) $(ENABLE_WEBASSEMBLY) $(ENABLE_WEBASSEMBLY_STREAMING_API) $(ENABLE_WEBGL) $(ENABLE_WEBGL2) $(ENABLE_WEBGPU) $(ENABLE_WIRELESS_PLAYBACK_TARGET) $(ENABLE_XSLT);

Source/WebKit/Shared/WebPreferences.yaml

@@FullScreenEnabled:
13071307 humanReadableDescription: "Fullscreen API"
13081308 category: experimental
13091309
 1310PictureInPictureEnabled:
 1311 type: bool
 1312 defaultValue: false
 1313 condition: ENABLE(PICTUREINPICTURE_API)
 1314 humanReadableName: "Picture-In-Picture API"
 1315 humanReadableDescription: "Picture-In-Picture API"
 1316 category: experimental
 1317
13101318EncryptedMediaAPIEnabled:
13111319 type: bool
13121320 defaultValue: DEFAULT_EXPERIMENTAL_FEATURES_ENABLED

Source/WebKit/UIProcess/API/C/WKPreferences.cpp

@@bool WKPreferencesGetFullScreenEnabled(WKPreferencesRef preferencesRef)
706706 return toImpl(preferencesRef)->fullScreenEnabled();
707707}
708708
 709void WKPreferencesSetPictureInPictureEnabled(WKPreferencesRef preferencesRef, bool enabled)
 710{
 711 toImpl(preferencesRef)->setPictureInPictureEnabled(enabled);
 712}
 713
 714bool WKPreferencesGetPictureInPictureEnabled(WKPreferencesRef preferencesRef)
 715{
 716 return toImpl(preferencesRef)->pictureInPictureEnabled();
 717}
 718
709719void WKPreferencesSetAsynchronousSpellCheckingEnabled(WKPreferencesRef preferencesRef, bool enabled)
710720{
711721 toImpl(preferencesRef)->setAsynchronousSpellCheckingEnabled(enabled);

Source/WebKit/UIProcess/API/C/WKPreferencesRef.h

@@WK_EXPORT bool WKPreferencesGetJavaScriptCanAccessClipboard(WKPreferencesRef pre
188188WK_EXPORT void WKPreferencesSetFullScreenEnabled(WKPreferencesRef preferencesRef, bool enabled);
189189WK_EXPORT bool WKPreferencesGetFullScreenEnabled(WKPreferencesRef preferencesRef);
190190
 191// Defaults to false
 192WK_EXPORT void WKPreferencesSetPictureInPictureEnabled(WKPreferencesRef preferencesRef, bool enabled);
 193WK_EXPORT bool WKPreferencesGetPictureInPictureEnabled(WKPreferencesRef preferencesRef);
 194
191195// Defaults to true.
192196WK_EXPORT void WKPreferencesSetAVFoundationEnabled(WKPreferencesRef preferencesRef, bool enabled);
193197WK_EXPORT bool WKPreferencesGetAVFoundationEnabled(WKPreferencesRef preferencesRef);

Source/WebKit/UIProcess/API/Cocoa/WKPreferences.mm

@@- (void)_setFullScreenEnabled:(BOOL)fullScreenEnabled
257257 _preferences->setFullScreenEnabled(fullScreenEnabled);
258258}
259259
 260- (BOOL)_pictureInPictureEnabled
 261{
 262 return _preferences->pictureInPictureEnabled();
 263}
 264
 265- (void)_setPictureInPictureEnabled:(BOOL)pictureInPictureEnabled
 266{
 267 _preferences->setPictureInPictureEnabled(pictureInPictureEnabled);
 268}
 269
260270- (BOOL)_allowsPictureInPictureMediaPlayback
261271{
262272 return _preferences->allowsPictureInPictureMediaPlayback();

Source/WebKit/UIProcess/API/Cocoa/WKPreferencesPrivate.h

@@typedef NS_ENUM(NSInteger, _WKEditableLinkBehavior) {
103103// FIXME: This property should not have the verb "is" in it.
104104@property (nonatomic, setter=_setOfflineApplicationCacheIsEnabled:) BOOL _offlineApplicationCacheIsEnabled;
105105@property (nonatomic, setter=_setFullScreenEnabled:) BOOL _fullScreenEnabled WK_API_AVAILABLE(macosx(10.11), ios(9.0));
 106@property (nonatomic, setter=_setPictureInPictureEnabled:) BOOL _pictureInPictureEnabled WK_API_AVAILABLE(macosx(10.11), ios(9.0));
106107@property (nonatomic, setter=_setShouldSuppressKeyboardInputDuringProvisionalNavigation:) BOOL _shouldSuppressKeyboardInputDuringProvisionalNavigation WK_API_AVAILABLE(macosx(10.12.3), ios(10.3));
107108@property (nonatomic, setter=_setAllowsPictureInPictureMediaPlayback:) BOOL _allowsPictureInPictureMediaPlayback WK_API_AVAILABLE(macosx(10.13), ios(11.0));
108109

Source/WebKitLegacy/mac/Configurations/FeatureDefines.xcconfig

@@ENABLE_FULLSCREEN_API_iphonesimulator = $(ENABLE_FULLSCREEN_API$(WK_IOS_12));
154154ENABLE_FULLSCREEN_API_IOS_SINCE_12 = ENABLE_FULLSCREEN_API;
155155ENABLE_FULLSCREEN_API_macosx = ENABLE_FULLSCREEN_API;
156156
 157ENABLE_PICTUREINPICTURE_API = ENABLE_PICTUREINPICTURE_API;
 158//ENABLE_PICTUREINPICTURE_API = $(ENABLE_PICTUREINPICTURE_API_$(WK_PLATFORM_NAME));
 159//ENABLE_PICTUREINPICTURE_API_iphoneos = $(ENABLE_PICTUREINPICTURE_API$(WK_IOS_12));
 160//ENABLE_PICTUREINPICTURE_API_iphonesimulator = $(ENABLE_PICTUREINPICTURE_API$(WK_IOS_12));
 161//ENABLE_PICTUREINPICTURE_API_IOS_SINCE_12 = ENABLE_PICTUREINPICTURE_API;
 162//ENABLE_PICTUREINPICTURE_API_macosx = ENABLE_PICTUREINPICTURE_API;
 163
157164ENABLE_GAMEPAD = $(ENABLE_GAMEPAD_$(WK_PLATFORM_NAME));
158165ENABLE_GAMEPAD_iphoneos = ENABLE_GAMEPAD;
159166ENABLE_GAMEPAD_iosmac = ENABLE_GAMEPAD;

@@ENABLE_WIRELESS_PLAYBACK_TARGET = ENABLE_WIRELESS_PLAYBACK_TARGET;
374381
375382ENABLE_XSLT = ENABLE_XSLT;
376383
377 FEATURE_DEFINES = $(ENABLE_3D_TRANSFORMS) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_APPLE_PAY) $(ENABLE_APPLE_PAY_SESSION_V3) $(ENABLE_APPLE_PAY_SESSION_V4) $(ENABLE_APPLICATION_MANIFEST) $(ENABLE_ATTACHMENT_ELEMENT) $(ENABLE_AVF_CAPTIONS) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CONTENT_FILTERING) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS_ANIMATIONS_LEVEL_2) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_SCROLL_SNAP) $(ENABLE_CSS_SELECTORS_LEVEL4) $(ENABLE_CSS_TRAILING_WORD) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATA_INTERACTION) $(ENABLE_DATACUE_VALUE) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DRAG_SUPPORT) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_EXPERIMENTAL_FEATURES) $(ENABLE_FAST_JIT_PERMISSIONS) $(ENABLE_FILTERS_LEVEL_2) $(ENABLE_FTL_JIT) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDEXED_DATABASE_IN_WORKERS) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_INTERSECTION_OBSERVER) $(ENABLE_INTL) $(ENABLE_IOS_GESTURE_EVENTS) $(ENABLE_IOS_TOUCH_EVENTS) $(ENABLE_JIT) $(ENABLE_JS_ASYNC_ITERATION) $(ENABLE_KEYBOARD_CODE_ATTRIBUTE) $(ENABLE_KEYBOARD_KEY_ATTRIBUTE) $(ENABLE_LAYOUT_FORMATTING_CONTEXT) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_CUSTOM_PROTOCOL_MANAGER) $(ENABLE_LEGACY_ENCRYPTED_MEDIA) $(ENABLE_LETTERPRESS) $(ENABLE_MAC_GESTURE_EVENTS) $(ENABLE_MAC_VIDEO_TOOLBOX) $(ENABLE_MATHML) $(ENABLE_MEDIA_CAPTURE) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SESSION) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_MEDIA_STREAM) $(ENABLE_METER_ELEMENT) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NAVIGATOR_STANDALONE) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAYMENT_REQUEST) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_POINTER_LOCK) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_RESOURCE_USAGE) $(ENABLE_RUBBER_BANDING) $(ENABLE_SERVICE_CONTROLS) $(ENABLE_SERVICE_WORKER) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_STREAMS_API) $(ENABLE_SUBTLE_CRYPTO) $(ENABLE_SVG_FONTS) $(ENABLE_TELEPHONE_NUMBER_DETECTION) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_USER_MESSAGE_HANDLERS) $(ENABLE_USERSELECT_ALL) $(ENABLE_VARIATION_FONTS) $(ENABLE_VIDEO) $(ENABLE_VIDEO_PRESENTATION_MODE) $(ENABLE_VIDEO_TRACK) $(ENABLE_VIDEO_USES_ELEMENT_FULLSCREEN) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_AUTHN) $(ENABLE_WEB_RTC) $(ENABLE_WEBASSEMBLY) $(ENABLE_WEBASSEMBLY_STREAMING_API) $(ENABLE_WEBGL) $(ENABLE_WEBGL2) $(ENABLE_WEBGPU) $(ENABLE_WIRELESS_PLAYBACK_TARGET) $(ENABLE_XSLT);
 384FEATURE_DEFINES = $(ENABLE_3D_TRANSFORMS) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_APPLE_PAY) $(ENABLE_APPLE_PAY_SESSION_V3) $(ENABLE_APPLE_PAY_SESSION_V4) $(ENABLE_APPLICATION_MANIFEST) $(ENABLE_ATTACHMENT_ELEMENT) $(ENABLE_AVF_CAPTIONS) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CONTENT_FILTERING) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS_ANIMATIONS_LEVEL_2) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_SCROLL_SNAP) $(ENABLE_CSS_SELECTORS_LEVEL4) $(ENABLE_CSS_TRAILING_WORD) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATA_INTERACTION) $(ENABLE_DATACUE_VALUE) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DRAG_SUPPORT) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_EXPERIMENTAL_FEATURES) $(ENABLE_FAST_JIT_PERMISSIONS) $(ENABLE_FILTERS_LEVEL_2) $(ENABLE_FTL_JIT) $(ENABLE_FULLSCREEN_API) $(ENABLE_PICTUREINPICTURE_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDEXED_DATABASE_IN_WORKERS) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_INTERSECTION_OBSERVER) $(ENABLE_INTL) $(ENABLE_IOS_GESTURE_EVENTS) $(ENABLE_IOS_TOUCH_EVENTS) $(ENABLE_JIT) $(ENABLE_JS_ASYNC_ITERATION) $(ENABLE_KEYBOARD_CODE_ATTRIBUTE) $(ENABLE_KEYBOARD_KEY_ATTRIBUTE) $(ENABLE_LAYOUT_FORMATTING_CONTEXT) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_CUSTOM_PROTOCOL_MANAGER) $(ENABLE_LEGACY_ENCRYPTED_MEDIA) $(ENABLE_LETTERPRESS) $(ENABLE_MAC_GESTURE_EVENTS) $(ENABLE_MAC_VIDEO_TOOLBOX) $(ENABLE_MATHML) $(ENABLE_MEDIA_CAPTURE) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SESSION) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_MEDIA_STREAM) $(ENABLE_METER_ELEMENT) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NAVIGATOR_STANDALONE) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAYMENT_REQUEST) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_POINTER_LOCK) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_RESOURCE_USAGE) $(ENABLE_RUBBER_BANDING) $(ENABLE_SERVICE_CONTROLS) $(ENABLE_SERVICE_WORKER) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_STREAMS_API) $(ENABLE_SUBTLE_CRYPTO) $(ENABLE_SVG_FONTS) $(ENABLE_TELEPHONE_NUMBER_DETECTION) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_USER_MESSAGE_HANDLERS) $(ENABLE_USERSELECT_ALL) $(ENABLE_VARIATION_FONTS) $(ENABLE_VIDEO) $(ENABLE_VIDEO_PRESENTATION_MODE) $(ENABLE_VIDEO_TRACK) $(ENABLE_VIDEO_USES_ELEMENT_FULLSCREEN) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_AUTHN) $(ENABLE_WEB_RTC) $(ENABLE_WEBASSEMBLY) $(ENABLE_WEBASSEMBLY_STREAMING_API) $(ENABLE_WEBGL) $(ENABLE_WEBGL2) $(ENABLE_WEBGPU) $(ENABLE_WIRELESS_PLAYBACK_TARGET) $(ENABLE_XSLT);

Source/WebKitLegacy/mac/WebView/WebPreferenceKeysPrivate.h

123123#define WebKitPaginateDuringLayoutEnabledPreferenceKey @"WebKitPaginateDuringLayoutEnabled"
124124#define WebKitDNSPrefetchingEnabledPreferenceKey @"WebKitDNSPrefetchingEnabled"
125125#define WebKitFullScreenEnabledPreferenceKey @"WebKitFullScreenEnabled"
 126#define WebKitPictureInPictureEnabledPreferenceKey @"WebKitPictureInPictureEnabled"
126127#define WebKitAsynchronousSpellCheckingEnabledPreferenceKey @"WebKitAsynchronousSpellCheckingEnabled"
127128#define WebKitHyperlinkAuditingEnabledPreferenceKey @"WebKitHyperlinkAuditingEnabled"
128129#define WebKitAVFoundationEnabledKey @"WebKitAVFoundationEnabled"

Source/WebKitLegacy/mac/WebView/WebPreferences.mm

@@- (BOOL)fullScreenEnabled
22342234 return [self _boolValueForKey:WebKitFullScreenEnabledPreferenceKey];
22352235}
22362236
 2237- (void)setPictureInPictureEnabled:(BOOL)flag
 2238{
 2239 [self _setBoolValue:flag forKey:WebKitPictureInPictureEnabledPreferenceKey];
 2240}
 2241
 2242- (BOOL)pictureInPictureEnabled
 2243{
 2244 return [self _boolValueForKey:WebKitPictureInPictureEnabledPreferenceKey];
 2245}
 2246
22372247- (void)setAsynchronousSpellCheckingEnabled:(BOOL)flag
22382248{
22392249 [self _setBoolValue:flag forKey:WebKitAsynchronousSpellCheckingEnabledPreferenceKey];

Source/WebKitLegacy/mac/WebView/WebPreferencesPrivate.h

@@extern NSString *WebPreferencesCacheModelChangedInternalNotification WEBKIT_DEPR
406406- (void)setFullScreenEnabled:(BOOL)flag;
407407- (BOOL)fullScreenEnabled;
408408
 409// Full screen support is dependent on WebCore/WebKit being
 410// compiled with ENABLE_PICTUREINPICTURE_API.
 411- (void)setPictureInPictureEnabled:(BOOL)flag;
 412- (BOOL)pictureInPictureEnabled;
 413
409414- (void)setAsynchronousSpellCheckingEnabled:(BOOL)flag;
410415- (BOOL)asynchronousSpellCheckingEnabled;
411416

Tools/MiniBrowser/mac/WK1BrowserWindowController.m

@@- (void)awakeFromNib
5454 [_webView setPolicyDelegate:self];
5555
5656 [[WebPreferences standardPreferences] setFullScreenEnabled:YES];
 57 [[WebPreferences standardPreferences] setPictureInPictureEnabled:YES];
5758 [[WebPreferences standardPreferences] setDeveloperExtrasEnabled:YES];
5859 [[WebPreferences standardPreferences] setImageControlsEnabled:YES];
5960 [[WebPreferences standardPreferences] setServiceControlsEnabled:YES];

Tools/TestWebKitAPI/Configurations/FeatureDefines.xcconfig

@@ENABLE_FULLSCREEN_API_iphonesimulator = $(ENABLE_FULLSCREEN_API$(WK_IOS_12));
154154ENABLE_FULLSCREEN_API_IOS_SINCE_12 = ENABLE_FULLSCREEN_API;
155155ENABLE_FULLSCREEN_API_macosx = ENABLE_FULLSCREEN_API;
156156
 157ENABLE_PICTUREINPICTURE_API = ENABLE_PICTUREINPICTURE_API;
 158//ENABLE_PICTUREINPICTURE_API = $(ENABLE_PICTUREINPICTURE_API_$(WK_PLATFORM_NAME));
 159//ENABLE_PICTUREINPICTURE_API_iphoneos = $(ENABLE_PICTUREINPICTURE_API$(WK_IOS_12));
 160//ENABLE_PICTUREINPICTURE_API_iphonesimulator = $(ENABLE_PICTUREINPICTURE_API$(WK_IOS_12));
 161//ENABLE_PICTUREINPICTURE_API_IOS_SINCE_12 = ENABLE_PICTUREINPICTURE_API;
 162//ENABLE_PICTUREINPICTURE_API_macosx = ENABLE_PICTUREINPICTURE_API;
 163
157164ENABLE_GAMEPAD = $(ENABLE_GAMEPAD_$(WK_PLATFORM_NAME));
158165ENABLE_GAMEPAD_iphoneos = ENABLE_GAMEPAD;
159166ENABLE_GAMEPAD_iosmac = ENABLE_GAMEPAD;

@@ENABLE_WIRELESS_PLAYBACK_TARGET = ENABLE_WIRELESS_PLAYBACK_TARGET;
374381
375382ENABLE_XSLT = ENABLE_XSLT;
376383
377 FEATURE_DEFINES = $(ENABLE_3D_TRANSFORMS) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_APPLE_PAY) $(ENABLE_APPLE_PAY_SESSION_V3) $(ENABLE_APPLE_PAY_SESSION_V4) $(ENABLE_APPLICATION_MANIFEST) $(ENABLE_ATTACHMENT_ELEMENT) $(ENABLE_AVF_CAPTIONS) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CONTENT_FILTERING) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS_ANIMATIONS_LEVEL_2) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_SCROLL_SNAP) $(ENABLE_CSS_SELECTORS_LEVEL4) $(ENABLE_CSS_TRAILING_WORD) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATA_INTERACTION) $(ENABLE_DATACUE_VALUE) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DRAG_SUPPORT) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_EXPERIMENTAL_FEATURES) $(ENABLE_FAST_JIT_PERMISSIONS) $(ENABLE_FILTERS_LEVEL_2) $(ENABLE_FTL_JIT) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDEXED_DATABASE_IN_WORKERS) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_INTERSECTION_OBSERVER) $(ENABLE_INTL) $(ENABLE_IOS_GESTURE_EVENTS) $(ENABLE_IOS_TOUCH_EVENTS) $(ENABLE_JIT) $(ENABLE_JS_ASYNC_ITERATION) $(ENABLE_KEYBOARD_CODE_ATTRIBUTE) $(ENABLE_KEYBOARD_KEY_ATTRIBUTE) $(ENABLE_LAYOUT_FORMATTING_CONTEXT) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_CUSTOM_PROTOCOL_MANAGER) $(ENABLE_LEGACY_ENCRYPTED_MEDIA) $(ENABLE_LETTERPRESS) $(ENABLE_MAC_GESTURE_EVENTS) $(ENABLE_MAC_VIDEO_TOOLBOX) $(ENABLE_MATHML) $(ENABLE_MEDIA_CAPTURE) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SESSION) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_MEDIA_STREAM) $(ENABLE_METER_ELEMENT) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NAVIGATOR_STANDALONE) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAYMENT_REQUEST) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_POINTER_LOCK) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_RESOURCE_USAGE) $(ENABLE_RUBBER_BANDING) $(ENABLE_SERVICE_CONTROLS) $(ENABLE_SERVICE_WORKER) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_STREAMS_API) $(ENABLE_SUBTLE_CRYPTO) $(ENABLE_SVG_FONTS) $(ENABLE_TELEPHONE_NUMBER_DETECTION) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_USER_MESSAGE_HANDLERS) $(ENABLE_USERSELECT_ALL) $(ENABLE_VARIATION_FONTS) $(ENABLE_VIDEO) $(ENABLE_VIDEO_PRESENTATION_MODE) $(ENABLE_VIDEO_TRACK) $(ENABLE_VIDEO_USES_ELEMENT_FULLSCREEN) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_AUTHN) $(ENABLE_WEB_RTC) $(ENABLE_WEBASSEMBLY) $(ENABLE_WEBASSEMBLY_STREAMING_API) $(ENABLE_WEBGL) $(ENABLE_WEBGL2) $(ENABLE_WEBGPU) $(ENABLE_WIRELESS_PLAYBACK_TARGET) $(ENABLE_XSLT);
 384FEATURE_DEFINES = $(ENABLE_3D_TRANSFORMS) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_APPLE_PAY) $(ENABLE_APPLE_PAY_SESSION_V3) $(ENABLE_APPLE_PAY_SESSION_V4) $(ENABLE_APPLICATION_MANIFEST) $(ENABLE_ATTACHMENT_ELEMENT) $(ENABLE_AVF_CAPTIONS) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CONTENT_FILTERING) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS_ANIMATIONS_LEVEL_2) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_SCROLL_SNAP) $(ENABLE_CSS_SELECTORS_LEVEL4) $(ENABLE_CSS_TRAILING_WORD) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATA_INTERACTION) $(ENABLE_DATACUE_VALUE) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DRAG_SUPPORT) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_EXPERIMENTAL_FEATURES) $(ENABLE_FAST_JIT_PERMISSIONS) $(ENABLE_FILTERS_LEVEL_2) $(ENABLE_FTL_JIT) $(ENABLE_FULLSCREEN_API) $(ENABLE_PICTUREINPICTURE_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDEXED_DATABASE_IN_WORKERS) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_INTERSECTION_OBSERVER) $(ENABLE_INTL) $(ENABLE_IOS_GESTURE_EVENTS) $(ENABLE_IOS_TOUCH_EVENTS) $(ENABLE_JIT) $(ENABLE_JS_ASYNC_ITERATION) $(ENABLE_KEYBOARD_CODE_ATTRIBUTE) $(ENABLE_KEYBOARD_KEY_ATTRIBUTE) $(ENABLE_LAYOUT_FORMATTING_CONTEXT) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_CUSTOM_PROTOCOL_MANAGER) $(ENABLE_LEGACY_ENCRYPTED_MEDIA) $(ENABLE_LETTERPRESS) $(ENABLE_MAC_GESTURE_EVENTS) $(ENABLE_MAC_VIDEO_TOOLBOX) $(ENABLE_MATHML) $(ENABLE_MEDIA_CAPTURE) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SESSION) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_MEDIA_STREAM) $(ENABLE_METER_ELEMENT) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NAVIGATOR_STANDALONE) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAYMENT_REQUEST) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_POINTER_LOCK) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_RESOURCE_USAGE) $(ENABLE_RUBBER_BANDING) $(ENABLE_SERVICE_CONTROLS) $(ENABLE_SERVICE_WORKER) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_STREAMS_API) $(ENABLE_SUBTLE_CRYPTO) $(ENABLE_SVG_FONTS) $(ENABLE_TELEPHONE_NUMBER_DETECTION) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_USER_MESSAGE_HANDLERS) $(ENABLE_USERSELECT_ALL) $(ENABLE_VARIATION_FONTS) $(ENABLE_VIDEO) $(ENABLE_VIDEO_PRESENTATION_MODE) $(ENABLE_VIDEO_TRACK) $(ENABLE_VIDEO_USES_ELEMENT_FULLSCREEN) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_AUTHN) $(ENABLE_WEB_RTC) $(ENABLE_WEBASSEMBLY) $(ENABLE_WEBASSEMBLY_STREAMING_API) $(ENABLE_WEBGL) $(ENABLE_WEBGL2) $(ENABLE_WEBGPU) $(ENABLE_WIRELESS_PLAYBACK_TARGET) $(ENABLE_XSLT);

Tools/WebKitTestRunner/TestController.cpp

@@void TestController::resetPreferencesToConsistentValues(const TestOptions& optio
716716 WKPreferencesSetFileAccessFromFileURLsAllowed(preferences, true);
717717#if ENABLE(FULLSCREEN_API)
718718 WKPreferencesSetFullScreenEnabled(preferences, true);
 719#endif
 720#if ENABLE(PICTUREINPICTURE_API)
 721 WKPreferencesSetPictureInPictureEnabled(preferences, true);
719722#endif
720723 WKPreferencesSetPageCacheEnabled(preferences, false);
721724 WKPreferencesSetAsynchronousPluginInitializationEnabled(preferences, false);

LayoutTests/imported/w3c/web-platform-tests/picture-in-picture/META.yml

 1spec: https://wicg.github.io/picture-in-picture/
 2suggested_reviewers:
 3 - beaufortfrancois
 4 - mounirlamouri

LayoutTests/imported/w3c/web-platform-tests/picture-in-picture/disable-picture-in-picture.html

 1<!DOCTYPE html>
 2<title>Test disable Picture-in-Picture</title>
 3<script src="/resources/testharness.js"></script>
 4<script src="/resources/testharnessreport.js"></script>
 5<script src="/resources/testdriver.js"></script>
 6<script src="/resources/testdriver-vendor.js"></script>
 7<script src="resources/picture-in-picture-helpers.js"></script>
 8<body></body>
 9<script>
 10test(t => {
 11 const video = document.createElement('video');
 12 assert_false(video.disablePictureInPicture); // default value
 13
 14 video.setAttribute('disablePictureInPicture', 'foo');
 15 assert_true(video.disablePictureInPicture);
 16
 17 video.removeAttribute('disablepictureinpicture');
 18 assert_false(video.disablePictureInPicture);
 19
 20 video.disablePictureInPicture = true;
 21 assert_equals(video.getAttribute('disablepictureinpicture'), '');
 22
 23 video.disablePictureInPicture = false;
 24 assert_equals(video.getAttribute('disablepictureinpicture'), null);
 25}, 'Test disablePictureInPicture IDL attribute');
 26
 27promise_test(async t => {
 28 const video = await loadVideo();
 29 video.disablePictureInPicture = true;
 30 return promise_rejects(t, 'InvalidStateError',
 31 requestPictureInPictureWithTrustedClick(video));
 32}, 'Request Picture-in-Picture rejects if disablePictureInPicture is true');
 33
 34promise_test(async t => {
 35 const video = await loadVideo();
 36 return test_driver.bless('request Picture-in-Picture', async () => {
 37 const promise = video.requestPictureInPicture();
 38 video.disablePictureInPicture = true;
 39 await promise_rejects(t, 'InvalidStateError', promise);
 40 assert_equals(document.pictureInPictureElement, null);
 41 });
 42}, 'Request Picture-in-Picture rejects if disablePictureInPicture becomes ' +
 43 'true before promise resolves.');
 44
 45promise_test(async t => {
 46 const video = await loadVideo();
 47 return requestPictureInPictureWithTrustedClick(video)
 48 .then(() => {
 49 video.disablePictureInPicture = true;
 50 assert_equals(document.pictureInPictureElement, null);
 51 });
 52}, 'pictureInPictureElement is unset if disablePictureInPicture becomes true');
 53
 54promise_test(async t => {
 55 const video = await loadVideo();
 56 return requestPictureInPictureWithTrustedClick(video)
 57 .then(() => {
 58 video.disablePictureInPicture = false;
 59 assert_equals(document.pictureInPictureElement, video);
 60 });
 61}, 'pictureInPictureElement is unchanged if disablePictureInPicture becomes false');
 62
 63promise_test(async t => {
 64 const video = await loadVideo();
 65 return requestPictureInPictureWithTrustedClick(video)
 66 .then(() => {
 67 document.createElement('video').disablePictureInPicture = true;
 68 assert_equals(document.pictureInPictureElement, video);
 69 });
 70}, 'pictureInPictureElement is unchanged if disablePictureInPicture becomes ' +
 71 'true for another video');
 72</script>

LayoutTests/imported/w3c/web-platform-tests/picture-in-picture/enter-picture-in-picture.html

 1<!DOCTYPE html>
 2<title>Test enterpictureinpicture event</title>
 3<script src="/resources/testharness.js"></script>
 4<script src="/resources/testharnessreport.js"></script>
 5<script src="/resources/testdriver.js"></script>
 6<script src="/resources/testdriver-vendor.js"></script>
 7<script src="resources/picture-in-picture-helpers.js"></script>
 8<body></body>
 9<script>
 10promise_test(async t => {
 11 const video = await loadVideo();
 12
 13 video.addEventListener('enterpictureinpicture', t.step_func_done(event => {
 14 assert_equals(event.target, video);
 15 assert_equals(event.bubbles, true);
 16 assert_equals(event.cancelable, false);
 17 assert_equals(event.composed, false);
 18 assert_equals(document.pictureInPictureElement, video);
 19 }));
 20
 21 return requestPictureInPictureWithTrustedClick(video);
 22});
 23</script>

LayoutTests/imported/w3c/web-platform-tests/picture-in-picture/exit-picture-in-picture.html

 1<!DOCTYPE html>
 2<title>Test exit Picture-in-Picture</title>
 3<script src="/resources/testharness.js"></script>
 4<script src="/resources/testharnessreport.js"></script>
 5<script src="/resources/testdriver.js"></script>
 6<script src="/resources/testdriver-vendor.js"></script>
 7<script src="resources/picture-in-picture-helpers.js"></script>
 8<body></body>
 9<script>
 10promise_test(async t => {
 11 const video = await loadVideo();
 12 return requestPictureInPictureWithTrustedClick(video)
 13 .then(() => document.exitPictureInPicture());
 14}, 'Exit Picture-in-Picture resolves when there is a Picture-in-Picture video');
 15
 16promise_test(t => {
 17 return promise_rejects(t, 'InvalidStateError',
 18 document.exitPictureInPicture());
 19}, 'Exit Picture-in-Picture rejects when there is no Picture-in-Picture video');
 20</script>

LayoutTests/imported/w3c/web-platform-tests/picture-in-picture/idlharness.window.js

 1// META: script=/resources/WebIDLParser.js
 2// META: script=/resources/idlharness.js
 3// META: script=/resources/testdriver.js
 4// META: script=/resources/testdriver-vendor.js
 5// META: script=resources/picture-in-picture-helpers.js
 6
 7'use strict';
 8
 9// https://wicg.github.io/picture-in-picture/
 10
 11idl_test(
 12 ['picture-in-picture'],
 13 ['html', 'dom'],
 14 async idl_array => {
 15 idl_array.add_objects({
 16 Document: ['document'],
 17 DocumentOrShadowRoot: ['document'],
 18 HTMLVideoElement: ['video'],
 19 PictureInPictureWindow: ['pipw'],
 20 });
 21
 22 self.video = await loadVideo();
 23 self.pipw = await requestPictureInPictureWithTrustedClick(video);
 24 }
 25);

LayoutTests/imported/w3c/web-platform-tests/picture-in-picture/leave-picture-in-picture.html

 1<!DOCTYPE html>
 2<title>Test leavepictureinpicture event</title>
 3<script src="/resources/testharness.js"></script>
 4<script src="/resources/testharnessreport.js"></script>
 5<script src="/resources/testdriver.js"></script>
 6<script src="/resources/testdriver-vendor.js"></script>
 7<script src="resources/picture-in-picture-helpers.js"></script>
 8<body></body>
 9<script>
 10promise_test(async t => {
 11 const video = await loadVideo();
 12
 13 video.addEventListener('leavepictureinpicture', t.step_func_done(event => {
 14 assert_equals(event.target, video);
 15 assert_equals(event.bubbles, true);
 16 assert_equals(event.cancelable, false);
 17 assert_equals(event.composed, false);
 18 assert_equals(document.pictureInPictureElement, null);
 19 }));
 20
 21 return requestPictureInPictureWithTrustedClick(video)
 22 .then(() => document.exitPictureInPicture());
 23}, 'leavepictureinpicture event is fired if document.exitPictureInPicture');
 24
 25promise_test(async t => {
 26 const video = await loadVideo();
 27
 28 video.addEventListener('leavepictureinpicture', t.step_func_done(event => {
 29 assert_equals(event.target, video);
 30 assert_equals(event.bubbles, true);
 31 assert_equals(event.cancelable, false);
 32 assert_equals(event.composed, false);
 33 assert_equals(document.pictureInPictureElement, null);
 34 }));
 35
 36 return requestPictureInPictureWithTrustedClick(video)
 37 .then(() => {
 38 video.disablePictureInPicture = true;
 39 });
 40}, 'leavepictureinpicture event is fired if video.disablePictureInPicture is set to true');
 41</script>

LayoutTests/imported/w3c/web-platform-tests/picture-in-picture/picture-in-picture-element.html

 1<!DOCTYPE html>
 2<title>Test Picture-in-Picture element</title>
 3<script src="/resources/testharness.js"></script>
 4<script src="/resources/testharnessreport.js"></script>
 5<script src="/resources/testdriver.js"></script>
 6<script src="/resources/testdriver-vendor.js"></script>
 7<script src="resources/picture-in-picture-helpers.js"></script>
 8<body></body>
 9<script>
 10promise_test(async t => {
 11 assert_equals(document.pictureInPictureElement, null);
 12 const video = await loadVideo();
 13
 14 return requestPictureInPictureWithTrustedClick(video)
 15 .then(() => {
 16 assert_equals(document.pictureInPictureElement, video);
 17 return document.exitPictureInPicture();
 18 })
 19 .then(() => {
 20 assert_equals(document.pictureInPictureElement, null);
 21 });
 22});
 23</script>

LayoutTests/imported/w3c/web-platform-tests/picture-in-picture/picture-in-picture-window.html

 1<!DOCTYPE html>
 2<title>Test Picture-in-Picture window</title>
 3<script src="/resources/testharness.js"></script>
 4<script src="/resources/testharnessreport.js"></script>
 5<script src="/resources/testdriver.js"></script>
 6<script src="/resources/testdriver-vendor.js"></script>
 7<script src="resources/picture-in-picture-helpers.js"></script>
 8<body></body>
 9<script>
 10promise_test(async t => {
 11 const video = await loadVideo();
 12 return requestPictureInPictureWithTrustedClick(video)
 13 .then(pipWindow => {
 14 assert_not_equals(pipWindow.width, 0);
 15 assert_not_equals(pipWindow.height, 0);
 16 });
 17}, 'Picture-in-Picture window dimensions are set after entering Picture-in-Picture');
 18
 19promise_test(async t => {
 20 const video1 = await loadVideo();
 21 const video2 = await loadVideo();
 22 return requestPictureInPictureWithTrustedClick(video1)
 23 .then(pipWindow1 => {
 24 return requestPictureInPictureWithTrustedClick(video2)
 25 .then(pipWindow2 => {
 26 assert_equals(pipWindow1.width, 0);
 27 assert_equals(pipWindow1.height, 0);
 28 assert_not_equals(pipWindow2.width, 0);
 29 assert_not_equals(pipWindow2.height, 0);
 30 });
 31 });
 32}, 'Picture-in-Picture window dimensions are set to 0 after entering ' +
 33 'Picture-in-Picture for another video');
 34
 35promise_test(async t => {
 36 const video = await loadVideo();
 37
 38 video.addEventListener('leavepictureinpicture', t.step_func_done(event => {
 39 assert_unreached('leavepictureinpicture event should not fire.')
 40 }));
 41
 42 let enterCounts = 0;
 43 video.addEventListener('enterpictureinpicture', event => {
 44 enterCounts++;
 45 });
 46
 47 return requestPictureInPictureWithTrustedClick(video)
 48 .then(pipWindow1 => {
 49 pipWindow1.onresize = function foo() {};
 50 return requestPictureInPictureWithTrustedClick(video)
 51 .then(pipWindow2 => {
 52 assert_equals(pipWindow1, pipWindow2);
 53 assert_equals(pipWindow1.width, pipWindow2.width);
 54 assert_equals(pipWindow1.height, pipWindow2.height);
 55 assert_equals(pipWindow1.onresize, pipWindow2.onresize);
 56 assert_equals(enterCounts, 1);
 57 });
 58 });
 59}, 'Picture-in-Picture window is unchanged after entering ' +
 60 'Picture-in-Picture for video already in Picture-in-Picture');
 61
 62promise_test(async t => {
 63 const video = await loadVideo();
 64
 65 return requestPictureInPictureWithTrustedClick(video)
 66 .then(pipWindow => {
 67 return document.exitPictureInPicture()
 68 .then(() => {
 69 assert_equals(pipWindow.width, 0);
 70 assert_equals(pipWindow.height, 0);
 71 });
 72 });
 73}, 'Picture-in-Picture window dimensions are set to 0 after exiting Picture-in-Picture');
 74
 75promise_test(async t => {
 76 const video = await loadVideo();
 77 let thePipWindow;
 78
 79 video.addEventListener('leavepictureinpicture', t.step_func_done(event => {
 80 assert_equals(thePipWindow.width, 0);
 81 assert_equals(thePipWindow.height, 0);
 82 }));
 83
 84 return requestPictureInPictureWithTrustedClick(video)
 85 .then(pipWindow => {
 86 thePipWindow = pipWindow;
 87 video.disablePictureInPicture = true;
 88 });
 89}, 'Picture-in-Picture window dimensions are set to 0 if ' +
 90 'disablePictureInPicture becomes true');
 91</script>

LayoutTests/imported/w3c/web-platform-tests/picture-in-picture/request-picture-in-picture-twice.html

 1<!DOCTYPE html>
 2<title>Test request Picture-in-Picture on two videos</title>
 3<script src="/resources/testharness.js"></script>
 4<script src="/resources/testharnessreport.js"></script>
 5<script src="/resources/testdriver.js"></script>
 6<script src="/resources/testdriver-vendor.js"></script>
 7<script src="resources/picture-in-picture-helpers.js"></script>
 8<body></body>
 9<script>
 10promise_test(async t => {
 11 const video1 = await loadVideo();
 12 const video2 = await loadVideo();
 13 return test_driver.bless(
 14 'request Picture-in-Picture',
 15 async () => {
 16 video1.requestPictureInPicture();
 17 promise_rejects(t, 'NotAllowedError', video2.requestPictureInPicture());
 18 }
 19 );
 20}, 'request Picture-in-Picture consumes user gesture');
 21</script>

LayoutTests/imported/w3c/web-platform-tests/picture-in-picture/request-picture-in-picture.html

 1<!DOCTYPE html>
 2<title>Test request Picture-in-Picture</title>
 3<script src="/resources/testharness.js"></script>
 4<script src="/resources/testharnessreport.js"></script>
 5<script src="/resources/testdriver.js"></script>
 6<script src="/resources/testdriver-vendor.js"></script>
 7<script src="resources/picture-in-picture-helpers.js"></script>
 8<body></body>
 9<script>
 10promise_test(async t => {
 11 const video = await loadVideo();
 12 return requestPictureInPictureWithTrustedClick(video);
 13}, 'request Picture-in-Picture resolves on user click');
 14
 15promise_test(t => {
 16 const video = document.createElement('video');
 17 return promise_rejects(t, 'InvalidStateError',
 18 requestPictureInPictureWithTrustedClick(video));
 19}, 'request Picture-in-Picture requires loaded metadata for the video element');
 20
 21promise_test(async t => {
 22 const video = document.createElement('video');
 23 await new Promise(resolve => {
 24 video.src = '/media/sound_5.oga';
 25 video.onloadeddata = resolve;
 26 }).then(() => {
 27 return promise_rejects(t, 'InvalidStateError',
 28 requestPictureInPictureWithTrustedClick(video));
 29 })
 30}, 'request Picture-in-Picture requires video track for the video element');
 31
 32promise_test(async t => {
 33 const video = await loadVideo();
 34 return promise_rejects(t, 'NotAllowedError', video.requestPictureInPicture());
 35}, 'request Picture-in-Picture requires a user gesture');
 36</script>

LayoutTests/imported/w3c/web-platform-tests/picture-in-picture/resources/picture-in-picture-helpers.js

 1if (!('pictureInPictureEnabled' in document)) {
 2 HTMLVideoElement.prototype.requestPictureInPicture = function() {
 3 return Promise.reject('Picture-in-Picture API is not available');
 4 }
 5}
 6
 7function loadVideo(activeDocument, sourceUrl) {
 8 return new Promise((resolve, reject) => {
 9 const document = activeDocument || window.document;
 10 const video = document.createElement('video');
 11 video.src = sourceUrl || '/media/movie_5.ogv';
 12 video.onloadedmetadata = () => { resolve(video); };
 13 video.onerror = error => { reject(error); };
 14 });
 15}
 16
 17// Calls requestPictureInPicture() in a context that's 'allowed to request PiP'.
 18function requestPictureInPictureWithTrustedClick(videoElement) {
 19 return test_driver.bless(
 20 'request Picture-in-Picture',
 21 () => videoElement.requestPictureInPicture());
 22}

LayoutTests/imported/w3c/web-platform-tests/picture-in-picture/shadow-dom.html

 1<!DOCTYPE html>
 2<title>Test for pictureInPictureElement adjustment for Shadow DOM</title>
 3<script src='/resources/testharness.js'></script>
 4<script src='/resources/testharnessreport.js'></script>
 5<script src="/resources/testdriver.js"></script>
 6<script src="/resources/testdriver-vendor.js"></script>
 7<script src="resources/picture-in-picture-helpers.js"></script>
 8<script src='../shadow-dom/resources/shadow-dom.js'></script>
 9<body>
 10<div id='host'>
 11 <template data-mode='open' id='root'>
 12 <slot></slot>
 13 </template>
 14 <div id='host2'>
 15 <template data-mode='open' id='root2'>
 16 <div id='host3'>
 17 <template data-mode='open' id='root3'>
 18 <video id='video'></video>
 19 <div id='host4'>
 20 <template data-mode='open' id='root4'>
 21 <div></div>
 22 </template>
 23 </div>
 24 </template>
 25 </div>
 26 <div id='host5'>
 27 <template data-mode='open' id='root5'>
 28 <div></div>
 29 </template>
 30 </div>
 31 </template>
 32 </div>
 33</div>
 34</body>
 35<script>
 36promise_test(async t => {
 37 const ids = createTestTree(host);
 38 document.body.appendChild(ids.host);
 39
 40 assert_equals(document.pictureInPictureElement, null);
 41 assert_equals(ids.root.pictureInPictureElement, null);
 42 assert_equals(ids.root2.pictureInPictureElement, null);
 43 assert_equals(ids.root3.pictureInPictureElement, null);
 44 assert_equals(ids.root4.pictureInPictureElement, null);
 45 assert_equals(ids.root5.pictureInPictureElement, null);
 46
 47 await new Promise(resolve => {
 48 ids.video.src = '/media/movie_5.ogv';
 49 ids.video.onloadeddata = resolve;
 50 })
 51 .then(() => requestPictureInPictureWithTrustedClick(ids.video))
 52 .then(() => {
 53 assert_equals(document.pictureInPictureElement, ids.host2);
 54 assert_equals(ids.root.pictureInPictureElement, null);
 55 assert_equals(ids.root2.pictureInPictureElement, ids.host3);
 56 assert_equals(ids.root3.pictureInPictureElement, ids.video);
 57 assert_equals(ids.root4.pictureInPictureElement, null);
 58 assert_equals(ids.root5.pictureInPictureElement, null);
 59 })
 60});
 61</script>