Changeset 167632 in webkit
- Timestamp:
- Apr 21, 2014, 4:18:23 PM (11 years ago)
- Location:
- trunk
- Files:
-
- 17 added
- 45 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r167631 r167632 1 2014-04-21 Eric Carlson <eric.carlson@apple.com> 2 3 [Mac] implement WebKitDataCue 4 https://bugs.webkit.org/show_bug.cgi?id=131799 5 6 Reviewed by Dean Jackson. 7 8 * http/tests/media/resources/hls: Added. 9 * http/tests/media/resources/hls/metadata: Added. 10 * http/tests/media/resources/hls/metadata/fileSequence0.ts: Added. 11 * http/tests/media/resources/hls/metadata/fileSequence1.ts: Added. 12 * http/tests/media/resources/hls/metadata/fileSequence2.ts: Added. 13 * http/tests/media/resources/hls/metadata/fileSequence3.ts: Added. 14 * http/tests/media/resources/hls/metadata/prog_index.m3u8: Added. 15 * http/tests/media/track-in-band-hls-metadata-expected.txt: Added. 16 * http/tests/media/track-in-band-hls-metadata.html: Added. 17 * media/track/track-datacue-value-expected.txt: Added. 18 * media/track/track-datacue-value.html: Added. 19 * platform/efl/TestExpectations: Skip the new tests. 20 * platform/gtk/TestExpectations: Ditto. 21 * platform/mac/js/dom/global-constructors-attributes-expected.txt: Update. 22 * platform/mac-mountainlion/js/dom/global-constructors-attributes-expected.txt: Update. 23 * platform/mac/TestExpectations: Skip DataCue test on all Mac versions. Skip HLS test on 24 Mountain Lion. 25 * platform/win/TestExpectations: Skip the new tests. 26 1 27 2014-04-21 Benjamin Poulain <benjamin@webkit.org> 2 28 -
trunk/LayoutTests/platform/efl/TestExpectations
r167583 r167632 1399 1399 Bug(EFL) media/track/in-band [ Skip ] 1400 1400 1401 # DataCue.value not enabled 1402 Bug(EFL) http/tests/media/track-in-band-hls-metadata.html [ Skip ] 1403 Bug(EFL) media/track/track-datacue-value.html [ Skip ] 1404 1401 1405 # Rendering failure, also missing expected results: 1402 1406 webkit.org/b/105093 compositing/webgl/webgl-nonpremultiplied-blend.html [ Skip ] -
trunk/LayoutTests/platform/gtk/TestExpectations
r167604 r167632 339 339 webkit.org/b/131546 media/track/track-in-band-legacy-api.html [ Failure ] 340 340 webkit.org/b/131546 media/track/track-in-band-mode.html [ Skip ] 341 342 # DataCue.value not enabled 343 Bug(GTK) http/tests/media/track-in-band-hls-metadata.html [ Skip ] 344 Bug(GTK) media/track/track-datacue-value.html [ Skip ] 341 345 342 346 # Require ENABLE(CUSTOM_ELEMENTS) support -
trunk/LayoutTests/platform/mac-mountainlion/js/dom/global-constructors-attributes-expected.txt
r167528 r167632 254 254 PASS Object.getOwnPropertyDescriptor(global, 'DOMTokenList').enumerable is false 255 255 PASS Object.getOwnPropertyDescriptor(global, 'DOMTokenList').configurable is true 256 PASS Object.getOwnPropertyDescriptor(global, 'DataCue').value is DataCue257 PASS Object.getOwnPropertyDescriptor(global, 'DataCue').hasOwnProperty('get') is false258 PASS Object.getOwnPropertyDescriptor(global, 'DataCue').hasOwnProperty('set') is false259 PASS Object.getOwnPropertyDescriptor(global, 'DataCue').enumerable is false260 PASS Object.getOwnPropertyDescriptor(global, 'DataCue').configurable is true261 256 PASS Object.getOwnPropertyDescriptor(global, 'DataTransfer').value is DataTransfer 262 257 PASS Object.getOwnPropertyDescriptor(global, 'DataTransfer').hasOwnProperty('get') is false … … 1939 1934 PASS Object.getOwnPropertyDescriptor(global, 'WebKitCSSTransformValue').enumerable is false 1940 1935 PASS Object.getOwnPropertyDescriptor(global, 'WebKitCSSTransformValue').configurable is true 1936 PASS Object.getOwnPropertyDescriptor(global, 'WebKitDataCue').value is WebKitDataCue 1937 PASS Object.getOwnPropertyDescriptor(global, 'WebKitDataCue').hasOwnProperty('get') is false 1938 PASS Object.getOwnPropertyDescriptor(global, 'WebKitDataCue').hasOwnProperty('set') is false 1939 PASS Object.getOwnPropertyDescriptor(global, 'WebKitDataCue').enumerable is false 1940 PASS Object.getOwnPropertyDescriptor(global, 'WebKitDataCue').configurable is true 1941 1941 PASS Object.getOwnPropertyDescriptor(global, 'WebKitMutationObserver').value is WebKitMutationObserver 1942 1942 PASS Object.getOwnPropertyDescriptor(global, 'WebKitMutationObserver').hasOwnProperty('get') is false -
trunk/LayoutTests/platform/mac/TestExpectations
r167607 r167632 1341 1341 webkit.org/b/130693 mathml/presentation/tokenElements-background-color.html [ ImageOnlyFailure ] 1342 1342 1343 # WebKitDataCue is supported, not DataCue 1344 media/track/track-datacue.html [ Skip ] 1345 1346 # Mountain Lion and prior do not support HLS timed metadata 1347 Bug(ericcarlson) [ MountainLion ] http/tests/media/track-in-band-hls-metadata.html [ Skip ] 1348 1343 1349 # Frequently times out on EWS, which is then misreported as crash. 1344 1350 webkit.org/b/130720 [ MountainLion Release ] media/W3C/audio/canPlayType/canPlayType_application_octet_stream.html [ Pass Failure Crash Timeout ] -
trunk/LayoutTests/platform/mac/js/dom/global-constructors-attributes-expected.txt
r167528 r167632 254 254 PASS Object.getOwnPropertyDescriptor(global, 'DOMTokenList').enumerable is false 255 255 PASS Object.getOwnPropertyDescriptor(global, 'DOMTokenList').configurable is true 256 PASS Object.getOwnPropertyDescriptor(global, 'DataCue').value is DataCue257 PASS Object.getOwnPropertyDescriptor(global, 'DataCue').hasOwnProperty('get') is false258 PASS Object.getOwnPropertyDescriptor(global, 'DataCue').hasOwnProperty('set') is false259 PASS Object.getOwnPropertyDescriptor(global, 'DataCue').enumerable is false260 PASS Object.getOwnPropertyDescriptor(global, 'DataCue').configurable is true261 256 PASS Object.getOwnPropertyDescriptor(global, 'DataTransfer').value is DataTransfer 262 257 PASS Object.getOwnPropertyDescriptor(global, 'DataTransfer').hasOwnProperty('get') is false … … 1949 1944 PASS Object.getOwnPropertyDescriptor(global, 'WebKitCSSTransformValue').enumerable is false 1950 1945 PASS Object.getOwnPropertyDescriptor(global, 'WebKitCSSTransformValue').configurable is true 1946 PASS Object.getOwnPropertyDescriptor(global, 'WebKitDataCue').value is WebKitDataCue 1947 PASS Object.getOwnPropertyDescriptor(global, 'WebKitDataCue').hasOwnProperty('get') is false 1948 PASS Object.getOwnPropertyDescriptor(global, 'WebKitDataCue').hasOwnProperty('set') is false 1949 PASS Object.getOwnPropertyDescriptor(global, 'WebKitDataCue').enumerable is false 1950 PASS Object.getOwnPropertyDescriptor(global, 'WebKitDataCue').configurable is true 1951 1951 PASS Object.getOwnPropertyDescriptor(global, 'WebKitMediaKeyError').value is WebKitMediaKeyError 1952 1952 PASS Object.getOwnPropertyDescriptor(global, 'WebKitMediaKeyError').hasOwnProperty('get') is false -
trunk/LayoutTests/platform/win/TestExpectations
r167583 r167632 2732 2732 platform/win/plugins/iframe-inside-overflow.html [ Failure ] 2733 2733 2734 # DataCue.value not enabled 2735 http/tests/media/track-in-band-hls-metadata.html [ Skip ] 2736 media/track/track-datacue-value.html [ Skip ] 2737 2734 2738 # CRASHES 2735 2739 ietestcenter/Javascript/15.2.3.3-4-18.html [ Crash ] -
trunk/Source/JavaScriptCore/ChangeLog
r167613 r167632 1 2014-04-21 Eric Carlson <eric.carlson@apple.com> 2 3 [Mac] implement WebKitDataCue 4 https://bugs.webkit.org/show_bug.cgi?id=131799 5 6 Reviewed by Dean Jackson. 7 8 * Configurations/FeatureDefines.xcconfig: Define ENABLE_DATACUE_VALUE. 9 1 10 2014-04-21 Filip Pizlo <fpizlo@apple.com> 2 11 -
trunk/Source/JavaScriptCore/Configurations/FeatureDefines.xcconfig
r167528 r167632 210 210 ENABLE_VIDEO = ENABLE_VIDEO; 211 211 ENABLE_VIDEO_TRACK = ENABLE_VIDEO_TRACK; 212 ENABLE_DATACUE_VALUE = ENABLE_DATACUE_VALUE; 212 213 ENABLE_VIEW_MODE_CSS_MEDIA = ; 213 214 ENABLE_WEBGL = ENABLE_WEBGL; … … 244 245 ENABLE_LLINT_C_LOOP = ; 245 246 246 FEATURE_DEFINES = $(ENABLE_3D_RENDERING) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_AVF_CAPTIONS) $(ENABLE_BLOB) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CANVAS_PATH) $(ENABLE_CANVAS_PROXY) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CSP_NEXT) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_EXCLUSIONS) $(ENABLE_CSS_FILTERS) $(ENABLE_CSS_GRID_LAYOUT) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_REGIONS) $(ENABLE_CSS_SHAPES) $(ENABLE_CSS_STICKY_POSITION) $(ENABLE_CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED) $(ENABLE_CSS3_CONDITIONAL_RULES) $(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) $(ENABLE_FONT_LOAD_EVENTS) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_HIDDEN_PAGE_DOM_TIMER_THROTTLING) $(ENABLE_HIGH_DPI_CANVAS) $(ENABLE_ICONDATABASE) $(ENABLE_IMAGE_CONTROLS) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDEXED_DATABASE_IN_WORKERS) $(ENABLE_INDIE_UI) $(ENABLE_INPUT_SPEECH) $(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_TEXT_AUTOSIZING) $(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_NOTIFICATIONS) $(ENABLE_PAGE_VISIBILITY_API) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_PLUGIN_PROXY_FOR_VIDEO) $(ENABLE_PROGRESS_ELEMENT) $(ENABLE_PROMISES) $(ENABLE_PROXIMITY_EVENTS) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REQUEST_ANIMATION_FRAME) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_SCRIPTED_SPEECH) $(ENABLE_SHARED_WORKERS) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_SQL_DATABASE) $(ENABLE_SUBPIXEL_LAYOUT) $(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_ VIEW_MODE_CSS_MEDIA) $(ENABLE_WEBGL) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_REPLAY) $(ENABLE_WEB_SOCKETS) $(ENABLE_WEB_TIMING) $(ENABLE_WEBVTT_REGIONS) $(ENABLE_XHR_TIMEOUT) $(ENABLE_XSLT) $(ENABLE_FTL_JIT) $(ENABLE_LLINT_C_LOOP) $(FEATURE_DEFINES_$(PLATFORM_NAME));247 FEATURE_DEFINES = $(ENABLE_3D_RENDERING) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_AVF_CAPTIONS) $(ENABLE_BLOB) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CANVAS_PATH) $(ENABLE_CANVAS_PROXY) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CSP_NEXT) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_EXCLUSIONS) $(ENABLE_CSS_FILTERS) $(ENABLE_CSS_GRID_LAYOUT) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_REGIONS) $(ENABLE_CSS_SHAPES) $(ENABLE_CSS_STICKY_POSITION) $(ENABLE_CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED) $(ENABLE_CSS3_CONDITIONAL_RULES) $(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) $(ENABLE_FONT_LOAD_EVENTS) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_HIDDEN_PAGE_DOM_TIMER_THROTTLING) $(ENABLE_HIGH_DPI_CANVAS) $(ENABLE_ICONDATABASE) $(ENABLE_IMAGE_CONTROLS) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDEXED_DATABASE_IN_WORKERS) $(ENABLE_INDIE_UI) $(ENABLE_INPUT_SPEECH) $(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_TEXT_AUTOSIZING) $(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_NOTIFICATIONS) $(ENABLE_PAGE_VISIBILITY_API) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_PLUGIN_PROXY_FOR_VIDEO) $(ENABLE_PROGRESS_ELEMENT) $(ENABLE_PROMISES) $(ENABLE_PROXIMITY_EVENTS) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REQUEST_ANIMATION_FRAME) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_SCRIPTED_SPEECH) $(ENABLE_SHARED_WORKERS) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_SQL_DATABASE) $(ENABLE_SUBPIXEL_LAYOUT) $(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_WEB_TIMING) $(ENABLE_WEBVTT_REGIONS) $(ENABLE_XHR_TIMEOUT) $(ENABLE_XSLT) $(ENABLE_FTL_JIT) $(ENABLE_LLINT_C_LOOP) $(FEATURE_DEFINES_$(PLATFORM_NAME)); -
trunk/Source/WTF/ChangeLog
r167592 r167632 1 2014-04-21 Eric Carlson <eric.carlson@apple.com> 2 3 [Mac] implement WebKitDataCue 4 https://bugs.webkit.org/show_bug.cgi?id=131799 5 6 Reviewed by Dean Jackson. 7 8 * wtf/FeatureDefines.h: Define ENABLE_DATACUE_VALUE. 9 1 10 2014-04-21 Darin Adler <darin@apple.com> 2 11 -
trunk/Source/WTF/wtf/FeatureDefines.h
r167528 r167632 761 761 #endif 762 762 763 #if !defined(ENABLE_DATACUE_VALUE) 764 #define ENABLE_DATACUE_VALUE 0 765 #endif 766 763 767 #if !defined(ENABLE_VIEWPORT) 764 768 #define ENABLE_VIEWPORT 0 -
trunk/Source/WebCore/CMakeLists.txt
r167530 r167632 1026 1026 bindings/js/JSCanvasRenderingContext2DCustom.cpp 1027 1027 bindings/js/JSCanvasRenderingContextCustom.cpp 1028 bindings/js/JSDataCueCustom.cpp 1028 1029 bindings/js/JSDataTransferCustom.cpp 1029 1030 bindings/js/JSCommandLineAPIHostCustom.cpp -
trunk/Source/WebCore/ChangeLog
r167631 r167632 1 2014-04-21 Eric Carlson <eric.carlson@apple.com> 2 3 [Mac] implement WebKitDataCue 4 https://bugs.webkit.org/show_bug.cgi?id=131799 5 6 Reviewed by Dean Jackson. 7 8 Tests: http/tests/media/track-in-band-hls-metadata.html 9 media/track/track-datacue-value.html 10 11 * Configurations/FeatureDefines.xcconfig: Define ENABLE_DATACUE_VALUE. 12 * DerivedSources.make: Add ENABLE_DATACUE_VALUE to HTML_FLAGS when appropriate. 13 14 * CMakeLists.txt: Add JSDataCueCustom.cpp. 15 * bindings/js/JSBindingsAllInOne.cpp: 16 * WebCore.xcodeproj/project.pbxproj: Add new files. 17 18 * bindings/js/JSDataCueCustom.cpp: Added. 19 (WebCore::JSDataCue::value): 20 (WebCore::JSDataCue::setValue): 21 (WebCore::JSDataCueConstructor::constructJSDataCue): Custom constructor. 22 23 * html/HTMLMediaElement.cpp: 24 (WebCore::HTMLMediaElement::updateActiveTextTrackCues): Drive-by fixes: don't schedule timeupdate 25 events when paused, don't call sort on an Vector that can't be sorted. 26 27 * html/track/DataCue.cpp: 28 (WebCore::DataCue::DataCue): Initialize m_type. 29 (WebCore::DataCue::~DataCue): Unprotect the JSValue if necessary. 30 (WebCore::DataCue::data): Ask the platform value for data if non-null. 31 (WebCore::DataCue::setData): Clear m_platformValue and m_value. 32 (WebCore::DataCue::isEqual): New. 33 (WebCore::DataCue::value): Return a JSValue from the platform value, or the value passed 34 to the constructor/set by script. 35 (WebCore::DataCue::setValue): Set m_value. 36 * html/track/DataCue.h: 37 * html/track/DataCue.idl: 38 39 * html/track/InbandDataTextTrack.cpp: 40 (WebCore::InbandDataTextTrack::addDataCue): Don't add the same cue more than once. 41 (WebCore::InbandDataTextTrack::updateDataCue): Update a cue's duration. 42 (WebCore::InbandDataTextTrack::removeDataCue): Remove an incomplete cue. 43 (WebCore::InbandDataTextTrack::removeCue): Remove a cue from the incomplete cue map if necessary. 44 * html/track/InbandDataTextTrack.h: 45 46 * html/track/InbandGenericTextTrack.cpp: 47 (WebCore::InbandGenericTextTrack::addGenericCue): CueMatchRules is now in TextTrackCue instead 48 of VTTCue. 49 * html/track/InbandTextTrack.h: 50 51 * html/track/InbandWebVTTTextTrack.cpp: 52 (WebCore::InbandWebVTTTextTrack::newCuesParsed): Ditto. 53 54 * html/track/TextTrack.cpp: 55 (WebCore::TextTrack::hasCue): Ditto. 56 * html/track/TextTrack.h: 57 58 * html/track/TextTrackCue.cpp: 59 (WebCore::TextTrackCue::isEqual): New, test base class equality. 60 * html/track/TextTrackCue.h: 61 62 * html/track/TextTrackCueGeneric.cpp: 63 (WebCore::TextTrackCueGeneric::isEqual): Call TextTrackCue::isEqual first. 64 * html/track/TextTrackCueGeneric.h: 65 66 * html/track/VTTCue.cpp: 67 (WebCore::VTTCue::isEqual): Call TextTrackCue::isEqual first. 68 * html/track/VTTCue.h: 69 70 * platform/SerializedPlatformRepresentation.h: Added. 71 (WebCore::SerializedPlatformRepresentation::~SerializedPlatformRepresentation): 72 (WebCore::SerializedPlatformRepresentation::SerializedPlatformRepresentation): 73 74 * platform/graphics/InbandTextTrackPrivateClient.h: Add methods for DataCue with SerializedPlatformRepresentation. 75 76 * platform/graphics/avfoundation/InbandMetadataTextTrackPrivateAVF.cpp: Added. 77 (WebCore::InbandMetadataTextTrackPrivateAVF::create): 78 (WebCore::InbandMetadataTextTrackPrivateAVF::InbandMetadataTextTrackPrivateAVF): 79 (WebCore::InbandMetadataTextTrackPrivateAVF::~InbandMetadataTextTrackPrivateAVF): 80 (WebCore::InbandMetadataTextTrackPrivateAVF::addDataCue): 81 (WebCore::InbandMetadataTextTrackPrivateAVF::updatePendingCueEndTimes): 82 (WebCore::InbandMetadataTextTrackPrivateAVF::flushPartialCues): 83 * platform/graphics/avfoundation/InbandMetadataTextTrackPrivateAVF.h: Added. 84 85 * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp: 86 (WebCore::MediaPlayerPrivateAVFoundation::seekWithTolerance): currentTrack -> currentTextTrack. 87 (WebCore::MediaPlayerPrivateAVFoundation::seekCompleted): Ditto. 88 (WebCore::MediaPlayerPrivateAVFoundation::configureInbandTracks): Ditto. 89 * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h: 90 (WebCore::MediaPlayerPrivateAVFoundation::setCurrentTextTrack): 91 (WebCore::MediaPlayerPrivateAVFoundation::setCurrentTrack): Deleted. 92 93 Renamed currentTrack and setCurrentTrack to currentTextTrack and setCurrentTextTrack. 94 * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp: 95 (WebCore::AVFWrapper::currentTextTrack): 96 (WebCore::MediaPlayerPrivateAVFoundationCF::setCurrentTextTrack): 97 (WebCore::MediaPlayerPrivateAVFoundationCF::currentTextTrack): 98 (WebCore::AVFWrapper::setCurrentTextTrack): 99 (WebCore::AVFWrapper::AVFWrapper): 100 (WebCore::AVFWrapper::processCue): 101 (WebCore::AVFWrapper::currentTrack): Deleted. 102 (WebCore::MediaPlayerPrivateAVFoundationCF::setCurrentTrack): Deleted. 103 (WebCore::MediaPlayerPrivateAVFoundationCF::currentTrack): Deleted. 104 (WebCore::AVFWrapper::setCurrentTrack): Deleted. 105 * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.h: 106 107 * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h: 108 * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: 109 (WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC): 110 (WebCore::MediaPlayerPrivateAVFoundationObjC::seekToTime): currentTrack -> currentTextTrack 111 (WebCore::MediaPlayerPrivateAVFoundationObjC::tracksChanged): currentTrack -> currentTextTrack. 112 (WebCore::MediaPlayerPrivateAVFoundationObjC::processMetadataTrack): New. 113 (WebCore::MediaPlayerPrivateAVFoundationObjC::processCue): m_currentTrack -> m_currentTextTrack. 114 (WebCore::MediaPlayerPrivateAVFoundationObjC::flushCues): Ditto. 115 (WebCore::MediaPlayerPrivateAVFoundationObjC::setCurrentTextTrack): Renamed from setCurrentTextTrack. 116 (WebCore::metadataType): Map an AVFoundation metadata key space to a metadata cue type. 117 (WebCore::MediaPlayerPrivateAVFoundationObjC::metadataDidArrive): Process new metadata. 118 (-[WebCoreAVFMovieObserver observeValueForKeyPath:ofObject:change:context:]): 119 (WebCore::MediaPlayerPrivateAVFoundationObjC::setCurrentTrack): Deleted. 120 121 Create a JSValue representation from an AVMetadataItem. 122 * platform/mac/SerializedPlatformRepresentationMac.h: Added. 123 (WebCore::SerializedPlatformRepresentationMac::platformType): 124 (WebCore::SerializedPlatformRepresentationMac::nativeValue): 125 * platform/mac/SerializedPlatformRepresentationMac.mm: Added. 126 (WebCore::SerializedPlatformRepresentationMac::SerializedPlatformRepresentationMac): 127 (WebCore::SerializedPlatformRepresentationMac::~SerializedPlatformRepresentationMac): 128 (WebCore::SerializedPlatformRepresentationMac::create): 129 (WebCore::SerializedPlatformRepresentationMac::data): 130 (WebCore::SerializedPlatformRepresentationMac::deserialize): 131 (WebCore::SerializedPlatformRepresentationMac::isEqual): 132 (WebCore::toSerializedPlatformRepresentationMac): 133 (WebCore::jsValueWithValueInContext): 134 (WebCore::jsValueWithDataInContext): 135 (WebCore::jsValueWithArrayInContext): 136 (WebCore::jsValueWithDictionaryInContext): 137 (WebCore::jsValueWithAVMetadataItemInContext): 138 1 139 2014-04-21 Benjamin Poulain <benjamin@webkit.org> 2 140 -
trunk/Source/WebCore/Configurations/FeatureDefines.xcconfig
r167528 r167632 210 210 ENABLE_VIDEO = ENABLE_VIDEO; 211 211 ENABLE_VIDEO_TRACK = ENABLE_VIDEO_TRACK; 212 ENABLE_DATACUE_VALUE = ENABLE_DATACUE_VALUE; 212 213 ENABLE_VIEW_MODE_CSS_MEDIA = ; 213 214 ENABLE_WEBGL = ENABLE_WEBGL; … … 244 245 ENABLE_LLINT_C_LOOP = ; 245 246 246 FEATURE_DEFINES = $(ENABLE_3D_RENDERING) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_AVF_CAPTIONS) $(ENABLE_BLOB) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CANVAS_PATH) $(ENABLE_CANVAS_PROXY) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CSP_NEXT) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_EXCLUSIONS) $(ENABLE_CSS_FILTERS) $(ENABLE_CSS_GRID_LAYOUT) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_REGIONS) $(ENABLE_CSS_SHAPES) $(ENABLE_CSS_STICKY_POSITION) $(ENABLE_CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED) $(ENABLE_CSS3_CONDITIONAL_RULES) $(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) $(ENABLE_FONT_LOAD_EVENTS) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_HIDDEN_PAGE_DOM_TIMER_THROTTLING) $(ENABLE_HIGH_DPI_CANVAS) $(ENABLE_ICONDATABASE) $(ENABLE_IMAGE_CONTROLS) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDEXED_DATABASE_IN_WORKERS) $(ENABLE_INDIE_UI) $(ENABLE_INPUT_SPEECH) $(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_TEXT_AUTOSIZING) $(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_NOTIFICATIONS) $(ENABLE_PAGE_VISIBILITY_API) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_PLUGIN_PROXY_FOR_VIDEO) $(ENABLE_PROGRESS_ELEMENT) $(ENABLE_PROMISES) $(ENABLE_PROXIMITY_EVENTS) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REQUEST_ANIMATION_FRAME) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_SCRIPTED_SPEECH) $(ENABLE_SHARED_WORKERS) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_SQL_DATABASE) $(ENABLE_SUBPIXEL_LAYOUT) $(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_ VIEW_MODE_CSS_MEDIA) $(ENABLE_WEBGL) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_REPLAY) $(ENABLE_WEB_SOCKETS) $(ENABLE_WEB_TIMING) $(ENABLE_WEBVTT_REGIONS) $(ENABLE_XHR_TIMEOUT) $(ENABLE_XSLT) $(ENABLE_FTL_JIT) $(ENABLE_LLINT_C_LOOP) $(FEATURE_DEFINES_$(PLATFORM_NAME));247 FEATURE_DEFINES = $(ENABLE_3D_RENDERING) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_AVF_CAPTIONS) $(ENABLE_BLOB) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CANVAS_PATH) $(ENABLE_CANVAS_PROXY) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CSP_NEXT) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_EXCLUSIONS) $(ENABLE_CSS_FILTERS) $(ENABLE_CSS_GRID_LAYOUT) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_REGIONS) $(ENABLE_CSS_SHAPES) $(ENABLE_CSS_STICKY_POSITION) $(ENABLE_CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED) $(ENABLE_CSS3_CONDITIONAL_RULES) $(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) $(ENABLE_FONT_LOAD_EVENTS) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_HIDDEN_PAGE_DOM_TIMER_THROTTLING) $(ENABLE_HIGH_DPI_CANVAS) $(ENABLE_ICONDATABASE) $(ENABLE_IMAGE_CONTROLS) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDEXED_DATABASE_IN_WORKERS) $(ENABLE_INDIE_UI) $(ENABLE_INPUT_SPEECH) $(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_TEXT_AUTOSIZING) $(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_NOTIFICATIONS) $(ENABLE_PAGE_VISIBILITY_API) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_PLUGIN_PROXY_FOR_VIDEO) $(ENABLE_PROGRESS_ELEMENT) $(ENABLE_PROMISES) $(ENABLE_PROXIMITY_EVENTS) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REQUEST_ANIMATION_FRAME) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_SCRIPTED_SPEECH) $(ENABLE_SHARED_WORKERS) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_SQL_DATABASE) $(ENABLE_SUBPIXEL_LAYOUT) $(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_WEB_TIMING) $(ENABLE_WEBVTT_REGIONS) $(ENABLE_XHR_TIMEOUT) $(ENABLE_XSLT) $(ENABLE_FTL_JIT) $(ENABLE_LLINT_C_LOOP) $(FEATURE_DEFINES_$(PLATFORM_NAME)); -
trunk/Source/WebCore/DerivedSources.make
r167530 r167632 955 955 endif 956 956 957 ifeq ($(findstring ENABLE_DATACUE_VALUE,$(FEATURE_DEFINES)), ENABLE_DATACUE_VALUE) 958 HTML_FLAGS := $(HTML_FLAGS) ENABLE_DATACUE_VALUE=0 959 endif 960 957 961 ifeq ($(findstring ENABLE_ENCRYPTED_MEDIA,$(FEATURE_DEFINES)), ENABLE_ENCRYPTED_MEDIA) 958 962 HTML_FLAGS := $(HTML_FLAGS) ENABLE_ENCRYPTED_MEDIA=1 -
trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj
r167596 r167632 196 196 0779BF0D18453168000B6AE7 /* HTMLMediaElementMediaStream.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0779BF0A18453168000B6AE7 /* HTMLMediaElementMediaStream.cpp */; }; 197 197 0779BF0E18453168000B6AE7 /* HTMLMediaElementMediaStream.h in Headers */ = {isa = PBXBuildFile; fileRef = 0779BF0B18453168000B6AE7 /* HTMLMediaElementMediaStream.h */; }; 198 077AF14018F4AE400001ED61 /* SerializedPlatformRepresentation.h in Headers */ = {isa = PBXBuildFile; fileRef = 077AF13E18F4AE400001ED61 /* SerializedPlatformRepresentation.h */; settings = {ATTRIBUTES = (Private, ); }; }; 199 077AF14318F4B1BB0001ED61 /* SerializedPlatformRepresentationMac.h in Headers */ = {isa = PBXBuildFile; fileRef = 077AF14118F4B1BB0001ED61 /* SerializedPlatformRepresentationMac.h */; }; 200 077AF14418F4B1BB0001ED61 /* SerializedPlatformRepresentationMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 077AF14218F4B1BB0001ED61 /* SerializedPlatformRepresentationMac.mm */; }; 198 201 0783228418013ED800999E0C /* MediaStreamAudioSource.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0783228218013ED700999E0C /* MediaStreamAudioSource.cpp */; }; 199 202 0783228518013ED800999E0C /* MediaStreamAudioSource.h in Headers */ = {isa = PBXBuildFile; fileRef = 0783228318013ED800999E0C /* MediaStreamAudioSource.h */; }; … … 343 346 07E116B11489C9A100EC5ACE /* JSTextTrackCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 07E116B01489C9A100EC5ACE /* JSTextTrackCustom.cpp */; }; 344 347 07E117071489EBEB00EC5ACE /* JSTextTrackCueCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 07E117061489EBEB00EC5ACE /* JSTextTrackCueCustom.cpp */; }; 348 07E9E12E18F5E2760011A3A4 /* InbandMetadataTextTrackPrivateAVF.h in Headers */ = {isa = PBXBuildFile; fileRef = 07E9E12D18F5E2760011A3A4 /* InbandMetadataTextTrackPrivateAVF.h */; }; 349 07E9E13018F62B370011A3A4 /* InbandMetadataTextTrackPrivateAVF.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 07E9E12F18F62B370011A3A4 /* InbandMetadataTextTrackPrivateAVF.cpp */; }; 345 350 07ED35A216D6DCC9002248F3 /* InbandTextTrackPrivateAVFIOS.mm in Sources */ = {isa = PBXBuildFile; fileRef = 07357C7716D2DF0D00ED99E7 /* InbandTextTrackPrivateAVFIOS.mm */; }; 346 351 07ED35A316D6DCE2002248F3 /* InbandTextTrackPrivateAVFIOS.h in Headers */ = {isa = PBXBuildFile; fileRef = 07357C7616D2DF0D00ED99E7 /* InbandTextTrackPrivateAVFIOS.h */; }; 347 352 07F944161864D046005D31CB /* MediaSessionManager.h in Headers */ = {isa = PBXBuildFile; fileRef = CDAE8C081746B95700532D78 /* MediaSessionManager.h */; settings = {ATTRIBUTES = (Private, ); }; }; 353 07FBDE2C18FED178001A7CFF /* JSDataCueCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 07FBDE2B18FED178001A7CFF /* JSDataCueCustom.cpp */; }; 348 354 07FE99DC18807A7D00256648 /* HTMLMediaSession.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 07FE99DA18807A7D00256648 /* HTMLMediaSession.cpp */; }; 349 355 07FE99DD18807A7D00256648 /* HTMLMediaSession.h in Headers */ = {isa = PBXBuildFile; fileRef = 07FE99DB18807A7D00256648 /* HTMLMediaSession.h */; settings = {ATTRIBUTES = (Private, ); }; }; … … 7080 7086 0779BF0B18453168000B6AE7 /* HTMLMediaElementMediaStream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HTMLMediaElementMediaStream.h; sourceTree = "<group>"; }; 7081 7087 0779BF0C18453168000B6AE7 /* HTMLMediaElementMediaStream.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = HTMLMediaElementMediaStream.idl; sourceTree = "<group>"; }; 7088 077AF13E18F4AE400001ED61 /* SerializedPlatformRepresentation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SerializedPlatformRepresentation.h; sourceTree = "<group>"; }; 7089 077AF14118F4B1BB0001ED61 /* SerializedPlatformRepresentationMac.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SerializedPlatformRepresentationMac.h; sourceTree = "<group>"; }; 7090 077AF14218F4B1BB0001ED61 /* SerializedPlatformRepresentationMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = SerializedPlatformRepresentationMac.mm; sourceTree = "<group>"; }; 7082 7091 0783228218013ED700999E0C /* MediaStreamAudioSource.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MediaStreamAudioSource.cpp; sourceTree = "<group>"; }; 7083 7092 0783228318013ED800999E0C /* MediaStreamAudioSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MediaStreamAudioSource.h; sourceTree = "<group>"; }; … … 7166 7175 07E116B01489C9A100EC5ACE /* JSTextTrackCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSTextTrackCustom.cpp; sourceTree = "<group>"; }; 7167 7176 07E117061489EBEB00EC5ACE /* JSTextTrackCueCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSTextTrackCueCustom.cpp; sourceTree = "<group>"; }; 7177 07E9E12D18F5E2760011A3A4 /* InbandMetadataTextTrackPrivateAVF.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InbandMetadataTextTrackPrivateAVF.h; sourceTree = "<group>"; }; 7178 07E9E12F18F62B370011A3A4 /* InbandMetadataTextTrackPrivateAVF.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InbandMetadataTextTrackPrivateAVF.cpp; sourceTree = "<group>"; }; 7179 07FBDE2B18FED178001A7CFF /* JSDataCueCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSDataCueCustom.cpp; sourceTree = "<group>"; }; 7168 7180 07FE99DA18807A7D00256648 /* HTMLMediaSession.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = HTMLMediaSession.cpp; sourceTree = "<group>"; }; 7169 7181 07FE99DB18807A7D00256648 /* HTMLMediaSession.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HTMLMediaSession.h; sourceTree = "<group>"; }; … … 14310 14322 DF9AFD6F13FC31B00015FEB7 /* objc */, 14311 14323 CDE3A85217F5FCE600C5BE20 /* AudioTrackPrivateAVF.h */, 14324 07E9E12D18F5E2760011A3A4 /* InbandMetadataTextTrackPrivateAVF.h */, 14325 07E9E12F18F62B370011A3A4 /* InbandMetadataTextTrackPrivateAVF.cpp */, 14312 14326 07B442D4166C70B000556CAD /* InbandTextTrackPrivateAVF.cpp */, 14313 14327 07B442D5166C70B000556CAD /* InbandTextTrackPrivateAVF.h */, … … 16170 16184 1AA84F02143BA7BD0051D153 /* ScrollElasticityController.mm */, 16171 16185 9353676A09AED88B00D35CD6 /* ScrollViewMac.mm */, 16186 077AF14118F4B1BB0001ED61 /* SerializedPlatformRepresentationMac.h */, 16187 077AF14218F4B1BB0001ED61 /* SerializedPlatformRepresentationMac.mm */, 16172 16188 1A4A95510B4EDCFF002D8C3C /* SharedBufferMac.mm */, 16173 16189 93309E9F099EB78C0056E581 /* SharedTimerMac.mm */, … … 20529 20545 isa = PBXGroup; 20530 20546 children = ( 20547 07FBDE2B18FED178001A7CFF /* JSDataCueCustom.cpp */, 20531 20548 BC2ED6BB0C6BD2F000920BFF /* JSAttrCustom.cpp */, 20532 20549 FDEAAAEF12B02EE400DCF33B /* JSAudioBufferSourceNodeCustom.cpp */, … … 21074 21091 BC6D6E2509AF943500F59759 /* ScrollView.h */, 21075 21092 AB7170880B3118080017123E /* SearchPopupMenu.h */, 21093 077AF13E18F4AE400001ED61 /* SerializedPlatformRepresentation.h */, 21076 21094 1A4A954B0B4EDCCB002D8C3C /* SharedBuffer.cpp */, 21077 21095 1A4A954C0B4EDCCB002D8C3C /* SharedBuffer.h */, … … 22955 22973 31A795C71888BCB200382F90 /* ANGLEInstancedArrays.h in Headers */, 22956 22974 490707E71219C04300D90E51 /* ANGLEWebKitBridge.h in Headers */, 22975 077AF14018F4AE400001ED61 /* SerializedPlatformRepresentation.h in Headers */, 22957 22976 49E912AB0EFAC906009D0CAF /* Animation.h in Headers */, 22958 22977 316FE1120E6E1DA700BF6088 /* AnimationBase.h in Headers */, … … 23039 23058 51741D0F0B07259A00ED442C /* BackForwardClient.h in Headers */, 23040 23059 BCA8C81E11E3D36900812FB7 /* BackForwardController.h in Headers */, 23060 077AF14318F4B1BB0001ED61 /* SerializedPlatformRepresentationMac.h in Headers */, 23041 23061 BCA8CA6011E4E6D100812FB7 /* BackForwardList.h in Headers */, 23042 23062 BC124EE80C2641CD009E2349 /* BarProp.h in Headers */, … … 23951 23971 C5D4AA7A116BAFB60069CA93 /* GlyphMetricsMap.h in Headers */, 23952 23972 0873B86B136064EA00A522C2 /* GlyphPage.h in Headers */, 23973 07E9E12E18F5E2760011A3A4 /* InbandMetadataTextTrackPrivateAVF.h in Headers */, 23953 23974 B2C3DA6E0D006CD600EF6F26 /* GlyphPageTreeNode.h in Headers */, 23954 23975 BC53C5F50DA56B920021EB5D /* Gradient.h in Headers */, … … 27528 27549 E44613AA0CD6331000FADA75 /* HTMLVideoElement.cpp in Sources */, 27529 27550 0B8C56D40F28627F000502E1 /* HTTPHeaderMap.cpp in Sources */, 27551 077AF14418F4B1BB0001ED61 /* SerializedPlatformRepresentationMac.mm in Sources */, 27530 27552 514C76720CE923A1007EF3CD /* HTTPParsers.cpp in Sources */, 27531 27553 371A67CB11C6C7DB00047B8B /* HyphenationCF.cpp in Sources */, … … 27955 27977 CDA98E0616039E1F00FEA3B1 /* JSMediaKeySession.cpp in Sources */, 27956 27978 BC3C39B60C0D3D8D005F4D7A /* JSMediaList.cpp in Sources */, 27979 07E9E13018F62B370011A3A4 /* InbandMetadataTextTrackPrivateAVF.cpp in Sources */, 27957 27980 D3A94A46122DC40F00A37BBC /* JSMediaQueryList.cpp in Sources */, 27958 27981 7C5343FC17B74B63004232F0 /* JSMediaQueryListListener.cpp in Sources */, … … 28967 28990 97BC6A541505F081001B74AC /* SQLTransactionClient.cpp in Sources */, 28968 28991 97BC6A561505F081001B74AC /* SQLTransactionCoordinator.cpp in Sources */, 28992 07FBDE2C18FED178001A7CFF /* JSDataCueCustom.cpp in Sources */, 28969 28993 FE36FD1616C7826500F887C1 /* SQLTransactionStateMachine.cpp in Sources */, 28970 28994 97BC6A5A1505F081001B74AC /* SQLTransactionSync.cpp in Sources */, -
trunk/Source/WebCore/bindings/js/JSBindingsAllInOne.cpp
r167530 r167632 62 62 #include "JSDOMWindowShell.cpp" 63 63 #include "JSDOMWrapper.cpp" 64 #include "JSDataCueCustom.cpp" 64 65 #include "JSDataTransferCustom.cpp" 65 66 #include "JSDedicatedWorkerGlobalScopeCustom.cpp" -
trunk/Source/WebCore/html/HTMLMediaElement.cpp
r167578 r167632 1381 1381 if (m_readyState != HAVE_NOTHING && m_player) { 1382 1382 currentCues = m_cueTree.allOverlaps(m_cueTree.createInterval(movieTime, movieTime)); 1383 std::sort(currentCues.begin(), currentCues.end(), &compareCueInterval); 1383 if (currentCues.size() > 1) 1384 std::sort(currentCues.begin(), currentCues.end(), &compareCueInterval); 1384 1385 } 1385 1386 … … 1427 1428 // fired as part of the overall process of changing the current playback 1428 1429 // position.) 1429 if ( m_lastSeekTime <= lastTime)1430 if (!m_paused && m_lastSeekTime <= lastTime) 1430 1431 scheduleTimeupdateEvent(false); 1431 1432 -
trunk/Source/WebCore/html/track/DataCue.cpp
r167528 r167632 1 1 /* 2 2 * Copyright (C) 2014 Cable Television Labs Inc. All rights reserved. 3 * Copyright (C) 2014 Apple Inc. All rights reserved. 3 4 * 4 5 * Redistribution and use in source and binary forms, with or without … … 32 33 #include "TextTrack.h" 33 34 #include "TextTrackCueList.h" 35 #include <runtime/Protect.h> 34 36 35 37 namespace WebCore { 36 38 37 DataCue::DataCue(ScriptExecutionContext& context, double start, double end, ArrayBuffer* data, ExceptionCode& ec)39 DataCue::DataCue(ScriptExecutionContext& context, double start, double end, ArrayBuffer* data, const String& type, ExceptionCode& ec) 38 40 : TextTrackCue(context, start, end) 41 , m_type(type) 39 42 { 40 43 setData(data, ec); … … 47 50 } 48 51 49 DataCue::~DataCue() 52 #if ENABLE(DATACUE_VALUE) 53 DataCue::DataCue(ScriptExecutionContext& context, double start, double end, PassRefPtr<SerializedPlatformRepresentation> platformValue, const String& type) 54 : TextTrackCue(context, start, end) 55 , m_type(type) 56 , m_platformValue(platformValue) 50 57 { 51 58 } 52 59 53 RefPtr<ArrayBuffer> DataCue::data() const 60 DataCue::DataCue(ScriptExecutionContext& context, double start, double end, JSC::JSValue value, const String& type) 61 : TextTrackCue(context, start, end) 62 , m_type(type) 63 , m_value(value) 54 64 { 55 ASSERT_WITH_SECURITY_IMPLICATION(m_data); 65 } 66 #endif 67 68 DataCue::~DataCue() 69 { 70 #if ENABLE(DATACUE_VALUE) 71 if (m_value) 72 JSC::gcUnprotect(m_value); 73 #endif 74 } 75 76 PassRefPtr<ArrayBuffer> DataCue::data() const 77 { 78 #if ENABLE(DATACUE_VALUE) 79 if (m_platformValue) 80 return m_platformValue->data(); 81 #endif 82 83 if (!m_data) 84 return nullptr; 85 56 86 return ArrayBuffer::create(m_data.get()); 57 87 } … … 59 89 void DataCue::setData(ArrayBuffer* data, ExceptionCode& ec) 60 90 { 61 if (!data) 91 if (!data) { 62 92 ec = TypeError; 63 else 64 m_data = ArrayBuffer::create(data); 93 return; 94 } 95 96 #if ENABLE(DATACUE_VALUE) 97 m_platformValue = nullptr; 98 m_value = JSC::JSValue(); 99 #endif 100 101 m_data = ArrayBuffer::create(data); 65 102 } 66 103 104 #if !ENABLE(DATACUE_VALUE) 67 105 String DataCue::text(bool& isNull) const 68 106 { … … 70 108 return String(); 71 109 } 110 #endif 72 111 73 112 DataCue* toDataCue(TextTrackCue* cue) … … 83 122 } 84 123 124 bool DataCue::isEqual(const TextTrackCue& cue, TextTrackCue::CueMatchRules match) const 125 { 126 if (!TextTrackCue::isEqual(cue, match)) 127 return false; 128 129 if (cue.cueType() != TextTrackCue::Data) 130 return false; 131 132 const DataCue* dataCue = toDataCue(&cue); 133 RefPtr<ArrayBuffer> otherData = dataCue->data(); 134 if ((otherData && !m_data) || (!otherData && m_data)) 135 return false; 136 if (m_data && m_data->byteLength() != otherData->byteLength()) 137 return false; 138 if (m_data && m_data->data() && memcmp(m_data->data(), otherData->data(), m_data->byteLength())) 139 return false; 140 141 #if ENABLE(DATACUE_VALUE) 142 RefPtr<SerializedPlatformRepresentation> otherPlatformValue = dataCue->platformValue(); 143 if ((otherPlatformValue && !m_platformValue) || (!otherPlatformValue && m_platformValue)) 144 return false; 145 if (m_platformValue && !m_platformValue->isEqual(*otherPlatformValue.get())) 146 return false; 147 148 JSC::JSValue otherValue = dataCue->value(nullptr); 149 if ((otherValue && !m_value) || (!otherValue && m_value)) 150 return false; 151 if (!JSC::JSValue::strictEqual(nullptr, m_value ? m_value : JSC::JSValue(), otherValue)) 152 return false; 153 #endif 154 155 return true; 156 } 157 158 #if ENABLE(DATACUE_VALUE) 159 JSC::JSValue DataCue::value(JSC::ExecState* exec) const 160 { 161 if (exec && m_platformValue) 162 return m_platformValue->deserialize(exec); 163 164 if (m_value) 165 return m_value; 166 167 return JSC::jsNull(); 168 } 169 170 void DataCue::setValue(JSC::ExecState*, JSC::JSValue value) 171 { 172 // FIXME: this should use a SerializedScriptValue. 173 if (m_value) 174 JSC::gcUnprotect(m_value); 175 m_value = value; 176 if (m_value) 177 JSC::gcProtect(m_value); 178 179 m_platformValue = nullptr; 180 m_data = nullptr; 181 } 182 #endif 183 85 184 } // namespace WebCore 86 185 -
trunk/Source/WebCore/html/track/DataCue.h
r167528 r167632 1 1 /* 2 2 * Copyright (C) 2014 Cable Television Labs Inc. All rights reserved. 3 * Copyright (C) 2014 Apple Inc. All rights reserved. 3 4 * 4 5 * Redistribution and use in source and binary forms, with or without … … 31 32 #include "TextTrackCue.h" 32 33 #include <runtime/ArrayBuffer.h> 34 #include <runtime/JSCInlines.h> 33 35 #include <wtf/RefCounted.h> 36 37 #if ENABLE(DATACUE_VALUE) 38 #include "SerializedPlatformRepresentation.h" 39 #endif 34 40 35 41 namespace WebCore { … … 41 47 static PassRefPtr<DataCue> create(ScriptExecutionContext& context, double start, double end, ArrayBuffer* data, ExceptionCode& ec) 42 48 { 43 return adoptRef(new DataCue(context, start, end, data, e c));49 return adoptRef(new DataCue(context, start, end, data, emptyString(), ec)); 44 50 } 45 51 … … 49 55 } 50 56 57 static PassRefPtr<DataCue> create(ScriptExecutionContext& context, double start, double end, ArrayBuffer* data, const String& type, ExceptionCode& ec) 58 { 59 return adoptRef(new DataCue(context, start, end, data, type, ec)); 60 } 61 62 #if ENABLE(DATACUE_VALUE) 63 static PassRefPtr<DataCue> create(ScriptExecutionContext& context, double start, double end, PassRefPtr<SerializedPlatformRepresentation> platformValue, const String& type) 64 { 65 return adoptRef(new DataCue(context, start, end, platformValue, type)); 66 } 67 68 static PassRefPtr<DataCue> create(ScriptExecutionContext& context, double start, double end, JSC::JSValue value, const String& type) 69 { 70 return adoptRef(new DataCue(context, start, end, value, type)); 71 } 72 #endif 73 51 74 virtual ~DataCue(); 52 75 virtual CueType cueType() const { return Data; } 53 76 54 RefPtr<ArrayBuffer> data() const;77 PassRefPtr<ArrayBuffer> data() const; 55 78 void setData(ArrayBuffer*, ExceptionCode&); 56 String text(bool& isNull) const; 79 80 #if ENABLE(DATACUE_VALUE) 81 const PassRefPtr<SerializedPlatformRepresentation> platformValue() const { return m_platformValue; } 82 83 JSC::JSValue value(JSC::ExecState*) const; 84 void setValue(JSC::ExecState*, JSC::JSValue); 85 86 String type() const { return m_type; } 87 void setType(const String& type) { m_type = type; } 88 #else 89 String text(bool&) const; 90 #endif 91 92 virtual bool isEqual(const TextTrackCue&, CueMatchRules) const override; 57 93 58 94 protected: 59 DataCue(ScriptExecutionContext&, double start, double end, ArrayBuffer*, ExceptionCode&); 60 DataCue(ScriptExecutionContext&, double start, double end, const void* data, unsigned length); 95 DataCue(ScriptExecutionContext&, double start, double end, ArrayBuffer*, const String&, ExceptionCode&); 96 DataCue(ScriptExecutionContext&, double start, double end, const void*, unsigned); 97 #if ENABLE(DATACUE_VALUE) 98 DataCue(ScriptExecutionContext&, double start, double end, PassRefPtr<SerializedPlatformRepresentation>, const String&); 99 DataCue(ScriptExecutionContext&, double start, double end, JSC::JSValue, const String&); 100 #endif 61 101 62 102 private: 63 103 RefPtr<ArrayBuffer> m_data; 104 String m_type; 105 #if ENABLE(DATACUE_VALUE) 106 RefPtr<SerializedPlatformRepresentation> m_platformValue; 107 JSC::JSValue m_value; 108 #endif 64 109 }; 65 110 -
trunk/Source/WebCore/html/track/DataCue.idl
r167528 r167632 1 1 /* 2 2 * Copyright (C) 2014 Cable Television Labs Inc. All rights reserved. 3 * Copyright (C) 2014 Apple Inc. All rights reserved. 3 4 * 4 5 * Redistribution and use in source and binary forms, with or without … … 25 26 [ 26 27 Conditional=VIDEO_TRACK, 27 Constructor(double startTime, double endTime, [StrictTypeChecking] ArrayBuffer data), 28 ConstructorCallWith=ScriptExecutionContext, 28 CustomConstructor, 29 #if defined(ENABLE_DATACUE_VALUE) && ENABLE_DATACUE_VALUE 30 CustomConstructor(double startTime, double endTime, any value, optional DOMString type), 31 InterfaceName=WebKitDataCue, 32 #else 33 CustomConstructor(double startTime, double endTime, ArrayBuffer data), 34 #endif 29 35 ConstructorRaisesException, 30 36 ] interface DataCue : TextTrackCue { 31 37 [SetterRaisesException] attribute ArrayBuffer data; 38 39 #if defined(ENABLE_DATACUE_VALUE) && ENABLE_DATACUE_VALUE 40 [CustomGetter, CustomSetter] attribute any value; 41 readonly attribute DOMString type; 42 #else 32 43 readonly attribute DOMString? text; 44 #endif 33 45 }; -
trunk/Source/WebCore/html/track/InbandDataTextTrack.cpp
r167528 r167632 1 1 /* 2 2 * Copyright (C) 2014 Cable Television Labs Inc. All rights reserved. 3 * Copyright (C) 2014 Apple Inc. All rights reserved. 3 4 * 4 5 * Redistribution and use in source and binary forms, with or without … … 31 32 #include "DataCue.h" 32 33 #include "ExceptionCodePlaceholder.h" 34 #include "HTMLMediaElement.h" 33 35 #include "InbandTextTrackPrivate.h" 36 #include "Logging.h" 34 37 #include <runtime/ArrayBuffer.h> 35 38 … … 56 59 } 57 60 61 #if ENABLE(DATACUE_VALUE) 62 void InbandDataTextTrack::addDataCue(InbandTextTrackPrivate*, double start, double end, PassRefPtr<SerializedPlatformRepresentation> prpPlatformValue, const String& type) 63 { 64 RefPtr<SerializedPlatformRepresentation> platformValue = prpPlatformValue; 65 if (m_incompleteCueMap.find(platformValue.get()) != m_incompleteCueMap.end()) 66 return; 67 68 RefPtr<DataCue> cue = DataCue::create(*scriptExecutionContext(), start, end, platformValue, type); 69 if (hasCue(cue.get(), TextTrackCue::IgnoreDuration)) { 70 LOG(Media, "InbandDataTextTrack::addDataCue ignoring already added cue: start=%.2f, end=%.2f\n", cue->startTime(), cue->endTime()); 71 return; 72 } 73 74 if (std::isinf(end) && mediaElement()) { 75 cue->setEndTime(mediaElement()->duration(), IGNORE_EXCEPTION); 76 m_incompleteCueMap.add(platformValue, cue); 77 } 78 79 addCue(cue.release(), ASSERT_NO_EXCEPTION); 80 } 81 82 void InbandDataTextTrack::updateDataCue(InbandTextTrackPrivate*, double start, double end, PassRefPtr<SerializedPlatformRepresentation> prpPlatformValue) 83 { 84 RefPtr<SerializedPlatformRepresentation> platformValue = prpPlatformValue; 85 auto iter = m_incompleteCueMap.find(platformValue.get()); 86 if (iter == m_incompleteCueMap.end()) 87 return; 88 89 RefPtr<DataCue> cue = iter->value; 90 if (!cue) 91 return; 92 93 cue->willChange(); 94 95 if (std::isinf(end) && mediaElement()) 96 end = mediaElement()->duration(); 97 else 98 m_incompleteCueMap.remove(platformValue.get()); 99 100 LOG(Media, "InbandDataTextTrack::updateDataCue: was start=%.2f, end=%.2f, will be start=%.2f, end=%.2f\n", cue->startTime(), cue->endTime(), start, end); 101 102 cue->setStartTime(start, IGNORE_EXCEPTION); 103 cue->setEndTime(end, IGNORE_EXCEPTION); 104 105 cue->didChange(); 106 } 107 108 void InbandDataTextTrack::removeDataCue(InbandTextTrackPrivate*, double, double, PassRefPtr<SerializedPlatformRepresentation> prpPlatformValue) 109 { 110 RefPtr<SerializedPlatformRepresentation> platformValue = prpPlatformValue; 111 auto iter = m_incompleteCueMap.find(platformValue.get()); 112 if (iter == m_incompleteCueMap.end()) 113 return; 114 115 RefPtr<DataCue> cue = iter->value; 116 if (cue) { 117 LOG(Media, "InbandDataTextTrack::removeDataCue removing cue: start=%.2f, end=%.2f\n", cue->startTime(), cue->endTime()); 118 removeCue(cue.get(), IGNORE_EXCEPTION); 119 } 120 } 121 122 void InbandDataTextTrack::removeCue(TextTrackCue* cue, ExceptionCode& ec) 123 { 124 ASSERT(cue->cueType() == TextTrackCue::Data); 125 126 RefPtr<SerializedPlatformRepresentation> platformValue = toDataCue(cue)->platformValue().get(); 127 auto iter = m_incompleteCueMap.find(platformValue.get()); 128 if (iter != m_incompleteCueMap.end()) 129 m_incompleteCueMap.remove(platformValue.get()); 130 131 InbandTextTrack::removeCue(cue, ec); 132 } 133 134 #endif 135 58 136 } // namespace WebCore 59 137 -
trunk/Source/WebCore/html/track/InbandDataTextTrack.h
r167528 r167632 1 1 /* 2 2 * Copyright (C) 2014 Cable Television Labs Inc. All rights reserved. 3 * Copyright (C) 2014 Apple Inc. All rights reserved. 3 4 * 4 5 * Redistribution and use in source and binary forms, with or without … … 34 35 namespace WebCore { 35 36 37 class DataCue; 36 38 class Document; 37 39 class InbandTextTrackPrivate; 38 class TextTrackCue; 40 41 #if ENABLE(DATACUE_VALUE) 42 class SerializedPlatformRepresentation; 43 #endif 39 44 40 45 class InbandDataTextTrack : public InbandTextTrack { … … 47 52 48 53 virtual void addDataCue(InbandTextTrackPrivate*, double start, double end, const void*, unsigned) override; 54 55 #if ENABLE(DATACUE_VALUE) 56 virtual void addDataCue(InbandTextTrackPrivate*, double start, double end, PassRefPtr<SerializedPlatformRepresentation>, const String&) override; 57 virtual void updateDataCue(InbandTextTrackPrivate*, double start, double end, PassRefPtr<SerializedPlatformRepresentation>) override; 58 virtual void removeDataCue(InbandTextTrackPrivate*, double start, double end, PassRefPtr<SerializedPlatformRepresentation>) override; 59 virtual void removeCue(TextTrackCue*, ExceptionCode&) override; 60 61 HashMap<RefPtr<SerializedPlatformRepresentation>, RefPtr<DataCue>> m_incompleteCueMap; 62 #endif 49 63 }; 50 64 -
trunk/Source/WebCore/html/track/InbandGenericTextTrack.cpp
r167528 r167632 152 152 RefPtr<TextTrackCueGeneric> cue = TextTrackCueGeneric::create(*scriptExecutionContext(), cueData->startTime(), cueData->endTime(), cueData->content()); 153 153 updateCueFromCueData(cue.get(), cueData.get()); 154 if (hasCue(cue.get(), VTTCue::IgnoreDuration)) {154 if (hasCue(cue.get(), TextTrackCue::IgnoreDuration)) { 155 155 LOG(Media, "InbandGenericTextTrack::addGenericCue ignoring already added cue: start=%.2f, end=%.2f, content=\"%s\"\n", cueData->startTime(), cueData->endTime(), cueData->content().utf8().data()); 156 156 return; -
trunk/Source/WebCore/html/track/InbandTextTrack.h
r167528 r167632 72 72 virtual void addDataCue(InbandTextTrackPrivate*, double, double, const void*, unsigned) override { ASSERT_NOT_REACHED(); } 73 73 74 #if ENABLE(DATACUE_VALUE) 75 virtual void addDataCue(InbandTextTrackPrivate*, double, double, PassRefPtr<SerializedPlatformRepresentation>, const String&) override { ASSERT_NOT_REACHED(); } 76 virtual void updateDataCue(InbandTextTrackPrivate*, double, double, PassRefPtr<SerializedPlatformRepresentation>) override { ASSERT_NOT_REACHED(); } 77 virtual void removeDataCue(InbandTextTrackPrivate*, double, double, PassRefPtr<SerializedPlatformRepresentation>) override { ASSERT_NOT_REACHED(); } 78 #endif 79 74 80 virtual void addGenericCue(InbandTextTrackPrivate*, PassRefPtr<GenericCueData>) override { ASSERT_NOT_REACHED(); } 75 81 virtual void updateGenericCue(InbandTextTrackPrivate*, GenericCueData*) override { ASSERT_NOT_REACHED(); } -
trunk/Source/WebCore/html/track/InbandWebVTTTextTrack.cpp
r167528 r167632 69 69 cue->setCueSettings(cueData->settings()); 70 70 71 if (hasCue(cue.get(), VTTCue::IgnoreDuration)) {71 if (hasCue(cue.get(), TextTrackCue::IgnoreDuration)) { 72 72 LOG(Media, "InbandWebVTTTextTrack::newCuesParsed ignoring already added cue: start=%.2f, end=%.2f, content=\"%s\"\n", cueData->startTime(), cueData->endTime(), cueData->content().utf8().data()); 73 73 return; -
trunk/Source/WebCore/html/track/TextTrack.cpp
r167528 r167632 484 484 } 485 485 486 bool TextTrack::hasCue( VTTCue* cue, VTTCue::CueMatchRules match)486 bool TextTrack::hasCue(TextTrackCue* cue, TextTrackCue::CueMatchRules match) 487 487 { 488 488 if (cue->startTime() < 0 || cue->endTime() < 0) … … 520 520 521 521 existingCue = m_cues->item(searchStart - 1); 522 if (!cue->isRenderable())523 continue;524 525 522 if (!existingCue || cue->startTime() > existingCue->startTime()) 526 523 return false; 527 524 528 if (! toVTTCue(existingCue)->isEqual(*cue, match))525 if (!existingCue->isEqual(*cue, match)) 529 526 continue; 530 527 … … 535 532 size_t index = (searchStart + searchEnd) / 2; 536 533 existingCue = m_cues->item(index); 537 if (cue->startTime() < existingCue->startTime() || (match != VTTCue::IgnoreDuration && cue->startTime() == existingCue->startTime() && cue->endTime() > existingCue->endTime()))534 if (cue->startTime() < existingCue->startTime() || (match != TextTrackCue::IgnoreDuration && cue->startTime() == existingCue->startTime() && cue->endTime() > existingCue->endTime())) 538 535 searchEnd = index; 539 536 else -
trunk/Source/WebCore/html/track/TextTrack.h
r167528 r167632 113 113 virtual void removeCue(TextTrackCue*, ExceptionCode&); 114 114 115 bool hasCue( VTTCue*, VTTCue::CueMatchRules = VTTCue::MatchAllFields);115 bool hasCue(TextTrackCue*, TextTrackCue::CueMatchRules = TextTrackCue::MatchAllFields); 116 116 117 117 #if ENABLE(VIDEO_TRACK) && ENABLE(WEBVTT_REGIONS) -
trunk/Source/WebCore/html/track/TextTrackCue.cpp
r167528 r167632 203 203 } 204 204 205 bool TextTrackCue::isEqual(const TextTrackCue& cue, TextTrackCue::CueMatchRules match) const 206 { 207 if (cueType() != cue.cueType()) 208 return false; 209 210 if (match != IgnoreDuration && endTime() != cue.endTime()) 211 return false; 212 if (startTime() != cue.startTime()) 213 return false; 214 if (id() != cue.id()) 215 return false; 216 217 return true; 218 } 219 205 220 } // namespace WebCore 206 221 -
trunk/Source/WebCore/html/track/TextTrackCue.h
r167528 r167632 92 92 virtual bool isRenderable() const { return false; } 93 93 94 enum CueMatchRules { 95 MatchAllFields, 96 IgnoreDuration, 97 }; 98 virtual bool isEqual(const TextTrackCue&, CueMatchRules) const; 99 94 100 void willChange(); 95 101 virtual void didChange(); -
trunk/Source/WebCore/html/track/TextTrackCueGeneric.cpp
r167528 r167632 152 152 } 153 153 154 bool TextTrackCueGeneric::isEqual(const VTTCue& cue, VTTCue::CueMatchRules match) const154 bool TextTrackCueGeneric::isEqual(const TextTrackCue& cue, TextTrackCue::CueMatchRules match) const 155 155 { 156 if (!TextTrackCue::isEqual(cue, match)) 157 return false; 158 156 159 if (cue.cueType() != TextTrackCue::Generic) 157 160 return false; -
trunk/Source/WebCore/html/track/TextTrackCueGeneric.h
r167528 r167632 73 73 virtual void setFontSize(int, const IntSize&, bool important) override; 74 74 75 virtual bool isEqual(const VTTCue&, CueMatchRules) const override;75 virtual bool isEqual(const TextTrackCue&, CueMatchRules) const override; 76 76 77 77 virtual TextTrackCue::CueType cueType() const override { return TextTrackCue::Generic; } -
trunk/Source/WebCore/html/track/VTTCue.cpp
r167528 r167632 1063 1063 } 1064 1064 1065 bool VTTCue::isEqual(const VTTCue& cue,CueMatchRules match) const1066 { 1067 if ( cueType() != cue.cueType())1065 bool VTTCue::isEqual(const TextTrackCue& cue, TextTrackCue::CueMatchRules match) const 1066 { 1067 if (!TextTrackCue::isEqual(cue, match)) 1068 1068 return false; 1069 1070 if ( match != IgnoreDuration && endTime() != cue.endTime())1069 1070 if (cue.cueType() != WebVTT) 1071 1071 return false; 1072 if (startTime() != cue.startTime()) 1072 1073 const VTTCue* vttCue = toVTTCue(&cue); 1074 if (text() != vttCue->text()) 1073 1075 return false; 1074 if ( text() != cue.text())1076 if (cueSettings() != vttCue->cueSettings()) 1075 1077 return false; 1076 if ( cueSettings() != cue.cueSettings())1078 if (position() != vttCue->position()) 1077 1079 return false; 1078 if ( id() != cue.id())1080 if (line() != vttCue->line()) 1079 1081 return false; 1080 if ( position() != cue.position())1082 if (size() != vttCue->size()) 1081 1083 return false; 1082 if (line() != cue.line()) 1083 return false; 1084 if (size() != cue.size()) 1085 return false; 1086 if (align() != cue.align()) 1084 if (align() != vttCue->align()) 1087 1085 return false; 1088 1086 -
trunk/Source/WebCore/html/track/VTTCue.h
r167528 r167632 154 154 virtual void setFontSize(int, const IntSize&, bool important); 155 155 156 enum CueMatchRules { 157 MatchAllFields, 158 IgnoreDuration, 159 }; 160 virtual bool isEqual(const VTTCue&, CueMatchRules) const; 156 virtual bool isEqual(const TextTrackCue&, CueMatchRules) const override; 161 157 162 158 virtual CueType cueType() const { return WebVTT; } -
trunk/Source/WebCore/platform/graphics/InbandTextTrackPrivateClient.h
r167528 r167632 29 29 #include "Color.h" 30 30 #include "TrackPrivateBase.h" 31 32 #if ENABLE(DATACUE_VALUE) 33 #include "SerializedPlatformRepresentation.h" 34 #endif 31 35 32 36 #if ENABLE(VIDEO_TRACK) … … 129 133 }; 130 134 131 class WebVTTCueData;132 133 135 class InbandTextTrackPrivateClient : public TrackPrivateBaseClient { 134 136 public: … … 136 138 137 139 virtual void addDataCue(InbandTextTrackPrivate*, double start, double end, const void*, unsigned) = 0; 140 141 #if ENABLE(DATACUE_VALUE) 142 virtual void addDataCue(InbandTextTrackPrivate*, double start, double end, PassRefPtr<SerializedPlatformRepresentation>, const String&) = 0; 143 virtual void updateDataCue(InbandTextTrackPrivate*, double start, double end, PassRefPtr<SerializedPlatformRepresentation>) = 0; 144 virtual void removeDataCue(InbandTextTrackPrivate*, double start, double end, PassRefPtr<SerializedPlatformRepresentation>) = 0; 145 #endif 138 146 139 147 virtual void addGenericCue(InbandTextTrackPrivate*, PassRefPtr<GenericCueData>) = 0; -
trunk/Source/WebCore/platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp
r167528 r167632 282 282 return; 283 283 284 if (currentT rack())285 currentT rack()->beginSeeking();286 284 if (currentTextTrack()) 285 currentTextTrack()->beginSeeking(); 286 287 287 LOG(Media, "MediaPlayerPrivateAVFoundation::seek(%p) - seeking to %f", this, time); 288 288 … … 660 660 } 661 661 662 if (currentT rack())663 currentT rack()->endSeeking();662 if (currentTextTrack()) 663 currentTextTrack()->endSeeking(); 664 664 665 665 updateStates(); … … 930 930 } 931 931 932 setCurrentT rack(trackToEnable.get());932 setCurrentTextTrack(trackToEnable.get()); 933 933 } 934 934 -
trunk/Source/WebCore/platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h
r167528 r167632 40 40 namespace WebCore { 41 41 42 class InbandMetadataTextTrackPrivateAVF; 42 43 class InbandTextTrackPrivateAVF; 43 44 class GenericCueData; … … 58 59 virtual void contentsNeedsDisplay() { } 59 60 virtual void configureInbandTracks(); 60 virtual void setCurrentT rack(InbandTextTrackPrivateAVF*) { }61 virtual InbandTextTrackPrivateAVF* currentT rack() const = 0;61 virtual void setCurrentTextTrack(InbandTextTrackPrivateAVF*) { } 62 virtual InbandTextTrackPrivateAVF* currentTextTrack() const = 0; 62 63 #if ENABLE(IOS_AIRPLAY) 63 64 void playbackTargetIsWirelessChanged(); … … 302 303 void clearTextTracks(); 303 304 Vector<RefPtr<InbandTextTrackPrivateAVF>> m_textTracks; 304 305 305 306 private: 306 307 MediaPlayer* m_player; -
trunk/Source/WebCore/platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp
r167528 r167632 111 111 void updateVideoLayerGravity(); 112 112 113 void setCurrentT rack(InbandTextTrackPrivateAVF*);114 InbandTextTrackPrivateAVF* currentT rack() const { return m_currentTrack; }113 void setCurrentTextTrack(InbandTextTrackPrivateAVF*); 114 InbandTextTrackPrivateAVF* currentTextTrack() const { return m_currentTextTrack; } 115 115 116 116 #if HAVE(AVFOUNDATION_MEDIA_SELECTION_GROUP) && HAVE(AVFOUNDATION_LEGIBLE_OUTPUT_SUPPORT) … … 171 171 COMPtr<IDirect3DDevice9Ex> m_d3dDevice; 172 172 173 InbandTextTrackPrivateAVF* m_currentT rack;173 InbandTextTrackPrivateAVF* m_currentTextTrack; 174 174 }; 175 175 … … 393 393 } 394 394 395 void MediaPlayerPrivateAVFoundationCF::setCurrentT rack(InbandTextTrackPrivateAVF* track)395 void MediaPlayerPrivateAVFoundationCF::setCurrentTextTrack(InbandTextTrackPrivateAVF* track) 396 396 { 397 397 if (m_avfWrapper) 398 m_avfWrapper->setCurrentT rack(track);399 } 400 401 InbandTextTrackPrivateAVF* MediaPlayerPrivateAVFoundationCF::currentT rack() const398 m_avfWrapper->setCurrentTextTrack(track); 399 } 400 401 InbandTextTrackPrivateAVF* MediaPlayerPrivateAVFoundationCF::currentTextTrack() const 402 402 { 403 403 if (m_avfWrapper) 404 return m_avfWrapper->currentT rack();404 return m_avfWrapper->currentTextTrack(); 405 405 406 406 return 0; … … 1103 1103 #endif // HAVE(AVFOUNDATION_MEDIA_SELECTION_GROUP) 1104 1104 1105 void AVFWrapper::setCurrentT rack(InbandTextTrackPrivateAVF* track)1106 { 1107 if (m_currentT rack == track)1108 return; 1109 1110 LOG(Media, "MediaPlayerPrivateAVFoundationCF::setCurrentT rack(%p) - selecting track %p, language = %s", this, track, track ? track->language().string().utf8().data() : "");1105 void AVFWrapper::setCurrentTextTrack(InbandTextTrackPrivateAVF* track) 1106 { 1107 if (m_currentTextTrack == track) 1108 return; 1109 1110 LOG(Media, "MediaPlayerPrivateAVFoundationCF::setCurrentTextTrack(%p) - selecting track %p, language = %s", this, track, track ? track->language().string().utf8().data() : ""); 1111 1111 1112 m_currentT rack = track;1112 m_currentTextTrack = track; 1113 1113 1114 1114 if (track) { … … 1188 1188 : m_owner(owner) 1189 1189 , m_objectID(s_nextAVFWrapperObjectID++) 1190 , m_currentT rack(0)1190 , m_currentTextTrack(0) 1191 1191 { 1192 1192 ASSERT(isMainThread()); … … 1622 1622 } 1623 1623 1624 if (!self->m_currentT rack)1625 return; 1626 1627 self->m_currentT rack->processCue(legibleOutputData->m_attributedStrings.get(), legibleOutputData->m_time);1624 if (!self->m_currentTextTrack) 1625 return; 1626 1627 self->m_currentTextTrack->processCue(legibleOutputData->m_attributedStrings.get(), legibleOutputData->m_time); 1628 1628 } 1629 1629 -
trunk/Source/WebCore/platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.h
r167528 r167632 109 109 #endif 110 110 111 virtual void setCurrentT rack(InbandTextTrackPrivateAVF*) override;112 virtual InbandTextTrackPrivateAVF* currentT rack() const override;111 virtual void setCurrentTextTrack(InbandTextTrackPrivateAVF*) override; 112 virtual InbandTextTrackPrivateAVF* currentTextTrack() const override; 113 113 114 114 #if !HAVE(AVFOUNDATION_LEGIBLE_OUTPUT_SUPPORT) -
trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h
r167528 r167632 61 61 62 62 class WebCoreAVFResourceLoader; 63 class InbandMetadataTextTrackPrivateAVF; 63 64 class InbandTextTrackPrivateAVFObjC; 64 65 class AudioTrackPrivateAVFObjC; … … 109 110 void durationDidChange(double); 110 111 void rateDidChange(double); 111 void metadataDidArrive(RetainPtr<NSArray> );112 void metadataDidArrive(RetainPtr<NSArray>, double); 112 113 113 114 #if HAVE(AVFOUNDATION_VIDEO_OUTPUT) … … 236 237 #endif 237 238 238 virtual void setCurrentTrack(InbandTextTrackPrivateAVF*) override; 239 virtual InbandTextTrackPrivateAVF* currentTrack() const override { return m_currentTrack; } 239 #if ENABLE(DATACUE_VALUE) 240 void processMetadataTrack(); 241 #endif 242 243 virtual void setCurrentTextTrack(InbandTextTrackPrivateAVF*) override; 244 virtual InbandTextTrackPrivateAVF* currentTextTrack() const override { return m_currentTextTrack; } 240 245 241 246 #if !HAVE(AVFOUNDATION_LEGIBLE_OUTPUT_SUPPORT) … … 303 308 #endif 304 309 305 InbandTextTrackPrivateAVF* m_currentTrack; 310 InbandTextTrackPrivateAVF* m_currentTextTrack; 311 312 #if ENABLE(DATACUE_VALUE) 313 RefPtr<InbandMetadataTextTrackPrivateAVF> m_metadataTrack; 314 #endif 306 315 307 316 mutable RetainPtr<NSArray> m_cachedSeekableRanges; -
trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm
r167528 r167632 27 27 28 28 #if ENABLE(VIDEO) && USE(AVFOUNDATION) 29 30 29 #import "MediaPlayerPrivateAVFoundationObjC.h" 31 30 … … 41 40 #import "GraphicsContext.h" 42 41 #import "GraphicsContextCG.h" 42 #import "InbandMetadataTextTrackPrivateAVF.h" 43 43 #import "InbandTextTrackPrivateAVFObjC.h" 44 44 #import "InbandTextTrackPrivateLegacyAVFObjC.h" … … 48 48 #import "PlatformTimeRanges.h" 49 49 #import "SecurityOrigin.h" 50 #import "SerializedPlatformRepresentationMac.h" 50 51 #import "SoftLinking.h" 51 52 #import "TextTrackRepresentation.h" … … 63 64 #import <wtf/CurrentTime.h> 64 65 #import <wtf/Functional.h> 66 #import <wtf/NeverDestroyed.h> 65 67 #import <wtf/text/CString.h> 66 68 #import <wtf/text/StringBuilder.h> … … 99 101 #endif 100 102 103 typedef AVPlayerItem AVPlayerItemType; 101 104 typedef AVMetadataItem AVMetadataItemType; 102 105 … … 145 148 SOFT_LINK_POINTER(AVFoundation, AVMediaTypeVideo, NSString *) 146 149 SOFT_LINK_POINTER(AVFoundation, AVMediaTypeAudio, NSString *) 150 SOFT_LINK_POINTER(AVFoundation, AVMediaTypeMetadata, NSString *) 147 151 SOFT_LINK_POINTER(AVFoundation, AVPlayerItemDidPlayToEndTimeNotification, NSString *) 148 152 SOFT_LINK_POINTER(AVFoundation, AVURLAssetInheritURIQueryComponentFromReferencingURIKey, NSString *) … … 168 172 #define AVMediaTypeVideo getAVMediaTypeVideo() 169 173 #define AVMediaTypeAudio getAVMediaTypeAudio() 174 #define AVMediaTypeMetadata getAVMediaTypeMetadata() 170 175 #define AVPlayerItemDidPlayToEndTimeNotification getAVPlayerItemDidPlayToEndTimeNotification() 171 176 #define AVURLAssetInheritURIQueryComponentFromReferencingURIKey getAVURLAssetInheritURIQueryComponentFromReferencingURIKey() … … 221 226 #endif 222 227 228 #if ENABLE(DATACUE_VALUE) 229 SOFT_LINK_POINTER(AVFoundation, AVMetadataKeySpaceQuickTimeUserData, NSString*) 230 SOFT_LINK_POINTER(AVFoundation, AVMetadataKeySpaceISOUserData, NSString*) 231 SOFT_LINK_POINTER(AVFoundation, AVMetadataKeySpaceQuickTimeMetadata, NSString*) 232 SOFT_LINK_POINTER(AVFoundation, AVMetadataKeySpaceiTunes, NSString*) 233 SOFT_LINK_POINTER(AVFoundation, AVMetadataKeySpaceID3, NSString*) 234 235 #define AVMetadataKeySpaceQuickTimeUserData getAVMetadataKeySpaceQuickTimeUserData() 236 #define AVMetadataKeySpaceISOUserData getAVMetadataKeySpaceISOUserData() 237 #define AVMetadataKeySpaceQuickTimeMetadata getAVMetadataKeySpaceQuickTimeMetadata() 238 #define AVMetadataKeySpaceiTunes getAVMetadataKeySpaceiTunes() 239 #define AVMetadataKeySpaceID3 getAVMetadataKeySpaceID3() 240 #endif 241 223 242 #define kCMTimeZero getkCMTimeZero() 224 243 … … 344 363 , m_loaderDelegate(adoptNS([[WebCoreAVFLoaderDelegate alloc] initWithCallback:this])) 345 364 #endif 346 , m_currentT rack(0)365 , m_currentTextTrack(0) 347 366 , m_cachedDuration(MediaPlayer::invalidTime()) 348 367 , m_cachedRate(0) … … 968 987 setDelayCallbacks(true); 969 988 989 if (m_metadataTrack) 990 m_metadataTrack->flushPartialCues(); 991 970 992 CMTime cmTime = CMTimeMakeWithSeconds(time, 600); 971 993 CMTime cmBefore = CMTimeMakeWithSeconds(negativeTolerance, 600); … … 1418 1440 bool hasVideo = false; 1419 1441 bool hasAudio = false; 1442 bool hasMetaData = false; 1420 1443 for (AVPlayerItemTrack *track in m_cachedTracks.get()) { 1421 1444 if ([track isEnabled]) { 1422 1445 AVAssetTrack *assetTrack = [track assetTrack]; 1423 if ([[assetTrack mediaType] isEqualToString:AVMediaTypeVideo]) 1446 NSString *mediaType = [assetTrack mediaType]; 1447 if ([mediaType isEqualToString:AVMediaTypeVideo]) 1424 1448 hasVideo = true; 1425 else if ([ [assetTrack mediaType]isEqualToString:AVMediaTypeAudio])1449 else if ([mediaType isEqualToString:AVMediaTypeAudio]) 1426 1450 hasAudio = true; 1427 else if ([ [assetTrack mediaType]isEqualToString:AVMediaTypeClosedCaption]) {1451 else if ([mediaType isEqualToString:AVMediaTypeClosedCaption]) { 1428 1452 #if !HAVE(AVFOUNDATION_MEDIA_SELECTION_GROUP) 1429 1453 hasCaptions = true; 1430 1454 #endif 1431 1455 haveCCTrack = true; 1456 } else if ([mediaType isEqualToString:AVMediaTypeMetadata]) { 1457 hasMetaData = true; 1432 1458 } 1433 1459 } 1434 1460 } 1461 1435 1462 setHasVideo(hasVideo); 1436 1463 setHasAudio(hasAudio); 1437 1464 #if ENABLE(DATACUE_VALUE) 1465 if (hasMetaData) 1466 processMetadataTrack(); 1467 #endif 1438 1468 1439 1469 #if ENABLE(VIDEO_TRACK) … … 2018 2048 } 2019 2049 2050 void MediaPlayerPrivateAVFoundationObjC::processMetadataTrack() 2051 { 2052 if (m_metadataTrack) 2053 return; 2054 2055 m_metadataTrack = InbandMetadataTextTrackPrivateAVF::create(InbandTextTrackPrivate::Metadata, InbandTextTrackPrivate::Data); 2056 m_metadataTrack->setInBandMetadataTrackDispatchType("com.apple.streaming"); 2057 player()->addTextTrack(m_metadataTrack); 2058 } 2059 2020 2060 void MediaPlayerPrivateAVFoundationObjC::processCue(NSArray *attributedStrings, double time) 2021 2061 { 2022 if (!m_currentT rack)2023 return; 2024 2025 m_currentT rack->processCue(reinterpret_cast<CFArrayRef>(attributedStrings), time);2062 if (!m_currentTextTrack) 2063 return; 2064 2065 m_currentTextTrack->processCue(reinterpret_cast<CFArrayRef>(attributedStrings), time); 2026 2066 } 2027 2067 … … 2030 2070 LOG(Media, "MediaPlayerPrivateAVFoundationObjC::flushCues(%p)", this); 2031 2071 2032 if (!m_currentT rack)2072 if (!m_currentTextTrack) 2033 2073 return; 2034 2074 2035 m_currentT rack->resetCueValues();2075 m_currentTextTrack->resetCueValues(); 2036 2076 } 2037 2077 #endif // HAVE(AVFOUNDATION_MEDIA_SELECTION_GROUP) 2038 2078 2039 void MediaPlayerPrivateAVFoundationObjC::setCurrentT rack(InbandTextTrackPrivateAVF *track)2040 { 2041 if (m_currentT rack == track)2042 return; 2043 2044 LOG(Media, "MediaPlayerPrivateAVFoundationObjC::setCurrentT rack(%p) - selecting track %p, language = %s", this, track, track ? track->language().string().utf8().data() : "");2079 void MediaPlayerPrivateAVFoundationObjC::setCurrentTextTrack(InbandTextTrackPrivateAVF *track) 2080 { 2081 if (m_currentTextTrack == track) 2082 return; 2083 2084 LOG(Media, "MediaPlayerPrivateAVFoundationObjC::setCurrentTextTrack(%p) - selecting track %p, language = %s", this, track, track ? track->language().string().utf8().data() : ""); 2045 2085 2046 m_currentT rack = track;2086 m_currentTextTrack = track; 2047 2087 2048 2088 if (track) { … … 2235 2275 } 2236 2276 2237 void MediaPlayerPrivateAVFoundationObjC::metadataDidArrive(RetainPtr<NSArray> metadata) 2238 { 2239 if (!metadata || [metadata isKindOfClass:[NSNull class]]) 2240 return; 2241 2242 m_currentMetaData = metadata; 2277 #if ENABLE(DATACUE_VALUE) 2278 static const AtomicString& metadataType(NSString *avMetadataKeySpace) 2279 { 2280 static NeverDestroyed<const AtomicString> quickTimeUserData("com.apple.quicktime.udta", AtomicString::ConstructFromLiteral); 2281 static NeverDestroyed<const AtomicString> isoUserData("org.mp4ra", AtomicString::ConstructFromLiteral); 2282 static NeverDestroyed<const AtomicString> quickTimeMetadata("com.apple.quicktime.mdta", AtomicString::ConstructFromLiteral); 2283 static NeverDestroyed<const AtomicString> iTunesMetadata("com.apple.itunes", AtomicString::ConstructFromLiteral); 2284 static NeverDestroyed<const AtomicString> id3Metadata("org.id3", AtomicString::ConstructFromLiteral); 2285 2286 if ([avMetadataKeySpace isEqualToString:AVMetadataKeySpaceQuickTimeUserData]) 2287 return quickTimeUserData; 2288 if ([avMetadataKeySpace isEqualToString:AVMetadataKeySpaceISOUserData]) 2289 return isoUserData; 2290 if ([avMetadataKeySpace isEqualToString:AVMetadataKeySpaceQuickTimeMetadata]) 2291 return quickTimeMetadata; 2292 if ([avMetadataKeySpace isEqualToString:AVMetadataKeySpaceiTunes]) 2293 return iTunesMetadata; 2294 if ([avMetadataKeySpace isEqualToString:AVMetadataKeySpaceID3]) 2295 return id3Metadata; 2296 2297 return emptyAtom; 2298 } 2299 #endif 2300 2301 void MediaPlayerPrivateAVFoundationObjC::metadataDidArrive(RetainPtr<NSArray> metadata, double mediaTime) 2302 { 2303 m_currentMetaData = metadata && ![metadata isKindOfClass:[NSNull class]] ? metadata : nil; 2304 2305 LOG(Media, "MediaPlayerPrivateAVFoundationObjC::metadataDidArrive(%p) - adding %i cues at time %.2f", this, m_currentMetaData ? [m_currentMetaData.get() count] : 0, mediaTime); 2306 2307 #if ENABLE(DATACUE_VALUE) 2308 if (seeking()) 2309 return; 2310 2311 if (!metadata || [metadata isKindOfClass:[NSNull class]]) { 2312 m_metadataTrack->updatePendingCueEndTimes(mediaTime); 2313 return; 2314 } 2315 2316 if (!m_metadataTrack) 2317 processMetadataTrack(); 2318 2319 // Set the duration of all incomplete cues before adding new ones. 2320 double earliesStartTime = std::numeric_limits<double>::infinity(); 2321 for (AVMetadataItemType *item in m_currentMetaData.get()) { 2322 double start = CMTimeGetSeconds(item.time); 2323 if (start < earliesStartTime) 2324 earliesStartTime = start; 2325 } 2326 m_metadataTrack->updatePendingCueEndTimes(earliesStartTime); 2327 2328 for (AVMetadataItemType *item in m_currentMetaData.get()) { 2329 double start = CMTimeGetSeconds(item.time); 2330 double end = std::numeric_limits<double>::infinity(); 2331 if (CMTIME_IS_VALID(item.duration)) 2332 end = start + CMTimeGetSeconds(item.duration); 2333 2334 AtomicString type = nullAtom; 2335 if (item.keySpace) 2336 type = metadataType(item.keySpace); 2337 2338 m_metadataTrack->addDataCue(start, end, SerializedPlatformRepresentationMac::create(item), type); 2339 } 2340 #endif 2243 2341 } 2244 2342 … … 2409 2507 else if ([keyPath isEqualToString:@"duration"]) 2410 2508 function = WTF::bind(&MediaPlayerPrivateAVFoundationObjC::durationDidChange, m_callback, CMTimeGetSeconds([newValue CMTimeValue])); 2411 else if ([keyPath isEqualToString:@"timedMetadata"] && newValue) 2412 function = WTF::bind(&MediaPlayerPrivateAVFoundationObjC::metadataDidArrive, m_callback, RetainPtr<NSArray>(newValue)); 2509 else if ([keyPath isEqualToString:@"timedMetadata"] && newValue) { 2510 double now = 0; 2511 CMTime itemTime = [(AVPlayerItemType *)object currentTime]; 2512 if (CMTIME_IS_NUMERIC(itemTime)) 2513 now = std::max(narrowPrecisionToFloat(CMTimeGetSeconds(itemTime)), 0.0f); 2514 function = WTF::bind(&MediaPlayerPrivateAVFoundationObjC::metadataDidArrive, m_callback, RetainPtr<NSArray>(newValue), now); 2515 } 2413 2516 } 2414 2517 -
trunk/Source/WebKit/mac/ChangeLog
r167609 r167632 1 2014-04-21 Eric Carlson <eric.carlson@apple.com> 2 3 [Mac] implement WebKitDataCue 4 https://bugs.webkit.org/show_bug.cgi?id=131799 5 6 Reviewed by Dean Jackson. 7 8 * Configurations/FeatureDefines.xcconfig: Define ENABLE_DATACUE_VALUE. 9 1 10 2014-04-21 Joseph Pecoraro <pecoraro@apple.com> 2 11 -
trunk/Source/WebKit/mac/Configurations/FeatureDefines.xcconfig
r167528 r167632 210 210 ENABLE_VIDEO = ENABLE_VIDEO; 211 211 ENABLE_VIDEO_TRACK = ENABLE_VIDEO_TRACK; 212 ENABLE_DATACUE_VALUE = ENABLE_DATACUE_VALUE; 212 213 ENABLE_VIEW_MODE_CSS_MEDIA = ; 213 214 ENABLE_WEBGL = ENABLE_WEBGL; … … 244 245 ENABLE_LLINT_C_LOOP = ; 245 246 246 FEATURE_DEFINES = $(ENABLE_3D_RENDERING) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_AVF_CAPTIONS) $(ENABLE_BLOB) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CANVAS_PATH) $(ENABLE_CANVAS_PROXY) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CSP_NEXT) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_EXCLUSIONS) $(ENABLE_CSS_FILTERS) $(ENABLE_CSS_GRID_LAYOUT) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_REGIONS) $(ENABLE_CSS_SHAPES) $(ENABLE_CSS_STICKY_POSITION) $(ENABLE_CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED) $(ENABLE_CSS3_CONDITIONAL_RULES) $(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) $(ENABLE_FONT_LOAD_EVENTS) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_HIDDEN_PAGE_DOM_TIMER_THROTTLING) $(ENABLE_HIGH_DPI_CANVAS) $(ENABLE_ICONDATABASE) $(ENABLE_IMAGE_CONTROLS) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDEXED_DATABASE_IN_WORKERS) $(ENABLE_INDIE_UI) $(ENABLE_INPUT_SPEECH) $(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_TEXT_AUTOSIZING) $(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_NOTIFICATIONS) $(ENABLE_PAGE_VISIBILITY_API) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_PLUGIN_PROXY_FOR_VIDEO) $(ENABLE_PROGRESS_ELEMENT) $(ENABLE_PROMISES) $(ENABLE_PROXIMITY_EVENTS) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REQUEST_ANIMATION_FRAME) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_SCRIPTED_SPEECH) $(ENABLE_SHARED_WORKERS) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_SQL_DATABASE) $(ENABLE_SUBPIXEL_LAYOUT) $(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_ VIEW_MODE_CSS_MEDIA) $(ENABLE_WEBGL) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_REPLAY) $(ENABLE_WEB_SOCKETS) $(ENABLE_WEB_TIMING) $(ENABLE_WEBVTT_REGIONS) $(ENABLE_XHR_TIMEOUT) $(ENABLE_XSLT) $(ENABLE_FTL_JIT) $(ENABLE_LLINT_C_LOOP) $(FEATURE_DEFINES_$(PLATFORM_NAME));247 FEATURE_DEFINES = $(ENABLE_3D_RENDERING) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_AVF_CAPTIONS) $(ENABLE_BLOB) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CANVAS_PATH) $(ENABLE_CANVAS_PROXY) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CSP_NEXT) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_EXCLUSIONS) $(ENABLE_CSS_FILTERS) $(ENABLE_CSS_GRID_LAYOUT) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_REGIONS) $(ENABLE_CSS_SHAPES) $(ENABLE_CSS_STICKY_POSITION) $(ENABLE_CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED) $(ENABLE_CSS3_CONDITIONAL_RULES) $(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) $(ENABLE_FONT_LOAD_EVENTS) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_HIDDEN_PAGE_DOM_TIMER_THROTTLING) $(ENABLE_HIGH_DPI_CANVAS) $(ENABLE_ICONDATABASE) $(ENABLE_IMAGE_CONTROLS) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDEXED_DATABASE_IN_WORKERS) $(ENABLE_INDIE_UI) $(ENABLE_INPUT_SPEECH) $(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_TEXT_AUTOSIZING) $(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_NOTIFICATIONS) $(ENABLE_PAGE_VISIBILITY_API) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_PLUGIN_PROXY_FOR_VIDEO) $(ENABLE_PROGRESS_ELEMENT) $(ENABLE_PROMISES) $(ENABLE_PROXIMITY_EVENTS) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REQUEST_ANIMATION_FRAME) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_SCRIPTED_SPEECH) $(ENABLE_SHARED_WORKERS) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_SQL_DATABASE) $(ENABLE_SUBPIXEL_LAYOUT) $(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_WEB_TIMING) $(ENABLE_WEBVTT_REGIONS) $(ENABLE_XHR_TIMEOUT) $(ENABLE_XSLT) $(ENABLE_FTL_JIT) $(ENABLE_LLINT_C_LOOP) $(FEATURE_DEFINES_$(PLATFORM_NAME)); -
trunk/Source/WebKit2/ChangeLog
r167630 r167632 1 2014-04-21 Eric Carlson <eric.carlson@apple.com> 2 3 [Mac] implement WebKitDataCue 4 https://bugs.webkit.org/show_bug.cgi?id=131799 5 6 Reviewed by Dean Jackson. 7 8 * Configurations/FeatureDefines.xcconfig: Define ENABLE_DATACUE_VALUE. 9 1 10 2014-04-21 Beth Dakin <bdakin@apple.com> 2 11 -
trunk/Source/WebKit2/Configurations/FeatureDefines.xcconfig
r167528 r167632 210 210 ENABLE_VIDEO = ENABLE_VIDEO; 211 211 ENABLE_VIDEO_TRACK = ENABLE_VIDEO_TRACK; 212 ENABLE_DATACUE_VALUE = ENABLE_DATACUE_VALUE; 212 213 ENABLE_VIEW_MODE_CSS_MEDIA = ; 213 214 ENABLE_WEBGL = ENABLE_WEBGL; … … 244 245 ENABLE_LLINT_C_LOOP = ; 245 246 246 FEATURE_DEFINES = $(ENABLE_3D_RENDERING) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_AVF_CAPTIONS) $(ENABLE_BLOB) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CANVAS_PATH) $(ENABLE_CANVAS_PROXY) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CSP_NEXT) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_EXCLUSIONS) $(ENABLE_CSS_FILTERS) $(ENABLE_CSS_GRID_LAYOUT) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_REGIONS) $(ENABLE_CSS_SHAPES) $(ENABLE_CSS_STICKY_POSITION) $(ENABLE_CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED) $(ENABLE_CSS3_CONDITIONAL_RULES) $(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) $(ENABLE_FONT_LOAD_EVENTS) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_HIDDEN_PAGE_DOM_TIMER_THROTTLING) $(ENABLE_HIGH_DPI_CANVAS) $(ENABLE_ICONDATABASE) $(ENABLE_IMAGE_CONTROLS) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDEXED_DATABASE_IN_WORKERS) $(ENABLE_INDIE_UI) $(ENABLE_INPUT_SPEECH) $(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_TEXT_AUTOSIZING) $(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_NOTIFICATIONS) $(ENABLE_PAGE_VISIBILITY_API) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_PLUGIN_PROXY_FOR_VIDEO) $(ENABLE_PROGRESS_ELEMENT) $(ENABLE_PROMISES) $(ENABLE_PROXIMITY_EVENTS) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REQUEST_ANIMATION_FRAME) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_SCRIPTED_SPEECH) $(ENABLE_SHARED_WORKERS) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_SQL_DATABASE) $(ENABLE_SUBPIXEL_LAYOUT) $(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_ VIEW_MODE_CSS_MEDIA) $(ENABLE_WEBGL) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_REPLAY) $(ENABLE_WEB_SOCKETS) $(ENABLE_WEB_TIMING) $(ENABLE_WEBVTT_REGIONS) $(ENABLE_XHR_TIMEOUT) $(ENABLE_XSLT) $(ENABLE_FTL_JIT) $(ENABLE_LLINT_C_LOOP) $(FEATURE_DEFINES_$(PLATFORM_NAME));247 FEATURE_DEFINES = $(ENABLE_3D_RENDERING) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_AVF_CAPTIONS) $(ENABLE_BLOB) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CANVAS_PATH) $(ENABLE_CANVAS_PROXY) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CSP_NEXT) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_EXCLUSIONS) $(ENABLE_CSS_FILTERS) $(ENABLE_CSS_GRID_LAYOUT) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_REGIONS) $(ENABLE_CSS_SHAPES) $(ENABLE_CSS_STICKY_POSITION) $(ENABLE_CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED) $(ENABLE_CSS3_CONDITIONAL_RULES) $(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) $(ENABLE_FONT_LOAD_EVENTS) $(ENABLE_FULLSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_HIDDEN_PAGE_DOM_TIMER_THROTTLING) $(ENABLE_HIGH_DPI_CANVAS) $(ENABLE_ICONDATABASE) $(ENABLE_IMAGE_CONTROLS) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDEXED_DATABASE_IN_WORKERS) $(ENABLE_INDIE_UI) $(ENABLE_INPUT_SPEECH) $(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_TEXT_AUTOSIZING) $(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_NOTIFICATIONS) $(ENABLE_PAGE_VISIBILITY_API) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_PLUGIN_PROXY_FOR_VIDEO) $(ENABLE_PROGRESS_ELEMENT) $(ENABLE_PROMISES) $(ENABLE_PROXIMITY_EVENTS) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REQUEST_ANIMATION_FRAME) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_SCRIPTED_SPEECH) $(ENABLE_SHARED_WORKERS) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_SQL_DATABASE) $(ENABLE_SUBPIXEL_LAYOUT) $(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_WEB_TIMING) $(ENABLE_WEBVTT_REGIONS) $(ENABLE_XHR_TIMEOUT) $(ENABLE_XSLT) $(ENABLE_FTL_JIT) $(ENABLE_LLINT_C_LOOP) $(FEATURE_DEFINES_$(PLATFORM_NAME));
Note:
See TracChangeset
for help on using the changeset viewer.