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

Side by Side Diff: components/translate/core/browser/translate_url_fetcher.cc

Issue 145023015: Introduce TranslateService and TranslateDownloadManager (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix unittest Created 6 years, 10 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/translate/core/browser/translate_url_fetcher.h" 5 #include "components/translate/core/browser/translate_url_fetcher.h"
6 6
7 #include "components/translate/core/browser/translate_delegate.h" 7 #include "components/translate/core/browser/translate_download_manager.h"
8 #include "net/base/load_flags.h" 8 #include "net/base/load_flags.h"
9 #include "net/http/http_status_code.h" 9 #include "net/http/http_status_code.h"
10 #include "net/url_request/url_fetcher.h" 10 #include "net/url_request/url_fetcher.h"
11 #include "net/url_request/url_request_status.h" 11 #include "net/url_request/url_request_status.h"
12 12
13 namespace { 13 namespace {
14 14
15 // Retry parameter for fetching. 15 // Retry parameter for fetching.
16 const int kMaxRetry = 16; 16 const int kMaxRetry = 16;
17 17
18 } // namespace 18 } // namespace
19 19
20 TranslateURLFetcher::TranslateURLFetcher(int id, TranslateDelegate* delegate) 20 TranslateURLFetcher::TranslateURLFetcher(int id) : id_(id),
21 : id_(id), 21 state_(IDLE),
22 translate_delegate_(delegate), 22 retry_count_(0) {
23 state_(IDLE),
24 retry_count_(0) {
25 } 23 }
26 24
27 TranslateURLFetcher::~TranslateURLFetcher() { 25 TranslateURLFetcher::~TranslateURLFetcher() {
28 } 26 }
29 27
30 bool TranslateURLFetcher::Request( 28 bool TranslateURLFetcher::Request(
31 const GURL& url, 29 const GURL& url,
32 const TranslateURLFetcher::Callback& callback) { 30 const TranslateURLFetcher::Callback& callback) {
33 // This function is not supposed to be called before previous operaion is not 31 // This function is not supposed to be called before previous operaion is not
34 // finished. 32 // finished.
(...skipping 10 matching lines...) Expand all
45 url_ = url; 43 url_ = url;
46 callback_ = callback; 44 callback_ = callback;
47 45
48 fetcher_.reset(net::URLFetcher::Create( 46 fetcher_.reset(net::URLFetcher::Create(
49 id_, 47 id_,
50 url_, 48 url_,
51 net::URLFetcher::GET, 49 net::URLFetcher::GET,
52 this)); 50 this));
53 fetcher_->SetLoadFlags(net::LOAD_DO_NOT_SEND_COOKIES | 51 fetcher_->SetLoadFlags(net::LOAD_DO_NOT_SEND_COOKIES |
54 net::LOAD_DO_NOT_SAVE_COOKIES); 52 net::LOAD_DO_NOT_SAVE_COOKIES);
55 fetcher_->SetRequestContext(translate_delegate_->GetURLRequestContext()); 53 fetcher_->SetRequestContext(
54 TranslateDownloadManager::GetInstance()->request_context());
56 // Set retry parameter for HTTP status code 5xx. This doesn't work against 55 // Set retry parameter for HTTP status code 5xx. This doesn't work against
57 // 106 (net::ERR_INTERNET_DISCONNECTED) and so on. 56 // 106 (net::ERR_INTERNET_DISCONNECTED) and so on.
58 // TranslateLanguageList handles network status, and implements retry. 57 // TranslateLanguageList handles network status, and implements retry.
59 fetcher_->SetMaxRetriesOn5xx(max_retry_on_5xx_); 58 fetcher_->SetMaxRetriesOn5xx(max_retry_on_5xx_);
60 if (!extra_request_header_.empty()) 59 if (!extra_request_header_.empty())
61 fetcher_->SetExtraRequestHeaders(extra_request_header_); 60 fetcher_->SetExtraRequestHeaders(extra_request_header_);
62 61
63 fetcher_->Start(); 62 fetcher_->Start();
64 63
65 return true; 64 return true;
66 } 65 }
67 66
68 void TranslateURLFetcher::OnURLFetchComplete(const net::URLFetcher* source) { 67 void TranslateURLFetcher::OnURLFetchComplete(const net::URLFetcher* source) {
69 DCHECK(fetcher_.get() == source); 68 DCHECK(fetcher_.get() == source);
70 69
71 std::string data; 70 std::string data;
72 if (source->GetStatus().status() == net::URLRequestStatus::SUCCESS && 71 if (source->GetStatus().status() == net::URLRequestStatus::SUCCESS &&
73 source->GetResponseCode() == net::HTTP_OK) { 72 source->GetResponseCode() == net::HTTP_OK) {
74 state_ = COMPLETED; 73 state_ = COMPLETED;
75 source->GetResponseAsString(&data); 74 source->GetResponseAsString(&data);
76 } else { 75 } else {
77 state_ = FAILED; 76 state_ = FAILED;
78 } 77 }
79 78
80 // Transfer URLFetcher's ownership before invoking a callback. 79 // Transfer URLFetcher's ownership before invoking a callback.
81 scoped_ptr<const net::URLFetcher> delete_ptr(fetcher_.release()); 80 scoped_ptr<const net::URLFetcher> delete_ptr(fetcher_.release());
82 callback_.Run(id_, state_ == COMPLETED, data); 81 callback_.Run(id_, state_ == COMPLETED, data);
83 } 82 }
OLDNEW
« no previous file with comments | « components/translate/core/browser/translate_url_fetcher.h ('k') | tools/gn/secondary/components/translate/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698