Changeset 166325 in webkit
- Timestamp:
- Mar 26, 2014 4:26:48 PM (10 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 7 edited
- 1 copied
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r166323 r166325 1 2014-03-26 Thiago de Barros Lacerda <thiago.lacerda@openbossa.org> 2 3 Add platform implementation for RTCOfferAnswerOptions and RTCOfferOptions 4 https://bugs.webkit.org/show_bug.cgi?id=130689 5 6 Reviewed by Eric Carlson. 7 8 RTCOfferAnswerOptions and RTCOfferOptions objects were being passed to platform class, causing a layer 9 violation. 10 11 * Modules/mediastream/RTCOfferAnswerOptions.cpp: 12 (WebCore::RTCOfferAnswerOptions::initialize): 13 (WebCore::RTCOfferOptions::initialize): 14 * Modules/mediastream/RTCOfferAnswerOptions.h: 15 (WebCore::RTCOfferAnswerOptions::requestIdentity): 16 (WebCore::RTCOfferAnswerOptions::privateOfferAnswerOptions): 17 (WebCore::RTCOfferAnswerOptions::RTCOfferAnswerOptions): 18 (WebCore::RTCOfferOptions::offerToReceiveVideo): 19 (WebCore::RTCOfferOptions::offerToReceiveAudio): 20 (WebCore::RTCOfferOptions::voiceActivityDetection): 21 (WebCore::RTCOfferOptions::iceRestart): 22 (WebCore::RTCOfferOptions::privateOfferOptions): 23 (WebCore::RTCOfferOptions::RTCOfferOptions): 24 * Modules/mediastream/RTCPeerConnection.cpp: 25 (WebCore::RTCPeerConnection::createOffer): 26 (WebCore::RTCPeerConnection::createAnswer): 27 * platform/mediastream/RTCOfferAnswerOptionsPrivate.h: Added. 28 * platform/mediastream/RTCPeerConnectionHandler.h: 29 * platform/mock/RTCPeerConnectionHandlerMock.cpp: 30 (WebCore::RTCPeerConnectionHandlerMock::createOffer): 31 (WebCore::RTCPeerConnectionHandlerMock::createAnswer): 32 * platform/mock/RTCPeerConnectionHandlerMock.h: 33 1 34 2014-03-26 Zalan Bujtas <zalan@apple.com> 2 35 -
trunk/Source/WebCore/Modules/mediastream/RTCOfferAnswerOptions.cpp
r165676 r166325 33 33 namespace WebCore { 34 34 35 static bool validateRequestIdentity(const String& value)36 {37 return value == "yes" || value == "no" || value == "ifconfigured";38 }39 40 35 PassRefPtr<RTCOfferAnswerOptions> RTCOfferAnswerOptions::create(const Dictionary& options, ExceptionCode& ec) 41 36 { … … 54 49 bool RTCOfferAnswerOptions::initialize(const Dictionary& options) 55 50 { 51 if (!m_private) 52 m_private = RTCOfferAnswerOptionsPrivate::create(); 53 56 54 String requestIdentity; 57 55 if (!options.isUndefinedOrNull() && (!options.get("requestIdentity", requestIdentity) || requestIdentity.isEmpty())) 58 56 return false; 59 57 60 if (validateRequestIdentity(requestIdentity)) 61 m_requestIdentity = requestIdentity; 62 58 m_private->setRequestIdentity(requestIdentity); 63 59 return true; 64 60 } … … 79 75 bool RTCOfferOptions::initialize(const Dictionary& options) 80 76 { 77 RefPtr<RTCOfferOptionsPrivate> optionsPrivate = RTCOfferOptionsPrivate::create(); 78 m_private = optionsPrivate; 79 81 80 if (options.isUndefinedOrNull()) 82 81 return true; … … 90 89 return false; 91 90 92 m_offerToReceiveVideo= offerToReceiveVideoStr.toInt64Strict(&numberConversionSuccess);91 int64_t intConversionResult = offerToReceiveVideoStr.toInt64Strict(&numberConversionSuccess); 93 92 if (!numberConversionSuccess) 94 93 return false; 94 95 optionsPrivate->setOfferToReceiveVideo(intConversionResult); 95 96 96 97 String offerToReceiveAudioStr; … … 98 99 return false; 99 100 100 m_offerToReceiveAudio= offerToReceiveAudioStr.toInt64Strict(&numberConversionSuccess);101 intConversionResult = offerToReceiveAudioStr.toInt64Strict(&numberConversionSuccess); 101 102 if (!numberConversionSuccess) 102 103 return false; 103 104 105 optionsPrivate->setOfferToReceiveAudio(intConversionResult); 106 104 107 bool voiceActivityDetection; 105 108 if (options.get("voiceActivityDetection", voiceActivityDetection)) 106 m_voiceActivityDetection = voiceActivityDetection;109 optionsPrivate->setVoiceActivityDetection(voiceActivityDetection); 107 110 108 111 bool iceRestart; 109 112 if (options.get("iceRestart", iceRestart)) 110 m_iceRestart = iceRestart;113 optionsPrivate->setIceRestart(iceRestart); 111 114 112 115 return true; -
trunk/Source/WebCore/Modules/mediastream/RTCOfferAnswerOptions.h
r165676 r166325 31 31 #include "Dictionary.h" 32 32 #include "ExceptionCode.h" 33 #include "RTCOfferAnswerOptionsPrivate.h" 33 34 #include <wtf/PassRefPtr.h> 34 35 #include <wtf/RefCounted.h> … … 42 43 static PassRefPtr<RTCOfferAnswerOptions> create(const Dictionary&, ExceptionCode&); 43 44 44 const String& requestIdentity() const { return m_requestIdentity; } 45 const String& requestIdentity() const { return m_private->requestIdentity(); } 46 RTCOfferAnswerOptionsPrivate* privateOfferAnswerOptions() const { return m_private.get(); } 45 47 46 48 virtual ~RTCOfferAnswerOptions() { } … … 48 50 protected: 49 51 virtual bool initialize(const Dictionary&); 50 RTCOfferAnswerOptions() 51 : m_requestIdentity("ifconfigured") 52 { 53 } 52 RTCOfferAnswerOptions() { } 54 53 55 private: 56 String m_requestIdentity; 54 RefPtr<RTCOfferAnswerOptionsPrivate> m_private; 57 55 }; 58 56 … … 61 59 static PassRefPtr<RTCOfferOptions> create(const Dictionary&, ExceptionCode&); 62 60 63 int64_t offerToReceiveVideo() const { return m_offerToReceiveVideo; } 64 int64_t offerToReceiveAudio() const { return m_offerToReceiveAudio; } 65 bool voiceActivityDetection() const { return m_voiceActivityDetection; } 66 bool iceRestart() const { return m_iceRestart; } 61 int64_t offerToReceiveVideo() const { return privateOfferOptions()->offerToReceiveVideo(); } 62 int64_t offerToReceiveAudio() const { return privateOfferOptions()->offerToReceiveAudio(); } 63 bool voiceActivityDetection() const { return privateOfferOptions()->voiceActivityDetection(); } 64 bool iceRestart() const { return privateOfferOptions()->iceRestart(); } 65 RTCOfferOptionsPrivate* privateOfferOptions() const { return static_cast<RTCOfferOptionsPrivate*>(m_private.get()); } 67 66 68 67 virtual ~RTCOfferOptions() { } … … 70 69 private: 71 70 virtual bool initialize(const Dictionary&) override; 72 RTCOfferOptions() 73 : m_offerToReceiveVideo(0) 74 , m_offerToReceiveAudio(0) 75 , m_voiceActivityDetection(true) 76 , m_iceRestart(false) 77 { 78 } 79 80 int64_t m_offerToReceiveVideo; 81 int64_t m_offerToReceiveAudio; 82 bool m_voiceActivityDetection; 83 bool m_iceRestart; 71 RTCOfferOptions() { } 84 72 }; 85 73 -
trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.cpp
r166003 r166325 230 230 231 231 RefPtr<RTCSessionDescriptionRequestImpl> request = RTCSessionDescriptionRequestImpl::create(scriptExecutionContext(), successCallback, errorCallback); 232 m_peerHandler->createOffer(request.release(), options .release());232 m_peerHandler->createOffer(request.release(), options->privateOfferOptions()); 233 233 } 234 234 … … 255 255 256 256 RefPtr<RTCSessionDescriptionRequestImpl> request = RTCSessionDescriptionRequestImpl::create(scriptExecutionContext(), successCallback, errorCallback); 257 m_peerHandler->createAnswer(request.release(), options .release());257 m_peerHandler->createAnswer(request.release(), options->privateOfferAnswerOptions()); 258 258 } 259 259 -
trunk/Source/WebCore/platform/mediastream/RTCOfferAnswerOptionsPrivate.h
r166323 r166325 24 24 */ 25 25 26 #ifndef RTCOfferAnswerOptions _h27 #define RTCOfferAnswerOptions _h26 #ifndef RTCOfferAnswerOptionsPrivate_h 27 #define RTCOfferAnswerOptionsPrivate_h 28 28 29 29 #if ENABLE(MEDIA_STREAM) 30 30 31 #include "Dictionary.h"32 #include "ExceptionCode.h"33 31 #include <wtf/PassRefPtr.h> 34 32 #include <wtf/RefCounted.h> 33 #include <wtf/text/WTFString.h> 35 34 36 35 namespace WebCore { 37 36 38 class Dictionary; 37 static bool validateRequestIdentity(const String& value) 38 { 39 return value == "yes" || value == "no" || value == "ifconfigured"; 40 } 39 41 40 class RTCOfferAnswerOptions : public RefCounted<RTCOfferAnswerOptions> {42 class RTCOfferAnswerOptionsPrivate : public RefCounted<RTCOfferAnswerOptionsPrivate> { 41 43 public: 42 static PassRefPtr<RTCOfferAnswerOptions> create(const Dictionary&, ExceptionCode&); 44 static PassRefPtr<RTCOfferAnswerOptionsPrivate> create() 45 { 46 return adoptRef(new RTCOfferAnswerOptionsPrivate()); 47 } 43 48 44 49 const String& requestIdentity() const { return m_requestIdentity; } 50 void setRequestIdentity(const String& requestIdentity) 51 { 52 if (!validateRequestIdentity(requestIdentity)) 53 return; 45 54 46 virtual ~RTCOfferAnswerOptions() { } 55 m_requestIdentity = requestIdentity; 56 } 57 58 virtual ~RTCOfferAnswerOptionsPrivate() { } 47 59 48 60 protected: 49 virtual bool initialize(const Dictionary&); 50 RTCOfferAnswerOptions() 61 RTCOfferAnswerOptionsPrivate() 51 62 : m_requestIdentity("ifconfigured") 52 63 { … … 57 68 }; 58 69 59 class RTCOfferOptions : public RTCOfferAnswerOptions{70 class RTCOfferOptionsPrivate : public RTCOfferAnswerOptionsPrivate { 60 71 public: 61 static PassRefPtr<RTCOfferOptions> create(const Dictionary&, ExceptionCode&); 72 static PassRefPtr<RTCOfferOptionsPrivate> create() 73 { 74 return adoptRef(new RTCOfferOptionsPrivate()); 75 } 62 76 63 77 int64_t offerToReceiveVideo() const { return m_offerToReceiveVideo; } 78 void setOfferToReceiveVideo(int64_t offerToReceiveVideo) { m_offerToReceiveVideo = offerToReceiveVideo; } 64 79 int64_t offerToReceiveAudio() const { return m_offerToReceiveAudio; } 80 void setOfferToReceiveAudio(int64_t offerToReceiveAudio) { m_offerToReceiveAudio = offerToReceiveAudio; } 65 81 bool voiceActivityDetection() const { return m_voiceActivityDetection; } 82 void setVoiceActivityDetection(bool voiceActivityDetection) { m_voiceActivityDetection = voiceActivityDetection; } 66 83 bool iceRestart() const { return m_iceRestart; } 84 void setIceRestart(bool iceRestart) { m_iceRestart = iceRestart; } 67 85 68 virtual ~RTCOfferOptions () { }86 virtual ~RTCOfferOptionsPrivate() { } 69 87 70 88 private: 71 virtual bool initialize(const Dictionary&) override;72 RTCOfferOptions()73 :m_offerToReceiveVideo(0)89 RTCOfferOptionsPrivate() 90 : RTCOfferAnswerOptionsPrivate() 91 , m_offerToReceiveVideo(0) 74 92 , m_offerToReceiveAudio(0) 75 93 , m_voiceActivityDetection(true) … … 88 106 #endif // ENABLE(MEDIA_STREAM) 89 107 90 #endif // RTCOfferAnswerOptions _h108 #endif // RTCOfferAnswerOptionsPrivate_h -
trunk/Source/WebCore/platform/mediastream/RTCPeerConnectionHandler.h
r166003 r166325 45 45 class RTCDataChannelHandler; 46 46 class RTCIceCandidateDescriptor; 47 class RTCOfferOptions ;48 class RTCOfferAnswerOptions ;47 class RTCOfferOptionsPrivate; 48 class RTCOfferAnswerOptionsPrivate; 49 49 class RTCPeerConnectionHandler; 50 50 class RTCPeerConnectionHandlerClient; … … 84 84 virtual bool initialize(PassRefPtr<RTCConfigurationPrivate>) = 0; 85 85 86 virtual void createOffer(PassRefPtr<RTCSessionDescriptionRequest>, PassRefPtr<RTCOfferOptions >) = 0;87 virtual void createAnswer(PassRefPtr<RTCSessionDescriptionRequest>, PassRefPtr<RTCOfferAnswerOptions >) = 0;86 virtual void createOffer(PassRefPtr<RTCSessionDescriptionRequest>, PassRefPtr<RTCOfferOptionsPrivate>) = 0; 87 virtual void createAnswer(PassRefPtr<RTCSessionDescriptionRequest>, PassRefPtr<RTCOfferAnswerOptionsPrivate>) = 0; 88 88 virtual void setLocalDescription(PassRefPtr<RTCVoidRequest>, PassRefPtr<RTCSessionDescriptionDescriptor>) = 0; 89 89 virtual void setRemoteDescription(PassRefPtr<RTCVoidRequest>, PassRefPtr<RTCSessionDescriptionDescriptor>) = 0; -
trunk/Source/WebCore/platform/mock/RTCPeerConnectionHandlerMock.cpp
r166003 r166325 59 59 } 60 60 61 void RTCPeerConnectionHandlerMock::createOffer(PassRefPtr<RTCSessionDescriptionRequest> request, PassRefPtr<RTCOfferOptions >)61 void RTCPeerConnectionHandlerMock::createOffer(PassRefPtr<RTCSessionDescriptionRequest> request, PassRefPtr<RTCOfferOptionsPrivate>) 62 62 { 63 63 RefPtr<SessionRequestNotifier> notifier = adoptRef(new SessionRequestNotifier(request, RTCSessionDescriptionDescriptor::create("offer", "local"))); … … 65 65 } 66 66 67 void RTCPeerConnectionHandlerMock::createAnswer(PassRefPtr<RTCSessionDescriptionRequest> request, PassRefPtr<RTCOfferAnswerOptions >)67 void RTCPeerConnectionHandlerMock::createAnswer(PassRefPtr<RTCSessionDescriptionRequest> request, PassRefPtr<RTCOfferAnswerOptionsPrivate>) 68 68 { 69 69 RefPtr<SessionRequestNotifier> notifier = adoptRef(new SessionRequestNotifier(request, RTCSessionDescriptionDescriptor::create("answer", "local"))); -
trunk/Source/WebCore/platform/mock/RTCPeerConnectionHandlerMock.h
r166003 r166325 44 44 virtual bool initialize(PassRefPtr<RTCConfigurationPrivate>) override; 45 45 46 virtual void createOffer(PassRefPtr<RTCSessionDescriptionRequest>, PassRefPtr<RTCOfferOptions >) override;47 virtual void createAnswer(PassRefPtr<RTCSessionDescriptionRequest>, PassRefPtr<RTCOfferAnswerOptions >) override;46 virtual void createOffer(PassRefPtr<RTCSessionDescriptionRequest>, PassRefPtr<RTCOfferOptionsPrivate>) override; 47 virtual void createAnswer(PassRefPtr<RTCSessionDescriptionRequest>, PassRefPtr<RTCOfferAnswerOptionsPrivate>) override; 48 48 virtual void setLocalDescription(PassRefPtr<RTCVoidRequest>, PassRefPtr<RTCSessionDescriptionDescriptor>) override; 49 49 virtual void setRemoteDescription(PassRefPtr<RTCVoidRequest>, PassRefPtr<RTCSessionDescriptionDescriptor>) override;
Note: See TracChangeset
for help on using the changeset viewer.