summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorlukasza <lukasza@chromium.org>2015-06-11 21:21:25 -0700
committerCommit bot <commit-bot@chromium.org>2015-06-12 04:22:02 +0000
commit037c10b1b0e88341219a7943143487fd65080186 (patch)
tree174b3d6027a722f33d48f379f497a398994148bd
parent28fcf1477d5a5928d9e43e8f87f762693f722739 (diff)
downloadchromium_src-037c10b1b0e88341219a7943143487fd65080186.zip
chromium_src-037c10b1b0e88341219a7943143487fd65080186.tar.gz
chromium_src-037c10b1b0e88341219a7943143487fd65080186.tar.bz2
DCHECK..ON(BrowserThread::UI) -> DCHECK(thread_checker_.CalledOnValidThread())
This changelist removes one unnecessary dependency from chrome/browser/chromeos/drive to content/public/browser/browser_thread.h - Where possible DCHECK_CURRENTLY_ON(BrowserThread::UI) is replaced with DCHECK(thread_checker_.CalledOnValidThread()) - The new DCHECK is in theory more relaxed than the original DCHECK, but in practice is no different, assumming that objects (and therefore the newly added base::ThreadChecker field) are created from the UI thread (in practice this is enforced by DCHECK_CURRENTLY_ON(BrowserThread::UI) in the constructor and methods of DriveIntegrationService). - The old DCHECK is left untouched in places that do not have to be reused outside of a browser (most notably - browser-specific file_system_util.cc and most of drive_integration_service.cc). - The old DCHECK is removed without adding the new DCHECK in a few places where base::ThreadChecker could not be used in a straightforward way (i.e. in standalone functions or callbacks). BUG=498951 TEST=built (GYP_DEFINES="... chromeos=1") and run unit_tests gyp/ninja target from chrome/chrome_tests_unit.gypi Review URL: https://codereview.chromium.org/1177823002 Cr-Commit-Position: refs/heads/master@{#334127}
-rw-r--r--chrome/browser/chromeos/drive/change_list_loader.cc52
-rw-r--r--chrome/browser/chromeos/drive/change_list_loader.h7
-rw-r--r--chrome/browser/chromeos/drive/debug_info_collector.cc11
-rw-r--r--chrome/browser/chromeos/drive/debug_info_collector.h3
-rw-r--r--chrome/browser/chromeos/drive/directory_loader.cc32
-rw-r--r--chrome/browser/chromeos/drive/directory_loader.h3
-rw-r--r--chrome/browser/chromeos/drive/drive_file_stream_reader.cc29
-rw-r--r--chrome/browser/chromeos/drive/drive_file_stream_reader.h7
-rw-r--r--chrome/browser/chromeos/drive/file_cache.cc9
-rw-r--r--chrome/browser/chromeos/drive/file_cache.h3
-rw-r--r--chrome/browser/chromeos/drive/file_system.cc101
-rw-r--r--chrome/browser/chromeos/drive/file_system.h3
-rw-r--r--chrome/browser/chromeos/drive/file_system/copy_operation.cc32
-rw-r--r--chrome/browser/chromeos/drive/file_system/copy_operation.h3
-rw-r--r--chrome/browser/chromeos/drive/file_system/create_directory_operation.cc10
-rw-r--r--chrome/browser/chromeos/drive/file_system/create_directory_operation.h3
-rw-r--r--chrome/browser/chromeos/drive/file_system/create_file_operation.cc10
-rw-r--r--chrome/browser/chromeos/drive/file_system/create_file_operation.h3
-rw-r--r--chrome/browser/chromeos/drive/file_system/download_operation.cc13
-rw-r--r--chrome/browser/chromeos/drive/file_system/download_operation.h3
-rw-r--r--chrome/browser/chromeos/drive/file_system/get_file_for_saving_operation.cc12
-rw-r--r--chrome/browser/chromeos/drive/file_system/get_file_for_saving_operation.h3
-rw-r--r--chrome/browser/chromeos/drive/file_system/move_operation.cc10
-rw-r--r--chrome/browser/chromeos/drive/file_system/move_operation.h3
-rw-r--r--chrome/browser/chromeos/drive/file_system/open_file_operation.cc13
-rw-r--r--chrome/browser/chromeos/drive/file_system/open_file_operation.h3
-rw-r--r--chrome/browser/chromeos/drive/file_system/remove_operation.cc10
-rw-r--r--chrome/browser/chromeos/drive/file_system/remove_operation.h3
-rw-r--r--chrome/browser/chromeos/drive/file_system/search_operation.cc9
-rw-r--r--chrome/browser/chromeos/drive/file_system/search_operation.h3
-rw-r--r--chrome/browser/chromeos/drive/file_system/set_property_operation.cc7
-rw-r--r--chrome/browser/chromeos/drive/file_system/set_property_operation.h3
-rw-r--r--chrome/browser/chromeos/drive/file_system/touch_operation.cc7
-rw-r--r--chrome/browser/chromeos/drive/file_system/touch_operation.h3
-rw-r--r--chrome/browser/chromeos/drive/file_system/truncate_operation.cc9
-rw-r--r--chrome/browser/chromeos/drive/file_system/truncate_operation.h3
-rw-r--r--chrome/browser/chromeos/drive/file_write_watcher.cc15
-rw-r--r--chrome/browser/chromeos/drive/file_write_watcher.h3
-rw-r--r--chrome/browser/chromeos/drive/job_scheduler.cc98
-rw-r--r--chrome/browser/chromeos/drive/job_scheduler.h5
-rw-r--r--chrome/browser/chromeos/drive/resource_metadata.cc9
-rw-r--r--chrome/browser/chromeos/drive/resource_metadata.h3
-rw-r--r--chrome/browser/chromeos/drive/search_metadata.cc4
-rw-r--r--chrome/browser/chromeos/drive/sync/entry_revert_performer.cc14
-rw-r--r--chrome/browser/chromeos/drive/sync/entry_revert_performer.h3
-rw-r--r--chrome/browser/chromeos/drive/sync/entry_update_performer.cc14
-rw-r--r--chrome/browser/chromeos/drive/sync/entry_update_performer.h3
-rw-r--r--chrome/browser/chromeos/drive/sync/remove_performer.cc20
-rw-r--r--chrome/browser/chromeos/drive/sync/remove_performer.h3
-rw-r--r--chrome/browser/chromeos/drive/sync_client.cc36
-rw-r--r--chrome/browser/chromeos/drive/sync_client.h3
51 files changed, 333 insertions, 338 deletions
diff --git a/chrome/browser/chromeos/drive/change_list_loader.cc b/chrome/browser/chromeos/drive/change_list_loader.cc
index 29d4dad..0f0d924 100644
--- a/chrome/browser/chromeos/drive/change_list_loader.cc
+++ b/chrome/browser/chromeos/drive/change_list_loader.cc
@@ -19,12 +19,9 @@
#include "chrome/browser/chromeos/drive/job_scheduler.h"
#include "chrome/browser/chromeos/drive/resource_metadata.h"
#include "chrome/browser/drive/event_logger.h"
-#include "content/public/browser/browser_thread.h"
#include "google_apis/drive/drive_api_parser.h"
#include "url/gurl.h"
-using content::BrowserThread;
-
namespace drive {
namespace internal {
@@ -50,7 +47,7 @@ class FullFeedFetcher : public ChangeListLoader::FeedFetcher {
~FullFeedFetcher() override {}
void Run(const FeedFetcherCallback& callback) override {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
// Remember the time stamp for usage stats.
@@ -66,7 +63,7 @@ class FullFeedFetcher : public ChangeListLoader::FeedFetcher {
void OnFileListFetched(const FeedFetcherCallback& callback,
google_apis::DriveApiErrorCode status,
scoped_ptr<google_apis::FileList> file_list) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
FileError error = GDataToFileError(status);
@@ -99,6 +96,7 @@ class FullFeedFetcher : public ChangeListLoader::FeedFetcher {
JobScheduler* scheduler_;
ScopedVector<ChangeList> change_lists_;
base::TimeTicks start_time_;
+ base::ThreadChecker thread_checker_;
base::WeakPtrFactory<FullFeedFetcher> weak_ptr_factory_;
DISALLOW_COPY_AND_ASSIGN(FullFeedFetcher);
};
@@ -115,7 +113,7 @@ class DeltaFeedFetcher : public ChangeListLoader::FeedFetcher {
~DeltaFeedFetcher() override {}
void Run(const FeedFetcherCallback& callback) override {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
scheduler_->GetChangeList(
@@ -128,7 +126,7 @@ class DeltaFeedFetcher : public ChangeListLoader::FeedFetcher {
void OnChangeListFetched(const FeedFetcherCallback& callback,
google_apis::DriveApiErrorCode status,
scoped_ptr<google_apis::ChangeList> change_list) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
FileError error = GDataToFileError(status);
@@ -158,6 +156,7 @@ class DeltaFeedFetcher : public ChangeListLoader::FeedFetcher {
JobScheduler* scheduler_;
int64 start_change_id_;
ScopedVector<ChangeList> change_lists_;
+ base::ThreadChecker thread_checker_;
base::WeakPtrFactory<DeltaFeedFetcher> weak_ptr_factory_;
DISALLOW_COPY_AND_ASSIGN(DeltaFeedFetcher);
};
@@ -167,15 +166,14 @@ class DeltaFeedFetcher : public ChangeListLoader::FeedFetcher {
LoaderController::LoaderController()
: lock_count_(0),
weak_ptr_factory_(this) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
}
LoaderController::~LoaderController() {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
}
scoped_ptr<base::ScopedClosureRunner> LoaderController::GetLock() {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
++lock_count_;
return make_scoped_ptr(new base::ScopedClosureRunner(
@@ -184,7 +182,7 @@ scoped_ptr<base::ScopedClosureRunner> LoaderController::GetLock() {
}
void LoaderController::ScheduleRun(const base::Closure& task) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!task.is_null());
if (lock_count_ > 0) {
@@ -195,7 +193,7 @@ void LoaderController::ScheduleRun(const base::Closure& task) {
}
void LoaderController::Unlock() {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK_LT(0, lock_count_);
if (--lock_count_ > 0)
@@ -217,7 +215,7 @@ AboutResourceLoader::~AboutResourceLoader() {}
void AboutResourceLoader::GetAboutResource(
const google_apis::AboutResourceCallback& callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
// If the latest UpdateAboutResource task is still running. Wait for it,
@@ -241,7 +239,7 @@ void AboutResourceLoader::GetAboutResource(
void AboutResourceLoader::UpdateAboutResource(
const google_apis::AboutResourceCallback& callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
++current_update_task_id_;
@@ -257,7 +255,7 @@ void AboutResourceLoader::UpdateAboutResourceAfterGetAbout(
int task_id,
google_apis::DriveApiErrorCode status,
scoped_ptr<google_apis::AboutResource> about_resource) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
FileError error = GDataToFileError(status);
const std::vector<google_apis::AboutResourceCallback> callbacks =
@@ -319,17 +317,17 @@ bool ChangeListLoader::IsRefreshing() const {
}
void ChangeListLoader::AddObserver(ChangeListLoaderObserver* observer) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
observers_.AddObserver(observer);
}
void ChangeListLoader::RemoveObserver(ChangeListLoaderObserver* observer) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
observers_.RemoveObserver(observer);
}
void ChangeListLoader::CheckForUpdates(const FileOperationCallback& callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
// We only start to check for updates iff the load is done.
@@ -356,7 +354,7 @@ void ChangeListLoader::CheckForUpdates(const FileOperationCallback& callback) {
}
void ChangeListLoader::LoadIfNeeded(const FileOperationCallback& callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
// If the metadata is not yet loaded, start loading.
@@ -365,7 +363,7 @@ void ChangeListLoader::LoadIfNeeded(const FileOperationCallback& callback) {
}
void ChangeListLoader::Load(const FileOperationCallback& callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
// Check if this is the first time this ChangeListLoader do loading.
@@ -397,7 +395,7 @@ void ChangeListLoader::LoadAfterGetLargestChangestamp(
bool is_initial_load,
const int64* local_changestamp,
FileError error) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
if (error != FILE_ERROR_OK) {
OnChangeListLoadComplete(error);
@@ -424,7 +422,7 @@ void ChangeListLoader::LoadAfterGetAboutResource(
int64 local_changestamp,
google_apis::DriveApiErrorCode status,
scoped_ptr<google_apis::AboutResource> about_resource) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
FileError error = GDataToFileError(status);
if (error != FILE_ERROR_OK) {
@@ -452,7 +450,7 @@ void ChangeListLoader::LoadAfterGetAboutResource(
}
void ChangeListLoader::OnChangeListLoadComplete(FileError error) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
if (!loaded_ && error == FILE_ERROR_OK) {
loaded_ = true;
@@ -478,7 +476,7 @@ void ChangeListLoader::OnChangeListLoadComplete(FileError error) {
void ChangeListLoader::OnAboutResourceUpdated(
google_apis::DriveApiErrorCode error,
scoped_ptr<google_apis::AboutResource> resource) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
if (drive::GDataToFileError(error) != drive::FILE_ERROR_OK) {
logger_->Log(logging::LOG_ERROR,
@@ -492,7 +490,7 @@ void ChangeListLoader::OnAboutResourceUpdated(
}
void ChangeListLoader::LoadChangeListFromServer(int64 start_changestamp) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!change_feed_fetcher_);
DCHECK(about_resource_loader_->cached_about_resource());
@@ -521,7 +519,7 @@ void ChangeListLoader::LoadChangeListFromServerAfterLoadChangeList(
bool is_delta_update,
FileError error,
ScopedVector<ChangeList> change_lists) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(about_resource);
// Delete the fetcher first.
@@ -563,7 +561,7 @@ void ChangeListLoader::LoadChangeListFromServerAfterUpdate(
bool should_notify_changed_directories,
const base::Time& start_time,
FileError error) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
const base::TimeDelta elapsed = base::Time::Now() - start_time;
logger_->Log(logging::LOG_INFO,
diff --git a/chrome/browser/chromeos/drive/change_list_loader.h b/chrome/browser/chromeos/drive/change_list_loader.h
index 644e6ed..612df97 100644
--- a/chrome/browser/chromeos/drive/change_list_loader.h
+++ b/chrome/browser/chromeos/drive/change_list_loader.h
@@ -13,6 +13,7 @@
#include "base/memory/scoped_ptr.h"
#include "base/memory/scoped_vector.h"
#include "base/observer_list.h"
+#include "base/threading/thread_checker.h"
#include "chrome/browser/chromeos/drive/file_errors.h"
#include "google_apis/drive/drive_api_error_codes.h"
#include "google_apis/drive/drive_common_callbacks.h"
@@ -69,6 +70,8 @@ class LoaderController {
int lock_count_;
std::vector<base::Closure> pending_tasks_;
+ base::ThreadChecker thread_checker_;
+
base::WeakPtrFactory<LoaderController> weak_ptr_factory_;
DISALLOW_COPY_AND_ASSIGN(LoaderController);
};
@@ -118,6 +121,8 @@ class AboutResourceLoader {
std::map<int, std::vector<google_apis::AboutResourceCallback> >
pending_callbacks_;
+ base::ThreadChecker thread_checker_;
+
base::WeakPtrFactory<AboutResourceLoader> weak_ptr_factory_;
DISALLOW_COPY_AND_ASSIGN(AboutResourceLoader);
};
@@ -230,6 +235,8 @@ class ChangeListLoader {
// stored locally).
bool loaded_;
+ base::ThreadChecker thread_checker_;
+
// Note: This should remain the last member so it'll be destroyed and
// invalidate its weak pointers before any other members are destroyed.
base::WeakPtrFactory<ChangeListLoader> weak_ptr_factory_;
diff --git a/chrome/browser/chromeos/drive/debug_info_collector.cc b/chrome/browser/chromeos/drive/debug_info_collector.cc
index 6159ea1..cf50912 100644
--- a/chrome/browser/chromeos/drive/debug_info_collector.cc
+++ b/chrome/browser/chromeos/drive/debug_info_collector.cc
@@ -6,11 +6,8 @@
#include "base/callback.h"
#include "base/logging.h"
-#include "content/public/browser/browser_thread.h"
#include "google_apis/drive/task_util.h"
-using content::BrowserThread;
-
namespace drive {
namespace {
@@ -68,7 +65,7 @@ DebugInfoCollector::~DebugInfoCollector() {
void DebugInfoCollector::GetResourceEntry(
const base::FilePath& file_path,
const GetResourceEntryCallback& callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
scoped_ptr<ResourceEntry> entry(new ResourceEntry);
@@ -86,7 +83,7 @@ void DebugInfoCollector::GetResourceEntry(
void DebugInfoCollector::ReadDirectory(
const base::FilePath& file_path,
const ReadDirectoryCallback& callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
scoped_ptr<ResourceEntryVector> entries(new ResourceEntryVector);
@@ -104,7 +101,7 @@ void DebugInfoCollector::ReadDirectory(
void DebugInfoCollector::IterateFileCache(
const IterateFileCacheCallback& iteration_callback,
const base::Closure& completion_callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!iteration_callback.is_null());
DCHECK(!completion_callback.is_null());
@@ -118,7 +115,7 @@ void DebugInfoCollector::IterateFileCache(
void DebugInfoCollector::GetMetadata(
const GetFilesystemMetadataCallback& callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
// Currently, this is just a proxy to the FileSystem.
diff --git a/chrome/browser/chromeos/drive/debug_info_collector.h b/chrome/browser/chromeos/drive/debug_info_collector.h
index 65aded9..213caea 100644
--- a/chrome/browser/chromeos/drive/debug_info_collector.h
+++ b/chrome/browser/chromeos/drive/debug_info_collector.h
@@ -7,6 +7,7 @@
#include "base/basictypes.h"
#include "base/callback_forward.h"
+#include "base/threading/thread_checker.h"
#include "chrome/browser/chromeos/drive/file_system_interface.h"
namespace drive {
@@ -57,6 +58,8 @@ class DebugInfoCollector {
FileSystemInterface* file_system_; // Not owned.
scoped_refptr<base::SequencedTaskRunner> blocking_task_runner_;
+ base::ThreadChecker thread_checker_;
+
DISALLOW_COPY_AND_ASSIGN(DebugInfoCollector);
};
diff --git a/chrome/browser/chromeos/drive/directory_loader.cc b/chrome/browser/chromeos/drive/directory_loader.cc
index 7d60858..23df472 100644
--- a/chrome/browser/chromeos/drive/directory_loader.cc
+++ b/chrome/browser/chromeos/drive/directory_loader.cc
@@ -16,12 +16,9 @@
#include "chrome/browser/chromeos/drive/job_scheduler.h"
#include "chrome/browser/chromeos/drive/resource_metadata.h"
#include "chrome/browser/drive/event_logger.h"
-#include "content/public/browser/browser_thread.h"
#include "google_apis/drive/drive_api_parser.h"
#include "url/gurl.h"
-using content::BrowserThread;
-
namespace drive {
namespace internal {
@@ -106,7 +103,7 @@ class DirectoryLoader::FeedFetcher {
}
void Run(const FileOperationCallback& callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
DCHECK(!directory_fetch_info_.resource_id().empty());
@@ -123,7 +120,7 @@ class DirectoryLoader::FeedFetcher {
void OnFileListFetched(const FileOperationCallback& callback,
google_apis::DriveApiErrorCode status,
scoped_ptr<google_apis::FileList> file_list) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
FileError error = GDataToFileError(status);
@@ -159,7 +156,7 @@ class DirectoryLoader::FeedFetcher {
const GURL& next_url,
const std::vector<ResourceEntry>* refreshed_entries,
FileError error) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
if (error != FILE_ERROR_OK) {
@@ -191,6 +188,7 @@ class DirectoryLoader::FeedFetcher {
DirectoryFetchInfo directory_fetch_info_;
std::string root_folder_id_;
base::TimeTicks start_time_;
+ base::ThreadChecker thread_checker_;
base::WeakPtrFactory<FeedFetcher> weak_ptr_factory_;
DISALLOW_COPY_AND_ASSIGN(FeedFetcher);
};
@@ -216,12 +214,12 @@ DirectoryLoader::~DirectoryLoader() {
}
void DirectoryLoader::AddObserver(ChangeListLoaderObserver* observer) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
observers_.AddObserver(observer);
}
void DirectoryLoader::RemoveObserver(ChangeListLoaderObserver* observer) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
observers_.RemoveObserver(observer);
}
@@ -229,7 +227,7 @@ void DirectoryLoader::ReadDirectory(
const base::FilePath& directory_path,
const ReadDirectoryEntriesCallback& entries_callback,
const FileOperationCallback& completion_callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!completion_callback.is_null());
ResourceEntry* entry = new ResourceEntry;
@@ -256,7 +254,7 @@ void DirectoryLoader::ReadDirectoryAfterGetEntry(
bool should_try_loading_parent,
const ResourceEntry* entry,
FileError error) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!completion_callback.is_null());
if (error == FILE_ERROR_NOT_FOUND &&
@@ -308,7 +306,7 @@ void DirectoryLoader::ReadDirectoryAfterLoadParent(
const ReadDirectoryEntriesCallback& entries_callback,
const FileOperationCallback& completion_callback,
FileError error) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!completion_callback.is_null());
if (error != FILE_ERROR_OK) {
@@ -337,7 +335,7 @@ void DirectoryLoader::ReadDirectoryAfterGetAboutResource(
const std::string& local_id,
google_apis::DriveApiErrorCode status,
scoped_ptr<google_apis::AboutResource> about_resource) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
FileError error = GDataToFileError(status);
if (error != FILE_ERROR_OK) {
@@ -374,7 +372,7 @@ void DirectoryLoader::ReadDirectoryAfterCheckLocalState(
const ResourceEntry* entry,
const int64* local_changestamp,
FileError error) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(about_resource);
if (error != FILE_ERROR_OK) {
@@ -412,7 +410,7 @@ void DirectoryLoader::ReadDirectoryAfterCheckLocalState(
void DirectoryLoader::OnDirectoryLoadComplete(const std::string& local_id,
FileError error) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
LoadCallbackMap::iterator it = pending_load_callback_.find(local_id);
if (it == pending_load_callback_.end())
@@ -487,7 +485,7 @@ void DirectoryLoader::SendEntries(const std::string& local_id,
void DirectoryLoader::LoadDirectoryFromServer(
const DirectoryFetchInfo& directory_fetch_info) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!directory_fetch_info.empty());
DVLOG(1) << "Start loading directory: " << directory_fetch_info.ToString();
@@ -516,7 +514,7 @@ void DirectoryLoader::LoadDirectoryFromServerAfterLoad(
const DirectoryFetchInfo& directory_fetch_info,
FeedFetcher* fetcher,
FileError error) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!directory_fetch_info.empty());
// Delete the fetcher.
@@ -556,7 +554,7 @@ void DirectoryLoader::LoadDirectoryFromServerAfterUpdateChangestamp(
const DirectoryFetchInfo& directory_fetch_info,
const base::FilePath* directory_path,
FileError error) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DVLOG(1) << "Directory loaded: " << directory_fetch_info.ToString();
OnDirectoryLoadComplete(directory_fetch_info.local_id(), error);
diff --git a/chrome/browser/chromeos/drive/directory_loader.h b/chrome/browser/chromeos/drive/directory_loader.h
index 12a5b8c..07fd18e 100644
--- a/chrome/browser/chromeos/drive/directory_loader.h
+++ b/chrome/browser/chromeos/drive/directory_loader.h
@@ -15,6 +15,7 @@
#include "base/memory/scoped_ptr.h"
#include "base/memory/scoped_vector.h"
#include "base/observer_list.h"
+#include "base/threading/thread_checker.h"
#include "chrome/browser/chromeos/drive/file_errors.h"
#include "chrome/browser/chromeos/drive/file_system_interface.h"
#include "google_apis/drive/drive_api_error_codes.h"
@@ -136,6 +137,8 @@ class DirectoryLoader {
// Set of the running feed fetcher for the fast fetch.
std::set<FeedFetcher*> fast_fetch_feed_fetcher_set_;
+ base::ThreadChecker thread_checker_;
+
// Note: This should remain the last member so it'll be destroyed and
// invalidate its weak pointers before any other members are destroyed.
base::WeakPtrFactory<DirectoryLoader> weak_ptr_factory_;
diff --git a/chrome/browser/chromeos/drive/drive_file_stream_reader.cc b/chrome/browser/chromeos/drive/drive_file_stream_reader.cc
index 8a1650e..97ce158 100644
--- a/chrome/browser/chromeos/drive/drive_file_stream_reader.cc
+++ b/chrome/browser/chromeos/drive/drive_file_stream_reader.cc
@@ -96,7 +96,6 @@ LocalReaderProxy::LocalReaderProxy(
: file_reader_(file_reader.Pass()),
remaining_length_(length),
weak_ptr_factory_(this) {
- DCHECK_CURRENTLY_ON(BrowserThread::IO);
DCHECK(file_reader_);
}
@@ -105,7 +104,7 @@ LocalReaderProxy::~LocalReaderProxy() {
int LocalReaderProxy::Read(net::IOBuffer* buffer, int buffer_length,
const net::CompletionCallback& callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::IO);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(file_reader_);
if (buffer_length > remaining_length_) {
@@ -135,7 +134,7 @@ void LocalReaderProxy::OnCompleted(FileError error) {
void LocalReaderProxy::OnReadCompleted(const net::CompletionCallback& callback,
int read_result) {
- DCHECK_CURRENTLY_ON(BrowserThread::IO);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(file_reader_);
if (read_result >= 0) {
@@ -160,7 +159,6 @@ NetworkReaderProxy::NetworkReaderProxy(
error_code_(net::OK),
buffer_length_(0),
job_canceller_(job_canceller) {
- DCHECK_CURRENTLY_ON(BrowserThread::IO);
}
NetworkReaderProxy::~NetworkReaderProxy() {
@@ -171,7 +169,7 @@ NetworkReaderProxy::~NetworkReaderProxy() {
int NetworkReaderProxy::Read(net::IOBuffer* buffer, int buffer_length,
const net::CompletionCallback& callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::IO);
+ DCHECK(thread_checker_.CalledOnValidThread());
// Check if there is no pending Read operation.
DCHECK(!buffer_.get());
DCHECK_EQ(buffer_length_, 0);
@@ -218,7 +216,7 @@ int NetworkReaderProxy::Read(net::IOBuffer* buffer, int buffer_length,
}
void NetworkReaderProxy::OnGetContent(scoped_ptr<std::string> data) {
- DCHECK_CURRENTLY_ON(BrowserThread::IO);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(data && !data->empty());
if (remaining_offset_ >= static_cast<int64>(data->length())) {
@@ -253,7 +251,7 @@ void NetworkReaderProxy::OnGetContent(scoped_ptr<std::string> data) {
}
void NetworkReaderProxy::OnCompleted(FileError error) {
- DCHECK_CURRENTLY_ON(BrowserThread::IO);
+ DCHECK(thread_checker_.CalledOnValidThread());
// The downloading is completed, so we do not need to cancel the job
// in the destructor.
job_canceller_.Reset();
@@ -333,14 +331,13 @@ DriveFileStreamReader::DriveFileStreamReader(
: file_system_getter_(file_system_getter),
file_task_runner_(file_task_runner),
weak_ptr_factory_(this) {
- DCHECK_CURRENTLY_ON(BrowserThread::IO);
}
DriveFileStreamReader::~DriveFileStreamReader() {
}
bool DriveFileStreamReader::IsInitialized() const {
- DCHECK_CURRENTLY_ON(BrowserThread::IO);
+ DCHECK(thread_checker_.CalledOnValidThread());
return reader_proxy_.get() != NULL;
}
@@ -348,7 +345,7 @@ void DriveFileStreamReader::Initialize(
const base::FilePath& drive_file_path,
const net::HttpByteRange& byte_range,
const InitializeCompletionCallback& callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::IO);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
GetFileContent(
@@ -370,7 +367,7 @@ void DriveFileStreamReader::Initialize(
int DriveFileStreamReader::Read(net::IOBuffer* buffer, int buffer_length,
const net::CompletionCallback& callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::IO);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(reader_proxy_);
DCHECK(buffer);
DCHECK(!callback.is_null());
@@ -379,7 +376,7 @@ int DriveFileStreamReader::Read(net::IOBuffer* buffer, int buffer_length,
void DriveFileStreamReader::StoreCancelDownloadClosure(
const base::Closure& cancel_download_closure) {
- DCHECK_CURRENTLY_ON(BrowserThread::IO);
+ DCHECK(thread_checker_.CalledOnValidThread());
cancel_download_closure_ = cancel_download_closure;
}
@@ -389,7 +386,7 @@ void DriveFileStreamReader::InitializeAfterGetFileContentInitialized(
FileError error,
const base::FilePath& local_cache_file_path,
scoped_ptr<ResourceEntry> entry) {
- DCHECK_CURRENTLY_ON(BrowserThread::IO);
+ DCHECK(thread_checker_.CalledOnValidThread());
// StoreCancelDownloadClosure() should be called before this function.
DCHECK(!cancel_download_closure_.is_null());
@@ -445,7 +442,7 @@ void DriveFileStreamReader::InitializeAfterLocalFileOpen(
scoped_ptr<ResourceEntry> entry,
scoped_ptr<util::LocalFileReader> file_reader,
int open_result) {
- DCHECK_CURRENTLY_ON(BrowserThread::IO);
+ DCHECK(thread_checker_.CalledOnValidThread());
if (open_result != net::OK) {
callback.Run(net::ERR_FAILED, scoped_ptr<ResourceEntry>());
@@ -460,7 +457,7 @@ void DriveFileStreamReader::InitializeAfterLocalFileOpen(
void DriveFileStreamReader::OnGetContent(
google_apis::DriveApiErrorCode error_code,
scoped_ptr<std::string> data) {
- DCHECK_CURRENTLY_ON(BrowserThread::IO);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(reader_proxy_);
reader_proxy_->OnGetContent(data.Pass());
}
@@ -468,7 +465,7 @@ void DriveFileStreamReader::OnGetContent(
void DriveFileStreamReader::OnGetFileContentCompletion(
const InitializeCompletionCallback& callback,
FileError error) {
- DCHECK_CURRENTLY_ON(BrowserThread::IO);
+ DCHECK(thread_checker_.CalledOnValidThread());
if (reader_proxy_) {
// If the proxy object available, send the error to it.
diff --git a/chrome/browser/chromeos/drive/drive_file_stream_reader.h b/chrome/browser/chromeos/drive/drive_file_stream_reader.h
index e61f4f0..9f2073e 100644
--- a/chrome/browser/chromeos/drive/drive_file_stream_reader.h
+++ b/chrome/browser/chromeos/drive/drive_file_stream_reader.h
@@ -12,6 +12,7 @@
#include "base/memory/ref_counted.h"
#include "base/memory/scoped_ptr.h"
#include "base/memory/scoped_vector.h"
+#include "base/threading/thread_checker.h"
#include "chrome/browser/chromeos/drive/file_errors.h"
#include "google_apis/drive/drive_api_error_codes.h"
#include "net/base/completion_callback.h"
@@ -78,6 +79,8 @@ class LocalReaderProxy : public ReaderProxy {
// The number of remaining bytes to be read.
int64 remaining_length_;
+ base::ThreadChecker thread_checker_;
+
// This should remain the last member so it'll be destroyed first and
// invalidate its weak pointers before other members are destroyed.
base::WeakPtrFactory<LocalReaderProxy> weak_ptr_factory_;
@@ -125,6 +128,8 @@ class NetworkReaderProxy : public ReaderProxy {
int buffer_length_;
net::CompletionCallback callback_;
+ base::ThreadChecker thread_checker_;
+
// Keeps the closure to cancel downloading job if necessary.
// Will be reset when the job is completed (regardless whether the job is
// successfully done or not).
@@ -214,6 +219,8 @@ class DriveFileStreamReader {
base::Closure cancel_download_closure_;
scoped_ptr<internal::ReaderProxy> reader_proxy_;
+ base::ThreadChecker thread_checker_;
+
// This should remain the last member so it'll be destroyed first and
// invalidate its weak pointers before other members are destroyed.
base::WeakPtrFactory<DriveFileStreamReader> weak_ptr_factory_;
diff --git a/chrome/browser/chromeos/drive/file_cache.cc b/chrome/browser/chromeos/drive/file_cache.cc
index 910c552..085d6c5 100644
--- a/chrome/browser/chromeos/drive/file_cache.cc
+++ b/chrome/browser/chromeos/drive/file_cache.cc
@@ -6,9 +6,12 @@
#include <vector>
+#include "base/bind.h"
+#include "base/bind_helpers.h"
#include "base/callback_helpers.h"
#include "base/files/file_enumerator.h"
#include "base/files/file_util.h"
+#include "base/location.h"
#include "base/logging.h"
#include "base/metrics/histogram.h"
#include "base/strings/string_util.h"
@@ -19,15 +22,12 @@
#include "chrome/browser/chromeos/drive/resource_metadata_storage.h"
#include "chrome/browser/drive/drive_api_util.h"
#include "chromeos/chromeos_constants.h"
-#include "content/public/browser/browser_thread.h"
#include "google_apis/drive/task_util.h"
#include "net/base/filename_util.h"
#include "net/base/mime_sniffer.h"
#include "net/base/mime_util.h"
#include "third_party/cros_system_api/constants/cryptohome.h"
-using content::BrowserThread;
-
namespace drive {
namespace internal {
namespace {
@@ -49,7 +49,6 @@ FileCache::FileCache(ResourceMetadataStorage* storage,
free_disk_space_getter_(free_disk_space_getter),
weak_ptr_factory_(this) {
DCHECK(blocking_task_runner_.get());
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
}
FileCache::~FileCache() {
@@ -417,7 +416,7 @@ bool FileCache::Initialize() {
}
void FileCache::Destroy() {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
in_shutdown_.Set();
diff --git a/chrome/browser/chromeos/drive/file_cache.h b/chrome/browser/chromeos/drive/file_cache.h
index f93c3e1..d2ba35a 100644
--- a/chrome/browser/chromeos/drive/file_cache.h
+++ b/chrome/browser/chromeos/drive/file_cache.h
@@ -12,6 +12,7 @@
#include "base/memory/scoped_ptr.h"
#include "base/memory/weak_ptr.h"
#include "base/synchronization/cancellation_flag.h"
+#include "base/threading/thread_checker.h"
#include "chrome/browser/chromeos/drive/file_errors.h"
#include "chrome/browser/chromeos/drive/resource_metadata_storage.h"
@@ -180,6 +181,8 @@ class FileCache {
// IDs of files marked mounted.
std::set<std::string> mounted_files_;
+ base::ThreadChecker thread_checker_;
+
// Note: This should remain the last member so it'll be destroyed and
// invalidate its weak pointers before any other members are destroyed.
// This object should be accessed only on |blocking_task_runner_|.
diff --git a/chrome/browser/chromeos/drive/file_system.cc b/chrome/browser/chromeos/drive/file_system.cc
index 189856b..7e04eec 100644
--- a/chrome/browser/chromeos/drive/file_system.cc
+++ b/chrome/browser/chromeos/drive/file_system.cc
@@ -32,11 +32,8 @@
#include "chrome/browser/chromeos/drive/search_metadata.h"
#include "chrome/browser/chromeos/drive/sync_client.h"
#include "chrome/common/pref_names.h"
-#include "content/public/browser/browser_thread.h"
#include "google_apis/drive/drive_api_parser.h"
-using content::BrowserThread;
-
namespace drive {
namespace {
@@ -90,7 +87,6 @@ FileError GetLocallyStoredResourceEntry(
void RunGetResourceEntryCallback(const GetResourceEntryCallback& callback,
scoped_ptr<ResourceEntry> entry,
FileError error) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
DCHECK(!callback.is_null());
if (error != FILE_ERROR_OK)
@@ -160,7 +156,6 @@ void OnGetLargestChangestamp(
const GetFilesystemMetadataCallback& callback,
const int64* largest_changestamp,
FileError error) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
DCHECK(!callback.is_null());
metadata.largest_changestamp = *largest_changestamp;
@@ -205,7 +200,6 @@ FileError GetPathFromResourceIdOnBlockingPool(
void GetPathFromResourceIdAfterGetPath(base::FilePath* file_path,
const GetFilePathCallback& callback,
FileError error) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
callback.Run(error, *file_path);
}
@@ -218,7 +212,6 @@ bool FreeDiskSpaceIfNeededForOnBlockingPool(internal::FileCache* cache,
// Used to implement ReadDirectory().
void FilterHostedDocuments(const ReadDirectoryEntriesCallback& callback,
scoped_ptr<ResourceEntryVector> entries) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
DCHECK(!callback.is_null());
if (entries) {
@@ -295,13 +288,11 @@ FileSystem::FileSystem(PrefService* pref_service,
file_task_runner_(file_task_runner),
temporary_file_directory_(temporary_file_directory),
weak_ptr_factory_(this) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
-
ResetComponents();
}
FileSystem::~FileSystem() {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
directory_loader_->RemoveObserver(this);
change_list_loader_->RemoveObserver(this);
@@ -409,7 +400,7 @@ void FileSystem::ResetComponents() {
}
void FileSystem::CheckForUpdates() {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DVLOG(1) << "CheckForUpdates";
change_list_loader_->CheckForUpdates(
@@ -417,19 +408,19 @@ void FileSystem::CheckForUpdates() {
}
void FileSystem::OnUpdateChecked(FileError error) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DVLOG(1) << "CheckForUpdates finished: " << FileErrorToString(error);
last_update_check_time_ = base::Time::Now();
last_update_check_error_ = error;
}
void FileSystem::AddObserver(FileSystemObserver* observer) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
observers_.AddObserver(observer);
}
void FileSystem::RemoveObserver(FileSystemObserver* observer) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
observers_.RemoveObserver(observer);
}
@@ -437,7 +428,7 @@ void FileSystem::TransferFileFromLocalToRemote(
const base::FilePath& local_src_file_path,
const base::FilePath& remote_dest_file_path,
const FileOperationCallback& callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
copy_operation_->TransferFileFromLocalToRemote(local_src_file_path,
remote_dest_file_path,
@@ -448,7 +439,7 @@ void FileSystem::Copy(const base::FilePath& src_file_path,
const base::FilePath& dest_file_path,
bool preserve_last_modified,
const FileOperationCallback& callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
copy_operation_->Copy(
src_file_path, dest_file_path, preserve_last_modified, callback);
@@ -457,7 +448,7 @@ void FileSystem::Copy(const base::FilePath& src_file_path,
void FileSystem::Move(const base::FilePath& src_file_path,
const base::FilePath& dest_file_path,
const FileOperationCallback& callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
move_operation_->Move(src_file_path, dest_file_path, callback);
}
@@ -465,7 +456,7 @@ void FileSystem::Move(const base::FilePath& src_file_path,
void FileSystem::Remove(const base::FilePath& file_path,
bool is_recursive,
const FileOperationCallback& callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
remove_operation_->Remove(file_path, is_recursive, callback);
}
@@ -475,7 +466,7 @@ void FileSystem::CreateDirectory(
bool is_exclusive,
bool is_recursive,
const FileOperationCallback& callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
CreateDirectoryParams params;
@@ -493,7 +484,7 @@ void FileSystem::CreateDirectory(
void FileSystem::CreateDirectoryAfterRead(const CreateDirectoryParams& params,
FileError error) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!params.callback.is_null());
DVLOG_IF(1, error != FILE_ERROR_OK) << "ReadDirectory failed. "
@@ -508,7 +499,7 @@ void FileSystem::CreateFile(const base::FilePath& file_path,
bool is_exclusive,
const std::string& mime_type,
const FileOperationCallback& callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
create_file_operation_->CreateFile(
file_path, is_exclusive, mime_type, callback);
@@ -518,7 +509,7 @@ void FileSystem::TouchFile(const base::FilePath& file_path,
const base::Time& last_access_time,
const base::Time& last_modified_time,
const FileOperationCallback& callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
touch_operation_->TouchFile(
file_path, last_access_time, last_modified_time, callback);
@@ -527,14 +518,14 @@ void FileSystem::TouchFile(const base::FilePath& file_path,
void FileSystem::TruncateFile(const base::FilePath& file_path,
int64 length,
const FileOperationCallback& callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
truncate_operation_->Truncate(file_path, length, callback);
}
void FileSystem::Pin(const base::FilePath& file_path,
const FileOperationCallback& callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
std::string* local_id = new std::string;
@@ -551,7 +542,7 @@ void FileSystem::Pin(const base::FilePath& file_path,
void FileSystem::FinishPin(const FileOperationCallback& callback,
const std::string* local_id,
FileError error) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
if (error == FILE_ERROR_OK)
@@ -561,7 +552,7 @@ void FileSystem::FinishPin(const FileOperationCallback& callback,
void FileSystem::Unpin(const base::FilePath& file_path,
const FileOperationCallback& callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
std::string* local_id = new std::string;
@@ -579,7 +570,7 @@ void FileSystem::Unpin(const base::FilePath& file_path,
void FileSystem::FinishUnpin(const FileOperationCallback& callback,
const std::string* local_id,
FileError error) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
if (error == FILE_ERROR_OK)
@@ -589,7 +580,7 @@ void FileSystem::FinishUnpin(const FileOperationCallback& callback,
void FileSystem::GetFile(const base::FilePath& file_path,
const GetFileCallback& callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
download_operation_->EnsureFileDownloadedByPath(
@@ -602,7 +593,7 @@ void FileSystem::GetFile(const base::FilePath& file_path,
void FileSystem::GetFileForSaving(const base::FilePath& file_path,
const GetFileCallback& callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
get_file_for_saving_operation_->GetFileForSaving(file_path, callback);
@@ -613,7 +604,7 @@ base::Closure FileSystem::GetFileContent(
const GetFileContentInitializedCallback& initialized_callback,
const google_apis::GetContentCallback& get_content_callback,
const FileOperationCallback& completion_callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!initialized_callback.is_null());
DCHECK(!get_content_callback.is_null());
DCHECK(!completion_callback.is_null());
@@ -630,7 +621,7 @@ base::Closure FileSystem::GetFileContent(
void FileSystem::GetResourceEntry(
const base::FilePath& file_path,
const GetResourceEntryCallback& callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
ReadDirectory(file_path.DirName(),
@@ -645,7 +636,7 @@ void FileSystem::GetResourceEntryAfterRead(
const base::FilePath& file_path,
const GetResourceEntryCallback& callback,
FileError error) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
DVLOG_IF(1, error != FILE_ERROR_OK) << "ReadDirectory failed. "
@@ -668,7 +659,7 @@ void FileSystem::ReadDirectory(
const base::FilePath& directory_path,
const ReadDirectoryEntriesCallback& entries_callback_in,
const FileOperationCallback& completion_callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!completion_callback.is_null());
const bool hide_hosted_docs =
@@ -687,7 +678,7 @@ void FileSystem::ReadDirectory(
void FileSystem::GetAvailableSpace(
const GetAvailableSpaceCallback& callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
about_resource_loader_->GetAboutResource(
@@ -700,7 +691,7 @@ void FileSystem::OnGetAboutResource(
const GetAvailableSpaceCallback& callback,
google_apis::DriveApiErrorCode status,
scoped_ptr<google_apis::AboutResource> about_resource) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
FileError error = GDataToFileError(status);
@@ -717,7 +708,7 @@ void FileSystem::OnGetAboutResource(
void FileSystem::GetShareUrl(const base::FilePath& file_path,
const GURL& embed_origin,
const GetShareUrlCallback& callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
// Resolve the resource id.
@@ -743,7 +734,7 @@ void FileSystem::GetShareUrlAfterGetResourceEntry(
const GetShareUrlCallback& callback,
ResourceEntry* entry,
FileError error) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
if (error != FILE_ERROR_OK) {
@@ -769,7 +760,7 @@ void FileSystem::OnGetResourceEntryForGetShareUrl(
const GetShareUrlCallback& callback,
google_apis::DriveApiErrorCode status,
const GURL& share_url) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
FileError error = GDataToFileError(status);
@@ -789,7 +780,7 @@ void FileSystem::OnGetResourceEntryForGetShareUrl(
void FileSystem::Search(const std::string& search_query,
const GURL& next_link,
const SearchCallback& callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
search_operation_->Search(search_query, next_link, callback);
}
@@ -798,7 +789,7 @@ void FileSystem::SearchMetadata(const std::string& query,
int options,
int at_most_num_matches,
const SearchMetadataCallback& callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
// TODO(satorux): Stop handling hide_hosted_docs here. crbug.com/256520.
if (pref_service_->GetBoolean(prefs::kDisableDriveHostedFiles))
@@ -812,7 +803,7 @@ void FileSystem::SearchMetadata(const std::string& query,
void FileSystem::SearchByHashes(const std::set<std::string>& hashes,
const SearchByHashesCallback& callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
drive::internal::SearchMetadata(
blocking_task_runner_, resource_metadata_,
/* any file name */ "", base::Bind(&CheckHashes, hashes),
@@ -821,7 +812,7 @@ void FileSystem::SearchByHashes(const std::set<std::string>& hashes,
}
void FileSystem::OnFileChangedByOperation(const FileChange& changed_files) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
FOR_EACH_OBSERVER(
FileSystemObserver, observers_, OnFileChanged(changed_files));
@@ -865,27 +856,27 @@ bool FileSystem::WaitForSyncComplete(const std::string& local_id,
}
void FileSystem::OnDirectoryReloaded(const base::FilePath& directory_path) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
FOR_EACH_OBSERVER(
FileSystemObserver, observers_, OnDirectoryChanged(directory_path));
}
void FileSystem::OnFileChanged(const FileChange& changed_files) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
FOR_EACH_OBSERVER(
FileSystemObserver, observers_, OnFileChanged(changed_files));
}
void FileSystem::OnLoadFromServerComplete() {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
sync_client_->StartCheckingExistingPinnedFiles();
}
void FileSystem::OnInitialLoadComplete() {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
blocking_task_runner_->PostTask(FROM_HERE,
base::Bind(&internal::RemoveStaleCacheFiles,
@@ -896,7 +887,7 @@ void FileSystem::OnInitialLoadComplete() {
void FileSystem::GetMetadata(
const GetFilesystemMetadataCallback& callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
FileSystemMetadata metadata;
@@ -922,7 +913,7 @@ void FileSystem::GetMetadata(
void FileSystem::MarkCacheFileAsMounted(
const base::FilePath& drive_file_path,
const MarkMountedCallback& callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
base::FilePath* cache_file_path = new base::FilePath;
@@ -941,7 +932,7 @@ void FileSystem::MarkCacheFileAsMounted(
void FileSystem::MarkCacheFileAsUnmounted(
const base::FilePath& cache_file_path,
const FileOperationCallback& callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
if (!cache_->IsUnderFileCacheDirectory(cache_file_path)) {
@@ -962,7 +953,7 @@ void FileSystem::AddPermission(const base::FilePath& drive_file_path,
const std::string& email,
google_apis::drive::PermissionRole role,
const FileOperationCallback& callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
// Resolve the resource id.
@@ -988,7 +979,7 @@ void FileSystem::AddPermissionAfterGetResourceEntry(
const FileOperationCallback& callback,
ResourceEntry* entry,
FileError error) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
if (error != FILE_ERROR_OK) {
callback.Run(error);
@@ -1008,7 +999,7 @@ void FileSystem::SetProperty(
const std::string& key,
const std::string& value,
const FileOperationCallback& callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
set_property_operation_->SetProperty(drive_file_path, visibility, key, value,
@@ -1019,7 +1010,7 @@ void FileSystem::OpenFile(const base::FilePath& file_path,
OpenMode open_mode,
const std::string& mime_type,
const OpenFileCallback& callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
open_file_operation_->OpenFile(file_path, open_mode, mime_type, callback);
@@ -1027,7 +1018,7 @@ void FileSystem::OpenFile(const base::FilePath& file_path,
void FileSystem::GetPathFromResourceId(const std::string& resource_id,
const GetFilePathCallback& callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
base::FilePath* const file_path = new base::FilePath();
@@ -1046,7 +1037,7 @@ void FileSystem::GetPathFromResourceId(const std::string& resource_id,
void FileSystem::FreeDiskSpaceIfNeededFor(
int64 num_bytes,
const FreeDiskSpaceCallback& callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
base::PostTaskAndReplyWithResult(
blocking_task_runner_.get(), FROM_HERE,
diff --git a/chrome/browser/chromeos/drive/file_system.h b/chrome/browser/chromeos/drive/file_system.h
index c96594a..7d091ab 100644
--- a/chrome/browser/chromeos/drive/file_system.h
+++ b/chrome/browser/chromeos/drive/file_system.h
@@ -11,6 +11,7 @@
#include "base/memory/scoped_ptr.h"
#include "base/memory/weak_ptr.h"
#include "base/observer_list.h"
+#include "base/threading/thread_checker.h"
#include "chrome/browser/chromeos/drive/change_list_loader_observer.h"
#include "chrome/browser/chromeos/drive/file_system/operation_delegate.h"
#include "chrome/browser/chromeos/drive/file_system_interface.h"
@@ -294,6 +295,8 @@ class FileSystem : public FileSystemInterface,
get_file_for_saving_operation_;
scoped_ptr<file_system::SetPropertyOperation> set_property_operation_;
+ base::ThreadChecker thread_checker_;
+
// Note: This should remain the last member so it'll be destroyed and
// invalidate the weak pointers before any other members are destroyed.
base::WeakPtrFactory<FileSystem> weak_ptr_factory_;
diff --git a/chrome/browser/chromeos/drive/file_system/copy_operation.cc b/chrome/browser/chromeos/drive/file_system/copy_operation.cc
index 39b959a..e6b58f1 100644
--- a/chrome/browser/chromeos/drive/file_system/copy_operation.cc
+++ b/chrome/browser/chromeos/drive/file_system/copy_operation.cc
@@ -17,11 +17,8 @@
#include "chrome/browser/chromeos/drive/resource_entry_conversion.h"
#include "chrome/browser/chromeos/drive/resource_metadata.h"
#include "chrome/browser/drive/drive_api_util.h"
-#include "content/public/browser/browser_thread.h"
#include "google_apis/drive/drive_api_parser.h"
-using content::BrowserThread;
-
namespace drive {
namespace file_system {
@@ -288,18 +285,17 @@ CopyOperation::CopyOperation(base::SequencedTaskRunner* blocking_task_runner,
delegate,
metadata)),
weak_ptr_factory_(this) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
}
CopyOperation::~CopyOperation() {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
}
void CopyOperation::Copy(const base::FilePath& src_file_path,
const base::FilePath& dest_file_path,
bool preserve_last_modified,
const FileOperationCallback& callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
CopyParams* params = new CopyParams;
@@ -328,7 +324,7 @@ void CopyOperation::CopyAfterTryToCopyLocally(
const bool* directory_changed,
const bool* should_copy_on_server,
FileError error) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!params->callback.is_null());
for (const auto& id : *updated_local_ids) {
@@ -366,7 +362,7 @@ void CopyOperation::CopyAfterTryToCopyLocally(
void CopyOperation::CopyAfterParentSync(const CopyParams& params,
FileError error) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!params.callback.is_null());
if (error != FILE_ERROR_OK) {
@@ -391,7 +387,7 @@ void CopyOperation::CopyAfterParentSync(const CopyParams& params,
void CopyOperation::CopyAfterGetParentResourceId(const CopyParams& params,
const ResourceEntry* parent,
FileError error) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!params.callback.is_null());
if (error != FILE_ERROR_OK) {
@@ -420,7 +416,7 @@ void CopyOperation::TransferFileFromLocalToRemote(
const base::FilePath& local_src_path,
const base::FilePath& remote_dest_path,
const FileOperationCallback& callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
std::string* gdoc_resource_id = new std::string;
@@ -446,7 +442,7 @@ void CopyOperation::TransferFileFromLocalToRemoteAfterPrepare(
std::string* gdoc_resource_id,
ResourceEntry* parent_entry,
FileError error) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
if (error != FILE_ERROR_OK) {
@@ -483,7 +479,7 @@ void CopyOperation::TransferFileFromLocalToRemoteAfterPrepare(
void CopyOperation::TransferJsonGdocFileAfterLocalWork(
TransferJsonGdocParams* params,
FileError error) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
if (error != FILE_ERROR_OK) {
params->callback.Run(error);
@@ -541,7 +537,7 @@ void CopyOperation::CopyResourceOnServer(
const std::string& new_title,
const base::Time& last_modified,
const FileOperationCallback& callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
scheduler_->CopyResource(
@@ -555,7 +551,7 @@ void CopyOperation::UpdateAfterServerSideOperation(
const FileOperationCallback& callback,
google_apis::DriveApiErrorCode status,
scoped_ptr<google_apis::FileResource> entry) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
FileError error = GDataToFileError(status);
@@ -589,7 +585,7 @@ void CopyOperation::UpdateAfterLocalStateUpdate(
base::FilePath* file_path,
const ResourceEntry* entry,
FileError error) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
if (error == FILE_ERROR_OK) {
@@ -604,7 +600,7 @@ void CopyOperation::ScheduleTransferRegularFile(
const base::FilePath& local_src_path,
const base::FilePath& remote_dest_path,
const FileOperationCallback& callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
create_file_operation_->CreateFile(
@@ -621,7 +617,7 @@ void CopyOperation::ScheduleTransferRegularFileAfterCreate(
const base::FilePath& remote_dest_path,
const FileOperationCallback& callback,
FileError error) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
if (error != FILE_ERROR_OK) {
@@ -656,7 +652,7 @@ void CopyOperation::ScheduleTransferRegularFileAfterUpdateLocalState(
const ResourceEntry* entry,
std::string* local_id,
FileError error) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
if (error == FILE_ERROR_OK) {
diff --git a/chrome/browser/chromeos/drive/file_system/copy_operation.h b/chrome/browser/chromeos/drive/file_system/copy_operation.h
index 6a3833d..af3bbdc 100644
--- a/chrome/browser/chromeos/drive/file_system/copy_operation.h
+++ b/chrome/browser/chromeos/drive/file_system/copy_operation.h
@@ -12,6 +12,7 @@
#include "base/memory/ref_counted.h"
#include "base/memory/scoped_ptr.h"
#include "base/memory/weak_ptr.h"
+#include "base/threading/thread_checker.h"
#include "chrome/browser/chromeos/drive/file_errors.h"
#include "google_apis/drive/drive_api_error_codes.h"
@@ -166,6 +167,8 @@ class CopyOperation {
// Uploading a new file is internally implemented by creating a dirty file.
scoped_ptr<CreateFileOperation> create_file_operation_;
+ base::ThreadChecker thread_checker_;
+
// Note: This should remain the last member so it'll be destroyed and
// invalidate the weak pointers before any other members are destroyed.
base::WeakPtrFactory<CopyOperation> weak_ptr_factory_;
diff --git a/chrome/browser/chromeos/drive/file_system/create_directory_operation.cc b/chrome/browser/chromeos/drive/file_system/create_directory_operation.cc
index 28d36b9..1901c4c 100644
--- a/chrome/browser/chromeos/drive/file_system/create_directory_operation.cc
+++ b/chrome/browser/chromeos/drive/file_system/create_directory_operation.cc
@@ -10,9 +10,6 @@
#include "chrome/browser/chromeos/drive/file_system_util.h"
#include "chrome/browser/chromeos/drive/job_scheduler.h"
#include "chrome/browser/chromeos/drive/resource_metadata.h"
-#include "content/public/browser/browser_thread.h"
-
-using content::BrowserThread;
namespace drive {
namespace file_system {
@@ -130,11 +127,10 @@ CreateDirectoryOperation::CreateDirectoryOperation(
delegate_(delegate),
metadata_(metadata),
weak_ptr_factory_(this) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
}
CreateDirectoryOperation::~CreateDirectoryOperation() {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
}
void CreateDirectoryOperation::CreateDirectory(
@@ -142,7 +138,7 @@ void CreateDirectoryOperation::CreateDirectory(
bool is_exclusive,
bool is_recursive,
const FileOperationCallback& callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
std::set<std::string>* updated_local_ids = new std::set<std::string>;
@@ -170,7 +166,7 @@ void CreateDirectoryOperation::CreateDirectoryAfterUpdateLocalState(
const std::set<std::string>* updated_local_ids,
const FileChange* changed_files,
FileError error) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
for (const auto& id : *updated_local_ids) {
diff --git a/chrome/browser/chromeos/drive/file_system/create_directory_operation.h b/chrome/browser/chromeos/drive/file_system/create_directory_operation.h
index f77a599..4b3055b 100644
--- a/chrome/browser/chromeos/drive/file_system/create_directory_operation.h
+++ b/chrome/browser/chromeos/drive/file_system/create_directory_operation.h
@@ -10,6 +10,7 @@
#include "base/basictypes.h"
#include "base/memory/ref_counted.h"
#include "base/memory/weak_ptr.h"
+#include "base/threading/thread_checker.h"
#include "chrome/browser/chromeos/drive/file_errors.h"
namespace base {
@@ -64,6 +65,8 @@ class CreateDirectoryOperation {
OperationDelegate* delegate_;
internal::ResourceMetadata* metadata_;
+ base::ThreadChecker thread_checker_;
+
// Note: This should remain the last member so it'll be destroyed and
// invalidate the weak pointers before any other members are destroyed.
base::WeakPtrFactory<CreateDirectoryOperation> weak_ptr_factory_;
diff --git a/chrome/browser/chromeos/drive/file_system/create_file_operation.cc b/chrome/browser/chromeos/drive/file_system/create_file_operation.cc
index afbc20c..12e57aa 100644
--- a/chrome/browser/chromeos/drive/file_system/create_file_operation.cc
+++ b/chrome/browser/chromeos/drive/file_system/create_file_operation.cc
@@ -12,11 +12,8 @@
#include "chrome/browser/chromeos/drive/file_system/operation_delegate.h"
#include "chrome/browser/chromeos/drive/job_scheduler.h"
#include "chrome/browser/chromeos/drive/resource_metadata.h"
-#include "content/public/browser/browser_thread.h"
#include "net/base/mime_util.h"
-using content::BrowserThread;
-
namespace drive {
namespace file_system {
@@ -78,18 +75,17 @@ CreateFileOperation::CreateFileOperation(
delegate_(delegate),
metadata_(metadata),
weak_ptr_factory_(this) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
}
CreateFileOperation::~CreateFileOperation() {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
}
void CreateFileOperation::CreateFile(const base::FilePath& file_path,
bool is_exclusive,
const std::string& mime_type,
const FileOperationCallback& callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
ResourceEntry* entry = new ResourceEntry;
@@ -115,7 +111,7 @@ void CreateFileOperation::CreateFileAfterUpdateLocalState(
bool is_exclusive,
ResourceEntry* entry,
FileError error) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
if (error == FILE_ERROR_EXISTS) {
diff --git a/chrome/browser/chromeos/drive/file_system/create_file_operation.h b/chrome/browser/chromeos/drive/file_system/create_file_operation.h
index d515ac7..6c2b627 100644
--- a/chrome/browser/chromeos/drive/file_system/create_file_operation.h
+++ b/chrome/browser/chromeos/drive/file_system/create_file_operation.h
@@ -8,6 +8,7 @@
#include "base/basictypes.h"
#include "base/memory/ref_counted.h"
#include "base/memory/weak_ptr.h"
+#include "base/threading/thread_checker.h"
#include "chrome/browser/chromeos/drive/file_errors.h"
namespace base {
@@ -61,6 +62,8 @@ class CreateFileOperation {
OperationDelegate* delegate_;
internal::ResourceMetadata* metadata_;
+ base::ThreadChecker thread_checker_;
+
// Note: This should remain the last member so it'll be destroyed and
// invalidate the weak pointers before any other members are destroyed.
base::WeakPtrFactory<CreateFileOperation> weak_ptr_factory_;
diff --git a/chrome/browser/chromeos/drive/file_system/download_operation.cc b/chrome/browser/chromeos/drive/file_system/download_operation.cc
index 1aeb5e7..d3dde19 100644
--- a/chrome/browser/chromeos/drive/file_system/download_operation.cc
+++ b/chrome/browser/chromeos/drive/file_system/download_operation.cc
@@ -17,11 +17,8 @@
#include "chrome/browser/chromeos/drive/file_system_util.h"
#include "chrome/browser/chromeos/drive/job_scheduler.h"
#include "chrome/browser/chromeos/drive/resource_metadata.h"
-#include "content/public/browser/browser_thread.h"
#include "google_apis/drive/drive_api_error_codes.h"
-using content::BrowserThread;
-
namespace drive {
namespace file_system {
namespace {
@@ -360,7 +357,7 @@ base::Closure DownloadOperation::EnsureFileDownloadedByLocalId(
const GetFileContentInitializedCallback& initialized_callback,
const google_apis::GetContentCallback& get_content_callback,
const GetFileCallback& completion_callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!completion_callback.is_null());
CheckPreconditionForEnsureFileDownloadedParams params;
@@ -401,7 +398,7 @@ base::Closure DownloadOperation::EnsureFileDownloadedByPath(
const GetFileContentInitializedCallback& initialized_callback,
const google_apis::GetContentCallback& get_content_callback,
const GetFileCallback& completion_callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!completion_callback.is_null());
CheckPreconditionForEnsureFileDownloadedParams params;
@@ -442,7 +439,7 @@ void DownloadOperation::EnsureFileDownloadedAfterCheckPreCondition(
base::FilePath* cache_file_path,
base::FilePath* temp_download_file_path,
FileError error) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(params);
DCHECK(drive_file_path);
DCHECK(cache_file_path);
@@ -489,7 +486,7 @@ void DownloadOperation::EnsureFileDownloadedAfterDownloadFile(
scoped_ptr<DownloadParams> params,
google_apis::DriveApiErrorCode gdata_error,
const base::FilePath& downloaded_file_path) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DownloadParams* params_ptr = params.get();
ResourceEntry* entry_after_update = new ResourceEntry;
@@ -519,7 +516,7 @@ void DownloadOperation::EnsureFileDownloadedAfterUpdateLocalState(
scoped_ptr<ResourceEntry> entry_after_update,
base::FilePath* cache_file_path,
FileError error) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
if (error != FILE_ERROR_OK) {
params->OnError(error);
diff --git a/chrome/browser/chromeos/drive/file_system/download_operation.h b/chrome/browser/chromeos/drive/file_system/download_operation.h
index 9dcd52d..2ad4018 100644
--- a/chrome/browser/chromeos/drive/file_system/download_operation.h
+++ b/chrome/browser/chromeos/drive/file_system/download_operation.h
@@ -7,6 +7,7 @@
#include "base/basictypes.h"
#include "base/memory/scoped_ptr.h"
+#include "base/threading/thread_checker.h"
#include "chrome/browser/chromeos/drive/file_errors.h"
#include "chrome/browser/chromeos/drive/file_system_interface.h"
#include "chrome/browser/chromeos/drive/job_list.h"
@@ -118,6 +119,8 @@ class DownloadOperation {
internal::FileCache* cache_;
const base::FilePath temporary_file_directory_;
+ base::ThreadChecker thread_checker_;
+
// Note: This should remain the last member so it'll be destroyed and
// invalidate its weak pointers before any other members are destroyed.
base::WeakPtrFactory<DownloadOperation> weak_ptr_factory_;
diff --git a/chrome/browser/chromeos/drive/file_system/get_file_for_saving_operation.cc b/chrome/browser/chromeos/drive/file_system/get_file_for_saving_operation.cc
index ea85f58..12f2898 100644
--- a/chrome/browser/chromeos/drive/file_system/get_file_for_saving_operation.cc
+++ b/chrome/browser/chromeos/drive/file_system/get_file_for_saving_operation.cc
@@ -16,8 +16,6 @@
#include "chrome/browser/drive/event_logger.h"
#include "content/public/browser/browser_thread.h"
-using content::BrowserThread;
-
namespace drive {
namespace file_system {
@@ -69,7 +67,7 @@ GetFileForSavingOperation::~GetFileForSavingOperation() {
void GetFileForSavingOperation::GetFileForSaving(
const base::FilePath& file_path,
const GetFileCallback& callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
create_file_operation_->CreateFile(
@@ -86,7 +84,7 @@ void GetFileForSavingOperation::GetFileForSavingAfterCreate(
const base::FilePath& file_path,
const GetFileCallback& callback,
FileError error) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
if (error != FILE_ERROR_OK) {
@@ -109,7 +107,7 @@ void GetFileForSavingOperation::GetFileForSavingAfterDownload(
FileError error,
const base::FilePath& cache_path,
scoped_ptr<ResourceEntry> entry) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
if (error != FILE_ERROR_OK) {
@@ -144,7 +142,7 @@ void GetFileForSavingOperation::GetFileForSavingAfterOpenForWrite(
scoped_ptr<ResourceEntry> entry,
scoped_ptr<base::ScopedClosureRunner>* file_closer,
FileError error) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
if (error != FILE_ERROR_OK) {
@@ -171,7 +169,7 @@ void GetFileForSavingOperation::GetFileForSavingAfterWatch(
const base::FilePath& cache_path,
scoped_ptr<ResourceEntry> entry,
bool success) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
logger_->Log(logging::LOG_INFO, "Started watching modification to %s [%s].",
diff --git a/chrome/browser/chromeos/drive/file_system/get_file_for_saving_operation.h b/chrome/browser/chromeos/drive/file_system/get_file_for_saving_operation.h
index 749c5f0..fc63db1 100644
--- a/chrome/browser/chromeos/drive/file_system/get_file_for_saving_operation.h
+++ b/chrome/browser/chromeos/drive/file_system/get_file_for_saving_operation.h
@@ -9,6 +9,7 @@
#include "base/memory/ref_counted.h"
#include "base/memory/scoped_ptr.h"
#include "base/memory/weak_ptr.h"
+#include "base/threading/thread_checker.h"
#include "chrome/browser/chromeos/drive/file_errors.h"
#include "chrome/browser/chromeos/drive/file_system_interface.h"
@@ -94,6 +95,8 @@ class GetFileForSavingOperation {
internal::ResourceMetadata* metadata_;
internal::FileCache* cache_;
+ base::ThreadChecker thread_checker_;
+
// Note: This should remain the last member so it'll be destroyed and
// invalidate the weak pointers before any other members are destroyed.
base::WeakPtrFactory<GetFileForSavingOperation> weak_ptr_factory_;
diff --git a/chrome/browser/chromeos/drive/file_system/move_operation.cc b/chrome/browser/chromeos/drive/file_system/move_operation.cc
index 402ee53..9d9391b 100644
--- a/chrome/browser/chromeos/drive/file_system/move_operation.cc
+++ b/chrome/browser/chromeos/drive/file_system/move_operation.cc
@@ -10,9 +10,6 @@
#include "chrome/browser/chromeos/drive/file_system/operation_delegate.h"
#include "chrome/browser/chromeos/drive/job_scheduler.h"
#include "chrome/browser/chromeos/drive/resource_metadata.h"
-#include "content/public/browser/browser_thread.h"
-
-using content::BrowserThread;
namespace drive {
namespace file_system {
@@ -74,17 +71,16 @@ MoveOperation::MoveOperation(base::SequencedTaskRunner* blocking_task_runner,
delegate_(delegate),
metadata_(metadata),
weak_ptr_factory_(this) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
}
MoveOperation::~MoveOperation() {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
}
void MoveOperation::Move(const base::FilePath& src_file_path,
const base::FilePath& dest_file_path,
const FileOperationCallback& callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
FileChange* changed_files = new FileChange;
@@ -110,7 +106,7 @@ void MoveOperation::MoveAfterUpdateLocalState(
const FileChange* changed_files,
const std::string* local_id,
FileError error) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
if (error == FILE_ERROR_OK) {
// Notify the change of directory.
delegate_->OnFileChangedByOperation(*changed_files);
diff --git a/chrome/browser/chromeos/drive/file_system/move_operation.h b/chrome/browser/chromeos/drive/file_system/move_operation.h
index 5bea0e6..7b41933 100644
--- a/chrome/browser/chromeos/drive/file_system/move_operation.h
+++ b/chrome/browser/chromeos/drive/file_system/move_operation.h
@@ -11,6 +11,7 @@
#include "base/memory/ref_counted.h"
#include "base/memory/scoped_ptr.h"
#include "base/memory/weak_ptr.h"
+#include "base/threading/thread_checker.h"
#include "chrome/browser/chromeos/drive/file_errors.h"
#include "google_apis/drive/drive_api_error_codes.h"
@@ -64,6 +65,8 @@ class MoveOperation {
OperationDelegate* delegate_;
internal::ResourceMetadata* metadata_;
+ base::ThreadChecker thread_checker_;
+
// Note: This should remain the last member so it'll be destroyed and
// invalidate the weak pointers before any other members are destroyed.
base::WeakPtrFactory<MoveOperation> weak_ptr_factory_;
diff --git a/chrome/browser/chromeos/drive/file_system/open_file_operation.cc b/chrome/browser/chromeos/drive/file_system/open_file_operation.cc
index d8aa4a0..ee779ec 100644
--- a/chrome/browser/chromeos/drive/file_system/open_file_operation.cc
+++ b/chrome/browser/chromeos/drive/file_system/open_file_operation.cc
@@ -18,9 +18,6 @@
#include "chrome/browser/chromeos/drive/file_system/download_operation.h"
#include "chrome/browser/chromeos/drive/file_system/operation_delegate.h"
#include "chrome/browser/chromeos/drive/job_scheduler.h"
-#include "content/public/browser/browser_thread.h"
-
-using content::BrowserThread;
namespace drive {
namespace file_system {
@@ -50,7 +47,7 @@ void OpenFileOperation::OpenFile(const base::FilePath& file_path,
OpenMode open_mode,
const std::string& mime_type,
const OpenFileCallback& callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
switch (open_mode) {
@@ -83,7 +80,7 @@ void OpenFileOperation::OpenFileAfterCreateFile(
const base::FilePath& file_path,
const OpenFileCallback& callback,
FileError error) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
if (error != FILE_ERROR_OK) {
@@ -106,7 +103,7 @@ void OpenFileOperation::OpenFileAfterFileDownloaded(
FileError error,
const base::FilePath& local_file_path,
scoped_ptr<ResourceEntry> entry) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
if (error == FILE_ERROR_OK) {
@@ -145,7 +142,7 @@ void OpenFileOperation::OpenFileAfterOpenForWrite(
const OpenFileCallback& callback,
scoped_ptr<base::ScopedClosureRunner>* file_closer,
FileError error) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
if (error != FILE_ERROR_OK) {
@@ -164,7 +161,7 @@ void OpenFileOperation::OpenFileAfterOpenForWrite(
void OpenFileOperation::CloseFile(
const std::string& local_id,
scoped_ptr<base::ScopedClosureRunner> file_closer) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK_GT(open_files_[local_id], 0);
if (--open_files_[local_id] == 0) {
diff --git a/chrome/browser/chromeos/drive/file_system/open_file_operation.h b/chrome/browser/chromeos/drive/file_system/open_file_operation.h
index 953130b..02795b6 100644
--- a/chrome/browser/chromeos/drive/file_system/open_file_operation.h
+++ b/chrome/browser/chromeos/drive/file_system/open_file_operation.h
@@ -11,6 +11,7 @@
#include "base/memory/ref_counted.h"
#include "base/memory/scoped_ptr.h"
#include "base/memory/weak_ptr.h"
+#include "base/threading/thread_checker.h"
#include "chrome/browser/chromeos/drive/file_errors.h"
#include "chrome/browser/chromeos/drive/file_system_interface.h"
@@ -94,6 +95,8 @@ class OpenFileOperation {
// the file is opened.
std::map<std::string, int> open_files_;
+ base::ThreadChecker thread_checker_;
+
// Note: This should remain the last member so it'll be destroyed and
// invalidate its weak pointers before any other members are destroyed.
base::WeakPtrFactory<OpenFileOperation> weak_ptr_factory_;
diff --git a/chrome/browser/chromeos/drive/file_system/remove_operation.cc b/chrome/browser/chromeos/drive/file_system/remove_operation.cc
index c3f7a1e..d3d58d9 100644
--- a/chrome/browser/chromeos/drive/file_system/remove_operation.cc
+++ b/chrome/browser/chromeos/drive/file_system/remove_operation.cc
@@ -12,9 +12,6 @@
#include "chrome/browser/chromeos/drive/file_system_util.h"
#include "chrome/browser/chromeos/drive/job_scheduler.h"
#include "chrome/browser/chromeos/drive/resource_metadata.h"
-#include "content/public/browser/browser_thread.h"
-
-using content::BrowserThread;
namespace drive {
namespace file_system {
@@ -70,17 +67,16 @@ RemoveOperation::RemoveOperation(
metadata_(metadata),
cache_(cache),
weak_ptr_factory_(this) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
}
RemoveOperation::~RemoveOperation() {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
}
void RemoveOperation::Remove(const base::FilePath& path,
bool is_recursive,
const FileOperationCallback& callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
std::string* local_id = new std::string;
@@ -111,7 +107,7 @@ void RemoveOperation::RemoveAfterUpdateLocalState(
const ResourceEntry* entry,
const base::FilePath* changed_path,
FileError error) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
if (!changed_path->empty()) {
diff --git a/chrome/browser/chromeos/drive/file_system/remove_operation.h b/chrome/browser/chromeos/drive/file_system/remove_operation.h
index 215e6a3..c8cc6f3 100644
--- a/chrome/browser/chromeos/drive/file_system/remove_operation.h
+++ b/chrome/browser/chromeos/drive/file_system/remove_operation.h
@@ -9,6 +9,7 @@
#include "base/memory/ref_counted.h"
#include "base/memory/scoped_ptr.h"
#include "base/memory/weak_ptr.h"
+#include "base/threading/thread_checker.h"
#include "chrome/browser/chromeos/drive/file_errors.h"
#include "google_apis/drive/drive_api_error_codes.h"
@@ -62,6 +63,8 @@ class RemoveOperation {
internal::ResourceMetadata* metadata_;
internal::FileCache* cache_;
+ base::ThreadChecker thread_checker_;
+
// Note: This should remain the last member so it'll be destroyed and
// invalidate the weak pointers before any other members are destroyed.
base::WeakPtrFactory<RemoveOperation> weak_ptr_factory_;
diff --git a/chrome/browser/chromeos/drive/file_system/search_operation.cc b/chrome/browser/chromeos/drive/file_system/search_operation.cc
index 8b32317..182cb6f 100644
--- a/chrome/browser/chromeos/drive/file_system/search_operation.cc
+++ b/chrome/browser/chromeos/drive/file_system/search_operation.cc
@@ -17,12 +17,9 @@
#include "chrome/browser/chromeos/drive/resource_entry_conversion.h"
#include "chrome/browser/chromeos/drive/resource_metadata.h"
#include "chrome/browser/drive/drive_api_util.h"
-#include "content/public/browser/browser_thread.h"
#include "google_apis/drive/drive_api_parser.h"
#include "url/gurl.h"
-using content::BrowserThread;
-
namespace drive {
namespace file_system {
namespace {
@@ -98,7 +95,7 @@ SearchOperation::~SearchOperation() {
void SearchOperation::Search(const std::string& search_query,
const GURL& next_link,
const SearchCallback& callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
if (next_link.is_empty()) {
@@ -120,7 +117,7 @@ void SearchOperation::SearchAfterGetFileList(
const SearchCallback& callback,
google_apis::DriveApiErrorCode gdata_error,
scoped_ptr<google_apis::FileList> file_list) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
FileError error = GDataToFileError(gdata_error);
@@ -167,7 +164,7 @@ void SearchOperation::SearchAfterResolveSearchResult(
const GURL& next_link,
scoped_ptr<std::vector<SearchResultInfo> > result,
FileError error) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
DCHECK(result);
diff --git a/chrome/browser/chromeos/drive/file_system/search_operation.h b/chrome/browser/chromeos/drive/file_system/search_operation.h
index aa2e5f7..709371d 100644
--- a/chrome/browser/chromeos/drive/file_system/search_operation.h
+++ b/chrome/browser/chromeos/drive/file_system/search_operation.h
@@ -9,6 +9,7 @@
#include "base/memory/ref_counted.h"
#include "base/memory/scoped_ptr.h"
#include "base/memory/weak_ptr.h"
+#include "base/threading/thread_checker.h"
#include "chrome/browser/chromeos/drive/file_errors.h"
#include "chrome/browser/chromeos/drive/file_system_interface.h"
#include "google_apis/drive/drive_api_error_codes.h"
@@ -71,6 +72,8 @@ class SearchOperation {
internal::ResourceMetadata* metadata_;
internal::LoaderController* loader_controller_;
+ base::ThreadChecker thread_checker_;
+
// Note: This should remain the last member so it'll be destroyed and
// invalidate the weak pointers before any other members are destroyed.
base::WeakPtrFactory<SearchOperation> weak_ptr_factory_;
diff --git a/chrome/browser/chromeos/drive/file_system/set_property_operation.cc b/chrome/browser/chromeos/drive/file_system/set_property_operation.cc
index 111f9b7..509ba2a 100644
--- a/chrome/browser/chromeos/drive/file_system/set_property_operation.cc
+++ b/chrome/browser/chromeos/drive/file_system/set_property_operation.cc
@@ -12,9 +12,6 @@
#include "chrome/browser/chromeos/drive/file_system/operation_delegate.h"
#include "chrome/browser/chromeos/drive/job_scheduler.h"
#include "chrome/browser/chromeos/drive/resource_metadata.h"
-#include "content/public/browser/browser_thread.h"
-
-using content::BrowserThread;
namespace drive {
namespace file_system {
@@ -90,7 +87,7 @@ void SetPropertyOperation::SetProperty(
const std::string& key,
const std::string& value,
const FileOperationCallback& callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
ResourceEntry* entry = new ResourceEntry;
@@ -106,7 +103,7 @@ void SetPropertyOperation::SetPropertyAfterUpdateLocalState(
const FileOperationCallback& callback,
const ResourceEntry* entry,
FileError result) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
if (result == FILE_ERROR_OK) {
diff --git a/chrome/browser/chromeos/drive/file_system/set_property_operation.h b/chrome/browser/chromeos/drive/file_system/set_property_operation.h
index 5d5634f..6a93a16 100644
--- a/chrome/browser/chromeos/drive/file_system/set_property_operation.h
+++ b/chrome/browser/chromeos/drive/file_system/set_property_operation.h
@@ -10,6 +10,7 @@
#include "base/macros.h"
#include "base/memory/ref_counted.h"
#include "base/memory/weak_ptr.h"
+#include "base/threading/thread_checker.h"
#include "chrome/browser/chromeos/drive/file_errors.h"
#include "google_apis/drive/drive_api_requests.h"
@@ -55,6 +56,8 @@ class SetPropertyOperation {
OperationDelegate* delegate_;
internal::ResourceMetadata* metadata_;
+ base::ThreadChecker thread_checker_;
+
// Note: This should remain the last member so it'll be destroyed and
// invalidate the weak pointers before any other members are destroyed.
base::WeakPtrFactory<SetPropertyOperation> weak_ptr_factory_;
diff --git a/chrome/browser/chromeos/drive/file_system/touch_operation.cc b/chrome/browser/chromeos/drive/file_system/touch_operation.cc
index 217bd92..47dd5aa 100644
--- a/chrome/browser/chromeos/drive/file_system/touch_operation.cc
+++ b/chrome/browser/chromeos/drive/file_system/touch_operation.cc
@@ -13,9 +13,6 @@
#include "chrome/browser/chromeos/drive/file_system/operation_delegate.h"
#include "chrome/browser/chromeos/drive/job_scheduler.h"
#include "chrome/browser/chromeos/drive/resource_metadata.h"
-#include "content/public/browser/browser_thread.h"
-
-using content::BrowserThread;
namespace drive {
namespace file_system {
@@ -60,7 +57,7 @@ void TouchOperation::TouchFile(const base::FilePath& file_path,
const base::Time& last_access_time,
const base::Time& last_modified_time,
const FileOperationCallback& callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
ResourceEntry* entry = new ResourceEntry;
@@ -78,7 +75,7 @@ void TouchOperation::TouchFileAfterUpdateLocalState(
const FileOperationCallback& callback,
const ResourceEntry* entry,
FileError error) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
FileChange changed_files;
diff --git a/chrome/browser/chromeos/drive/file_system/touch_operation.h b/chrome/browser/chromeos/drive/file_system/touch_operation.h
index 15d6849..fe2ebc2 100644
--- a/chrome/browser/chromeos/drive/file_system/touch_operation.h
+++ b/chrome/browser/chromeos/drive/file_system/touch_operation.h
@@ -8,6 +8,7 @@
#include "base/macros.h"
#include "base/memory/ref_counted.h"
#include "base/memory/weak_ptr.h"
+#include "base/threading/thread_checker.h"
#include "chrome/browser/chromeos/drive/file_errors.h"
namespace base {
@@ -53,6 +54,8 @@ class TouchOperation {
OperationDelegate* delegate_;
internal::ResourceMetadata* metadata_;
+ base::ThreadChecker thread_checker_;
+
// Note: This should remain the last member so it'll be destroyed and
// invalidate the weak pointers before any other members are destroyed.
base::WeakPtrFactory<TouchOperation> weak_ptr_factory_;
diff --git a/chrome/browser/chromeos/drive/file_system/truncate_operation.cc b/chrome/browser/chromeos/drive/file_system/truncate_operation.cc
index 0c0edaf..ff1307e 100644
--- a/chrome/browser/chromeos/drive/file_system/truncate_operation.cc
+++ b/chrome/browser/chromeos/drive/file_system/truncate_operation.cc
@@ -18,9 +18,6 @@
#include "chrome/browser/chromeos/drive/file_system/download_operation.h"
#include "chrome/browser/chromeos/drive/file_system/operation_delegate.h"
#include "chrome/browser/chromeos/drive/job_scheduler.h"
-#include "content/public/browser/browser_thread.h"
-
-using content::BrowserThread;
namespace drive {
namespace file_system {
@@ -80,7 +77,7 @@ TruncateOperation::~TruncateOperation() {
void TruncateOperation::Truncate(const base::FilePath& file_path,
int64 length,
const FileOperationCallback& callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
if (length < 0) {
@@ -107,7 +104,7 @@ void TruncateOperation::TruncateAfterEnsureFileDownloadedByPath(
FileError error,
const base::FilePath& local_file_path,
scoped_ptr<ResourceEntry> entry) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
if (error != FILE_ERROR_OK) {
@@ -136,7 +133,7 @@ void TruncateOperation::TruncateAfterTruncateOnBlockingPool(
const std::string& local_id,
const FileOperationCallback& callback,
FileError error) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
delegate_->OnEntryUpdatedByOperation(ClientContext(USER_INITIATED), local_id);
diff --git a/chrome/browser/chromeos/drive/file_system/truncate_operation.h b/chrome/browser/chromeos/drive/file_system/truncate_operation.h
index 0a6d5e7..5067c6b 100644
--- a/chrome/browser/chromeos/drive/file_system/truncate_operation.h
+++ b/chrome/browser/chromeos/drive/file_system/truncate_operation.h
@@ -9,6 +9,7 @@
#include "base/memory/ref_counted.h"
#include "base/memory/scoped_ptr.h"
#include "base/memory/weak_ptr.h"
+#include "base/threading/thread_checker.h"
#include "chrome/browser/chromeos/drive/file_errors.h"
namespace base {
@@ -73,6 +74,8 @@ class TruncateOperation {
scoped_ptr<DownloadOperation> download_operation_;
+ base::ThreadChecker thread_checker_;
+
// Note: This should remain the last member so it'll be destroyed and
// invalidate the weak pointers before any other members are destroyed.
base::WeakPtrFactory<TruncateOperation> weak_ptr_factory_;
diff --git a/chrome/browser/chromeos/drive/file_write_watcher.cc b/chrome/browser/chromeos/drive/file_write_watcher.cc
index b6f84ba..a7a75aa 100644
--- a/chrome/browser/chromeos/drive/file_write_watcher.cc
+++ b/chrome/browser/chromeos/drive/file_write_watcher.cc
@@ -12,11 +12,8 @@
#include "base/files/file_path_watcher.h"
#include "base/stl_util.h"
#include "base/timer/timer.h"
-#include "content/public/browser/browser_thread.h"
#include "google_apis/drive/task_util.h"
-using content::BrowserThread;
-
namespace drive {
namespace internal {
@@ -72,6 +69,8 @@ class FileWriteWatcher::FileWriteWatcherImpl {
std::map<base::FilePath, PathWatchInfo*> watchers_;
scoped_refptr<base::SingleThreadTaskRunner> file_task_runner_;
+ base::ThreadChecker thread_checker_;
+
// Note: This should remain the last member so it'll be destroyed and
// invalidate its weak pointers before any other members are destroyed.
base::WeakPtrFactory<FileWriteWatcherImpl> weak_ptr_factory_;
@@ -83,11 +82,10 @@ FileWriteWatcher::FileWriteWatcherImpl::FileWriteWatcherImpl(
: delay_(base::TimeDelta::FromSeconds(kWriteEventDelayInSeconds)),
file_task_runner_(file_task_runner),
weak_ptr_factory_(this) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
}
void FileWriteWatcher::FileWriteWatcherImpl::Destroy() {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
// Just forwarding the call to FILE thread.
file_task_runner_->PostTask(
@@ -99,7 +97,7 @@ void FileWriteWatcher::FileWriteWatcherImpl::StartWatch(
const base::FilePath& path,
const StartWatchCallback& on_start_callback,
const base::Closure& on_write_callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
// Forwarding the call to FILE thread and relaying the |callback|.
file_task_runner_->PostTask(
@@ -188,17 +186,16 @@ void FileWriteWatcher::FileWriteWatcherImpl::InvokeCallback(
FileWriteWatcher::FileWriteWatcher(
base::SingleThreadTaskRunner* file_task_runner)
: watcher_impl_(new FileWriteWatcherImpl(file_task_runner)) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
}
FileWriteWatcher::~FileWriteWatcher() {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
}
void FileWriteWatcher::StartWatch(const base::FilePath& file_path,
const StartWatchCallback& on_start_callback,
const base::Closure& on_write_callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
watcher_impl_->StartWatch(file_path, on_start_callback, on_write_callback);
}
diff --git a/chrome/browser/chromeos/drive/file_write_watcher.h b/chrome/browser/chromeos/drive/file_write_watcher.h
index 63ee9f5..68004ca 100644
--- a/chrome/browser/chromeos/drive/file_write_watcher.h
+++ b/chrome/browser/chromeos/drive/file_write_watcher.h
@@ -7,6 +7,7 @@
#include "base/callback_forward.h"
#include "base/memory/scoped_ptr.h"
+#include "base/threading/thread_checker.h"
#include "chrome/browser/chromeos/drive/file_system_util.h"
namespace base {
@@ -54,6 +55,8 @@ class FileWriteWatcher {
class FileWriteWatcherImpl;
scoped_ptr<FileWriteWatcherImpl, util::DestroyHelper> watcher_impl_;
+ base::ThreadChecker thread_checker_;
+
DISALLOW_COPY_AND_ASSIGN(FileWriteWatcher);
};
diff --git a/chrome/browser/chromeos/drive/job_scheduler.cc b/chrome/browser/chromeos/drive/job_scheduler.cc
index bcf1a02..f5c749a 100644
--- a/chrome/browser/chromeos/drive/job_scheduler.cc
+++ b/chrome/browser/chromeos/drive/job_scheduler.cc
@@ -15,11 +15,8 @@
#include "base/thread_task_runner_handle.h"
#include "chrome/browser/drive/event_logger.h"
#include "chrome/common/pref_names.h"
-#include "content/public/browser/browser_thread.h"
#include "google_apis/drive/drive_api_parser.h"
-using content::BrowserThread;
-
namespace drive {
namespace {
@@ -163,11 +160,10 @@ JobScheduler::JobEntry::JobEntry(JobType type)
: job_info(type),
context(ClientContext(USER_INITIATED)),
retry_count(0) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
}
JobScheduler::JobEntry::~JobEntry() {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
}
struct JobScheduler::ResumeUploadParams {
@@ -189,8 +185,6 @@ JobScheduler::JobScheduler(PrefService* pref_service,
uploader_(new DriveUploader(drive_service, blocking_task_runner)),
pref_service_(pref_service),
weak_ptr_factory_(this) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
-
for (int i = 0; i < NUM_QUEUES; ++i)
queue_[i].reset(new JobQueue(kMaxJobCount[i], NUM_CONTEXT_TYPES,
kMaxBatchCount, kMaxBatchSize));
@@ -199,7 +193,7 @@ JobScheduler::JobScheduler(PrefService* pref_service,
}
JobScheduler::~JobScheduler() {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
size_t num_queued_jobs = 0;
for (int i = 0; i < NUM_QUEUES; ++i)
@@ -217,17 +211,17 @@ std::vector<JobInfo> JobScheduler::GetJobInfoList() {
}
void JobScheduler::AddObserver(JobListObserver* observer) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
observer_list_.AddObserver(observer);
}
void JobScheduler::RemoveObserver(JobListObserver* observer) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
observer_list_.RemoveObserver(observer);
}
void JobScheduler::CancelJob(JobID job_id) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
JobEntry* job = job_map_.Lookup(job_id);
if (job) {
@@ -244,7 +238,7 @@ void JobScheduler::CancelJob(JobID job_id) {
}
void JobScheduler::CancelAllJobs() {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
// CancelJob may remove the entry from |job_map_|. That's OK. IDMap supports
// removable during iteration.
@@ -254,7 +248,7 @@ void JobScheduler::CancelAllJobs() {
void JobScheduler::GetAboutResource(
const google_apis::AboutResourceCallback& callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
JobEntry* new_job = CreateNewJob(TYPE_GET_ABOUT_RESOURCE);
@@ -270,7 +264,7 @@ void JobScheduler::GetAboutResource(
}
void JobScheduler::GetAppList(const google_apis::AppListCallback& callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
JobEntry* new_job = CreateNewJob(TYPE_GET_APP_LIST);
@@ -287,7 +281,7 @@ void JobScheduler::GetAppList(const google_apis::AppListCallback& callback) {
void JobScheduler::GetAllFileList(
const google_apis::FileListCallback& callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
JobEntry* new_job = CreateNewJob(TYPE_GET_ALL_RESOURCE_LIST);
@@ -305,7 +299,7 @@ void JobScheduler::GetAllFileList(
void JobScheduler::GetFileListInDirectory(
const std::string& directory_resource_id,
const google_apis::FileListCallback& callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
JobEntry* new_job = CreateNewJob(
@@ -324,7 +318,7 @@ void JobScheduler::GetFileListInDirectory(
void JobScheduler::Search(const std::string& search_query,
const google_apis::FileListCallback& callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
JobEntry* new_job = CreateNewJob(TYPE_SEARCH);
@@ -343,7 +337,7 @@ void JobScheduler::Search(const std::string& search_query,
void JobScheduler::GetChangeList(
int64 start_changestamp,
const google_apis::ChangeListCallback& callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
JobEntry* new_job = CreateNewJob(TYPE_GET_CHANGE_LIST);
@@ -362,7 +356,7 @@ void JobScheduler::GetChangeList(
void JobScheduler::GetRemainingChangeList(
const GURL& next_link,
const google_apis::ChangeListCallback& callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
JobEntry* new_job = CreateNewJob(TYPE_GET_REMAINING_CHANGE_LIST);
@@ -381,7 +375,7 @@ void JobScheduler::GetRemainingChangeList(
void JobScheduler::GetRemainingFileList(
const GURL& next_link,
const google_apis::FileListCallback& callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
JobEntry* new_job = CreateNewJob(TYPE_GET_REMAINING_FILE_LIST);
@@ -401,7 +395,7 @@ void JobScheduler::GetFileResource(
const std::string& resource_id,
const ClientContext& context,
const google_apis::FileResourceCallback& callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
JobEntry* new_job = CreateNewJob(TYPE_GET_RESOURCE_ENTRY);
@@ -423,7 +417,7 @@ void JobScheduler::GetShareUrl(
const GURL& embed_origin,
const ClientContext& context,
const google_apis::GetShareUrlCallback& callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
JobEntry* new_job = CreateNewJob(TYPE_GET_SHARE_URL);
@@ -445,7 +439,7 @@ void JobScheduler::TrashResource(
const std::string& resource_id,
const ClientContext& context,
const google_apis::EntryActionCallback& callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
JobEntry* new_job = CreateNewJob(TYPE_TRASH_RESOURCE);
@@ -468,7 +462,7 @@ void JobScheduler::CopyResource(
const std::string& new_title,
const base::Time& last_modified,
const google_apis::FileResourceCallback& callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
JobEntry* new_job = CreateNewJob(TYPE_COPY_RESOURCE);
@@ -496,7 +490,7 @@ void JobScheduler::UpdateResource(
const google_apis::drive::Properties& properties,
const ClientContext& context,
const google_apis::FileResourceCallback& callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
JobEntry* new_job = CreateNewJob(TYPE_UPDATE_RESOURCE);
@@ -516,7 +510,7 @@ void JobScheduler::AddResourceToDirectory(
const std::string& parent_resource_id,
const std::string& resource_id,
const google_apis::EntryActionCallback& callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
JobEntry* new_job = CreateNewJob(TYPE_ADD_RESOURCE_TO_DIRECTORY);
@@ -538,7 +532,7 @@ void JobScheduler::RemoveResourceFromDirectory(
const std::string& resource_id,
const ClientContext& context,
const google_apis::EntryActionCallback& callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
JobEntry* new_job = CreateNewJob(TYPE_REMOVE_RESOURCE_FROM_DIRECTORY);
new_job->context = context;
@@ -561,7 +555,7 @@ void JobScheduler::AddNewDirectory(
const AddNewDirectoryOptions& options,
const ClientContext& context,
const google_apis::FileResourceCallback& callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
JobEntry* new_job = CreateNewJob(TYPE_ADD_NEW_DIRECTORY);
new_job->context = context;
@@ -587,7 +581,7 @@ JobID JobScheduler::DownloadFile(
const ClientContext& context,
const google_apis::DownloadActionCallback& download_action_callback,
const google_apis::GetContentCallback& get_content_callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
// Temporary histogram for crbug.com/229650.
CollectCopyHistogramSample("Drive.DownloadFromDriveFileSize",
@@ -625,7 +619,7 @@ void JobScheduler::UploadNewFile(
const UploadNewFileOptions& options,
const ClientContext& context,
const google_apis::FileResourceCallback& callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
JobEntry* new_job = CreateNewJob(TYPE_UPLOAD_NEW_FILE);
new_job->job_info.file_path = drive_file_path;
@@ -668,7 +662,7 @@ void JobScheduler::UploadExistingFile(
const UploadExistingFileOptions& options,
const ClientContext& context,
const google_apis::FileResourceCallback& callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
JobEntry* new_job = CreateNewJob(TYPE_UPLOAD_EXISTING_FILE);
new_job->job_info.file_path = drive_file_path;
@@ -706,7 +700,7 @@ void JobScheduler::AddPermission(
const std::string& email,
google_apis::drive::PermissionRole role,
const google_apis::EntryActionCallback& callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
JobEntry* new_job = CreateNewJob(TYPE_ADD_PERMISSION);
@@ -738,7 +732,7 @@ void JobScheduler::StartJob(JobEntry* job) {
}
void JobScheduler::QueueJob(JobID job_id) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
JobEntry* job_entry = job_map_.Lookup(job_id);
DCHECK(job_entry);
@@ -774,7 +768,7 @@ void JobScheduler::QueueJob(JobID job_id) {
}
void JobScheduler::DoJobLoop(QueueType queue_type) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
const int accepted_priority = GetCurrentAcceptedPriority(queue_type);
@@ -832,7 +826,7 @@ void JobScheduler::DoJobLoop(QueueType queue_type) {
}
int JobScheduler::GetCurrentAcceptedPriority(QueueType queue_type) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
const int kNoJobShouldRun = -1;
@@ -857,7 +851,7 @@ int JobScheduler::GetCurrentAcceptedPriority(QueueType queue_type) {
}
void JobScheduler::UpdateWait() {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
if (disable_throttling_ || throttle_count_ == 0)
return;
@@ -873,7 +867,7 @@ void JobScheduler::UpdateWait() {
bool JobScheduler::OnJobDone(JobID job_id,
google_apis::DriveApiErrorCode error) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
JobEntry* job_entry = job_map_.Lookup(job_id);
DCHECK(job_entry);
@@ -935,7 +929,7 @@ void JobScheduler::OnGetFileListJobDone(
const google_apis::FileListCallback& callback,
google_apis::DriveApiErrorCode error,
scoped_ptr<google_apis::FileList> file_list) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
if (OnJobDone(job_id, error))
@@ -947,7 +941,7 @@ void JobScheduler::OnGetChangeListJobDone(
const google_apis::ChangeListCallback& callback,
google_apis::DriveApiErrorCode error,
scoped_ptr<google_apis::ChangeList> change_list) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
if (OnJobDone(job_id, error))
@@ -959,7 +953,7 @@ void JobScheduler::OnGetFileResourceJobDone(
const google_apis::FileResourceCallback& callback,
google_apis::DriveApiErrorCode error,
scoped_ptr<google_apis::FileResource> entry) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
if (OnJobDone(job_id, error))
@@ -971,7 +965,7 @@ void JobScheduler::OnGetAboutResourceJobDone(
const google_apis::AboutResourceCallback& callback,
google_apis::DriveApiErrorCode error,
scoped_ptr<google_apis::AboutResource> about_resource) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
if (OnJobDone(job_id, error))
@@ -983,7 +977,7 @@ void JobScheduler::OnGetShareUrlJobDone(
const google_apis::GetShareUrlCallback& callback,
google_apis::DriveApiErrorCode error,
const GURL& share_url) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
if (OnJobDone(job_id, error))
@@ -995,7 +989,7 @@ void JobScheduler::OnGetAppListJobDone(
const google_apis::AppListCallback& callback,
google_apis::DriveApiErrorCode error,
scoped_ptr<google_apis::AppList> app_list) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
if (OnJobDone(job_id, error))
@@ -1006,7 +1000,7 @@ void JobScheduler::OnEntryActionJobDone(
JobID job_id,
const google_apis::EntryActionCallback& callback,
google_apis::DriveApiErrorCode error) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
if (OnJobDone(job_id, error))
@@ -1018,7 +1012,7 @@ void JobScheduler::OnDownloadActionJobDone(
const google_apis::DownloadActionCallback& callback,
google_apis::DriveApiErrorCode error,
const base::FilePath& temp_file) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
if (OnJobDone(job_id, error))
@@ -1032,7 +1026,7 @@ void JobScheduler::OnUploadCompletionJobDone(
google_apis::DriveApiErrorCode error,
const GURL& upload_location,
scoped_ptr<google_apis::FileResource> entry) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
if (!upload_location.is_empty()) {
@@ -1069,7 +1063,7 @@ void JobScheduler::OnResumeUploadFileDone(
google_apis::DriveApiErrorCode error,
const GURL& upload_location,
scoped_ptr<google_apis::FileResource> entry) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!original_task.is_null());
DCHECK(!callback.is_null());
@@ -1097,7 +1091,7 @@ void JobScheduler::UpdateProgress(JobID job_id, int64 progress, int64 total) {
void JobScheduler::OnConnectionTypeChanged(
net::NetworkChangeNotifier::ConnectionType type) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
// Resume the job loop.
// Note that we don't need to check the network connection status as it will
@@ -1138,7 +1132,7 @@ JobScheduler::QueueType JobScheduler::GetJobQueueType(JobType type) {
void JobScheduler::AbortNotRunningJob(JobEntry* job,
google_apis::DriveApiErrorCode error) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
const base::TimeDelta elapsed = base::Time::Now() - job->job_info.start_time;
const QueueType queue_type = GetJobQueueType(job->job_info.job_type);
@@ -1159,19 +1153,19 @@ void JobScheduler::AbortNotRunningJob(JobEntry* job,
}
void JobScheduler::NotifyJobAdded(const JobInfo& job_info) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
FOR_EACH_OBSERVER(JobListObserver, observer_list_, OnJobAdded(job_info));
}
void JobScheduler::NotifyJobDone(const JobInfo& job_info,
google_apis::DriveApiErrorCode error) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
FOR_EACH_OBSERVER(JobListObserver, observer_list_,
OnJobDone(job_info, GDataToFileError(error)));
}
void JobScheduler::NotifyJobUpdated(const JobInfo& job_info) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
FOR_EACH_OBSERVER(JobListObserver, observer_list_, OnJobUpdated(job_info));
}
diff --git a/chrome/browser/chromeos/drive/job_scheduler.h b/chrome/browser/chromeos/drive/job_scheduler.h
index 1d0eae3..39909ca 100644
--- a/chrome/browser/chromeos/drive/job_scheduler.h
+++ b/chrome/browser/chromeos/drive/job_scheduler.h
@@ -11,6 +11,7 @@
#include "base/id_map.h"
#include "base/memory/scoped_ptr.h"
#include "base/observer_list.h"
+#include "base/threading/thread_checker.h"
#include "chrome/browser/chromeos/drive/job_list.h"
#include "chrome/browser/chromeos/drive/job_queue.h"
#include "chrome/browser/drive/drive_service_interface.h"
@@ -239,6 +240,8 @@ class JobScheduler
// The callback to notify an error to the client of JobScheduler.
// This is used to notify cancel of a job that is not running yet.
base::Callback<void(google_apis::DriveApiErrorCode)> abort_callback;
+
+ base::ThreadChecker thread_checker_;
};
// Parameters for DriveUploader::ResumeUploadFile.
@@ -395,6 +398,8 @@ class JobScheduler
PrefService* pref_service_;
+ base::ThreadChecker thread_checker_;
+
// Note: This should remain the last member so it'll be destroyed and
// invalidate its weak pointers before any other members are destroyed.
base::WeakPtrFactory<JobScheduler> weak_ptr_factory_;
diff --git a/chrome/browser/chromeos/drive/resource_metadata.cc b/chrome/browser/chromeos/drive/resource_metadata.cc
index 8b27437..d63b0c4 100644
--- a/chrome/browser/chromeos/drive/resource_metadata.cc
+++ b/chrome/browser/chromeos/drive/resource_metadata.cc
@@ -4,7 +4,10 @@
#include "chrome/browser/chromeos/drive/resource_metadata.h"
+#include "base/bind.h"
+#include "base/bind_helpers.h"
#include "base/guid.h"
+#include "base/location.h"
#include "base/rand_util.h"
#include "base/strings/string_number_conversions.h"
#include "base/strings/stringprintf.h"
@@ -13,9 +16,6 @@
#include "chrome/browser/chromeos/drive/file_cache.h"
#include "chrome/browser/chromeos/drive/file_system_util.h"
#include "chrome/browser/chromeos/drive/resource_metadata_storage.h"
-#include "content/public/browser/browser_thread.h"
-
-using content::BrowserThread;
namespace drive {
namespace internal {
@@ -72,7 +72,6 @@ ResourceMetadata::ResourceMetadata(
: blocking_task_runner_(blocking_task_runner),
storage_(storage),
cache_(cache) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
}
FileError ResourceMetadata::Initialize() {
@@ -81,7 +80,7 @@ FileError ResourceMetadata::Initialize() {
}
void ResourceMetadata::Destroy() {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
blocking_task_runner_->PostTask(
FROM_HERE,
diff --git a/chrome/browser/chromeos/drive/resource_metadata.h b/chrome/browser/chromeos/drive/resource_metadata.h
index fdafc87..ffdcb1a 100644
--- a/chrome/browser/chromeos/drive/resource_metadata.h
+++ b/chrome/browser/chromeos/drive/resource_metadata.h
@@ -11,6 +11,7 @@
#include "base/files/file_path.h"
#include "base/memory/scoped_ptr.h"
+#include "base/threading/thread_checker.h"
#include "chrome/browser/chromeos/drive/file_errors.h"
#include "chrome/browser/chromeos/drive/resource_metadata_storage.h"
@@ -134,6 +135,8 @@ class ResourceMetadata {
ResourceMetadataStorage* storage_;
FileCache* cache_;
+ base::ThreadChecker thread_checker_;
+
DISALLOW_COPY_AND_ASSIGN(ResourceMetadata);
};
diff --git a/chrome/browser/chromeos/drive/search_metadata.cc b/chrome/browser/chromeos/drive/search_metadata.cc
index 7c4c604..efbe464 100644
--- a/chrome/browser/chromeos/drive/search_metadata.cc
+++ b/chrome/browser/chromeos/drive/search_metadata.cc
@@ -14,11 +14,8 @@
#include "base/time/time.h"
#include "chrome/browser/chromeos/drive/file_system_util.h"
#include "chrome/browser/drive/drive_api_util.h"
-#include "content/public/browser/browser_thread.h"
#include "net/base/escape.h"
-using content::BrowserThread;
-
namespace drive {
namespace internal {
@@ -265,7 +262,6 @@ void SearchMetadata(
const SearchMetadataPredicate& predicate,
size_t at_most_num_matches,
const SearchMetadataCallback& callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
DCHECK(!callback.is_null());
const base::TimeTicks start_time = base::TimeTicks::Now();
diff --git a/chrome/browser/chromeos/drive/sync/entry_revert_performer.cc b/chrome/browser/chromeos/drive/sync/entry_revert_performer.cc
index 221fd0b..53a22c5bf 100644
--- a/chrome/browser/chromeos/drive/sync/entry_revert_performer.cc
+++ b/chrome/browser/chromeos/drive/sync/entry_revert_performer.cc
@@ -12,11 +12,8 @@
#include "chrome/browser/chromeos/drive/resource_entry_conversion.h"
#include "chrome/browser/chromeos/drive/resource_metadata.h"
#include "chrome/browser/drive/drive_api_util.h"
-#include "content/public/browser/browser_thread.h"
#include "google_apis/drive/drive_api_parser.h"
-using content::BrowserThread;
-
namespace drive {
namespace internal {
namespace {
@@ -93,17 +90,16 @@ EntryRevertPerformer::EntryRevertPerformer(
scheduler_(scheduler),
metadata_(metadata),
weak_ptr_factory_(this) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
}
EntryRevertPerformer::~EntryRevertPerformer() {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
}
void EntryRevertPerformer::RevertEntry(const std::string& local_id,
const ClientContext& context,
const FileOperationCallback& callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
scoped_ptr<ResourceEntry> entry(new ResourceEntry);
@@ -123,7 +119,7 @@ void EntryRevertPerformer::RevertEntryAfterPrepare(
const FileOperationCallback& callback,
scoped_ptr<ResourceEntry> entry,
FileError error) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
if (error == FILE_ERROR_OK && entry->resource_id().empty())
@@ -146,7 +142,7 @@ void EntryRevertPerformer::RevertEntryAfterGetFileResource(
const std::string& local_id,
google_apis::DriveApiErrorCode status,
scoped_ptr<google_apis::FileResource> entry) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
FileChange* changed_files = new FileChange;
@@ -169,7 +165,7 @@ void EntryRevertPerformer::RevertEntryAfterFinishRevert(
const FileOperationCallback& callback,
const FileChange* changed_files,
FileError error) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
delegate_->OnFileChangedByOperation(*changed_files);
diff --git a/chrome/browser/chromeos/drive/sync/entry_revert_performer.h b/chrome/browser/chromeos/drive/sync/entry_revert_performer.h
index e022b26..5a3dac8 100644
--- a/chrome/browser/chromeos/drive/sync/entry_revert_performer.h
+++ b/chrome/browser/chromeos/drive/sync/entry_revert_performer.h
@@ -11,6 +11,7 @@
#include "base/memory/ref_counted.h"
#include "base/memory/scoped_ptr.h"
#include "base/memory/weak_ptr.h"
+#include "base/threading/thread_checker.h"
#include "chrome/browser/chromeos/drive/file_errors.h"
#include "google_apis/drive/drive_api_error_codes.h"
@@ -78,6 +79,8 @@ class EntryRevertPerformer {
JobScheduler* scheduler_;
ResourceMetadata* metadata_;
+ base::ThreadChecker thread_checker_;
+
// Note: This should remain the last member so it'll be destroyed and
// invalidate the weak pointers before any other members are destroyed.
base::WeakPtrFactory<EntryRevertPerformer> weak_ptr_factory_;
diff --git a/chrome/browser/chromeos/drive/sync/entry_update_performer.cc b/chrome/browser/chromeos/drive/sync/entry_update_performer.cc
index 4560ec5..f265603 100644
--- a/chrome/browser/chromeos/drive/sync/entry_update_performer.cc
+++ b/chrome/browser/chromeos/drive/sync/entry_update_performer.cc
@@ -18,11 +18,8 @@
#include "chrome/browser/chromeos/drive/resource_metadata.h"
#include "chrome/browser/chromeos/drive/sync/entry_revert_performer.h"
#include "chrome/browser/chromeos/drive/sync/remove_performer.h"
-#include "content/public/browser/browser_thread.h"
#include "google_apis/drive/drive_api_parser.h"
-using content::BrowserThread;
-
namespace drive {
namespace internal {
@@ -243,17 +240,16 @@ EntryUpdatePerformer::EntryUpdatePerformer(
scheduler,
metadata)),
weak_ptr_factory_(this) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
}
EntryUpdatePerformer::~EntryUpdatePerformer() {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
}
void EntryUpdatePerformer::UpdateEntry(const std::string& local_id,
const ClientContext& context,
const FileOperationCallback& callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
scoped_ptr<LocalState> local_state(new LocalState);
@@ -272,7 +268,7 @@ void EntryUpdatePerformer::UpdateEntryAfterPrepare(
const FileOperationCallback& callback,
scoped_ptr<LocalState> local_state,
FileError error) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
if (error != FILE_ERROR_OK) {
@@ -411,7 +407,7 @@ void EntryUpdatePerformer::UpdateEntryAfterUpdateResource(
scoped_ptr<base::ScopedClosureRunner> loader_lock,
google_apis::DriveApiErrorCode status,
scoped_ptr<google_apis::FileResource> entry) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
if (status == google_apis::HTTP_FORBIDDEN) {
@@ -441,7 +437,7 @@ void EntryUpdatePerformer::UpdateEntryAfterFinish(
const FileOperationCallback& callback,
const FileChange* changed_files,
FileError error) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
delegate_->OnFileChangedByOperation(*changed_files);
diff --git a/chrome/browser/chromeos/drive/sync/entry_update_performer.h b/chrome/browser/chromeos/drive/sync/entry_update_performer.h
index 7f620e6..8c8deb6 100644
--- a/chrome/browser/chromeos/drive/sync/entry_update_performer.h
+++ b/chrome/browser/chromeos/drive/sync/entry_update_performer.h
@@ -9,6 +9,7 @@
#include "base/memory/ref_counted.h"
#include "base/memory/scoped_ptr.h"
#include "base/memory/weak_ptr.h"
+#include "base/threading/thread_checker.h"
#include "chrome/browser/chromeos/drive/file_errors.h"
#include "google_apis/drive/drive_api_error_codes.h"
@@ -91,6 +92,8 @@ class EntryUpdatePerformer {
scoped_ptr<RemovePerformer> remove_performer_;
scoped_ptr<EntryRevertPerformer> entry_revert_performer_;
+ base::ThreadChecker thread_checker_;
+
// Note: This should remain the last member so it'll be destroyed and
// invalidate the weak pointers before any other members are destroyed.
base::WeakPtrFactory<EntryUpdatePerformer> weak_ptr_factory_;
diff --git a/chrome/browser/chromeos/drive/sync/remove_performer.cc b/chrome/browser/chromeos/drive/sync/remove_performer.cc
index db1a34a..b320100 100644
--- a/chrome/browser/chromeos/drive/sync/remove_performer.cc
+++ b/chrome/browser/chromeos/drive/sync/remove_performer.cc
@@ -13,11 +13,8 @@
#include "chrome/browser/chromeos/drive/resource_metadata.h"
#include "chrome/browser/chromeos/drive/sync/entry_revert_performer.h"
#include "chrome/browser/drive/drive_api_util.h"
-#include "content/public/browser/browser_thread.h"
#include "google_apis/drive/drive_api_parser.h"
-using content::BrowserThread;
-
namespace drive {
namespace internal {
@@ -63,11 +60,10 @@ RemovePerformer::RemovePerformer(
scheduler,
metadata)),
weak_ptr_factory_(this) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
}
RemovePerformer::~RemovePerformer() {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
}
// Returns |entry| corresponding to |local_id|.
@@ -84,7 +80,7 @@ FileError TryToRemoveLocally(ResourceMetadata* metadata,
void RemovePerformer::Remove(const std::string& local_id,
const ClientContext& context,
const FileOperationCallback& callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
ResourceEntry* entry = new ResourceEntry;
@@ -104,7 +100,7 @@ void RemovePerformer::RemoveAfterGetResourceEntry(
const FileOperationCallback& callback,
const ResourceEntry* entry,
FileError error) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
if (error != FILE_ERROR_OK || entry->resource_id().empty()) {
@@ -132,7 +128,7 @@ void RemovePerformer::TrashResource(const ClientContext& context,
const FileOperationCallback& callback,
const std::string& resource_id,
const std::string& local_id) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
scheduler_->TrashResource(
@@ -147,7 +143,7 @@ void RemovePerformer::TrashResourceAfterUpdateRemoteState(
const FileOperationCallback& callback,
const std::string& local_id,
google_apis::DriveApiErrorCode status) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
if (status == google_apis::HTTP_FORBIDDEN) {
@@ -174,7 +170,7 @@ void RemovePerformer::UnparentResource(const ClientContext& context,
const FileOperationCallback& callback,
const std::string& resource_id,
const std::string& local_id) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
scheduler_->GetFileResource(
@@ -190,7 +186,7 @@ void RemovePerformer::UnparentResourceAfterGetFileResource(
const std::string& local_id,
google_apis::DriveApiErrorCode status,
scoped_ptr<google_apis::FileResource> file_resource) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
FileError error = GDataToFileError(status);
@@ -239,7 +235,7 @@ void RemovePerformer::UnparentResourceAfterUpdateRemoteState(
const FileOperationCallback& callback,
const std::string& local_id,
google_apis::DriveApiErrorCode status) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!callback.is_null());
FileError error = GDataToFileError(status);
diff --git a/chrome/browser/chromeos/drive/sync/remove_performer.h b/chrome/browser/chromeos/drive/sync/remove_performer.h
index 2d0a3bd..d7213dc 100644
--- a/chrome/browser/chromeos/drive/sync/remove_performer.h
+++ b/chrome/browser/chromeos/drive/sync/remove_performer.h
@@ -9,6 +9,7 @@
#include "base/memory/ref_counted.h"
#include "base/memory/scoped_ptr.h"
#include "base/memory/weak_ptr.h"
+#include "base/threading/thread_checker.h"
#include "chrome/browser/chromeos/drive/file_errors.h"
#include "google_apis/drive/drive_api_error_codes.h"
@@ -99,6 +100,8 @@ class RemovePerformer {
ResourceMetadata* metadata_;
scoped_ptr<EntryRevertPerformer> entry_revert_performer_;
+ base::ThreadChecker thread_checker_;
+
// Note: This should remain the last member so it'll be destroyed and
// invalidate the weak pointers before any other members are destroyed.
base::WeakPtrFactory<RemovePerformer> weak_ptr_factory_;
diff --git a/chrome/browser/chromeos/drive/sync_client.cc b/chrome/browser/chromeos/drive/sync_client.cc
index 43e4b86..c920606 100644
--- a/chrome/browser/chromeos/drive/sync_client.cc
+++ b/chrome/browser/chromeos/drive/sync_client.cc
@@ -15,11 +15,8 @@
#include "chrome/browser/chromeos/drive/file_system_util.h"
#include "chrome/browser/chromeos/drive/job_scheduler.h"
#include "chrome/browser/chromeos/drive/sync/entry_update_performer.h"
-#include "content/public/browser/browser_thread.h"
#include "google_apis/drive/task_util.h"
-using content::BrowserThread;
-
namespace drive {
namespace internal {
@@ -165,15 +162,14 @@ SyncClient::SyncClient(base::SequencedTaskRunner* blocking_task_runner,
delay_(base::TimeDelta::FromSeconds(kDelaySeconds)),
long_delay_(base::TimeDelta::FromSeconds(kLongDelaySeconds)),
weak_ptr_factory_(this) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
}
SyncClient::~SyncClient() {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
}
void SyncClient::StartProcessingBacklog() {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
std::vector<std::string>* to_fetch = new std::vector<std::string>;
std::vector<std::string>* to_update = new std::vector<std::string>;
@@ -187,7 +183,7 @@ void SyncClient::StartProcessingBacklog() {
}
void SyncClient::StartCheckingExistingPinnedFiles() {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
std::vector<std::string>* local_ids = new std::vector<std::string>;
blocking_task_runner_->PostTaskAndReply(
@@ -202,12 +198,12 @@ void SyncClient::StartCheckingExistingPinnedFiles() {
}
void SyncClient::AddFetchTask(const std::string& local_id) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
AddFetchTaskInternal(local_id, delay_);
}
void SyncClient::RemoveFetchTask(const std::string& local_id) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
SyncTasks::iterator it = tasks_.find(SyncTasks::key_type(FETCH, local_id));
if (it == tasks_.end())
@@ -228,14 +224,14 @@ void SyncClient::RemoveFetchTask(const std::string& local_id) {
void SyncClient::AddUpdateTask(const ClientContext& context,
const std::string& local_id) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
AddUpdateTaskInternal(context, local_id, delay_);
}
bool SyncClient:: WaitForUpdateTaskToComplete(
const std::string& local_id,
const FileOperationCallback& callback) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
SyncTasks::iterator it = tasks_.find(SyncTasks::key_type(UPDATE, local_id));
if (it == tasks_.end())
@@ -248,7 +244,7 @@ bool SyncClient:: WaitForUpdateTaskToComplete(
base::Closure SyncClient::PerformFetchTask(const std::string& local_id,
const ClientContext& context) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
return download_operation_->EnsureFileDownloadedByLocalId(
local_id,
context,
@@ -261,7 +257,7 @@ base::Closure SyncClient::PerformFetchTask(const std::string& local_id,
void SyncClient::AddFetchTaskInternal(const std::string& local_id,
const base::TimeDelta& delay) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
SyncTask task;
task.state = PENDING;
@@ -274,7 +270,7 @@ void SyncClient::AddFetchTaskInternal(const std::string& local_id,
base::Closure SyncClient::PerformUpdateTask(const std::string& local_id,
const ClientContext& context) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
entry_update_performer_->UpdateEntry(
local_id,
context,
@@ -288,7 +284,7 @@ base::Closure SyncClient::PerformUpdateTask(const std::string& local_id,
void SyncClient::AddUpdateTaskInternal(const ClientContext& context,
const std::string& local_id,
const base::TimeDelta& delay) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
SyncTask task;
task.state = PENDING;
@@ -302,7 +298,7 @@ void SyncClient::AddUpdateTaskInternal(const ClientContext& context,
void SyncClient::AddTask(const SyncTasks::key_type& key,
const SyncTask& task,
const base::TimeDelta& delay) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
SyncTasks::iterator it = tasks_.find(key);
if (it != tasks_.end()) {
@@ -391,7 +387,7 @@ void SyncClient::StartTaskAfterGetParentResourceEntry(
void SyncClient::OnGetLocalIdsOfBacklog(
const std::vector<std::string>* to_fetch,
const std::vector<std::string>* to_update) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
// Give priority to upload tasks over fetch tasks, so that dirty files are
// uploaded as soon as possible.
@@ -409,7 +405,7 @@ void SyncClient::OnGetLocalIdsOfBacklog(
}
void SyncClient::AddFetchTasks(const std::vector<std::string>* local_ids) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
for (size_t i = 0; i < local_ids->size(); ++i)
AddFetchTask((*local_ids)[i]);
@@ -418,7 +414,7 @@ void SyncClient::AddFetchTasks(const std::vector<std::string>* local_ids) {
void SyncClient::OnTaskComplete(SyncType type,
const std::string& local_id,
FileError error) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
const SyncTasks::key_type key(type, local_id);
SyncTasks::iterator it = tasks_.find(key);
@@ -478,7 +474,7 @@ void SyncClient::OnFetchFileComplete(const std::string& local_id,
FileError error,
const base::FilePath& local_path,
scoped_ptr<ResourceEntry> entry) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ DCHECK(thread_checker_.CalledOnValidThread());
OnTaskComplete(FETCH, local_id, error);
if (error == FILE_ERROR_ABORT) {
// If user cancels download, unpin the file so that we do not sync the file
diff --git a/chrome/browser/chromeos/drive/sync_client.h b/chrome/browser/chromeos/drive/sync_client.h
index bc85efe..d3c0593 100644
--- a/chrome/browser/chromeos/drive/sync_client.h
+++ b/chrome/browser/chromeos/drive/sync_client.h
@@ -12,6 +12,7 @@
#include "base/callback.h"
#include "base/memory/scoped_ptr.h"
#include "base/memory/weak_ptr.h"
+#include "base/threading/thread_checker.h"
#include "base/time/time.h"
#include "chrome/browser/chromeos/drive/file_errors.h"
#include "chrome/browser/chromeos/drive/job_scheduler.h"
@@ -183,6 +184,8 @@ class SyncClient {
// The delay is used for delaying retry of tasks on server errors.
base::TimeDelta long_delay_;
+ base::ThreadChecker thread_checker_;
+
// Note: This should remain the last member so it'll be destroyed and
// invalidate its weak pointers before any other members are destroyed.
base::WeakPtrFactory<SyncClient> weak_ptr_factory_;