diff options
author | hashimoto@chromium.org <hashimoto@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-01-21 16:58:48 +0000 |
---|---|---|
committer | hashimoto@chromium.org <hashimoto@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-01-21 16:58:48 +0000 |
commit | 69909a00c46abd8a307b1066c3e4ccfb38b995e6 (patch) | |
tree | 8639c9a531ec2038e3f86667c1b5af4ba18cfc91 /chrome | |
parent | 190848b09e43af7e392f9a30a1b87b39b4bc4d54 (diff) | |
download | chromium_src-69909a00c46abd8a307b1066c3e4ccfb38b995e6.zip chromium_src-69909a00c46abd8a307b1066c3e4ccfb38b995e6.tar.gz chromium_src-69909a00c46abd8a307b1066c3e4ccfb38b995e6.tar.bz2 |
drive: Rename UpdateOperation to ContentUpdatePerformer
Dirty file upload can be handled as a sub-task of EntryUpdatePerformer.
This class should be put in drive/sync directory.
Move UpdateOperation in file_system to sync and rename it to ContentUpdatePerformer.
BUG=260539
TEST=unit_tests
Review URL: https://codereview.chromium.org/140323006
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@246054 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
-rw-r--r-- | chrome/browser/chromeos/drive/file_system.cc | 7 | ||||
-rw-r--r-- | chrome/browser/chromeos/drive/file_system.h | 2 | ||||
-rw-r--r-- | chrome/browser/chromeos/drive/sync/content_update_performer.cc (renamed from chrome/browser/chromeos/drive/file_system/update_operation.cc) | 56 | ||||
-rw-r--r-- | chrome/browser/chromeos/drive/sync/content_update_performer.h (renamed from chrome/browser/chromeos/drive/file_system/update_operation.h) | 32 | ||||
-rw-r--r-- | chrome/browser/chromeos/drive/sync/content_update_performer_unittest.cc (renamed from chrome/browser/chromeos/drive/file_system/update_operation_unittest.cc) | 37 | ||||
-rw-r--r-- | chrome/browser/chromeos/drive/sync_client.cc | 16 | ||||
-rw-r--r-- | chrome/browser/chromeos/drive/sync_client.h | 4 | ||||
-rw-r--r-- | chrome/chrome_browser_chromeos.gypi | 4 | ||||
-rw-r--r-- | chrome/chrome_tests_unit.gypi | 2 |
9 files changed, 57 insertions, 103 deletions
diff --git a/chrome/browser/chromeos/drive/file_system.cc b/chrome/browser/chromeos/drive/file_system.cc index 0c0d83a..5efd857 100644 --- a/chrome/browser/chromeos/drive/file_system.cc +++ b/chrome/browser/chromeos/drive/file_system.cc @@ -22,7 +22,6 @@ #include "chrome/browser/chromeos/drive/file_system/search_operation.h" #include "chrome/browser/chromeos/drive/file_system/touch_operation.h" #include "chrome/browser/chromeos/drive/file_system/truncate_operation.h" -#include "chrome/browser/chromeos/drive/file_system/update_operation.h" #include "chrome/browser/chromeos/drive/file_system_observer.h" #include "chrome/browser/chromeos/drive/file_system_util.h" #include "chrome/browser/chromeos/drive/job_scheduler.h" @@ -298,12 +297,6 @@ void FileSystem::ResetComponents() { resource_metadata_, cache_, temporary_file_directory_)); - update_operation_.reset( - new file_system::UpdateOperation(blocking_task_runner_.get(), - observer, - scheduler_, - resource_metadata_, - cache_)); search_operation_.reset(new file_system::SearchOperation( blocking_task_runner_.get(), scheduler_, resource_metadata_)); get_file_for_saving_operation_.reset( diff --git a/chrome/browser/chromeos/drive/file_system.h b/chrome/browser/chromeos/drive/file_system.h index 75c85d6..0b5f530 100644 --- a/chrome/browser/chromeos/drive/file_system.h +++ b/chrome/browser/chromeos/drive/file_system.h @@ -54,7 +54,6 @@ class RemoveOperation; class SearchOperation; class TouchOperation; class TruncateOperation; -class UpdateOperation; } // namespace file_system // The production implementation of FileSystemInterface. @@ -279,7 +278,6 @@ class FileSystem : public FileSystemInterface, scoped_ptr<file_system::TouchOperation> touch_operation_; scoped_ptr<file_system::TruncateOperation> truncate_operation_; scoped_ptr<file_system::DownloadOperation> download_operation_; - scoped_ptr<file_system::UpdateOperation> update_operation_; scoped_ptr<file_system::SearchOperation> search_operation_; scoped_ptr<file_system::GetFileForSavingOperation> get_file_for_saving_operation_; diff --git a/chrome/browser/chromeos/drive/file_system/update_operation.cc b/chrome/browser/chromeos/drive/sync/content_update_performer.cc index 24d94d1..5b74291 100644 --- a/chrome/browser/chromeos/drive/file_system/update_operation.cc +++ b/chrome/browser/chromeos/drive/sync/content_update_performer.cc @@ -1,13 +1,12 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2014 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "chrome/browser/chromeos/drive/file_system/update_operation.h" +#include "chrome/browser/chromeos/drive/sync/content_update_performer.h" #include "base/platform_file.h" #include "chrome/browser/chromeos/drive/drive.pb.h" #include "chrome/browser/chromeos/drive/file_cache.h" -#include "chrome/browser/chromeos/drive/file_system/operation_observer.h" #include "chrome/browser/chromeos/drive/job_scheduler.h" #include "chrome/browser/chromeos/drive/resource_entry_conversion.h" #include "chrome/browser/chromeos/drive/resource_metadata.h" @@ -18,7 +17,7 @@ using content::BrowserThread; namespace drive { namespace file_system { -struct UpdateOperation::LocalState { +struct ContentUpdatePerformer::LocalState { LocalState() : should_upload(false) { } @@ -34,7 +33,7 @@ namespace { // Gets locally stored information about the specified file. FileError GetFileLocalState(internal::ResourceMetadata* metadata, internal::FileCache* cache, - UpdateOperation::LocalState* local_state) { + ContentUpdatePerformer::LocalState* local_state) { FileError error = metadata->GetResourceEntryById(local_state->local_id, &local_state->entry); if (error != FILE_ERROR_OK) @@ -82,8 +81,7 @@ FileError UpdateFileLocalState( internal::ResourceMetadata* metadata, internal::FileCache* cache, const std::string& local_id, - scoped_ptr<google_apis::ResourceEntry> resource_entry, - base::FilePath* drive_file_path) { + scoped_ptr<google_apis::ResourceEntry> resource_entry) { ResourceEntry existing_entry; FileError error = metadata->GetResourceEntryById(local_id, &existing_entry); if (error != FILE_ERROR_OK) @@ -101,10 +99,6 @@ FileError UpdateFileLocalState( if (error != FILE_ERROR_OK) return error; - *drive_file_path = metadata->GetFilePath(local_id); - if (drive_file_path->empty()) - return FILE_ERROR_NOT_FOUND; - FileCacheEntry cache_entry; if (!cache->GetCacheEntry(local_id, &cache_entry)) return FILE_ERROR_NOT_FOUND; @@ -117,14 +111,12 @@ FileError UpdateFileLocalState( } // namespace -UpdateOperation::UpdateOperation( +ContentUpdatePerformer::ContentUpdatePerformer( base::SequencedTaskRunner* blocking_task_runner, - OperationObserver* observer, JobScheduler* scheduler, internal::ResourceMetadata* metadata, internal::FileCache* cache) : blocking_task_runner_(blocking_task_runner), - observer_(observer), scheduler_(scheduler), metadata_(metadata), cache_(cache), @@ -132,11 +124,11 @@ UpdateOperation::UpdateOperation( DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); } -UpdateOperation::~UpdateOperation() { +ContentUpdatePerformer::~ContentUpdatePerformer() { DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); } -void UpdateOperation::UpdateFileByLocalId( +void ContentUpdatePerformer::UpdateFileByLocalId( const std::string& local_id, const ClientContext& context, const FileOperationCallback& callback) { @@ -152,14 +144,14 @@ void UpdateOperation::UpdateFileByLocalId( metadata_, cache_, local_state), - base::Bind(&UpdateOperation::UpdateFileAfterGetLocalState, + base::Bind(&ContentUpdatePerformer::UpdateFileAfterGetLocalState, weak_ptr_factory_.GetWeakPtr(), context, callback, base::Owned(local_state))); } -void UpdateOperation::UpdateFileAfterGetLocalState( +void ContentUpdatePerformer::UpdateFileAfterGetLocalState( const ClientContext& context, const FileOperationCallback& callback, const LocalState* local_state, @@ -179,13 +171,13 @@ void UpdateOperation::UpdateFileAfterGetLocalState( local_state->entry.file_specific_info().content_mime_type(), "", // etag context, - base::Bind(&UpdateOperation::UpdateFileAfterUpload, + base::Bind(&ContentUpdatePerformer::UpdateFileAfterUpload, weak_ptr_factory_.GetWeakPtr(), callback, local_state->local_id)); } -void UpdateOperation::UpdateFileAfterUpload( +void ContentUpdatePerformer::UpdateFileAfterUpload( const FileOperationCallback& callback, const std::string& local_id, google_apis::GDataErrorCode error, @@ -199,7 +191,6 @@ void UpdateOperation::UpdateFileAfterUpload( return; } - base::FilePath* drive_file_path = new base::FilePath; base::PostTaskAndReplyWithResult( blocking_task_runner_.get(), FROM_HERE, @@ -207,27 +198,8 @@ void UpdateOperation::UpdateFileAfterUpload( metadata_, cache_, local_id, - base::Passed(&resource_entry), - drive_file_path), - base::Bind(&UpdateOperation::UpdateFileAfterUpdateLocalState, - weak_ptr_factory_.GetWeakPtr(), - callback, - base::Owned(drive_file_path))); -} - -void UpdateOperation::UpdateFileAfterUpdateLocalState( - const FileOperationCallback& callback, - const base::FilePath* drive_file_path, - FileError error) { - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); - DCHECK(!callback.is_null()); - - if (error != FILE_ERROR_OK) { - callback.Run(error); - return; - } - observer_->OnDirectoryChangedByOperation(drive_file_path->DirName()); - callback.Run(FILE_ERROR_OK); + base::Passed(&resource_entry)), + callback); } } // namespace file_system diff --git a/chrome/browser/chromeos/drive/file_system/update_operation.h b/chrome/browser/chromeos/drive/sync/content_update_performer.h index 22479e7..43db7b1 100644 --- a/chrome/browser/chromeos/drive/file_system/update_operation.h +++ b/chrome/browser/chromeos/drive/sync/content_update_performer.h @@ -1,9 +1,9 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2014 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef CHROME_BROWSER_CHROMEOS_DRIVE_FILE_SYSTEM_UPDATE_OPERATION_H_ -#define CHROME_BROWSER_CHROMEOS_DRIVE_FILE_SYSTEM_UPDATE_OPERATION_H_ +#ifndef CHROME_BROWSER_CHROMEOS_DRIVE_SYNC_CONTENT_UPDATE_PERFORMER_H_ +#define CHROME_BROWSER_CHROMEOS_DRIVE_SYNC_CONTENT_UPDATE_PERFORMER_H_ #include "base/basictypes.h" #include "base/memory/ref_counted.h" @@ -34,19 +34,16 @@ class ResourceMetadata; namespace file_system { -class OperationObserver; - // This class encapsulates the drive Update function. It is responsible for // sending the request to the drive API, then updating the local state and // metadata to reflect the new state. -class UpdateOperation { +class ContentUpdatePerformer { public: - UpdateOperation(base::SequencedTaskRunner* blocking_task_runner, - OperationObserver* observer, - JobScheduler* scheduler, - internal::ResourceMetadata* metadata, - internal::FileCache* cache); - ~UpdateOperation(); + ContentUpdatePerformer(base::SequencedTaskRunner* blocking_task_runner, + JobScheduler* scheduler, + internal::ResourceMetadata* metadata, + internal::FileCache* cache); + ~ContentUpdatePerformer(); // Updates a file by the given |local_id| on the Drive server by // uploading an updated version. Used for uploading dirty files. The file @@ -71,23 +68,18 @@ class UpdateOperation { google_apis::GDataErrorCode error, scoped_ptr<google_apis::ResourceEntry> resource_entry); - void UpdateFileAfterUpdateLocalState(const FileOperationCallback& callback, - const base::FilePath* drive_file_path, - FileError error); - scoped_refptr<base::SequencedTaskRunner> blocking_task_runner_; - OperationObserver* observer_; JobScheduler* scheduler_; internal::ResourceMetadata* metadata_; internal::FileCache* cache_; // 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<UpdateOperation> weak_ptr_factory_; - DISALLOW_COPY_AND_ASSIGN(UpdateOperation); + base::WeakPtrFactory<ContentUpdatePerformer> weak_ptr_factory_; + DISALLOW_COPY_AND_ASSIGN(ContentUpdatePerformer); }; } // namespace file_system } // namespace drive -#endif // CHROME_BROWSER_CHROMEOS_DRIVE_FILE_SYSTEM_UPDATE_OPERATION_H_ +#endif // CHROME_BROWSER_CHROMEOS_DRIVE_SYNC_CONTENT_UPDATE_PERFORMER_H_ diff --git a/chrome/browser/chromeos/drive/file_system/update_operation_unittest.cc b/chrome/browser/chromeos/drive/sync/content_update_performer_unittest.cc index b11f158..3619875 100644 --- a/chrome/browser/chromeos/drive/file_system/update_operation_unittest.cc +++ b/chrome/browser/chromeos/drive/sync/content_update_performer_unittest.cc @@ -1,8 +1,8 @@ -// Copyright 2013 The Chromium Authors. All rights reserved. +// Copyright 2014 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "chrome/browser/chromeos/drive/file_system/update_operation.h" +#include "chrome/browser/chromeos/drive/sync/content_update_performer.h" #include "base/callback_helpers.h" #include "base/file_util.h" @@ -20,15 +20,14 @@ namespace drive { namespace file_system { -class UpdateOperationTest : public OperationTestBase { +class ContentUpdatePerformerTest : public OperationTestBase { protected: virtual void SetUp() OVERRIDE { OperationTestBase::SetUp(); - operation_.reset(new UpdateOperation(blocking_task_runner(), - observer(), - scheduler(), - metadata(), - cache())); + performer_.reset(new ContentUpdatePerformer(blocking_task_runner(), + scheduler(), + metadata(), + cache())); } // Stores |content| to the cache and mark it as dirty. @@ -68,10 +67,10 @@ class UpdateOperationTest : public OperationTestBase { return error; } - scoped_ptr<UpdateOperation> operation_; + scoped_ptr<ContentUpdatePerformer> performer_; }; -TEST_F(UpdateOperationTest, UpdateFileByLocalId) { +TEST_F(ContentUpdatePerformerTest, UpdateFileByLocalId) { const base::FilePath kFilePath(FILE_PATH_LITERAL("drive/root/File 1.txt")); const std::string kResourceId("file:2_file_resource_id"); @@ -86,7 +85,7 @@ TEST_F(UpdateOperationTest, UpdateFileByLocalId) { // The callback will be called upon completion of UpdateFileByLocalId(). FileError error = FILE_ERROR_FAILED; - operation_->UpdateFileByLocalId( + performer_->UpdateFileByLocalId( local_id, ClientContext(USER_INITIATED), google_apis::test_util::CreateCopyResultCallback(&error)); @@ -125,9 +124,9 @@ TEST_F(UpdateOperationTest, UpdateFileByLocalId) { EXPECT_FALSE(cache_entry.is_dirty()); } -TEST_F(UpdateOperationTest, UpdateFileByLocalId_NonexistentFile) { +TEST_F(ContentUpdatePerformerTest, UpdateFileByLocalId_NonexistentFile) { FileError error = FILE_ERROR_OK; - operation_->UpdateFileByLocalId( + performer_->UpdateFileByLocalId( "nonexistent_local_id", ClientContext(USER_INITIATED), google_apis::test_util::CreateCopyResultCallback(&error)); @@ -135,7 +134,7 @@ TEST_F(UpdateOperationTest, UpdateFileByLocalId_NonexistentFile) { EXPECT_EQ(FILE_ERROR_NOT_FOUND, error); } -TEST_F(UpdateOperationTest, UpdateFileByLocalId_Md5) { +TEST_F(ContentUpdatePerformerTest, UpdateFileByLocalId_Md5) { const base::FilePath kFilePath(FILE_PATH_LITERAL("drive/root/File 1.txt")); const std::string kResourceId("file:2_file_resource_id"); @@ -150,7 +149,7 @@ TEST_F(UpdateOperationTest, UpdateFileByLocalId_Md5) { // The callback will be called upon completion of UpdateFileByLocalId(). FileError error = FILE_ERROR_FAILED; - operation_->UpdateFileByLocalId( + performer_->UpdateFileByLocalId( local_id, ClientContext(USER_INITIATED), google_apis::test_util::CreateCopyResultCallback(&error)); @@ -208,7 +207,7 @@ TEST_F(UpdateOperationTest, UpdateFileByLocalId_Md5) { // hasn't been changed. Thus, the actual uploading should be skipped. original_changestamp = fake_service()->about_resource().largest_change_id(); error = FILE_ERROR_FAILED; - operation_->UpdateFileByLocalId( + performer_->UpdateFileByLocalId( local_id, ClientContext(USER_INITIATED), google_apis::test_util::CreateCopyResultCallback(&error)); @@ -233,7 +232,7 @@ TEST_F(UpdateOperationTest, UpdateFileByLocalId_Md5) { EXPECT_FALSE(cache_entry.is_dirty()); } -TEST_F(UpdateOperationTest, UpdateFileByLocalId_OpenedForWrite) { +TEST_F(ContentUpdatePerformerTest, UpdateFileByLocalId_OpenedForWrite) { const base::FilePath kFilePath(FILE_PATH_LITERAL("drive/root/File 1.txt")); const std::string kResourceId("file:2_file_resource_id"); @@ -259,7 +258,7 @@ TEST_F(UpdateOperationTest, UpdateFileByLocalId_OpenedForWrite) { // Update. This should not clear the dirty bit. error = FILE_ERROR_FAILED; - operation_->UpdateFileByLocalId( + performer_->UpdateFileByLocalId( local_id, ClientContext(USER_INITIATED), google_apis::test_util::CreateCopyResultCallback(&error)); @@ -286,7 +285,7 @@ TEST_F(UpdateOperationTest, UpdateFileByLocalId_OpenedForWrite) { // Update. This should clear the dirty bit. error = FILE_ERROR_FAILED; - operation_->UpdateFileByLocalId( + performer_->UpdateFileByLocalId( local_id, ClientContext(USER_INITIATED), google_apis::test_util::CreateCopyResultCallback(&error)); diff --git a/chrome/browser/chromeos/drive/sync_client.cc b/chrome/browser/chromeos/drive/sync_client.cc index 4f2b397..83e557c 100644 --- a/chrome/browser/chromeos/drive/sync_client.cc +++ b/chrome/browser/chromeos/drive/sync_client.cc @@ -12,8 +12,8 @@ #include "chrome/browser/chromeos/drive/file_cache.h" #include "chrome/browser/chromeos/drive/file_system/download_operation.h" #include "chrome/browser/chromeos/drive/file_system/operation_observer.h" -#include "chrome/browser/chromeos/drive/file_system/update_operation.h" #include "chrome/browser/chromeos/drive/file_system_util.h" +#include "chrome/browser/chromeos/drive/sync/content_update_performer.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" @@ -149,11 +149,11 @@ SyncClient::SyncClient(base::SequencedTaskRunner* blocking_task_runner, metadata, cache, temporary_file_directory)), - update_operation_(new file_system::UpdateOperation(blocking_task_runner, - observer, - scheduler, - metadata, - cache)), + content_update_performer_( + new file_system::ContentUpdatePerformer(blocking_task_runner, + scheduler, + metadata, + cache)), entry_update_performer_(new EntryUpdatePerformer(blocking_task_runner, observer, scheduler, @@ -258,8 +258,8 @@ void SyncClient::AddUploadTaskInternal(const ClientContext& context, SyncTask task; task.task = base::Bind( - &file_system::UpdateOperation::UpdateFileByLocalId, - base::Unretained(update_operation_.get()), + &file_system::ContentUpdatePerformer::UpdateFileByLocalId, + base::Unretained(content_update_performer_.get()), local_id, context, base::Bind(&SyncClient::OnUploadFileComplete, diff --git a/chrome/browser/chromeos/drive/sync_client.h b/chrome/browser/chromeos/drive/sync_client.h index af6a8aca..b15cc6c 100644 --- a/chrome/browser/chromeos/drive/sync_client.h +++ b/chrome/browser/chromeos/drive/sync_client.h @@ -29,7 +29,7 @@ struct ClientContext; namespace file_system { class DownloadOperation; class OperationObserver; -class UpdateOperation; +class ContentUpdatePerformer; } namespace internal { @@ -163,7 +163,7 @@ class SyncClient { scoped_ptr<file_system::DownloadOperation> download_operation_; // Used to upload committed files. - scoped_ptr<file_system::UpdateOperation> update_operation_; + scoped_ptr<file_system::ContentUpdatePerformer> content_update_performer_; // Used to update entry metadata. scoped_ptr<EntryUpdatePerformer> entry_update_performer_; diff --git a/chrome/chrome_browser_chromeos.gypi b/chrome/chrome_browser_chromeos.gypi index 7ed2e9e..220345d 100644 --- a/chrome/chrome_browser_chromeos.gypi +++ b/chrome/chrome_browser_chromeos.gypi @@ -256,8 +256,6 @@ 'browser/chromeos/drive/file_system/touch_operation.h', 'browser/chromeos/drive/file_system/truncate_operation.cc', 'browser/chromeos/drive/file_system/truncate_operation.h', - 'browser/chromeos/drive/file_system/update_operation.cc', - 'browser/chromeos/drive/file_system/update_operation.h', 'browser/chromeos/drive/file_system_backend_delegate.cc', 'browser/chromeos/drive/file_system_backend_delegate.h', 'browser/chromeos/drive/file_system_interface.h', @@ -292,6 +290,8 @@ 'browser/chromeos/drive/resource_metadata_storage.h', 'browser/chromeos/drive/search_metadata.cc', 'browser/chromeos/drive/search_metadata.h', + 'browser/chromeos/drive/sync/content_update_performer.cc', + 'browser/chromeos/drive/sync/content_update_performer.h', 'browser/chromeos/drive/sync/entry_revert_performer.cc', 'browser/chromeos/drive/sync/entry_revert_performer.h', 'browser/chromeos/drive/sync/entry_update_performer.cc', diff --git a/chrome/chrome_tests_unit.gypi b/chrome/chrome_tests_unit.gypi index 4e62e85..abeee99 100644 --- a/chrome/chrome_tests_unit.gypi +++ b/chrome/chrome_tests_unit.gypi @@ -657,7 +657,6 @@ 'browser/chromeos/drive/file_system/search_operation_unittest.cc', 'browser/chromeos/drive/file_system/touch_operation_unittest.cc', 'browser/chromeos/drive/file_system/truncate_operation_unittest.cc', - 'browser/chromeos/drive/file_system/update_operation_unittest.cc', 'browser/chromeos/drive/file_system_unittest.cc', 'browser/chromeos/drive/file_system_util_unittest.cc', 'browser/chromeos/drive/file_write_watcher_unittest.cc', @@ -670,6 +669,7 @@ 'browser/chromeos/drive/resource_metadata_storage_unittest.cc', 'browser/chromeos/drive/resource_metadata_unittest.cc', 'browser/chromeos/drive/search_metadata_unittest.cc', + 'browser/chromeos/drive/sync/content_update_performer_unittest.cc', 'browser/chromeos/drive/sync/entry_revert_performer_unittest.cc', 'browser/chromeos/drive/sync/entry_update_performer_unittest.cc', 'browser/chromeos/drive/sync/remove_performer_unittest.cc', |