Diff
Modified: trunk/LayoutTests/ChangeLog (200230 => 200231)
--- trunk/LayoutTests/ChangeLog 2016-04-29 06:04:06 UTC (rev 200230)
+++ trunk/LayoutTests/ChangeLog 2016-04-29 07:18:30 UTC (rev 200231)
@@ -1,3 +1,17 @@
+2016-04-29 Youenn Fablet <[email protected]>
+
+ Drop [UsePointersEvenForNonNullableObjectArguments] from MediaStream interfaces
+ https://bugs.webkit.org/show_bug.cgi?id=156905
+
+ Reviewed by Darin Adler.
+
+ * fast/mediastream/MediaStream-add-remove-null-undefined-tracks-expected.txt: Added.
+ * fast/mediastream/MediaStream-add-remove-null-undefined-tracks.html: Added.
+ * fast/mediastream/RTCPeerConnection-add-removeTrack-expected.txt: Rebasing.
+ * fast/mediastream/RTCPeerConnection-add-removeTrack.html: Adding null/undefined tests for addTrack/removeTrack.
+ * fast/mediastream/RTCPeerConnection-datachannel.html: Adding test for send() method.
+ Test expectation is not rebased as test is timing out and marked as skip.
+
2016-04-28 Joanmarie Diggs <[email protected]>
AX: [ATK] Expose subscript and superscript format style groups using ATK_ROLE_SUBSCRIPT and ATK_ROLE_SUPERSCRIPT
Added: trunk/LayoutTests/fast/mediastream/MediaStream-add-remove-null-undefined-tracks-expected.txt (0 => 200231)
--- trunk/LayoutTests/fast/mediastream/MediaStream-add-remove-null-undefined-tracks-expected.txt (rev 0)
+++ trunk/LayoutTests/fast/mediastream/MediaStream-add-remove-null-undefined-tracks-expected.txt 2016-04-29 07:18:30 UTC (rev 200231)
@@ -0,0 +1,17 @@
+Test adding and removing null and undefined tracks.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+
+Calling addTrack with null and undefined parameters
+PASS stream.addTrack(null); threw exception TypeError: Type error.
+PASS stream.addTrack(undefined); threw exception TypeError: Type error.
+
+Calling removeTrack with null and undefined parameters
+PASS stream.removeTrack(null); threw exception TypeError: Type error.
+PASS stream.removeTrack(undefined); threw exception TypeError: Type error.
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
Added: trunk/LayoutTests/fast/mediastream/MediaStream-add-remove-null-undefined-tracks.html (0 => 200231)
--- trunk/LayoutTests/fast/mediastream/MediaStream-add-remove-null-undefined-tracks.html (rev 0)
+++ trunk/LayoutTests/fast/mediastream/MediaStream-add-remove-null-undefined-tracks.html 2016-04-29 07:18:30 UTC (rev 200231)
@@ -0,0 +1,36 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+ <head>
+ <script src=""
+ <script src=""
+ </head>
+ <body>
+ <p id="description"></p>
+ <div id="console"></div>
+ <script>
+ description("Test adding and removing null and undefined tracks.");
+
+ var stream;
+
+ function gotStream(s) {
+ stream = s;
+
+ debug("<br>Calling addTrack with null and undefined parameters");
+ shouldThrow("stream.addTrack(null);");
+ shouldThrow("stream.addTrack(undefined);");
+
+ debug("<br>Calling removeTrack with null and undefined parameters");
+ shouldThrow("stream.removeTrack(null);");
+ shouldThrow("stream.removeTrack(undefined);");
+
+ finishJSTest();
+ }
+
+ getUserMedia("allow", {audio:true, video:true}, gotStream);
+
+ window.jsTestIsAsync = true;
+ window.successfullyParsed = true;
+ </script>
+ <script src=""
+ </body>
+</html>
Modified: trunk/LayoutTests/fast/mediastream/RTCPeerConnection-add-removeTrack-expected.txt (200230 => 200231)
--- trunk/LayoutTests/fast/mediastream/RTCPeerConnection-add-removeTrack-expected.txt 2016-04-29 06:04:06 UTC (rev 200230)
+++ trunk/LayoutTests/fast/mediastream/RTCPeerConnection-add-removeTrack-expected.txt 2016-04-29 07:18:30 UTC (rev 200231)
@@ -21,6 +21,10 @@
PASS senderFromPc2 = pc2.addTrack(track, stream) did not throw exception.
removeTrack() with 'foreign' sender must be ignored (not throw)
PASS pc.removeTrack(senderFromPc2) did not throw exception.
+PASS pc.addTrack(null); threw exception TypeError: Type error.
+PASS pc.addTrack(undefined); threw exception TypeError: Type error.
+PASS pc.removeTrack(null); threw exception TypeError: Type error.
+PASS pc.removeTrack(undefined); threw exception TypeError: Type error.
PASS successfullyParsed is true
TEST COMPLETE
Modified: trunk/LayoutTests/fast/mediastream/RTCPeerConnection-add-removeTrack.html (200230 => 200231)
--- trunk/LayoutTests/fast/mediastream/RTCPeerConnection-add-removeTrack.html 2016-04-29 06:04:06 UTC (rev 200230)
+++ trunk/LayoutTests/fast/mediastream/RTCPeerConnection-add-removeTrack.html 2016-04-29 07:18:30 UTC (rev 200231)
@@ -64,6 +64,11 @@
debug("removeTrack() with 'foreign' sender must be ignored (not throw)");
shouldNotThrow("pc.removeTrack(senderFromPc2)");
+ shouldThrow("pc.addTrack(null);");
+ shouldThrow("pc.addTrack(undefined);");
+ shouldThrow("pc.removeTrack(null);");
+ shouldThrow("pc.removeTrack(undefined);");
+
finishJSTest();
})
.catch(function (error) {
Modified: trunk/LayoutTests/fast/mediastream/RTCPeerConnection-datachannel.html (200230 => 200231)
--- trunk/LayoutTests/fast/mediastream/RTCPeerConnection-datachannel.html 2016-04-29 06:04:06 UTC (rev 200230)
+++ trunk/LayoutTests/fast/mediastream/RTCPeerConnection-datachannel.html 2016-04-29 07:18:30 UTC (rev 200231)
@@ -66,6 +66,9 @@
dc._onmessage_ = dc_onmessage_string;
shouldNotThrow("dc.send('xyzzy');");
+
+ shouldThrow("dc.send(null);");
+ shouldThrow("dc.send(undefined);");
}
function pc_ondatachannel(e) {
Modified: trunk/Source/WebCore/ChangeLog (200230 => 200231)
--- trunk/Source/WebCore/ChangeLog 2016-04-29 06:04:06 UTC (rev 200230)
+++ trunk/Source/WebCore/ChangeLog 2016-04-29 07:18:30 UTC (rev 200231)
@@ -1,3 +1,63 @@
+2016-04-29 Youenn Fablet <[email protected]>
+
+ Drop [UsePointersEvenForNonNullableObjectArguments] from MediaStream interfaces
+ https://bugs.webkit.org/show_bug.cgi?id=156905
+
+ Reviewed by Darin Adler.
+
+ Removing UsePointersEvenForNonNullableObjectArguments from MediaStream, RTCPeerConnection and RTCRtpSender.
+ Updating methods to take references and making some related refactoring.
+
+ Test: fast/mediastream/MediaStream-add-remove-null-undefined-tracks.html
+ Changes also covered by updated tests.
+
+ * Modules/mediastream/MediaEndpointPeerConnection.cpp:
+ (WebCore::MediaEndpointPeerConnection::createOfferTask):
+ * Modules/mediastream/MediaStream.cpp:
+ (WebCore::MediaStream::create):
+ (WebCore::MediaStream::addTrack):
+ (WebCore::MediaStream::removeTrack):
+ (WebCore::MediaStream::didAddTrack):
+ (WebCore::MediaStream::didRemoveTrack):
+ (WebCore::MediaStream::internalAddTrack):
+ (WebCore::MediaStream::internalRemoveTrack):
+ * Modules/mediastream/MediaStream.h:
+ * Modules/mediastream/MediaStream.idl:
+ * Modules/mediastream/RTCDataChannel.cpp:
+ (WebCore::RTCDataChannel::send):
+ * Modules/mediastream/RTCDataChannel.h:
+ * Modules/mediastream/RTCDataChannel.idl:
+ * Modules/mediastream/RTCPeerConnection.cpp:
+ (WebCore::RTCPeerConnection::addTrack):
+ (WebCore::RTCPeerConnection::removeTrack):
+ (WebCore::RTCPeerConnection::queuedSetLocalDescription):
+ (WebCore::RTCPeerConnection::queuedSetRemoteDescription):
+ (WebCore::RTCPeerConnection::queuedAddIceCandidate):
+ (WebCore::RTCPeerConnection::privateGetStats):
+ (WebCore::RTCPeerConnection::queuedCreateOffer): Deleted.
+ (WebCore::RTCPeerConnection::localDescription): Deleted.
+ (WebCore::RTCPeerConnection::currentLocalDescription): Deleted.
+ (WebCore::RTCPeerConnection::remoteDescription): Deleted.
+ (WebCore::RTCPeerConnection::currentRemoteDescription): Deleted.
+ (WebCore::RTCPeerConnection::signalingState): Deleted.
+ (WebCore::RTCPeerConnection::createDataChannel): Deleted.
+ (WebCore::RTCPeerConnection::close): Deleted.
+ * Modules/mediastream/RTCPeerConnection.h:
+ * Modules/mediastream/RTCPeerConnection.idl:
+ * Modules/mediastream/RTCRtpReceiver.cpp:
+ (WebCore::RTCRtpReceiver::RTCRtpReceiver):
+ * Modules/mediastream/RTCRtpReceiver.h:
+ (WebCore::RTCRtpReceiver::create):
+ * Modules/mediastream/RTCRtpSender.cpp:
+ (WebCore::RTCRtpSender::RTCRtpSender):
+ (WebCore::RTCRtpSender::replaceTrack):
+ * Modules/mediastream/RTCRtpSender.h:
+ (WebCore::RTCRtpSender::create):
+ * Modules/mediastream/RTCRtpSender.idl:
+ * Modules/mediastream/RTCRtpSenderReceiverBase.h:
+ (WebCore::RTCRtpSenderReceiverBase::track):
+ (WebCore::RTCRtpSenderReceiverBase::RTCRtpSenderReceiverBase):
+
2016-04-28 Daniel Bates <[email protected]>
Remove extraneous space characters from parameter list for RenderListBox::paintItem()
Modified: trunk/Source/WebCore/Modules/mediastream/MediaEndpointPeerConnection.cpp (200230 => 200231)
--- trunk/Source/WebCore/Modules/mediastream/MediaEndpointPeerConnection.cpp 2016-04-29 06:04:06 UTC (rev 200230)
+++ trunk/Source/WebCore/Modules/mediastream/MediaEndpointPeerConnection.cpp 2016-04-29 07:18:30 UTC (rev 200231)
@@ -139,12 +139,12 @@
// Add media descriptions for senders.
for (auto& sender : senders) {
RefPtr<PeerMediaDescription> mediaDescription = PeerMediaDescription::create();
- MediaStreamTrack* track = sender->track();
+ MediaStreamTrack& track = sender->track();
mediaDescription->setMediaStreamId(sender->mediaStreamIds()[0]);
- mediaDescription->setMediaStreamTrackId(track->id());
- mediaDescription->setType(track->kind());
- mediaDescription->setPayloads(track->kind() == "audio" ? m_defaultAudioPayloads : m_defaultVideoPayloads);
+ mediaDescription->setMediaStreamTrackId(track.id());
+ mediaDescription->setType(track.kind());
+ mediaDescription->setPayloads(track.kind() == "audio" ? m_defaultAudioPayloads : m_defaultVideoPayloads);
mediaDescription->setDtlsFingerprintHashFunction(m_dtlsFingerprintFunction);
mediaDescription->setDtlsFingerprint(m_dtlsFingerprint);
mediaDescription->setCname(m_cname);
Modified: trunk/Source/WebCore/Modules/mediastream/MediaStream.cpp (200230 => 200231)
--- trunk/Source/WebCore/Modules/mediastream/MediaStream.cpp 2016-04-29 06:04:06 UTC (rev 200230)
+++ trunk/Source/WebCore/Modules/mediastream/MediaStream.cpp 2016-04-29 07:18:30 UTC (rev 200231)
@@ -47,11 +47,9 @@
return MediaStream::create(context, MediaStreamPrivate::create(Vector<RefPtr<MediaStreamTrackPrivate>>()));
}
-Ref<MediaStream> MediaStream::create(ScriptExecutionContext& context, MediaStream* stream)
+Ref<MediaStream> MediaStream::create(ScriptExecutionContext& context, MediaStream& stream)
{
- ASSERT(stream);
-
- return adoptRef(*new MediaStream(context, stream->getTracks()));
+ return adoptRef(*new MediaStream(context, stream.getTracks()));
}
Ref<MediaStream> MediaStream::create(ScriptExecutionContext& context, const MediaStreamTrackVector& tracks)
@@ -97,7 +95,7 @@
MediaStreamRegistry::shared().registerStream(*this);
for (auto& trackPrivate : m_private->tracks()) {
- RefPtr<MediaStreamTrack> track = MediaStreamTrack::create(context, *trackPrivate);
+ auto track = MediaStreamTrack::create(context, *trackPrivate);
track->addObserver(this);
m_trackSet.add(track->id(), WTFMove(track));
}
@@ -128,18 +126,18 @@
return MediaStream::create(*scriptExecutionContext(), clonedTracks);
}
-void MediaStream::addTrack(RefPtr<MediaStreamTrack>&& track)
+void MediaStream::addTrack(MediaStreamTrack& track)
{
- if (!internalAddTrack(WTFMove(track), StreamModifier::DomAPI))
+ if (!internalAddTrack(track, StreamModifier::DomAPI))
return;
for (auto& observer : m_observers)
observer->didAddOrRemoveTrack();
}
-void MediaStream::removeTrack(MediaStreamTrack* track)
+void MediaStream::removeTrack(MediaStreamTrack& track)
{
- if (!internalRemoveTrack(track, StreamModifier::DomAPI))
+ if (!internalRemoveTrack(track.id(), StreamModifier::DomAPI))
return;
for (auto& observer : m_observers)
@@ -203,30 +201,31 @@
void MediaStream::didRemoveTrack(MediaStreamTrackPrivate& trackPrivate)
{
- RefPtr<MediaStreamTrack> track = getTrackById(trackPrivate.id());
- ASSERT(track);
- internalRemoveTrack(WTFMove(track), StreamModifier::Platform);
+ internalRemoveTrack(trackPrivate.id(), StreamModifier::Platform);
}
-bool MediaStream::internalAddTrack(RefPtr<MediaStreamTrack>&& track, StreamModifier streamModifier)
+bool MediaStream::internalAddTrack(Ref<MediaStreamTrack>&& trackToAdd, StreamModifier streamModifier)
{
- if (getTrackById(track->id()))
+ auto result = m_trackSet.add(trackToAdd->id(), WTFMove(trackToAdd));
+ if (!result.isNewEntry)
return false;
- m_trackSet.add(track->id(), track);
- track->addObserver(this);
+ ASSERT(result.iterator->value);
+ auto& track = *result.iterator->value;
+ track.addObserver(this);
if (streamModifier == StreamModifier::DomAPI)
- m_private->addTrack(&track->privateTrack(), MediaStreamPrivate::NotifyClientOption::DontNotify);
+ m_private->addTrack(&track.privateTrack(), MediaStreamPrivate::NotifyClientOption::DontNotify);
else
- dispatchEvent(MediaStreamTrackEvent::create(eventNames().addtrackEvent, false, false, WTFMove(track)));
+ dispatchEvent(MediaStreamTrackEvent::create(eventNames().addtrackEvent, false, false, &track));
return true;
}
-bool MediaStream::internalRemoveTrack(RefPtr<MediaStreamTrack>&& track, StreamModifier streamModifier)
+bool MediaStream::internalRemoveTrack(const String& trackId, StreamModifier streamModifier)
{
- if (!m_trackSet.remove(track->id()))
+ auto track = m_trackSet.take(trackId);
+ if (!track)
return false;
track->removeObserver(this);
Modified: trunk/Source/WebCore/Modules/mediastream/MediaStream.h (200230 => 200231)
--- trunk/Source/WebCore/Modules/mediastream/MediaStream.h 2016-04-29 06:04:06 UTC (rev 200230)
+++ trunk/Source/WebCore/Modules/mediastream/MediaStream.h 2016-04-29 07:18:30 UTC (rev 200231)
@@ -56,15 +56,15 @@
};
static Ref<MediaStream> create(ScriptExecutionContext&);
- static Ref<MediaStream> create(ScriptExecutionContext&, MediaStream*);
+ static Ref<MediaStream> create(ScriptExecutionContext&, MediaStream&);
static Ref<MediaStream> create(ScriptExecutionContext&, const MediaStreamTrackVector&);
static Ref<MediaStream> create(ScriptExecutionContext&, RefPtr<MediaStreamPrivate>&&);
virtual ~MediaStream();
String id() const { return m_private->id(); }
- void addTrack(RefPtr<MediaStreamTrack>&&);
- void removeTrack(MediaStreamTrack*);
+ void addTrack(MediaStreamTrack&);
+ void removeTrack(MediaStreamTrack&);
MediaStreamTrack* getTrackById(String);
MediaStreamTrackVector getAudioTracks() const;
@@ -118,8 +118,8 @@
void pageMutedStateDidChange() final;
MediaProducer::MediaStateFlags mediaState() const final;
- bool internalAddTrack(RefPtr<MediaStreamTrack>&&, StreamModifier);
- bool internalRemoveTrack(RefPtr<MediaStreamTrack>&&, StreamModifier);
+ bool internalAddTrack(Ref<MediaStreamTrack>&&, StreamModifier);
+ bool internalRemoveTrack(const String&, StreamModifier);
void scheduleActiveStateChange();
void activityEventTimerFired();
Modified: trunk/Source/WebCore/Modules/mediastream/MediaStream.idl (200230 => 200231)
--- trunk/Source/WebCore/Modules/mediastream/MediaStream.idl 2016-04-29 06:04:06 UTC (rev 200230)
+++ trunk/Source/WebCore/Modules/mediastream/MediaStream.idl 2016-04-29 07:18:30 UTC (rev 200231)
@@ -28,7 +28,6 @@
Constructor(MediaStream stream),
Constructor(MediaStreamTrack[] tracks),
ConstructorCallWith=ScriptExecutionContext,
- UsePointersEvenForNonNullableObjectArguments,
] interface MediaStream : EventTarget {
readonly attribute DOMString id;
Modified: trunk/Source/WebCore/Modules/mediastream/RTCDataChannel.cpp (200230 => 200231)
--- trunk/Source/WebCore/Modules/mediastream/RTCDataChannel.cpp 2016-04-29 06:04:06 UTC (rev 200230)
+++ trunk/Source/WebCore/Modules/mediastream/RTCDataChannel.cpp 2016-04-29 07:18:30 UTC (rev 200231)
@@ -202,20 +202,18 @@
}
}
-void RTCDataChannel::send(PassRefPtr<ArrayBuffer> prpData, ExceptionCode& ec)
+void RTCDataChannel::send(ArrayBuffer& data, ExceptionCode& ec)
{
if (m_readyState != ReadyStateOpen) {
ec = INVALID_STATE_ERR;
return;
}
- RefPtr<ArrayBuffer> data = ""
-
- size_t dataLength = data->byteLength();
+ size_t dataLength = data.byteLength();
if (!dataLength)
return;
- const char* dataPointer = static_cast<const char*>(data->data());
+ const char* dataPointer = static_cast<const char*>(data.data());
if (!m_handler->sendRawData(dataPointer, dataLength)) {
// FIXME: Decide what the right exception here is.
@@ -223,13 +221,15 @@
}
}
-void RTCDataChannel::send(PassRefPtr<ArrayBufferView> data, ExceptionCode& ec)
+void RTCDataChannel::send(ArrayBufferView* data, ExceptionCode& ec)
{
+ ASSERT(data);
RefPtr<ArrayBuffer> arrayBuffer(data->buffer());
- send(arrayBuffer.release(), ec);
+ ASSERT(arrayBuffer);
+ send(*arrayBuffer, ec);
}
-void RTCDataChannel::send(PassRefPtr<Blob>, ExceptionCode& ec)
+void RTCDataChannel::send(Blob&, ExceptionCode& ec)
{
// FIXME: implement
ec = NOT_SUPPORTED_ERR;
Modified: trunk/Source/WebCore/Modules/mediastream/RTCDataChannel.h (200230 => 200231)
--- trunk/Source/WebCore/Modules/mediastream/RTCDataChannel.h 2016-04-29 06:04:06 UTC (rev 200230)
+++ trunk/Source/WebCore/Modules/mediastream/RTCDataChannel.h 2016-04-29 07:18:30 UTC (rev 200231)
@@ -65,9 +65,9 @@
void setBinaryType(const AtomicString&, ExceptionCode&);
void send(const String&, ExceptionCode&);
- void send(PassRefPtr<JSC::ArrayBuffer>, ExceptionCode&);
- void send(PassRefPtr<JSC::ArrayBufferView>, ExceptionCode&);
- void send(PassRefPtr<Blob>, ExceptionCode&);
+ void send(JSC::ArrayBuffer&, ExceptionCode&);
+ void send(JSC::ArrayBufferView*, ExceptionCode&);
+ void send(Blob&, ExceptionCode&);
void close();
Modified: trunk/Source/WebCore/Modules/mediastream/RTCDataChannel.idl (200230 => 200231)
--- trunk/Source/WebCore/Modules/mediastream/RTCDataChannel.idl 2016-04-29 06:04:06 UTC (rev 200230)
+++ trunk/Source/WebCore/Modules/mediastream/RTCDataChannel.idl 2016-04-29 07:18:30 UTC (rev 200231)
@@ -23,9 +23,8 @@
*/
[
- NoInterfaceObject,
Conditional=WEB_RTC,
- UsePointersEvenForNonNullableObjectArguments,
+ NoInterfaceObject,
] interface RTCDataChannel : EventTarget {
readonly attribute DOMString label;
readonly attribute boolean ordered;
Modified: trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.cpp (200230 => 200231)
--- trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.cpp 2016-04-29 06:04:06 UTC (rev 200230)
+++ trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.cpp 2016-04-29 07:18:30 UTC (rev 200231)
@@ -101,13 +101,8 @@
stop();
}
-RefPtr<RTCRtpSender> RTCPeerConnection::addTrack(RefPtr<MediaStreamTrack>&& track, Vector<MediaStream*> streams, ExceptionCode& ec)
+RefPtr<RTCRtpSender> RTCPeerConnection::addTrack(Ref<MediaStreamTrack>&& track, Vector<MediaStream*> streams, ExceptionCode& ec)
{
- if (!track) {
- ec = TypeError;
- return nullptr;
- }
-
if (m_signalingState == SignalingState::Closed) {
ec = INVALID_STATE_ERR;
return nullptr;
@@ -139,22 +134,17 @@
return sender;
}
-void RTCPeerConnection::removeTrack(RTCRtpSender* sender, ExceptionCode& ec)
+void RTCPeerConnection::removeTrack(RTCRtpSender& sender, ExceptionCode& ec)
{
- if (!sender) {
- ec = TypeError;
- return;
- }
-
if (m_signalingState == SignalingState::Closed) {
ec = INVALID_STATE_ERR;
return;
}
- if (!m_senderSet.contains(sender))
+ if (!m_senderSet.contains(&sender))
return;
- sender->stop();
+ sender.stop();
m_backend->markAsNeedingNegotiation();
}
@@ -194,15 +184,14 @@
m_backend->createAnswer(*options, WTFMove(promise));
}
-void RTCPeerConnection::queuedSetLocalDescription(RTCSessionDescription* description, PeerConnection::VoidPromise&& promise)
+void RTCPeerConnection::queuedSetLocalDescription(RTCSessionDescription& description, PeerConnection::VoidPromise&& promise)
{
if (m_signalingState == SignalingState::Closed) {
promise.reject(DOMError::create("InvalidStateError"));
return;
}
- ASSERT(description);
- m_backend->setLocalDescription(*description, WTFMove(promise));
+ m_backend->setLocalDescription(description, WTFMove(promise));
}
RefPtr<RTCSessionDescription> RTCPeerConnection::localDescription() const
@@ -220,15 +209,14 @@
return m_backend->pendingLocalDescription();
}
-void RTCPeerConnection::queuedSetRemoteDescription(RTCSessionDescription* description, PeerConnection::VoidPromise&& promise)
+void RTCPeerConnection::queuedSetRemoteDescription(RTCSessionDescription& description, PeerConnection::VoidPromise&& promise)
{
if (m_signalingState == SignalingState::Closed) {
promise.reject(DOMError::create("InvalidStateError"));
return;
}
- ASSERT(description);
- m_backend->setRemoteDescription(*description, WTFMove(promise));
+ m_backend->setRemoteDescription(description, WTFMove(promise));
}
RefPtr<RTCSessionDescription> RTCPeerConnection::remoteDescription() const
@@ -246,15 +234,14 @@
return m_backend->pendingRemoteDescription();
}
-void RTCPeerConnection::queuedAddIceCandidate(RTCIceCandidate* rtcCandidate, VoidPromise&& promise)
+void RTCPeerConnection::queuedAddIceCandidate(RTCIceCandidate& rtcCandidate, VoidPromise&& promise)
{
if (m_signalingState == SignalingState::Closed) {
promise.reject(DOMError::create("InvalidStateError"));
return;
}
- ASSERT(rtcCandidate);
- m_backend->addIceCandidate(*rtcCandidate, WTFMove(promise));
+ m_backend->addIceCandidate(rtcCandidate, WTFMove(promise));
}
String RTCPeerConnection::signalingState() const
@@ -341,14 +328,14 @@
m_backend->setConfiguration(*m_configuration);
}
-void RTCPeerConnection::privateGetStats(MediaStreamTrack* selector, PeerConnection::StatsPromise&& promise)
+void RTCPeerConnection::privateGetStats(MediaStreamTrack& selector, PeerConnection::StatsPromise&& promise)
{
- m_backend->getStats(selector, WTFMove(promise));
+ m_backend->getStats(&selector, WTFMove(promise));
}
void RTCPeerConnection::privateGetStats(PeerConnection::StatsPromise&& promise)
{
- privateGetStats(nullptr, WTFMove(promise));
+ m_backend->getStats(nullptr, WTFMove(promise));
}
RefPtr<RTCDataChannel> RTCPeerConnection::createDataChannel(String, const Dictionary&, ExceptionCode& ec)
Modified: trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.h (200230 => 200231)
--- trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.h 2016-04-29 06:04:06 UTC (rev 200230)
+++ trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.h 2016-04-29 07:18:30 UTC (rev 200231)
@@ -67,25 +67,25 @@
Vector<RefPtr<RTCRtpSender>> getSenders() const override { return m_senderSet; }
Vector<RefPtr<RTCRtpReceiver>> getReceivers() const { return m_receiverSet; }
- RefPtr<RTCRtpSender> addTrack(RefPtr<MediaStreamTrack>&&, Vector<MediaStream*>, ExceptionCode&);
- void removeTrack(RTCRtpSender*, ExceptionCode&);
+ RefPtr<RTCRtpSender> addTrack(Ref<MediaStreamTrack>&&, Vector<MediaStream*>, ExceptionCode&);
+ void removeTrack(RTCRtpSender&, ExceptionCode&);
void queuedCreateOffer(const Dictionary& offerOptions, PeerConnection::SessionDescriptionPromise&&);
void queuedCreateAnswer(const Dictionary& answerOptions, PeerConnection::SessionDescriptionPromise&&);
- void queuedSetLocalDescription(RTCSessionDescription*, PeerConnection::VoidPromise&&);
+ void queuedSetLocalDescription(RTCSessionDescription&, PeerConnection::VoidPromise&&);
RefPtr<RTCSessionDescription> localDescription() const;
RefPtr<RTCSessionDescription> currentLocalDescription() const;
RefPtr<RTCSessionDescription> pendingLocalDescription() const;
- void queuedSetRemoteDescription(RTCSessionDescription*, PeerConnection::VoidPromise&&);
+ void queuedSetRemoteDescription(RTCSessionDescription&, PeerConnection::VoidPromise&&);
RefPtr<RTCSessionDescription> remoteDescription() const;
RefPtr<RTCSessionDescription> currentRemoteDescription() const;
RefPtr<RTCSessionDescription> pendingRemoteDescription() const;
String signalingState() const;
- void queuedAddIceCandidate(RTCIceCandidate*, PeerConnection::VoidPromise&&);
+ void queuedAddIceCandidate(RTCIceCandidate&, PeerConnection::VoidPromise&&);
String iceGatheringState() const;
String iceConnectionState() const;
@@ -93,7 +93,7 @@
RTCConfiguration* getConfiguration() const;
void setConfiguration(const Dictionary& configuration, ExceptionCode&);
- void privateGetStats(MediaStreamTrack*, PeerConnection::StatsPromise&&);
+ void privateGetStats(MediaStreamTrack&, PeerConnection::StatsPromise&&);
void privateGetStats(PeerConnection::StatsPromise&&);
RefPtr<RTCDataChannel> createDataChannel(String label, const Dictionary& dataChannelDict, ExceptionCode&);
Modified: trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.idl (200230 => 200231)
--- trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.idl 2016-04-29 06:04:06 UTC (rev 200230)
+++ trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.idl 2016-04-29 07:18:30 UTC (rev 200231)
@@ -31,13 +31,12 @@
*/
[
- Conditional=WEB_RTC,
ActiveDOMObject,
- CustomConstructor(Dictionary rtcConfiguration),
+ Conditional=WEB_RTC,
ConstructorCallWith=ScriptExecutionContext,
ConstructorRaisesException,
+ CustomConstructor(Dictionary rtcConfiguration),
InterfaceName=webkitRTCPeerConnection,
- UsePointersEvenForNonNullableObjectArguments,
] interface RTCPeerConnection : EventTarget {
// Private functions called by runQueuedOperation() (RTCPeerConnectionInternals.js)
Modified: trunk/Source/WebCore/Modules/mediastream/RTCRtpReceiver.cpp (200230 => 200231)
--- trunk/Source/WebCore/Modules/mediastream/RTCRtpReceiver.cpp 2016-04-29 06:04:06 UTC (rev 200230)
+++ trunk/Source/WebCore/Modules/mediastream/RTCRtpReceiver.cpp 2016-04-29 07:18:30 UTC (rev 200231)
@@ -35,7 +35,7 @@
namespace WebCore {
-RTCRtpReceiver::RTCRtpReceiver(RefPtr<MediaStreamTrack>&& track)
+RTCRtpReceiver::RTCRtpReceiver(Ref<MediaStreamTrack>&& track)
: RTCRtpSenderReceiverBase(WTFMove(track))
{
}
Modified: trunk/Source/WebCore/Modules/mediastream/RTCRtpReceiver.h (200230 => 200231)
--- trunk/Source/WebCore/Modules/mediastream/RTCRtpReceiver.h 2016-04-29 06:04:06 UTC (rev 200230)
+++ trunk/Source/WebCore/Modules/mediastream/RTCRtpReceiver.h 2016-04-29 07:18:30 UTC (rev 200231)
@@ -39,13 +39,13 @@
class RTCRtpReceiver : public RTCRtpSenderReceiverBase {
public:
- static Ref<RTCRtpReceiver> create(RefPtr<MediaStreamTrack>&& track)
+ static Ref<RTCRtpReceiver> create(Ref<MediaStreamTrack>&& track)
{
return adoptRef(*new RTCRtpReceiver(WTFMove(track)));
}
private:
- explicit RTCRtpReceiver(RefPtr<MediaStreamTrack>&&);
+ explicit RTCRtpReceiver(Ref<MediaStreamTrack>&&);
};
} // namespace WebCore
Modified: trunk/Source/WebCore/Modules/mediastream/RTCRtpSender.cpp (200230 => 200231)
--- trunk/Source/WebCore/Modules/mediastream/RTCRtpSender.cpp 2016-04-29 06:04:06 UTC (rev 200230)
+++ trunk/Source/WebCore/Modules/mediastream/RTCRtpSender.cpp 2016-04-29 07:18:30 UTC (rev 200231)
@@ -39,7 +39,7 @@
namespace WebCore {
-RTCRtpSender::RTCRtpSender(RefPtr<MediaStreamTrack>&& track, Vector<String>&& mediaStreamIds, RTCRtpSenderClient& client)
+RTCRtpSender::RTCRtpSender(Ref<MediaStreamTrack>&& track, Vector<String>&& mediaStreamIds, RTCRtpSenderClient& client)
: RTCRtpSenderReceiverBase(WTFMove(track))
, m_mediaStreamIds(WTFMove(mediaStreamIds))
, m_client(&client)
@@ -48,24 +48,19 @@
m_trackId = m_track->id();
}
-void RTCRtpSender::replaceTrack(MediaStreamTrack* withTrack, PeerConnection::VoidPromise&& promise, ExceptionCode& ec)
+void RTCRtpSender::replaceTrack(MediaStreamTrack& withTrack, PeerConnection::VoidPromise&& promise, ExceptionCode& ec)
{
- if (!withTrack) {
- ec = TypeError;
- return;
- }
-
if (!m_client) {
promise.reject(DOMError::create("InvalidStateError"));
return;
}
- if (m_track->kind() != withTrack->kind()) {
+ if (m_track->kind() != withTrack.kind()) {
ec = TypeError;
return;
}
- m_client->replaceTrack(*this, *withTrack, WTFMove(promise));
+ m_client->replaceTrack(*this, withTrack, WTFMove(promise));
}
} // namespace WebCore
Modified: trunk/Source/WebCore/Modules/mediastream/RTCRtpSender.h (200230 => 200231)
--- trunk/Source/WebCore/Modules/mediastream/RTCRtpSender.h 2016-04-29 06:04:06 UTC (rev 200230)
+++ trunk/Source/WebCore/Modules/mediastream/RTCRtpSender.h 2016-04-29 07:18:30 UTC (rev 200231)
@@ -48,7 +48,7 @@
class RTCRtpSender : public RTCRtpSenderReceiverBase {
public:
- static Ref<RTCRtpSender> create(RefPtr<MediaStreamTrack>&& track, Vector<String>&& mediaStreamIds, RTCRtpSenderClient& client)
+ static Ref<RTCRtpSender> create(Ref<MediaStreamTrack>&& track, Vector<String>&& mediaStreamIds, RTCRtpSenderClient& client)
{
return adoptRef(*new RTCRtpSender(WTFMove(track), WTFMove(mediaStreamIds), client));
}
@@ -58,10 +58,10 @@
void stop() { m_client = nullptr; }
- void replaceTrack(MediaStreamTrack*, PeerConnection::VoidPromise&&, ExceptionCode&);
+ void replaceTrack(MediaStreamTrack&, PeerConnection::VoidPromise&&, ExceptionCode&);
private:
- RTCRtpSender(RefPtr<MediaStreamTrack>&&, Vector<String>&& mediaStreamIds, RTCRtpSenderClient&);
+ RTCRtpSender(Ref<MediaStreamTrack>&&, Vector<String>&& mediaStreamIds, RTCRtpSenderClient&);
String m_trackId;
Vector<String> m_mediaStreamIds;
Modified: trunk/Source/WebCore/Modules/mediastream/RTCRtpSender.idl (200230 => 200231)
--- trunk/Source/WebCore/Modules/mediastream/RTCRtpSender.idl 2016-04-29 06:04:06 UTC (rev 200230)
+++ trunk/Source/WebCore/Modules/mediastream/RTCRtpSender.idl 2016-04-29 07:18:30 UTC (rev 200231)
@@ -30,7 +30,6 @@
[
Conditional=WEB_RTC,
- UsePointersEvenForNonNullableObjectArguments,
] interface RTCRtpSender {
readonly attribute MediaStreamTrack track;
Modified: trunk/Source/WebCore/Modules/mediastream/RTCRtpSenderReceiverBase.h (200230 => 200231)
--- trunk/Source/WebCore/Modules/mediastream/RTCRtpSenderReceiverBase.h 2016-04-29 06:04:06 UTC (rev 200230)
+++ trunk/Source/WebCore/Modules/mediastream/RTCRtpSenderReceiverBase.h 2016-04-29 07:18:30 UTC (rev 200231)
@@ -46,14 +46,14 @@
public:
virtual ~RTCRtpSenderReceiverBase() { }
- MediaStreamTrack* track() const { return m_track.get(); }
+ MediaStreamTrack& track() { return m_track; }
protected:
- RTCRtpSenderReceiverBase(RefPtr<MediaStreamTrack>&& track)
- : m_track(track)
+ RTCRtpSenderReceiverBase(Ref<MediaStreamTrack>&& track)
+ : m_track(WTFMove(track))
{ }
- RefPtr<MediaStreamTrack> m_track;
+ Ref<MediaStreamTrack> m_track;
};
} // namespace WebCore