| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/chromeos/gdata/gdata_file_system.h" | 5 #include "chrome/browser/chromeos/gdata/gdata_file_system.h" |
| 6 | 6 |
| 7 #include <set> | 7 #include <set> |
| 8 #include <utility> | 8 #include <utility> |
| 9 | 9 |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| (...skipping 655 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 666 const base::SequencedWorkerPool::SequenceToken& sequence_token) | 666 const base::SequencedWorkerPool::SequenceToken& sequence_token) |
| 667 : profile_(profile), | 667 : profile_(profile), |
| 668 cache_(cache), | 668 cache_(cache), |
| 669 uploader_(uploader), | 669 uploader_(uploader), |
| 670 documents_service_(documents_service), | 670 documents_service_(documents_service), |
| 671 webapps_registry_(webapps_registry), | 671 webapps_registry_(webapps_registry), |
| 672 update_timer_(true /* retain_user_task */, true /* is_repeating */), | 672 update_timer_(true /* retain_user_task */, true /* is_repeating */), |
| 673 hide_hosted_docs_(false), | 673 hide_hosted_docs_(false), |
| 674 ui_weak_ptr_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)), | 674 ui_weak_ptr_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)), |
| 675 ui_weak_ptr_(ui_weak_ptr_factory_.GetWeakPtr()), | 675 ui_weak_ptr_(ui_weak_ptr_factory_.GetWeakPtr()), |
| 676 sequence_token_(sequence_token) { | 676 sequence_token_(sequence_token), |
| 677 use_drive_api_(false) { |
| 677 // Should be created from the file browser extension API on UI thread. | 678 // Should be created from the file browser extension API on UI thread. |
| 678 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 679 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 679 } | 680 } |
| 680 | 681 |
| 681 void GDataFileSystem::Initialize() { | 682 void GDataFileSystem::Initialize(bool use_drive_api) { |
| 682 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 683 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 683 | 684 |
| 684 documents_service_->Initialize(profile_); | 685 use_drive_api_ = use_drive_api; |
| 686 |
| 687 documents_service_->Initialize(profile_, use_drive_api_); |
| 685 | 688 |
| 686 root_.reset(new GDataRootDirectory); | 689 root_.reset(new GDataRootDirectory); |
| 687 | 690 |
| 688 PrefService* pref_service = profile_->GetPrefs(); | 691 PrefService* pref_service = profile_->GetPrefs(); |
| 689 hide_hosted_docs_ = pref_service->GetBoolean(prefs::kDisableGDataHostedFiles); | 692 hide_hosted_docs_ = pref_service->GetBoolean(prefs::kDisableGDataHostedFiles); |
| 690 | 693 |
| 691 InitializePreferenceObserver(); | 694 InitializePreferenceObserver(); |
| 692 } | 695 } |
| 693 | 696 |
| 694 void GDataFileSystem::CheckForUpdates() { | 697 void GDataFileSystem::CheckForUpdates() { |
| (...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 881 std::string() /* no search query */, | 884 std::string() /* no search query */, |
| 882 std::string() /* no directory resource ID */, | 885 std::string() /* no directory resource ID */, |
| 883 callback, | 886 callback, |
| 884 base::Bind(&GDataFileSystem::OnFeedFromServerLoaded, | 887 base::Bind(&GDataFileSystem::OnFeedFromServerLoaded, |
| 885 ui_weak_ptr_)); | 888 ui_weak_ptr_)); |
| 886 return; | 889 return; |
| 887 } | 890 } |
| 888 | 891 |
| 889 scoped_ptr<AccountMetadataFeed> account_metadata; | 892 scoped_ptr<AccountMetadataFeed> account_metadata; |
| 890 if (feed_data.get()) { | 893 if (feed_data.get()) { |
| 891 account_metadata = AccountMetadataFeed::CreateFrom(*feed_data); | 894 account_metadata = AccountMetadataFeed::CreateFrom(*feed_data, |
| 895 use_drive_api_); |
| 892 #ifndef NDEBUG | 896 #ifndef NDEBUG |
| 893 // Save account metadata feed for analysis. | 897 // Save account metadata feed for analysis. |
| 894 const FilePath path = | 898 const FilePath path = |
| 895 cache_->GetCacheDirectoryPath(GDataCache::CACHE_TYPE_META).Append( | 899 cache_->GetCacheDirectoryPath(GDataCache::CACHE_TYPE_META).Append( |
| 896 kAccountMetadataFile); | 900 kAccountMetadataFile); |
| 897 PostBlockingPoolSequencedTask( | 901 PostBlockingPoolSequencedTask( |
| 898 FROM_HERE, | 902 FROM_HERE, |
| 899 sequence_token_, | 903 sequence_token_, |
| 900 base::Bind(&SaveFeedOnBlockingPoolForDebugging, | 904 base::Bind(&SaveFeedOnBlockingPoolForDebugging, |
| 901 path, base::Passed(&feed_data))); | 905 path, base::Passed(&feed_data))); |
| 902 #endif | 906 #endif |
| 903 } | 907 } |
| 904 | 908 |
| 905 if (!account_metadata.get()) { | 909 if (!account_metadata.get()) { |
| 906 LoadFeedFromServer(initial_origin, | 910 LoadFeedFromServer(initial_origin, |
| 907 local_changestamp + 1, 0, | 911 local_changestamp + 1, 0, |
| 908 true, /* should_fetch_multiple_feeds */ | 912 true, /* should_fetch_multiple_feeds */ |
| 909 search_file_path, | 913 search_file_path, |
| 910 std::string() /* no search query */, | 914 std::string() /* no search query */, |
| 911 std::string() /* no directory resource ID */, | 915 std::string() /* no directory resource ID */, |
| 912 callback, | 916 callback, |
| 913 base::Bind(&GDataFileSystem::OnFeedFromServerLoaded, | 917 base::Bind(&GDataFileSystem::OnFeedFromServerLoaded, |
| 914 ui_weak_ptr_)); | 918 ui_weak_ptr_)); |
| 915 return; | 919 return; |
| 916 } | 920 } |
| 917 | 921 |
| 918 webapps_registry_->UpdateFromFeed(account_metadata.get()); | 922 if (!use_drive_api_) |
| 923 webapps_registry_->UpdateFromFeed(account_metadata.get()); |
| 919 | 924 |
| 920 bool changes_detected = true; | 925 bool changes_detected = true; |
| 921 if (local_changestamp >= account_metadata->largest_changestamp()) { | 926 if (local_changestamp >= account_metadata->largest_changestamp()) { |
| 922 if (local_changestamp > account_metadata->largest_changestamp()) { | 927 if (local_changestamp > account_metadata->largest_changestamp()) { |
| 923 LOG(WARNING) << "Cached client feed is fresher than server, client = " | 928 LOG(WARNING) << "Cached client feed is fresher than server, client = " |
| 924 << local_changestamp | 929 << local_changestamp |
| 925 << ", server = " | 930 << ", server = " |
| 926 << account_metadata->largest_changestamp(); | 931 << account_metadata->largest_changestamp(); |
| 927 } | 932 } |
| 928 root_->set_origin(initial_origin); | 933 root_->set_origin(initial_origin); |
| (...skipping 1497 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2426 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 2431 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 2427 | 2432 |
| 2428 base::PlatformFileError error = GDataToPlatformError(status); | 2433 base::PlatformFileError error = GDataToPlatformError(status); |
| 2429 if (error != base::PLATFORM_FILE_OK) { | 2434 if (error != base::PLATFORM_FILE_OK) { |
| 2430 callback.Run(error, -1, -1); | 2435 callback.Run(error, -1, -1); |
| 2431 return; | 2436 return; |
| 2432 } | 2437 } |
| 2433 | 2438 |
| 2434 scoped_ptr<AccountMetadataFeed> feed; | 2439 scoped_ptr<AccountMetadataFeed> feed; |
| 2435 if (data.get()) | 2440 if (data.get()) |
| 2436 feed = AccountMetadataFeed::CreateFrom(*data); | 2441 feed = AccountMetadataFeed::CreateFrom(*data, use_drive_api_); |
| 2437 if (!feed.get()) { | 2442 if (!feed.get()) { |
| 2438 callback.Run(base::PLATFORM_FILE_ERROR_FAILED, -1, -1); | 2443 callback.Run(base::PLATFORM_FILE_ERROR_FAILED, -1, -1); |
| 2439 return; | 2444 return; |
| 2440 } | 2445 } |
| 2441 | 2446 |
| 2442 callback.Run(base::PLATFORM_FILE_OK, | 2447 callback.Run(base::PLATFORM_FILE_OK, |
| 2443 feed->quota_bytes_total(), | 2448 feed->quota_bytes_total(), |
| 2444 feed->quota_bytes_used()); | 2449 feed->quota_bytes_used()); |
| 2445 } | 2450 } |
| 2446 | 2451 |
| (...skipping 1474 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3921 // must go through here. Removes the |file_path| from the remembered set so | 3926 // must go through here. Removes the |file_path| from the remembered set so |
| 3922 // that subsequent operations can open the file again. | 3927 // that subsequent operations can open the file again. |
| 3923 open_files_.erase(file_path); | 3928 open_files_.erase(file_path); |
| 3924 | 3929 |
| 3925 // Then invokes the user-supplied callback function. | 3930 // Then invokes the user-supplied callback function. |
| 3926 if (!callback.is_null()) | 3931 if (!callback.is_null()) |
| 3927 callback.Run(result); | 3932 callback.Run(result); |
| 3928 } | 3933 } |
| 3929 | 3934 |
| 3930 } // namespace gdata | 3935 } // namespace gdata |
| OLD | NEW |