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

Unified Diff: chrome/browser/translate/translate_url_fetcher.cc

Issue 15949022: Translate: language list smart updater (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: disable network update on mac infobar tests Created 7 years, 6 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/translate/translate_url_fetcher.cc
diff --git a/chrome/browser/translate/translate_url_fetcher.cc b/chrome/browser/translate/translate_url_fetcher.cc
index 4635eec6426ff4d8e624ccbb39c7937770275085..16ee14f0b27a85518ccda07a1dabc8fd217cfed0 100644
--- a/chrome/browser/translate/translate_url_fetcher.cc
+++ b/chrome/browser/translate/translate_url_fetcher.cc
@@ -13,13 +13,15 @@
namespace {
// Retry parameter for fetching.
-const int kMaxRetry = 5;
+const int kMaxRetryOn5xx = 5;
+const int kMaxRetry = 16;
} // namespace
TranslateURLFetcher::TranslateURLFetcher(int id)
: id_(id),
- state_(IDLE) {
+ state_(IDLE),
+ retry_count_(0) {
}
TranslateURLFetcher::~TranslateURLFetcher() {
@@ -28,13 +30,17 @@ TranslateURLFetcher::~TranslateURLFetcher() {
bool TranslateURLFetcher::Request(
const GURL& url,
const TranslateURLFetcher::Callback& callback) {
- // This function is not supporsed to be called before previous operaion is not
+ // This function is not supposed to be called before previous operaion is not
// finished.
if (state_ == REQUESTING) {
NOTREACHED();
return false;
}
+ if (retry_count_ >= kMaxRetry)
+ return false;
+ retry_count_++;
+
state_ = REQUESTING;
url_ = url;
callback_ = callback;
@@ -47,7 +53,10 @@ bool TranslateURLFetcher::Request(
fetcher_->SetLoadFlags(net::LOAD_DO_NOT_SEND_COOKIES |
net::LOAD_DO_NOT_SAVE_COOKIES);
fetcher_->SetRequestContext(g_browser_process->system_request_context());
- fetcher_->SetMaxRetriesOn5xx(kMaxRetry);
+ // Set retry parameter for HTTP status code 5xx. This doesn't work against
+ // 106 (net::ERR_INTERNET_DISCONNECTED) and so on.
+ // TranslateLanguageList handles network status, and implements retry.
+ fetcher_->SetMaxRetriesOn5xx(kMaxRetryOn5xx);
fetcher_->Start();
return true;
@@ -65,6 +74,7 @@ void TranslateURLFetcher::OnURLFetchComplete(const net::URLFetcher* source) {
state_ = FAILED;
}
+ // Transfer URLFetcher's ownership before invoking a callback.
scoped_ptr<const net::URLFetcher> delete_ptr(fetcher_.release());
callback_.Run(id_, state_ == COMPLETED, data);
}
« no previous file with comments | « chrome/browser/translate/translate_url_fetcher.h ('k') | chrome/browser/ui/cocoa/infobars/translate_infobar_unittest.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698