| Index: chrome/browser/rlz/rlz.cc
|
| diff --git a/chrome/browser/rlz/rlz.cc b/chrome/browser/rlz/rlz.cc
|
| index 7048b925b0c14d3c2f54dca8ccf241284589b9dd..31a8316053334ee7eba78fddae93c0f61d9e90db 100644
|
| --- a/chrome/browser/rlz/rlz.cc
|
| +++ b/chrome/browser/rlz/rlz.cc
|
| @@ -57,6 +57,11 @@ using content::NavigationEntry;
|
|
|
| namespace {
|
|
|
| +// Maximum and minimum delay for financial ping we would allow to be set through
|
| +// master preferences. Somewhat arbitrary, may need to be adjusted in future.
|
| +const int kMaxDelay = 200 * 1000;
|
| +const int kMinDelay = 20 * 1000;
|
| +
|
| bool IsGoogleUrl(const GURL& url) {
|
| return google_util::IsGoogleHomePageUrl(url.possibly_invalid_spec());
|
| }
|
| @@ -180,9 +185,11 @@ RLZTracker::RLZTracker()
|
| is_google_default_search_(false),
|
| is_google_homepage_(false),
|
| is_google_in_startpages_(false),
|
| + worker_pool_token_(BrowserThread::GetBlockingPool()->GetSequenceToken()),
|
| already_ran_(false),
|
| omnibox_used_(false),
|
| - homepage_used_(false) {
|
| + homepage_used_(false),
|
| + min_delay_(kMinDelay) {
|
| }
|
|
|
| RLZTracker::~RLZTracker() {
|
| @@ -259,13 +266,8 @@ bool RLZTracker::Init(bool first_run,
|
| delay = -delay;
|
| }
|
|
|
| - // Maximum and minimum delay we would allow to be set through master
|
| - // preferences. Somewhat arbitrary, may need to be adjusted in future.
|
| - const int kMaxDelay = 200 * 1000;
|
| - const int kMinDelay = 20 * 1000;
|
| -
|
| delay *= 1000;
|
| - delay = (delay < kMinDelay) ? kMinDelay : delay;
|
| + delay = (delay < min_delay_) ? min_delay_ : delay;
|
| delay = (delay > kMaxDelay) ? kMaxDelay : delay;
|
|
|
| if (google_util::GetBrand(&brand_) && !IsBrandOrganic(brand_)) {
|
| @@ -294,15 +296,14 @@ bool RLZTracker::Init(bool first_run,
|
| void RLZTracker::ScheduleDelayedInit(int delay) {
|
| // The RLZTracker is a singleton object that outlives any runnable tasks
|
| // that will be queued up.
|
| - BrowserThread::GetBlockingPool()->PostDelayedTask(
|
| + BrowserThread::GetBlockingPool()->PostDelayedSequencedWorkerTask(
|
| + worker_pool_token_,
|
| FROM_HERE,
|
| base::Bind(&RLZTracker::DelayedInit, base::Unretained(this)),
|
| base::TimeDelta::FromMilliseconds(delay));
|
| }
|
|
|
| void RLZTracker::DelayedInit() {
|
| - worker_pool_token_ = BrowserThread::GetBlockingPool()->GetSequenceToken();
|
| -
|
| bool schedule_ping = false;
|
|
|
| // For organic brandcodes do not use rlz at all. Empty brandcode usually
|
| @@ -330,6 +331,10 @@ void RLZTracker::DelayedInit() {
|
| ScheduleFinancialPing();
|
| }
|
|
|
| +void RLZTracker::EnableZeroDelayForTesting() {
|
| + GetInstance()->min_delay_ = 0;
|
| +}
|
| +
|
| void RLZTracker::ScheduleFinancialPing() {
|
| BrowserThread::GetBlockingPool()->PostSequencedWorkerTask(
|
| worker_pool_token_,
|
| @@ -432,10 +437,6 @@ bool RLZTracker::ScheduleRecordProductEvent(rlz_lib::Product product,
|
| rlz_lib::Event event_id) {
|
| if (!BrowserThread::CurrentlyOn(BrowserThread::UI))
|
| return false;
|
| - if (!already_ran_) {
|
| - LOG(ERROR) << "Attempted recording RLZ event before RLZ init.";
|
| - return true;
|
| - }
|
|
|
| BrowserThread::GetBlockingPool()->PostSequencedWorkerTask(
|
| worker_pool_token_,
|
|
|