OLD | NEW |
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/google_apis/gdata_wapi_requests.h" | 5 #include "chrome/browser/google_apis/gdata_wapi_requests.h" |
6 | 6 |
| 7 #include "base/location.h" |
7 #include "base/strings/string_number_conversions.h" | 8 #include "base/strings/string_number_conversions.h" |
8 #include "base/strings/stringprintf.h" | 9 #include "base/strings/stringprintf.h" |
9 #include "base/task_runner_util.h" | 10 #include "base/task_runner_util.h" |
10 #include "base/threading/sequenced_worker_pool.h" | |
11 #include "base/values.h" | 11 #include "base/values.h" |
12 #include "chrome/browser/google_apis/gdata_wapi_parser.h" | 12 #include "chrome/browser/google_apis/gdata_wapi_parser.h" |
13 #include "chrome/browser/google_apis/gdata_wapi_url_generator.h" | 13 #include "chrome/browser/google_apis/gdata_wapi_url_generator.h" |
| 14 #include "chrome/browser/google_apis/request_sender.h" |
14 #include "chrome/browser/google_apis/request_util.h" | 15 #include "chrome/browser/google_apis/request_util.h" |
15 #include "chrome/browser/google_apis/time_util.h" | 16 #include "chrome/browser/google_apis/time_util.h" |
16 #include "content/public/browser/browser_thread.h" | |
17 #include "net/base/escape.h" | 17 #include "net/base/escape.h" |
18 #include "net/base/url_util.h" | 18 #include "net/base/url_util.h" |
19 #include "third_party/libxml/chromium/libxml_utils.h" | 19 #include "third_party/libxml/chromium/libxml_utils.h" |
20 | 20 |
21 using content::BrowserThread; | |
22 using net::URLFetcher; | 21 using net::URLFetcher; |
23 | 22 |
24 namespace google_apis { | 23 namespace google_apis { |
25 | 24 |
26 namespace { | 25 namespace { |
27 | 26 |
28 const char kUploadContentRange[] = "Content-Range: bytes "; | 27 const char kUploadContentRange[] = "Content-Range: bytes "; |
29 | 28 |
30 const char kFeedField[] = "feed"; | 29 const char kFeedField[] = "feed"; |
31 | 30 |
(...skipping 18 matching lines...) Expand all Loading... |
50 | 49 |
51 // resource_list being NULL indicates there was a parsing error. | 50 // resource_list being NULL indicates there was a parsing error. |
52 if (!resource_list) | 51 if (!resource_list) |
53 error = GDATA_PARSE_ERROR; | 52 error = GDATA_PARSE_ERROR; |
54 | 53 |
55 callback.Run(error, resource_list.Pass()); | 54 callback.Run(error, resource_list.Pass()); |
56 } | 55 } |
57 | 56 |
58 // Parses the JSON value to ResourceList on the blocking pool and runs | 57 // Parses the JSON value to ResourceList on the blocking pool and runs |
59 // |callback| on the UI thread once parsing is done. | 58 // |callback| on the UI thread once parsing is done. |
60 void ParseResourceListAndRun(const GetResourceListCallback& callback, | 59 void ParseResourceListAndRun( |
61 GDataErrorCode error, | 60 scoped_refptr<base::TaskRunner> blocking_task_runner, |
62 scoped_ptr<base::Value> value) { | 61 const GetResourceListCallback& callback, |
| 62 GDataErrorCode error, |
| 63 scoped_ptr<base::Value> value) { |
63 DCHECK(!callback.is_null()); | 64 DCHECK(!callback.is_null()); |
64 | 65 |
65 if (!value) { | 66 if (!value) { |
66 callback.Run(error, scoped_ptr<ResourceList>()); | 67 callback.Run(error, scoped_ptr<ResourceList>()); |
67 return; | 68 return; |
68 } | 69 } |
69 | 70 |
70 base::PostTaskAndReplyWithResult( | 71 base::PostTaskAndReplyWithResult( |
71 BrowserThread::GetBlockingPool(), | 72 blocking_task_runner, |
72 FROM_HERE, | 73 FROM_HERE, |
73 base::Bind(&ParseResourceListOnBlockingPool, base::Passed(&value)), | 74 base::Bind(&ParseResourceListOnBlockingPool, base::Passed(&value)), |
74 base::Bind(&DidParseResourceListOnBlockingPool, callback, error)); | 75 base::Bind(&DidParseResourceListOnBlockingPool, callback, error)); |
75 } | 76 } |
76 | 77 |
77 // Parses the JSON value to AccountMetadata and runs |callback| on the UI | 78 // Parses the JSON value to AccountMetadata and runs |callback| on the UI |
78 // thread once parsing is done. | 79 // thread once parsing is done. |
79 void ParseAccounetMetadataAndRun(const GetAccountMetadataCallback& callback, | 80 void ParseAccounetMetadataAndRun(const GetAccountMetadataCallback& callback, |
80 GDataErrorCode error, | 81 GDataErrorCode error, |
81 scoped_ptr<base::Value> value) { | 82 scoped_ptr<base::Value> value) { |
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
155 //============================ GetResourceListRequest ======================== | 156 //============================ GetResourceListRequest ======================== |
156 | 157 |
157 GetResourceListRequest::GetResourceListRequest( | 158 GetResourceListRequest::GetResourceListRequest( |
158 RequestSender* sender, | 159 RequestSender* sender, |
159 const GDataWapiUrlGenerator& url_generator, | 160 const GDataWapiUrlGenerator& url_generator, |
160 const GURL& override_url, | 161 const GURL& override_url, |
161 int64 start_changestamp, | 162 int64 start_changestamp, |
162 const std::string& search_string, | 163 const std::string& search_string, |
163 const std::string& directory_resource_id, | 164 const std::string& directory_resource_id, |
164 const GetResourceListCallback& callback) | 165 const GetResourceListCallback& callback) |
165 : GetDataRequest(sender, | 166 : GetDataRequest( |
166 base::Bind(&ParseResourceListAndRun, callback)), | 167 sender, |
| 168 base::Bind(&ParseResourceListAndRun, |
| 169 make_scoped_refptr(sender->blocking_task_runner()), |
| 170 callback)), |
167 url_generator_(url_generator), | 171 url_generator_(url_generator), |
168 override_url_(override_url), | 172 override_url_(override_url), |
169 start_changestamp_(start_changestamp), | 173 start_changestamp_(start_changestamp), |
170 search_string_(search_string), | 174 search_string_(search_string), |
171 directory_resource_id_(directory_resource_id) { | 175 directory_resource_id_(directory_resource_id) { |
172 DCHECK(!callback.is_null()); | 176 DCHECK(!callback.is_null()); |
173 } | 177 } |
174 | 178 |
175 GetResourceListRequest::~GetResourceListRequest() {} | 179 GetResourceListRequest::~GetResourceListRequest() {} |
176 | 180 |
177 GURL GetResourceListRequest::GetURL() const { | 181 GURL GetResourceListRequest::GetURL() const { |
178 return url_generator_.GenerateResourceListUrl(override_url_, | 182 return url_generator_.GenerateResourceListUrl(override_url_, |
179 start_changestamp_, | 183 start_changestamp_, |
180 search_string_, | 184 search_string_, |
181 directory_resource_id_); | 185 directory_resource_id_); |
182 } | 186 } |
183 | 187 |
184 //============================ SearchByTitleRequest ========================== | 188 //============================ SearchByTitleRequest ========================== |
185 | 189 |
186 SearchByTitleRequest::SearchByTitleRequest( | 190 SearchByTitleRequest::SearchByTitleRequest( |
187 RequestSender* sender, | 191 RequestSender* sender, |
188 const GDataWapiUrlGenerator& url_generator, | 192 const GDataWapiUrlGenerator& url_generator, |
189 const std::string& title, | 193 const std::string& title, |
190 const std::string& directory_resource_id, | 194 const std::string& directory_resource_id, |
191 const GetResourceListCallback& callback) | 195 const GetResourceListCallback& callback) |
192 : GetDataRequest(sender, | 196 : GetDataRequest( |
193 base::Bind(&ParseResourceListAndRun, callback)), | 197 sender, |
| 198 base::Bind(&ParseResourceListAndRun, |
| 199 make_scoped_refptr(sender->blocking_task_runner()), |
| 200 callback)), |
194 url_generator_(url_generator), | 201 url_generator_(url_generator), |
195 title_(title), | 202 title_(title), |
196 directory_resource_id_(directory_resource_id) { | 203 directory_resource_id_(directory_resource_id) { |
197 DCHECK(!callback.is_null()); | 204 DCHECK(!callback.is_null()); |
198 } | 205 } |
199 | 206 |
200 SearchByTitleRequest::~SearchByTitleRequest() {} | 207 SearchByTitleRequest::~SearchByTitleRequest() {} |
201 | 208 |
202 GURL SearchByTitleRequest::GetURL() const { | 209 GURL SearchByTitleRequest::GetURL() const { |
203 return url_generator_.GenerateSearchByTitleUrl( | 210 return url_generator_.GenerateSearchByTitleUrl( |
(...skipping 520 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
724 get_content_callback, | 731 get_content_callback, |
725 progress_callback, | 732 progress_callback, |
726 url_generator.GenerateDownloadFileUrl(resource_id), | 733 url_generator.GenerateDownloadFileUrl(resource_id), |
727 output_file_path) { | 734 output_file_path) { |
728 } | 735 } |
729 | 736 |
730 DownloadFileRequest::~DownloadFileRequest() { | 737 DownloadFileRequest::~DownloadFileRequest() { |
731 } | 738 } |
732 | 739 |
733 } // namespace google_apis | 740 } // namespace google_apis |
OLD | NEW |