Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2312)

Unified Diff: components/rlz/rlz_tracker.cc

Issue 2949263003: Remove call to GetBlockingPool in RLZ (Closed)
Patch Set: Use PostDelayedTaskWithTraits Created 3 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « components/rlz/rlz_tracker.h ('k') | components/rlz/rlz_tracker_delegate.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: components/rlz/rlz_tracker.cc
diff --git a/components/rlz/rlz_tracker.cc b/components/rlz/rlz_tracker.cc
index 4a1abea602c943e19f2eae90865317410a6aa05f..4efb733dfc390a84af410be1198dca7d2249585f 100644
--- a/components/rlz/rlz_tracker.cc
+++ b/components/rlz/rlz_tracker.cc
@@ -13,9 +13,12 @@
#include "base/bind.h"
#include "base/message_loop/message_loop.h"
+#include "base/sequenced_task_runner.h"
#include "base/strings/string_util.h"
#include "base/strings/stringprintf.h"
#include "base/strings/utf_string_conversions.h"
+#include "base/task_scheduler/post_task.h"
+#include "base/task_scheduler/task_traits.h"
#include "base/trace_event/trace_event.h"
#include "build/build_config.h"
#include "components/rlz/rlz_tracker_delegate.h"
@@ -165,7 +168,11 @@ RLZTracker::RLZTracker()
omnibox_used_(false),
homepage_used_(false),
app_list_used_(false),
- min_init_delay_(kMinInitDelay) {
+ min_init_delay_(kMinInitDelay),
+ background_task_runner_(base::CreateSequencedTaskRunnerWithTraits(
+ {base::TaskShutdownBehavior::SKIP_ON_SHUTDOWN,
+ base::WithBaseSyncPrimitives(), base::TaskPriority::BACKGROUND})) {
+ DETACH_FROM_SEQUENCE(sequence_checker_);
}
RLZTracker::~RLZTracker() {
@@ -186,7 +193,6 @@ void RLZTracker::SetDelegate(std::unique_ptr<RLZTrackerDelegate> delegate) {
DCHECK(delegate);
DCHECK(!delegate_);
delegate_ = std::move(delegate);
- worker_pool_token_ = delegate_->GetBlockingPool()->GetSequenceToken();
}
// static
@@ -264,12 +270,13 @@ void RLZTracker::ScheduleDelayedInit(base::TimeDelta delay) {
DCHECK(delegate_) << "RLZTracker used before initialization";
// The RLZTracker is a singleton object that outlives any runnable tasks
// that will be queued up.
- delegate_->GetBlockingPool()->PostDelayedSequencedWorkerTask(
- worker_pool_token_, FROM_HERE,
- base::Bind(&RLZTracker::DelayedInit, base::Unretained(this)), delay);
+ background_task_runner_->PostDelayedTask(
+ FROM_HERE, base::Bind(&RLZTracker::DelayedInit, base::Unretained(this)),
+ delay);
}
void RLZTracker::DelayedInit() {
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
DCHECK(delegate_) << "RLZTracker used before initialization";
bool schedule_ping = false;
@@ -302,13 +309,12 @@ void RLZTracker::DelayedInit() {
void RLZTracker::ScheduleFinancialPing() {
DCHECK(delegate_) << "RLZTracker used before initialization";
- delegate_->GetBlockingPool()->PostSequencedWorkerTaskWithShutdownBehavior(
- worker_pool_token_, FROM_HERE,
- base::Bind(&RLZTracker::PingNowImpl, base::Unretained(this)),
- base::SequencedWorkerPool::SKIP_ON_SHUTDOWN);
+ background_task_runner_->PostTask(
+ FROM_HERE, base::Bind(&RLZTracker::PingNowImpl, base::Unretained(this)));
}
void RLZTracker::PingNowImpl() {
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
DCHECK(delegate_) << "RLZTracker used before initialization";
TRACE_EVENT0("RLZ", "RLZTracker::PingNowImpl");
base::string16 lang;
@@ -368,6 +374,8 @@ bool RLZTracker::RecordProductEventImpl(rlz_lib::Product product,
if (ScheduleRecordProductEvent(product, point, event_id))
return true;
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+
bool ret = rlz_lib::RecordProductEvent(product, point, event_id);
// If chrome has been reactivated, record the event for this brand as well.
@@ -386,12 +394,9 @@ bool RLZTracker::ScheduleRecordProductEvent(rlz_lib::Product product,
if (!delegate_->IsOnUIThread())
return false;
- delegate_->GetBlockingPool()->PostSequencedWorkerTaskWithShutdownBehavior(
- worker_pool_token_, FROM_HERE,
- base::Bind(base::IgnoreResult(&RLZTracker::RecordProductEvent), product,
- point, event_id),
- base::SequencedWorkerPool::SKIP_ON_SHUTDOWN);
-
+ background_task_runner_->PostTask(
+ FROM_HERE, base::Bind(base::IgnoreResult(&RLZTracker::RecordProductEvent),
+ product, point, event_id));
return true;
}
@@ -402,24 +407,26 @@ void RLZTracker::RecordFirstSearch(rlz_lib::AccessPoint point) {
if (ScheduleRecordFirstSearch(point))
return;
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+
bool* record_used = GetAccessPointRecord(point);
// Try to record event now, else set the flag to try later when we
// attempt the ping.
- if (!RecordProductEvent(rlz_lib::CHROME, point, rlz_lib::FIRST_SEARCH))
+ if (!RecordProductEvent(rlz_lib::CHROME, point, rlz_lib::FIRST_SEARCH)) {
*record_used = true;
- else if (send_ping_immediately_ && point == ChromeOmnibox())
+ } else if (send_ping_immediately_ && point == ChromeOmnibox()) {
ScheduleDelayedInit(base::TimeDelta());
+ }
}
bool RLZTracker::ScheduleRecordFirstSearch(rlz_lib::AccessPoint point) {
DCHECK(delegate_) << "RLZTracker used before initialization";
if (!delegate_->IsOnUIThread())
return false;
- delegate_->GetBlockingPool()->PostSequencedWorkerTaskWithShutdownBehavior(
- worker_pool_token_, FROM_HERE,
- base::Bind(&RLZTracker::RecordFirstSearch, base::Unretained(this), point),
- base::SequencedWorkerPool::SKIP_ON_SHUTDOWN);
+ background_task_runner_->PostTask(FROM_HERE,
+ base::Bind(&RLZTracker::RecordFirstSearch,
+ base::Unretained(this), point));
return true;
}
@@ -489,6 +496,8 @@ bool RLZTracker::GetAccessPointRlzImpl(rlz_lib::AccessPoint point,
if (!rlz_lib::GetAccessPointRlz(point, str_rlz, rlz_lib::kMaxRlzLength))
return false;
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+
base::string16 rlz_local(base::ASCIIToUTF16(str_rlz));
if (rlz)
*rlz = rlz_local;
@@ -504,11 +513,9 @@ bool RLZTracker::ScheduleGetAccessPointRlz(rlz_lib::AccessPoint point) {
return false;
base::string16* not_used = nullptr;
- delegate_->GetBlockingPool()->PostSequencedWorkerTaskWithShutdownBehavior(
- worker_pool_token_, FROM_HERE,
- base::Bind(base::IgnoreResult(&RLZTracker::GetAccessPointRlz), point,
- not_used),
- base::SequencedWorkerPool::SKIP_ON_SHUTDOWN);
+ background_task_runner_->PostTask(
+ FROM_HERE, base::Bind(base::IgnoreResult(&RLZTracker::GetAccessPointRlz),
+ point, not_used));
return true;
}
@@ -524,6 +531,8 @@ void RLZTracker::ClearRlzStateImpl() {
DCHECK(delegate_) << "RLZTracker used before initialization";
if (ScheduleClearRlzState())
return;
+
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
rlz_lib::ClearAllProductEvents(rlz_lib::CHROME);
}
@@ -532,10 +541,9 @@ bool RLZTracker::ScheduleClearRlzState() {
if (!delegate_->IsOnUIThread())
return false;
- delegate_->GetBlockingPool()->PostSequencedWorkerTaskWithShutdownBehavior(
- worker_pool_token_, FROM_HERE,
- base::Bind(&RLZTracker::ClearRlzStateImpl, base::Unretained(this)),
- base::SequencedWorkerPool::SKIP_ON_SHUTDOWN);
+ background_task_runner_->PostTask(
+ FROM_HERE,
+ base::Bind(&RLZTracker::ClearRlzStateImpl, base::Unretained(this)));
return true;
}
#endif
« no previous file with comments | « components/rlz/rlz_tracker.h ('k') | components/rlz/rlz_tracker_delegate.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698