Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1045)

Side by Side Diff: content/renderer/media/rtc_certificate_generator.cc

Issue 1740993002: RTCPeerConnection.generateCertificate: Optionally specify expiration. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: ...and generateCertificateExpires signature Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2015 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/renderer/media/rtc_certificate_generator.h" 5 #include "content/renderer/media/rtc_certificate_generator.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/macros.h" 9 #include "base/macros.h"
10 #include "content/renderer/media/peer_connection_identity_store.h" 10 #include "content/renderer/media/peer_connection_identity_store.h"
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
48 } 48 }
49 ~RTCCertificateIdentityObserver() override {} 49 ~RTCCertificateIdentityObserver() override {}
50 50
51 // Perform |store|->RequestIdentity with this identity observer and ensure 51 // Perform |store|->RequestIdentity with this identity observer and ensure
52 // that this identity observer is not deleted until the request has completed 52 // that this identity observer is not deleted until the request has completed
53 // by holding on to a reference to itself for the duration of the request. 53 // by holding on to a reference to itself for the duration of the request.
54 void RequestIdentity( 54 void RequestIdentity(
55 const blink::WebRTCKeyParams& key_params, 55 const blink::WebRTCKeyParams& key_params,
56 const GURL& url, 56 const GURL& url,
57 const GURL& first_party_for_cookies, 57 const GURL& first_party_for_cookies,
58 const rtc::Optional<uint64_t>& expires_ms,
58 blink::WebCallbacks<blink::WebRTCCertificate*, void>* observer) { 59 blink::WebCallbacks<blink::WebRTCCertificate*, void>* observer) {
59 DCHECK(main_thread_->BelongsToCurrentThread()); 60 DCHECK(main_thread_->BelongsToCurrentThread());
60 DCHECK(!observer_) << "Already have a RequestIdentity in progress."; 61 DCHECK(!observer_) << "Already have a RequestIdentity in progress.";
61 DCHECK(observer); 62 DCHECK(observer);
62 key_params_ = key_params; 63 key_params_ = key_params;
63 observer_ = observer; 64 observer_ = observer;
64 // Identity request must be performed on the WebRTC signaling thread. 65 // Identity request must be performed on the WebRTC signaling thread.
65 signaling_thread_->PostTask(FROM_HERE, base::Bind( 66 signaling_thread_->PostTask(FROM_HERE, base::Bind(
66 &RTCCertificateIdentityObserver::RequestIdentityOnWebRtcSignalingThread, 67 &RTCCertificateIdentityObserver::RequestIdentityOnWebRtcSignalingThread,
67 this, url, first_party_for_cookies)); 68 this, url, first_party_for_cookies, expires_ms));
hbos_chromium 2016/03/08 15:02:10 (I'm purposefully using the copy constructor here
68 } 69 }
69 70
70 private: 71 private:
71 void RequestIdentityOnWebRtcSignalingThread( 72 void RequestIdentityOnWebRtcSignalingThread(
72 GURL url, 73 GURL url,
73 GURL first_party_for_cookies) { 74 GURL first_party_for_cookies,
75 rtc::Optional<uint64_t> expires_ms) {
74 DCHECK(signaling_thread_->BelongsToCurrentThread()); 76 DCHECK(signaling_thread_->BelongsToCurrentThread());
75 rtc::scoped_ptr<PeerConnectionIdentityStore> store( 77 rtc::scoped_ptr<PeerConnectionIdentityStore> store(
76 new PeerConnectionIdentityStore( 78 new PeerConnectionIdentityStore(
77 main_thread_, signaling_thread_, url, first_party_for_cookies)); 79 main_thread_, signaling_thread_, url, first_party_for_cookies));
78 // Request identity with |this| as the observer. OnSuccess/OnFailure will be 80 // Request identity with |this| as the observer. OnSuccess/OnFailure will be
79 // called asynchronously. 81 // called asynchronously.
80 store->RequestIdentity(WebRTCKeyParamsToKeyParams(key_params_), this); 82 store->RequestIdentity(WebRTCKeyParamsToKeyParams(key_params_),
83 expires_ms, this);
81 } 84 }
82 85
83 // webrtc::DtlsIdentityRequestObserver implementation. 86 // webrtc::DtlsIdentityRequestObserver implementation.
84 void OnFailure(int error) override { 87 void OnFailure(int error) override {
85 DCHECK(signaling_thread_->BelongsToCurrentThread()); 88 DCHECK(signaling_thread_->BelongsToCurrentThread());
86 DCHECK(observer_); 89 DCHECK(observer_);
87 main_thread_->PostTask(FROM_HERE, base::Bind( 90 main_thread_->PostTask(FROM_HERE, base::Bind(
88 &RTCCertificateIdentityObserver::DoCallbackOnMainThread, 91 &RTCCertificateIdentityObserver::DoCallbackOnMainThread,
89 this, nullptr)); 92 this, nullptr));
90 } 93 }
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
131 DISALLOW_COPY_AND_ASSIGN(RTCCertificateIdentityObserver); 134 DISALLOW_COPY_AND_ASSIGN(RTCCertificateIdentityObserver);
132 }; 135 };
133 136
134 } // namespace 137 } // namespace
135 138
136 void RTCCertificateGenerator::generateCertificate( 139 void RTCCertificateGenerator::generateCertificate(
137 const blink::WebRTCKeyParams& key_params, 140 const blink::WebRTCKeyParams& key_params,
138 const blink::WebURL& url, 141 const blink::WebURL& url,
139 const blink::WebURL& first_party_for_cookies, 142 const blink::WebURL& first_party_for_cookies,
140 blink::WebCallbacks<blink::WebRTCCertificate*, void>* observer) { 143 blink::WebCallbacks<blink::WebRTCCertificate*, void>* observer) {
144 generateCertificateExpires(key_params, url, first_party_for_cookies,
145 rtc::Optional<uint64_t>(), observer);
146 }
147
148 void RTCCertificateGenerator::generateCertificate(
149 const blink::WebRTCKeyParams& key_params,
150 const blink::WebURL& url,
151 const blink::WebURL& first_party_for_cookies,
152 uint64_t expires_ms,
153 blink::WebCallbacks<blink::WebRTCCertificate*, void>* observer) {
154 generateCertificateExpires(key_params, url, first_party_for_cookies,
155 rtc::Optional<uint64_t>(expires_ms), observer);
156 }
157
158 void RTCCertificateGenerator::generateCertificateExpires(
Ryan Sleevi 2016/03/08 17:06:11 generateCertificateWithExpiration
hbos_chromium 2016/04/13 17:03:08 Done.
159 const blink::WebRTCKeyParams& key_params,
160 const blink::WebURL& url,
161 const blink::WebURL& first_party_for_cookies,
162 const rtc::Optional<uint64_t>& expires_ms,
163 blink::WebCallbacks<blink::WebRTCCertificate*, void>* observer) {
141 DCHECK(isSupportedKeyParams(key_params)); 164 DCHECK(isSupportedKeyParams(key_params));
142 165
143 #if defined(ENABLE_WEBRTC) 166 #if defined(ENABLE_WEBRTC)
144 const scoped_refptr<base::SingleThreadTaskRunner> main_thread = 167 const scoped_refptr<base::SingleThreadTaskRunner> main_thread =
145 base::ThreadTaskRunnerHandle::Get(); 168 base::ThreadTaskRunnerHandle::Get();
146 169
147 PeerConnectionDependencyFactory* pc_dependency_factory = 170 PeerConnectionDependencyFactory* pc_dependency_factory =
148 RenderThreadImpl::current()->GetPeerConnectionDependencyFactory(); 171 RenderThreadImpl::current()->GetPeerConnectionDependencyFactory();
149 pc_dependency_factory->EnsureInitialized(); 172 pc_dependency_factory->EnsureInitialized();
150 const scoped_refptr<base::SingleThreadTaskRunner> signaling_thread = 173 const scoped_refptr<base::SingleThreadTaskRunner> signaling_thread =
151 pc_dependency_factory->GetWebRtcSignalingThread(); 174 pc_dependency_factory->GetWebRtcSignalingThread();
152 175
153 rtc::scoped_refptr<RTCCertificateIdentityObserver> identity_observer( 176 rtc::scoped_refptr<RTCCertificateIdentityObserver> identity_observer(
154 new rtc::RefCountedObject<RTCCertificateIdentityObserver>( 177 new rtc::RefCountedObject<RTCCertificateIdentityObserver>(
155 main_thread, signaling_thread)); 178 main_thread, signaling_thread));
156 // |identity_observer| lives until request has completed. 179 // |identity_observer| lives until request has completed.
157 identity_observer->RequestIdentity( 180 identity_observer->RequestIdentity(
158 key_params, url, first_party_for_cookies, observer); 181 key_params, url, first_party_for_cookies, expires_ms, observer);
159 #else 182 #else
160 observer->onError(); 183 observer->onError();
161 #endif 184 #endif
162 } 185 }
163 186
164 bool RTCCertificateGenerator::isSupportedKeyParams( 187 bool RTCCertificateGenerator::isSupportedKeyParams(
165 const blink::WebRTCKeyParams& key_params) { 188 const blink::WebRTCKeyParams& key_params) {
166 return WebRTCKeyParamsToKeyParams(key_params).IsValid(); 189 return WebRTCKeyParamsToKeyParams(key_params).IsValid();
167 } 190 }
168 191
169 } // namespace content 192 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698