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

Side by Side Diff: chrome/browser/chromeos/gdata/gdata_file_system.cc

Issue 10824303: gdata: Remove FindEntryByPathAndRunSync() from GDataWapiFeedLoader. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: address comments Created 8 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (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 534 matching lines...) Expand 10 before | Expand all | Expand 10 after
545 } 545 }
546 546
547 void GDataFileSystem::CheckForUpdates() { 547 void GDataFileSystem::CheckForUpdates() {
548 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 548 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
549 ContentOrigin initial_origin = directory_service_->origin(); 549 ContentOrigin initial_origin = directory_service_->origin();
550 if (initial_origin == FROM_SERVER) { 550 if (initial_origin == FROM_SERVER) {
551 directory_service_->set_origin(REFRESHING); 551 directory_service_->set_origin(REFRESHING);
552 feed_loader_->ReloadFromServerIfNeeded( 552 feed_loader_->ReloadFromServerIfNeeded(
553 initial_origin, 553 initial_origin,
554 directory_service_->largest_changestamp(), 554 directory_service_->largest_changestamp(),
555 directory_service_->root()->GetFilePath(),
556 base::Bind(&GDataFileSystem::OnUpdateChecked, 555 base::Bind(&GDataFileSystem::OnUpdateChecked,
557 ui_weak_ptr_, 556 ui_weak_ptr_,
558 initial_origin)); 557 initial_origin));
559 } 558 }
560 } 559 }
561 560
562 void GDataFileSystem::OnUpdateChecked(ContentOrigin initial_origin, 561 void GDataFileSystem::OnUpdateChecked(ContentOrigin initial_origin,
563 GDataFileError error, 562 GDataFileError error) {
564 GDataEntry* /* entry */) {
565 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 563 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
566 564
567 if (error != GDATA_FILE_OK) { 565 if (error != GDATA_FILE_OK)
568 directory_service_->set_origin(initial_origin); 566 directory_service_->set_origin(initial_origin);
569 }
570 } 567 }
571 568
572 GDataFileSystem::~GDataFileSystem() { 569 GDataFileSystem::~GDataFileSystem() {
573 // This should be called from UI thread, from GDataSystemService shutdown. 570 // This should be called from UI thread, from GDataSystemService shutdown.
574 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 571 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
575 572
576 feed_loader_->RemoveObserver(this); 573 feed_loader_->RemoveObserver(this);
577 574
578 // Cancel all the in-flight operations. 575 // Cancel all the in-flight operations.
579 // This asynchronously cancels the URL fetch operations. 576 // This asynchronously cancels the URL fetch operations.
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
678 ui_weak_ptr_, 675 ui_weak_ptr_,
679 search_file_path, 676 search_file_path,
680 callback))); 677 callback)));
681 return; 678 return;
682 } else if (directory_service_->origin() == UNINITIALIZED) { 679 } else if (directory_service_->origin() == UNINITIALIZED) {
683 // Load root feed from this disk cache. Upon completion, kick off server 680 // Load root feed from this disk cache. Upon completion, kick off server
684 // fetching. 681 // fetching.
685 directory_service_->set_origin(INITIALIZING); 682 directory_service_->set_origin(INITIALIZING);
686 feed_loader_->LoadFromCache( 683 feed_loader_->LoadFromCache(
687 true, // should_load_from_server 684 true, // should_load_from_server
688 search_file_path,
689 // This is the initial load, hence we'll notify when it's done. 685 // This is the initial load, hence we'll notify when it's done.
690 base::Bind(&GDataFileSystem::RunAndNotifyInitialLoadFinished, 686 base::Bind(&GDataFileSystem::FindAndNotifyInitialLoadFinished,
691 ui_weak_ptr_, 687 ui_weak_ptr_,
688 search_file_path,
692 callback)); 689 callback));
693 return; 690 return;
694 } 691 }
695 692
696 // Post a task to the same thread, rather than calling it here, as 693 // Post a task to the same thread, rather than calling it here, as
697 // FindEntryByPath() is asynchronous. 694 // FindEntryByPath() is asynchronous.
698 base::MessageLoopProxy::current()->PostTask( 695 base::MessageLoopProxy::current()->PostTask(
699 FROM_HERE, 696 FROM_HERE,
700 base::Bind(&GDataFileSystem::FindEntryByPathSyncOnUIThread, 697 base::Bind(&GDataFileSystem::FindEntryByPathSyncOnUIThread,
701 ui_weak_ptr_, 698 ui_weak_ptr_,
(...skipping 1295 matching lines...) Expand 10 before | Expand all | Expand 10 after
1997 1994
1998 if (error != GDATA_FILE_OK || 1995 if (error != GDATA_FILE_OK ||
1999 !entry_proto->file_info().is_directory()) { 1996 !entry_proto->file_info().is_directory()) {
2000 LOG(ERROR) << "Directory entry not found: " << file_path.value(); 1997 LOG(ERROR) << "Directory entry not found: " << file_path.value();
2001 return; 1998 return;
2002 } 1999 }
2003 2000
2004 feed_loader_->LoadFromServer( 2001 feed_loader_->LoadFromServer(
2005 directory_service_->origin(), 2002 directory_service_->origin(),
2006 0, // Not delta feed. 2003 0, // Not delta feed.
2007 0, // Not used. 2004 0, // Not used.
achuithb 2012/08/15 00:13:15 Can we say what this param is?
satorux1 2012/08/15 00:26:29 Will do
satorux1 2012/08/15 01:26:23 Done.
2008 true, // multiple feeds 2005 true, // multiple feeds
2009 file_path,
2010 std::string(), // No search query 2006 std::string(), // No search query
2011 GURL(), /* feed not explicitly set */ 2007 GURL(), /* feed not explicitly set */
achuithb 2012/08/15 00:13:15 Can we use // style comment here instead?
satorux1 2012/08/15 00:26:29 Will do
satorux1 2012/08/15 01:26:23 Done.
2012 entry_proto->resource_id(), 2008 entry_proto->resource_id(), // Load the feed for this directory.
2013 FindEntryCallback(), // Not used. 2009 FileOperationCallback(), // Not used.
2014 base::Bind(&GDataFileSystem::OnRequestDirectoryRefresh, 2010 base::Bind(&GDataFileSystem::OnRequestDirectoryRefresh,
2015 ui_weak_ptr_)); 2011 ui_weak_ptr_,
2012 file_path));
2016 } 2013 }
2017 2014
2018 void GDataFileSystem::OnRequestDirectoryRefresh( 2015 void GDataFileSystem::OnRequestDirectoryRefresh(
2016 const FilePath& directory_path,
2019 GetDocumentsParams* params, 2017 GetDocumentsParams* params,
2020 GDataFileError error) { 2018 GDataFileError error) {
2021 DCHECK(params); 2019 DCHECK(params);
2022 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 2020 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
2023 2021
2024 const FilePath& directory_path = params->search_file_path;
2025 if (error != GDATA_FILE_OK) { 2022 if (error != GDATA_FILE_OK) {
2026 LOG(ERROR) << "Failed to refresh directory: " << directory_path.value() 2023 LOG(ERROR) << "Failed to refresh directory: " << directory_path.value()
2027 << ": " << error; 2024 << ": " << error;
2028 return; 2025 return;
2029 } 2026 }
2030 2027
2031 int64 unused_delta_feed_changestamp = 0; 2028 int64 unused_delta_feed_changestamp = 0;
2032 FeedToFileResourceMapUmaStats unused_uma_stats; 2029 FeedToFileResourceMapUmaStats unused_uma_stats;
2033 FileResourceIdMap file_map; 2030 FileResourceIdMap file_map;
2034 GDataWapiFeedProcessor feed_processor(directory_service_.get()); 2031 GDataWapiFeedProcessor feed_processor(directory_service_.get());
(...skipping 413 matching lines...) Expand 10 before | Expand all | Expand 10 after
2448 new std::vector<DocumentFeed*>); 2445 new std::vector<DocumentFeed*>);
2449 2446
2450 ContentOrigin initial_origin = directory_service_->origin(); 2447 ContentOrigin initial_origin = directory_service_->origin();
2451 feed_loader_->LoadFromServer( 2448 feed_loader_->LoadFromServer(
2452 initial_origin, 2449 initial_origin,
2453 0, 0, // We don't use change stamps when fetching search 2450 0, 0, // We don't use change stamps when fetching search
2454 // data; we always fetch the whole result feed. 2451 // data; we always fetch the whole result feed.
2455 false, // Stop fetching search results after first feed 2452 false, // Stop fetching search results after first feed
2456 // chunk to avoid displaying huge number of search 2453 // chunk to avoid displaying huge number of search
2457 // results (especially since we don't cache them). 2454 // results (especially since we don't cache them).
2458 FilePath(), // Not used.
2459 search_query, 2455 search_query,
2460 next_feed, 2456 next_feed,
2461 std::string(), // No directory resource ID. 2457 std::string(), // No directory resource ID.
2462 FindEntryCallback(), // Not used. 2458 FileOperationCallback(), // Not used.
2463 base::Bind(&GDataFileSystem::OnSearch, ui_weak_ptr_, callback)); 2459 base::Bind(&GDataFileSystem::OnSearch, ui_weak_ptr_, callback));
2464 } 2460 }
2465 2461
2466 void GDataFileSystem::OnDirectoryChanged(const FilePath& directory_path) { 2462 void GDataFileSystem::OnDirectoryChanged(const FilePath& directory_path) {
2467 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 2463 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
2468 2464
2469 FOR_EACH_OBSERVER(GDataFileSystemInterface::Observer, observers_, 2465 FOR_EACH_OBSERVER(GDataFileSystemInterface::Observer, observers_,
2470 OnDirectoryChanged(directory_path)); 2466 OnDirectoryChanged(directory_path));
2471 } 2467 }
2472 2468
2473 void GDataFileSystem::OnDocumentFeedFetched(int num_accumulated_entries) { 2469 void GDataFileSystem::OnDocumentFeedFetched(int num_accumulated_entries) {
2474 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 2470 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
2475 2471
2476 FOR_EACH_OBSERVER(GDataFileSystemInterface::Observer, observers_, 2472 FOR_EACH_OBSERVER(GDataFileSystemInterface::Observer, observers_,
2477 OnDocumentFeedFetched(num_accumulated_entries)); 2473 OnDocumentFeedFetched(num_accumulated_entries));
2478 } 2474 }
2479 2475
2480 void GDataFileSystem::OnFeedFromServerLoaded() { 2476 void GDataFileSystem::OnFeedFromServerLoaded() {
2481 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 2477 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
2482 2478
2483 FOR_EACH_OBSERVER(GDataFileSystemInterface::Observer, observers_, 2479 FOR_EACH_OBSERVER(GDataFileSystemInterface::Observer, observers_,
2484 OnFeedFromServerLoaded()); 2480 OnFeedFromServerLoaded());
2485 } 2481 }
2486 2482
2487 void GDataFileSystem::LoadRootFeedFromCacheForTesting() { 2483 void GDataFileSystem::LoadRootFeedFromCacheForTesting() {
2488 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 2484 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
2489 2485
2490 feed_loader_->LoadFromCache( 2486 feed_loader_->LoadFromCache(
2491 false, // should_load_from_server. 2487 false, // should_load_from_server.
2492 // search_path doesn't matter if FindEntryCallback parameter is null . 2488 FileOperationCallback());
2493 FilePath(),
2494 FindEntryCallback());
2495 } 2489 }
2496 2490
2497 GDataFileError GDataFileSystem::UpdateFromFeedForTesting( 2491 GDataFileError GDataFileSystem::UpdateFromFeedForTesting(
2498 const std::vector<DocumentFeed*>& feed_list, 2492 const std::vector<DocumentFeed*>& feed_list,
2499 int64 start_changestamp, 2493 int64 start_changestamp,
2500 int64 root_feed_changestamp) { 2494 int64 root_feed_changestamp) {
2501 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 2495 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
2502 2496
2503 return feed_loader_->UpdateFromFeed(feed_list, 2497 return feed_loader_->UpdateFromFeed(feed_list,
2504 start_changestamp, 2498 start_changestamp,
(...skipping 329 matching lines...) Expand 10 before | Expand all | Expand 10 after
2834 2828
2835 void GDataFileSystem::NotifyFileSystemToBeUnmounted() { 2829 void GDataFileSystem::NotifyFileSystemToBeUnmounted() {
2836 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 2830 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
2837 2831
2838 DVLOG(1) << "File System is to be unmounted"; 2832 DVLOG(1) << "File System is to be unmounted";
2839 // Notify the observers that the file system is being unmounted. 2833 // Notify the observers that the file system is being unmounted.
2840 FOR_EACH_OBSERVER(GDataFileSystemInterface::Observer, observers_, 2834 FOR_EACH_OBSERVER(GDataFileSystemInterface::Observer, observers_,
2841 OnFileSystemBeingUnmounted()); 2835 OnFileSystemBeingUnmounted());
2842 } 2836 }
2843 2837
2844 void GDataFileSystem::RunAndNotifyInitialLoadFinished( 2838 void GDataFileSystem::FindAndNotifyInitialLoadFinished(
2839 const FilePath& search_file_path,
2845 const FindEntryCallback& callback, 2840 const FindEntryCallback& callback,
2846 GDataFileError error, 2841 GDataFileError error) {
2847 GDataEntry* entry) {
2848 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 2842 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
2849 DCHECK(!callback.is_null()); 2843 DCHECK(!callback.is_null());
2850 2844
2851 callback.Run(error, entry); 2845 // TODO(satorux): Remove this: crbug.com/141196.
2846 directory_service_->FindEntryByPathAndRunSync(search_file_path, callback);
2852 2847
2853 DVLOG(1) << "RunAndNotifyInitialLoadFinished"; 2848 DVLOG(1) << "RunAndNotifyInitialLoadFinished";
2854 2849
2855 // Notify the observers that root directory has been initialized. 2850 // Notify the observers that root directory has been initialized.
2856 FOR_EACH_OBSERVER(GDataFileSystemInterface::Observer, observers_, 2851 FOR_EACH_OBSERVER(GDataFileSystemInterface::Observer, observers_,
2857 OnInitialLoadFinished()); 2852 OnInitialLoadFinished());
2858 } 2853 }
2859 2854
2860 GDataFileError GDataFileSystem::AddNewDirectory( 2855 GDataFileError GDataFileSystem::AddNewDirectory(
2861 const FilePath& directory_path, base::Value* entry_value) { 2856 const FilePath& directory_path, base::Value* entry_value) {
(...skipping 544 matching lines...) Expand 10 before | Expand all | Expand 10 after
3406 return; 3401 return;
3407 } 3402 }
3408 3403
3409 PlatformFileInfoProto entry_file_info; 3404 PlatformFileInfoProto entry_file_info;
3410 GDataEntry::ConvertPlatformFileInfoToProto(*file_info, &entry_file_info); 3405 GDataEntry::ConvertPlatformFileInfoToProto(*file_info, &entry_file_info);
3411 *entry_proto->mutable_file_info() = entry_file_info; 3406 *entry_proto->mutable_file_info() = entry_file_info;
3412 callback.Run(GDATA_FILE_OK, entry_proto.Pass()); 3407 callback.Run(GDATA_FILE_OK, entry_proto.Pass());
3413 } 3408 }
3414 3409
3415 } // namespace gdata 3410 } // namespace gdata
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/gdata/gdata_file_system.h ('k') | chrome/browser/chromeos/gdata/gdata_wapi_feed_loader.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698