Diff
Modified: trunk/Source/_javascript_Core/ChangeLog (177621 => 177622)
--- trunk/Source/_javascript_Core/ChangeLog 2014-12-20 17:26:56 UTC (rev 177621)
+++ trunk/Source/_javascript_Core/ChangeLog 2014-12-20 18:28:37 UTC (rev 177622)
@@ -1,3 +1,13 @@
+2014-12-20 Eric Carlson <[email protected]>
+
+ [iOS] add optimized fullscreen API
+ https://bugs.webkit.org/show_bug.cgi?id=139833
+ <rdar://problem/18844486>
+
+ Reviewed by Simon Fraser.
+
+ * Configurations/FeatureDefines.xcconfig: Add ENABLE_VIDEO_PRESENTATION_MODE.
+
2014-12-20 David Kilzer <[email protected]>
Switch from using PLATFORM_NAME to SDK selectors in WebCore, WebInspectorUI, WebKit, WebKit2
Modified: trunk/Source/_javascript_Core/Configurations/FeatureDefines.xcconfig (177621 => 177622)
--- trunk/Source/_javascript_Core/Configurations/FeatureDefines.xcconfig 2014-12-20 17:26:56 UTC (rev 177621)
+++ trunk/Source/_javascript_Core/Configurations/FeatureDefines.xcconfig 2014-12-20 18:28:37 UTC (rev 177622)
@@ -193,6 +193,7 @@
ENABLE_TOUCH_ICON_LOADING = ;
ENABLE_USERSELECT_ALL = ENABLE_USERSELECT_ALL;
ENABLE_VIDEO = ENABLE_VIDEO;
+ENABLE_VIDEO_PRESENTATION_MODE[sdk=iphone*] = ENABLE_VIDEO_PRESENTATION_MODE;
ENABLE_VIDEO_TRACK = ENABLE_VIDEO_TRACK;
ENABLE_DATACUE_VALUE = ENABLE_DATACUE_VALUE;
ENABLE_VIEW_MODE_CSS_MEDIA = ;
@@ -226,4 +227,4 @@
ENABLE_SATURATED_LAYOUT_ARITHMETIC = ENABLE_SATURATED_LAYOUT_ARITHMETIC;
-FEATURE_DEFINES = $(ENABLE_3D_RENDERING) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_AVF_CAPTIONS) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CANVAS_PATH) $(ENABLE_CANVAS_PROXY) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CONTENT_FILTERING) $(ENABLE_CSP_NEXT) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_GRID_LAYOUT) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_REGIONS) $(ENABLE_CSS_SELECTORS_LEVEL4) $(ENABLE_CSS_SHAPES) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS3_TEXT_LINE_BREAK) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DATA_TRANSFER_ITEMS) $(ENABLE_DETAILS_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DOM4_EVENTS_CONSTRUCTOR) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_ENCRYPTED_MEDIA_V2) $(ENABLE_FILTERS_LEVEL_2) $(ENABLE_FONT_LOAD_EVENTS) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD)
$(ENABLE_GAMEPAD_DEPRECATED) $(ENABLE_GEOLOCATION) $(ENABLE_HIDDEN_PAGE_DOM_TIMER_THROTTLING) $(ENABLE_ICONDATABASE) $(ENABLE_SERVICE_CONTROLS) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDEXED_DATABASE_IN_WORKERS) $(ENABLE_INDIE_UI) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_COLOR_POPOVER) $(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_INSPECTOR) $(ENABLE_IOS_AIRPLAY) $(ENABLE_IOS_GESTURE_EVENTS) $(ENABLE_IOS_TEXT_AUTOSIZING) $(ENABLE_IOS_TOUCH_EVENTS) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_NOTIFICATIONS) $(ENABLE_LEGACY_VENDOR_PREFIXES) $(ENABLE_LEGACY_WEB_AUDIO) $(ENABLE_LETTERPRESS) $(ENABLE_LINK_PREFETCH) $(ENABLE_MATHML) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_METER_ELEMENT) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NAVI
GATOR_HWCONCURRENCY) $(ENABLE_NOTIFICATIONS) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_POINTER_LOCK) $(ENABLE_PROMISES) $(ENABLE_PROXIMITY_EVENTS) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REQUEST_ANIMATION_FRAME) $(ENABLE_REQUEST_AUTOCOMPLETE) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_RUBBER_BANDING) $(ENABLE_SHARED_WORKERS) $(ENABLE_CSS_SCROLL_SNAP) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_SQL_DATABASE) $(ENABLE_SUBTLE_CRYPTO) $(ENABLE_SVG_FONTS) $(ENABLE_TELEPHONE_NUMBER_DETECTION) $(ENABLE_TEMPLATE_ELEMENT) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_TOUCH_ICON_LOADING) $(ENABLE_USERSELECT_ALL) $(ENABLE_VIDEO) $(ENABLE_VIDEO_TRACK) $(ENABLE_DATACUE_VALUE) $(ENABLE_VIEW_MODE_CSS_MEDIA) $(ENABLE_WEBGL) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_REPLAY) $(ENABLE_WEB_SOCKETS) $(ENABLE_PICTURE_SIZES) $(ENABLE_WEB_TIMING) $(ENABLE_WEBVTT_REGIONS) $(ENABLE_XHR_TIMEOUT) $(ENABLE_XSLT) $(ENABLE_FTL_JIT) $(ENABLE_LLINT_C_LOOP) $(ENABLE_SATURATED_LAYOUT
_ARITHMETIC);
+FEATURE_DEFINES = $(ENABLE_3D_RENDERING) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_AVF_CAPTIONS) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CANVAS_PATH) $(ENABLE_CANVAS_PROXY) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CONTENT_FILTERING) $(ENABLE_CSP_NEXT) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_GRID_LAYOUT) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_REGIONS) $(ENABLE_CSS_SELECTORS_LEVEL4) $(ENABLE_CSS_SHAPES) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS3_TEXT_LINE_BREAK) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DATA_TRANSFER_ITEMS) $(ENABLE_DETAILS_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DOM4_EVENTS_CONSTRUCTOR) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_ENCRYPTED_MEDIA_V2) $(ENABLE_FILTERS_LEVEL_2) $(ENABLE_FONT_LOAD_EVENTS) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD)
$(ENABLE_GAMEPAD_DEPRECATED) $(ENABLE_GEOLOCATION) $(ENABLE_HIDDEN_PAGE_DOM_TIMER_THROTTLING) $(ENABLE_ICONDATABASE) $(ENABLE_SERVICE_CONTROLS) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDEXED_DATABASE_IN_WORKERS) $(ENABLE_INDIE_UI) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_COLOR_POPOVER) $(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_INSPECTOR) $(ENABLE_IOS_AIRPLAY) $(ENABLE_IOS_GESTURE_EVENTS) $(ENABLE_IOS_TEXT_AUTOSIZING) $(ENABLE_IOS_TOUCH_EVENTS) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_NOTIFICATIONS) $(ENABLE_LEGACY_VENDOR_PREFIXES) $(ENABLE_LEGACY_WEB_AUDIO) $(ENABLE_LETTERPRESS) $(ENABLE_LINK_PREFETCH) $(ENABLE_MATHML) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_METER_ELEMENT) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NAVIG
ATOR_HWCONCURRENCY) $(ENABLE_NOTIFICATIONS) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_POINTER_LOCK) $(ENABLE_PROMISES) $(ENABLE_PROXIMITY_EVENTS) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REQUEST_ANIMATION_FRAME) $(ENABLE_REQUEST_AUTOCOMPLETE) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_RUBBER_BANDING) $(ENABLE_SHARED_WORKERS) $(ENABLE_CSS_SCROLL_SNAP) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_SQL_DATABASE) $(ENABLE_SUBTLE_CRYPTO) $(ENABLE_SVG_FONTS) $(ENABLE_TELEPHONE_NUMBER_DETECTION) $(ENABLE_TEMPLATE_ELEMENT) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_TOUCH_ICON_LOADING) $(ENABLE_USERSELECT_ALL) $(ENABLE_VIDEO) $(ENABLE_VIDEO_TRACK) $(ENABLE_DATACUE_VALUE) $(ENABLE_VIEW_MODE_CSS_MEDIA) $(ENABLE_WEBGL) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_REPLAY) $(ENABLE_WEB_SOCKETS) $(ENABLE_PICTURE_SIZES) $(ENABLE_WEB_TIMING) $(ENABLE_WEBVTT_REGIONS) $(ENABLE_XHR_TIMEOUT) $(ENABLE_XSLT) $(ENABLE_FTL_JIT) $(ENABLE_LLINT_C_LOOP) $(ENABLE_SATURATED_LAYOUT_
ARITHMETIC) $(ENABLE_VIDEO_PRESENTATION_MODE);
Modified: trunk/Source/WTF/ChangeLog (177621 => 177622)
--- trunk/Source/WTF/ChangeLog 2014-12-20 17:26:56 UTC (rev 177621)
+++ trunk/Source/WTF/ChangeLog 2014-12-20 18:28:37 UTC (rev 177622)
@@ -1,3 +1,13 @@
+2014-12-20 Eric Carlson <[email protected]>
+
+ [iOS] add optimized fullscreen API
+ https://bugs.webkit.org/show_bug.cgi?id=139833
+ <rdar://problem/18844486>
+
+ Reviewed by Simon Fraser.
+
+ * wtf/Platform.h: Define ENABLE_VIDEO_PRESENTATION_MODE.
+
2014-12-18 Gyuyoung Kim <[email protected]>
Fix build break on EFL and GTK since r177523
Modified: trunk/Source/WTF/wtf/Platform.h (177621 => 177622)
--- trunk/Source/WTF/wtf/Platform.h 2014-12-20 17:26:56 UTC (rev 177621)
+++ trunk/Source/WTF/wtf/Platform.h 2014-12-20 18:28:37 UTC (rev 177622)
@@ -1097,4 +1097,8 @@
#define WTF_USE_MEDIATOOLBOX 1
#endif
+#if PLATFORM(IOS) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 90000
+#define ENABLE_VIDEO_PRESENTATION_MODE 1
+#endif
+
#endif /* WTF_Platform_h */
Modified: trunk/Source/WebCore/ChangeLog (177621 => 177622)
--- trunk/Source/WebCore/ChangeLog 2014-12-20 17:26:56 UTC (rev 177621)
+++ trunk/Source/WebCore/ChangeLog 2014-12-20 18:28:37 UTC (rev 177622)
@@ -1,3 +1,59 @@
+2014-12-20 Eric Carlson <[email protected]>
+
+ [iOS] add optimized fullscreen API
+ https://bugs.webkit.org/show_bug.cgi?id=139833
+ <rdar://problem/18844486>
+
+ Reviewed by Simon Fraser.
+
+ * Configurations/FeatureDefines.xcconfig: Add ENABLE_VIDEO_PRESENTATION_MODE.
+
+ * Modules/mediacontrols/MediaControlsHost.cpp:
+ (WebCore::MediaControlsHost::optimizedFullscreenSupported): Deleted.
+ (WebCore::MediaControlsHost::fullscreenMode): Deleted.
+ * Modules/mediacontrols/MediaControlsHost.h:
+ * Modules/mediacontrols/MediaControlsHost.idl:
+
+ * Modules/mediacontrols/mediaControlsiOS.js:
+ (ControllerIOS.prototype.addVideoListeners): Listen for 'webkitpresentationmodechanged'.
+ (ControllerIOS.prototype.removeVideoListeners): Stop listening for 'webkitpresentationmodechanged'.
+ (ControllerIOS.prototype.configureInlineControls): Call video element instead of using the now
+ removed host property.
+ (ControllerIOS.prototype.updateControls): Ditto.
+ (ControllerIOS.prototype.presentationMode): New, return webkitPresentationMode when possible.
+ (ControllerIOS.prototype.handleFullscreenButtonClicked): Use webkitSetPresentationMode when possible.
+ (ControllerIOS.prototype.handleOptimizedFullscreenButtonClicked): Use video element instead of
+ using the now removed host method.
+ (ControllerIOS.prototype.handlePresentationModeChange): New, react to presentation mode changes.
+ (ControllerIOS.prototype.handleFullscreenChange): Call handlePresentationModeChange.
+
+ * dom/EventNames.h: Add webkitpresentationmodechanged.
+
+ * html/HTMLAttributeNames.in: Add onwebkitpresentationmodechanged.
+
+ * html/HTMLMediaElement.cpp:
+ (WebCore::HTMLMediaElement::enterFullscreen): Early return when asked to change to the current
+ mode. Call fullscreenModeChanged() instead of whacking the instance variable directly.
+ (WebCore::HTMLMediaElement::exitFullscreen): Ditto.
+ * html/HTMLMediaElement.h:
+ (WebCore::HTMLMediaElement::fullscreenModeChanged): Make virtual.
+
+ * html/HTMLVideoElement.cpp:
+ (WebCore::HTMLVideoElement::parseAttribute): Deal with onwebkitpresentationmodechange.
+ (WebCore::presentationModeFullscreen): New.
+ (WebCore::presentationModeOptimized): Ditto.
+ (WebCore::presentationModeInline): Ditto.
+ (WebCore::HTMLVideoElement::webkitSupportsPresentationMode): Ditto.
+ (WebCore::HTMLVideoElement::webkitSetPresentationMode): Ditto.
+ (WebCore::HTMLVideoElement::webkitPresentationMode): Ditto.
+ (WebCore::HTMLVideoElement::fullscreenModeChanged): Ditto.
+ * html/HTMLVideoElement.h:
+ * html/HTMLVideoElement.idl:
+
+ * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
+ (WebVideoFullscreenInterfaceAVKit::setIsOptimized): Simplify the logic a bit. Don't report
+ a mode change when
+
2014-12-20 David Kilzer <[email protected]>
Switch from using PLATFORM_NAME to SDK selectors in WebCore, WebInspectorUI, WebKit, WebKit2
Modified: trunk/Source/WebCore/Configurations/FeatureDefines.xcconfig (177621 => 177622)
--- trunk/Source/WebCore/Configurations/FeatureDefines.xcconfig 2014-12-20 17:26:56 UTC (rev 177621)
+++ trunk/Source/WebCore/Configurations/FeatureDefines.xcconfig 2014-12-20 18:28:37 UTC (rev 177622)
@@ -193,6 +193,7 @@
ENABLE_TOUCH_ICON_LOADING = ;
ENABLE_USERSELECT_ALL = ENABLE_USERSELECT_ALL;
ENABLE_VIDEO = ENABLE_VIDEO;
+ENABLE_VIDEO_PRESENTATION_MODE[sdk=iphone*] = ENABLE_VIDEO_PRESENTATION_MODE;
ENABLE_VIDEO_TRACK = ENABLE_VIDEO_TRACK;
ENABLE_DATACUE_VALUE = ENABLE_DATACUE_VALUE;
ENABLE_VIEW_MODE_CSS_MEDIA = ;
@@ -226,4 +227,4 @@
ENABLE_SATURATED_LAYOUT_ARITHMETIC = ENABLE_SATURATED_LAYOUT_ARITHMETIC;
-FEATURE_DEFINES = $(ENABLE_3D_RENDERING) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_AVF_CAPTIONS) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CANVAS_PATH) $(ENABLE_CANVAS_PROXY) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CONTENT_FILTERING) $(ENABLE_CSP_NEXT) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_GRID_LAYOUT) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_REGIONS) $(ENABLE_CSS_SELECTORS_LEVEL4) $(ENABLE_CSS_SHAPES) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS3_TEXT_LINE_BREAK) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DATA_TRANSFER_ITEMS) $(ENABLE_DETAILS_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DOM4_EVENTS_CONSTRUCTOR) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_ENCRYPTED_MEDIA_V2) $(ENABLE_FILTERS_LEVEL_2) $(ENABLE_FONT_LOAD_EVENTS) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD)
$(ENABLE_GAMEPAD_DEPRECATED) $(ENABLE_GEOLOCATION) $(ENABLE_HIDDEN_PAGE_DOM_TIMER_THROTTLING) $(ENABLE_ICONDATABASE) $(ENABLE_SERVICE_CONTROLS) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDEXED_DATABASE_IN_WORKERS) $(ENABLE_INDIE_UI) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_COLOR_POPOVER) $(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_INSPECTOR) $(ENABLE_IOS_AIRPLAY) $(ENABLE_IOS_GESTURE_EVENTS) $(ENABLE_IOS_TEXT_AUTOSIZING) $(ENABLE_IOS_TOUCH_EVENTS) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_NOTIFICATIONS) $(ENABLE_LEGACY_VENDOR_PREFIXES) $(ENABLE_LEGACY_WEB_AUDIO) $(ENABLE_LETTERPRESS) $(ENABLE_LINK_PREFETCH) $(ENABLE_MATHML) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_METER_ELEMENT) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NAVI
GATOR_HWCONCURRENCY) $(ENABLE_NOTIFICATIONS) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_POINTER_LOCK) $(ENABLE_PROMISES) $(ENABLE_PROXIMITY_EVENTS) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REQUEST_ANIMATION_FRAME) $(ENABLE_REQUEST_AUTOCOMPLETE) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_RUBBER_BANDING) $(ENABLE_SHARED_WORKERS) $(ENABLE_CSS_SCROLL_SNAP) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_SQL_DATABASE) $(ENABLE_SUBTLE_CRYPTO) $(ENABLE_SVG_FONTS) $(ENABLE_TELEPHONE_NUMBER_DETECTION) $(ENABLE_TEMPLATE_ELEMENT) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_TOUCH_ICON_LOADING) $(ENABLE_USERSELECT_ALL) $(ENABLE_VIDEO) $(ENABLE_VIDEO_TRACK) $(ENABLE_DATACUE_VALUE) $(ENABLE_VIEW_MODE_CSS_MEDIA) $(ENABLE_WEBGL) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_REPLAY) $(ENABLE_WEB_SOCKETS) $(ENABLE_PICTURE_SIZES) $(ENABLE_WEB_TIMING) $(ENABLE_WEBVTT_REGIONS) $(ENABLE_XHR_TIMEOUT) $(ENABLE_XSLT) $(ENABLE_FTL_JIT) $(ENABLE_LLINT_C_LOOP) $(ENABLE_SATURATED_LAYOUT
_ARITHMETIC);
+FEATURE_DEFINES = $(ENABLE_3D_RENDERING) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_AVF_CAPTIONS) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CANVAS_PATH) $(ENABLE_CANVAS_PROXY) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CONTENT_FILTERING) $(ENABLE_CSP_NEXT) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_GRID_LAYOUT) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_REGIONS) $(ENABLE_CSS_SELECTORS_LEVEL4) $(ENABLE_CSS_SHAPES) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS3_TEXT_LINE_BREAK) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DATA_TRANSFER_ITEMS) $(ENABLE_DETAILS_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DOM4_EVENTS_CONSTRUCTOR) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_ENCRYPTED_MEDIA_V2) $(ENABLE_FILTERS_LEVEL_2) $(ENABLE_FONT_LOAD_EVENTS) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD)
$(ENABLE_GAMEPAD_DEPRECATED) $(ENABLE_GEOLOCATION) $(ENABLE_HIDDEN_PAGE_DOM_TIMER_THROTTLING) $(ENABLE_ICONDATABASE) $(ENABLE_SERVICE_CONTROLS) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDEXED_DATABASE_IN_WORKERS) $(ENABLE_INDIE_UI) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_COLOR_POPOVER) $(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_INSPECTOR) $(ENABLE_IOS_AIRPLAY) $(ENABLE_IOS_GESTURE_EVENTS) $(ENABLE_IOS_TEXT_AUTOSIZING) $(ENABLE_IOS_TOUCH_EVENTS) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_NOTIFICATIONS) $(ENABLE_LEGACY_VENDOR_PREFIXES) $(ENABLE_LEGACY_WEB_AUDIO) $(ENABLE_LETTERPRESS) $(ENABLE_LINK_PREFETCH) $(ENABLE_MATHML) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_METER_ELEMENT) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NAVIG
ATOR_HWCONCURRENCY) $(ENABLE_NOTIFICATIONS) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_POINTER_LOCK) $(ENABLE_PROMISES) $(ENABLE_PROXIMITY_EVENTS) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REQUEST_ANIMATION_FRAME) $(ENABLE_REQUEST_AUTOCOMPLETE) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_RUBBER_BANDING) $(ENABLE_SHARED_WORKERS) $(ENABLE_CSS_SCROLL_SNAP) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_SQL_DATABASE) $(ENABLE_SUBTLE_CRYPTO) $(ENABLE_SVG_FONTS) $(ENABLE_TELEPHONE_NUMBER_DETECTION) $(ENABLE_TEMPLATE_ELEMENT) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_TOUCH_ICON_LOADING) $(ENABLE_USERSELECT_ALL) $(ENABLE_VIDEO) $(ENABLE_VIDEO_TRACK) $(ENABLE_DATACUE_VALUE) $(ENABLE_VIEW_MODE_CSS_MEDIA) $(ENABLE_WEBGL) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_REPLAY) $(ENABLE_WEB_SOCKETS) $(ENABLE_PICTURE_SIZES) $(ENABLE_WEB_TIMING) $(ENABLE_WEBVTT_REGIONS) $(ENABLE_XHR_TIMEOUT) $(ENABLE_XSLT) $(ENABLE_FTL_JIT) $(ENABLE_LLINT_C_LOOP) $(ENABLE_SATURATED_LAYOUT_
ARITHMETIC) $(ENABLE_VIDEO_PRESENTATION_MODE);
Modified: trunk/Source/WebCore/Modules/mediacontrols/MediaControlsHost.cpp (177621 => 177622)
--- trunk/Source/WebCore/Modules/mediacontrols/MediaControlsHost.cpp 2014-12-20 17:26:56 UTC (rev 177621)
+++ trunk/Source/WebCore/Modules/mediacontrols/MediaControlsHost.cpp 2014-12-20 18:28:37 UTC (rev 177622)
@@ -195,16 +195,6 @@
#endif
}
-bool MediaControlsHost::optimizedFullscreenSupported()
-{
-#if PLATFORM(IOS)
- if (!wkIsOptimizedFullscreenSupported())
- return false;
-#endif
-
- return m_mediaElement->mediaSession().allowsAlternateFullscreen(*m_mediaElement);
-}
-
void MediaControlsHost::updateCaptionDisplaySizes()
{
if (m_textTrackContainer)
@@ -287,25 +277,6 @@
m_mediaElement->setMediaControlsDependOnPageScaleFactor(value);
}
-String MediaControlsHost::fullscreenMode() const
-{
- DEPRECATED_DEFINE_STATIC_LOCAL(String, none, (ASCIILiteral("none")));
- DEPRECATED_DEFINE_STATIC_LOCAL(String, standard, (ASCIILiteral("standard")));
- DEPRECATED_DEFINE_STATIC_LOCAL(String, optimized, (ASCIILiteral("optimized")));
- String mode = none;
-
- if (m_mediaElement->fullscreenMode() == HTMLMediaElement::VideoFullscreenModeNone)
- mode = none;
- else if (m_mediaElement->fullscreenMode() == HTMLMediaElement::VideoFullscreenModeStandard)
- mode = standard;
- else if (m_mediaElement->fullscreenMode() & HTMLMediaElement::VideoFullscreenModeOptimized)
- mode = optimized;
-
- LOG(Media, "MediaControlsHost::fullscreenMode - returning \"%s\"", mode.utf8().data());
-
- return mode;
-}
-
String MediaControlsHost::mediaUIImageData(const String& partID) const
{
#if PLATFORM(IOS)
Modified: trunk/Source/WebCore/Modules/mediacontrols/MediaControlsHost.h (177621 => 177622)
--- trunk/Source/WebCore/Modules/mediacontrols/MediaControlsHost.h 2014-12-20 17:26:56 UTC (rev 177621)
+++ trunk/Source/WebCore/Modules/mediacontrols/MediaControlsHost.h 2014-12-20 18:28:37 UTC (rev 177622)
@@ -72,7 +72,6 @@
void exitedFullscreen();
void enterFullscreenOptimized();
bool optimizedFullscreenSupported();
- String fullscreenMode() const;
String mediaUIImageData(const String&) const;
String externalDeviceDisplayName() const;
Modified: trunk/Source/WebCore/Modules/mediacontrols/MediaControlsHost.idl (177621 => 177622)
--- trunk/Source/WebCore/Modules/mediacontrols/MediaControlsHost.idl 2014-12-20 17:26:56 UTC (rev 177621)
+++ trunk/Source/WebCore/Modules/mediacontrols/MediaControlsHost.idl 2014-12-20 18:28:37 UTC (rev 177622)
@@ -29,12 +29,6 @@
"tvout"
};
-enum FullscreenMode {
- "none",
- "standard",
- "optimized"
-};
-
enum MediaUIPartID {
"optimized-fullscreen-button",
"optimized-fullscreen-placeholder"
@@ -67,7 +61,5 @@
void enteredFullscreen();
void exitedFullscreen();
void enterFullscreenOptimized();
- readonly attribute boolean optimizedFullscreenSupported;
- readonly attribute FullscreenMode fullscreenMode;
DOMString mediaUIImageData(MediaUIPartID partID);
};
Modified: trunk/Source/WebCore/Modules/mediacontrols/mediaControlsiOS.js (177621 => 177622)
--- trunk/Source/WebCore/Modules/mediacontrols/mediaControlsiOS.js 2014-12-20 17:26:56 UTC (rev 177621)
+++ trunk/Source/WebCore/Modules/mediacontrols/mediaControlsiOS.js 2014-12-20 18:28:37 UTC (rev 177622)
@@ -33,6 +33,7 @@
this.listenFor(this.video, 'webkitbeginfullscreen', this.handleFullscreenChange);
this.listenFor(this.video, 'webkitendfullscreen', this.handleFullscreenChange);
this.listenFor(this.video, 'webkitcurrentplaybacktargetiswirelesschanged', this.handleWirelessPlaybackChange);
+ this.listenFor(this.video, 'webkitpresentationmodechanged', this.handlePresentationModeChange);
},
removeVideoListeners: function() {
@@ -41,6 +42,7 @@
this.stopListeningFor(this.video, 'webkitbeginfullscreen', this.handleFullscreenChange);
this.stopListeningFor(this.video, 'webkitendfullscreen', this.handleFullscreenChange);
this.stopListeningFor(this.video, 'webkitcurrentplaybacktargetiswirelesschanged', this.handleWirelessPlaybackChange);
+ this.stopListeningFor(this.video, 'webkitpresentationmodechanged', this.handlePresentationModeChange);
this.setShouldListenForPlaybackTargetAvailabilityEvent(false);
},
@@ -214,7 +216,7 @@
}
if (!this.isAudio()) {
this.controls.panel.appendChild(this.controls.fullscreenButton);
- if (this.host.optimizedFullscreenSupported)
+ if ('webkitSupportsPresentationMode' in this.video && this.video.webkitSupportsPresentationMode('optimized'))
this.controls.panel.appendChild(this.controls.optimizedFullscreenButton);
}
},
@@ -243,7 +245,7 @@
updateControls: function() {
if (this.shouldHaveStartPlaybackButton())
this.setControlsType(ControllerIOS.StartPlaybackControls);
- else if (this.isFullScreen() && this.host.fullscreenMode !== "optimized")
+ else if (this.presentationMode() === "fullscreen")
this.setControlsType(Controller.FullScreenControls);
else
this.setControlsType(Controller.InlineControls);
@@ -391,12 +393,31 @@
this.updateShouldListenForPlaybackTargetAvailabilityEvent();
},
+ presentationMode: function() {
+ if ('webkitPresentationMode' in this.video)
+ return this.video.webkitPresentationMode;
+
+ if (this.isFullScreen())
+ return 'fullscreen';
+
+ return 'inline';
+ },
+
isFullScreen: function()
{
return this.video.webkitDisplayingFullscreen;
},
handleFullscreenButtonClicked: function(event) {
+ if ('webkitSetPresentationMode' in this.video) {
+ if (this.presentationMode() === 'fullscreen')
+ this.video.webkitSetPresentationMode('inline');
+ else
+ this.video.webkitSetPresentationMode('fullscreen');
+
+ return;
+ }
+
if (this.isFullScreen())
this.video.webkitExitFullscreen();
else
@@ -421,10 +442,13 @@
},
handleOptimizedFullscreenButtonClicked: function(event) {
- if (this.isFullScreen())
- this.video.webkitExitFullscreen();
+ if (!('webkitSetPresentationMode' in this.video))
+ return;
+
+ if (this.presentationMode() === 'optimized')
+ this.video.webkitSetPresentationMode('inline');
else
- this.host.enterFullscreenOptimized();
+ this.video.webkitSetPresentationMode('optimized');
},
handleOptimizedFullscreenTouchStart: function() {
@@ -571,23 +595,34 @@
}
},
- handleFullscreenChange: function(event)
+ handlePresentationModeChange: function(event)
{
- Controller.prototype.handleFullscreenChange.call(this, event);
+ var presentationMode = this.presentationMode();
- if (!this.isFullScreen()) {
- this.controls.inlinePlaybackPlaceholder.classList.add(this.ClassNames.hidden);
- } else if (this.host.fullscreenMode === "optimized") {
- var backgroundImageSVG = "url('" + this.host.mediaUIImageData("optimized-fullscreen-placeholder") + "')";
- this.controls.inlinePlaybackPlaceholder.style.backgroundImage = backgroundImageSVG;
- this.controls.inlinePlaybackPlaceholder.setAttribute('aria-label', "video playback placeholder");
-
- this.controls.inlinePlaybackPlaceholder.classList.remove(this.ClassNames.hidden);
+ switch (presentationMode) {
+ case 'inline':
+ this.controls.inlinePlaybackPlaceholder.classList.add(this.ClassNames.hidden);
+ break;
+ case 'optimized':
+ var backgroundImageSVG = "url('" + this.host.mediaUIImageData("optimized-fullscreen-placeholder") + "')";
+ this.controls.inlinePlaybackPlaceholder.style.backgroundImage = backgroundImageSVG;
+ this.controls.inlinePlaybackPlaceholder.setAttribute('aria-label', "video playback placeholder");
+ this.controls.inlinePlaybackPlaceholder.classList.remove(this.ClassNames.hidden);
+ break;
}
+ this.updateControls();
this.updateCaptionContainer();
+ if (presentationMode != 'fullscreen' && this.video.paused && this.controlsAreHidden())
+ this.showControls();
},
+ handleFullscreenChange: function(event)
+ {
+ Controller.prototype.handleFullscreenChange.call(this, event);
+ this.handlePresentationModeChange(event);
+ },
+
};
Object.create(Controller.prototype).extend(ControllerIOS.prototype);
Modified: trunk/Source/WebCore/dom/EventNames.h (177621 => 177622)
--- trunk/Source/WebCore/dom/EventNames.h 2014-12-20 17:26:56 UTC (rev 177621)
+++ trunk/Source/WebCore/dom/EventNames.h 2014-12-20 18:28:37 UTC (rev 177622)
@@ -294,6 +294,10 @@
macro(autocomplete) \
macro(autocompleteerror) \
/* End of ENABLE(REQUEST_AUTOCOMPLETE) */ \
+ \
+ /* PLATFORM(IOS) */ \
+ macro(webkitpresentationmodechanged) \
+ /* End of ENABLE(IOS_AIRPLAY) */ \
// end of DOM_EVENT_NAMES_FOR_EACH
Modified: trunk/Source/WebCore/html/HTMLAttributeNames.in (177621 => 177622)
--- trunk/Source/WebCore/html/HTMLAttributeNames.in 2014-12-20 17:26:56 UTC (rev 177621)
+++ trunk/Source/WebCore/html/HTMLAttributeNames.in 2014-12-20 18:28:37 UTC (rev 177622)
@@ -357,6 +357,7 @@
data-youtube-id
onwebkitcurrentplaybacktargetiswirelesschanged
onwebkitplaybacktargetavailabilitychanged
+onwebkitpresentationmodechanged
x-webkit-imagemenu
webkit-playsinline
x-webkit-airplay
Modified: trunk/Source/WebCore/html/HTMLMediaElement.cpp (177621 => 177622)
--- trunk/Source/WebCore/html/HTMLMediaElement.cpp 2014-12-20 17:26:56 UTC (rev 177621)
+++ trunk/Source/WebCore/html/HTMLMediaElement.cpp 2014-12-20 18:28:37 UTC (rev 177622)
@@ -4919,7 +4919,8 @@
{
LOG(Media, "HTMLMediaElement::enterFullscreen(%p)", this);
ASSERT(mode != VideoFullscreenModeNone);
- if (m_videoFullscreenMode != VideoFullscreenModeNone)
+
+ if (m_videoFullscreenMode == mode)
return;
#if ENABLE(FULLSCREEN_API)
@@ -4929,7 +4930,7 @@
}
#endif
- m_videoFullscreenMode = mode;
+ fullscreenModeChanged(mode);
if (hasMediaControls())
mediaControls()->enteredFullscreen();
if (document().page() && is<HTMLVideoElement>(*this)) {
@@ -4958,7 +4959,7 @@
}
#endif
ASSERT(m_videoFullscreenMode != VideoFullscreenModeNone);
- m_videoFullscreenMode = VideoFullscreenModeNone;
+ fullscreenModeChanged(VideoFullscreenModeNone);
if (hasMediaControls())
mediaControls()->exitedFullscreen();
if (document().page() && is<HTMLVideoElement>(*this)) {
Modified: trunk/Source/WebCore/html/HTMLMediaElement.h (177621 => 177622)
--- trunk/Source/WebCore/html/HTMLMediaElement.h 2014-12-20 17:26:56 UTC (rev 177621)
+++ trunk/Source/WebCore/html/HTMLMediaElement.h 2014-12-20 18:28:37 UTC (rev 177622)
@@ -401,7 +401,7 @@
typedef uint32_t VideoFullscreenMode;
VideoFullscreenMode fullscreenMode() const { return m_videoFullscreenMode; }
- void fullscreenModeChanged(VideoFullscreenMode mode) { m_videoFullscreenMode = mode; }
+ virtual void fullscreenModeChanged(VideoFullscreenMode mode) { m_videoFullscreenMode = mode; }
void enterFullscreen(VideoFullscreenMode);
virtual void enterFullscreen() override;
@@ -496,6 +496,8 @@
void setMediaControlsDependOnPageScaleFactor(bool);
#endif
+ void scheduleEvent(const AtomicString& eventName);
+
private:
void createMediaPlayer();
@@ -620,8 +622,7 @@
void addPlayedRange(const MediaTime& start, const MediaTime& end);
void scheduleTimeupdateEvent(bool periodicEvent);
- void scheduleEvent(const AtomicString& eventName);
-
+
// loading
void selectMediaResource();
void loadResource(const URL&, ContentType&, const String& keySystem);
Modified: trunk/Source/WebCore/html/HTMLVideoElement.cpp (177621 => 177622)
--- trunk/Source/WebCore/html/HTMLVideoElement.cpp 2014-12-20 17:26:56 UTC (rev 177621)
+++ trunk/Source/WebCore/html/HTMLVideoElement.cpp 2014-12-20 18:28:37 UTC (rev 177622)
@@ -36,11 +36,13 @@
#include "HTMLImageLoader.h"
#include "HTMLNames.h"
#include "HTMLParserIdioms.h"
+#include "Logging.h"
#include "Page.h"
#include "RenderImage.h"
#include "RenderVideo.h"
#include "ScriptController.h"
#include "Settings.h"
+#include <wtf/NeverDestroyed.h>
namespace WebCore {
@@ -123,6 +125,10 @@
else if (name == webkitwirelessvideoplaybackdisabledAttr)
mediaSession().setWirelessVideoPlaybackDisabled(*this, webkitWirelessVideoPlaybackDisabled());
#endif
+#if ENABLE(VIDEO_PRESENTATION_MODE)
+ else if (name == onwebkitpresentationmodechangedAttr)
+ setAttributeEventListener(eventNames().webkitpresentationmodechangedEvent, name, value);
+#endif
else {
HTMLMediaElement::parseAttribute(name, value);
@@ -338,6 +344,87 @@
return document().completeURL(url);
}
+#if ENABLE(VIDEO_PRESENTATION_MODE)
+
+static const AtomicString& presentationModeFullscreen()
+{
+ static NeverDestroyed<AtomicString> fullscreen("fullscreen", AtomicString::ConstructFromLiteral);
+ return fullscreen;
}
+static const AtomicString& presentationModeOptimized()
+{
+ static NeverDestroyed<AtomicString> optimized("optimized", AtomicString::ConstructFromLiteral);
+ return optimized;
+}
+
+static const AtomicString& presentationModeInline()
+{
+ static NeverDestroyed<AtomicString> inlineMode("inline", AtomicString::ConstructFromLiteral);
+ return inlineMode;
+}
+
+bool HTMLVideoElement::webkitSupportsPresentationMode(const String& mode) const
+{
+ if (mode == presentationModeFullscreen())
+ return mediaSession().fullscreenPermitted(*this) && supportsFullscreen();
+
+ if (mode == presentationModeOptimized())
+ return wkIsOptimizedFullscreenSupported() && mediaSession().allowsAlternateFullscreen(*this) && supportsFullscreen();
+
+ if (mode == presentationModeInline())
+ return !mediaSession().requiresFullscreenForVideoPlayback(*this);
+
+ return false;
+}
+
+void HTMLVideoElement::webkitSetPresentationMode(const String& mode)
+{
+ if (mode == presentationModeInline() && isFullscreen()) {
+ exitFullscreen();
+ return;
+ }
+
+ if (!mediaSession().fullscreenPermitted(*this) || !supportsFullscreen())
+ return;
+
+ LOG(Media, "HTMLVideoElement::webkitSetPresentationMode(%p) - setting to \"%s\"", this, mode.utf8().data());
+
+ if (mode == presentationModeFullscreen())
+ enterFullscreen(VideoFullscreenModeStandard);
+ else if (mode == presentationModeOptimized())
+ enterFullscreen(VideoFullscreenModeOptimized);
+}
+
+String HTMLVideoElement::webkitPresentationMode() const
+{
+ HTMLMediaElement::VideoFullscreenMode mode = fullscreenMode();
+
+ if (mode == VideoFullscreenModeStandard)
+ return presentationModeFullscreen();
+
+ if (mode & VideoFullscreenModeOptimized)
+ return presentationModeOptimized();
+
+ if (mode == VideoFullscreenModeNone)
+ return presentationModeInline();
+
+ ASSERT_NOT_REACHED();
+ return presentationModeInline();
+}
+
+void HTMLVideoElement::fullscreenModeChanged(VideoFullscreenMode mode)
+{
+ if (mode != fullscreenMode()) {
+ LOG(Media, "HTMLVideoElement::fullscreenModeChanged(%p) - mode changed from %i to %i", this, fullscreenMode(), mode);
+ scheduleEvent(eventNames().webkitpresentationmodechangedEvent);
+ }
+
+ HTMLMediaElement::fullscreenModeChanged(mode);
+}
+
#endif
+
+}
+
+#endif
Modified: trunk/Source/WebCore/html/HTMLVideoElement.h (177621 => 177622)
--- trunk/Source/WebCore/html/HTMLVideoElement.h 2014-12-20 17:26:56 UTC (rev 177621)
+++ trunk/Source/WebCore/html/HTMLVideoElement.h 2014-12-20 18:28:37 UTC (rev 177622)
@@ -78,6 +78,15 @@
URL posterImageURL() const;
virtual RenderPtr<RenderElement> createElementRenderer(Ref<RenderStyle>&&) override;
+#if ENABLE(VIDEO_PRESENTATION_MODE)
+ bool webkitSupportsPresentationMode(const String&) const;
+ void webkitSetPresentationMode(const String&);
+ String webkitPresentationMode() const;
+ virtual void fullscreenModeChanged(VideoFullscreenMode) override;
+
+ DEFINE_ATTRIBUTE_EVENT_LISTENER(webkitpresentationmodechanged);
+#endif
+
private:
HTMLVideoElement(const QualifiedName&, Document&, bool);
Modified: trunk/Source/WebCore/html/HTMLVideoElement.idl (177621 => 177622)
--- trunk/Source/WebCore/html/HTMLVideoElement.idl 2014-12-20 17:26:56 UTC (rev 177621)
+++ trunk/Source/WebCore/html/HTMLVideoElement.idl 2014-12-20 18:28:37 UTC (rev 177622)
@@ -23,6 +23,14 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
+#if defined(ENABLE_VIDEO_PRESENTATION_MODE) && ENABLE_VIDEO_PRESENTATION_MODE
+enum VideoPresentationMode {
+ "fullscreen",
+ "optimized",
+ "inline"
+};
+#endif
+
[
Conditional=VIDEO,
JSGenerateToNativeObject,
@@ -52,4 +60,13 @@
// The number of decoded frames that have been dropped by the player
// for performance reasons during playback.
[Conditional=MEDIA_STATISTICS] readonly attribute unsigned long webkitDroppedFrameCount;
+
+#if defined(ENABLE_VIDEO_PRESENTATION_MODE) && ENABLE_VIDEO_PRESENTATION_MODE
+ boolean webkitSupportsPresentationMode(VideoPresentationMode mode);
+
+ readonly attribute VideoPresentationMode webkitPresentationMode;
+ void webkitSetPresentationMode(VideoPresentationMode mode);
+
+ attribute EventListener onwebkitpresentationmodechanged;
+#endif
};
Modified: trunk/Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm (177621 => 177622)
--- trunk/Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm 2014-12-20 17:26:56 UTC (rev 177621)
+++ trunk/Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm 2014-12-20 18:28:37 UTC (rev 177622)
@@ -1086,18 +1086,19 @@
void WebVideoFullscreenInterfaceAVKit::setIsOptimized(bool active)
{
if (m_mode & HTMLMediaElement::VideoFullscreenModeStandard) {
- if (!active && m_mode & HTMLMediaElement::VideoFullscreenModeOptimized)
+ if (!active)
m_mode &= ~HTMLMediaElement::VideoFullscreenModeOptimized;
- else if (active && ~m_mode & HTMLMediaElement::VideoFullscreenModeOptimized)
+ else
m_mode |= HTMLMediaElement::VideoFullscreenModeOptimized;
}
-
+
if (m_videoFullscreenModel)
- m_videoFullscreenModel->fullscreenModeChanged(m_mode);
+ m_videoFullscreenModel->fullscreenModeChanged(m_exitRequested ? HTMLMediaElement::VideoFullscreenModeNone : m_mode);
+
if (m_mode == HTMLMediaElement::VideoFullscreenModeOptimized)
return;
-
+
[m_window setHidden:m_mode & HTMLMediaElement::VideoFullscreenModeOptimized];
if (m_fullscreenChangeObserver && ~m_mode & HTMLMediaElement::VideoFullscreenModeOptimized)
Modified: trunk/Source/WebKit/mac/ChangeLog (177621 => 177622)
--- trunk/Source/WebKit/mac/ChangeLog 2014-12-20 17:26:56 UTC (rev 177621)
+++ trunk/Source/WebKit/mac/ChangeLog 2014-12-20 18:28:37 UTC (rev 177622)
@@ -1,3 +1,13 @@
+2014-12-20 Eric Carlson <[email protected]>
+
+ [iOS] add optimized fullscreen API
+ https://bugs.webkit.org/show_bug.cgi?id=139833
+ <rdar://problem/18844486>
+
+ Reviewed by Simon Fraser.
+
+ * Configurations/FeatureDefines.xcconfig: Add ENABLE_VIDEO_PRESENTATION_MODE.
+
2014-12-20 David Kilzer <[email protected]>
Switch from using PLATFORM_NAME to SDK selectors in WebCore, WebInspectorUI, WebKit, WebKit2
Modified: trunk/Source/WebKit/mac/Configurations/FeatureDefines.xcconfig (177621 => 177622)
--- trunk/Source/WebKit/mac/Configurations/FeatureDefines.xcconfig 2014-12-20 17:26:56 UTC (rev 177621)
+++ trunk/Source/WebKit/mac/Configurations/FeatureDefines.xcconfig 2014-12-20 18:28:37 UTC (rev 177622)
@@ -193,6 +193,7 @@
ENABLE_TOUCH_ICON_LOADING = ;
ENABLE_USERSELECT_ALL = ENABLE_USERSELECT_ALL;
ENABLE_VIDEO = ENABLE_VIDEO;
+ENABLE_VIDEO_PRESENTATION_MODE[sdk=iphone*] = ENABLE_VIDEO_PRESENTATION_MODE;
ENABLE_VIDEO_TRACK = ENABLE_VIDEO_TRACK;
ENABLE_DATACUE_VALUE = ENABLE_DATACUE_VALUE;
ENABLE_VIEW_MODE_CSS_MEDIA = ;
@@ -226,4 +227,4 @@
ENABLE_SATURATED_LAYOUT_ARITHMETIC = ENABLE_SATURATED_LAYOUT_ARITHMETIC;
-FEATURE_DEFINES = $(ENABLE_3D_RENDERING) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_AVF_CAPTIONS) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CANVAS_PATH) $(ENABLE_CANVAS_PROXY) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CONTENT_FILTERING) $(ENABLE_CSP_NEXT) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_GRID_LAYOUT) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_REGIONS) $(ENABLE_CSS_SELECTORS_LEVEL4) $(ENABLE_CSS_SHAPES) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS3_TEXT_LINE_BREAK) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DATA_TRANSFER_ITEMS) $(ENABLE_DETAILS_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DOM4_EVENTS_CONSTRUCTOR) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_ENCRYPTED_MEDIA_V2) $(ENABLE_FILTERS_LEVEL_2) $(ENABLE_FONT_LOAD_EVENTS) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD)
$(ENABLE_GAMEPAD_DEPRECATED) $(ENABLE_GEOLOCATION) $(ENABLE_HIDDEN_PAGE_DOM_TIMER_THROTTLING) $(ENABLE_ICONDATABASE) $(ENABLE_SERVICE_CONTROLS) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDEXED_DATABASE_IN_WORKERS) $(ENABLE_INDIE_UI) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_COLOR_POPOVER) $(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_INSPECTOR) $(ENABLE_IOS_AIRPLAY) $(ENABLE_IOS_GESTURE_EVENTS) $(ENABLE_IOS_TEXT_AUTOSIZING) $(ENABLE_IOS_TOUCH_EVENTS) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_NOTIFICATIONS) $(ENABLE_LEGACY_VENDOR_PREFIXES) $(ENABLE_LEGACY_WEB_AUDIO) $(ENABLE_LETTERPRESS) $(ENABLE_LINK_PREFETCH) $(ENABLE_MATHML) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_METER_ELEMENT) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NAVI
GATOR_HWCONCURRENCY) $(ENABLE_NOTIFICATIONS) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_POINTER_LOCK) $(ENABLE_PROMISES) $(ENABLE_PROXIMITY_EVENTS) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REQUEST_ANIMATION_FRAME) $(ENABLE_REQUEST_AUTOCOMPLETE) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_RUBBER_BANDING) $(ENABLE_SHARED_WORKERS) $(ENABLE_CSS_SCROLL_SNAP) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_SQL_DATABASE) $(ENABLE_SUBTLE_CRYPTO) $(ENABLE_SVG_FONTS) $(ENABLE_TELEPHONE_NUMBER_DETECTION) $(ENABLE_TEMPLATE_ELEMENT) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_TOUCH_ICON_LOADING) $(ENABLE_USERSELECT_ALL) $(ENABLE_VIDEO) $(ENABLE_VIDEO_TRACK) $(ENABLE_DATACUE_VALUE) $(ENABLE_VIEW_MODE_CSS_MEDIA) $(ENABLE_WEBGL) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_REPLAY) $(ENABLE_WEB_SOCKETS) $(ENABLE_PICTURE_SIZES) $(ENABLE_WEB_TIMING) $(ENABLE_WEBVTT_REGIONS) $(ENABLE_XHR_TIMEOUT) $(ENABLE_XSLT) $(ENABLE_FTL_JIT) $(ENABLE_LLINT_C_LOOP) $(ENABLE_SATURATED_LAYOUT
_ARITHMETIC);
+FEATURE_DEFINES = $(ENABLE_3D_RENDERING) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_AVF_CAPTIONS) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CANVAS_PATH) $(ENABLE_CANVAS_PROXY) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CONTENT_FILTERING) $(ENABLE_CSP_NEXT) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_GRID_LAYOUT) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_REGIONS) $(ENABLE_CSS_SELECTORS_LEVEL4) $(ENABLE_CSS_SHAPES) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS3_TEXT_LINE_BREAK) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DATA_TRANSFER_ITEMS) $(ENABLE_DETAILS_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DOM4_EVENTS_CONSTRUCTOR) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_ENCRYPTED_MEDIA_V2) $(ENABLE_FILTERS_LEVEL_2) $(ENABLE_FONT_LOAD_EVENTS) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD)
$(ENABLE_GAMEPAD_DEPRECATED) $(ENABLE_GEOLOCATION) $(ENABLE_HIDDEN_PAGE_DOM_TIMER_THROTTLING) $(ENABLE_ICONDATABASE) $(ENABLE_SERVICE_CONTROLS) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDEXED_DATABASE_IN_WORKERS) $(ENABLE_INDIE_UI) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_COLOR_POPOVER) $(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_INSPECTOR) $(ENABLE_IOS_AIRPLAY) $(ENABLE_IOS_GESTURE_EVENTS) $(ENABLE_IOS_TEXT_AUTOSIZING) $(ENABLE_IOS_TOUCH_EVENTS) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_NOTIFICATIONS) $(ENABLE_LEGACY_VENDOR_PREFIXES) $(ENABLE_LEGACY_WEB_AUDIO) $(ENABLE_LETTERPRESS) $(ENABLE_LINK_PREFETCH) $(ENABLE_MATHML) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_METER_ELEMENT) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NAVIG
ATOR_HWCONCURRENCY) $(ENABLE_NOTIFICATIONS) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_POINTER_LOCK) $(ENABLE_PROMISES) $(ENABLE_PROXIMITY_EVENTS) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REQUEST_ANIMATION_FRAME) $(ENABLE_REQUEST_AUTOCOMPLETE) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_RUBBER_BANDING) $(ENABLE_SHARED_WORKERS) $(ENABLE_CSS_SCROLL_SNAP) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_SQL_DATABASE) $(ENABLE_SUBTLE_CRYPTO) $(ENABLE_SVG_FONTS) $(ENABLE_TELEPHONE_NUMBER_DETECTION) $(ENABLE_TEMPLATE_ELEMENT) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_TOUCH_ICON_LOADING) $(ENABLE_USERSELECT_ALL) $(ENABLE_VIDEO) $(ENABLE_VIDEO_TRACK) $(ENABLE_DATACUE_VALUE) $(ENABLE_VIEW_MODE_CSS_MEDIA) $(ENABLE_WEBGL) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_REPLAY) $(ENABLE_WEB_SOCKETS) $(ENABLE_PICTURE_SIZES) $(ENABLE_WEB_TIMING) $(ENABLE_WEBVTT_REGIONS) $(ENABLE_XHR_TIMEOUT) $(ENABLE_XSLT) $(ENABLE_FTL_JIT) $(ENABLE_LLINT_C_LOOP) $(ENABLE_SATURATED_LAYOUT_
ARITHMETIC) $(ENABLE_VIDEO_PRESENTATION_MODE);
Modified: trunk/Source/WebKit2/ChangeLog (177621 => 177622)
--- trunk/Source/WebKit2/ChangeLog 2014-12-20 17:26:56 UTC (rev 177621)
+++ trunk/Source/WebKit2/ChangeLog 2014-12-20 18:28:37 UTC (rev 177622)
@@ -1,3 +1,13 @@
+2014-12-20 Eric Carlson <[email protected]>
+
+ [iOS] add optimized fullscreen API
+ https://bugs.webkit.org/show_bug.cgi?id=139833
+ <rdar://problem/18844486>
+
+ Reviewed by Simon Fraser.
+
+ * Configurations/FeatureDefines.xcconfig: Add ENABLE_VIDEO_PRESENTATION_MODE.
+
2014-12-20 David Kilzer <[email protected]>
Switch from using PLATFORM_NAME to SDK selectors in WebCore, WebInspectorUI, WebKit, WebKit2
Modified: trunk/Source/WebKit2/Configurations/FeatureDefines.xcconfig (177621 => 177622)
--- trunk/Source/WebKit2/Configurations/FeatureDefines.xcconfig 2014-12-20 17:26:56 UTC (rev 177621)
+++ trunk/Source/WebKit2/Configurations/FeatureDefines.xcconfig 2014-12-20 18:28:37 UTC (rev 177622)
@@ -193,6 +193,7 @@
ENABLE_TOUCH_ICON_LOADING = ;
ENABLE_USERSELECT_ALL = ENABLE_USERSELECT_ALL;
ENABLE_VIDEO = ENABLE_VIDEO;
+ENABLE_VIDEO_PRESENTATION_MODE[sdk=iphone*] = ENABLE_VIDEO_PRESENTATION_MODE;
ENABLE_VIDEO_TRACK = ENABLE_VIDEO_TRACK;
ENABLE_DATACUE_VALUE = ENABLE_DATACUE_VALUE;
ENABLE_VIEW_MODE_CSS_MEDIA = ;
@@ -226,4 +227,4 @@
ENABLE_SATURATED_LAYOUT_ARITHMETIC = ENABLE_SATURATED_LAYOUT_ARITHMETIC;
-FEATURE_DEFINES = $(ENABLE_3D_RENDERING) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_AVF_CAPTIONS) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CANVAS_PATH) $(ENABLE_CANVAS_PROXY) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CONTENT_FILTERING) $(ENABLE_CSP_NEXT) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_GRID_LAYOUT) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_REGIONS) $(ENABLE_CSS_SELECTORS_LEVEL4) $(ENABLE_CSS_SHAPES) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS3_TEXT_LINE_BREAK) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DATA_TRANSFER_ITEMS) $(ENABLE_DETAILS_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DOM4_EVENTS_CONSTRUCTOR) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_ENCRYPTED_MEDIA_V2) $(ENABLE_FILTERS_LEVEL_2) $(ENABLE_FONT_LOAD_EVENTS) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD)
$(ENABLE_GAMEPAD_DEPRECATED) $(ENABLE_GEOLOCATION) $(ENABLE_HIDDEN_PAGE_DOM_TIMER_THROTTLING) $(ENABLE_ICONDATABASE) $(ENABLE_SERVICE_CONTROLS) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDEXED_DATABASE_IN_WORKERS) $(ENABLE_INDIE_UI) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_COLOR_POPOVER) $(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_INSPECTOR) $(ENABLE_IOS_AIRPLAY) $(ENABLE_IOS_GESTURE_EVENTS) $(ENABLE_IOS_TEXT_AUTOSIZING) $(ENABLE_IOS_TOUCH_EVENTS) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_NOTIFICATIONS) $(ENABLE_LEGACY_VENDOR_PREFIXES) $(ENABLE_LEGACY_WEB_AUDIO) $(ENABLE_LETTERPRESS) $(ENABLE_LINK_PREFETCH) $(ENABLE_MATHML) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_METER_ELEMENT) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NAVI
GATOR_HWCONCURRENCY) $(ENABLE_NOTIFICATIONS) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_POINTER_LOCK) $(ENABLE_PROMISES) $(ENABLE_PROXIMITY_EVENTS) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REQUEST_ANIMATION_FRAME) $(ENABLE_REQUEST_AUTOCOMPLETE) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_RUBBER_BANDING) $(ENABLE_SHARED_WORKERS) $(ENABLE_CSS_SCROLL_SNAP) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_SQL_DATABASE) $(ENABLE_SUBTLE_CRYPTO) $(ENABLE_SVG_FONTS) $(ENABLE_TELEPHONE_NUMBER_DETECTION) $(ENABLE_TEMPLATE_ELEMENT) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_TOUCH_ICON_LOADING) $(ENABLE_USERSELECT_ALL) $(ENABLE_VIDEO) $(ENABLE_VIDEO_TRACK) $(ENABLE_DATACUE_VALUE) $(ENABLE_VIEW_MODE_CSS_MEDIA) $(ENABLE_WEBGL) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_REPLAY) $(ENABLE_WEB_SOCKETS) $(ENABLE_PICTURE_SIZES) $(ENABLE_WEB_TIMING) $(ENABLE_WEBVTT_REGIONS) $(ENABLE_XHR_TIMEOUT) $(ENABLE_XSLT) $(ENABLE_FTL_JIT) $(ENABLE_LLINT_C_LOOP) $(ENABLE_SATURATED_LAYOUT
_ARITHMETIC);
+FEATURE_DEFINES = $(ENABLE_3D_RENDERING) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_AVF_CAPTIONS) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CANVAS_PATH) $(ENABLE_CANVAS_PROXY) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CONTENT_FILTERING) $(ENABLE_CSP_NEXT) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_GRID_LAYOUT) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_REGIONS) $(ENABLE_CSS_SELECTORS_LEVEL4) $(ENABLE_CSS_SHAPES) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS3_TEXT_LINE_BREAK) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DATA_TRANSFER_ITEMS) $(ENABLE_DETAILS_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DOM4_EVENTS_CONSTRUCTOR) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_ENCRYPTED_MEDIA_V2) $(ENABLE_FILTERS_LEVEL_2) $(ENABLE_FONT_LOAD_EVENTS) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD)
$(ENABLE_GAMEPAD_DEPRECATED) $(ENABLE_GEOLOCATION) $(ENABLE_HIDDEN_PAGE_DOM_TIMER_THROTTLING) $(ENABLE_ICONDATABASE) $(ENABLE_SERVICE_CONTROLS) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDEXED_DATABASE_IN_WORKERS) $(ENABLE_INDIE_UI) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_COLOR_POPOVER) $(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_INSPECTOR) $(ENABLE_IOS_AIRPLAY) $(ENABLE_IOS_GESTURE_EVENTS) $(ENABLE_IOS_TEXT_AUTOSIZING) $(ENABLE_IOS_TOUCH_EVENTS) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_NOTIFICATIONS) $(ENABLE_LEGACY_VENDOR_PREFIXES) $(ENABLE_LEGACY_WEB_AUDIO) $(ENABLE_LETTERPRESS) $(ENABLE_LINK_PREFETCH) $(ENABLE_MATHML) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_METER_ELEMENT) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NAVIG
ATOR_HWCONCURRENCY) $(ENABLE_NOTIFICATIONS) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_POINTER_LOCK) $(ENABLE_PROMISES) $(ENABLE_PROXIMITY_EVENTS) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REQUEST_ANIMATION_FRAME) $(ENABLE_REQUEST_AUTOCOMPLETE) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_RUBBER_BANDING) $(ENABLE_SHARED_WORKERS) $(ENABLE_CSS_SCROLL_SNAP) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_SQL_DATABASE) $(ENABLE_SUBTLE_CRYPTO) $(ENABLE_SVG_FONTS) $(ENABLE_TELEPHONE_NUMBER_DETECTION) $(ENABLE_TEMPLATE_ELEMENT) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_TOUCH_ICON_LOADING) $(ENABLE_USERSELECT_ALL) $(ENABLE_VIDEO) $(ENABLE_VIDEO_TRACK) $(ENABLE_DATACUE_VALUE) $(ENABLE_VIEW_MODE_CSS_MEDIA) $(ENABLE_WEBGL) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_REPLAY) $(ENABLE_WEB_SOCKETS) $(ENABLE_PICTURE_SIZES) $(ENABLE_WEB_TIMING) $(ENABLE_WEBVTT_REGIONS) $(ENABLE_XHR_TIMEOUT) $(ENABLE_XSLT) $(ENABLE_FTL_JIT) $(ENABLE_LLINT_C_LOOP) $(ENABLE_SATURATED_LAYOUT_
ARITHMETIC) $(ENABLE_VIDEO_PRESENTATION_MODE);