| 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 05661d304af846964dd60ba339ff97d615b47789..2928fa6b48ccd26f63e4d1c419dd0f0e043a97a4 100644
|
| --- a/content/renderer/media/rtc_certificate_generator.cc
|
| +++ b/content/renderer/media/rtc_certificate_generator.cc
|
| @@ -57,6 +57,7 @@ class RTCCertificateIdentityObserver
|
| const blink::WebRTCKeyParams& key_params,
|
| const GURL& url,
|
| const GURL& first_party_for_cookies,
|
| + const rtc::Optional<uint64_t>& expires_ms,
|
| std::unique_ptr<blink::WebRTCCertificateCallback> observer) {
|
| DCHECK(main_thread_->BelongsToCurrentThread());
|
| DCHECK(!observer_) << "Already have a RequestIdentity in progress.";
|
| @@ -66,20 +67,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.
|
| @@ -144,6 +147,28 @@ void RTCCertificateGenerator::generateCertificate(
|
| const blink::WebURL& url,
|
| const blink::WebURL& first_party_for_cookies,
|
| std::unique_ptr<blink::WebRTCCertificateCallback> observer) {
|
| + generateCertificateWithOptionalExpiration(
|
| + key_params, url, first_party_for_cookies, rtc::Optional<uint64_t>(),
|
| + std::move(observer));
|
| +}
|
| +
|
| +void RTCCertificateGenerator::generateCertificateWithExpiration(
|
| + const blink::WebRTCKeyParams& key_params,
|
| + const blink::WebURL& url,
|
| + const blink::WebURL& first_party_for_cookies,
|
| + uint64_t expires_ms,
|
| + std::unique_ptr<blink::WebRTCCertificateCallback> observer) {
|
| + generateCertificateWithOptionalExpiration(
|
| + key_params, url, first_party_for_cookies,
|
| + rtc::Optional<uint64_t>(expires_ms), std::move(observer));
|
| +}
|
| +
|
| +void RTCCertificateGenerator::generateCertificateWithOptionalExpiration(
|
| + const blink::WebRTCKeyParams& key_params,
|
| + const blink::WebURL& url,
|
| + const blink::WebURL& first_party_for_cookies,
|
| + const rtc::Optional<uint64_t>& expires_ms,
|
| + std::unique_ptr<blink::WebRTCCertificateCallback> observer) {
|
| DCHECK(isSupportedKeyParams(key_params));
|
|
|
| #if defined(ENABLE_WEBRTC)
|
| @@ -161,7 +186,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,
|
| - std::move(observer));
|
| + expires_ms, std::move(observer));
|
| #else
|
| observer->onError();
|
| #endif
|
|
|