This repository was archived by the owner on Sep 25, 2019. It is now read-only.
File tree Expand file tree Collapse file tree 2 files changed +11
-9
lines changed Expand file tree Collapse file tree 2 files changed +11
-9
lines changed Original file line number Diff line number Diff line change @@ -213,7 +213,8 @@ bool FieldTrialList::used_without_global_ = false;
213
213
FieldTrialList::FieldTrialList (const std::string& client_id)
214
214
: application_start_time_(TimeTicks::Now()),
215
215
client_id_(client_id),
216
- observer_list_(ObserverList<Observer>::NOTIFY_EXISTING_ONLY) {
216
+ observer_list_(new ObserverListThreadSafe<FieldTrialList::Observer>(
217
+ ObserverListBase<FieldTrialList::Observer>::NOTIFY_EXISTING_ONLY)) {
217
218
DCHECK (!global_);
218
219
DCHECK (!used_without_global_);
219
220
global_ = this ;
@@ -393,15 +394,15 @@ void FieldTrialList::AddObserver(Observer* observer) {
393
394
if (!global_)
394
395
return ;
395
396
DCHECK (global_);
396
- global_->observer_list_ . AddObserver (observer);
397
+ global_->observer_list_ -> AddObserver (observer);
397
398
}
398
399
399
400
// static
400
401
void FieldTrialList::RemoveObserver (Observer* observer) {
401
402
if (!global_)
402
403
return ;
403
404
DCHECK (global_);
404
- global_->observer_list_ . RemoveObserver (observer);
405
+ global_->observer_list_ -> RemoveObserver (observer);
405
406
}
406
407
407
408
// static
@@ -411,9 +412,10 @@ void FieldTrialList::NotifyFieldTrialGroupSelection(
411
412
if (!global_)
412
413
return ;
413
414
DCHECK (global_);
414
- FOR_EACH_OBSERVER (Observer,
415
- global_->observer_list_ ,
416
- OnFieldTrialGroupFinalized (name, group_name));
415
+ global_->observer_list_ ->Notify (
416
+ &FieldTrialList::Observer::OnFieldTrialGroupFinalized,
417
+ name,
418
+ group_name);
417
419
}
418
420
419
421
// static
Original file line number Diff line number Diff line change 82
82
#include " base/base_export.h"
83
83
#include " base/gtest_prod_util.h"
84
84
#include " base/memory/ref_counted.h"
85
- #include " base/observer_list .h"
85
+ #include " base/observer_list_threadsafe .h"
86
86
#include " base/synchronization/lock.h"
87
87
#include " base/time.h"
88
88
@@ -256,7 +256,7 @@ class BASE_EXPORT FieldTrialList {
256
256
static int kExpirationYearInFuture ;
257
257
258
258
// Observer is notified when a FieldTrial's group is selected.
259
- class Observer {
259
+ class BASE_EXPORT Observer {
260
260
public:
261
261
// Notify observers when FieldTrials's group is selected.
262
262
virtual void OnFieldTrialGroupFinalized (const std::string& trial_name,
@@ -423,7 +423,7 @@ class BASE_EXPORT FieldTrialList {
423
423
std::string client_id_;
424
424
425
425
// List of observers to be notified when a group is selected for a FieldTrial.
426
- ObserverList< Observer> observer_list_;
426
+ scoped_refptr<ObserverListThreadSafe< Observer> > observer_list_;
427
427
428
428
DISALLOW_COPY_AND_ASSIGN (FieldTrialList);
429
429
};
You can’t perform that action at this time.
0 commit comments