Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  0098.patch   Sprache: unbekannt

 
From: Dan Baker <dbaker@mozilla.com>
Date: Thu, 14 Mar 2024 10:51:00 -0600
Subject: Bug 1883116 - (fix-e79e722834) add enviroment_factory to libwebrtc
 build and enforce providing clock and task_queue when creating Environment

Mercurial Revision: https://hg.mozilla.org/mozilla-central/rev/2185cab977988fd4ab03b38dc67f9b06162444da
---
 BUILD.gn                               |  1 +
 api/environment/environment_factory.cc | 10 ++++++++++
 api/task_queue/BUILD.gn                |  5 +++++
 3 files changed, 16 insertions(+)

diff --git a/BUILD.gn b/BUILD.gn
index 2e60d06388..07971feb1c 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -613,6 +613,7 @@ if (!build_with_chromium) {
 
     if (build_with_mozilla) {
       deps += [
+        "api/environment:environment_factory",
         "api/video:video_frame",
         "api/video:video_rtp_headers",
         "test:rtp_test_utils",
diff --git a/api/environment/environment_factory.cc b/api/environment/environment_factory.cc
index 293ef6cf8a..b9cb6b4f53 100644
--- a/api/environment/environment_factory.cc
+++ b/api/environment/environment_factory.cc
@@ -102,12 +102,22 @@ Environment EnvironmentFactory::CreateWithDefaults() && {
   if (field_trials_ == nullptr) {
     Set(std::make_unique<FieldTrialBasedConfig>());
   }
+#if defined(WEBRTC_MOZILLA_BUILD)
+  // We want to use our clock, not GetRealTimeClockRaw, and we avoid
+  // building the code under third_party/libwebrtc/task_queue.  To
+  // ensure we're setting up things correctly, namely providing an
+  // Environment object with a preset task_queue_factory and clock,
+  // we'll do a release assert here.
+  RTC_CHECK(clock_);
+  RTC_CHECK(task_queue_factory_);
+#else
   if (clock_ == nullptr) {
     Set(Clock::GetRealTimeClock());
   }
   if (task_queue_factory_ == nullptr) {
     Set(CreateDefaultTaskQueueFactory(field_trials_));
   }
+#endif
   if (event_log_ == nullptr) {
     Set(std::make_unique<RtcEventLogNull>());
   }
diff --git a/api/task_queue/BUILD.gn b/api/task_queue/BUILD.gn
index bacc3ca87a..5c3dd242b6 100644
--- a/api/task_queue/BUILD.gn
+++ b/api/task_queue/BUILD.gn
@@ -83,6 +83,10 @@ rtc_library("task_queue_test") {
 }
 
 rtc_library("default_task_queue_factory") {
+# Mozilla - disable this entire target to avoid inclusion of code we want
+# to avoid.  Better here than trying to wack-a-mole for places that list
+# it as a dependency.
+if (!build_with_mozilla) {
   visibility = [ "*" ]
   if (!is_ios && !is_android) {
     # Internally webrtc shouldn't rely on any specific TaskQueue implementation
@@ -121,6 +125,7 @@ rtc_library("default_task_queue_factory") {
     sources += [ "default_task_queue_factory_stdlib.cc" ]
     deps += [ "../../rtc_base:rtc_task_queue_stdlib" ]
   }
+} # of if (!build_with_mozilla) {
 }
 
 rtc_library("pending_task_safety_flag") {

[ Dauer der Verarbeitung: 0.2 Sekunden  (vorverarbeitet)  ]

                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge