Commit 0191c254 authored by Mikel Astiz's avatar Mikel Astiz Committed by Commit Bot

Fix DCHECK for the existence of global field trial list

The DCHECK was introduced long ago in
https://chromiumcodereview.appspot.com/11522009 where it may have been
necessary, but in today's implementation the code does not rely on
ThreadTaskRunnerHandle.

The DCHECK is a proxy for verifying that a global field trial list
exists, which can be checked more directly via the value returned by
FieldTrialList::AddObserver().

The patch is motivated by DCHECK failures observed recently on ios
after the codepath has been triggered from the sync thread, due to
https://chromium-review.googlesource.com/c/chromium/src/+/1827368.

Bug: 1011088
Change-Id: I075c28f86962c88b9331290c1b57f2da8a3af755
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1844992
Commit-Queue: Mikel Astiz <mastiz@chromium.org>
Reviewed-by: default avatarAlexei Svitkine <asvitkine@chromium.org>
Cr-Commit-Position: refs/heads/master@{#721564}
parent b00fc4fd
...@@ -16,7 +16,6 @@ ...@@ -16,7 +16,6 @@
#include "base/strings/string_number_conversions.h" #include "base/strings/string_number_conversions.h"
#include "base/strings/string_split.h" #include "base/strings/string_split.h"
#include "base/strings/string_util.h" #include "base/strings/string_util.h"
#include "base/threading/thread_task_runner_handle.h"
#include "components/variations/proto/client_variations.pb.h" #include "components/variations/proto/client_variations.pb.h"
namespace variations { namespace variations {
...@@ -153,7 +152,9 @@ void VariationsHttpHeaderProvider::ResetForTesting() { ...@@ -153,7 +152,9 @@ void VariationsHttpHeaderProvider::ResetForTesting() {
VariationsHttpHeaderProvider::VariationsHttpHeaderProvider() VariationsHttpHeaderProvider::VariationsHttpHeaderProvider()
: variation_ids_cache_initialized_(false) {} : variation_ids_cache_initialized_(false) {}
VariationsHttpHeaderProvider::~VariationsHttpHeaderProvider() {} VariationsHttpHeaderProvider::~VariationsHttpHeaderProvider() {
base::FieldTrialList::RemoveObserver(this);
}
void VariationsHttpHeaderProvider::OnFieldTrialGroupFinalized( void VariationsHttpHeaderProvider::OnFieldTrialGroupFinalized(
const std::string& trial_name, const std::string& trial_name,
...@@ -196,8 +197,8 @@ void VariationsHttpHeaderProvider::InitVariationIDsCacheIfNeeded() { ...@@ -196,8 +197,8 @@ void VariationsHttpHeaderProvider::InitVariationIDsCacheIfNeeded() {
// Register for additional cache updates. This is done first to avoid a race // Register for additional cache updates. This is done first to avoid a race
// that could cause registered FieldTrials to be missed. // that could cause registered FieldTrials to be missed.
DCHECK(base::ThreadTaskRunnerHandle::IsSet()); bool success = base::FieldTrialList::AddObserver(this);
base::FieldTrialList::AddObserver(this); DCHECK(success);
base::FieldTrial::ActiveGroups initial_groups; base::FieldTrial::ActiveGroups initial_groups;
base::FieldTrialList::GetActiveFieldTrialGroups(&initial_groups); base::FieldTrialList::GetActiveFieldTrialGroups(&initial_groups);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment