|
@@ -25,6 +25,8 @@
|
|
|
#include "components/proxy_config/proxy_config_dictionary.h"
|
|
|
#include "components/proxy_config/proxy_config_pref_names.h"
|
|
|
#include "content/public/browser/child_process_security_policy.h"
|
|
|
+#include "content/public/browser/network_quality_observer_factory.h"
|
|
|
+#include "content/public/browser/network_service_instance.h"
|
|
|
#include "content/public/common/content_switches.h"
|
|
|
#include "electron/fuses.h"
|
|
|
#include "extensions/common/constants.h"
|
|
@@ -130,6 +132,10 @@ void BrowserProcessImpl::PreCreateThreads() {
|
|
|
SystemNetworkContextManager::CreateInstance(local_state_.get());
|
|
|
}
|
|
|
|
|
|
+void BrowserProcessImpl::PreMainMessageLoopRun() {
|
|
|
+ CreateNetworkQualityObserver();
|
|
|
+}
|
|
|
+
|
|
|
void BrowserProcessImpl::PostMainMessageLoopRun() {
|
|
|
if (local_state_)
|
|
|
local_state_->CommitPendingWrite();
|
|
@@ -324,3 +330,18 @@ printing::PrintJobManager* BrowserProcessImpl::print_job_manager() {
|
|
|
StartupData* BrowserProcessImpl::startup_data() {
|
|
|
return nullptr;
|
|
|
}
|
|
|
+
|
|
|
+network::NetworkQualityTracker* BrowserProcessImpl::GetNetworkQualityTracker() {
|
|
|
+ if (!network_quality_tracker_) {
|
|
|
+ network_quality_tracker_ = std::make_unique<network::NetworkQualityTracker>(
|
|
|
+ base::BindRepeating(&content::GetNetworkService));
|
|
|
+ }
|
|
|
+ return network_quality_tracker_.get();
|
|
|
+}
|
|
|
+
|
|
|
+void BrowserProcessImpl::CreateNetworkQualityObserver() {
|
|
|
+ DCHECK(!network_quality_observer_);
|
|
|
+ network_quality_observer_ =
|
|
|
+ content::CreateNetworkQualityObserver(GetNetworkQualityTracker());
|
|
|
+ DCHECK(network_quality_observer_);
|
|
|
+}
|