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

Unified Diff: components/html_viewer/stats_collection_controller.cc

Issue 1677293002: Bye bye Mandoline (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: moar Created 4 years, 10 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/html_viewer/stats_collection_controller.cc
diff --git a/components/html_viewer/stats_collection_controller.cc b/components/html_viewer/stats_collection_controller.cc
deleted file mode 100644
index 15710ec69029e6dbe077ea345e6a05c446250eb0..0000000000000000000000000000000000000000
--- a/components/html_viewer/stats_collection_controller.cc
+++ /dev/null
@@ -1,161 +0,0 @@
-// Copyright 2015 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "components/html_viewer/stats_collection_controller.h"
-
-#include <utility>
-
-#include "base/command_line.h"
-#include "base/memory/scoped_ptr.h"
-#include "base/metrics/histogram.h"
-#include "base/metrics/statistics_recorder.h"
-#include "base/time/time.h"
-#include "components/startup_metric_utils/browser/startup_metric_utils.h"
-#include "gin/handle.h"
-#include "gin/object_template_builder.h"
-#include "mojo/services/tracing/public/cpp/switches.h"
-#include "mojo/shell/public/cpp/shell.h"
-#include "third_party/WebKit/public/web/WebKit.h"
-#include "third_party/WebKit/public/web/WebLocalFrame.h"
-
-namespace html_viewer {
-
-namespace {
-
-// Initialize the histogram data using the given startup performance times.
-void GetStartupPerformanceTimesCallbackImpl(
- tracing::StartupPerformanceTimesPtr times) {
- base::StatisticsRecorder::Initialize();
-
- startup_metric_utils::RecordStartupProcessCreationTime(
- base::Time::FromInternalValue(times->shell_process_creation_time));
-
- // TODO(msw): Record the MojoMain() entry point time of mojo:browser instead?
- startup_metric_utils::RecordMainEntryPointTime(
- base::Time::FromInternalValue(times->shell_main_entry_point_time));
-
- // TODO(msw): Determine if this is the first run and provide a PrefService
- // to generate stats that span multiple startups.
- startup_metric_utils::RecordBrowserMainMessageLoopStart(
- base::TimeTicks::FromInternalValue(
- times->browser_message_loop_start_ticks),
- false, nullptr);
-
- startup_metric_utils::RecordBrowserWindowDisplay(
- base::TimeTicks::FromInternalValue(times->browser_window_display_ticks));
-
- startup_metric_utils::RecordBrowserOpenTabsDelta(
- base::TimeDelta::FromInternalValue(times->browser_open_tabs_time_delta));
-
- startup_metric_utils::RecordFirstWebContentsMainFrameLoad(
- base::TimeTicks::FromInternalValue(
- times->first_web_contents_main_frame_load_ticks));
-
- startup_metric_utils::RecordFirstWebContentsNonEmptyPaint(
- base::TimeTicks::FromInternalValue(
- times->first_visually_non_empty_layout_ticks));
-}
-
-} // namespace
-
-// static
-gin::WrapperInfo StatsCollectionController::kWrapperInfo = {
- gin::kEmbedderNativeGin};
-
-// static
-tracing::StartupPerformanceDataCollectorPtr StatsCollectionController::Install(
- blink::WebFrame* frame,
- mojo::Shell* shell) {
- // Only make startup tracing available when running in the context of a test.
- if (!shell ||
- !base::CommandLine::ForCurrentProcess()->HasSwitch(
- tracing::kEnableStatsCollectionBindings)) {
- return nullptr;
- }
-
- v8::Isolate* isolate = blink::mainThreadIsolate();
- v8::HandleScope handle_scope(isolate);
- v8::Local<v8::Context> context = frame->mainWorldScriptContext();
- if (context.IsEmpty())
- return nullptr;
-
- v8::Context::Scope context_scope(context);
-
- scoped_ptr<mojo::Connection> connection = shell->Connect("mojo:tracing");
- if (!connection)
- return nullptr;
- tracing::StartupPerformanceDataCollectorPtr collector_for_controller;
- tracing::StartupPerformanceDataCollectorPtr collector_for_caller;
- connection->ConnectToService(&collector_for_controller);
- connection->ConnectToService(&collector_for_caller);
-
- gin::Handle<StatsCollectionController> controller = gin::CreateHandle(
- isolate,
- new StatsCollectionController(std::move(collector_for_controller)));
- DCHECK(!controller.IsEmpty());
- v8::Local<v8::Object> global = context->Global();
- global->Set(gin::StringToV8(isolate, "statsCollectionController"),
- controller.ToV8());
- return collector_for_caller;
-}
-
-// static
-tracing::StartupPerformanceDataCollectorPtr
-StatsCollectionController::ConnectToDataCollector(mojo::Shell* shell) {
- // Only make startup tracing available when running in the context of a test.
- if (!shell ||
- !base::CommandLine::ForCurrentProcess()->HasSwitch(
- tracing::kEnableStatsCollectionBindings)) {
- return nullptr;
- }
-
- tracing::StartupPerformanceDataCollectorPtr collector;
- shell->ConnectToService("mojo:tracing", &collector);
- return collector;
-}
-
-StatsCollectionController::StatsCollectionController(
- tracing::StartupPerformanceDataCollectorPtr collector)
- : startup_performance_data_collector_(std::move(collector)) {}
-
-StatsCollectionController::~StatsCollectionController() {}
-
-gin::ObjectTemplateBuilder StatsCollectionController::GetObjectTemplateBuilder(
- v8::Isolate* isolate) {
- return gin::Wrappable<StatsCollectionController>::GetObjectTemplateBuilder(
- isolate)
- .SetMethod("getHistogram", &StatsCollectionController::GetHistogram)
- .SetMethod("getBrowserHistogram",
- &StatsCollectionController::GetBrowserHistogram);
-}
-
-std::string StatsCollectionController::GetHistogram(
- const std::string& histogram_name) {
- DCHECK(base::CommandLine::ForCurrentProcess()->HasSwitch(
- tracing::kEnableStatsCollectionBindings));
-
- static bool startup_histogram_initialized = false;
- if (!startup_histogram_initialized) {
- // Get the startup performance times from the tracing service.
- auto callback = base::Bind(&GetStartupPerformanceTimesCallbackImpl);
- startup_performance_data_collector_->GetStartupPerformanceTimes(callback);
- startup_performance_data_collector_.WaitForIncomingResponse();
- DCHECK(base::StatisticsRecorder::IsActive());
- startup_histogram_initialized = true;
- }
-
- std::string histogram_json = "{}";
- base::HistogramBase* histogram =
- base::StatisticsRecorder::FindHistogram(histogram_name);
- if (histogram)
- histogram->WriteJSON(&histogram_json);
- return histogram_json;
-}
-
-std::string StatsCollectionController::GetBrowserHistogram(
- const std::string& histogram_name) {
- return GetHistogram(histogram_name);
-}
-
-} // namespace html_viewer
« no previous file with comments | « components/html_viewer/stats_collection_controller.h ('k') | components/html_viewer/test_blink_platform_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698