Changeset 166325 in webkit


Ignore:
Timestamp:
Mar 26, 2014 4:26:48 PM (10 years ago)
Author:
thiago.lacerda@openbossa.org
Message:

Add platform implementation for RTCOfferAnswerOptions and RTCOfferOptions
https://bugs.webkit.org/show_bug.cgi?id=130689

Reviewed by Eric Carlson.

RTCOfferAnswerOptions and RTCOfferOptions objects were being passed to platform class, causing a layer
violation.

  • Modules/mediastream/RTCOfferAnswerOptions.cpp:

(WebCore::RTCOfferAnswerOptions::initialize):
(WebCore::RTCOfferOptions::initialize):

  • Modules/mediastream/RTCOfferAnswerOptions.h:

(WebCore::RTCOfferAnswerOptions::requestIdentity):
(WebCore::RTCOfferAnswerOptions::privateOfferAnswerOptions):
(WebCore::RTCOfferAnswerOptions::RTCOfferAnswerOptions):
(WebCore::RTCOfferOptions::offerToReceiveVideo):
(WebCore::RTCOfferOptions::offerToReceiveAudio):
(WebCore::RTCOfferOptions::voiceActivityDetection):
(WebCore::RTCOfferOptions::iceRestart):
(WebCore::RTCOfferOptions::privateOfferOptions):
(WebCore::RTCOfferOptions::RTCOfferOptions):

  • Modules/mediastream/RTCPeerConnection.cpp:

(WebCore::RTCPeerConnection::createOffer):
(WebCore::RTCPeerConnection::createAnswer):

  • platform/mediastream/RTCOfferAnswerOptionsPrivate.h: Added.
  • platform/mediastream/RTCPeerConnectionHandler.h:
  • platform/mock/RTCPeerConnectionHandlerMock.cpp:

(WebCore::RTCPeerConnectionHandlerMock::createOffer):
(WebCore::RTCPeerConnectionHandlerMock::createAnswer):

  • platform/mock/RTCPeerConnectionHandlerMock.h:
Location:
trunk/Source/WebCore
Files:
7 edited
1 copied

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r166323 r166325  
     12014-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
    1342014-03-26  Zalan Bujtas  <zalan@apple.com>
    235
  • trunk/Source/WebCore/Modules/mediastream/RTCOfferAnswerOptions.cpp

    r165676 r166325  
    3333namespace WebCore {
    3434
    35 static bool validateRequestIdentity(const String& value)
    36 {
    37     return value == "yes" || value == "no" || value == "ifconfigured";
    38 }
    39 
    4035PassRefPtr<RTCOfferAnswerOptions> RTCOfferAnswerOptions::create(const Dictionary& options, ExceptionCode& ec)
    4136{
     
    5449bool RTCOfferAnswerOptions::initialize(const Dictionary& options)
    5550{
     51    if (!m_private)
     52        m_private = RTCOfferAnswerOptionsPrivate::create();
     53
    5654    String requestIdentity;
    5755    if (!options.isUndefinedOrNull() && (!options.get("requestIdentity", requestIdentity) || requestIdentity.isEmpty()))
    5856        return false;
    5957
    60     if (validateRequestIdentity(requestIdentity))
    61         m_requestIdentity = requestIdentity;
    62 
     58    m_private->setRequestIdentity(requestIdentity);
    6359    return true;
    6460}
     
    7975bool RTCOfferOptions::initialize(const Dictionary& options)
    8076{
     77    RefPtr<RTCOfferOptionsPrivate> optionsPrivate = RTCOfferOptionsPrivate::create();
     78    m_private = optionsPrivate;
     79
    8180    if (options.isUndefinedOrNull())
    8281        return true;
     
    9089        return false;
    9190
    92     m_offerToReceiveVideo = offerToReceiveVideoStr.toInt64Strict(&numberConversionSuccess);
     91    int64_t intConversionResult = offerToReceiveVideoStr.toInt64Strict(&numberConversionSuccess);
    9392    if (!numberConversionSuccess)
    9493        return false;
     94
     95    optionsPrivate->setOfferToReceiveVideo(intConversionResult);
    9596
    9697    String offerToReceiveAudioStr;
     
    9899        return false;
    99100
    100     m_offerToReceiveAudio = offerToReceiveAudioStr.toInt64Strict(&numberConversionSuccess);
     101    intConversionResult = offerToReceiveAudioStr.toInt64Strict(&numberConversionSuccess);
    101102    if (!numberConversionSuccess)
    102103        return false;
    103104
     105    optionsPrivate->setOfferToReceiveAudio(intConversionResult);
     106
    104107    bool voiceActivityDetection;
    105108    if (options.get("voiceActivityDetection", voiceActivityDetection))
    106         m_voiceActivityDetection = voiceActivityDetection;
     109        optionsPrivate->setVoiceActivityDetection(voiceActivityDetection);
    107110
    108111    bool iceRestart;
    109112    if (options.get("iceRestart", iceRestart))
    110         m_iceRestart = iceRestart;
     113        optionsPrivate->setIceRestart(iceRestart);
    111114
    112115    return true;
  • trunk/Source/WebCore/Modules/mediastream/RTCOfferAnswerOptions.h

    r165676 r166325  
    3131#include "Dictionary.h"
    3232#include "ExceptionCode.h"
     33#include "RTCOfferAnswerOptionsPrivate.h"
    3334#include <wtf/PassRefPtr.h>
    3435#include <wtf/RefCounted.h>
     
    4243    static PassRefPtr<RTCOfferAnswerOptions> create(const Dictionary&, ExceptionCode&);
    4344
    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(); }
    4547
    4648    virtual ~RTCOfferAnswerOptions() { }
     
    4850protected:
    4951    virtual bool initialize(const Dictionary&);
    50     RTCOfferAnswerOptions()
    51         : m_requestIdentity("ifconfigured")
    52     {
    53     }
     52    RTCOfferAnswerOptions() { }
    5453
    55 private:
    56     String m_requestIdentity;
     54    RefPtr<RTCOfferAnswerOptionsPrivate> m_private;
    5755};
    5856
     
    6159    static PassRefPtr<RTCOfferOptions> create(const Dictionary&, ExceptionCode&);
    6260
    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()); }
    6766
    6867    virtual ~RTCOfferOptions() { }
     
    7069private:
    7170    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() { }
    8472};
    8573
  • trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.cpp

    r166003 r166325  
    230230
    231231    RefPtr<RTCSessionDescriptionRequestImpl> request = RTCSessionDescriptionRequestImpl::create(scriptExecutionContext(), successCallback, errorCallback);
    232     m_peerHandler->createOffer(request.release(), options.release());
     232    m_peerHandler->createOffer(request.release(), options->privateOfferOptions());
    233233}
    234234
     
    255255
    256256    RefPtr<RTCSessionDescriptionRequestImpl> request = RTCSessionDescriptionRequestImpl::create(scriptExecutionContext(), successCallback, errorCallback);
    257     m_peerHandler->createAnswer(request.release(), options.release());
     257    m_peerHandler->createAnswer(request.release(), options->privateOfferAnswerOptions());
    258258}
    259259
  • trunk/Source/WebCore/platform/mediastream/RTCOfferAnswerOptionsPrivate.h

    r166323 r166325  
    2424 */
    2525
    26 #ifndef RTCOfferAnswerOptions_h
    27 #define RTCOfferAnswerOptions_h
     26#ifndef RTCOfferAnswerOptionsPrivate_h
     27#define RTCOfferAnswerOptionsPrivate_h
    2828
    2929#if ENABLE(MEDIA_STREAM)
    3030
    31 #include "Dictionary.h"
    32 #include "ExceptionCode.h"
    3331#include <wtf/PassRefPtr.h>
    3432#include <wtf/RefCounted.h>
     33#include <wtf/text/WTFString.h>
    3534
    3635namespace WebCore {
    3736
    38 class Dictionary;
     37static bool validateRequestIdentity(const String& value)
     38{
     39    return value == "yes" || value == "no" || value == "ifconfigured";
     40}
    3941
    40 class RTCOfferAnswerOptions : public RefCounted<RTCOfferAnswerOptions> {
     42class RTCOfferAnswerOptionsPrivate : public RefCounted<RTCOfferAnswerOptionsPrivate> {
    4143public:
    42     static PassRefPtr<RTCOfferAnswerOptions> create(const Dictionary&, ExceptionCode&);
     44    static PassRefPtr<RTCOfferAnswerOptionsPrivate> create()
     45    {
     46        return adoptRef(new RTCOfferAnswerOptionsPrivate());
     47    }
    4348
    4449    const String& requestIdentity() const { return m_requestIdentity; }
     50    void setRequestIdentity(const String& requestIdentity)
     51    {
     52        if (!validateRequestIdentity(requestIdentity))
     53            return;
    4554
    46     virtual ~RTCOfferAnswerOptions() { }
     55        m_requestIdentity = requestIdentity;
     56    }
     57
     58    virtual ~RTCOfferAnswerOptionsPrivate() { }
    4759
    4860protected:
    49     virtual bool initialize(const Dictionary&);
    50     RTCOfferAnswerOptions()
     61    RTCOfferAnswerOptionsPrivate()
    5162        : m_requestIdentity("ifconfigured")
    5263    {
     
    5768};
    5869
    59 class RTCOfferOptions : public RTCOfferAnswerOptions {
     70class RTCOfferOptionsPrivate : public RTCOfferAnswerOptionsPrivate {
    6071public:
    61     static PassRefPtr<RTCOfferOptions> create(const Dictionary&, ExceptionCode&);
     72    static PassRefPtr<RTCOfferOptionsPrivate> create()
     73    {
     74        return adoptRef(new RTCOfferOptionsPrivate());
     75    }
    6276
    6377    int64_t offerToReceiveVideo() const { return m_offerToReceiveVideo; }
     78    void setOfferToReceiveVideo(int64_t offerToReceiveVideo) { m_offerToReceiveVideo = offerToReceiveVideo; }
    6479    int64_t offerToReceiveAudio() const { return m_offerToReceiveAudio; }
     80    void setOfferToReceiveAudio(int64_t offerToReceiveAudio) { m_offerToReceiveAudio = offerToReceiveAudio; }
    6581    bool voiceActivityDetection() const { return m_voiceActivityDetection; }
     82    void setVoiceActivityDetection(bool voiceActivityDetection) { m_voiceActivityDetection = voiceActivityDetection; }
    6683    bool iceRestart() const { return m_iceRestart; }
     84    void setIceRestart(bool iceRestart) { m_iceRestart = iceRestart; }
    6785
    68     virtual ~RTCOfferOptions() { }
     86    virtual ~RTCOfferOptionsPrivate() { }
    6987
    7088private:
    71     virtual bool initialize(const Dictionary&) override;
    72     RTCOfferOptions()
    73         : m_offerToReceiveVideo(0)
     89    RTCOfferOptionsPrivate()
     90        : RTCOfferAnswerOptionsPrivate()
     91        , m_offerToReceiveVideo(0)
    7492        , m_offerToReceiveAudio(0)
    7593        , m_voiceActivityDetection(true)
     
    88106#endif // ENABLE(MEDIA_STREAM)
    89107
    90 #endif // RTCOfferAnswerOptions_h
     108#endif // RTCOfferAnswerOptionsPrivate_h
  • trunk/Source/WebCore/platform/mediastream/RTCPeerConnectionHandler.h

    r166003 r166325  
    4545class RTCDataChannelHandler;
    4646class RTCIceCandidateDescriptor;
    47 class RTCOfferOptions;
    48 class RTCOfferAnswerOptions;
     47class RTCOfferOptionsPrivate;
     48class RTCOfferAnswerOptionsPrivate;
    4949class RTCPeerConnectionHandler;
    5050class RTCPeerConnectionHandlerClient;
     
    8484    virtual bool initialize(PassRefPtr<RTCConfigurationPrivate>) = 0;
    8585
    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;
    8888    virtual void setLocalDescription(PassRefPtr<RTCVoidRequest>, PassRefPtr<RTCSessionDescriptionDescriptor>) = 0;
    8989    virtual void setRemoteDescription(PassRefPtr<RTCVoidRequest>, PassRefPtr<RTCSessionDescriptionDescriptor>) = 0;
  • trunk/Source/WebCore/platform/mock/RTCPeerConnectionHandlerMock.cpp

    r166003 r166325  
    5959}
    6060
    61 void RTCPeerConnectionHandlerMock::createOffer(PassRefPtr<RTCSessionDescriptionRequest> request, PassRefPtr<RTCOfferOptions>)
     61void RTCPeerConnectionHandlerMock::createOffer(PassRefPtr<RTCSessionDescriptionRequest> request, PassRefPtr<RTCOfferOptionsPrivate>)
    6262{
    6363    RefPtr<SessionRequestNotifier> notifier = adoptRef(new SessionRequestNotifier(request, RTCSessionDescriptionDescriptor::create("offer", "local")));
     
    6565}
    6666
    67 void RTCPeerConnectionHandlerMock::createAnswer(PassRefPtr<RTCSessionDescriptionRequest> request, PassRefPtr<RTCOfferAnswerOptions>)
     67void RTCPeerConnectionHandlerMock::createAnswer(PassRefPtr<RTCSessionDescriptionRequest> request, PassRefPtr<RTCOfferAnswerOptionsPrivate>)
    6868{
    6969    RefPtr<SessionRequestNotifier> notifier = adoptRef(new SessionRequestNotifier(request, RTCSessionDescriptionDescriptor::create("answer", "local")));
  • trunk/Source/WebCore/platform/mock/RTCPeerConnectionHandlerMock.h

    r166003 r166325  
    4444    virtual bool initialize(PassRefPtr<RTCConfigurationPrivate>) override;
    4545
    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;
    4848    virtual void setLocalDescription(PassRefPtr<RTCVoidRequest>, PassRefPtr<RTCSessionDescriptionDescriptor>) override;
    4949    virtual void setRemoteDescription(PassRefPtr<RTCVoidRequest>, PassRefPtr<RTCSessionDescriptionDescriptor>) override;
Note: See TracChangeset for help on using the changeset viewer.