| 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 <unordered_map> | 7 #include <unordered_map> |
| 8 #include <utility> | 8 #include <utility> |
| 9 | 9 |
| 10 #include "base/bind_helpers.h" | 10 #include "base/bind_helpers.h" |
| (...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 101 resolve_delegate_(this), | 101 resolve_delegate_(this), |
| 102 query_available_delegate_(this), | 102 query_available_delegate_(this), |
| 103 weak_factory_(this) { | 103 weak_factory_(this) { |
| 104 CHECK_GT(options_.max_ppd_contents_size_, 0U); | 104 CHECK_GT(options_.max_ppd_contents_size_, 0U); |
| 105 } | 105 } |
| 106 ~PpdProviderImpl() override {} | 106 ~PpdProviderImpl() override {} |
| 107 | 107 |
| 108 void Resolve(const Printer::PpdReference& ppd_reference, | 108 void Resolve(const Printer::PpdReference& ppd_reference, |
| 109 const PpdProvider::ResolveCallback& cb) override { | 109 const PpdProvider::ResolveCallback& cb) override { |
| 110 CHECK(!cb.is_null()); | 110 CHECK(!cb.is_null()); |
| 111 CHECK(base::SequencedTaskRunnerHandle::IsSet()) | 111 CHECK(base::SequencedTaskRunnerHandle::IsSet()); |
| 112 << "Resolve must be called from a SequencedTaskRunner context"; | |
| 113 auto cache_result = base::MakeUnique<base::Optional<base::FilePath>>(); | 112 auto cache_result = base::MakeUnique<base::Optional<base::FilePath>>(); |
| 114 auto* raw_cache_result_ptr = cache_result.get(); | 113 auto* raw_cache_result_ptr = cache_result.get(); |
| 115 bool post_result = io_task_runner_->PostTaskAndReply( | 114 bool post_result = io_task_runner_->PostTaskAndReply( |
| 116 FROM_HERE, base::Bind(&PpdProviderImpl::ResolveDoCacheLookup, | 115 FROM_HERE, base::Bind(&PpdProviderImpl::ResolveDoCacheLookup, |
| 117 weak_factory_.GetWeakPtr(), ppd_reference, | 116 weak_factory_.GetWeakPtr(), ppd_reference, |
| 118 raw_cache_result_ptr), | 117 raw_cache_result_ptr), |
| 119 base::Bind(&PpdProviderImpl::ResolveCacheLookupDone, | 118 base::Bind(&PpdProviderImpl::ResolveCacheLookupDone, |
| 120 weak_factory_.GetWeakPtr(), ppd_reference, cb, | 119 weak_factory_.GetWeakPtr(), ppd_reference, cb, |
| 121 base::Passed(&cache_result))); | 120 base::Passed(&cache_result))); |
| 122 DCHECK(post_result); | 121 DCHECK(post_result); |
| 123 } | 122 } |
| 124 | 123 |
| 125 void QueryAvailable(const QueryAvailableCallback& cb) override { | 124 void QueryAvailable(const QueryAvailableCallback& cb) override { |
| 126 CHECK(!cb.is_null()); | 125 CHECK(!cb.is_null()); |
| 127 CHECK(base::SequencedTaskRunnerHandle::IsSet()) | 126 CHECK(base::SequencedTaskRunnerHandle::IsSet()); |
| 128 << "QueryAvailable() must be called from a SequencedTaskRunner context"; | |
| 129 auto cache_result = | 127 auto cache_result = |
| 130 base::MakeUnique<base::Optional<PpdProvider::AvailablePrintersMap>>(); | 128 base::MakeUnique<base::Optional<PpdProvider::AvailablePrintersMap>>(); |
| 131 auto* raw_cache_result_ptr = cache_result.get(); | 129 auto* raw_cache_result_ptr = cache_result.get(); |
| 132 bool post_result = io_task_runner_->PostTaskAndReply( | 130 bool post_result = io_task_runner_->PostTaskAndReply( |
| 133 FROM_HERE, base::Bind(&PpdProviderImpl::QueryAvailableDoCacheLookup, | 131 FROM_HERE, base::Bind(&PpdProviderImpl::QueryAvailableDoCacheLookup, |
| 134 weak_factory_.GetWeakPtr(), raw_cache_result_ptr), | 132 weak_factory_.GetWeakPtr(), raw_cache_result_ptr), |
| 135 base::Bind(&PpdProviderImpl::QueryAvailableCacheLookupDone, | 133 base::Bind(&PpdProviderImpl::QueryAvailableCacheLookupDone, |
| 136 weak_factory_.GetWeakPtr(), cb, | 134 weak_factory_.GetWeakPtr(), cb, |
| 137 base::Passed(&cache_result))); | 135 base::Passed(&cache_result))); |
| 138 DCHECK(post_result); | 136 DCHECK(post_result); |
| (...skipping 324 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 463 scoped_refptr<net::URLRequestContextGetter> url_context_getter, | 461 scoped_refptr<net::URLRequestContextGetter> url_context_getter, |
| 464 scoped_refptr<base::SequencedTaskRunner> io_task_runner, | 462 scoped_refptr<base::SequencedTaskRunner> io_task_runner, |
| 465 std::unique_ptr<PpdCache> cache, | 463 std::unique_ptr<PpdCache> cache, |
| 466 const PpdProvider::Options& options) { | 464 const PpdProvider::Options& options) { |
| 467 return base::MakeUnique<PpdProviderImpl>( | 465 return base::MakeUnique<PpdProviderImpl>( |
| 468 api_key, url_context_getter, io_task_runner, std::move(cache), options); | 466 api_key, url_context_getter, io_task_runner, std::move(cache), options); |
| 469 } | 467 } |
| 470 | 468 |
| 471 } // namespace printing | 469 } // namespace printing |
| 472 } // namespace chromeos | 470 } // namespace chromeos |
| OLD | NEW |