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

Side by Side Diff: components/domain_reliability/service.cc

Issue 357103002: Domain Reliability: Add rudimentary WebUI page. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 5 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 | Annotate | Revision Log
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/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/single_thread_task_runner.h" 9 #include "base/single_thread_task_runner.h"
10 #include "components/domain_reliability/monitor.h" 10 #include "components/domain_reliability/monitor.h"
11 #include "net/url_request/url_request_context_getter.h" 11 #include "net/url_request/url_request_context_getter.h"
12 12
13 namespace domain_reliability { 13 namespace domain_reliability {
14 14
15 namespace {
16
17 void GetWebUIDataOnNetworkTaskRunner(
18 base::WeakPtr<DomainReliabilityMonitor> monitor,
19 scoped_ptr<const base::Value>* data_out) {
20 if (monitor)
21 *data_out = monitor->GetWebUIData();
22 }
23
24 void CallGetWebUIDataCallbackAndDeleteDataPointer(
25 const base::Callback<void(scoped_ptr<const base::Value>)>& callback,
26 scoped_ptr<const base::Value>* data_in) {
27 callback.Run(data_in->Pass());
28 delete data_in;
29 }
30
31 } // namespace
32
15 class DomainReliabilityServiceImpl : public DomainReliabilityService { 33 class DomainReliabilityServiceImpl : public DomainReliabilityService {
16 public: 34 public:
17 explicit DomainReliabilityServiceImpl( 35 explicit DomainReliabilityServiceImpl(
18 const std::string& upload_reporter_string) 36 const std::string& upload_reporter_string)
19 : upload_reporter_string_(upload_reporter_string) {} 37 : upload_reporter_string_(upload_reporter_string) {}
20 38
21 virtual ~DomainReliabilityServiceImpl() {} 39 virtual ~DomainReliabilityServiceImpl() {}
22 40
23 // DomainReliabilityService implementation: 41 // DomainReliabilityService implementation:
24 42
(...skipping 15 matching lines...) Expand all
40 DCHECK(network_task_runner_); 58 DCHECK(network_task_runner_);
41 59
42 network_task_runner_->PostTaskAndReply( 60 network_task_runner_->PostTaskAndReply(
43 FROM_HERE, 61 FROM_HERE,
44 base::Bind(&DomainReliabilityMonitor::ClearBrowsingData, 62 base::Bind(&DomainReliabilityMonitor::ClearBrowsingData,
45 monitor_, 63 monitor_,
46 clear_mode), 64 clear_mode),
47 callback); 65 callback);
48 } 66 }
49 67
68 virtual void GetWebUIData(
69 const base::Callback<void(scoped_ptr<const base::Value>)>& callback)
70 const OVERRIDE {
71 DCHECK(network_task_runner_);
72
73 scoped_ptr<const base::Value>* data =
74 new scoped_ptr<const base::Value>(new base::DictionaryValue());
75 network_task_runner_->PostTaskAndReply(FROM_HERE,
Bernhard Bauer 2014/06/28 11:16:35 I think you can do this with base::PostTaskAndRepl
Deprecated (see juliatuttle) 2014/06/30 16:58:21 Nah, I can't; it won't let me bind a weak pointer
Bernhard Bauer 2014/06/30 17:26:54 :-( Could you write a wrapper function like this:
76 base::Bind(&GetWebUIDataOnNetworkTaskRunner,
77 monitor_,
78 data),
79 base::Bind(&CallGetWebUIDataCallbackAndDeleteDataPointer,
80 callback,
81 data));
82 }
83
50 private: 84 private:
51 std::string upload_reporter_string_; 85 std::string upload_reporter_string_;
52 base::WeakPtr<DomainReliabilityMonitor> monitor_; 86 base::WeakPtr<DomainReliabilityMonitor> monitor_;
53 scoped_refptr<base::SequencedTaskRunner> network_task_runner_; 87 scoped_refptr<base::SequencedTaskRunner> network_task_runner_;
54 }; 88 };
55 89
56 // static 90 // static
57 DomainReliabilityService* DomainReliabilityService::Create( 91 DomainReliabilityService* DomainReliabilityService::Create(
58 const std::string& upload_reporter_string) { 92 const std::string& upload_reporter_string) {
59 return new DomainReliabilityServiceImpl(upload_reporter_string); 93 return new DomainReliabilityServiceImpl(upload_reporter_string);
60 } 94 }
61 95
62 DomainReliabilityService::~DomainReliabilityService() {} 96 DomainReliabilityService::~DomainReliabilityService() {}
63 97
64 DomainReliabilityService::DomainReliabilityService() {} 98 DomainReliabilityService::DomainReliabilityService() {}
65 99
66 } // namespace domain_reliability 100 } // namespace domain_reliability
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698