Skip to content

Commit 043d846

Browse files
committed
Attempted P3A crash fix
1 parent 76bb395 commit 043d846

File tree

4 files changed

+12
-9
lines changed

4 files changed

+12
-9
lines changed

browser/brave_browser_main_extra_parts.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ void BraveBrowserMainExtraParts::PreMainMessageLoopRun() {
7676
// Disabled on mobile platforms, see for instance issues/6176
7777
if (g_brave_browser_process->p3a_service() != nullptr) {
7878
// TODO(iefremov): Maybe find a better place for this initialization.
79-
g_brave_browser_process->p3a_service()->Init(
79+
g_brave_browser_process->p3a_service()->SetURLLoaderFactory(
8080
g_browser_process->shared_url_loader_factory());
8181
}
8282

components/p3a/p3a_service.cc

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -192,12 +192,13 @@ bool P3AService::IsP3AEnabled() const {
192192
return local_state_->GetBoolean(kP3AEnabled);
193193
}
194194

195-
void P3AService::Init(
195+
void P3AService::SetURLLoaderFactory(
196196
scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory) {
197-
if (url_loader_factory) {
198-
url_loader_factory_ = url_loader_factory;
199-
}
197+
url_loader_factory_ = url_loader_factory;
198+
Init();
199+
}
200200

201+
void P3AService::Init() {
201202
if (initialized_ || !url_loader_factory_) {
202203
return;
203204
}
@@ -262,7 +263,7 @@ const MetricConfig* P3AService::GetBaseMetricConfig(
262263

263264
void P3AService::OnRemoteConfigLoaded() {
264265
if (!initialized_) {
265-
Init(nullptr);
266+
Init();
266267
} else {
267268
message_manager_->RemoveObsoleteLogs();
268269
}

components/p3a/p3a_service.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -93,8 +93,8 @@ class P3AService : public base::RefCountedThreadSafe<P3AService>,
9393

9494
bool IsP3AEnabled() const;
9595

96-
// Needs a living browser process to complete the initialization.
97-
void Init(scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory);
96+
void SetURLLoaderFactory(
97+
scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory);
9898

9999
// Invoked by callbacks registered by our service. Since these callbacks
100100
// can fire on any thread, this method reposts everything to UI thread.
@@ -129,6 +129,8 @@ class P3AService : public base::RefCountedThreadSafe<P3AService>,
129129
friend class base::RefCountedThreadSafe<P3AService>;
130130
~P3AService() override;
131131

132+
void Init();
133+
132134
void InitCallback(std::string_view histogram_name);
133135

134136
void LoadDynamicMetrics();

components/p3a/p3a_service_unittest.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ class P3AServiceTest : public testing::Test {
9090
local_state_, "release", install_time, P3AConfig(config_)));
9191

9292
p3a_service_->DisableStarAttestationForTesting();
93-
p3a_service_->Init(shared_url_loader_factory_);
93+
p3a_service_->SetURLLoaderFactory(shared_url_loader_factory_);
9494
p3a_service_->remote_config_manager()->LoadRemoteConfig({});
9595
task_environment_.RunUntilIdle();
9696
}

0 commit comments

Comments
 (0)