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

Side by Side Diff: chrome/browser/chromeos/drive/drive_feed_loader.cc

Issue 11418127: Pass calls to GetDocuments through the scheduler (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Add missing comment Created 8 years, 1 month 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/drive/drive_feed_loader.h" 5 #include "chrome/browser/chromeos/drive/drive_feed_loader.h"
6 6
7 #include <set> 7 #include <set>
8 8
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/file_util.h" 10 #include "base/file_util.h"
11 #include "base/format_macros.h" 11 #include "base/format_macros.h"
12 #include "base/json/json_reader.h" 12 #include "base/json/json_reader.h"
13 #include "base/json/json_writer.h" 13 #include "base/json/json_writer.h"
14 #include "base/metrics/histogram.h" 14 #include "base/metrics/histogram.h"
15 #include "base/stringprintf.h" 15 #include "base/stringprintf.h"
16 #include "base/threading/sequenced_worker_pool.h" 16 #include "base/threading/sequenced_worker_pool.h"
17 #include "base/values.h" 17 #include "base/values.h"
18 #include "chrome/browser/chromeos/drive/drive_cache.h" 18 #include "chrome/browser/chromeos/drive/drive_cache.h"
19 #include "chrome/browser/chromeos/drive/drive_feed_loader_observer.h" 19 #include "chrome/browser/chromeos/drive/drive_feed_loader_observer.h"
20 #include "chrome/browser/chromeos/drive/drive_feed_processor.h" 20 #include "chrome/browser/chromeos/drive/drive_feed_processor.h"
21 #include "chrome/browser/chromeos/drive/drive_file_system_util.h" 21 #include "chrome/browser/chromeos/drive/drive_file_system_util.h"
22 #include "chrome/browser/chromeos/drive/drive_scheduler.h"
22 #include "chrome/browser/chromeos/drive/drive_webapps_registry.h" 23 #include "chrome/browser/chromeos/drive/drive_webapps_registry.h"
23 #include "chrome/browser/google_apis/drive_api_parser.h" 24 #include "chrome/browser/google_apis/drive_api_parser.h"
24 #include "chrome/browser/google_apis/drive_api_util.h" 25 #include "chrome/browser/google_apis/drive_api_util.h"
25 #include "chrome/browser/google_apis/drive_service_interface.h" 26 #include "chrome/browser/google_apis/drive_service_interface.h"
26 #include "chrome/common/chrome_switches.h" 27 #include "chrome/common/chrome_switches.h"
27 #include "content/public/browser/browser_thread.h" 28 #include "content/public/browser/browser_thread.h"
28 29
29 using content::BrowserThread; 30 using content::BrowserThread;
30 31
31 namespace drive { 32 namespace drive {
(...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after
207 208
208 // Time elapsed since the feed fetching was started. 209 // Time elapsed since the feed fetching was started.
209 base::TimeDelta feed_fetching_elapsed_time; 210 base::TimeDelta feed_fetching_elapsed_time;
210 211
211 base::WeakPtrFactory<GetDocumentsUiState> weak_ptr_factory; 212 base::WeakPtrFactory<GetDocumentsUiState> weak_ptr_factory;
212 }; 213 };
213 214
214 DriveFeedLoader::DriveFeedLoader( 215 DriveFeedLoader::DriveFeedLoader(
215 DriveResourceMetadata* resource_metadata, 216 DriveResourceMetadata* resource_metadata,
216 google_apis::DriveServiceInterface* drive_service, 217 google_apis::DriveServiceInterface* drive_service,
218 DriveScheduler* scheduler,
217 DriveWebAppsRegistryInterface* webapps_registry, 219 DriveWebAppsRegistryInterface* webapps_registry,
218 DriveCache* cache, 220 DriveCache* cache,
219 scoped_refptr<base::SequencedTaskRunner> blocking_task_runner) 221 scoped_refptr<base::SequencedTaskRunner> blocking_task_runner)
220 : resource_metadata_(resource_metadata), 222 : resource_metadata_(resource_metadata),
221 drive_service_(drive_service), 223 drive_service_(drive_service),
224 scheduler_(scheduler),
222 webapps_registry_(webapps_registry), 225 webapps_registry_(webapps_registry),
223 cache_(cache), 226 cache_(cache),
224 blocking_task_runner_(blocking_task_runner), 227 blocking_task_runner_(blocking_task_runner),
225 refreshing_(false), 228 refreshing_(false),
226 ALLOW_THIS_IN_INITIALIZER_LIST(weak_ptr_factory_(this)) { 229 ALLOW_THIS_IN_INITIALIZER_LIST(weak_ptr_factory_(this)) {
227 } 230 }
228 231
229 DriveFeedLoader::~DriveFeedLoader() { 232 DriveFeedLoader::~DriveFeedLoader() {
230 } 233 }
231 234
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after
356 } 359 }
357 360
358 void DriveFeedLoader::LoadFromServer(scoped_ptr<LoadFeedParams> params) { 361 void DriveFeedLoader::LoadFromServer(scoped_ptr<LoadFeedParams> params) {
359 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 362 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
360 363
361 const base::TimeTicks start_time = base::TimeTicks::Now(); 364 const base::TimeTicks start_time = base::TimeTicks::Now();
362 365
363 // base::Passed() may get evaluated first, so get a pointer to params. 366 // base::Passed() may get evaluated first, so get a pointer to params.
364 LoadFeedParams* params_ptr = params.get(); 367 LoadFeedParams* params_ptr = params.get();
365 if (google_apis::util::IsDriveV2ApiEnabled()) { 368 if (google_apis::util::IsDriveV2ApiEnabled()) {
366 drive_service_->GetDocuments( 369 scheduler_->GetDocuments(
367 params_ptr->feed_to_load, 370 params_ptr->feed_to_load,
368 params_ptr->start_changestamp, 371 params_ptr->start_changestamp,
369 std::string(), // No search query. 372 std::string(), // No search query.
370 params_ptr->shared_with_me, 373 params_ptr->shared_with_me,
371 std::string(), // No directory resource ID. 374 std::string(), // No directory resource ID.
372 base::Bind(&DriveFeedLoader::OnGetChangelist, 375 base::Bind(&DriveFeedLoader::OnGetChangelist,
373 weak_ptr_factory_.GetWeakPtr(), 376 weak_ptr_factory_.GetWeakPtr(),
374 base::Passed(&params), 377 base::Passed(&params),
375 start_time)); 378 start_time));
376 } else { 379 } else {
377 drive_service_->GetDocuments( 380 scheduler_->GetDocuments(
378 params_ptr->feed_to_load, 381 params_ptr->feed_to_load,
379 params_ptr->start_changestamp, 382 params_ptr->start_changestamp,
380 params_ptr->search_query, 383 params_ptr->search_query,
381 params_ptr->shared_with_me, 384 params_ptr->shared_with_me,
382 params_ptr->directory_resource_id, 385 params_ptr->directory_resource_id,
383 base::Bind(&DriveFeedLoader::OnGetDocuments, 386 base::Bind(&DriveFeedLoader::OnGetDocuments,
384 weak_ptr_factory_.GetWeakPtr(), 387 weak_ptr_factory_.GetWeakPtr(),
385 base::Passed(&params), 388 base::Passed(&params),
386 start_time)); 389 start_time));
387 } 390 }
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
513 weak_ptr_factory_.GetWeakPtr(), 516 weak_ptr_factory_.GetWeakPtr(),
514 ui_state->weak_ptr_factory.GetWeakPtr())); 517 ui_state->weak_ptr_factory.GetWeakPtr()));
515 } 518 }
516 ui_state->num_fetched_documents = num_accumulated_entries; 519 ui_state->num_fetched_documents = num_accumulated_entries;
517 ui_state->feed_fetching_elapsed_time = base::TimeTicks::Now() - start_time; 520 ui_state->feed_fetching_elapsed_time = base::TimeTicks::Now() - start_time;
518 521
519 // |params| will be passed to the callback and thus nulled. Extract the 522 // |params| will be passed to the callback and thus nulled. Extract the
520 // pointer so we can use it bellow. 523 // pointer so we can use it bellow.
521 LoadFeedParams* params_ptr = params.get(); 524 LoadFeedParams* params_ptr = params.get();
522 // Kick off the remaining part of the feeds. 525 // Kick off the remaining part of the feeds.
523 drive_service_->GetDocuments( 526 scheduler_->GetDocuments(
524 next_feed_url, 527 next_feed_url,
525 params_ptr->start_changestamp, 528 params_ptr->start_changestamp,
526 params_ptr->search_query, 529 params_ptr->search_query,
527 params_ptr->shared_with_me, 530 params_ptr->shared_with_me,
528 params_ptr->directory_resource_id, 531 params_ptr->directory_resource_id,
529 base::Bind(&DriveFeedLoader::OnGetDocuments, 532 base::Bind(&DriveFeedLoader::OnGetDocuments,
530 weak_ptr_factory_.GetWeakPtr(), 533 weak_ptr_factory_.GetWeakPtr(),
531 base::Passed(&params), 534 base::Passed(&params),
532 start_time)); 535 start_time));
533 return; 536 return;
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
616 base::Bind(&DriveFeedLoader::OnNotifyDocumentFeedFetched, 619 base::Bind(&DriveFeedLoader::OnNotifyDocumentFeedFetched,
617 weak_ptr_factory_.GetWeakPtr(), 620 weak_ptr_factory_.GetWeakPtr(),
618 ui_state->weak_ptr_factory.GetWeakPtr())); 621 ui_state->weak_ptr_factory.GetWeakPtr()));
619 } 622 }
620 ui_state->num_fetched_documents = num_accumulated_entries; 623 ui_state->num_fetched_documents = num_accumulated_entries;
621 ui_state->feed_fetching_elapsed_time = base::TimeTicks::Now() - start_time; 624 ui_state->feed_fetching_elapsed_time = base::TimeTicks::Now() - start_time;
622 625
623 // Kick off the remaining part of the feeds. 626 // Kick off the remaining part of the feeds.
624 // Extract the pointer so we can use it bellow. 627 // Extract the pointer so we can use it bellow.
625 LoadFeedParams* params_ptr = params.get(); 628 LoadFeedParams* params_ptr = params.get();
626 drive_service_->GetDocuments( 629 scheduler_->GetDocuments(
627 current_feed->next_link(), 630 current_feed->next_link(),
628 params_ptr->start_changestamp, 631 params_ptr->start_changestamp,
629 std::string(), // No search query. 632 std::string(), // No search query.
630 false, // Not shared with me. 633 false, // Not shared with me.
631 std::string(), // No directory resource ID. 634 std::string(), // No directory resource ID.
632 base::Bind(&DriveFeedLoader::OnGetChangelist, 635 base::Bind(&DriveFeedLoader::OnGetChangelist,
633 weak_ptr_factory_.GetWeakPtr(), 636 weak_ptr_factory_.GetWeakPtr(),
634 base::Passed(&params), 637 base::Passed(&params),
635 start_time)); 638 start_time));
636 return; 639 return;
(...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after
850 853
851 // Run the callback now that the filesystem is ready. 854 // Run the callback now that the filesystem is ready.
852 load_finished_callback.Run(DRIVE_FILE_OK); 855 load_finished_callback.Run(DRIVE_FILE_OK);
853 856
854 FOR_EACH_OBSERVER(DriveFeedLoaderObserver, 857 FOR_EACH_OBSERVER(DriveFeedLoaderObserver,
855 observers_, 858 observers_,
856 OnFeedFromServerLoaded()); 859 OnFeedFromServerLoaded());
857 } 860 }
858 861
859 } // namespace drive 862 } // namespace drive
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698