Changeset 156522 in webkit
- Timestamp:
- Sep 26, 2013, 6:08:17 PM (12 years ago)
- Location:
- trunk
- Files:
-
- 4 added
- 29 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r156519 r156522 1 2013-09-26 Alexey Proskuryakov <ap@apple.com> 2 3 Layout Test http/tests/inspector/network/network-iframe-load-and-delete.html is flaky 4 https://bugs.webkit.org/show_bug.cgi?id=121998 5 6 * platform/mac/TestExpectations: Marking as such. 7 8 2013-09-25 Oliver Hunt <oliver@apple.com> 9 10 Implement prefixed-destructuring assignment 11 https://bugs.webkit.org/show_bug.cgi?id=121930 12 13 Reviewed by Mark Hahnenberg. 14 15 Relanding with fix after rollout 16 17 2013-09-26 Alexey Proskuryakov <ap@apple.com> 18 19 Flaky Test: transitions/cancel-transition.html 20 https://bugs.webkit.org/show_bug.cgi?id=114193 21 22 * platform/mac/TestExpectations: Marking as flaky. Dean says that such tests are 23 currently broken by design. 24 25 2013-09-26 Dean Jackson <dino@apple.com> 26 27 Expose a setting to disable hardware accelerated animations 28 https://bugs.webkit.org/show_bug.cgi?id=121978 29 <rdar://problem/15091284> 30 31 Reviewed by Eric Carlson. 32 33 * animations/resources/animation-test-helpers.js: Add a callback 34 for when the tests finish. Minor cleanup. 35 (endTest): 36 (.else): 37 (runAnimationTest): 38 * animations/transform-non-accelerated.html: New test. 39 * animations/transform-non-accelerated-expected.txt: Result. 40 41 2013-09-26 Commit Queue <commit-queue@webkit.org> 42 43 Unreviewed, rolling out r156464 and r156480. 44 http://trac.webkit.org/changeset/156464 45 http://trac.webkit.org/changeset/156480 46 https://bugs.webkit.org/show_bug.cgi?id=121981 47 48 Leaking too much and killi 49 ng buildbot. (Requested by xenon on 50 #webkit). 51 52 * js/destructuring-assignment-expected.txt: Removed. 53 * js/destructuring-assignment.html: Removed. 54 * js/mozilla/strict/13.1-expected.txt: 55 * js/mozilla/strict/regress-532254-expected.txt: 56 * js/mozilla/strict/script-tests/13.1.js: 57 * js/regress/destructuring-arguments-expected.txt: Removed. 58 * js/regress/destructuring-arguments-length-expected.txt: Removed. 59 * js/regress/destructuring-arguments-length.html: Removed. 60 * js/regress/destructuring-arguments.html: Removed. 61 * js/regress/destructuring-swap-expected.txt: Removed. 62 * js/regress/destructuring-swap.html: Removed. 63 * js/regress/script-tests/destructuring-arguments-length.js: Removed. 64 * js/regress/script-tests/destructuring-arguments.js: Removed. 65 * js/regress/script-tests/destructuring-swap.js: Removed. 66 * js/script-tests/destructuring-assignment.js: Removed. 67 * sputnik/Conformance/13_Function_Definition/S13_A5.html: 1 2013-09-26 Eric Carlson <eric.carlson@apple.com> 2 3 [MediaStream] make MediaStream testable 4 https://bugs.webkit.org/show_bug.cgi?id=121967 5 6 Reviewed by Dean Jackson. 7 8 * fast/mediastream/MediaStream-add-remove-tracks-expected.txt: 9 * fast/mediastream/MediaStream-add-remove-tracks.html: Make the test results more understandable 10 to simplify debugging failures. 11 * fast/mediastream/MediaStream-onended-expected.txt: 12 * fast/mediastream/MediaStream-onended.html: Ditto. Fix a test error: stopping stream A should 13 not stop stream B even when it was created from stream A. 14 * fast/mediastream/MediaStreamConstructor-expected.txt: 15 * fast/mediastream/MediaStreamConstructor.html: Make the test results more understandable. Fix a 16 logic errors: webkitMediaStream is an object, not a function. JSC does not support 17 object.constructor.name, use object.constructor.toString() instead. 18 * fast/mediastream/MediaStreamTrackEvent-constructor-expected.txt: 19 * fast/mediastream/MediaStreamTrackEvent-constructor.html: Update now that getUserMedia() works. 20 * fast/mediastream/argument-types-expected.txt: Updated with "Failing" results because the correct 21 behavior is unknown. The spec says "the syntax for getUserMedia() is still under discussion". 68 22 69 23 2013-09-26 Alexey Proskuryakov <ap@apple.com> -
trunk/LayoutTests/fast/mediastream/MediaStream-add-remove-tracks-expected.txt
r146046 r156522 8 8 PASS stream2.getAudioTracks().length is 1 9 9 PASS stream2.getVideoTracks().length is 1 10 11 *** remove an audio track 10 12 PASS stream1.getAudioTracks().length is 0 11 13 PASS stream1.getTrackById(audioTrack.id) is null 14 15 *** remove a non-existent (already removed) track (should not throw) 16 17 *** add the track back to the stream 18 19 *** remove a video track 12 20 PASS stream1.getVideoTracks().length is 0 13 21 PASS stream1.getTrackById(videoTrack.id) is null 22 23 *** remove a non-existent (already removed) track (should not throw) 24 25 *** add the track back to the stream 26 27 *** verify added tracks 14 28 PASS stream1.getAudioTracks().length is 1 15 29 PASS stream1.getVideoTracks().length is 1 … … 18 32 PASS stream1.getVideoTracks()[0].kind is videoTrack.kind 19 33 PASS stream1.getVideoTracks()[0].label is videoTrack.label 34 35 *** try adding a stream's own tracks again (nothing should happen) 20 36 PASS stream1.getAudioTracks().length is 1 21 37 PASS stream1.getVideoTracks().length is 1 38 39 *** add tracks from another stream 40 41 *** verify added tracks 22 42 PASS stream1.getAudioTracks().length is 2 23 43 PASS stream1.getVideoTracks().length is 2 44 45 *** after all tracks have been removed, stream.ended should return true 24 46 PASS stream2.ended is true 47 48 *** it should be impossible to add a track after the stream has been stopped 25 49 PASS stream1.addTrack(audioTrack) threw exception Error: InvalidStateError: DOM Exception 11. 26 50 PASS stream1.removeTrack(audioTrack) threw exception Error: InvalidStateError: DOM Exception 11. -
trunk/LayoutTests/fast/mediastream/MediaStream-add-remove-tracks.html
r155410 r156522 63 63 stream1.onremovetrack = shouldNotFire; 64 64 65 // remove a track of each kind66 65 audioTrack = stream1.getAudioTracks()[0]; 67 66 videoTrack = stream1.getVideoTracks()[0]; 68 67 68 debug("<br>*** remove an audio track"); 69 69 tryRemoveTrack(stream1, audioTrack); 70 // verify removed tracks71 70 shouldBe('stream1.getAudioTracks().length', '0'); 72 71 shouldBeNull('stream1.getTrackById(audioTrack.id)'); 73 // remove a non-existent (already removed) track (should not throw) 72 73 debug("<br>*** remove a non-existent (already removed) track (should not throw)"); 74 74 tryRemoveTrack(stream1, audioTrack); 75 // (re-)add tracks 75 76 debug("<br>*** add the track back to the stream"); 76 77 tryAddTrack(stream1, audioTrack); 77 78 79 debug("<br>*** remove a video track"); 78 80 tryRemoveTrack(stream1, videoTrack); 79 81 shouldBe('stream1.getVideoTracks().length', '0'); 80 82 shouldBeNull('stream1.getTrackById(videoTrack.id)'); 83 84 debug("<br>*** remove a non-existent (already removed) track (should not throw)"); 81 85 tryRemoveTrack(stream1, videoTrack); 86 87 debug("<br>*** add the track back to the stream"); 82 88 tryAddTrack(stream1, videoTrack); 83 89 84 // verify added tracks90 debug("<br>*** verify added tracks"); 85 91 shouldBe('stream1.getAudioTracks().length', '1'); 86 92 shouldBe('stream1.getVideoTracks().length', '1'); 87 88 // verify that kind and label is preserved89 93 shouldBe('stream1.getAudioTracks()[0].kind', 'audioTrack.kind'); 90 94 shouldBe('stream1.getAudioTracks()[0].label', 'audioTrack.label'); … … 92 96 shouldBe('stream1.getVideoTracks()[0].label', 'videoTrack.label'); 93 97 94 // try adding stream1's own tracks98 debug("<br>*** try adding a stream's own tracks again (nothing should happen)"); 95 99 tryAddTrack(stream1, stream1.getAudioTracks()[0]); 96 100 tryAddTrack(stream1, stream1.getVideoTracks()[0]); 97 98 // verify that nothing has changed99 101 shouldBe('stream1.getAudioTracks().length', '1'); 100 102 shouldBe('stream1.getVideoTracks().length', '1'); 101 103 102 // add new tracks (from stream2)104 debug("<br>*** add tracks from another stream"); 103 105 tryAddTrack(stream1, stream2.getAudioTracks()[0]); 104 106 tryAddTrack(stream1, stream2.getVideoTracks()[0]); 105 107 106 // verify added tracks108 debug("<br>*** verify added tracks"); 107 109 shouldBe('stream1.getAudioTracks().length', '2'); 108 110 shouldBe('stream1.getVideoTracks().length', '2'); 109 111 110 // when all tracks have been removed, stream.ended should return true.112 debug("<br>*** after all tracks have been removed, stream.ended should return true"); 111 113 tryRemoveTrack(stream2, stream2.getAudioTracks()[0]); 112 114 tryRemoveTrack(stream2, stream2.getVideoTracks()[0]); … … 115 117 stream1.stop(); 116 118 119 debug("<br>*** it should be impossible to add a track after the stream has been stopped"); 117 120 shouldThrow('stream1.addTrack(audioTrack)', '"Error: InvalidStateError: DOM Exception 11"'); 118 121 shouldThrow('stream1.removeTrack(audioTrack)', '"Error: InvalidStateError: DOM Exception 11"'); -
trunk/LayoutTests/fast/mediastream/MediaStream-onended-expected.txt
r155573 r156522 4 4 5 5 6 7 PASS gotStream was called. 6 8 PASS stream.ended is false 9 7 10 PASS streamEnded was called. 8 11 PASS stream.ended is true 12 13 PASS gotStream2 was called. 9 14 PASS stream.ended is false 10 PASS streamEnded was called. 15 16 PASS streamEnded2 was called. 11 17 PASS stream.ended is true 12 18 PASS successfullyParsed is true -
trunk/LayoutTests/fast/mediastream/MediaStream-onended.html
r155573 r156522 27 27 28 28 function streamEnded2() { 29 testPassed('streamEnded was called.'); 29 debug(""); 30 testPassed('streamEnded2 was called.'); 30 31 shouldBeTrue('stream.ended'); 31 32 finishJSTest(); … … 33 34 34 35 function gotStream2(s) { 36 debug(""); 37 testPassed('gotStream2 was called.'); 35 38 stream = new webkitMediaStream(s); 36 39 shouldBeFalse('stream.ended'); 37 40 try { 38 41 stream.onended = streamEnded2; 39 s .stop();42 stream.stop(); 40 43 } catch (e) { 41 44 testFailed('MediaStream threw exception :' + e); … … 45 48 46 49 function streamEnded() { 50 debug(""); 47 51 testPassed('streamEnded was called.'); 48 52 shouldBeTrue('stream.ended'); … … 52 56 53 57 function gotStream(s) { 58 debug(""); 59 testPassed('gotStream was called.'); 54 60 stream = s; 55 61 shouldBeFalse('stream.ended'); -
trunk/LayoutTests/fast/mediastream/MediaStreamConstructor-expected.txt
r155199 r156522 7 7 PASS localStream.getAudioTracks().length is 1 8 8 PASS localStream.getVideoTracks().length is 1 9 PASS typeof webkitMediaStream === ' function' is true9 PASS typeof webkitMediaStream === 'object' is true 10 10 PASS checkIdAttribute(localStream.id) is true 11 11 PASS new webkitMediaStream(document) threw exception TypeError: Type error. … … 16 16 PASS new webkitMediaStream(null) threw exception TypeError: Type error. 17 17 PASS new webkitMediaStream(undefined) threw exception TypeError: Type error. 18 19 *** testing "new webkitMediaStream()" 18 20 PASS Stream constructed 19 PASS [object MediaStream] is non-null.20 PASS [object MediaStream] is defined.21 PASS newStream.constructor. name is 'MediaStream'21 PASS [object webkitMediaStream] is non-null. 22 PASS [object webkitMediaStream] is defined. 23 PASS newStream.constructor.toString() is '[object webkitMediaStreamConstructor]' 22 24 PASS newStream.getAudioTracks().length is nAudio 23 25 PASS newStream.getVideoTracks().length is nVideo 24 26 PASS checkIdAttribute(newStream.id) is true 27 28 *** testing "new webkitMediaStream([])" 25 29 PASS Stream constructed 26 PASS [object MediaStream] is non-null.27 PASS [object MediaStream] is defined.28 PASS newStream.constructor. name is 'MediaStream'30 PASS [object webkitMediaStream] is non-null. 31 PASS [object webkitMediaStream] is defined. 32 PASS newStream.constructor.toString() is '[object webkitMediaStreamConstructor]' 29 33 PASS newStream.getAudioTracks().length is nAudio 30 34 PASS newStream.getVideoTracks().length is nVideo 31 35 PASS checkIdAttribute(newStream.id) is true 36 37 *** testing "new webkitMediaStream(stream)" 32 38 PASS Stream constructed 33 PASS [object MediaStream] is non-null.34 PASS [object MediaStream] is defined.35 PASS newStream.constructor. name is 'MediaStream'39 PASS [object webkitMediaStream] is non-null. 40 PASS [object webkitMediaStream] is defined. 41 PASS newStream.constructor.toString() is '[object webkitMediaStreamConstructor]' 36 42 PASS newStream.getAudioTracks().length is nAudio 37 43 PASS newStream.getVideoTracks().length is nVideo 38 44 PASS checkIdAttribute(newStream.id) is true 45 46 *** testing "new webkitMediaStream([stream.getAudioTracks()[0]])" 39 47 PASS Stream constructed 40 PASS [object MediaStream] is non-null.41 PASS [object MediaStream] is defined.42 PASS newStream.constructor. name is 'MediaStream'48 PASS [object webkitMediaStream] is non-null. 49 PASS [object webkitMediaStream] is defined. 50 PASS newStream.constructor.toString() is '[object webkitMediaStreamConstructor]' 43 51 PASS newStream.getAudioTracks().length is nAudio 44 52 PASS newStream.getVideoTracks().length is nVideo 45 53 PASS checkIdAttribute(newStream.id) is true 54 55 *** testing "new webkitMediaStream([stream.getVideoTracks()[0]])" 46 56 PASS Stream constructed 47 PASS [object MediaStream] is non-null.48 PASS [object MediaStream] is defined.49 PASS newStream.constructor. name is 'MediaStream'57 PASS [object webkitMediaStream] is non-null. 58 PASS [object webkitMediaStream] is defined. 59 PASS newStream.constructor.toString() is '[object webkitMediaStreamConstructor]' 50 60 PASS newStream.getAudioTracks().length is nAudio 51 61 PASS newStream.getVideoTracks().length is nVideo 52 62 PASS checkIdAttribute(newStream.id) is true 63 64 *** testing "new webkitMediaStream([stream.getAudioTracks()[0], stream.getVideoTracks()[0]])" 53 65 PASS Stream constructed 54 PASS [object MediaStream] is non-null.55 PASS [object MediaStream] is defined.56 PASS newStream.constructor. name is 'MediaStream'66 PASS [object webkitMediaStream] is non-null. 67 PASS [object webkitMediaStream] is defined. 68 PASS newStream.constructor.toString() is '[object webkitMediaStreamConstructor]' 57 69 PASS newStream.getAudioTracks().length is nAudio 58 70 PASS newStream.getVideoTracks().length is nVideo 59 71 PASS checkIdAttribute(newStream.id) is true 72 73 *** testing "new webkitMediaStream([stream.getVideoTracks()[0], stream.getAudioTracks()[0], stream.getVideoTracks()[0]])" 60 74 PASS Stream constructed 61 PASS [object MediaStream] is non-null.62 PASS [object MediaStream] is defined.63 PASS newStream.constructor. name is 'MediaStream'75 PASS [object webkitMediaStream] is non-null. 76 PASS [object webkitMediaStream] is defined. 77 PASS newStream.constructor.toString() is '[object webkitMediaStreamConstructor]' 64 78 PASS newStream.getAudioTracks().length is nAudio 65 79 PASS newStream.getVideoTracks().length is nVideo 66 80 PASS checkIdAttribute(newStream.id) is true 81 82 Creating a new stream from a stream that has stopped 83 84 *** testing "new webkitMediaStream([stream.getAudioTracks()[0]])" 67 85 PASS Stream constructed 68 PASS [object MediaStream] is non-null.69 PASS [object MediaStream] is defined.70 PASS newStream.constructor. name is 'MediaStream'86 PASS [object webkitMediaStream] is non-null. 87 PASS [object webkitMediaStream] is defined. 88 PASS newStream.constructor.toString() is '[object webkitMediaStreamConstructor]' 71 89 PASS newStream.getAudioTracks().length is nAudio 72 90 PASS newStream.getVideoTracks().length is nVideo 73 91 PASS checkIdAttribute(newStream.id) is true 92 93 *** testing "new webkitMediaStream([stream.getVideoTracks()[0]])" 74 94 PASS Stream constructed 75 PASS [object MediaStream] is non-null.76 PASS [object MediaStream] is defined.77 PASS newStream.constructor. name is 'MediaStream'95 PASS [object webkitMediaStream] is non-null. 96 PASS [object webkitMediaStream] is defined. 97 PASS newStream.constructor.toString() is '[object webkitMediaStreamConstructor]' 78 98 PASS newStream.getAudioTracks().length is nAudio 79 99 PASS newStream.getVideoTracks().length is nVideo 80 100 PASS checkIdAttribute(newStream.id) is true 101 102 *** testing "new webkitMediaStream([stream.getAudioTracks()[0], stream.getVideoTracks()[0]])" 81 103 PASS Stream constructed 82 PASS [object MediaStream] is non-null.83 PASS [object MediaStream] is defined.84 PASS newStream.constructor. name is 'MediaStream'104 PASS [object webkitMediaStream] is non-null. 105 PASS [object webkitMediaStream] is defined. 106 PASS newStream.constructor.toString() is '[object webkitMediaStreamConstructor]' 85 107 PASS newStream.getAudioTracks().length is nAudio 86 108 PASS newStream.getVideoTracks().length is nVideo 87 109 PASS checkIdAttribute(newStream.id) is true 110 111 *** testing "new webkitMediaStream(stream)" 88 112 PASS Stream constructed 89 PASS [object MediaStream] is non-null.90 PASS [object MediaStream] is defined.91 PASS newStream.constructor. name is 'MediaStream'113 PASS [object webkitMediaStream] is non-null. 114 PASS [object webkitMediaStream] is defined. 115 PASS newStream.constructor.toString() is '[object webkitMediaStreamConstructor]' 92 116 PASS newStream.getAudioTracks().length is nAudio 93 117 PASS newStream.getVideoTracks().length is nVideo -
trunk/LayoutTests/fast/mediastream/MediaStreamConstructor.html
r155410 r156522 61 61 shouldBe('localStream.getVideoTracks().length', '1'); 62 62 63 shouldBeTrue("typeof webkitMediaStream === ' function'");63 shouldBeTrue("typeof webkitMediaStream === 'object'"); 64 64 shouldBeTrue('checkIdAttribute(localStream.id)'); 65 65 testConstructor(localStream); … … 76 76 shouldThrow('new webkitMediaStream(undefined)'); 77 77 78 verifyStream( new webkitMediaStream(), 0, 0);79 verifyStream( new webkitMediaStream([]), 0, 0);78 verifyStream("new webkitMediaStream()", 0, 0); 79 verifyStream("new webkitMediaStream([])", 0, 0); 80 80 81 verifyStream( new webkitMediaStream(s), s.getAudioTracks().length, s.getVideoTracks().length);81 verifyStream("new webkitMediaStream(stream)", s.getAudioTracks().length, s.getVideoTracks().length); 82 82 83 verifyStream( new webkitMediaStream([s.getAudioTracks()[0]]), 1, 0);84 verifyStream( new webkitMediaStream([s.getVideoTracks()[0]]), 0, 1);85 verifyStream( new webkitMediaStream([s.getAudioTracks()[0], s.getVideoTracks()[0]]), 1, 1);86 verifyStream( new webkitMediaStream([s.getVideoTracks()[0], s.getAudioTracks()[0], s.getVideoTracks()[0]]), 1, 1);83 verifyStream("new webkitMediaStream([stream.getAudioTracks()[0]])", 1, 0); 84 verifyStream("new webkitMediaStream([stream.getVideoTracks()[0]])", 0, 1); 85 verifyStream("new webkitMediaStream([stream.getAudioTracks()[0], stream.getVideoTracks()[0]])", 1, 1); 86 verifyStream("new webkitMediaStream([stream.getVideoTracks()[0], stream.getAudioTracks()[0], stream.getVideoTracks()[0]])", 1, 1); 87 87 88 s.onended = function () { 89 verifyStream(new webkitMediaStream([s.getAudioTracks()[0]]), 0, 0); 90 verifyStream(new webkitMediaStream([s.getVideoTracks()[0]]), 0, 0); 91 verifyStream(new webkitMediaStream([s.getAudioTracks()[0], s.getVideoTracks()[0]]), 0, 0); 92 verifyStream(new webkitMediaStream(s), 0, 0); 88 stream.onended = function () { 89 debug("<br>Creating a new stream from a stream that has stopped"); 90 verifyStream("new webkitMediaStream([stream.getAudioTracks()[0]])", 0, 0); 91 verifyStream("new webkitMediaStream([stream.getVideoTracks()[0]])", 0, 0); 92 verifyStream("new webkitMediaStream([stream.getAudioTracks()[0], stream.getVideoTracks()[0]])", 0, 0); 93 verifyStream("new webkitMediaStream(stream)", 0, 0); 93 94 94 95 finishJSTest(); … … 98 99 } 99 100 100 function verifyStream(s, numAudioTracks, numVideoTracks) { 101 newStream = s; 101 function verifyStream(script, numAudioTracks, numVideoTracks) { 102 debug("<br>*** testing \"" + script + "\""); 103 newStream = eval(script); 102 104 nAudio = numAudioTracks; 103 105 nVideo = numVideoTracks; … … 106 108 shouldBeNonNull(newStream); 107 109 shouldBeDefined(newStream); 108 shouldBe("newStream.constructor. name", "'MediaStream'");110 shouldBe("newStream.constructor.toString()", "'[object webkitMediaStreamConstructor]'"); 109 111 shouldBe('newStream.getAudioTracks().length', 'nAudio'); 110 112 shouldBe('newStream.getVideoTracks().length', 'nVideo'); -
trunk/LayoutTests/fast/mediastream/MediaStreamTrackEvent-constructor-expected.txt
r156135 r156522 4 4 5 5 6 PASS getUserMedia({audio:true, video:true}, gotStream) did not throw exception. 7 8 *** getUserMedia() succeeded, test stream *** 9 PASS mediaStream is non-null. 10 PASS mediaStream.getVideoTracks()[0] is non-null. 6 11 7 12 *** No initializer passed *** … … 31 36 32 37 *** Initialize 'track' with valid track object *** 33 FAIL new MediaStreamTrackEvent('MediaStreamTrackEvent', { track: mediaStreamTrack }).track should be non-null. Was null 38 PASS new MediaStreamTrackEvent('MediaStreamTrackEvent', { track: mediaStreamTrack }).track is non-null. 34 39 PASS new MediaStreamTrackEvent('MediaStreamTrackEvent', { track: mediaStreamTrack }).track is mediaStreamTrack 35 40 -
trunk/LayoutTests/fast/mediastream/MediaStreamTrackEvent-constructor.html
r156135 r156522 13 13 14 14 description("This tests the constructor for the MediaStreamTrackEvent DOM class."); 15 16 function endTest() 17 { 18 clearTimeout(timer); 19 finishJSTest(); 20 } 21 22 function error() 23 { 24 testFailed('Stream generation failed.'); 25 endTest(); 26 } 27 28 function getUserMedia(constraints, callback) 29 { 30 try { 31 navigator.webkitGetUserMedia(constraints, callback, error); 32 } catch (e) { 33 testFailed('webkitGetUserMedia threw exception :' + e); 34 endTest(); 35 } 36 } 15 37 16 38 function testMediaStreamTrackEvent() … … 47 69 48 70 debug(""); 49 finishJSTest();71 endTest(); 50 72 } 51 73 … … 53 75 { 54 76 clearTimeout(timer); 55 testPassed('getUserMedia succeeded.');56 77 78 debug("<br>*** getUserMedia() succeeded, test stream ***"); 57 79 mediaStream = stream; 58 80 shouldBeNonNull("mediaStream"); … … 65 87 { 66 88 clearTimeout(timer); 67 timer = setTimeout(function() { testFailed(msg); finishJSTest() }, 4000);89 timer = setTimeout(function() { testFailed(msg); endTest() }, 4000); 68 90 } 69 91 70 92 function test() 71 93 { 72 /*73 @@@@@ NOTE: we can't get a MediaStreamTrack until we have a functional mock getUserMedia, so just test what we can for now @@@@@74 94 primeTimeout("Timeout waiting for getUserMedia()"); 75 95 shouldNotThrow('getUserMedia({audio:true, video:true}, gotStream)'); 76 */77 78 testMediaStreamTrackEvent();79 96 } 80 97 -
trunk/LayoutTests/fast/mediastream/argument-types-expected.txt
r134792 r156522 18 18 PASS navigator.webkitGetUserMedia(null, emptyFunction) threw exception Error: NotSupportedError: DOM Exception 9. 19 19 PASS navigator.webkitGetUserMedia({ }, emptyFunction) threw exception Error: NotSupportedError: DOM Exception 9. 20 PASS navigator.webkitGetUserMedia(true, emptyFunction) threw exception TypeError: Not an object..21 PASS navigator.webkitGetUserMedia(42, emptyFunction) threw exception TypeError: Not an object..22 PASS navigator.webkitGetUserMedia(Infinity, emptyFunction) threw exception TypeError: Not an object..23 PASS navigator.webkitGetUserMedia(-Infinity, emptyFunction) threw exception TypeError: Not an object..20 FAIL navigator.webkitGetUserMedia(true, emptyFunction) should throw TypeError: Not an object.. Threw exception Error: NotSupportedError: DOM Exception 9. 21 FAIL navigator.webkitGetUserMedia(42, emptyFunction) should throw TypeError: Not an object.. Threw exception Error: NotSupportedError: DOM Exception 9. 22 FAIL navigator.webkitGetUserMedia(Infinity, emptyFunction) should throw TypeError: Not an object.. Threw exception Error: NotSupportedError: DOM Exception 9. 23 FAIL navigator.webkitGetUserMedia(-Infinity, emptyFunction) should throw TypeError: Not an object.. Threw exception Error: NotSupportedError: DOM Exception 9. 24 24 PASS navigator.webkitGetUserMedia(emptyFunction, emptyFunction) threw exception Error: NotSupportedError: DOM Exception 9. 25 25 PASS navigator.webkitGetUserMedia({video: true}, "foobar") threw exception TypeError: Type error. -
trunk/Source/WebCore/CMakeLists.txt
r156488 r156522 2039 2039 platform/mock/DeviceOrientationClientMock.cpp 2040 2040 platform/mock/GeolocationClientMock.cpp 2041 platform/mock/MockMediaStreamCenter.cpp 2041 2042 platform/mock/ScrollbarThemeMock.cpp 2042 2043 -
trunk/Source/WebCore/ChangeLog
r156515 r156522 1 2013-09-26 Eric Carlson <eric.carlson@apple.com> 2 3 [MediaStream] make MediaStream testable 4 https://bugs.webkit.org/show_bug.cgi?id=121967 5 6 Reviewed by Dean Jackson. 7 8 No new tests, existing tests updated. 9 10 * CMakeLists.txt: Add MockMediaStreamCenter. 11 * GNUmakefile.list.am: Ditto. 12 13 * Modules/mediastream/MediaStreamTrack.idl: Add SkipVTableValidation. 14 * Modules/mediastream/NavigatorUserMediaError.idl: Add JSGenerateToJSObject. 15 * WebCore.exp.in: Export MockMediaStreamCenter::registerMockMediaStreamCenter. 16 17 * WebCore.xcodeproj/project.pbxproj: Add MockMediaStreamCenter. 18 * dom/DOMError.h: Make the destructor virtual because it has a derived class. 19 * dom/DOMError.idl: 20 21 * platform/mock/MockMediaStreamCenter.cpp: Added. 22 * platform/mock/MockMediaStreamCenter.h: Added. 23 24 * testing/Internals.cpp: Register the mock stream center. 25 1 26 2013-09-26 Benjamin Poulain <benjamin@webkit.org> 2 27 -
trunk/Source/WebCore/GNUmakefile.list.am
r156488 r156522 5495 5495 Source/WebCore/platform/mock/GeolocationClientMock.cpp \ 5496 5496 Source/WebCore/platform/mock/GeolocationClientMock.h \ 5497 Source/WebCore/platform/mock/MockMediaStreamCenter.cpp \ 5498 Source/WebCore/platform/mock/MockMediaStreamCenter.h \ 5497 5499 Source/WebCore/platform/mock/ScrollbarThemeMock.cpp \ 5498 5500 Source/WebCore/platform/mock/ScrollbarThemeMock.h \ -
trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.idl
r156135 r156522 26 26 Conditional=MEDIA_STREAM, 27 27 EventTarget, 28 ActiveDOMObject 28 ActiveDOMObject, 29 SkipVTableValidation 29 30 ] interface MediaStreamTrack { 30 31 readonly attribute DOMString kind; -
trunk/Source/WebCore/Modules/mediastream/NavigatorUserMediaError.idl
r156108 r156522 1 1 /* 2 2 * Copyright (C) 2011 Google Inc. All rights reserved. 3 * Copyright (C) 2013 Apple Inc. All rights reserved. 3 4 * 4 5 * Redistribution and use in source and binary forms, with or without … … 25 26 [ 26 27 NoInterfaceObject, 27 Conditional=MEDIA_STREAM 28 Conditional=MEDIA_STREAM, 29 JSGenerateToJSObject, 28 30 ] interface NavigatorUserMediaError : DOMError { 29 31 readonly attribute DOMString constraintName; -
trunk/Source/WebCore/WebCore.exp.in
r156506 r156522 2807 2807 __ZN7WebCore18provideUserMediaToEPNS_4PageEPNS_15UserMediaClientE 2808 2808 __ZNK7WebCore16UserMediaRequest14securityOriginEv 2809 #endif 2809 __ZN7WebCore21MockMediaStreamCenter29registerMockMediaStreamCenterEv 2810 #endif -
trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj
r156488 r156522 275 275 07C59B5F17F4B208000FBCBB /* JSVideoStreamTrack.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 07C59B5B17F4B208000FBCBB /* JSVideoStreamTrack.cpp */; }; 276 276 07C59B6017F4B208000FBCBB /* JSVideoStreamTrack.h in Headers */ = {isa = PBXBuildFile; fileRef = 07C59B5C17F4B208000FBCBB /* JSVideoStreamTrack.h */; }; 277 07C59B6317F4D1BF000FBCBB /* MockMediaStreamCenter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 07C59B6117F4CF87000FBCBB /* MockMediaStreamCenter.cpp */; }; 278 07C59B6417F4D1C4000FBCBB /* MockMediaStreamCenter.h in Headers */ = {isa = PBXBuildFile; fileRef = 07C59B6217F4CF87000FBCBB /* MockMediaStreamCenter.h */; }; 277 279 07CE77D516712A6A00C55A47 /* InbandTextTrackPrivateClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 07CE77D416712A6A00C55A47 /* InbandTextTrackPrivateClient.h */; settings = {ATTRIBUTES = (Private, ); }; }; 278 280 07DC5FD417D3EEE90099F890 /* JSRTCStatsResponseCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 07DC5FD317D3EEE90099F890 /* JSRTCStatsResponseCustom.cpp */; }; … … 6686 6688 07C59B5B17F4B208000FBCBB /* JSVideoStreamTrack.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JSVideoStreamTrack.cpp; path = JSVideoStreamTrack.cpp; sourceTree = "<group>"; }; 6687 6689 07C59B5C17F4B208000FBCBB /* JSVideoStreamTrack.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JSVideoStreamTrack.h; path = JSVideoStreamTrack.h; sourceTree = "<group>"; }; 6690 07C59B6117F4CF87000FBCBB /* MockMediaStreamCenter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = MockMediaStreamCenter.cpp; path = mock/MockMediaStreamCenter.cpp; sourceTree = "<group>"; }; 6691 07C59B6217F4CF87000FBCBB /* MockMediaStreamCenter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MockMediaStreamCenter.h; path = mock/MockMediaStreamCenter.h; sourceTree = "<group>"; }; 6688 6692 07CE77D416712A6A00C55A47 /* InbandTextTrackPrivateClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InbandTextTrackPrivateClient.h; sourceTree = "<group>"; }; 6689 6693 07DC5FD317D3EEE90099F890 /* JSRTCStatsResponseCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSRTCStatsResponseCustom.cpp; sourceTree = "<group>"; }; … … 14898 14902 isa = PBXGroup; 14899 14903 children = ( 14904 07C59B6117F4CF87000FBCBB /* MockMediaStreamCenter.cpp */, 14905 07C59B6217F4CF87000FBCBB /* MockMediaStreamCenter.h */, 14900 14906 59309A1011F4AE5800250603 /* DeviceOrientationClientMock.cpp */, 14901 14907 59309A1211F4AE6A00250603 /* DeviceOrientationClientMock.h */, … … 21919 21925 1C4C8F020AD85D87009475CE /* DeleteButtonController.h in Headers */, 21920 21926 93309DDF099E64920056E581 /* DeleteFromTextNodeCommand.h in Headers */, 21927 07C59B6417F4D1C4000FBCBB /* MockMediaStreamCenter.h in Headers */, 21921 21928 93309DE1099E64920056E581 /* DeleteSelectionCommand.h in Headers */, 21922 21929 FD1660A513787C6D001FFA7B /* DenormalDisabler.h in Headers */, … … 26137 26144 FDA15ED112B03F94003A583A /* JSDelayNode.cpp in Sources */, 26138 26145 31FB1A65120A5D3F00DC02A0 /* JSDeviceMotionEvent.cpp in Sources */, 26146 07C59B6317F4D1BF000FBCBB /* MockMediaStreamCenter.cpp in Sources */, 26139 26147 31FB1A6C120A5D6900DC02A0 /* JSDeviceMotionEventCustom.cpp in Sources */, 26140 26148 59A86006119DAF7F00DEF1EF /* JSDeviceOrientationEvent.cpp in Sources */, -
trunk/Source/WebCore/dom/DOMError.h
r156108 r156522 39 39 return adoptRef(new DOMError(name)); 40 40 } 41 virtual ~DOMError() { } 41 42 42 43 const String& name() const { return m_name; } -
trunk/Source/WebCore/dom/DOMError.idl
r149796 r156522 28 28 [ 29 29 NoInterfaceObject, 30 ImplementationLacksVTable30 SkipVTableValidation 31 31 ] interface DOMError { 32 32 readonly attribute DOMString name; 33 33 }; 34 34 -
trunk/Source/WebCore/testing/Internals.cpp
r156422 r156522 153 153 #endif 154 154 155 #if ENABLE(MEDIA_STREAM) 156 #include "MockMediaStreamCenter.h" 157 #endif 158 155 159 namespace WebCore { 156 160 … … 289 293 if (document && document->page()) 290 294 document->page()->group().captionPreferences()->setTestingMode(true); 295 #endif 296 297 #if ENABLE(MEDIA_STREAM) 298 MockMediaStreamCenter::registerMockMediaStreamCenter(); 291 299 #endif 292 300 } -
trunk/Source/WebKit/ChangeLog
r156517 r156522 1 2013-09-26 Eric Carlson <eric.carlson@apple.com> 2 3 [MediaStream] make MediaStream testable 4 https://bugs.webkit.org/show_bug.cgi?id=121967 5 6 Reviewed by Dean Jackson. 7 8 * WebKit.xcodeproj/project.pbxproj: Add WebUserMediaClient. 9 1 10 2013-09-26 Brent Fulgham <bfulgham@apple.com> 2 11 -
trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj
r152571 r156522 12 12 06693DDC0BFBA85200216072 /* WebInspectorClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 06693DDA0BFBA85200216072 /* WebInspectorClient.h */; }; 13 13 06693DDD0BFBA85200216072 /* WebInspectorClient.mm in Sources */ = {isa = PBXBuildFile; fileRef = 06693DDB0BFBA85200216072 /* WebInspectorClient.mm */; }; 14 070F549B17F1E42B00169E04 /* WebUserMediaClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 070F549917F1E42B00169E04 /* WebUserMediaClient.h */; }; 15 070F549C17F1E42B00169E04 /* WebUserMediaClient.mm in Sources */ = {isa = PBXBuildFile; fileRef = 070F549A17F1E42B00169E04 /* WebUserMediaClient.mm */; }; 14 16 0AB752370FA2E4DB00D7CBB1 /* WebNetscapeContainerCheckContextInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 0AB752350FA2E4DB00D7CBB1 /* WebNetscapeContainerCheckContextInfo.h */; }; 15 17 0AB752380FA2E4DB00D7CBB1 /* WebNetscapeContainerCheckContextInfo.mm in Sources */ = {isa = PBXBuildFile; fileRef = 0AB752360FA2E4DB00D7CBB1 /* WebNetscapeContainerCheckContextInfo.mm */; }; … … 387 389 06693DDA0BFBA85200216072 /* WebInspectorClient.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = WebInspectorClient.h; sourceTree = "<group>"; }; 388 390 06693DDB0BFBA85200216072 /* WebInspectorClient.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebInspectorClient.mm; sourceTree = "<group>"; }; 391 070F549917F1E42B00169E04 /* WebUserMediaClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebUserMediaClient.h; sourceTree = "<group>"; }; 392 070F549A17F1E42B00169E04 /* WebUserMediaClient.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebUserMediaClient.mm; sourceTree = "<group>"; }; 389 393 0AB752350FA2E4DB00D7CBB1 /* WebNetscapeContainerCheckContextInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebNetscapeContainerCheckContextInfo.h; sourceTree = "<group>"; }; 390 394 0AB752360FA2E4DB00D7CBB1 /* WebNetscapeContainerCheckContextInfo.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebNetscapeContainerCheckContextInfo.mm; sourceTree = "<group>"; }; … … 1275 1279 isa = PBXGroup; 1276 1280 children = ( 1281 070F549917F1E42B00169E04 /* WebUserMediaClient.h */, 1282 070F549A17F1E42B00169E04 /* WebUserMediaClient.mm */, 1277 1283 B82958D1132707D0000D0E79 /* CorrectionPanel.h */, 1278 1284 B82958D2132707D0000D0E79 /* CorrectionPanel.mm */, … … 1427 1433 1A60519417502A5D00BC62F5 /* HistoryPropertyList.h in Headers */, 1428 1434 939810680824BF01008DF038 /* HIViewAdapter.h in Headers */, 1435 070F549B17F1E42B00169E04 /* WebUserMediaClient.h in Headers */, 1429 1436 939810690824BF01008DF038 /* HIWebView.h in Headers */, 1430 1437 1A8DED500EE88B8A00F25022 /* HostedNetscapePluginStream.h in Headers */, … … 1880 1887 7C01CB86173435C900C5D807 /* PopupMenuMac.mm in Sources */, 1881 1888 1A2DBEA00F251E3A0036F8A6 /* ProxyInstance.mm in Sources */, 1889 070F549C17F1E42B00169E04 /* WebUserMediaClient.mm in Sources */, 1882 1890 E169836C11346D5600894115 /* ProxyRuntimeObject.mm in Sources */, 1883 1891 7C01CB88173435C900C5D807 /* SearchPopupMenuMac.mm in Sources */, -
trunk/Source/WebKit/mac/ChangeLog
r156485 r156522 1 2013-09-26 Eric Carlson <eric.carlson@apple.com> 2 3 [MediaStream] make MediaStream testable 4 https://bugs.webkit.org/show_bug.cgi?id=121967 5 6 Reviewed by Dean Jackson. 7 8 * WebCoreSupport/WebUserMediaClient.h: Added. 9 * WebCoreSupport/WebUserMediaClient.mm: Added. 10 11 * WebView/WebUIDelegatePrivate.h: Declare decidePolicyForUserMediaRequestFromOrigin:listener: 12 13 * WebView/WebView.mm: 14 (-[WebView _commonInitializationWithFrameName:groupName:]): Register WebUserMediaClient. 15 (-[WebView _setUserMediaClient:]): New. 16 (-[WebView _userMediaClient]): New. 17 * WebView/WebViewData.h: 18 * WebView/WebViewPrivate.h: 19 1 20 2013-09-25 Sam Weinig <sam@webkit.org> 2 21 -
trunk/Source/WebKit/mac/WebView/WebUIDelegatePrivate.h
r144949 r156522 227 227 - (void)webView:(WebView *)webView decidePolicyForNotificationRequestFromOrigin:(WebSecurityOrigin *)origin listener:(id<WebAllowDenyPolicyListener>)listener; 228 228 229 - (void)webView:(WebView *)webView decidePolicyForUserMediaRequestFromOrigin:(WebSecurityOrigin *)origin listener:(id<WebAllowDenyPolicyListener>)listener; 230 229 231 - (void)webView:(WebView *)sender elementDidFocusNode:(DOMNode *)node; 230 232 - (void)webView:(WebView *)sender elementDidBlurNode:(DOMNode *)node; -
trunk/Source/WebKit/mac/WebView/WebView.mm
r156424 r156522 109 109 #import "WebUIDelegate.h" 110 110 #import "WebUIDelegatePrivate.h" 111 #import "WebUserMediaClient.h" 111 112 #import <CoreFoundation/CFSet.h> 112 113 #import <Foundation/NSURLConnection.h> … … 767 768 WebCore::provideDeviceOrientationTo(_private->page, new WebDeviceOrientationClient(self)); 768 769 #endif 770 #if ENABLE(MEDIA_STREAM) 771 WebCore::provideUserMediaTo(_private->page, new WebUserMediaClient(self)); 772 #endif 769 773 770 774 _private->page->setCanStartMedia([self window]); … … 6656 6660 @end 6657 6661 6662 #if ENABLE(MEDIA_STREAM) 6663 @implementation WebView (WebViewUserMedia) 6664 6665 - (void)_setUserMediaClient:(id<WebUserMediaClient>)userMediaClient 6666 { 6667 if (_private) 6668 _private->m_userMediaClient = userMediaClient; 6669 } 6670 6671 - (id<WebUserMediaClient>)_userMediaClient 6672 { 6673 if (_private) 6674 return _private->m_userMediaClient; 6675 return nil; 6676 } 6677 @end 6678 #endif 6679 6658 6680 @implementation WebView (WebViewGeolocation) 6659 6681 -
trunk/Source/WebKit/mac/WebView/WebViewData.h
r152733 r156522 60 60 @class WebFullScreenController; 61 61 #endif 62 #if ENABLE(MEDIA_STREAM) 63 @protocol WebUserMediaClient; 64 #endif 62 65 63 66 extern BOOL applicationIsTerminating; … … 209 212 id<WebNotificationProvider> _notificationProvider; 210 213 214 #if ENABLE(MEDIA_STREAM) 215 id<WebUserMediaClient> m_userMediaClient; 216 #endif 217 211 218 RefPtr<WebCore::HistoryItem> _globalHistoryItem; 212 219 -
trunk/Source/WebKit/mac/WebView/WebViewPrivate.h
r155726 r156522 48 48 @protocol WebDeviceOrientationProvider; 49 49 @protocol WebFormDelegate; 50 @protocol WebUserMediaClient; 50 51 51 52 extern NSString *_WebCanGoBackKey; … … 717 718 @end 718 719 720 @interface WebView (WebViewUserMedia) 721 - (void)_setUserMediaClient:(id<WebUserMediaClient>)userMediaClient; 722 - (id<WebUserMediaClient>)_userMediaClient; 723 @end 724 719 725 @protocol WebGeolocationProvider <NSObject> 720 726 - (void)registerWebView:(WebView *)webView; -
trunk/Tools/ChangeLog
r156493 r156522 1 2013-09-26 Eric Carlson <eric.carlson@apple.com> 2 3 [MediaStream] make MediaStream testable 4 https://bugs.webkit.org/show_bug.cgi?id=121967 5 6 Reviewed by Dean Jackson. 7 8 * DumpRenderTree/mac/UIDelegate.mm: 9 (-[UIDelegate webView:decidePolicyForUserMediaRequestFromOrigin:listener:]): Add a very permissive 10 user media request policy delegate. 11 1 12 2013-09-26 Brian J. Burg <burg@cs.washington.edu> 2 13 -
trunk/Tools/DumpRenderTree/mac/UIDelegate.mm
r154027 r156522 313 313 } 314 314 315 - (void)webView:(WebView *)webView decidePolicyForUserMediaRequestFromOrigin:(WebSecurityOrigin *)origin listener:(id<WebAllowDenyPolicyListener>)listener 316 { 317 // Allow all user media requests for now. 318 [listener allow]; 319 } 320 315 321 - (void)dealloc 316 322 {
Note:
See TracChangeset
for help on using the changeset viewer.