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

Unified 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, 6 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 side-by-side diff with in-line comments
Download patch
Index: components/domain_reliability/service.cc
diff --git a/components/domain_reliability/service.cc b/components/domain_reliability/service.cc
index eba9ddfaa81d31e7fe72c3b90c85ae6d1d873030..6e3517a489c1bcaa79563b9350ff0c6d229c729d 100644
--- a/components/domain_reliability/service.cc
+++ b/components/domain_reliability/service.cc
@@ -12,6 +12,24 @@
namespace domain_reliability {
+namespace {
+
+void GetWebUIDataOnNetworkTaskRunner(
+ base::WeakPtr<DomainReliabilityMonitor> monitor,
+ scoped_ptr<const base::Value>* data_out) {
+ if (monitor)
+ *data_out = monitor->GetWebUIData();
+}
+
+void CallGetWebUIDataCallbackAndDeleteDataPointer(
+ const base::Callback<void(scoped_ptr<const base::Value>)>& callback,
+ scoped_ptr<const base::Value>* data_in) {
+ callback.Run(data_in->Pass());
+ delete data_in;
+}
+
+} // namespace
+
class DomainReliabilityServiceImpl : public DomainReliabilityService {
public:
explicit DomainReliabilityServiceImpl(
@@ -47,6 +65,22 @@ class DomainReliabilityServiceImpl : public DomainReliabilityService {
callback);
}
+ virtual void GetWebUIData(
+ const base::Callback<void(scoped_ptr<const base::Value>)>& callback)
+ const OVERRIDE {
+ DCHECK(network_task_runner_);
+
+ scoped_ptr<const base::Value>* data =
+ new scoped_ptr<const base::Value>(new base::DictionaryValue());
+ 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:
+ base::Bind(&GetWebUIDataOnNetworkTaskRunner,
+ monitor_,
+ data),
+ base::Bind(&CallGetWebUIDataCallbackAndDeleteDataPointer,
+ callback,
+ data));
+ }
+
private:
std::string upload_reporter_string_;
base::WeakPtr<DomainReliabilityMonitor> monitor_;

Powered by Google App Engine
This is Rietveld 408576698