OLD | NEW |
---|---|
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 "chromeos/printing/ppd_provider.h" | 5 #include "chromeos/printing/ppd_provider.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <deque> | 8 #include <deque> |
9 #include <set> | 9 #include <set> |
10 #include <unordered_map> | 10 #include <unordered_map> |
11 #include <utility> | 11 #include <utility> |
12 #include <vector> | 12 #include <vector> |
13 | 13 |
14 #include "base/base64.h" | 14 #include "base/base64.h" |
15 #include "base/bind_helpers.h" | 15 #include "base/bind_helpers.h" |
16 #include "base/files/file.h" | 16 #include "base/files/file.h" |
17 #include "base/files/file_util.h" | 17 #include "base/files/file_util.h" |
18 #include "base/json/json_parser.h" | 18 #include "base/json/json_parser.h" |
19 #include "base/memory/ptr_util.h" | 19 #include "base/memory/ptr_util.h" |
20 #include "base/sequenced_task_runner.h" | |
20 #include "base/strings/string_number_conversions.h" | 21 #include "base/strings/string_number_conversions.h" |
21 #include "base/strings/string_split.h" | 22 #include "base/strings/string_split.h" |
22 #include "base/strings/string_tokenizer.h" | 23 #include "base/strings/string_tokenizer.h" |
23 #include "base/strings/string_util.h" | 24 #include "base/strings/string_util.h" |
24 #include "base/strings/stringprintf.h" | 25 #include "base/strings/stringprintf.h" |
25 #include "base/synchronization/lock.h" | 26 #include "base/synchronization/lock.h" |
26 #include "base/task_runner_util.h" | 27 #include "base/task_runner_util.h" |
28 #include "base/task_scheduler/post_task.h" | |
27 #include "base/threading/sequenced_task_runner_handle.h" | 29 #include "base/threading/sequenced_task_runner_handle.h" |
28 #include "base/threading/thread_restrictions.h" | 30 #include "base/threading/thread_restrictions.h" |
29 #include "base/time/time.h" | 31 #include "base/time/time.h" |
30 #include "base/values.h" | 32 #include "base/values.h" |
31 #include "chromeos/printing/ppd_cache.h" | 33 #include "chromeos/printing/ppd_cache.h" |
32 #include "chromeos/printing/printing_constants.h" | 34 #include "chromeos/printing/printing_constants.h" |
33 #include "net/base/load_flags.h" | 35 #include "net/base/load_flags.h" |
34 #include "net/http/http_status_code.h" | 36 #include "net/http/http_status_code.h" |
35 #include "net/url_request/url_fetcher.h" | 37 #include "net/url_request/url_fetcher.h" |
36 #include "net/url_request/url_fetcher_delegate.h" | 38 #include "net/url_request/url_fetcher_delegate.h" |
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
194 FT_PRINTERS, // List of printers from a manufacturer. | 196 FT_PRINTERS, // List of printers from a manufacturer. |
195 FT_PPD_INDEX, // Master ppd index. | 197 FT_PPD_INDEX, // Master ppd index. |
196 FT_PPD, // A Ppd file. | 198 FT_PPD, // A Ppd file. |
197 FT_USB_DEVICES // USB device id to canonical name map. | 199 FT_USB_DEVICES // USB device id to canonical name map. |
198 }; | 200 }; |
199 | 201 |
200 PpdProviderImpl( | 202 PpdProviderImpl( |
201 const std::string& browser_locale, | 203 const std::string& browser_locale, |
202 scoped_refptr<net::URLRequestContextGetter> url_context_getter, | 204 scoped_refptr<net::URLRequestContextGetter> url_context_getter, |
203 scoped_refptr<PpdCache> ppd_cache, | 205 scoped_refptr<PpdCache> ppd_cache, |
204 scoped_refptr<base::SequencedTaskRunner> disk_task_runner, | |
205 const PpdProvider::Options& options) | 206 const PpdProvider::Options& options) |
206 : browser_locale_(browser_locale), | 207 : browser_locale_(browser_locale), |
207 url_context_getter_(url_context_getter), | 208 url_context_getter_(url_context_getter), |
208 ppd_cache_(ppd_cache), | 209 ppd_cache_(ppd_cache), |
209 disk_task_runner_(disk_task_runner), | 210 disk_task_runner_(base::CreateSequencedTaskRunnerWithTraits( |
211 {base::TaskPriority::USER_BLOCKING, | |
gab
2017/06/19 15:13:22
Are you sure this is USER_BLOCKING? It was previou
skau
2017/06/19 23:31:08
No. This should have been USER_VISIBLE. It is no
| |
212 base::TaskShutdownBehavior::SKIP_ON_SHUTDOWN})), | |
210 options_(options), | 213 options_(options), |
211 weak_factory_(this) {} | 214 weak_factory_(this) {} |
212 | 215 |
213 // Resolving manufacturers requires a couple of steps, because of | 216 // Resolving manufacturers requires a couple of steps, because of |
214 // localization. First we have to figure out what locale to use, which | 217 // localization. First we have to figure out what locale to use, which |
215 // involves grabbing a list of available locales from the server. Once we | 218 // involves grabbing a list of available locales from the server. Once we |
216 // have decided on a locale, we go out and fetch the manufacturers map in that | 219 // have decided on a locale, we go out and fetch the manufacturers map in that |
217 // localization. | 220 // localization. |
218 // | 221 // |
219 // This means when a request comes in, we either queue it and start background | 222 // This means when a request comes in, we either queue it and start background |
(...skipping 774 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
994 ~PpdProviderImpl() override {} | 997 ~PpdProviderImpl() override {} |
995 }; | 998 }; |
996 | 999 |
997 } // namespace | 1000 } // namespace |
998 | 1001 |
999 // static | 1002 // static |
1000 scoped_refptr<PpdProvider> PpdProvider::Create( | 1003 scoped_refptr<PpdProvider> PpdProvider::Create( |
1001 const std::string& browser_locale, | 1004 const std::string& browser_locale, |
1002 scoped_refptr<net::URLRequestContextGetter> url_context_getter, | 1005 scoped_refptr<net::URLRequestContextGetter> url_context_getter, |
1003 scoped_refptr<PpdCache> ppd_cache, | 1006 scoped_refptr<PpdCache> ppd_cache, |
1004 scoped_refptr<base::SequencedTaskRunner> disk_task_runner, | |
1005 const PpdProvider::Options& options) { | 1007 const PpdProvider::Options& options) { |
1006 return scoped_refptr<PpdProvider>( | 1008 return scoped_refptr<PpdProvider>(new PpdProviderImpl( |
1007 new PpdProviderImpl(browser_locale, url_context_getter, ppd_cache, | 1009 browser_locale, url_context_getter, ppd_cache, options)); |
1008 disk_task_runner, options)); | |
1009 } | 1010 } |
1010 } // namespace printing | 1011 } // namespace printing |
1011 } // namespace chromeos | 1012 } // namespace chromeos |
OLD | NEW |