| Index: talk/app/webrtc/webrtcsessiondescriptionfactory.cc
 | 
| diff --git a/talk/app/webrtc/webrtcsessiondescriptionfactory.cc b/talk/app/webrtc/webrtcsessiondescriptionfactory.cc
 | 
| index 4336372b5707211c5fd53beebde2f937fe6115e8..41bcfa0593688b0911a6d53f53cfdc0206d04288 100644
 | 
| --- a/talk/app/webrtc/webrtcsessiondescriptionfactory.cc
 | 
| +++ b/talk/app/webrtc/webrtcsessiondescriptionfactory.cc
 | 
| @@ -98,14 +98,14 @@ void WebRtcIdentityRequestObserver::OnSuccess(
 | 
|        rtc::kPemTypeRsaPrivateKey,
 | 
|        reinterpret_cast<const unsigned char*>(der_private_key.data()),
 | 
|        der_private_key.length());
 | 
| -  rtc::SSLIdentity* identity =
 | 
| -      rtc::SSLIdentity::FromPEMStrings(pem_key, pem_cert);
 | 
| -  SignalIdentityReady(identity);
 | 
| +  rtc::scoped_ptr<rtc::SSLIdentity> identity(
 | 
| +      rtc::SSLIdentity::FromPEMStrings(pem_key, pem_cert));
 | 
| +  SignalCertificateReady(rtc::RTCCertificate::Create(identity.Pass()));
 | 
|  }
 | 
|  
 | 
|  void WebRtcIdentityRequestObserver::OnSuccess(
 | 
|      rtc::scoped_ptr<rtc::SSLIdentity> identity) {
 | 
| -  SignalIdentityReady(identity.release());
 | 
| +  SignalCertificateReady(rtc::RTCCertificate::Create(identity.Pass()));
 | 
|  }
 | 
|  
 | 
|  // static
 | 
| @@ -195,8 +195,8 @@ WebRtcSessionDescriptionFactory::WebRtcSessionDescriptionFactory(
 | 
|  
 | 
|    identity_request_observer_->SignalRequestFailed.connect(
 | 
|        this, &WebRtcSessionDescriptionFactory::OnIdentityRequestFailed);
 | 
| -  identity_request_observer_->SignalIdentityReady.connect(
 | 
| -      this, &WebRtcSessionDescriptionFactory::SetIdentity);
 | 
| +  identity_request_observer_->SignalCertificateReady.connect(
 | 
| +      this, &WebRtcSessionDescriptionFactory::SetCertificate);
 | 
|  
 | 
|    rtc::KeyType key_type = rtc::KT_DEFAULT;
 | 
|    LOG(LS_VERBOSE) << "DTLS-SRTP enabled; sending DTLS identity request (key "
 | 
| @@ -387,9 +387,7 @@ void WebRtcSessionDescriptionFactory::OnMessage(rtc::Message* msg) {
 | 
|            static_cast<rtc::ScopedRefMessageData<rtc::RTCCertificate>*>(
 | 
|                msg->pdata);
 | 
|        LOG(LS_INFO) << "Using certificate supplied to the constructor.";
 | 
| -      // TODO(hbos): Pass around scoped_refptr<RTCCertificate> instead of
 | 
| -      // SSLIdentity* (then there will be no need to do GetReference here).
 | 
| -      SetIdentity(param->data()->identity()->GetReference());
 | 
| +      SetCertificate(param->data());
 | 
|        delete param;
 | 
|        break;
 | 
|      }
 | 
| @@ -516,14 +514,16 @@ void WebRtcSessionDescriptionFactory::OnIdentityRequestFailed(int error) {
 | 
|    FailPendingRequests(kFailedDueToIdentityFailed);
 | 
|  }
 | 
|  
 | 
| -void WebRtcSessionDescriptionFactory::SetIdentity(
 | 
| -    rtc::SSLIdentity* identity) {
 | 
| -  LOG(LS_VERBOSE) << "Setting new identity";
 | 
| +void WebRtcSessionDescriptionFactory::SetCertificate(
 | 
| +    const rtc::scoped_refptr<rtc::RTCCertificate>& certificate) {
 | 
| +  DCHECK(certificate);
 | 
| +  LOG(LS_VERBOSE) << "Setting new certificate";
 | 
|  
 | 
|    certificate_request_state_ = CERTIFICATE_SUCCEEDED;
 | 
| -  SignalIdentityReady(identity);
 | 
| +  SignalCertificateReady(certificate);
 | 
|  
 | 
| -  transport_desc_factory_.set_identity(identity);
 | 
| +  // TODO(hbos): set_certificate
 | 
| +  transport_desc_factory_.set_identity(certificate->identity());
 | 
|    transport_desc_factory_.set_secure(cricket::SEC_ENABLED);
 | 
|  
 | 
|    while (!create_session_description_requests_.empty()) {
 | 
| 
 |