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

Side by Side Diff: chrome/browser/sync_file_system/drive_backend/sync_engine.cc

Issue 291403004: [SyncFS] Add TaskLogger and wire up it. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix Created 6 years, 7 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/sync_file_system/drive_backend/sync_engine.h" 5 #include "chrome/browser/sync_file_system/drive_backend/sync_engine.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/metrics/histogram.h" 10 #include "base/metrics/histogram.h"
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
127 const SyncStatusCallback& callback, 127 const SyncStatusCallback& callback,
128 SyncStatusCode status) { 128 SyncStatusCode status) {
129 base::TimeDelta delta(base::TimeTicks::Now() - start_time); 129 base::TimeDelta delta(base::TimeTicks::Now() - start_time);
130 HISTOGRAM_TIMES("SyncFileSystem.RegisterOriginTime", delta); 130 HISTOGRAM_TIMES("SyncFileSystem.RegisterOriginTime", delta);
131 callback.Run(status); 131 callback.Run(status);
132 } 132 }
133 133
134 } // namespace 134 } // namespace
135 135
136 scoped_ptr<SyncEngine> SyncEngine::CreateForBrowserContext( 136 scoped_ptr<SyncEngine> SyncEngine::CreateForBrowserContext(
137 content::BrowserContext* context) { 137 content::BrowserContext* context,
138 TaskLogger* task_logger) {
138 scoped_refptr<base::SequencedWorkerPool> worker_pool( 139 scoped_refptr<base::SequencedWorkerPool> worker_pool(
139 content::BrowserThread::GetBlockingPool()); 140 content::BrowserThread::GetBlockingPool());
140 scoped_refptr<base::SequencedTaskRunner> drive_task_runner( 141 scoped_refptr<base::SequencedTaskRunner> drive_task_runner(
141 worker_pool->GetSequencedTaskRunnerWithShutdownBehavior( 142 worker_pool->GetSequencedTaskRunnerWithShutdownBehavior(
142 worker_pool->GetSequenceToken(), 143 worker_pool->GetSequenceToken(),
143 base::SequencedWorkerPool::SKIP_ON_SHUTDOWN)); 144 base::SequencedWorkerPool::SKIP_ON_SHUTDOWN));
144 145
145 Profile* profile = Profile::FromBrowserContext(context); 146 Profile* profile = Profile::FromBrowserContext(context);
146 ProfileOAuth2TokenService* token_service = 147 ProfileOAuth2TokenService* token_service =
147 ProfileOAuth2TokenServiceFactory::GetForProfile(profile); 148 ProfileOAuth2TokenServiceFactory::GetForProfile(profile);
(...skipping 29 matching lines...) Expand all
177 worker_task_runner = base::MessageLoopProxy::current(); 178 worker_task_runner = base::MessageLoopProxy::current();
178 179
179 scoped_ptr<drive_backend::SyncEngine> sync_engine( 180 scoped_ptr<drive_backend::SyncEngine> sync_engine(
180 new SyncEngine(drive_service.Pass(), 181 new SyncEngine(drive_service.Pass(),
181 drive_uploader.Pass(), 182 drive_uploader.Pass(),
182 worker_task_runner, 183 worker_task_runner,
183 notification_manager, 184 notification_manager,
184 extension_service, 185 extension_service,
185 signin_manager)); 186 signin_manager));
186 sync_engine->Initialize(GetSyncFileSystemDir(context->GetPath()), 187 sync_engine->Initialize(GetSyncFileSystemDir(context->GetPath()),
188 task_logger,
187 file_task_runner.get(), 189 file_task_runner.get(),
188 NULL); 190 NULL);
189 191
190 return sync_engine.Pass(); 192 return sync_engine.Pass();
191 } 193 }
192 194
193 void SyncEngine::AppendDependsOnFactories( 195 void SyncEngine::AppendDependsOnFactories(
194 std::set<BrowserContextKeyedServiceFactory*>* factories) { 196 std::set<BrowserContextKeyedServiceFactory*>* factories) {
195 DCHECK(factories); 197 DCHECK(factories);
196 factories->insert(drive::DriveNotificationManagerFactory::GetInstance()); 198 factories->insert(drive::DriveNotificationManagerFactory::GetInstance());
197 factories->insert(SigninManagerFactory::GetInstance()); 199 factories->insert(SigninManagerFactory::GetInstance());
198 factories->insert( 200 factories->insert(
199 extensions::ExtensionsBrowserClient::Get()->GetExtensionSystemFactory()); 201 extensions::ExtensionsBrowserClient::Get()->GetExtensionSystemFactory());
200 } 202 }
201 203
202 SyncEngine::~SyncEngine() { 204 SyncEngine::~SyncEngine() {
203 net::NetworkChangeNotifier::RemoveNetworkChangeObserver(this); 205 net::NetworkChangeNotifier::RemoveNetworkChangeObserver(this);
204 GetDriveService()->RemoveObserver(this); 206 GetDriveService()->RemoveObserver(this);
205 if (notification_manager_) 207 if (notification_manager_)
206 notification_manager_->RemoveObserver(this); 208 notification_manager_->RemoveObserver(this);
207 209
208 // TODO(tzik): Destroy |sync_worker_| and |worker_observer_| on the worker. 210 // TODO(tzik): Destroy |sync_worker_| and |worker_observer_| on the worker.
209 } 211 }
210 212
211 void SyncEngine::Initialize(const base::FilePath& base_dir, 213 void SyncEngine::Initialize(const base::FilePath& base_dir,
214 TaskLogger* task_logger,
212 base::SequencedTaskRunner* file_task_runner, 215 base::SequencedTaskRunner* file_task_runner,
213 leveldb::Env* env_override) { 216 leveldb::Env* env_override) {
214 // DriveServiceWrapper and DriveServiceOnWorker relay communications 217 // DriveServiceWrapper and DriveServiceOnWorker relay communications
215 // between DriveService and syncers in SyncWorker. 218 // between DriveService and syncers in SyncWorker.
216 scoped_ptr<drive::DriveServiceInterface> 219 scoped_ptr<drive::DriveServiceInterface> drive_service_on_worker(
217 drive_service_on_worker( 220 new DriveServiceOnWorker(drive_service_wrapper_->AsWeakPtr(),
218 new DriveServiceOnWorker(drive_service_wrapper_->AsWeakPtr(), 221 base::MessageLoopProxy::current(),
219 base::MessageLoopProxy::current(), 222 worker_task_runner_));
220 worker_task_runner_)); 223 scoped_ptr<drive::DriveUploaderInterface> drive_uploader_on_worker(
221 scoped_ptr<drive::DriveUploaderInterface> 224 new DriveUploaderOnWorker(drive_uploader_wrapper_->AsWeakPtr(),
222 drive_uploader_on_worker(
223 new DriveUploaderOnWorker(drive_uploader_wrapper_->AsWeakPtr(),
224 base::MessageLoopProxy::current(),
225 worker_task_runner_));
226 scoped_ptr<SyncEngineContext>
227 sync_engine_context(
228 new SyncEngineContext(drive_service_on_worker.Pass(),
229 drive_uploader_on_worker.Pass(),
230 base::MessageLoopProxy::current(), 225 base::MessageLoopProxy::current(),
231 worker_task_runner_, 226 worker_task_runner_));
232 file_task_runner)); 227 scoped_ptr<SyncEngineContext> sync_engine_context(
228 new SyncEngineContext(drive_service_on_worker.Pass(),
229 drive_uploader_on_worker.Pass(),
230 task_logger,
231 base::MessageLoopProxy::current(),
232 worker_task_runner_,
233 file_task_runner));
233 234
234 worker_observer_.reset( 235 worker_observer_.reset(
235 new WorkerObserver(base::MessageLoopProxy::current(), 236 new WorkerObserver(base::MessageLoopProxy::current(),
236 weak_ptr_factory_.GetWeakPtr())); 237 weak_ptr_factory_.GetWeakPtr()));
237 238
238 base::WeakPtr<ExtensionServiceInterface> extension_service_weak_ptr; 239 base::WeakPtr<ExtensionServiceInterface> extension_service_weak_ptr;
239 if (extension_service_) 240 if (extension_service_)
240 extension_service_weak_ptr = extension_service_->AsWeakPtr(); 241 extension_service_weak_ptr = extension_service_->AsWeakPtr();
241 242
242 // TODO(peria): Use PostTask on |worker_task_runner_| to call this function. 243 // TODO(peria): Use PostTask on |worker_task_runner_| to call this function.
(...skipping 297 matching lines...) Expand 10 before | Expand all | Expand 10 after
540 tracker.tracker_kind() == TRACKER_KIND_APP_ROOT; 541 tracker.tracker_kind() == TRACKER_KIND_APP_ROOT;
541 if (is_app_enabled && !is_app_root_tracker_enabled) 542 if (is_app_enabled && !is_app_root_tracker_enabled)
542 EnableOrigin(origin, base::Bind(&EmptyStatusCallback)); 543 EnableOrigin(origin, base::Bind(&EmptyStatusCallback));
543 else if (!is_app_enabled && is_app_root_tracker_enabled) 544 else if (!is_app_enabled && is_app_root_tracker_enabled)
544 DisableOrigin(origin, base::Bind(&EmptyStatusCallback)); 545 DisableOrigin(origin, base::Bind(&EmptyStatusCallback));
545 } 546 }
546 } 547 }
547 548
548 } // namespace drive_backend 549 } // namespace drive_backend
549 } // namespace sync_file_system 550 } // namespace sync_file_system
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698