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

Unified Diff: content/renderer/media/rtc_peer_connection_handler.cc

Issue 1979553002: WebRTC: Launch ECDSA as default certificate (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: static_assert again, rebase with master Created 4 years, 7 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « content/public/common/content_features.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/renderer/media/rtc_peer_connection_handler.cc
diff --git a/content/renderer/media/rtc_peer_connection_handler.cc b/content/renderer/media/rtc_peer_connection_handler.cc
index 8e5e4235b189d25d498501bbfba7c4257509da51..e273e5113a934164a3e4c0347cab7459b0369397 100644
--- a/content/renderer/media/rtc_peer_connection_handler.cc
+++ b/content/renderer/media/rtc_peer_connection_handler.cc
@@ -722,6 +722,21 @@ void ConvertConstraintsToWebrtcOfferOptions(
base::LazyInstance<std::set<RTCPeerConnectionHandler*> >::Leaky
g_peer_connection_handlers = LAZY_INSTANCE_INITIALIZER;
+void OverrideDefaultCertificateBasedOnExperiment(
+ webrtc::PeerConnectionInterface::RTCConfiguration* config) {
+ if (base::FeatureList::IsEnabled(features::kWebRtcEcdsaDefault)) {
+ if (config->certificates.empty()) {
+ rtc::scoped_refptr<rtc::RTCCertificate> certificate =
+ PeerConnectionDependencyFactory::GenerateDefaultCertificate();
+ config->certificates.push_back(certificate);
+ }
+ }
+ // If the ECDSA experiment is not running we rely on the default being RSA for
+ // the control group. See bug related to this: crbug.com/611698.
+ static_assert(rtc::KT_DEFAULT == rtc::KT_RSA, "This code relies on "
+ "KT_DEFAULT == KT_RSA for RSA certificate generation.");
+}
+
} // namespace
// Implementation of LocalRTCStatsRequest.
@@ -952,14 +967,7 @@ bool RTCPeerConnectionHandler::initialize(
webrtc::PeerConnectionInterface::RTCConfiguration config;
GetNativeRtcConfiguration(server_configuration, &config);
-
- if (base::FeatureList::IsEnabled(features::kWebRtcEcdsaDefault)) {
- if (config.certificates.empty()) {
- rtc::scoped_refptr<rtc::RTCCertificate> certificate =
- PeerConnectionDependencyFactory::GenerateDefaultCertificate();
- config.certificates.push_back(certificate);
- }
- }
+ OverrideDefaultCertificateBasedOnExperiment(&config);
// Choose between RTC smoothness algorithm and prerenderer smoothing.
// Prerenderer smoothing is turned on if RTC smoothness is turned off.
@@ -996,14 +1004,7 @@ bool RTCPeerConnectionHandler::InitializeForTest(
DCHECK(thread_checker_.CalledOnValidThread());
webrtc::PeerConnectionInterface::RTCConfiguration config;
GetNativeRtcConfiguration(server_configuration, &config);
-
- if (base::FeatureList::IsEnabled(features::kWebRtcEcdsaDefault)) {
- if (config.certificates.empty()) {
- rtc::scoped_refptr<rtc::RTCCertificate> certificate =
- PeerConnectionDependencyFactory::GenerateDefaultCertificate();
- config.certificates.push_back(certificate);
- }
- }
+ OverrideDefaultCertificateBasedOnExperiment(&config);
peer_connection_observer_ = new Observer(weak_factory_.GetWeakPtr());
CopyConstraintsIntoRtcConfiguration(options, &config);
« no previous file with comments | « content/public/common/content_features.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698