summaryrefslogtreecommitdiffstats
path: root/content/renderer/stats_collection_controller.h
diff options
context:
space:
mode:
authorjeremy@chromium.org <jeremy@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-05-29 20:44:32 +0000
committerjeremy@chromium.org <jeremy@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-05-29 20:44:32 +0000
commit27c521a7610b9e49d1de4895f54813131b452ebc (patch)
treef65c605aafe47ed7272406f1a62449973de4a933 /content/renderer/stats_collection_controller.h
parent97e47956aca7291f0861707ef4d1bc0c2940efd9 (diff)
downloadchromium_src-27c521a7610b9e49d1de4895f54813131b452ebc.zip
chromium_src-27c521a7610b9e49d1de4895f54813131b452ebc.tar.gz
chromium_src-27c521a7610b9e49d1de4895f54813131b452ebc.tar.bz2
Collect tab timing information for use in telementry-based startup tests
Motivation: Data collection exposed in this CL is needed by upcoming startup tests we're writing using Telemtry. Expose a new window.statsCollectionController object to JS and move existing histogram reading code into it since that seemed misplaced in DOMAutomationController. Add a new --enable-stats-collection-bindings to activate said object. Example usage in telemtry: with browser.Create() as b: b.tabs[0].Navigate("http://www.google.com") b.tabs[0].WaitForDocumentReadyStateToBeComplete() print b.tabs[0].EvaluateJavaScript('statsCollectionController.tabLoadTiming()') BUG=None Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=202620 Review URL: https://chromiumcodereview.appspot.com/12389073 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@202955 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/renderer/stats_collection_controller.h')
-rw-r--r--content/renderer/stats_collection_controller.h43
1 files changed, 43 insertions, 0 deletions
diff --git a/content/renderer/stats_collection_controller.h b/content/renderer/stats_collection_controller.h
new file mode 100644
index 0000000..eb1ccb0
--- /dev/null
+++ b/content/renderer/stats_collection_controller.h
@@ -0,0 +1,43 @@
+// Copyright 2013 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.
+
+#ifndef CONTENT_RENDERER_STATS_COLLECTION_CONTROLLER_H_
+#define CONTENT_RENDERER_STATS_COLLECTION_CONTROLLER_H_
+
+#include "ipc/ipc_sender.h"
+#include "webkit/glue/cpp_bound_class.h"
+
+namespace content {
+
+// This class is exposed in JS as window.statsCollectionController and provides
+// functionality to read out statistics from the browser.
+// Its use must be enabled specifically via the
+// --enable-stats-collection-bindings command line flag.
+class StatsCollectionController : public webkit_glue::CppBoundClass {
+ public:
+ StatsCollectionController();
+
+ void set_message_sender(IPC::Sender* sender) {
+ sender_ = sender;
+ }
+
+ // Retrieves a histogram and returns a JSON representation of it.
+ void GetHistogram(const webkit_glue::CppArgumentList& args,
+ webkit_glue::CppVariant* result);
+
+ // Retrieves a histogram from the browser process and returns a JSON
+ // representation of it.
+ void GetBrowserHistogram(const webkit_glue::CppArgumentList& args,
+ webkit_glue::CppVariant* result);
+
+ // Returns JSON representation of tab timing information for the current tab.
+ void GetTabLoadTiming(const webkit_glue::CppArgumentList& args,
+ webkit_glue::CppVariant* result);
+ private:
+ IPC::Sender* sender_;
+};
+
+} // namespace content
+
+#endif // CONTENT_RENDERER_STATS_COLLECTION_CONTROLLER_H_