Changeset 201810 in webkit
- Timestamp:
- Jun 8, 2016 10:32:48 AM (8 years ago)
- Location:
- trunk
- Files:
-
- 5 added
- 28 edited
- 10 copied
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r201808 r201810 1 2016-06-08 Rawinder Singh <rawinder.singh-webkit@cisra.canon.com.au> 2 3 [web-animations] Add Animatable, AnimationEffect, KeyframeEffect and Animation interface 4 https://bugs.webkit.org/show_bug.cgi?id=156096 5 6 Reviewed by Dean Jackson. 7 8 Adds: 9 - Animatable interface and implementation of getAnimations in Element 10 - Interface and implementation for Document getAnimations method. 11 - AnimationEffect interface and class stub. 12 - KeyframeEffect interface and constructor implementation. 13 - 'Animation' interface, constructor and query methods for effect and timeline. 14 - Remove runtime condition on Web animation interfaces (compile time flag is specified). 15 16 * platform/gtk/js/dom/global-constructors-attributes-expected.txt: 17 * platform/mac-yosemite/js/dom/global-constructors-attributes-expected.txt: 18 * webanimations/Document-expected.txt: Added. 19 * webanimations/Document.html: Added. 20 * webanimations/script-tests/Document.js: Added. 21 1 22 2016-06-08 Chris Dumez <cdumez@apple.com> 2 23 -
trunk/LayoutTests/platform/gtk/js/dom/global-constructors-attributes-expected.txt
r199159 r201810 9 9 PASS Object.getOwnPropertyDescriptor(global, 'AnalyserNode').enumerable is false 10 10 PASS Object.getOwnPropertyDescriptor(global, 'AnalyserNode').configurable is true 11 PASS Object.getOwnPropertyDescriptor(global, 'Animation').value is Animation 12 PASS Object.getOwnPropertyDescriptor(global, 'Animation').hasOwnProperty('get') is false 13 PASS Object.getOwnPropertyDescriptor(global, 'Animation').hasOwnProperty('set') is false 14 PASS Object.getOwnPropertyDescriptor(global, 'Animation').enumerable is false 15 PASS Object.getOwnPropertyDescriptor(global, 'Animation').configurable is true 16 PASS Object.getOwnPropertyDescriptor(global, 'AnimationEffectReadOnly').value is AnimationEffectReadOnly 17 PASS Object.getOwnPropertyDescriptor(global, 'AnimationEffectReadOnly').hasOwnProperty('get') is false 18 PASS Object.getOwnPropertyDescriptor(global, 'AnimationEffectReadOnly').hasOwnProperty('set') is false 19 PASS Object.getOwnPropertyDescriptor(global, 'AnimationEffectReadOnly').enumerable is false 20 PASS Object.getOwnPropertyDescriptor(global, 'AnimationEffectReadOnly').configurable is true 11 21 PASS Object.getOwnPropertyDescriptor(global, 'AnimationEvent').value is AnimationEvent 12 22 PASS Object.getOwnPropertyDescriptor(global, 'AnimationEvent').hasOwnProperty('get') is false … … 14 24 PASS Object.getOwnPropertyDescriptor(global, 'AnimationEvent').enumerable is false 15 25 PASS Object.getOwnPropertyDescriptor(global, 'AnimationEvent').configurable is true 26 PASS Object.getOwnPropertyDescriptor(global, 'AnimationTimeline').value is AnimationTimeline 27 PASS Object.getOwnPropertyDescriptor(global, 'AnimationTimeline').hasOwnProperty('get') is false 28 PASS Object.getOwnPropertyDescriptor(global, 'AnimationTimeline').hasOwnProperty('set') is false 29 PASS Object.getOwnPropertyDescriptor(global, 'AnimationTimeline').enumerable is false 30 PASS Object.getOwnPropertyDescriptor(global, 'AnimationTimeline').configurable is true 16 31 PASS Object.getOwnPropertyDescriptor(global, 'ApplicationCache').value is ApplicationCache 17 32 PASS Object.getOwnPropertyDescriptor(global, 'ApplicationCache').hasOwnProperty('get') is false … … 19 34 PASS Object.getOwnPropertyDescriptor(global, 'ApplicationCache').enumerable is false 20 35 PASS Object.getOwnPropertyDescriptor(global, 'ApplicationCache').configurable is true 36 PASS Object.getOwnPropertyDescriptor(global, 'Array').value is Array 37 PASS Object.getOwnPropertyDescriptor(global, 'Array').hasOwnProperty('get') is false 38 PASS Object.getOwnPropertyDescriptor(global, 'Array').hasOwnProperty('set') is false 39 PASS Object.getOwnPropertyDescriptor(global, 'Array').enumerable is false 40 PASS Object.getOwnPropertyDescriptor(global, 'Array').configurable is true 41 PASS Object.getOwnPropertyDescriptor(global, 'ArrayBuffer').value is ArrayBuffer 42 PASS Object.getOwnPropertyDescriptor(global, 'ArrayBuffer').hasOwnProperty('get') is false 43 PASS Object.getOwnPropertyDescriptor(global, 'ArrayBuffer').hasOwnProperty('set') is false 44 PASS Object.getOwnPropertyDescriptor(global, 'ArrayBuffer').enumerable is false 45 PASS Object.getOwnPropertyDescriptor(global, 'ArrayBuffer').configurable is true 21 46 PASS Object.getOwnPropertyDescriptor(global, 'Attr').value is Attr 22 47 PASS Object.getOwnPropertyDescriptor(global, 'Attr').hasOwnProperty('get') is false … … 64 89 PASS Object.getOwnPropertyDescriptor(global, 'AudioProcessingEvent').enumerable is false 65 90 PASS Object.getOwnPropertyDescriptor(global, 'AudioProcessingEvent').configurable is true 66 PASS Object.getOwnPropertyDescriptor(global, 'AudioStreamTrack').value is AudioStreamTrack 67 PASS Object.getOwnPropertyDescriptor(global, 'AudioStreamTrack').hasOwnProperty('get') is false 68 PASS Object.getOwnPropertyDescriptor(global, 'AudioStreamTrack').hasOwnProperty('set') is false 69 PASS Object.getOwnPropertyDescriptor(global, 'AudioStreamTrack').enumerable is false 70 PASS Object.getOwnPropertyDescriptor(global, 'AudioStreamTrack').configurable is true 91 PASS Object.getOwnPropertyDescriptor(global, 'AudioTrack').value is AudioTrack 92 PASS Object.getOwnPropertyDescriptor(global, 'AudioTrack').hasOwnProperty('get') is false 93 PASS Object.getOwnPropertyDescriptor(global, 'AudioTrack').hasOwnProperty('set') is false 94 PASS Object.getOwnPropertyDescriptor(global, 'AudioTrack').enumerable is false 95 PASS Object.getOwnPropertyDescriptor(global, 'AudioTrack').configurable is true 96 PASS Object.getOwnPropertyDescriptor(global, 'AudioTrackList').value is AudioTrackList 97 PASS Object.getOwnPropertyDescriptor(global, 'AudioTrackList').hasOwnProperty('get') is false 98 PASS Object.getOwnPropertyDescriptor(global, 'AudioTrackList').hasOwnProperty('set') is false 99 PASS Object.getOwnPropertyDescriptor(global, 'AudioTrackList').enumerable is false 100 PASS Object.getOwnPropertyDescriptor(global, 'AudioTrackList').configurable is true 71 101 PASS Object.getOwnPropertyDescriptor(global, 'BarProp').value is BarProp 72 102 PASS Object.getOwnPropertyDescriptor(global, 'BarProp').hasOwnProperty('get') is false … … 94 124 PASS Object.getOwnPropertyDescriptor(global, 'Blob').enumerable is false 95 125 PASS Object.getOwnPropertyDescriptor(global, 'Blob').configurable is true 126 PASS Object.getOwnPropertyDescriptor(global, 'Boolean').value is Boolean 127 PASS Object.getOwnPropertyDescriptor(global, 'Boolean').hasOwnProperty('get') is false 128 PASS Object.getOwnPropertyDescriptor(global, 'Boolean').hasOwnProperty('set') is false 129 PASS Object.getOwnPropertyDescriptor(global, 'Boolean').enumerable is false 130 PASS Object.getOwnPropertyDescriptor(global, 'Boolean').configurable is true 96 131 PASS Object.getOwnPropertyDescriptor(global, 'ByteLengthQueuingStrategy').value is ByteLengthQueuingStrategy 97 132 PASS Object.getOwnPropertyDescriptor(global, 'ByteLengthQueuingStrategy').hasOwnProperty('get') is false … … 299 334 PASS Object.getOwnPropertyDescriptor(global, 'DOMTokenList').enumerable is false 300 335 PASS Object.getOwnPropertyDescriptor(global, 'DOMTokenList').configurable is true 301 PASS Object.getOwnPropertyDescriptor(global, 'DataCue').value is DataCue302 PASS Object.getOwnPropertyDescriptor(global, 'DataCue').hasOwnProperty('get') is false303 PASS Object.getOwnPropertyDescriptor(global, 'DataCue').hasOwnProperty('set') is false304 PASS Object.getOwnPropertyDescriptor(global, 'DataCue').enumerable is false305 PASS Object.getOwnPropertyDescriptor(global, 'DataCue').configurable is true306 336 PASS Object.getOwnPropertyDescriptor(global, 'DataTransfer').value is DataTransfer 307 337 PASS Object.getOwnPropertyDescriptor(global, 'DataTransfer').hasOwnProperty('get') is false … … 309 339 PASS Object.getOwnPropertyDescriptor(global, 'DataTransfer').enumerable is false 310 340 PASS Object.getOwnPropertyDescriptor(global, 'DataTransfer').configurable is true 341 PASS Object.getOwnPropertyDescriptor(global, 'DataView').value is DataView 342 PASS Object.getOwnPropertyDescriptor(global, 'DataView').hasOwnProperty('get') is false 343 PASS Object.getOwnPropertyDescriptor(global, 'DataView').hasOwnProperty('set') is false 344 PASS Object.getOwnPropertyDescriptor(global, 'DataView').enumerable is false 345 PASS Object.getOwnPropertyDescriptor(global, 'DataView').configurable is true 346 PASS Object.getOwnPropertyDescriptor(global, 'Database').value is Database 347 PASS Object.getOwnPropertyDescriptor(global, 'Database').hasOwnProperty('get') is false 348 PASS Object.getOwnPropertyDescriptor(global, 'Database').hasOwnProperty('set') is false 349 PASS Object.getOwnPropertyDescriptor(global, 'Database').enumerable is false 350 PASS Object.getOwnPropertyDescriptor(global, 'Database').configurable is true 351 PASS Object.getOwnPropertyDescriptor(global, 'Date').value is Date 352 PASS Object.getOwnPropertyDescriptor(global, 'Date').hasOwnProperty('get') is false 353 PASS Object.getOwnPropertyDescriptor(global, 'Date').hasOwnProperty('set') is false 354 PASS Object.getOwnPropertyDescriptor(global, 'Date').enumerable is false 355 PASS Object.getOwnPropertyDescriptor(global, 'Date').configurable is true 311 356 PASS Object.getOwnPropertyDescriptor(global, 'DelayNode').value is DelayNode 312 357 PASS Object.getOwnPropertyDescriptor(global, 'DelayNode').hasOwnProperty('get') is false … … 324 369 PASS Object.getOwnPropertyDescriptor(global, 'DocumentFragment').enumerable is false 325 370 PASS Object.getOwnPropertyDescriptor(global, 'DocumentFragment').configurable is true 371 PASS Object.getOwnPropertyDescriptor(global, 'DocumentTimeline').value is DocumentTimeline 372 PASS Object.getOwnPropertyDescriptor(global, 'DocumentTimeline').hasOwnProperty('get') is false 373 PASS Object.getOwnPropertyDescriptor(global, 'DocumentTimeline').hasOwnProperty('set') is false 374 PASS Object.getOwnPropertyDescriptor(global, 'DocumentTimeline').enumerable is false 375 PASS Object.getOwnPropertyDescriptor(global, 'DocumentTimeline').configurable is true 326 376 PASS Object.getOwnPropertyDescriptor(global, 'DocumentType').value is DocumentType 327 377 PASS Object.getOwnPropertyDescriptor(global, 'DocumentType').hasOwnProperty('get') is false … … 339 389 PASS Object.getOwnPropertyDescriptor(global, 'Element').enumerable is false 340 390 PASS Object.getOwnPropertyDescriptor(global, 'Element').configurable is true 391 PASS Object.getOwnPropertyDescriptor(global, 'Error').value is Error 392 PASS Object.getOwnPropertyDescriptor(global, 'Error').hasOwnProperty('get') is false 393 PASS Object.getOwnPropertyDescriptor(global, 'Error').hasOwnProperty('set') is false 394 PASS Object.getOwnPropertyDescriptor(global, 'Error').enumerable is false 395 PASS Object.getOwnPropertyDescriptor(global, 'Error').configurable is true 341 396 PASS Object.getOwnPropertyDescriptor(global, 'ErrorEvent').value is ErrorEvent 342 397 PASS Object.getOwnPropertyDescriptor(global, 'ErrorEvent').hasOwnProperty('get') is false … … 344 399 PASS Object.getOwnPropertyDescriptor(global, 'ErrorEvent').enumerable is false 345 400 PASS Object.getOwnPropertyDescriptor(global, 'ErrorEvent').configurable is true 401 PASS Object.getOwnPropertyDescriptor(global, 'EvalError').value is EvalError 402 PASS Object.getOwnPropertyDescriptor(global, 'EvalError').hasOwnProperty('get') is false 403 PASS Object.getOwnPropertyDescriptor(global, 'EvalError').hasOwnProperty('set') is false 404 PASS Object.getOwnPropertyDescriptor(global, 'EvalError').enumerable is false 405 PASS Object.getOwnPropertyDescriptor(global, 'EvalError').configurable is true 346 406 PASS Object.getOwnPropertyDescriptor(global, 'Event').value is Event 347 407 PASS Object.getOwnPropertyDescriptor(global, 'Event').hasOwnProperty('get') is false … … 379 439 PASS Object.getOwnPropertyDescriptor(global, 'FileReader').enumerable is false 380 440 PASS Object.getOwnPropertyDescriptor(global, 'FileReader').configurable is true 441 PASS Object.getOwnPropertyDescriptor(global, 'Float32Array').value is Float32Array 442 PASS Object.getOwnPropertyDescriptor(global, 'Float32Array').hasOwnProperty('get') is false 443 PASS Object.getOwnPropertyDescriptor(global, 'Float32Array').hasOwnProperty('set') is false 444 PASS Object.getOwnPropertyDescriptor(global, 'Float32Array').enumerable is false 445 PASS Object.getOwnPropertyDescriptor(global, 'Float32Array').configurable is true 446 PASS Object.getOwnPropertyDescriptor(global, 'Float64Array').value is Float64Array 447 PASS Object.getOwnPropertyDescriptor(global, 'Float64Array').hasOwnProperty('get') is false 448 PASS Object.getOwnPropertyDescriptor(global, 'Float64Array').hasOwnProperty('set') is false 449 PASS Object.getOwnPropertyDescriptor(global, 'Float64Array').enumerable is false 450 PASS Object.getOwnPropertyDescriptor(global, 'Float64Array').configurable is true 381 451 PASS Object.getOwnPropertyDescriptor(global, 'FocusEvent').value is FocusEvent 382 452 PASS Object.getOwnPropertyDescriptor(global, 'FocusEvent').hasOwnProperty('get') is false … … 399 469 PASS Object.getOwnPropertyDescriptor(global, 'FormData').enumerable is false 400 470 PASS Object.getOwnPropertyDescriptor(global, 'FormData').configurable is true 471 PASS Object.getOwnPropertyDescriptor(global, 'Function').value is Function 472 PASS Object.getOwnPropertyDescriptor(global, 'Function').hasOwnProperty('get') is false 473 PASS Object.getOwnPropertyDescriptor(global, 'Function').hasOwnProperty('set') is false 474 PASS Object.getOwnPropertyDescriptor(global, 'Function').enumerable is false 475 PASS Object.getOwnPropertyDescriptor(global, 'Function').configurable is true 401 476 PASS Object.getOwnPropertyDescriptor(global, 'GainNode').value is GainNode 402 477 PASS Object.getOwnPropertyDescriptor(global, 'GainNode').hasOwnProperty('get') is false … … 664 739 PASS Object.getOwnPropertyDescriptor(global, 'HTMLParamElement').enumerable is false 665 740 PASS Object.getOwnPropertyDescriptor(global, 'HTMLParamElement').configurable is true 741 PASS Object.getOwnPropertyDescriptor(global, 'HTMLPictureElement').value is HTMLPictureElement 742 PASS Object.getOwnPropertyDescriptor(global, 'HTMLPictureElement').hasOwnProperty('get') is false 743 PASS Object.getOwnPropertyDescriptor(global, 'HTMLPictureElement').hasOwnProperty('set') is false 744 PASS Object.getOwnPropertyDescriptor(global, 'HTMLPictureElement').enumerable is false 745 PASS Object.getOwnPropertyDescriptor(global, 'HTMLPictureElement').configurable is true 666 746 PASS Object.getOwnPropertyDescriptor(global, 'HTMLPreElement').value is HTMLPreElement 667 747 PASS Object.getOwnPropertyDescriptor(global, 'HTMLPreElement').hasOwnProperty('get') is false … … 809 889 PASS Object.getOwnPropertyDescriptor(global, 'ImageData').enumerable is false 810 890 PASS Object.getOwnPropertyDescriptor(global, 'ImageData').configurable is true 891 PASS Object.getOwnPropertyDescriptor(global, 'Int16Array').value is Int16Array 892 PASS Object.getOwnPropertyDescriptor(global, 'Int16Array').hasOwnProperty('get') is false 893 PASS Object.getOwnPropertyDescriptor(global, 'Int16Array').hasOwnProperty('set') is false 894 PASS Object.getOwnPropertyDescriptor(global, 'Int16Array').enumerable is false 895 PASS Object.getOwnPropertyDescriptor(global, 'Int16Array').configurable is true 896 PASS Object.getOwnPropertyDescriptor(global, 'Int32Array').value is Int32Array 897 PASS Object.getOwnPropertyDescriptor(global, 'Int32Array').hasOwnProperty('get') is false 898 PASS Object.getOwnPropertyDescriptor(global, 'Int32Array').hasOwnProperty('set') is false 899 PASS Object.getOwnPropertyDescriptor(global, 'Int32Array').enumerable is false 900 PASS Object.getOwnPropertyDescriptor(global, 'Int32Array').configurable is true 901 PASS Object.getOwnPropertyDescriptor(global, 'Int8Array').value is Int8Array 902 PASS Object.getOwnPropertyDescriptor(global, 'Int8Array').hasOwnProperty('get') is false 903 PASS Object.getOwnPropertyDescriptor(global, 'Int8Array').hasOwnProperty('set') is false 904 PASS Object.getOwnPropertyDescriptor(global, 'Int8Array').enumerable is false 905 PASS Object.getOwnPropertyDescriptor(global, 'Int8Array').configurable is true 811 906 PASS Object.getOwnPropertyDescriptor(global, 'KeyboardEvent').value is KeyboardEvent 812 907 PASS Object.getOwnPropertyDescriptor(global, 'KeyboardEvent').hasOwnProperty('get') is false … … 814 909 PASS Object.getOwnPropertyDescriptor(global, 'KeyboardEvent').enumerable is false 815 910 PASS Object.getOwnPropertyDescriptor(global, 'KeyboardEvent').configurable is true 911 PASS Object.getOwnPropertyDescriptor(global, 'KeyframeEffect').value is KeyframeEffect 912 PASS Object.getOwnPropertyDescriptor(global, 'KeyframeEffect').hasOwnProperty('get') is false 913 PASS Object.getOwnPropertyDescriptor(global, 'KeyframeEffect').hasOwnProperty('set') is false 914 PASS Object.getOwnPropertyDescriptor(global, 'KeyframeEffect').enumerable is false 915 PASS Object.getOwnPropertyDescriptor(global, 'KeyframeEffect').configurable is true 816 916 PASS Object.getOwnPropertyDescriptor(global, 'Location').value is Location 817 917 PASS Object.getOwnPropertyDescriptor(global, 'Location').hasOwnProperty('get') is false … … 819 919 PASS Object.getOwnPropertyDescriptor(global, 'Location').enumerable is false 820 920 PASS Object.getOwnPropertyDescriptor(global, 'Location').configurable is true 921 PASS Object.getOwnPropertyDescriptor(global, 'Map').value is Map 922 PASS Object.getOwnPropertyDescriptor(global, 'Map').hasOwnProperty('get') is false 923 PASS Object.getOwnPropertyDescriptor(global, 'Map').hasOwnProperty('set') is false 924 PASS Object.getOwnPropertyDescriptor(global, 'Map').enumerable is false 925 PASS Object.getOwnPropertyDescriptor(global, 'Map').configurable is true 821 926 PASS Object.getOwnPropertyDescriptor(global, 'MediaController').value is MediaController 822 927 PASS Object.getOwnPropertyDescriptor(global, 'MediaController').hasOwnProperty('get') is false … … 844 949 PASS Object.getOwnPropertyDescriptor(global, 'MediaSource').enumerable is false 845 950 PASS Object.getOwnPropertyDescriptor(global, 'MediaSource').configurable is true 951 PASS Object.getOwnPropertyDescriptor(global, 'MediaStream').value is MediaStream 952 PASS Object.getOwnPropertyDescriptor(global, 'MediaStream').hasOwnProperty('get') is false 953 PASS Object.getOwnPropertyDescriptor(global, 'MediaStream').hasOwnProperty('set') is false 954 PASS Object.getOwnPropertyDescriptor(global, 'MediaStream').enumerable is false 955 PASS Object.getOwnPropertyDescriptor(global, 'MediaStream').configurable is true 846 956 PASS Object.getOwnPropertyDescriptor(global, 'MediaStreamAudioDestinationNode').value is MediaStreamAudioDestinationNode 847 957 PASS Object.getOwnPropertyDescriptor(global, 'MediaStreamAudioDestinationNode').hasOwnProperty('get') is false … … 944 1054 PASS Object.getOwnPropertyDescriptor(global, 'NodeList').enumerable is false 945 1055 PASS Object.getOwnPropertyDescriptor(global, 'NodeList').configurable is true 1056 PASS Object.getOwnPropertyDescriptor(global, 'Notification').value is Notification 1057 PASS Object.getOwnPropertyDescriptor(global, 'Notification').hasOwnProperty('get') is false 1058 PASS Object.getOwnPropertyDescriptor(global, 'Notification').hasOwnProperty('set') is false 1059 PASS Object.getOwnPropertyDescriptor(global, 'Notification').enumerable is false 1060 PASS Object.getOwnPropertyDescriptor(global, 'Notification').configurable is true 1061 PASS Object.getOwnPropertyDescriptor(global, 'Number').value is Number 1062 PASS Object.getOwnPropertyDescriptor(global, 'Number').hasOwnProperty('get') is false 1063 PASS Object.getOwnPropertyDescriptor(global, 'Number').hasOwnProperty('set') is false 1064 PASS Object.getOwnPropertyDescriptor(global, 'Number').enumerable is false 1065 PASS Object.getOwnPropertyDescriptor(global, 'Number').configurable is true 1066 PASS Object.getOwnPropertyDescriptor(global, 'Object').value is Object 1067 PASS Object.getOwnPropertyDescriptor(global, 'Object').hasOwnProperty('get') is false 1068 PASS Object.getOwnPropertyDescriptor(global, 'Object').hasOwnProperty('set') is false 1069 PASS Object.getOwnPropertyDescriptor(global, 'Object').enumerable is false 1070 PASS Object.getOwnPropertyDescriptor(global, 'Object').configurable is true 946 1071 PASS Object.getOwnPropertyDescriptor(global, 'OfflineAudioCompletionEvent').value is OfflineAudioCompletionEvent 947 1072 PASS Object.getOwnPropertyDescriptor(global, 'OfflineAudioCompletionEvent').hasOwnProperty('get') is false … … 979 1104 PASS Object.getOwnPropertyDescriptor(global, 'Performance').enumerable is false 980 1105 PASS Object.getOwnPropertyDescriptor(global, 'Performance').configurable is true 981 PASS Object.getOwnPropertyDescriptor(global, 'PerformanceEntry').value is PerformanceEntry982 PASS Object.getOwnPropertyDescriptor(global, 'PerformanceEntry').hasOwnProperty('get') is false983 PASS Object.getOwnPropertyDescriptor(global, 'PerformanceEntry').hasOwnProperty('set') is false984 PASS Object.getOwnPropertyDescriptor(global, 'PerformanceEntry').enumerable is false985 PASS Object.getOwnPropertyDescriptor(global, 'PerformanceEntry').configurable is true986 1106 PASS Object.getOwnPropertyDescriptor(global, 'PerformanceMark').value is PerformanceMark 987 1107 PASS Object.getOwnPropertyDescriptor(global, 'PerformanceMark').hasOwnProperty('get') is false … … 999 1119 PASS Object.getOwnPropertyDescriptor(global, 'PerformanceNavigation').enumerable is false 1000 1120 PASS Object.getOwnPropertyDescriptor(global, 'PerformanceNavigation').configurable is true 1001 PASS Object.getOwnPropertyDescriptor(global, 'PerformanceResourceTiming').value is PerformanceResourceTiming1002 PASS Object.getOwnPropertyDescriptor(global, 'PerformanceResourceTiming').hasOwnProperty('get') is false1003 PASS Object.getOwnPropertyDescriptor(global, 'PerformanceResourceTiming').hasOwnProperty('set') is false1004 PASS Object.getOwnPropertyDescriptor(global, 'PerformanceResourceTiming').enumerable is false1005 PASS Object.getOwnPropertyDescriptor(global, 'PerformanceResourceTiming').configurable is true1006 1121 PASS Object.getOwnPropertyDescriptor(global, 'PerformanceTiming').value is PerformanceTiming 1007 1122 PASS Object.getOwnPropertyDescriptor(global, 'PerformanceTiming').hasOwnProperty('get') is false … … 1039 1154 PASS Object.getOwnPropertyDescriptor(global, 'ProgressEvent').enumerable is false 1040 1155 PASS Object.getOwnPropertyDescriptor(global, 'ProgressEvent').configurable is true 1156 PASS Object.getOwnPropertyDescriptor(global, 'Promise').value is Promise 1157 PASS Object.getOwnPropertyDescriptor(global, 'Promise').hasOwnProperty('get') is false 1158 PASS Object.getOwnPropertyDescriptor(global, 'Promise').hasOwnProperty('set') is false 1159 PASS Object.getOwnPropertyDescriptor(global, 'Promise').enumerable is false 1160 PASS Object.getOwnPropertyDescriptor(global, 'Promise').configurable is true 1041 1161 PASS Object.getOwnPropertyDescriptor(global, 'RGBColor').value is RGBColor 1042 1162 PASS Object.getOwnPropertyDescriptor(global, 'RGBColor').hasOwnProperty('get') is false … … 1079 1199 PASS Object.getOwnPropertyDescriptor(global, 'Range').enumerable is false 1080 1200 PASS Object.getOwnPropertyDescriptor(global, 'Range').configurable is true 1201 PASS Object.getOwnPropertyDescriptor(global, 'RangeError').value is RangeError 1202 PASS Object.getOwnPropertyDescriptor(global, 'RangeError').hasOwnProperty('get') is false 1203 PASS Object.getOwnPropertyDescriptor(global, 'RangeError').hasOwnProperty('set') is false 1204 PASS Object.getOwnPropertyDescriptor(global, 'RangeError').enumerable is false 1205 PASS Object.getOwnPropertyDescriptor(global, 'RangeError').configurable is true 1081 1206 PASS Object.getOwnPropertyDescriptor(global, 'ReadableStream').value is ReadableStream 1082 1207 PASS Object.getOwnPropertyDescriptor(global, 'ReadableStream').hasOwnProperty('get') is false … … 1089 1214 PASS Object.getOwnPropertyDescriptor(global, 'Rect').enumerable is false 1090 1215 PASS Object.getOwnPropertyDescriptor(global, 'Rect').configurable is true 1216 PASS Object.getOwnPropertyDescriptor(global, 'ReferenceError').value is ReferenceError 1217 PASS Object.getOwnPropertyDescriptor(global, 'ReferenceError').hasOwnProperty('get') is false 1218 PASS Object.getOwnPropertyDescriptor(global, 'ReferenceError').hasOwnProperty('set') is false 1219 PASS Object.getOwnPropertyDescriptor(global, 'ReferenceError').enumerable is false 1220 PASS Object.getOwnPropertyDescriptor(global, 'ReferenceError').configurable is true 1221 PASS Object.getOwnPropertyDescriptor(global, 'RegExp').value is RegExp 1222 PASS Object.getOwnPropertyDescriptor(global, 'RegExp').hasOwnProperty('get') is false 1223 PASS Object.getOwnPropertyDescriptor(global, 'RegExp').hasOwnProperty('set') is false 1224 PASS Object.getOwnPropertyDescriptor(global, 'RegExp').enumerable is false 1225 PASS Object.getOwnPropertyDescriptor(global, 'RegExp').configurable is true 1091 1226 PASS Object.getOwnPropertyDescriptor(global, 'Request').value is Request 1092 1227 PASS Object.getOwnPropertyDescriptor(global, 'Request').hasOwnProperty('get') is false … … 1099 1234 PASS Object.getOwnPropertyDescriptor(global, 'Response').enumerable is false 1100 1235 PASS Object.getOwnPropertyDescriptor(global, 'Response').configurable is true 1236 PASS Object.getOwnPropertyDescriptor(global, 'SQLError').value is SQLError 1237 PASS Object.getOwnPropertyDescriptor(global, 'SQLError').hasOwnProperty('get') is false 1238 PASS Object.getOwnPropertyDescriptor(global, 'SQLError').hasOwnProperty('set') is false 1239 PASS Object.getOwnPropertyDescriptor(global, 'SQLError').enumerable is false 1240 PASS Object.getOwnPropertyDescriptor(global, 'SQLError').configurable is true 1101 1241 PASS Object.getOwnPropertyDescriptor(global, 'SQLException').value is SQLException 1102 1242 PASS Object.getOwnPropertyDescriptor(global, 'SQLException').hasOwnProperty('get') is false … … 1104 1244 PASS Object.getOwnPropertyDescriptor(global, 'SQLException').enumerable is false 1105 1245 PASS Object.getOwnPropertyDescriptor(global, 'SQLException').configurable is true 1246 PASS Object.getOwnPropertyDescriptor(global, 'SQLResultSet').value is SQLResultSet 1247 PASS Object.getOwnPropertyDescriptor(global, 'SQLResultSet').hasOwnProperty('get') is false 1248 PASS Object.getOwnPropertyDescriptor(global, 'SQLResultSet').hasOwnProperty('set') is false 1249 PASS Object.getOwnPropertyDescriptor(global, 'SQLResultSet').enumerable is false 1250 PASS Object.getOwnPropertyDescriptor(global, 'SQLResultSet').configurable is true 1251 PASS Object.getOwnPropertyDescriptor(global, 'SQLResultSetRowList').value is SQLResultSetRowList 1252 PASS Object.getOwnPropertyDescriptor(global, 'SQLResultSetRowList').hasOwnProperty('get') is false 1253 PASS Object.getOwnPropertyDescriptor(global, 'SQLResultSetRowList').hasOwnProperty('set') is false 1254 PASS Object.getOwnPropertyDescriptor(global, 'SQLResultSetRowList').enumerable is false 1255 PASS Object.getOwnPropertyDescriptor(global, 'SQLResultSetRowList').configurable is true 1256 PASS Object.getOwnPropertyDescriptor(global, 'SQLTransaction').value is SQLTransaction 1257 PASS Object.getOwnPropertyDescriptor(global, 'SQLTransaction').hasOwnProperty('get') is false 1258 PASS Object.getOwnPropertyDescriptor(global, 'SQLTransaction').hasOwnProperty('set') is false 1259 PASS Object.getOwnPropertyDescriptor(global, 'SQLTransaction').enumerable is false 1260 PASS Object.getOwnPropertyDescriptor(global, 'SQLTransaction').configurable is true 1106 1261 PASS Object.getOwnPropertyDescriptor(global, 'SVGAElement').value is SVGAElement 1107 1262 PASS Object.getOwnPropertyDescriptor(global, 'SVGAElement').hasOwnProperty('get') is false … … 1829 1984 PASS Object.getOwnPropertyDescriptor(global, 'Selection').enumerable is false 1830 1985 PASS Object.getOwnPropertyDescriptor(global, 'Selection').configurable is true 1986 PASS Object.getOwnPropertyDescriptor(global, 'Set').value is Set 1987 PASS Object.getOwnPropertyDescriptor(global, 'Set').hasOwnProperty('get') is false 1988 PASS Object.getOwnPropertyDescriptor(global, 'Set').hasOwnProperty('set') is false 1989 PASS Object.getOwnPropertyDescriptor(global, 'Set').enumerable is false 1990 PASS Object.getOwnPropertyDescriptor(global, 'Set').configurable is true 1831 1991 PASS Object.getOwnPropertyDescriptor(global, 'Storage').value is Storage 1832 1992 PASS Object.getOwnPropertyDescriptor(global, 'Storage').hasOwnProperty('get') is false … … 1839 1999 PASS Object.getOwnPropertyDescriptor(global, 'StorageEvent').enumerable is false 1840 2000 PASS Object.getOwnPropertyDescriptor(global, 'StorageEvent').configurable is true 2001 PASS Object.getOwnPropertyDescriptor(global, 'String').value is String 2002 PASS Object.getOwnPropertyDescriptor(global, 'String').hasOwnProperty('get') is false 2003 PASS Object.getOwnPropertyDescriptor(global, 'String').hasOwnProperty('set') is false 2004 PASS Object.getOwnPropertyDescriptor(global, 'String').enumerable is false 2005 PASS Object.getOwnPropertyDescriptor(global, 'String').configurable is true 1841 2006 PASS Object.getOwnPropertyDescriptor(global, 'StyleSheet').value is StyleSheet 1842 2007 PASS Object.getOwnPropertyDescriptor(global, 'StyleSheet').hasOwnProperty('get') is false … … 1849 2014 PASS Object.getOwnPropertyDescriptor(global, 'StyleSheetList').enumerable is false 1850 2015 PASS Object.getOwnPropertyDescriptor(global, 'StyleSheetList').configurable is true 2016 PASS Object.getOwnPropertyDescriptor(global, 'Symbol').value is Symbol 2017 PASS Object.getOwnPropertyDescriptor(global, 'Symbol').hasOwnProperty('get') is false 2018 PASS Object.getOwnPropertyDescriptor(global, 'Symbol').hasOwnProperty('set') is false 2019 PASS Object.getOwnPropertyDescriptor(global, 'Symbol').enumerable is false 2020 PASS Object.getOwnPropertyDescriptor(global, 'Symbol').configurable is true 2021 PASS Object.getOwnPropertyDescriptor(global, 'SyntaxError').value is SyntaxError 2022 PASS Object.getOwnPropertyDescriptor(global, 'SyntaxError').hasOwnProperty('get') is false 2023 PASS Object.getOwnPropertyDescriptor(global, 'SyntaxError').hasOwnProperty('set') is false 2024 PASS Object.getOwnPropertyDescriptor(global, 'SyntaxError').enumerable is false 2025 PASS Object.getOwnPropertyDescriptor(global, 'SyntaxError').configurable is true 1851 2026 PASS Object.getOwnPropertyDescriptor(global, 'Text').value is Text 1852 2027 PASS Object.getOwnPropertyDescriptor(global, 'Text').hasOwnProperty('get') is false … … 1919 2094 PASS Object.getOwnPropertyDescriptor(global, 'TreeWalker').enumerable is false 1920 2095 PASS Object.getOwnPropertyDescriptor(global, 'TreeWalker').configurable is true 2096 PASS Object.getOwnPropertyDescriptor(global, 'TypeError').value is TypeError 2097 PASS Object.getOwnPropertyDescriptor(global, 'TypeError').hasOwnProperty('get') is false 2098 PASS Object.getOwnPropertyDescriptor(global, 'TypeError').hasOwnProperty('set') is false 2099 PASS Object.getOwnPropertyDescriptor(global, 'TypeError').enumerable is false 2100 PASS Object.getOwnPropertyDescriptor(global, 'TypeError').configurable is true 1921 2101 PASS Object.getOwnPropertyDescriptor(global, 'UIEvent').value is UIEvent 1922 2102 PASS Object.getOwnPropertyDescriptor(global, 'UIEvent').hasOwnProperty('get') is false … … 1924 2104 PASS Object.getOwnPropertyDescriptor(global, 'UIEvent').enumerable is false 1925 2105 PASS Object.getOwnPropertyDescriptor(global, 'UIEvent').configurable is true 2106 PASS Object.getOwnPropertyDescriptor(global, 'URIError').value is URIError 2107 PASS Object.getOwnPropertyDescriptor(global, 'URIError').hasOwnProperty('get') is false 2108 PASS Object.getOwnPropertyDescriptor(global, 'URIError').hasOwnProperty('set') is false 2109 PASS Object.getOwnPropertyDescriptor(global, 'URIError').enumerable is false 2110 PASS Object.getOwnPropertyDescriptor(global, 'URIError').configurable is true 1926 2111 PASS Object.getOwnPropertyDescriptor(global, 'URL').value is URL 1927 2112 PASS Object.getOwnPropertyDescriptor(global, 'URL').hasOwnProperty('get') is false … … 1929 2114 PASS Object.getOwnPropertyDescriptor(global, 'URL').enumerable is false 1930 2115 PASS Object.getOwnPropertyDescriptor(global, 'URL').configurable is true 2116 PASS Object.getOwnPropertyDescriptor(global, 'Uint16Array').value is Uint16Array 2117 PASS Object.getOwnPropertyDescriptor(global, 'Uint16Array').hasOwnProperty('get') is false 2118 PASS Object.getOwnPropertyDescriptor(global, 'Uint16Array').hasOwnProperty('set') is false 2119 PASS Object.getOwnPropertyDescriptor(global, 'Uint16Array').enumerable is false 2120 PASS Object.getOwnPropertyDescriptor(global, 'Uint16Array').configurable is true 2121 PASS Object.getOwnPropertyDescriptor(global, 'Uint32Array').value is Uint32Array 2122 PASS Object.getOwnPropertyDescriptor(global, 'Uint32Array').hasOwnProperty('get') is false 2123 PASS Object.getOwnPropertyDescriptor(global, 'Uint32Array').hasOwnProperty('set') is false 2124 PASS Object.getOwnPropertyDescriptor(global, 'Uint32Array').enumerable is false 2125 PASS Object.getOwnPropertyDescriptor(global, 'Uint32Array').configurable is true 2126 PASS Object.getOwnPropertyDescriptor(global, 'Uint8Array').value is Uint8Array 2127 PASS Object.getOwnPropertyDescriptor(global, 'Uint8Array').hasOwnProperty('get') is false 2128 PASS Object.getOwnPropertyDescriptor(global, 'Uint8Array').hasOwnProperty('set') is false 2129 PASS Object.getOwnPropertyDescriptor(global, 'Uint8Array').enumerable is false 2130 PASS Object.getOwnPropertyDescriptor(global, 'Uint8Array').configurable is true 2131 PASS Object.getOwnPropertyDescriptor(global, 'Uint8ClampedArray').value is Uint8ClampedArray 2132 PASS Object.getOwnPropertyDescriptor(global, 'Uint8ClampedArray').hasOwnProperty('get') is false 2133 PASS Object.getOwnPropertyDescriptor(global, 'Uint8ClampedArray').hasOwnProperty('set') is false 2134 PASS Object.getOwnPropertyDescriptor(global, 'Uint8ClampedArray').enumerable is false 2135 PASS Object.getOwnPropertyDescriptor(global, 'Uint8ClampedArray').configurable is true 2136 PASS Object.getOwnPropertyDescriptor(global, 'UserMessageHandler').value is UserMessageHandler 2137 PASS Object.getOwnPropertyDescriptor(global, 'UserMessageHandler').hasOwnProperty('get') is false 2138 PASS Object.getOwnPropertyDescriptor(global, 'UserMessageHandler').hasOwnProperty('set') is false 2139 PASS Object.getOwnPropertyDescriptor(global, 'UserMessageHandler').enumerable is false 2140 PASS Object.getOwnPropertyDescriptor(global, 'UserMessageHandler').configurable is true 2141 PASS Object.getOwnPropertyDescriptor(global, 'UserMessageHandlersNamespace').value is UserMessageHandlersNamespace 2142 PASS Object.getOwnPropertyDescriptor(global, 'UserMessageHandlersNamespace').hasOwnProperty('get') is false 2143 PASS Object.getOwnPropertyDescriptor(global, 'UserMessageHandlersNamespace').hasOwnProperty('set') is false 2144 PASS Object.getOwnPropertyDescriptor(global, 'UserMessageHandlersNamespace').enumerable is false 2145 PASS Object.getOwnPropertyDescriptor(global, 'UserMessageHandlersNamespace').configurable is true 1931 2146 PASS Object.getOwnPropertyDescriptor(global, 'VTTCue').value is VTTCue 1932 2147 PASS Object.getOwnPropertyDescriptor(global, 'VTTCue').hasOwnProperty('get') is false … … 1934 2149 PASS Object.getOwnPropertyDescriptor(global, 'VTTCue').enumerable is false 1935 2150 PASS Object.getOwnPropertyDescriptor(global, 'VTTCue').configurable is true 2151 PASS Object.getOwnPropertyDescriptor(global, 'VTTRegion').value is VTTRegion 2152 PASS Object.getOwnPropertyDescriptor(global, 'VTTRegion').hasOwnProperty('get') is false 2153 PASS Object.getOwnPropertyDescriptor(global, 'VTTRegion').hasOwnProperty('set') is false 2154 PASS Object.getOwnPropertyDescriptor(global, 'VTTRegion').enumerable is false 2155 PASS Object.getOwnPropertyDescriptor(global, 'VTTRegion').configurable is true 1936 2156 PASS Object.getOwnPropertyDescriptor(global, 'ValidityState').value is ValidityState 1937 2157 PASS Object.getOwnPropertyDescriptor(global, 'ValidityState').hasOwnProperty('get') is false … … 1939 2159 PASS Object.getOwnPropertyDescriptor(global, 'ValidityState').enumerable is false 1940 2160 PASS Object.getOwnPropertyDescriptor(global, 'ValidityState').configurable is true 1941 PASS Object.getOwnPropertyDescriptor(global, 'VideoStreamTrack').value is VideoStreamTrack 1942 PASS Object.getOwnPropertyDescriptor(global, 'VideoStreamTrack').hasOwnProperty('get') is false 1943 PASS Object.getOwnPropertyDescriptor(global, 'VideoStreamTrack').hasOwnProperty('set') is false 1944 PASS Object.getOwnPropertyDescriptor(global, 'VideoStreamTrack').enumerable is false 1945 PASS Object.getOwnPropertyDescriptor(global, 'VideoStreamTrack').configurable is true 2161 PASS Object.getOwnPropertyDescriptor(global, 'VideoTrack').value is VideoTrack 2162 PASS Object.getOwnPropertyDescriptor(global, 'VideoTrack').hasOwnProperty('get') is false 2163 PASS Object.getOwnPropertyDescriptor(global, 'VideoTrack').hasOwnProperty('set') is false 2164 PASS Object.getOwnPropertyDescriptor(global, 'VideoTrack').enumerable is false 2165 PASS Object.getOwnPropertyDescriptor(global, 'VideoTrack').configurable is true 2166 PASS Object.getOwnPropertyDescriptor(global, 'VideoTrackList').value is VideoTrackList 2167 PASS Object.getOwnPropertyDescriptor(global, 'VideoTrackList').hasOwnProperty('get') is false 2168 PASS Object.getOwnPropertyDescriptor(global, 'VideoTrackList').hasOwnProperty('set') is false 2169 PASS Object.getOwnPropertyDescriptor(global, 'VideoTrackList').enumerable is false 2170 PASS Object.getOwnPropertyDescriptor(global, 'VideoTrackList').configurable is true 1946 2171 PASS Object.getOwnPropertyDescriptor(global, 'WaveShaperNode').value is WaveShaperNode 1947 2172 PASS Object.getOwnPropertyDescriptor(global, 'WaveShaperNode').hasOwnProperty('get') is false … … 1949 2174 PASS Object.getOwnPropertyDescriptor(global, 'WaveShaperNode').enumerable is false 1950 2175 PASS Object.getOwnPropertyDescriptor(global, 'WaveShaperNode').configurable is true 2176 PASS Object.getOwnPropertyDescriptor(global, 'WeakMap').value is WeakMap 2177 PASS Object.getOwnPropertyDescriptor(global, 'WeakMap').hasOwnProperty('get') is false 2178 PASS Object.getOwnPropertyDescriptor(global, 'WeakMap').hasOwnProperty('set') is false 2179 PASS Object.getOwnPropertyDescriptor(global, 'WeakMap').enumerable is false 2180 PASS Object.getOwnPropertyDescriptor(global, 'WeakMap').configurable is true 2181 PASS Object.getOwnPropertyDescriptor(global, 'WeakSet').value is WeakSet 2182 PASS Object.getOwnPropertyDescriptor(global, 'WeakSet').hasOwnProperty('get') is false 2183 PASS Object.getOwnPropertyDescriptor(global, 'WeakSet').hasOwnProperty('set') is false 2184 PASS Object.getOwnPropertyDescriptor(global, 'WeakSet').enumerable is false 2185 PASS Object.getOwnPropertyDescriptor(global, 'WeakSet').configurable is true 1951 2186 PASS Object.getOwnPropertyDescriptor(global, 'WebGLActiveInfo').value is WebGLActiveInfo 1952 2187 PASS Object.getOwnPropertyDescriptor(global, 'WebGLActiveInfo').hasOwnProperty('get') is false … … 1974 2209 PASS Object.getOwnPropertyDescriptor(global, 'WebGLProgram').enumerable is false 1975 2210 PASS Object.getOwnPropertyDescriptor(global, 'WebGLProgram').configurable is true 2211 PASS Object.getOwnPropertyDescriptor(global, 'WebGLQuery').value is WebGLQuery 2212 PASS Object.getOwnPropertyDescriptor(global, 'WebGLQuery').hasOwnProperty('get') is false 2213 PASS Object.getOwnPropertyDescriptor(global, 'WebGLQuery').hasOwnProperty('set') is false 2214 PASS Object.getOwnPropertyDescriptor(global, 'WebGLQuery').enumerable is false 2215 PASS Object.getOwnPropertyDescriptor(global, 'WebGLQuery').configurable is true 1976 2216 PASS Object.getOwnPropertyDescriptor(global, 'WebGLRenderbuffer').value is WebGLRenderbuffer 1977 2217 PASS Object.getOwnPropertyDescriptor(global, 'WebGLRenderbuffer').hasOwnProperty('get') is false … … 1984 2224 PASS Object.getOwnPropertyDescriptor(global, 'WebGLRenderingContext').enumerable is false 1985 2225 PASS Object.getOwnPropertyDescriptor(global, 'WebGLRenderingContext').configurable is true 2226 PASS Object.getOwnPropertyDescriptor(global, 'WebGLSampler').value is WebGLSampler 2227 PASS Object.getOwnPropertyDescriptor(global, 'WebGLSampler').hasOwnProperty('get') is false 2228 PASS Object.getOwnPropertyDescriptor(global, 'WebGLSampler').hasOwnProperty('set') is false 2229 PASS Object.getOwnPropertyDescriptor(global, 'WebGLSampler').enumerable is false 2230 PASS Object.getOwnPropertyDescriptor(global, 'WebGLSampler').configurable is true 1986 2231 PASS Object.getOwnPropertyDescriptor(global, 'WebGLShader').value is WebGLShader 1987 2232 PASS Object.getOwnPropertyDescriptor(global, 'WebGLShader').hasOwnProperty('get') is false … … 1994 2239 PASS Object.getOwnPropertyDescriptor(global, 'WebGLShaderPrecisionFormat').enumerable is false 1995 2240 PASS Object.getOwnPropertyDescriptor(global, 'WebGLShaderPrecisionFormat').configurable is true 2241 PASS Object.getOwnPropertyDescriptor(global, 'WebGLSync').value is WebGLSync 2242 PASS Object.getOwnPropertyDescriptor(global, 'WebGLSync').hasOwnProperty('get') is false 2243 PASS Object.getOwnPropertyDescriptor(global, 'WebGLSync').hasOwnProperty('set') is false 2244 PASS Object.getOwnPropertyDescriptor(global, 'WebGLSync').enumerable is false 2245 PASS Object.getOwnPropertyDescriptor(global, 'WebGLSync').configurable is true 1996 2246 PASS Object.getOwnPropertyDescriptor(global, 'WebGLTexture').value is WebGLTexture 1997 2247 PASS Object.getOwnPropertyDescriptor(global, 'WebGLTexture').hasOwnProperty('get') is false … … 1999 2249 PASS Object.getOwnPropertyDescriptor(global, 'WebGLTexture').enumerable is false 2000 2250 PASS Object.getOwnPropertyDescriptor(global, 'WebGLTexture').configurable is true 2251 PASS Object.getOwnPropertyDescriptor(global, 'WebGLTransformFeedback').value is WebGLTransformFeedback 2252 PASS Object.getOwnPropertyDescriptor(global, 'WebGLTransformFeedback').hasOwnProperty('get') is false 2253 PASS Object.getOwnPropertyDescriptor(global, 'WebGLTransformFeedback').hasOwnProperty('set') is false 2254 PASS Object.getOwnPropertyDescriptor(global, 'WebGLTransformFeedback').enumerable is false 2255 PASS Object.getOwnPropertyDescriptor(global, 'WebGLTransformFeedback').configurable is true 2001 2256 PASS Object.getOwnPropertyDescriptor(global, 'WebGLUniformLocation').value is WebGLUniformLocation 2002 2257 PASS Object.getOwnPropertyDescriptor(global, 'WebGLUniformLocation').hasOwnProperty('get') is false … … 2009 2264 PASS Object.getOwnPropertyDescriptor(global, 'WebKitAnimationEvent').enumerable is false 2010 2265 PASS Object.getOwnPropertyDescriptor(global, 'WebKitAnimationEvent').configurable is true 2266 PASS Object.getOwnPropertyDescriptor(global, 'WebKitCSSFilterValue').value is WebKitCSSFilterValue 2267 PASS Object.getOwnPropertyDescriptor(global, 'WebKitCSSFilterValue').hasOwnProperty('get') is false 2268 PASS Object.getOwnPropertyDescriptor(global, 'WebKitCSSFilterValue').hasOwnProperty('set') is false 2269 PASS Object.getOwnPropertyDescriptor(global, 'WebKitCSSFilterValue').enumerable is false 2270 PASS Object.getOwnPropertyDescriptor(global, 'WebKitCSSFilterValue').configurable is true 2011 2271 PASS Object.getOwnPropertyDescriptor(global, 'WebKitCSSMatrix').value is WebKitCSSMatrix 2012 2272 PASS Object.getOwnPropertyDescriptor(global, 'WebKitCSSMatrix').hasOwnProperty('get') is false … … 2024 2284 PASS Object.getOwnPropertyDescriptor(global, 'WebKitCSSTransformValue').enumerable is false 2025 2285 PASS Object.getOwnPropertyDescriptor(global, 'WebKitCSSTransformValue').configurable is true 2286 PASS Object.getOwnPropertyDescriptor(global, 'WebKitDataCue').value is WebKitDataCue 2287 PASS Object.getOwnPropertyDescriptor(global, 'WebKitDataCue').hasOwnProperty('get') is false 2288 PASS Object.getOwnPropertyDescriptor(global, 'WebKitDataCue').hasOwnProperty('set') is false 2289 PASS Object.getOwnPropertyDescriptor(global, 'WebKitDataCue').enumerable is false 2290 PASS Object.getOwnPropertyDescriptor(global, 'WebKitDataCue').configurable is true 2026 2291 PASS Object.getOwnPropertyDescriptor(global, 'WebKitMutationObserver').value is WebKitMutationObserver 2027 2292 PASS Object.getOwnPropertyDescriptor(global, 'WebKitMutationObserver').hasOwnProperty('get') is false … … 2029 2294 PASS Object.getOwnPropertyDescriptor(global, 'WebKitMutationObserver').enumerable is false 2030 2295 PASS Object.getOwnPropertyDescriptor(global, 'WebKitMutationObserver').configurable is true 2296 PASS Object.getOwnPropertyDescriptor(global, 'WebKitNamespace').value is WebKitNamespace 2297 PASS Object.getOwnPropertyDescriptor(global, 'WebKitNamespace').hasOwnProperty('get') is false 2298 PASS Object.getOwnPropertyDescriptor(global, 'WebKitNamespace').hasOwnProperty('set') is false 2299 PASS Object.getOwnPropertyDescriptor(global, 'WebKitNamespace').enumerable is false 2300 PASS Object.getOwnPropertyDescriptor(global, 'WebKitNamespace').configurable is true 2031 2301 PASS Object.getOwnPropertyDescriptor(global, 'WebKitPoint').value is WebKitPoint 2032 2302 PASS Object.getOwnPropertyDescriptor(global, 'WebKitPoint').hasOwnProperty('get') is false … … 2129 2399 PASS Object.getOwnPropertyDescriptor(global, 'webkitAudioPannerNode').enumerable is false 2130 2400 PASS Object.getOwnPropertyDescriptor(global, 'webkitAudioPannerNode').configurable is true 2131 PASS Object.getOwnPropertyDescriptor(global, 'webkitMediaStream').value is webkitMediaStream2132 PASS Object.getOwnPropertyDescriptor(global, 'webkitMediaStream').hasOwnProperty('get') is false2133 PASS Object.getOwnPropertyDescriptor(global, 'webkitMediaStream').hasOwnProperty('set') is false2134 PASS Object.getOwnPropertyDescriptor(global, 'webkitMediaStream').enumerable is false2135 PASS Object.getOwnPropertyDescriptor(global, 'webkitMediaStream').configurable is true2136 2401 PASS Object.getOwnPropertyDescriptor(global, 'webkitOfflineAudioContext').value is webkitOfflineAudioContext 2137 2402 PASS Object.getOwnPropertyDescriptor(global, 'webkitOfflineAudioContext').hasOwnProperty('get') is false -
trunk/LayoutTests/platform/mac-yosemite/js/dom/global-constructors-attributes-expected.txt
r199942 r201810 9 9 PASS Object.getOwnPropertyDescriptor(global, 'AnalyserNode').enumerable is false 10 10 PASS Object.getOwnPropertyDescriptor(global, 'AnalyserNode').configurable is true 11 PASS Object.getOwnPropertyDescriptor(global, 'Animation').value is Animation 12 PASS Object.getOwnPropertyDescriptor(global, 'Animation').hasOwnProperty('get') is false 13 PASS Object.getOwnPropertyDescriptor(global, 'Animation').hasOwnProperty('set') is false 14 PASS Object.getOwnPropertyDescriptor(global, 'Animation').enumerable is false 15 PASS Object.getOwnPropertyDescriptor(global, 'Animation').configurable is true 16 PASS Object.getOwnPropertyDescriptor(global, 'AnimationEffectReadOnly').value is AnimationEffectReadOnly 17 PASS Object.getOwnPropertyDescriptor(global, 'AnimationEffectReadOnly').hasOwnProperty('get') is false 18 PASS Object.getOwnPropertyDescriptor(global, 'AnimationEffectReadOnly').hasOwnProperty('set') is false 19 PASS Object.getOwnPropertyDescriptor(global, 'AnimationEffectReadOnly').enumerable is false 20 PASS Object.getOwnPropertyDescriptor(global, 'AnimationEffectReadOnly').configurable is true 11 21 PASS Object.getOwnPropertyDescriptor(global, 'AnimationEvent').value is AnimationEvent 12 22 PASS Object.getOwnPropertyDescriptor(global, 'AnimationEvent').hasOwnProperty('get') is false … … 14 24 PASS Object.getOwnPropertyDescriptor(global, 'AnimationEvent').enumerable is false 15 25 PASS Object.getOwnPropertyDescriptor(global, 'AnimationEvent').configurable is true 26 PASS Object.getOwnPropertyDescriptor(global, 'AnimationTimeline').value is AnimationTimeline 27 PASS Object.getOwnPropertyDescriptor(global, 'AnimationTimeline').hasOwnProperty('get') is false 28 PASS Object.getOwnPropertyDescriptor(global, 'AnimationTimeline').hasOwnProperty('set') is false 29 PASS Object.getOwnPropertyDescriptor(global, 'AnimationTimeline').enumerable is false 30 PASS Object.getOwnPropertyDescriptor(global, 'AnimationTimeline').configurable is true 16 31 PASS Object.getOwnPropertyDescriptor(global, 'ApplicationCache').value is ApplicationCache 17 32 PASS Object.getOwnPropertyDescriptor(global, 'ApplicationCache').hasOwnProperty('get') is false … … 354 369 PASS Object.getOwnPropertyDescriptor(global, 'DocumentFragment').enumerable is false 355 370 PASS Object.getOwnPropertyDescriptor(global, 'DocumentFragment').configurable is true 371 PASS Object.getOwnPropertyDescriptor(global, 'DocumentTimeline').value is DocumentTimeline 372 PASS Object.getOwnPropertyDescriptor(global, 'DocumentTimeline').hasOwnProperty('get') is false 373 PASS Object.getOwnPropertyDescriptor(global, 'DocumentTimeline').hasOwnProperty('set') is false 374 PASS Object.getOwnPropertyDescriptor(global, 'DocumentTimeline').enumerable is false 375 PASS Object.getOwnPropertyDescriptor(global, 'DocumentTimeline').configurable is true 356 376 PASS Object.getOwnPropertyDescriptor(global, 'DocumentType').value is DocumentType 357 377 PASS Object.getOwnPropertyDescriptor(global, 'DocumentType').hasOwnProperty('get') is false … … 899 919 PASS Object.getOwnPropertyDescriptor(global, 'KeyboardEvent').enumerable is false 900 920 PASS Object.getOwnPropertyDescriptor(global, 'KeyboardEvent').configurable is true 921 PASS Object.getOwnPropertyDescriptor(global, 'KeyframeEffect').value is KeyframeEffect 922 PASS Object.getOwnPropertyDescriptor(global, 'KeyframeEffect').hasOwnProperty('get') is false 923 PASS Object.getOwnPropertyDescriptor(global, 'KeyframeEffect').hasOwnProperty('set') is false 924 PASS Object.getOwnPropertyDescriptor(global, 'KeyframeEffect').enumerable is false 925 PASS Object.getOwnPropertyDescriptor(global, 'KeyframeEffect').configurable is true 901 926 PASS Object.getOwnPropertyDescriptor(global, 'Location').value is Location 902 927 PASS Object.getOwnPropertyDescriptor(global, 'Location').hasOwnProperty('get') is false -
trunk/Source/JavaScriptCore/ChangeLog
r201808 r201810 1 2016-06-08 Rawinder Singh <rawinder.singh-webkit@cisra.canon.com.au> 2 3 [web-animations] Add Animatable, AnimationEffect, KeyframeEffect and Animation interface 4 https://bugs.webkit.org/show_bug.cgi?id=156096 5 6 Reviewed by Dean Jackson. 7 8 Adds: 9 - Animatable interface and implementation of getAnimations in Element 10 - Interface and implementation for Document getAnimations method. 11 - AnimationEffect interface and class stub. 12 - KeyframeEffect interface and constructor implementation. 13 - 'Animation' interface, constructor and query methods for effect and timeline. 14 - Remove runtime condition on Web animation interfaces (compile time flag is specified). 15 16 * runtime/CommonIdentifiers.h: 17 1 18 2016-06-08 Chris Dumez <cdumez@apple.com> 2 19 -
trunk/Source/JavaScriptCore/runtime/CommonIdentifiers.h
r201544 r201810 29 29 // ways without repeating the list. 30 30 #define JSC_COMMON_IDENTIFIERS_EACH_PROPERTY_NAME(macro) \ 31 macro(Animation) \ 32 macro(AnimationEffectReadOnly) \ 31 33 macro(AnimationTimeline) \ 32 34 macro(Array) \ … … 183 185 macro(jettisonReason) \ 184 186 macro(join) \ 187 macro(KeyframeEffect) \ 185 188 macro(lastIndex) \ 186 189 macro(length) \ -
trunk/Source/WebCore/CMakeLists.txt
r201798 r201810 3017 3017 if (ENABLE_WEB_ANIMATIONS) 3018 3018 list(APPEND WebCore_IDL_FILES 3019 "animation/Animatable.idl" 3020 "animation/AnimationEffect.idl" 3019 3021 "animation/AnimationTimeline.idl" 3020 3022 "animation/DocumentAnimation.idl" 3021 3023 "animation/DocumentTimeline.idl" 3024 "animation/KeyframeEffect.idl" 3025 "animation/WebAnimation.idl" 3022 3026 ) 3023 3027 3024 3028 list(APPEND WebCore_SOURCES 3029 "animation/AnimationEffect.cpp" 3025 3030 "animation/AnimationTimeline.cpp" 3026 3031 "animation/DocumentAnimation.cpp" 3027 3032 "animation/DocumentTimeline.cpp" 3033 "animation/KeyframeEffect.cpp" 3034 "animation/WebAnimation.cpp" 3028 3035 ) 3029 3036 endif () -
trunk/Source/WebCore/ChangeLog
r201808 r201810 1 2016-06-08 Rawinder Singh <rawinder.singh-webkit@cisra.canon.com.au> 2 3 [web-animations] Add Animatable, AnimationEffect, KeyframeEffect and Animation interface 4 https://bugs.webkit.org/show_bug.cgi?id=156096 5 6 Reviewed by Dean Jackson. 7 8 Adds: 9 - Animatable interface and implementation of getAnimations in Element 10 - Interface and implementation for Document getAnimations method. 11 - AnimationEffect interface and class stub. 12 - KeyframeEffect interface and constructor implementation. 13 - 'Animation' interface, constructor and query methods for effect and timeline. 14 - Remove runtime condition on Web animation interfaces (compile time flag is specified). 15 16 Test: webanimations/Document.html 17 18 * CMakeLists.txt: 19 * DerivedSources.make: 20 * PlatformGTK.cmake: 21 * WebCore.xcodeproj/project.pbxproj: 22 * animation/Animatable.idl: Copied from Source/WebCore/animation/DocumentAnimation.idl. 23 * animation/AnimationEffect.cpp: Copied from Source/WebCore/animation/AnimationTimeline.cpp. 24 (WebCore::AnimationEffect::AnimationEffect): 25 (WebCore::AnimationEffect::~AnimationEffect): 26 (WebCore::AnimationEffect::setAnimation): 27 (WebCore::AnimationEffect::isCurrent): 28 (WebCore::AnimationEffect::isInEffect): 29 * animation/AnimationEffect.h: Copied from Source/WebCore/animation/DocumentTimeline.cpp. 30 * animation/AnimationEffect.idl: Copied from Source/WebCore/animation/AnimationTimeline.idl. 31 * animation/AnimationTimeline.cpp: 32 (WebCore::AnimationTimeline::destroy): 33 (WebCore::AnimationTimeline::attachAnimation): 34 (WebCore::AnimationTimeline::detachAnimation): 35 * animation/AnimationTimeline.h: 36 * animation/AnimationTimeline.idl: 37 * animation/DocumentAnimation.cpp: 38 (WebCore::DocumentAnimation::timeline): 39 (WebCore::DocumentAnimation::getAnimations): 40 (WebCore::DocumentAnimation::addAnimation): 41 (WebCore::DocumentAnimation::removeAnimation): 42 * animation/DocumentAnimation.h: 43 (WebCore::DocumentAnimation::getAnimations): 44 * animation/DocumentAnimation.idl: 45 * animation/DocumentTimeline.cpp: 46 (WebCore::DocumentTimeline::create): 47 (WebCore::DocumentTimeline::DocumentTimeline): 48 (WebCore::DocumentTimeline::attach): 49 (WebCore::DocumentTimeline::detach): 50 * animation/DocumentTimeline.h: 51 * animation/DocumentTimeline.idl: 52 * animation/KeyframeEffect.cpp: Copied from Source/WebCore/animation/DocumentTimeline.cpp. 53 (WebCore::KeyframeEffect::create): 54 (WebCore::KeyframeEffect::KeyframeEffect): 55 (WebCore::KeyframeEffect::~KeyframeEffect): 56 * animation/KeyframeEffect.h: Copied from Source/WebCore/animation/DocumentTimeline.h. 57 * animation/KeyframeEffect.idl: Copied from Source/WebCore/animation/AnimationTimeline.idl. 58 * animation/WebAnimation.cpp: Copied from Source/WebCore/animation/DocumentAnimation.cpp. 59 (WebCore::WebAnimation::create): 60 (WebCore::WebAnimation::WebAnimation): 61 (WebCore::WebAnimation::~WebAnimation): 62 * animation/WebAnimation.h: Copied from Source/WebCore/animation/DocumentAnimation.h. 63 * animation/WebAnimation.idl: Copied from Source/WebCore/animation/DocumentTimeline.idl. 64 * bindings/scripts/CodeGeneratorGObject.pm: 65 * dom/Element.cpp: 66 (WebCore::Element::getAnimations): 67 * dom/Element.h: 68 * dom/Element.idl: 69 1 70 2016-06-08 Chris Dumez <cdumez@apple.com> 2 71 -
trunk/Source/WebCore/DerivedSources.make
r201422 r201810 224 224 $(WebCore)/Modules/websockets/CloseEvent.idl \ 225 225 $(WebCore)/Modules/websockets/WebSocket.idl \ 226 $(WebCore)/animation/Animatable.idl \ 227 $(WebCore)/animation/AnimationEffect.idl \ 226 228 $(WebCore)/animation/AnimationTimeline.idl \ 227 229 $(WebCore)/animation/DocumentAnimation.idl \ 228 230 $(WebCore)/animation/DocumentTimeline.idl \ 231 $(WebCore)/animation/KeyframeEffect.idl \ 232 $(WebCore)/animation/WebAnimation.idl \ 229 233 $(WebCore)/crypto/CryptoKey.idl \ 230 234 $(WebCore)/crypto/CryptoKeyPair.idl \ -
trunk/Source/WebCore/PlatformGTK.cmake
r201038 r201810 593 593 if (ENABLE_WEB_ANIMATIONS) 594 594 list(APPEND GObjectDOMBindingsUnstable_IDL_FILES 595 animation/Animatable.idl 596 animation/AnimationEffect.idl 595 597 animation/AnimationTimeline.idl 596 598 animation/DocumentAnimation.idl 597 599 animation/DocumentTimeline.idl 600 animation/KeyframeEffect.idl 601 animation/WebAnimation.idl 598 602 ) 599 603 endif () -
trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj
r201798 r201810 577 577 0FFD4D6118651FA300512F6E /* AsyncScrollingCoordinator.h in Headers */ = {isa = PBXBuildFile; fileRef = 0FFD4D5F18651FA300512F6E /* AsyncScrollingCoordinator.h */; settings = {ATTRIBUTES = (Private, ); }; }; 578 578 10FB084B14E15C7E00A3DB98 /* PublicURLManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 10FB084A14E15C7E00A3DB98 /* PublicURLManager.h */; }; 579 120DE3ED1C86CA3E00B6D4DD /* WebAnimation.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 120DE3EA1C80161C00B6D4DD /* WebAnimation.cpp */; }; 580 120DE3F11C86CCC600B6D4DD /* AnimationEffect.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 120DE3EE1C86CCBD00B6D4DD /* AnimationEffect.cpp */; }; 581 120DE3F81C87C5A800B6D4DD /* JSWebAnimation.h in Headers */ = {isa = PBXBuildFile; fileRef = 120DE3F51C87C58E00B6D4DD /* JSWebAnimation.h */; }; 582 120DE3F91C87C5AB00B6D4DD /* JSWebAnimation.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 120DE3F41C87C58E00B6D4DD /* JSWebAnimation.cpp */; }; 583 120DE3FD1C87E18400B6D4DD /* JSAnimationEffect.h in Headers */ = {isa = PBXBuildFile; fileRef = 120DE3FC1C87E17900B6D4DD /* JSAnimationEffect.h */; }; 584 120DE3FE1C87E18800B6D4DD /* JSAnimationEffect.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 120DE3FB1C87E17900B6D4DD /* JSAnimationEffect.cpp */; }; 579 585 1221E0471BFC3D2C006A1A00 /* DocumentAnimation.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1221E0411BFC3D2C006A1A00 /* DocumentAnimation.cpp */; }; 580 586 1221E0481BFC3D2C006A1A00 /* DocumentAnimation.h in Headers */ = {isa = PBXBuildFile; fileRef = 1221E0421BFC3D2C006A1A00 /* DocumentAnimation.h */; }; … … 589 595 1221E06D1C03D224006A1A00 /* JSAnimationTimeline.h in Headers */ = {isa = PBXBuildFile; fileRef = 1221E06B1C03D224006A1A00 /* JSAnimationTimeline.h */; }; 590 596 1221E0731C03E4C2006A1A00 /* JSAnimationTimelineCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1221E0721C03E4C2006A1A00 /* JSAnimationTimelineCustom.cpp */; }; 597 12A253DB1C8FF7DC00C22295 /* KeyframeEffect.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 12A253D81C8FF7CC00C22295 /* KeyframeEffect.cpp */; }; 598 12A253E01C8FFF6600C22295 /* JSKeyframeEffect.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 12A253DE1C8FFF5700C22295 /* JSKeyframeEffect.cpp */; }; 599 12A253E11C8FFF6600C22295 /* JSKeyframeEffect.h in Headers */ = {isa = PBXBuildFile; fileRef = 12A253DF1C8FFF5700C22295 /* JSKeyframeEffect.h */; }; 600 12A253E21C8FFF6600C22295 /* JSAnimatable.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 12A253DC1C8FFF4200C22295 /* JSAnimatable.cpp */; }; 601 12A253E31C8FFF6600C22295 /* JSAnimatable.h in Headers */ = {isa = PBXBuildFile; fileRef = 12A253DD1C8FFF4200C22295 /* JSAnimatable.h */; }; 591 602 1400D7A817136EA70077CE05 /* ScriptWrappableInlines.h in Headers */ = {isa = PBXBuildFile; fileRef = 1400D7A717136EA70077CE05 /* ScriptWrappableInlines.h */; settings = {ATTRIBUTES = (Private, ); }; }; 592 603 1402645E0AFDC19B005919E2 /* LoggingMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1402645D0AFDC19B005919E2 /* LoggingMac.mm */; }; … … 7998 8009 0FFD4D5F18651FA300512F6E /* AsyncScrollingCoordinator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AsyncScrollingCoordinator.h; sourceTree = "<group>"; }; 7999 8010 10FB084A14E15C7E00A3DB98 /* PublicURLManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PublicURLManager.h; sourceTree = "<group>"; }; 8011 120DE3EA1C80161C00B6D4DD /* WebAnimation.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebAnimation.cpp; sourceTree = "<group>"; }; 8012 120DE3EB1C80161C00B6D4DD /* WebAnimation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebAnimation.h; sourceTree = "<group>"; }; 8013 120DE3EC1C80161C00B6D4DD /* WebAnimation.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = WebAnimation.idl; sourceTree = "<group>"; }; 8014 120DE3EE1C86CCBD00B6D4DD /* AnimationEffect.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AnimationEffect.cpp; sourceTree = "<group>"; }; 8015 120DE3EF1C86CCBD00B6D4DD /* AnimationEffect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AnimationEffect.h; sourceTree = "<group>"; }; 8016 120DE3F41C87C58E00B6D4DD /* JSWebAnimation.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSWebAnimation.cpp; sourceTree = "<group>"; }; 8017 120DE3F51C87C58E00B6D4DD /* JSWebAnimation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSWebAnimation.h; sourceTree = "<group>"; }; 8018 120DE3FA1C87D1F100B6D4DD /* AnimationEffect.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = AnimationEffect.idl; sourceTree = "<group>"; }; 8019 120DE3FB1C87E17900B6D4DD /* JSAnimationEffect.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSAnimationEffect.cpp; sourceTree = "<group>"; }; 8020 120DE3FC1C87E17900B6D4DD /* JSAnimationEffect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSAnimationEffect.h; sourceTree = "<group>"; }; 8021 120DE4011C8E997A00B6D4DD /* Animatable.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = Animatable.idl; sourceTree = "<group>"; }; 8000 8022 1221E0411BFC3D2C006A1A00 /* DocumentAnimation.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DocumentAnimation.cpp; sourceTree = "<group>"; }; 8001 8023 1221E0421BFC3D2C006A1A00 /* DocumentAnimation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DocumentAnimation.h; sourceTree = "<group>"; }; … … 8014 8036 1221E06B1C03D224006A1A00 /* JSAnimationTimeline.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSAnimationTimeline.h; sourceTree = "<group>"; }; 8015 8037 1221E0721C03E4C2006A1A00 /* JSAnimationTimelineCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSAnimationTimelineCustom.cpp; sourceTree = "<group>"; }; 8038 12A253D81C8FF7CC00C22295 /* KeyframeEffect.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = KeyframeEffect.cpp; sourceTree = "<group>"; }; 8039 12A253D91C8FF7CC00C22295 /* KeyframeEffect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KeyframeEffect.h; sourceTree = "<group>"; }; 8040 12A253DA1C8FF7CC00C22295 /* KeyframeEffect.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = KeyframeEffect.idl; sourceTree = "<group>"; }; 8041 12A253DC1C8FFF4200C22295 /* JSAnimatable.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSAnimatable.cpp; sourceTree = "<group>"; }; 8042 12A253DD1C8FFF4200C22295 /* JSAnimatable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSAnimatable.h; sourceTree = "<group>"; }; 8043 12A253DE1C8FFF5700C22295 /* JSKeyframeEffect.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSKeyframeEffect.cpp; sourceTree = "<group>"; }; 8044 12A253DF1C8FFF5700C22295 /* JSKeyframeEffect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSKeyframeEffect.h; sourceTree = "<group>"; }; 8016 8045 1400D7A717136EA70077CE05 /* ScriptWrappableInlines.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScriptWrappableInlines.h; sourceTree = "<group>"; }; 8017 8046 1402645D0AFDC19B005919E2 /* LoggingMac.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = LoggingMac.mm; sourceTree = "<group>"; }; … … 15968 15997 isa = PBXGroup; 15969 15998 children = ( 15999 120DE4011C8E997A00B6D4DD /* Animatable.idl */, 16000 120DE3EE1C86CCBD00B6D4DD /* AnimationEffect.cpp */, 16001 120DE3EF1C86CCBD00B6D4DD /* AnimationEffect.h */, 16002 120DE3FA1C87D1F100B6D4DD /* AnimationEffect.idl */, 15970 16003 1221E0611C02D623006A1A00 /* AnimationTimeline.cpp */, 15971 16004 1221E0621C02D623006A1A00 /* AnimationTimeline.h */, … … 15977 16010 1221E0451BFC3D2C006A1A00 /* DocumentTimeline.h */, 15978 16011 1221E0461BFC3D2C006A1A00 /* DocumentTimeline.idl */, 16012 12A253D81C8FF7CC00C22295 /* KeyframeEffect.cpp */, 16013 12A253D91C8FF7CC00C22295 /* KeyframeEffect.h */, 16014 12A253DA1C8FF7CC00C22295 /* KeyframeEffect.idl */, 16015 120DE3EA1C80161C00B6D4DD /* WebAnimation.cpp */, 16016 120DE3EB1C80161C00B6D4DD /* WebAnimation.h */, 16017 120DE3EC1C80161C00B6D4DD /* WebAnimation.idl */, 15979 16018 ); 15980 16019 path = animation; … … 15984 16023 isa = PBXGroup; 15985 16024 children = ( 16025 12A253DE1C8FFF5700C22295 /* JSKeyframeEffect.cpp */, 16026 12A253DF1C8FFF5700C22295 /* JSKeyframeEffect.h */, 16027 12A253DC1C8FFF4200C22295 /* JSAnimatable.cpp */, 16028 12A253DD1C8FFF4200C22295 /* JSAnimatable.h */, 16029 120DE3FB1C87E17900B6D4DD /* JSAnimationEffect.cpp */, 16030 120DE3FC1C87E17900B6D4DD /* JSAnimationEffect.h */, 16031 120DE3F41C87C58E00B6D4DD /* JSWebAnimation.cpp */, 16032 120DE3F51C87C58E00B6D4DD /* JSWebAnimation.h */, 15986 16033 1221E06A1C03D224006A1A00 /* JSAnimationTimeline.cpp */, 15987 16034 1221E06B1C03D224006A1A00 /* JSAnimationTimeline.h */, … … 25278 25325 A10D7FEC1C2676D100C6C115 /* CFNetworkConnectionCacheSPI.h in Headers */, 25279 25326 CE12525B1A1C018200864480 /* CFNetworkSPI.h in Headers */, 25327 120DE3FD1C87E18400B6D4DD /* JSAnimationEffect.h in Headers */, 25280 25328 E1A8E56717552B2A007488E7 /* CFURLExtras.h in Headers */, 25281 25329 FE36FD1516C7826500F887C1 /* ChangeVersionData.h in Headers */, … … 25342 25390 262391361A648CEE007251A3 /* ContentExtensionsDebugging.h in Headers */, 25343 25391 51FB67DC1AE6B82F00D06C5A /* ContentExtensionStyleSheet.h in Headers */, 25392 120DE3F81C87C5A800B6D4DD /* JSWebAnimation.h in Headers */, 25344 25393 A149786F1ABAF33800CEF7E4 /* ContentFilter.h in Headers */, 25345 25394 A14090FD1AA51E480091191A /* ContentFilterUnblockHandler.h in Headers */, … … 25400 25449 E1C6571F1816E50300256CDD /* CryptoAlgorithmHmacParams.h in Headers */, 25401 25450 E1C657251816E69D00256CDD /* CryptoAlgorithmIdentifier.h in Headers */, 25451 12A253E11C8FFF6600C22295 /* JSKeyframeEffect.h in Headers */, 25402 25452 E1C657271816F9FE00256CDD /* CryptoAlgorithmParameters.h in Headers */, 25403 25453 E1FF8F6D180DB5BE00132674 /* CryptoAlgorithmRegistry.h in Headers */, … … 26488 26538 E462A4A1113E71BE004A4220 /* IntPointHash.h in Headers */, 26489 26539 B27535740B053814002CE64F /* IntRect.h in Headers */, 26540 12A253E31C8FFF6600C22295 /* JSAnimatable.h in Headers */, 26490 26541 A2B9217316C5CC420041DCD9 /* IntRectExtent.h in Headers */, 26491 26542 E134F5AB12EE343F004EC58D /* IntRectHash.h in Headers */, … … 29460 29511 A1ED778C1BE3294000DC1791 /* Device.cpp in Sources */, 29461 29512 CCC2B51515F613060048CDD6 /* DeviceController.cpp in Sources */, 29513 120DE3F11C86CCC600B6D4DD /* AnimationEffect.cpp in Sources */, 29462 29514 31EAF97F121435A400E7C1BF /* DeviceMotionClientIOS.mm in Sources */, 29463 29515 31FB1A58120A5D0600DC02A0 /* DeviceMotionController.cpp in Sources */, … … 30163 30215 B27535600B053814002CE64F /* IntPointCG.cpp in Sources */, 30164 30216 B275357C0B053814002CE64F /* IntPointMac.mm in Sources */, 30217 120DE3FE1C87E18800B6D4DD /* JSAnimationEffect.cpp in Sources */, 30165 30218 B27535730B053814002CE64F /* IntRect.cpp in Sources */, 30166 30219 B27535610B053814002CE64F /* IntRectCG.cpp in Sources */, … … 30435 30488 1AE2ABA80A1CE90500B42B25 /* JSHTMLParamElement.cpp in Sources */, 30436 30489 BC3D85BB1C0E2E7700D3B610 /* JSHTMLPictureElement.cpp in Sources */, 30490 12A253E21C8FFF6600C22295 /* JSAnimatable.cpp in Sources */, 30437 30491 1AE2ABAA0A1CE90500B42B25 /* JSHTMLPreElement.cpp in Sources */, 30438 30492 A4226E5A1163D667008B8397 /* JSHTMLProgressElement.cpp in Sources */, … … 30639 30693 BC98A27D0C0C9950004BEBF7 /* JSStyleSheetCustom.cpp in Sources */, 30640 30694 A84EBD840CB8C97700079609 /* JSStyleSheetList.cpp in Sources */, 30695 120DE3F91C87C5AB00B6D4DD /* JSWebAnimation.cpp in Sources */, 30641 30696 A84EBD780CB8C89200079609 /* JSStyleSheetListCustom.cpp in Sources */, 30642 30697 E1FF8F64180745D800132674 /* JSSubtleCrypto.cpp in Sources */, … … 30887 30942 1A762C750A074F2600989F5B /* JSXPathExpression.cpp in Sources */, 30888 30943 1A762C770A074F2600989F5B /* JSXPathNSResolver.cpp in Sources */, 30944 12A253DB1C8FF7DC00C22295 /* KeyframeEffect.cpp in Sources */, 30889 30945 1A762C790A074F2600989F5B /* JSXPathResult.cpp in Sources */, 30890 30946 A1C7FAA2133A5D3500D6732D /* JSXPathResultCustom.cpp in Sources */, … … 30937 30993 7EE6846812D26E3800E79415 /* LoaderRunLoopCF.cpp in Sources */, 30938 30994 51ABF64D16392E2800132A7A /* LoaderStrategy.cpp in Sources */, 30995 12A253E01C8FFF6600C22295 /* JSKeyframeEffect.cpp in Sources */, 30939 30996 06E81EEC0AB5DA9700C87837 /* LocalCurrentGraphicsContext.mm in Sources */, 30940 30997 F5973DE115CFB2030027F804 /* LocaleMac.mm in Sources */, … … 30969 31026 417253AA1354BBBC00360F2A /* MediaControlElements.cpp in Sources */, 30970 31027 DEBCCDD516646EB200A452E1 /* MediaControlElementTypes.cpp in Sources */, 31028 120DE3ED1C86CA3E00B6D4DD /* WebAnimation.cpp in Sources */, 30971 31029 CD27F6E7145770D30078207D /* MediaController.cpp in Sources */, 30972 31030 5E5E2B131CFC3E70000C0D85 /* RTCRtpTransceiver.cpp in Sources */, -
trunk/Source/WebCore/animation/Animatable.idl
r201809 r201810 28 28 29 29 [ 30 EnabledAtRuntime=WebAnimations,31 Conditional=WEB_ANIMATIONS32 ] partial interface Document{30 Conditional=WEB_ANIMATIONS, 31 NoInterfaceObject 32 ] interface Animatable { 33 33 #if !defined(LANGUAGE_OBJECTIVE_C) || !LANGUAGE_OBJECTIVE_C 34 readonly attribute DocumentTimeline timeline; 34 // FIXME: Incomplete interface (implement animate). 35 sequence<WebAnimation> getAnimations(); 35 36 #endif 36 37 }; -
trunk/Source/WebCore/animation/AnimationEffect.cpp
r201809 r201810 28 28 29 29 #include "config.h" 30 #include "Animation Timeline.h"30 #include "AnimationEffect.h" 31 31 32 32 #if ENABLE(WEB_ANIMATIONS) 33 33 34 #include " DocumentTimeline.h"34 #include "WebAnimation.h" 35 35 36 36 namespace WebCore { 37 37 38 AnimationTimeline::AnimationTimeline(ClassType classType) 39 : m_classType(classType) 40 { 41 // NOTE: We only have one type of subclass at the moment. 42 ASSERT(classType == DocumentTimelineClass); 43 } 44 45 AnimationTimeline::~AnimationTimeline() 38 AnimationEffect::AnimationEffect() 46 39 { 47 40 } 48 41 49 void AnimationTimeline::destroy()42 AnimationEffect::~AnimationEffect() 50 43 { 51 if (classType() == DocumentTimelineClass) { 52 delete downcast<DocumentTimeline>(this); 53 return; 54 } 55 56 ASSERT_NOT_REACHED(); 57 return; 44 } 45 46 void AnimationEffect::setAnimation(WebAnimation* animation) 47 { 48 m_animation = animation ? animation->createWeakPtr() : WeakPtr<WebAnimation>(); 49 } 50 51 bool AnimationEffect::isCurrent() const 52 { 53 // FIXME: Calculate whether animation is current according to spec. 54 return true; 55 } 56 57 bool AnimationEffect::isInEffect() const 58 { 59 // FIXME: Calculate whether animation is in effect according to spec. 60 return false; 58 61 } 59 62 -
trunk/Source/WebCore/animation/AnimationEffect.h
r201809 r201810 27 27 */ 28 28 29 #include "config.h" 30 #include "DocumentTimeline.h" 29 #pragma once 31 30 32 31 #if ENABLE(WEB_ANIMATIONS) 33 32 33 #include "WebAnimation.h" 34 #include <wtf/RefCounted.h> 35 #include <wtf/RefPtr.h> 36 34 37 namespace WebCore { 35 38 36 Ref<DocumentTimeline> DocumentTimeline::create(double originTime) 37 { 38 return adoptRef(*new DocumentTimeline(originTime));39 } 39 class AnimationEffect : public RefCounted<AnimationEffect> { 40 public: 41 AnimationEffect(); 42 virtual ~AnimationEffect(); 40 43 41 DocumentTimeline::DocumentTimeline(double originTime) 42 : AnimationTimeline(DocumentTimelineClass) 43 , m_originTime(originTime) 44 { 45 UNUSED_PARAM(m_originTime); 46 } 44 void setAnimation(WebAnimation*); 47 45 48 DocumentTimeline::~DocumentTimeline() 49 { 50 } 46 bool isCurrent() const; 47 bool isInEffect() const; 48 49 private: 50 WeakPtr<WebAnimation> m_animation; 51 }; 51 52 52 53 } // namespace WebCore -
trunk/Source/WebCore/animation/AnimationEffect.idl
r201809 r201810 28 28 29 29 [ 30 EnabledAtRuntime=WebAnimations,31 30 Conditional=WEB_ANIMATIONS, 32 CustomToJSObject, 33 ObjCPolymorphic, 34 ImplementationLacksVTable 35 ] interface AnimationTimeline { 36 // FIX: Only a stub at the moment. 31 InterfaceName=AnimationEffectReadOnly, 32 SkipVTableValidation 33 ] interface AnimationEffect { 34 // FIXME: Stub only at the moment. 37 35 }; 38 -
trunk/Source/WebCore/animation/AnimationTimeline.cpp
r197058 r201810 55 55 56 56 ASSERT_NOT_REACHED(); 57 return; 57 } 58 59 void AnimationTimeline::attachAnimation(WebAnimation& animation) 60 { 61 if (classType() == DocumentTimelineClass) { 62 downcast<DocumentTimeline>(*this).attach(animation); 63 return; 64 } 65 66 ASSERT_NOT_REACHED(); 67 } 68 69 void AnimationTimeline::detachAnimation(WebAnimation& animation) 70 { 71 if (classType() == DocumentTimelineClass) { 72 downcast<DocumentTimeline>(*this).detach(animation); 73 return; 74 } 75 76 ASSERT_NOT_REACHED(); 58 77 } 59 78 -
trunk/Source/WebCore/animation/AnimationTimeline.h
r197058 r201810 27 27 */ 28 28 29 #ifndef AnimationTimeline_h 30 #define AnimationTimeline_h 29 #pragma once 31 30 32 31 #if ENABLE(WEB_ANIMATIONS) … … 37 36 38 37 namespace WebCore { 38 39 class WebAnimation; 39 40 40 41 class AnimationTimeline : public RefCounted<AnimationTimeline> { … … 49 50 50 51 bool isDocumentTimeline() const { return m_classType == DocumentTimelineClass; } 52 53 void attachAnimation(WebAnimation&); 54 void detachAnimation(WebAnimation&); 51 55 52 56 protected: … … 76 80 77 81 #endif // ENABLE(WEB_ANIMATIONS) 78 79 #endif // AnimationTimeline_h -
trunk/Source/WebCore/animation/AnimationTimeline.idl
r197058 r201810 28 28 29 29 [ 30 EnabledAtRuntime=WebAnimations,31 30 Conditional=WEB_ANIMATIONS, 32 31 CustomToJSObject, … … 34 33 ImplementationLacksVTable 35 34 ] interface AnimationTimeline { 36 // FIX : Only a stub at the moment.35 // FIXME: Only a stub at the moment. 37 36 }; 38 37 -
trunk/Source/WebCore/animation/DocumentAnimation.cpp
r197058 r201810 49 49 auto* documentAnimation = DocumentAnimation::from(&document); 50 50 if (!documentAnimation->m_defaultTimeline) 51 documentAnimation->m_defaultTimeline = DocumentTimeline::create( 0.0);51 documentAnimation->m_defaultTimeline = DocumentTimeline::create(document, 0.0); 52 52 return documentAnimation->m_defaultTimeline.get(); 53 53 } … … 69 69 } 70 70 71 WebAnimationVector DocumentAnimation::getAnimations(std::function<bool(const AnimationEffect&)> effect_test) const 72 { 73 WebAnimationVector animations; 74 75 auto sortBasedOnPriority = [](const RefPtr<WebAnimation>& a, const RefPtr<WebAnimation>& b) 76 { 77 // FIXME: Sort using the composite order as described in the spec. 78 UNUSED_PARAM(a); 79 UNUSED_PARAM(b); 80 return true; 81 }; 82 83 for (auto& animation : m_animations.values()) { 84 if (animation && animation->effect()) { 85 const AnimationEffect& effect = *animation->effect(); 86 if ((effect.isCurrent() || effect.isInEffect()) && effect_test(effect)) 87 animations.append(animation.get()); 88 } 89 } 90 std::sort(animations.begin(), animations.end(), sortBasedOnPriority); 91 92 return animations; 93 } 94 95 void DocumentAnimation::addAnimation(WebAnimation& animation) 96 { 97 ASSERT(!m_animations.contains(&animation)); 98 m_animations.add(&animation, animation.createWeakPtr()); 99 } 100 101 void DocumentAnimation::removeAnimation(WebAnimation& animation) 102 { 103 m_animations.remove(&animation); 104 } 105 106 WebAnimationVector DocumentAnimation::getAnimations(Document& document) 107 { 108 return DocumentAnimation::from(&document)->getAnimations(); 109 } 110 71 111 } // namespace WebCore 72 112 -
trunk/Source/WebCore/animation/DocumentAnimation.h
r197058 r201810 27 27 */ 28 28 29 #ifndef DocumentAnimation_h 30 #define DocumentAnimation_h 29 #pragma once 31 30 32 31 #if ENABLE(WEB_ANIMATIONS) 33 32 33 #include "AnimationEffect.h" 34 34 #include "Supplementable.h" 35 #include "WebAnimation.h" 36 #include <wtf/HashMap.h> 37 #include <wtf/WeakPtr.h> 35 38 36 39 namespace WebCore { … … 46 49 static DocumentAnimation* from(Document*); 47 50 static DocumentTimeline* timeline(Document&); 51 static WebAnimationVector getAnimations(Document&); 52 53 WebAnimationVector getAnimations(std::function<bool(const AnimationEffect&)> = [](const AnimationEffect&) { return true; }) const; 54 55 void addAnimation(WebAnimation&); 56 void removeAnimation(WebAnimation&); 48 57 49 58 private: … … 51 60 52 61 RefPtr<DocumentTimeline> m_defaultTimeline; 62 63 HashMap<WebAnimation*, WeakPtr<WebAnimation>> m_animations; 53 64 }; 54 65 … … 56 67 57 68 #endif // ENABLE(WEB_ANIMATIONS) 58 59 #endif // DocumentAnimation_h -
trunk/Source/WebCore/animation/DocumentAnimation.idl
r197058 r201810 28 28 29 29 [ 30 EnabledAtRuntime=WebAnimations,31 30 Conditional=WEB_ANIMATIONS 32 31 ] partial interface Document { 33 32 #if !defined(LANGUAGE_OBJECTIVE_C) || !LANGUAGE_OBJECTIVE_C 34 33 readonly attribute DocumentTimeline timeline; 34 sequence<WebAnimation> getAnimations(); 35 35 #endif 36 36 }; -
trunk/Source/WebCore/animation/DocumentTimeline.cpp
r200789 r201810 32 32 #if ENABLE(WEB_ANIMATIONS) 33 33 34 #include "Document.h" 35 #include "DocumentAnimation.h" 36 #include "WebAnimation.h" 37 34 38 namespace WebCore { 35 39 36 Ref<DocumentTimeline> DocumentTimeline::create( double originTime)40 Ref<DocumentTimeline> DocumentTimeline::create(Document& context, double originTime) 37 41 { 38 return adoptRef(*new DocumentTimeline( originTime));42 return adoptRef(*new DocumentTimeline(context, originTime)); 39 43 } 40 44 41 DocumentTimeline::DocumentTimeline( double originTime)45 DocumentTimeline::DocumentTimeline(Document& context, double originTime) 42 46 : AnimationTimeline(DocumentTimelineClass) 47 , m_document(context.createWeakPtr()) 43 48 , m_originTime(originTime) 44 49 { … … 50 55 } 51 56 57 void DocumentTimeline::attach(WebAnimation& animation) 58 { 59 ASSERT(animation.timeline() == this); 60 ASSERT(m_document); 61 62 if (!m_document) 63 return; 64 65 auto* document = DocumentAnimation::from(m_document.get()); 66 if (document) 67 document->addAnimation(animation); 68 } 69 70 void DocumentTimeline::detach(WebAnimation& animation) 71 { 72 ASSERT(m_document); 73 74 if (!m_document) 75 return; 76 77 auto* document = DocumentAnimation::from(m_document.get()); 78 if (document) 79 document->removeAnimation(animation); 80 } 81 52 82 } // namespace WebCore 53 83 -
trunk/Source/WebCore/animation/DocumentTimeline.h
r200789 r201810 27 27 */ 28 28 29 #ifndef DocumentTimeline_h 30 #define DocumentTimeline_h 29 #pragma once 31 30 32 31 #if ENABLE(WEB_ANIMATIONS) 33 32 34 33 #include "AnimationTimeline.h" 34 #include <wtf/WeakPtr.h> 35 35 36 36 namespace WebCore { 37 37 38 class Document; 39 38 40 class DocumentTimeline final : public AnimationTimeline { 39 41 public: 40 static Ref<DocumentTimeline> create( double);42 static Ref<DocumentTimeline> create(Document&, double); 41 43 ~DocumentTimeline(); 42 44 45 void attach(WebAnimation&); 46 void detach(WebAnimation&); 47 43 48 protected: 44 DocumentTimeline( double);49 DocumentTimeline(Document&, double); 45 50 46 51 private: 52 WeakPtr<Document> m_document; 47 53 double m_originTime; 48 54 }; … … 53 59 54 60 #endif // ENABLE(WEB_ANIMATIONS) 55 56 #endif // DocumentTimeline_h -
trunk/Source/WebCore/animation/DocumentTimeline.idl
r197058 r201810 28 28 29 29 [ 30 EnabledAtRuntime=WebAnimations,31 30 Conditional=WEB_ANIMATIONS, 32 31 ImplementationLacksVTable, 33 // FIX: Should be DOMHighResTimeStamp rather than double (e.g. see Performance.now()). 34 Constructor(double originTime) 32 // FIXME: Should be DOMHighResTimeStamp rather than double (e.g. see Performance.now()). 33 Constructor(double originTime), 34 ConstructorCallWith=Document 35 35 ] interface DocumentTimeline : AnimationTimeline { 36 36 }; -
trunk/Source/WebCore/animation/KeyframeEffect.cpp
r201809 r201810 28 28 29 29 #include "config.h" 30 #include " DocumentTimeline.h"30 #include "KeyframeEffect.h" 31 31 32 32 #if ENABLE(WEB_ANIMATIONS) 33 33 34 #include "Element.h" 35 #include <wtf/Ref.h> 36 34 37 namespace WebCore { 35 38 36 Ref <DocumentTimeline> DocumentTimeline::create(double originTime)39 RefPtr<KeyframeEffect> KeyframeEffect::create(Element* target) 37 40 { 38 return adoptRef(*new DocumentTimeline(originTime)); 41 if (!target) { 42 // FIXME: Support null animation target. 43 return nullptr; 44 } 45 46 return adoptRef(new KeyframeEffect(target)); 39 47 } 40 48 41 DocumentTimeline::DocumentTimeline(double originTime) 42 : AnimationTimeline(DocumentTimelineClass) 43 , m_originTime(originTime) 49 KeyframeEffect::KeyframeEffect(Element* target) 50 : m_target(target) 44 51 { 45 UNUSED_PARAM(m_originTime);46 52 } 47 53 48 DocumentTimeline::~DocumentTimeline()54 KeyframeEffect::~KeyframeEffect() 49 55 { 50 56 } -
trunk/Source/WebCore/animation/KeyframeEffect.h
r201809 r201810 27 27 */ 28 28 29 #ifndef DocumentTimeline_h 30 #define DocumentTimeline_h 29 #pragma once 31 30 32 31 #if ENABLE(WEB_ANIMATIONS) 33 32 34 #include "Animation Timeline.h"33 #include "AnimationEffect.h" 35 34 36 35 namespace WebCore { 37 36 38 class DocumentTimeline final : public AnimationTimeline { 37 class Element; 38 39 class KeyframeEffect final : public AnimationEffect { 39 40 public: 40 static Ref <DocumentTimeline> create(double);41 ~ DocumentTimeline();41 static RefPtr<KeyframeEffect> create(Element*); 42 ~KeyframeEffect() override; 42 43 43 protected: 44 DocumentTimeline(double); 45 44 Element* target() const { return m_target.get(); } 45 46 46 private: 47 double m_originTime; 47 KeyframeEffect(Element*); 48 49 // FIXME: Ensure that there is no cyclic reference from Element to KeyframeEffect. 50 RefPtr<Element> m_target; 48 51 }; 49 52 50 53 } // namespace WebCore 51 54 52 SPECIALIZE_TYPE_TRAITS_ANIMATION_TIMELINE(DocumentTimeline, isDocumentTimeline())53 54 55 #endif // ENABLE(WEB_ANIMATIONS) 55 56 #endif // DocumentTimeline_h -
trunk/Source/WebCore/animation/KeyframeEffect.idl
r201809 r201810 28 28 29 29 [ 30 EnabledAtRuntime=WebAnimations,31 30 Conditional=WEB_ANIMATIONS, 32 CustomToJSObject,33 ObjCPolymorphic,34 ImplementationLacksVTable35 ] interface AnimationTimeline{36 // FIX: Only a stubat the moment.31 // FIX: Constructor stub only at the moment (should accept PseudoElement target, frames and options). 32 Constructor([Default=Undefined] Element? target) 33 // FIX: Add interface for and inherit from KeyframeEffectReadOnly. 34 ] interface KeyframeEffect : AnimationEffect { 35 // FIX: Stub only at the moment. 37 36 }; 38 -
trunk/Source/WebCore/animation/WebAnimation.cpp
r201809 r201810 28 28 29 29 #include "config.h" 30 #include " DocumentAnimation.h"30 #include "WebAnimation.h" 31 31 32 32 #if ENABLE(WEB_ANIMATIONS) 33 33 34 #include " Document.h"34 #include "AnimationEffect.h" 35 35 #include "DocumentTimeline.h" 36 #include <wtf/Ref.h> 36 37 37 38 namespace WebCore { 38 39 39 DocumentAnimation::DocumentAnimation()40 RefPtr<WebAnimation> WebAnimation::create(AnimationEffect* effect, AnimationTimeline* timeline) 40 41 { 42 if (!effect) { 43 // FIXME: Support creating animations with null effect. 44 return nullptr; 45 } 46 47 if (!timeline) { 48 // FIXME: Support creating animations without a timeline. 49 return nullptr; 50 } 51 52 if (!timeline->isDocumentTimeline()) { 53 // FIXME: Currently only support DocumentTimeline. 54 return nullptr; 55 } 56 57 return adoptRef(new WebAnimation(effect, timeline)); 41 58 } 42 59 43 DocumentAnimation::~DocumentAnimation() 60 WebAnimation::WebAnimation(AnimationEffect* effect, AnimationTimeline* timeline) 61 : m_effect(effect) 62 , m_timeline(timeline) 63 , m_weakPtrFactory(this) 44 64 { 65 if (m_effect) 66 m_effect->setAnimation(this); 67 68 if (m_timeline) 69 m_timeline->attachAnimation(*this); 45 70 } 46 71 47 DocumentTimeline* DocumentAnimation::timeline(Document& document)72 WebAnimation::~WebAnimation() 48 73 { 49 auto* documentAnimation = DocumentAnimation::from(&document); 50 if (!documentAnimation->m_defaultTimeline) 51 documentAnimation->m_defaultTimeline = DocumentTimeline::create(0.0); 52 return documentAnimation->m_defaultTimeline.get(); 53 } 74 if (m_effect) 75 m_effect->setAnimation(nullptr); 54 76 55 const char* DocumentAnimation::supplementName() 56 { 57 return "DocumentAnimation"; 58 } 59 60 DocumentAnimation* DocumentAnimation::from(Document* document) 61 { 62 DocumentAnimation* supplement = static_cast<DocumentAnimation*>(Supplement<Document>::from(document, supplementName())); 63 if (!supplement) { 64 auto newSupplement = std::make_unique<DocumentAnimation>(); 65 supplement = newSupplement.get(); 66 provideTo(document, supplementName(), WTFMove(newSupplement)); 67 } 68 return supplement; 77 if (m_timeline) 78 m_timeline->detachAnimation(*this); 69 79 } 70 80 -
trunk/Source/WebCore/animation/WebAnimation.h
r201809 r201810 27 27 */ 28 28 29 #ifndef DocumentAnimation_h 30 #define DocumentAnimation_h 29 #pragma once 31 30 32 31 #if ENABLE(WEB_ANIMATIONS) 33 32 34 #include "Supplementable.h" 33 #include <wtf/RefCounted.h> 34 #include <wtf/RefPtr.h> 35 #include <wtf/Vector.h> 36 #include <wtf/WeakPtr.h> 35 37 36 38 namespace WebCore { 37 39 38 class DocumentTimeline;39 class Document;40 class AnimationEffect; 41 class AnimationTimeline; 40 42 41 class DocumentAnimation : public Supplement<Document> {43 class WebAnimation final : public RefCounted<WebAnimation> { 42 44 public: 43 DocumentAnimation();44 virtual ~DocumentAnimation();45 static RefPtr<WebAnimation> create(AnimationEffect*, AnimationTimeline*); 46 ~WebAnimation(); 45 47 46 static DocumentAnimation* from(Document*); 47 static DocumentTimeline* timeline(Document&); 48 AnimationEffect* effect() const { return m_effect.get(); } 49 AnimationTimeline* timeline() const { return m_timeline.get(); } 50 51 WeakPtr<WebAnimation> createWeakPtr() const { return m_weakPtrFactory.createWeakPtr(); } 48 52 49 53 private: 50 static const char* supplementName();54 WebAnimation(AnimationEffect*, AnimationTimeline*); 51 55 52 RefPtr<DocumentTimeline> m_defaultTimeline; 56 RefPtr<AnimationEffect> m_effect; 57 RefPtr<AnimationTimeline> m_timeline; 58 WeakPtrFactory<WebAnimation> m_weakPtrFactory; 53 59 }; 60 61 typedef Vector<WebAnimation *> WebAnimationVector; 54 62 55 63 } // namespace WebCore 56 64 57 65 #endif // ENABLE(WEB_ANIMATIONS) 58 59 #endif // DocumentAnimation_h -
trunk/Source/WebCore/animation/WebAnimation.idl
r201809 r201810 28 28 29 29 [ 30 EnabledAtRuntime=WebAnimations,31 30 Conditional=WEB_ANIMATIONS, 31 InterfaceName=Animation, 32 32 ImplementationLacksVTable, 33 // FIX: Should be DOMHighResTimeStamp rather than double (e.g. see Performance.now()). 34 Constructor(double originTime) 35 ] interface DocumentTimeline : AnimationTimeline { 33 Constructor([Default=Undefined] AnimationEffect? effect, [Default=Undefined] AnimationTimeline? timeline) 34 ] interface WebAnimation { // FIXME: Inherit from EventTarget. 35 // FIXME: Incomplete interface. 36 readonly attribute AnimationEffect? effect; 37 readonly attribute AnimationTimeline? timeline; 36 38 }; -
trunk/Source/WebCore/bindings/scripts/CodeGeneratorGObject.pm
r200365 r201810 48 48 "Counter" => 1, "Rect" => 1, "RGBColor" => 1, "XPathExpression" => 1, "XPathResult" => 1, 49 49 "NodeIterator" => 1, "TreeWalker" => 1, "AbstractView" => 1, "Blob" => 1, "DOMTokenList" => 1, 50 "HTMLCollection" => 1, "TextTrackCue" => 1, "AnimationTimeline" => 1 );50 "HTMLCollection" => 1, "TextTrackCue" => 1, "AnimationTimeline" => 1, "AnimationEffect" => 1); 51 51 52 52 # Only objects derived from Node are released by the DOM object cache and can be … … 64 64 "File" => 1, "FileList" => 1, "Gamepad" => 1, "GamepadList" => 1, 65 65 "Geolocation" => 1, "HTMLOptionsCollection" => 1, "History" => 1, 66 "KeyboardEvent" => 1, " MediaError" => 1, "MediaController" => 1,66 "KeyboardEvent" => 1, "KeyframeEffect" => 1, "MediaError" => 1, "MediaController" => 1, 67 67 "MouseEvent" => 1, "MediaQueryList" => 1, "Navigator" => 1, "NodeFilter" => 1, 68 68 "Performance" => 1, "PerformanceEntry" => 1, "PerformanceEntryList" => 1, "PerformanceNavigation" => 1, "PerformanceTiming" => 1, -
trunk/Source/WebCore/dom/Element.cpp
r201739 r201810 41 41 #include "DOMTokenList.h" 42 42 #include "Dictionary.h" 43 #include "DocumentAnimation.h" 43 44 #include "DocumentSharedObjectPool.h" 44 45 #include "ElementIterator.h" … … 67 68 #include "JSLazyEventListener.h" 68 69 #include "KeyboardEvent.h" 70 #include "KeyframeEffect.h" 69 71 #include "LifecycleCallbackQueue.h" 70 72 #include "MainFrame.h" … … 1383 1385 } 1384 1386 1387 #if ENABLE(WEB_ANIMATIONS) 1388 WebAnimationVector Element::getAnimations() 1389 { 1390 auto checkTarget = [this](AnimationEffect const& effect) 1391 { 1392 return (static_cast<KeyframeEffect const&>(effect).target() == this); 1393 }; 1394 1395 auto* document = DocumentAnimation::from(&this->document()); 1396 if (document) 1397 return document->getAnimations(checkTarget); 1398 return WebAnimationVector(); 1399 } 1400 #endif 1401 1385 1402 bool Element::hasDisplayContents() const 1386 1403 { -
trunk/Source/WebCore/dom/Element.h
r201739 r201810 53 53 class RenderNamedFlowFragment; 54 54 class RenderTreePosition; 55 class WebAnimation; 55 56 struct ElementStyle; 56 57 … … 517 518 void setAttributeEventListener(const AtomicString& eventType, const QualifiedName& attributeName, const AtomicString& value); 518 519 520 #if ENABLE(WEB_ANIMATIONS) 521 Vector<WebAnimation*> getAnimations(); 522 #endif 523 519 524 protected: 520 525 Element(const QualifiedName&, Document&, ConstructionType); -
trunk/Source/WebCore/dom/Element.idl
r200934 r201810 241 241 }; 242 242 243 Element implements Animatable; 243 244 Element implements ChildNode; 244 245 Element implements ParentNode; -
trunk/Source/WebKit/mac/ChangeLog
r201763 r201810 1 2016-06-08 Rawinder Singh <rawinder.singh-webkit@cisra.canon.com.au> 2 3 [web-animations] Add Animatable, AnimationEffect, KeyframeEffect and Animation interface 4 https://bugs.webkit.org/show_bug.cgi?id=156096 5 6 Reviewed by Dean Jackson. 7 8 Adds: 9 - Setup interface for enabling runtime flag for Web animations through preferences. 10 11 * WebView/WebPreferenceKeysPrivate.h: 12 * WebView/WebPreferences.mm: 13 (+[WebPreferences initialize]): 14 (-[WebPreferences webAnimationsEnabled]): 15 (-[WebPreferences setWebAnimationsEnabled:]): 16 * WebView/WebPreferencesPrivate.h: 17 * WebView/WebView.mm: 18 (-[WebView _preferencesChanged:]): 19 1 20 2016-06-07 David Kilzer <ddkilzer@apple.com> 2 21 -
trunk/Source/WebKit/mac/WebView/WebPreferenceKeysPrivate.h
r201187 r201810 53 53 #define WebKitJavaScriptEnabledPreferenceKey @"WebKitJavaScriptEnabled" 54 54 #define WebKitJavaScriptMarkupEnabledPreferenceKey @"WebKitJavaScriptMarkupEnabled" 55 #define WebKitWebAnimationsEnabledPreferenceKey @"WebKitWebAnimationsEnabled" 55 56 #define WebKitWebSecurityEnabledPreferenceKey @"WebKitWebSecurityEnabled" 56 57 #define WebKitAllowUniversalAccessFromFileURLsPreferenceKey @"WebKitAllowUniversalAccessFromFileURLs" -
trunk/Source/WebKit/mac/WebView/WebPreferences.mm
r201187 r201810 625 625 [NSNumber numberWithBool:YES], WebKitCSSGridLayoutEnabledPreferenceKey, 626 626 #endif 627 #if ENABLE(WEB_ANIMATIONS) 628 [NSNumber numberWithBool:NO], WebKitWebAnimationsEnabledPreferenceKey, 629 #endif 627 630 nil]; 628 631 … … 2755 2758 } 2756 2759 2760 - (BOOL)webAnimationsEnabled 2761 { 2762 return [self _boolValueForKey:WebKitWebAnimationsEnabledPreferenceKey]; 2763 } 2764 2765 - (void)setWebAnimationsEnabled:(BOOL)flag 2766 { 2767 [self _setBoolValue:flag forKey:WebKitWebAnimationsEnabledPreferenceKey]; 2768 } 2769 2757 2770 @end 2758 2771 -
trunk/Source/WebKit/mac/WebView/WebPreferencesPrivate.h
r201542 r201810 491 491 - (BOOL)isCSSGridLayoutEnabled; 492 492 493 - (void)setWebAnimationsEnabled:(BOOL)flag; 494 - (BOOL)webAnimationsEnabled; 495 493 496 @property (nonatomic) BOOL javaScriptMarkupEnabled; 494 497 @property (nonatomic) BOOL mediaDataLoadsAutomatically; -
trunk/Source/WebKit/mac/WebView/WebView.mm
r201360 r201810 2513 2513 #endif 2514 2514 2515 #if ENABLE(WEB_ANIMATIONS) 2516 RuntimeEnabledFeatures::sharedFeatures().setWebAnimationsEnabled([preferences webAnimationsEnabled]); 2517 #endif 2518 2515 2519 NSTimeInterval timeout = [preferences incrementalRenderingSuppressionTimeoutInSeconds]; 2516 2520 if (timeout > 0)
Note: See TracChangeset
for help on using the changeset viewer.