OLD | NEW |
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/domain_reliability/service.h" | 5 #include "components/domain_reliability/service.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/callback.h" | 8 #include "base/callback.h" |
9 #include "base/location.h" | 9 #include "base/location.h" |
10 #include "base/single_thread_task_runner.h" | 10 #include "base/single_thread_task_runner.h" |
11 #include "base/task_runner_util.h" | 11 #include "base/task_runner_util.h" |
12 #include "base/threading/thread_task_runner_handle.h" | 12 #include "base/threading/thread_task_runner_handle.h" |
13 #include "components/domain_reliability/monitor.h" | 13 #include "components/domain_reliability/monitor.h" |
14 #include "net/url_request/url_request_context_getter.h" | 14 #include "net/url_request/url_request_context_getter.h" |
15 #include "url/gurl.h" | 15 #include "url/gurl.h" |
16 | 16 |
17 namespace domain_reliability { | 17 namespace domain_reliability { |
18 | 18 |
19 namespace { | 19 namespace { |
20 | 20 |
| 21 void AddContextForTestingOnNetworkTaskRunner( |
| 22 base::WeakPtr<DomainReliabilityMonitor> monitor, |
| 23 std::unique_ptr<const DomainReliabilityConfig> config) { |
| 24 if (!monitor) |
| 25 return; |
| 26 |
| 27 monitor->AddContextForTesting(std::move(config)); |
| 28 } |
| 29 |
21 std::unique_ptr<base::Value> GetWebUIDataOnNetworkTaskRunner( | 30 std::unique_ptr<base::Value> GetWebUIDataOnNetworkTaskRunner( |
22 base::WeakPtr<DomainReliabilityMonitor> monitor) { | 31 base::WeakPtr<DomainReliabilityMonitor> monitor) { |
23 if (!monitor) { | 32 if (!monitor) { |
24 base::DictionaryValue* dict = new base::DictionaryValue(); | 33 base::DictionaryValue* dict = new base::DictionaryValue(); |
25 dict->SetString("error", "no_monitor"); | 34 dict->SetString("error", "no_monitor"); |
26 return std::unique_ptr<base::Value>(dict); | 35 return std::unique_ptr<base::Value>(dict); |
27 } | 36 } |
28 | 37 |
29 return monitor->GetWebUIData(); | 38 return monitor->GetWebUIData(); |
30 } | 39 } |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
76 callback) const override { | 85 callback) const override { |
77 DCHECK(network_task_runner_.get()); | 86 DCHECK(network_task_runner_.get()); |
78 | 87 |
79 PostTaskAndReplyWithResult( | 88 PostTaskAndReplyWithResult( |
80 network_task_runner_.get(), | 89 network_task_runner_.get(), |
81 FROM_HERE, | 90 FROM_HERE, |
82 base::Bind(&GetWebUIDataOnNetworkTaskRunner, monitor_), | 91 base::Bind(&GetWebUIDataOnNetworkTaskRunner, monitor_), |
83 callback); | 92 callback); |
84 } | 93 } |
85 | 94 |
| 95 void SetDiscardUploadsForTesting(bool discard_uploads) override { |
| 96 DCHECK(network_task_runner_.get()); |
| 97 |
| 98 network_task_runner_->PostTask( |
| 99 FROM_HERE, |
| 100 base::Bind(&DomainReliabilityMonitor::SetDiscardUploads, |
| 101 monitor_, |
| 102 discard_uploads)); |
| 103 } |
| 104 |
| 105 void AddContextForTesting( |
| 106 std::unique_ptr<const DomainReliabilityConfig> config) override { |
| 107 DCHECK(network_task_runner_.get()); |
| 108 |
| 109 network_task_runner_->PostTask( |
| 110 FROM_HERE, |
| 111 base::Bind(&AddContextForTestingOnNetworkTaskRunner, |
| 112 monitor_, |
| 113 base::Passed(&config))); |
| 114 } |
| 115 |
| 116 void ForceUploadsForTesting() override { |
| 117 DCHECK(network_task_runner_.get()); |
| 118 |
| 119 network_task_runner_->PostTask( |
| 120 FROM_HERE, |
| 121 base::Bind(&DomainReliabilityMonitor::ForceUploadsForTesting, |
| 122 monitor_)); |
| 123 } |
| 124 |
86 private: | 125 private: |
87 std::string upload_reporter_string_; | 126 std::string upload_reporter_string_; |
88 base::WeakPtr<DomainReliabilityMonitor> monitor_; | 127 base::WeakPtr<DomainReliabilityMonitor> monitor_; |
89 scoped_refptr<base::SingleThreadTaskRunner> network_task_runner_; | 128 scoped_refptr<base::SingleThreadTaskRunner> network_task_runner_; |
90 }; | 129 }; |
91 | 130 |
92 // static | 131 // static |
93 DomainReliabilityService* DomainReliabilityService::Create( | 132 DomainReliabilityService* DomainReliabilityService::Create( |
94 const std::string& upload_reporter_string) { | 133 const std::string& upload_reporter_string) { |
95 return new DomainReliabilityServiceImpl(upload_reporter_string); | 134 return new DomainReliabilityServiceImpl(upload_reporter_string); |
96 } | 135 } |
97 | 136 |
98 DomainReliabilityService::~DomainReliabilityService() {} | 137 DomainReliabilityService::~DomainReliabilityService() {} |
99 | 138 |
100 DomainReliabilityService::DomainReliabilityService() {} | 139 DomainReliabilityService::DomainReliabilityService() {} |
101 | 140 |
102 } // namespace domain_reliability | 141 } // namespace domain_reliability |
OLD | NEW |