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

Side by Side Diff: chrome/browser/chromeos/customization_wallpaper_downloader.cc

Issue 253833006: Add browser test for CustomizationWallpaperDownloader. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add get_retry_current_delay_for_testing. Created 6 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 "chrome/browser/chromeos/customization_wallpaper_downloader.h" 5 #include "chrome/browser/chromeos/customization_wallpaper_downloader.h"
6 6
7 #include <math.h> 7 #include <math.h>
8 #include <algorithm> 8 #include <algorithm>
9 9
10 #include "base/file_util.h" 10 #include "base/file_util.h"
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
65 const base::FilePath& wallpaper_downloaded_file, 65 const base::FilePath& wallpaper_downloaded_file,
66 base::Callback<void(bool success, const GURL&)> 66 base::Callback<void(bool success, const GURL&)>
67 on_wallpaper_fetch_completed) 67 on_wallpaper_fetch_completed)
68 : url_context_getter_(url_context_getter), 68 : url_context_getter_(url_context_getter),
69 wallpaper_url_(wallpaper_url), 69 wallpaper_url_(wallpaper_url),
70 wallpaper_dir_(wallpaper_dir), 70 wallpaper_dir_(wallpaper_dir),
71 wallpaper_downloaded_file_(wallpaper_downloaded_file), 71 wallpaper_downloaded_file_(wallpaper_downloaded_file),
72 wallpaper_temporary_file_(wallpaper_downloaded_file.value() + 72 wallpaper_temporary_file_(wallpaper_downloaded_file.value() +
73 kTemporarySuffix), 73 kTemporarySuffix),
74 retries_(0), 74 retries_(0),
75 retry_delay_(base::TimeDelta::FromSeconds(kRetrySleepSeconds)),
76 retry_current_delay_(base::TimeDelta::FromSeconds(0)),
Daniel Erat 2014/05/07 00:10:33 don't need to initialize this; a 0-second delay is
Alexander Alekseev 2014/05/07 00:26:08 Done.
75 on_wallpaper_fetch_completed_(on_wallpaper_fetch_completed), 77 on_wallpaper_fetch_completed_(on_wallpaper_fetch_completed),
76 weak_factory_(this) { 78 weak_factory_(this) {
77 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); 79 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
78 } 80 }
79 81
80 CustomizationWallpaperDownloader::~CustomizationWallpaperDownloader() { 82 CustomizationWallpaperDownloader::~CustomizationWallpaperDownloader() {
81 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); 83 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
82 } 84 }
83 85
84 void CustomizationWallpaperDownloader::StartRequest() { 86 void CustomizationWallpaperDownloader::StartRequest() {
(...skipping 13 matching lines...) Expand all
98 url_fetcher_->SaveResponseToFileAtPath( 100 url_fetcher_->SaveResponseToFileAtPath(
99 wallpaper_temporary_file_, 101 wallpaper_temporary_file_,
100 blocking_pool->GetSequencedTaskRunner(blocking_pool->GetSequenceToken())); 102 blocking_pool->GetSequencedTaskRunner(blocking_pool->GetSequenceToken()));
101 url_fetcher_->Start(); 103 url_fetcher_->Start();
102 } 104 }
103 105
104 void CustomizationWallpaperDownloader::Retry() { 106 void CustomizationWallpaperDownloader::Retry() {
105 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); 107 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
106 ++retries_; 108 ++retries_;
107 109
108 const double delay_seconds = 110 const double delay_seconds = std::min(
109 std::min(kMaxRetrySleepSeconds, 111 kMaxRetrySleepSeconds,
110 static_cast<double>(retries_) * retries_ * kRetrySleepSeconds); 112 static_cast<double>(retries_) * retries_ * retry_delay_.InSecondsF());
111 const base::TimeDelta delay = 113 const base::TimeDelta delay = base::TimeDelta::FromSecondsD(delay_seconds);
112 base::TimeDelta::FromSeconds(lround(delay_seconds));
113 114
114 VLOG(1) << "Schedule Customized Wallpaper download in " << delay.InSecondsF() 115 VLOG(1) << "Schedule Customized Wallpaper download in " << delay.InSecondsF()
115 << " seconds (retry = " << retries_ << ")."; 116 << " seconds (retry = " << retries_ << ").";
117 retry_current_delay_ = delay;
116 request_scheduled_.Start( 118 request_scheduled_.Start(
117 FROM_HERE, delay, this, &CustomizationWallpaperDownloader::StartRequest); 119 FROM_HERE, delay, this, &CustomizationWallpaperDownloader::StartRequest);
118 } 120 }
119 121
120 void CustomizationWallpaperDownloader::Start() { 122 void CustomizationWallpaperDownloader::Start() {
121 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); 123 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
122 scoped_ptr<bool> success(new bool(false)); 124 scoped_ptr<bool> success(new bool(false));
123 125
124 base::Closure mkdir_closure = base::Bind(&CreateWallpaperDirectory, 126 base::Closure mkdir_closure = base::Bind(&CreateWallpaperDirectory,
125 wallpaper_dir_, 127 wallpaper_dir_,
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
185 } 187 }
186 } 188 }
187 189
188 void CustomizationWallpaperDownloader::OnTemporaryFileRenamed( 190 void CustomizationWallpaperDownloader::OnTemporaryFileRenamed(
189 scoped_ptr<bool> success) { 191 scoped_ptr<bool> success) {
190 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); 192 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
191 on_wallpaper_fetch_completed_.Run(*success, wallpaper_url_); 193 on_wallpaper_fetch_completed_.Run(*success, wallpaper_url_);
192 } 194 }
193 195
194 } // namespace chromeos 196 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698