| Index: content/renderer/media/rtc_certificate_generator.cc
|
| diff --git a/content/renderer/media/rtc_certificate_generator.cc b/content/renderer/media/rtc_certificate_generator.cc
|
| index 83e17cb8dbedfee14495cd1f28e433ef7b950ab1..eefc8e5e29401222fdfdc238cd1cc5877bed631f 100644
|
| --- a/content/renderer/media/rtc_certificate_generator.cc
|
| +++ b/content/renderer/media/rtc_certificate_generator.cc
|
| @@ -55,6 +55,7 @@ class RTCCertificateIdentityObserver
|
| const blink::WebRTCKeyParams& key_params,
|
| const GURL& url,
|
| const GURL& first_party_for_cookies,
|
| + rtc::Optional<uint64_t> expires_ms,
|
| blink::WebCallbacks<blink::WebRTCCertificate*, void>* observer) {
|
| DCHECK(main_thread_->BelongsToCurrentThread());
|
| DCHECK(!observer_) << "Already have a RequestIdentity in progress.";
|
| @@ -64,20 +65,22 @@ class RTCCertificateIdentityObserver
|
| // Identity request must be performed on the WebRTC signaling thread.
|
| signaling_thread_->PostTask(FROM_HERE, base::Bind(
|
| &RTCCertificateIdentityObserver::RequestIdentityOnWebRtcSignalingThread,
|
| - this, url, first_party_for_cookies));
|
| + this, url, first_party_for_cookies, expires_ms));
|
| }
|
|
|
| private:
|
| void RequestIdentityOnWebRtcSignalingThread(
|
| GURL url,
|
| - GURL first_party_for_cookies) {
|
| + GURL first_party_for_cookies,
|
| + rtc::Optional<uint64_t> expires_ms) {
|
| DCHECK(signaling_thread_->BelongsToCurrentThread());
|
| rtc::scoped_ptr<PeerConnectionIdentityStore> store(
|
| new PeerConnectionIdentityStore(
|
| main_thread_, signaling_thread_, url, first_party_for_cookies));
|
| // Request identity with |this| as the observer. OnSuccess/OnFailure will be
|
| // called asynchronously.
|
| - store->RequestIdentity(WebRTCKeyParamsToKeyParams(key_params_), this);
|
| + store->RequestIdentity(WebRTCKeyParamsToKeyParams(key_params_),
|
| + expires_ms, this);
|
| }
|
|
|
| // webrtc::DtlsIdentityRequestObserver implementation.
|
| @@ -138,6 +141,26 @@ void RTCCertificateGenerator::generateCertificate(
|
| const blink::WebURL& url,
|
| const blink::WebURL& first_party_for_cookies,
|
| blink::WebCallbacks<blink::WebRTCCertificate*, void>* observer) {
|
| + generateCertificateExpires(key_params, url, first_party_for_cookies,
|
| + rtc::Optional<uint64_t>(), observer);
|
| +}
|
| +
|
| +void RTCCertificateGenerator::generateCertificate(
|
| + const blink::WebRTCKeyParams& key_params,
|
| + const blink::WebURL& url,
|
| + const blink::WebURL& first_party_for_cookies,
|
| + uint64_t expires_ms,
|
| + blink::WebCallbacks<blink::WebRTCCertificate*, void>* observer) {
|
| + generateCertificateExpires(key_params, url, first_party_for_cookies,
|
| + rtc::Optional<uint64_t>(expires_ms), observer);
|
| +}
|
| +
|
| +void RTCCertificateGenerator::generateCertificateExpires(
|
| + const blink::WebRTCKeyParams& key_params,
|
| + const blink::WebURL& url,
|
| + const blink::WebURL& first_party_for_cookies,
|
| + rtc::Optional<uint64_t> expires_ms,
|
| + blink::WebCallbacks<blink::WebRTCCertificate*, void>* observer) {
|
| DCHECK(isSupportedKeyParams(key_params));
|
|
|
| #if defined(ENABLE_WEBRTC)
|
| @@ -155,7 +178,7 @@ void RTCCertificateGenerator::generateCertificate(
|
| main_thread, signaling_thread));
|
| // |identity_observer| lives until request has completed.
|
| identity_observer->RequestIdentity(
|
| - key_params, url, first_party_for_cookies, observer);
|
| + key_params, url, first_party_for_cookies, expires_ms, observer);
|
| #else
|
| observer->onError();
|
| #endif
|
|
|