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

Side by Side Diff: components/html_viewer/stats_collection_controller.cc

Issue 1455833005: Convert ConnectToApplication to take a params class (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: . Created 5 years, 1 month 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
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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/html_viewer/stats_collection_controller.h" 5 #include "components/html_viewer/stats_collection_controller.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/memory/scoped_ptr.h" 8 #include "base/memory/scoped_ptr.h"
9 #include "base/metrics/histogram.h" 9 #include "base/metrics/histogram.h"
10 #include "base/metrics/statistics_recorder.h" 10 #include "base/metrics/statistics_recorder.h"
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
72 } 72 }
73 73
74 v8::Isolate* isolate = blink::mainThreadIsolate(); 74 v8::Isolate* isolate = blink::mainThreadIsolate();
75 v8::HandleScope handle_scope(isolate); 75 v8::HandleScope handle_scope(isolate);
76 v8::Local<v8::Context> context = frame->mainWorldScriptContext(); 76 v8::Local<v8::Context> context = frame->mainWorldScriptContext();
77 if (context.IsEmpty()) 77 if (context.IsEmpty())
78 return nullptr; 78 return nullptr;
79 79
80 v8::Context::Scope context_scope(context); 80 v8::Context::Scope context_scope(context);
81 81
82 mojo::URLRequestPtr request(mojo::URLRequest::New());
83 request->url = mojo::String::From("mojo:tracing");
84 scoped_ptr<mojo::ApplicationConnection> connection = 82 scoped_ptr<mojo::ApplicationConnection> connection =
85 app->ConnectToApplication(request.Pass()); 83 app->ConnectToApplication("mojo:tracing");
86 if (!connection) 84 if (!connection)
87 return nullptr; 85 return nullptr;
88 tracing::StartupPerformanceDataCollectorPtr collector_for_controller; 86 tracing::StartupPerformanceDataCollectorPtr collector_for_controller;
89 tracing::StartupPerformanceDataCollectorPtr collector_for_caller; 87 tracing::StartupPerformanceDataCollectorPtr collector_for_caller;
90 connection->ConnectToService(&collector_for_controller); 88 connection->ConnectToService(&collector_for_controller);
91 connection->ConnectToService(&collector_for_caller); 89 connection->ConnectToService(&collector_for_caller);
92 90
93 gin::Handle<StatsCollectionController> controller = gin::CreateHandle( 91 gin::Handle<StatsCollectionController> controller = gin::CreateHandle(
94 isolate, new StatsCollectionController(collector_for_controller.Pass())); 92 isolate, new StatsCollectionController(collector_for_controller.Pass()));
95 DCHECK(!controller.IsEmpty()); 93 DCHECK(!controller.IsEmpty());
96 v8::Local<v8::Object> global = context->Global(); 94 v8::Local<v8::Object> global = context->Global();
97 global->Set(gin::StringToV8(isolate, "statsCollectionController"), 95 global->Set(gin::StringToV8(isolate, "statsCollectionController"),
98 controller.ToV8()); 96 controller.ToV8());
99 return collector_for_caller.Pass(); 97 return collector_for_caller.Pass();
100 } 98 }
101 99
102 // static 100 // static
103 tracing::StartupPerformanceDataCollectorPtr 101 tracing::StartupPerformanceDataCollectorPtr
104 StatsCollectionController::ConnectToDataCollector(mojo::ApplicationImpl* app) { 102 StatsCollectionController::ConnectToDataCollector(mojo::ApplicationImpl* app) {
105 // Only make startup tracing available when running in the context of a test. 103 // Only make startup tracing available when running in the context of a test.
106 if (!app || 104 if (!app ||
107 !base::CommandLine::ForCurrentProcess()->HasSwitch( 105 !base::CommandLine::ForCurrentProcess()->HasSwitch(
108 tracing::kEnableStatsCollectionBindings)) { 106 tracing::kEnableStatsCollectionBindings)) {
109 return nullptr; 107 return nullptr;
110 } 108 }
111 109
112 mojo::URLRequestPtr request(mojo::URLRequest::New());
113 request->url = mojo::String::From("mojo:tracing");
114 tracing::StartupPerformanceDataCollectorPtr collector; 110 tracing::StartupPerformanceDataCollectorPtr collector;
115 app->ConnectToService(request.Pass(), &collector); 111 app->ConnectToService("mojo:tracing", &collector);
116 return collector.Pass(); 112 return collector.Pass();
117 } 113 }
118 114
119 StatsCollectionController::StatsCollectionController( 115 StatsCollectionController::StatsCollectionController(
120 tracing::StartupPerformanceDataCollectorPtr collector) 116 tracing::StartupPerformanceDataCollectorPtr collector)
121 : startup_performance_data_collector_(collector.Pass()) {} 117 : startup_performance_data_collector_(collector.Pass()) {}
122 118
123 StatsCollectionController::~StatsCollectionController() {} 119 StatsCollectionController::~StatsCollectionController() {}
124 120
125 gin::ObjectTemplateBuilder StatsCollectionController::GetObjectTemplateBuilder( 121 gin::ObjectTemplateBuilder StatsCollectionController::GetObjectTemplateBuilder(
(...skipping 27 matching lines...) Expand all
153 histogram->WriteJSON(&histogram_json); 149 histogram->WriteJSON(&histogram_json);
154 return histogram_json; 150 return histogram_json;
155 } 151 }
156 152
157 std::string StatsCollectionController::GetBrowserHistogram( 153 std::string StatsCollectionController::GetBrowserHistogram(
158 const std::string& histogram_name) { 154 const std::string& histogram_name) {
159 return GetHistogram(histogram_name); 155 return GetHistogram(histogram_name);
160 } 156 }
161 157
162 } // namespace html_viewer 158 } // namespace html_viewer
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698