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

Side by Side Diff: components/update_client/background_downloader_win.cc

Issue 2889683003: Rename TaskRunner::RunsTasksOnCurrentThread() in //components (Closed)
Patch Set: Created 3 years, 7 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "components/update_client/background_downloader_win.h" 5 #include "components/update_client/background_downloader_win.h"
6 6
7 #include <atlbase.h> 7 #include <atlbase.h>
8 #include <atlcom.h> 8 #include <atlcom.h>
9 #include <objbase.h> 9 #include <objbase.h>
10 #include <stddef.h> 10 #include <stddef.h>
(...skipping 441 matching lines...) Expand 10 before | Expand all | Expand 10 after
452 452
453 void BackgroundDownloader::DoStartDownload(const GURL& url) { 453 void BackgroundDownloader::DoStartDownload(const GURL& url) {
454 DCHECK(thread_checker_.CalledOnValidThread()); 454 DCHECK(thread_checker_.CalledOnValidThread());
455 task_runner()->PostTask(FROM_HERE, 455 task_runner()->PostTask(FROM_HERE,
456 base::Bind(&BackgroundDownloader::BeginDownload, 456 base::Bind(&BackgroundDownloader::BeginDownload,
457 base::Unretained(this), url)); 457 base::Unretained(this), url));
458 } 458 }
459 459
460 // Called one time when this class is asked to do a download. 460 // Called one time when this class is asked to do a download.
461 void BackgroundDownloader::BeginDownload(const GURL& url) { 461 void BackgroundDownloader::BeginDownload(const GURL& url) {
462 DCHECK(task_runner()->RunsTasksOnCurrentThread()); 462 DCHECK(task_runner()->RunsTasksInCurrentSequence());
463 463
464 download_start_time_ = base::TimeTicks::Now(); 464 download_start_time_ = base::TimeTicks::Now();
465 job_stuck_begin_time_ = download_start_time_; 465 job_stuck_begin_time_ = download_start_time_;
466 466
467 HRESULT hr = BeginDownloadHelper(url); 467 HRESULT hr = BeginDownloadHelper(url);
468 if (FAILED(hr)) { 468 if (FAILED(hr)) {
469 EndDownload(hr); 469 EndDownload(hr);
470 return; 470 return;
471 } 471 }
472 472
(...skipping 25 matching lines...) Expand all
498 498
499 hr = RegisterInterfaceInGit(git, job_, &git_cookie_job_); 499 hr = RegisterInterfaceInGit(git, job_, &git_cookie_job_);
500 if (FAILED(hr)) 500 if (FAILED(hr))
501 return hr; 501 return hr;
502 502
503 return S_OK; 503 return S_OK;
504 } 504 }
505 505
506 // Called any time the timer fires. 506 // Called any time the timer fires.
507 void BackgroundDownloader::OnDownloading() { 507 void BackgroundDownloader::OnDownloading() {
508 DCHECK(task_runner()->RunsTasksOnCurrentThread()); 508 DCHECK(task_runner()->RunsTasksInCurrentSequence());
509 509
510 HRESULT hr = UpdateInterfacePointers(); 510 HRESULT hr = UpdateInterfacePointers();
511 if (FAILED(hr)) { 511 if (FAILED(hr)) {
512 EndDownload(hr); 512 EndDownload(hr);
513 return; 513 return;
514 } 514 }
515 515
516 BG_JOB_STATE job_state = BG_JOB_STATE_ERROR; 516 BG_JOB_STATE job_state = BG_JOB_STATE_ERROR;
517 hr = job_->GetState(&job_state); 517 hr = job_->GetState(&job_state);
518 if (FAILED(hr)) { 518 if (FAILED(hr)) {
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
563 563
564 ResetInterfacePointers(); 564 ResetInterfacePointers();
565 main_task_runner()->PostTask( 565 main_task_runner()->PostTask(
566 FROM_HERE, 566 FROM_HERE,
567 base::Bind(&BackgroundDownloader::StartTimer, base::Unretained(this))); 567 base::Bind(&BackgroundDownloader::StartTimer, base::Unretained(this)));
568 } 568 }
569 569
570 // Completes the BITS download, picks up the file path of the response, and 570 // Completes the BITS download, picks up the file path of the response, and
571 // notifies the CrxDownloader. The function should be called only once. 571 // notifies the CrxDownloader. The function should be called only once.
572 void BackgroundDownloader::EndDownload(HRESULT error) { 572 void BackgroundDownloader::EndDownload(HRESULT error) {
573 DCHECK(task_runner()->RunsTasksOnCurrentThread()); 573 DCHECK(task_runner()->RunsTasksInCurrentSequence());
574 574
575 DCHECK(!TimerIsRunning()); 575 DCHECK(!TimerIsRunning());
576 576
577 const base::TimeTicks download_end_time(base::TimeTicks::Now()); 577 const base::TimeTicks download_end_time(base::TimeTicks::Now());
578 const base::TimeDelta download_time = 578 const base::TimeDelta download_time =
579 download_end_time >= download_start_time_ 579 download_end_time >= download_start_time_
580 ? download_end_time - download_start_time_ 580 ? download_end_time - download_start_time_
581 : base::TimeDelta(); 581 : base::TimeDelta();
582 582
583 int64_t downloaded_bytes = -1; 583 int64_t downloaded_bytes = -1;
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
707 main_task_runner()->PostTask( 707 main_task_runner()->PostTask(
708 FROM_HERE, base::Bind(&BackgroundDownloader::OnDownloadProgress, 708 FROM_HERE, base::Bind(&BackgroundDownloader::OnDownloadProgress,
709 base::Unretained(this), result)); 709 base::Unretained(this), result));
710 return false; 710 return false;
711 } 711 }
712 712
713 // Creates or opens a job for the given url and queues it up. Tries to 713 // Creates or opens a job for the given url and queues it up. Tries to
714 // install a job observer but continues on if an observer can't be set up. 714 // install a job observer but continues on if an observer can't be set up.
715 HRESULT BackgroundDownloader::QueueBitsJob(const GURL& url, 715 HRESULT BackgroundDownloader::QueueBitsJob(const GURL& url,
716 IBackgroundCopyJob** job) { 716 IBackgroundCopyJob** job) {
717 DCHECK(task_runner()->RunsTasksOnCurrentThread()); 717 DCHECK(task_runner()->RunsTasksInCurrentSequence());
718 718
719 ScopedComPtr<IBackgroundCopyJob> p; 719 ScopedComPtr<IBackgroundCopyJob> p;
720 HRESULT hr = CreateOrOpenJob(url, p.GetAddressOf()); 720 HRESULT hr = CreateOrOpenJob(url, p.GetAddressOf());
721 if (FAILED(hr)) 721 if (FAILED(hr))
722 return hr; 722 return hr;
723 723
724 if (hr == S_OK) { 724 if (hr == S_OK) {
725 // This is a new job and it needs initialization. 725 // This is a new job and it needs initialization.
726 hr = InitializeNewJob(p, url); 726 hr = InitializeNewJob(p, url);
727 if (FAILED(hr)) 727 if (FAILED(hr))
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
828 // must match as a job only contains one file. 828 // must match as a job only contains one file.
829 DCHECK(progress.Completed); 829 DCHECK(progress.Completed);
830 DCHECK_EQ(progress.BytesTotal, progress.BytesTransferred); 830 DCHECK_EQ(progress.BytesTotal, progress.BytesTransferred);
831 831
832 response_ = base::FilePath(local_name); 832 response_ = base::FilePath(local_name);
833 833
834 return S_OK; 834 return S_OK;
835 } 835 }
836 836
837 HRESULT BackgroundDownloader::UpdateInterfacePointers() { 837 HRESULT BackgroundDownloader::UpdateInterfacePointers() {
838 DCHECK(task_runner()->RunsTasksOnCurrentThread()); 838 DCHECK(task_runner()->RunsTasksInCurrentSequence());
839 839
840 ScopedComPtr<IGlobalInterfaceTable> git; 840 ScopedComPtr<IGlobalInterfaceTable> git;
841 HRESULT hr = GetGit(&git); 841 HRESULT hr = GetGit(&git);
842 if (FAILED(hr)) 842 if (FAILED(hr))
843 return hr; 843 return hr;
844 844
845 bits_manager_ = nullptr; 845 bits_manager_ = nullptr;
846 hr = GetInterfaceFromGit(git.Get(), git_cookie_bits_manager_, 846 hr = GetInterfaceFromGit(git.Get(), git_cookie_bits_manager_,
847 IID_PPV_ARGS(&bits_manager_)); 847 IID_PPV_ARGS(&bits_manager_));
848 if (FAILED(hr)) 848 if (FAILED(hr))
849 return hr; 849 return hr;
850 850
851 job_ = nullptr; 851 job_ = nullptr;
852 hr = GetInterfaceFromGit(git.Get(), git_cookie_job_, IID_PPV_ARGS(&job_)); 852 hr = GetInterfaceFromGit(git.Get(), git_cookie_job_, IID_PPV_ARGS(&job_));
853 if (FAILED(hr)) 853 if (FAILED(hr))
854 return hr; 854 return hr;
855 855
856 return S_OK; 856 return S_OK;
857 } 857 }
858 858
859 void BackgroundDownloader::ResetInterfacePointers() { 859 void BackgroundDownloader::ResetInterfacePointers() {
860 job_ = nullptr; 860 job_ = nullptr;
861 bits_manager_ = nullptr; 861 bits_manager_ = nullptr;
862 } 862 }
863 863
864 HRESULT BackgroundDownloader::ClearGit() { 864 HRESULT BackgroundDownloader::ClearGit() {
865 DCHECK(task_runner()->RunsTasksOnCurrentThread()); 865 DCHECK(task_runner()->RunsTasksInCurrentSequence());
866 866
867 ResetInterfacePointers(); 867 ResetInterfacePointers();
868 868
869 ScopedComPtr<IGlobalInterfaceTable> git; 869 ScopedComPtr<IGlobalInterfaceTable> git;
870 HRESULT hr = GetGit(&git); 870 HRESULT hr = GetGit(&git);
871 if (FAILED(hr)) 871 if (FAILED(hr))
872 return hr; 872 return hr;
873 873
874 const DWORD cookies[] = { 874 const DWORD cookies[] = {
875 git_cookie_job_, git_cookie_bits_manager_ 875 git_cookie_job_, git_cookie_bits_manager_
876 }; 876 };
877 877
878 for (auto cookie : cookies) { 878 for (auto cookie : cookies) {
879 // TODO(sorin): check the result of the call, see crbug.com/644857. 879 // TODO(sorin): check the result of the call, see crbug.com/644857.
880 git->RevokeInterfaceFromGlobal(cookie); 880 git->RevokeInterfaceFromGlobal(cookie);
881 } 881 }
882 882
883 return S_OK; 883 return S_OK;
884 } 884 }
885 885
886 } // namespace update_client 886 } // namespace update_client
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698