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

Side by Side Diff: chrome/browser/sync_file_system/drive_file_sync_client.cc

Issue 11414253: DriveFileSyncService listens to OnAuthenticated event to recover from unavailable state (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 8 years 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/sync_file_system/drive_file_sync_client.h" 5 #include "chrome/browser/sync_file_system/drive_file_sync_client.h"
6 6
7 #include <sstream> 7 #include <sstream>
8 8
9 #include "base/string_util.h" 9 #include "base/string_util.h"
10 #include "base/utf_string_conversions.h" 10 #include "base/utf_string_conversions.h"
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
63 return NULL; 63 return NULL;
64 } 64 }
65 65
66 } // namespace 66 } // namespace
67 67
68 DriveFileSyncClient::DriveFileSyncClient(Profile* profile) { 68 DriveFileSyncClient::DriveFileSyncClient(Profile* profile) {
69 drive_service_.reset(new google_apis::GDataWapiService( 69 drive_service_.reset(new google_apis::GDataWapiService(
70 GURL(google_apis::GDataWapiUrlGenerator::kBaseUrlForProduction), 70 GURL(google_apis::GDataWapiUrlGenerator::kBaseUrlForProduction),
71 "" /* custom_user_agent */)); 71 "" /* custom_user_agent */));
72 drive_service_->Initialize(profile); 72 drive_service_->Initialize(profile);
73 drive_service_->AddObserver(this);
73 74
74 drive_uploader_.reset(new google_apis::DriveUploader(drive_service_.get())); 75 drive_uploader_.reset(new google_apis::DriveUploader(drive_service_.get()));
75 } 76 }
76 77
77 scoped_ptr<DriveFileSyncClient> DriveFileSyncClient::CreateForTesting( 78 scoped_ptr<DriveFileSyncClient> DriveFileSyncClient::CreateForTesting(
78 Profile* profile, 79 Profile* profile,
79 scoped_ptr<google_apis::DriveServiceInterface> drive_service, 80 scoped_ptr<google_apis::DriveServiceInterface> drive_service,
80 scoped_ptr<google_apis::DriveUploaderInterface> drive_uploader) { 81 scoped_ptr<google_apis::DriveUploaderInterface> drive_uploader) {
81 return make_scoped_ptr(new DriveFileSyncClient( 82 return make_scoped_ptr(new DriveFileSyncClient(
82 profile, drive_service.Pass(), drive_uploader.Pass())); 83 profile, drive_service.Pass(), drive_uploader.Pass()));
83 } 84 }
84 85
85 DriveFileSyncClient::DriveFileSyncClient( 86 DriveFileSyncClient::DriveFileSyncClient(
86 Profile* profile, 87 Profile* profile,
87 scoped_ptr<google_apis::DriveServiceInterface> drive_service, 88 scoped_ptr<google_apis::DriveServiceInterface> drive_service,
88 scoped_ptr<google_apis::DriveUploaderInterface> drive_uploader) { 89 scoped_ptr<google_apis::DriveUploaderInterface> drive_uploader) {
89 drive_service_ = drive_service.Pass(); 90 drive_service_ = drive_service.Pass();
90 drive_service_->Initialize(profile); 91 drive_service_->Initialize(profile);
92 drive_service_->AddObserver(this);
91 93
92 drive_uploader_ = drive_uploader.Pass(); 94 drive_uploader_ = drive_uploader.Pass();
93 } 95 }
94 96
95 DriveFileSyncClient::~DriveFileSyncClient() { 97 DriveFileSyncClient::~DriveFileSyncClient() {
96 DCHECK(CalledOnValidThread()); 98 DCHECK(CalledOnValidThread());
99 drive_service_->RemoveObserver(this);
97 drive_service_->CancelAll(); 100 drive_service_->CancelAll();
98 } 101 }
99 102
103 void DriveFileSyncClient::AddObserver(DriveFileSyncClientObserver* observer) {
104 DCHECK(CalledOnValidThread());
105 observers_.AddObserver(observer);
106 }
107
108 void DriveFileSyncClient::RemoveObserver(
109 DriveFileSyncClientObserver* observer) {
110 DCHECK(CalledOnValidThread());
111 observers_.RemoveObserver(observer);
112 }
113
100 void DriveFileSyncClient::GetDriveDirectoryForSyncRoot( 114 void DriveFileSyncClient::GetDriveDirectoryForSyncRoot(
101 const ResourceIdCallback& callback) { 115 const ResourceIdCallback& callback) {
102 DCHECK(CalledOnValidThread()); 116 DCHECK(CalledOnValidThread());
103 117
104 std::string directory_name(kSyncRootDirectoryName); 118 std::string directory_name(kSyncRootDirectoryName);
105 SearchFilesInDirectory( 119 SearchFilesInDirectory(
106 kRootResourceId, 120 kRootResourceId,
107 FormatTitleQuery(directory_name), 121 FormatTitleQuery(directory_name),
108 base::Bind(&DriveFileSyncClient::DidGetDirectory, AsWeakPtr(), 122 base::Bind(&DriveFileSyncClient::DidGetDirectory, AsWeakPtr(),
109 kRootResourceId, directory_name, callback)); 123 kRootResourceId, directory_name, callback));
(...skipping 252 matching lines...) Expand 10 before | Expand all | Expand 10 after
362 std::string DriveFileSyncClient::OriginToDirectoryTitle(const GURL& origin) { 376 std::string DriveFileSyncClient::OriginToDirectoryTitle(const GURL& origin) {
363 DCHECK(origin.SchemeIs(extensions::kExtensionScheme)); 377 DCHECK(origin.SchemeIs(extensions::kExtensionScheme));
364 return origin.host(); 378 return origin.host();
365 } 379 }
366 380
367 // static 381 // static
368 GURL DriveFileSyncClient::DirectoryTitleToOrigin(const std::string& title) { 382 GURL DriveFileSyncClient::DirectoryTitleToOrigin(const std::string& title) {
369 return extensions::Extension::GetBaseURLFromExtensionId(title); 383 return extensions::Extension::GetBaseURLFromExtensionId(title);
370 } 384 }
371 385
386 void DriveFileSyncClient::OnReadyToPerformOperations() {
387 DCHECK(CalledOnValidThread());
388 FOR_EACH_OBSERVER(DriveFileSyncClientObserver, observers_, OnAuthenticated());
389 }
390
372 void DriveFileSyncClient::DidGetDocumentFeedData( 391 void DriveFileSyncClient::DidGetDocumentFeedData(
373 const DocumentFeedCallback& callback, 392 const DocumentFeedCallback& callback,
374 google_apis::GDataErrorCode error, 393 google_apis::GDataErrorCode error,
375 scoped_ptr<base::Value> data) { 394 scoped_ptr<base::Value> data) {
376 DCHECK(CalledOnValidThread()); 395 DCHECK(CalledOnValidThread());
377 396
378 if (error != google_apis::HTTP_SUCCESS) { 397 if (error != google_apis::HTTP_SUCCESS) {
379 callback.Run(error, scoped_ptr<google_apis::DocumentFeed>()); 398 callback.Run(error, scoped_ptr<google_apis::DocumentFeed>());
380 return; 399 return;
381 } 400 }
(...skipping 229 matching lines...) Expand 10 before | Expand all | Expand 10 after
611 } 630 }
612 631
613 void DriveFileSyncClient::DidDeleteFile( 632 void DriveFileSyncClient::DidDeleteFile(
614 const GDataErrorCallback& callback, 633 const GDataErrorCallback& callback,
615 google_apis::GDataErrorCode error) { 634 google_apis::GDataErrorCode error) {
616 DCHECK(CalledOnValidThread()); 635 DCHECK(CalledOnValidThread());
617 callback.Run(error); 636 callback.Run(error);
618 } 637 }
619 638
620 } // namespace sync_file_system 639 } // namespace sync_file_system
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698