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

Unified Diff: chrome/browser/rlz/rlz.cc

Issue 11308196: [cros] RlzValueStore made protected by a cross-process lock and not persisted over browser lifetime… (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: merge Created 8 years, 1 month 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 | « chrome/browser/rlz/rlz.h ('k') | chrome/browser/rlz/rlz_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/rlz/rlz.cc
diff --git a/chrome/browser/rlz/rlz.cc b/chrome/browser/rlz/rlz.cc
index 7005e32d47c199b57d171818dd68c6e9a37feff3..6032dd994e671f2cc3e2e762c60170beda70f401 100644
--- a/chrome/browser/rlz/rlz.cc
+++ b/chrome/browser/rlz/rlz.cc
@@ -26,10 +26,6 @@
#include "content/public/browser/notification_service.h"
#include "net/http/http_util.h"
-#if defined(OS_CHROMEOS)
-#include "base/threading/sequenced_worker_pool.h"
-#endif
-
#if defined(OS_WIN)
#include "chrome/installer/util/google_update_settings.h"
#else
@@ -56,8 +52,6 @@ using content::NavigationEntry;
namespace {
-const char kRlzThreadName[] = "RLZ_thread";
-
bool IsBrandOrganic(const std::string& brand) {
return brand.empty() || google_util::IsOrganic(brand);
}
@@ -177,9 +171,6 @@ RLZTracker::RLZTracker()
is_google_default_search_(false),
is_google_homepage_(false),
is_google_in_startpages_(false),
- rlz_thread_(kRlzThreadName),
- blocking_task_runner_(NULL),
- url_request_context_(NULL),
already_ran_(false),
omnibox_used_(false),
homepage_used_(false) {
@@ -208,9 +199,6 @@ bool RLZTracker::Init(bool first_run,
is_google_homepage_ = is_google_homepage;
is_google_in_startpages_ = is_google_in_startpages;
- if (!InitWorkers())
- return false;
-
// A negative delay means that a financial ping should be sent immediately
// after a first search is recorded, without waiting for the next restart
// of chrome. However, we only want this behaviour on first run.
@@ -246,7 +234,7 @@ bool RLZTracker::Init(bool first_run,
content::NotificationService::AllSources());
}
- url_request_context_ = g_browser_process->system_request_context();
+ rlz_lib::SetURLRequestContext(g_browser_process->system_request_context());
ScheduleDelayedInit(delay);
return true;
@@ -255,35 +243,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.
- blocking_task_runner_->PostDelayedTask(
+ BrowserThread::GetBlockingPool()->PostDelayedTask(
FROM_HERE,
base::Bind(&RLZTracker::DelayedInit, base::Unretained(this)),
base::TimeDelta::FromMilliseconds(delay));
}
-bool RLZTracker::InitWorkers() {
- base::Thread::Options options;
- options.message_loop_type = MessageLoop::TYPE_IO;
- if (!rlz_thread_.StartWithOptions(options))
- return false;
- blocking_task_runner_ = rlz_thread_.message_loop_proxy();
-
-#if defined(OS_CHROMEOS)
- base::SequencedWorkerPool* worker_pool =
- content::BrowserThread::GetBlockingPool();
- if (!worker_pool)
- return false;
- rlz_lib::SetIOTaskRunner(
- worker_pool->GetSequencedTaskRunnerWithShutdownBehavior(
- worker_pool->GetSequenceToken(),
- base::SequencedWorkerPool::BLOCK_SHUTDOWN));
-#endif
- return true;
-}
-
void RLZTracker::DelayedInit() {
- if (!already_ran_)
- rlz_lib::SetURLRequestContext(url_request_context_);
+ worker_pool_token_ = BrowserThread::GetBlockingPool()->GetSequenceToken();
bool schedule_ping = false;
@@ -316,7 +283,8 @@ void RLZTracker::DelayedInit() {
}
void RLZTracker::ScheduleFinancialPing() {
- blocking_task_runner_->PostTask(
+ BrowserThread::GetBlockingPool()->PostSequencedWorkerTask(
+ worker_pool_token_,
FROM_HERE,
base::Bind(&RLZTracker::PingNowImpl, base::Unretained(this)));
}
@@ -421,12 +389,13 @@ bool RLZTracker::ScheduleRecordProductEvent(rlz_lib::Product product,
rlz_lib::Event event_id) {
if (!BrowserThread::CurrentlyOn(BrowserThread::UI))
return false;
- if (!blocking_task_runner_) {
+ if (!already_ran_) {
LOG(ERROR) << "Attempted recording RLZ event before RLZ init.";
return true;
}
- blocking_task_runner_->PostTask(
+ BrowserThread::GetBlockingPool()->PostSequencedWorkerTask(
+ worker_pool_token_,
FROM_HERE,
base::Bind(base::IgnoreResult(&RLZTracker::RecordProductEvent),
product, point, event_id));
@@ -454,7 +423,8 @@ void RLZTracker::RecordFirstSearch(rlz_lib::AccessPoint point) {
bool RLZTracker::ScheduleRecordFirstSearch(rlz_lib::AccessPoint point) {
if (!BrowserThread::CurrentlyOn(BrowserThread::UI))
return false;
- blocking_task_runner_->PostTask(
+ BrowserThread::GetBlockingPool()->PostSequencedWorkerTask(
+ worker_pool_token_,
FROM_HERE,
base::Bind(&RLZTracker::RecordFirstSearch,
base::Unretained(this), point));
@@ -522,7 +492,8 @@ bool RLZTracker::ScheduleGetAccessPointRlz(rlz_lib::AccessPoint point) {
return false;
string16* not_used = NULL;
- blocking_task_runner_->PostTask(
+ BrowserThread::GetBlockingPool()->PostSequencedWorkerTask(
+ worker_pool_token_,
FROM_HERE,
base::Bind(base::IgnoreResult(&RLZTracker::GetAccessPointRlz), point,
not_used));
« no previous file with comments | « chrome/browser/rlz/rlz.h ('k') | chrome/browser/rlz/rlz_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698