diff options
author | jeremy@chromium.org <jeremy@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-05-29 20:44:32 +0000 |
---|---|---|
committer | jeremy@chromium.org <jeremy@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-05-29 20:44:32 +0000 |
commit | 27c521a7610b9e49d1de4895f54813131b452ebc (patch) | |
tree | f65c605aafe47ed7272406f1a62449973de4a933 /content/renderer/stats_collection_controller.h | |
parent | 97e47956aca7291f0861707ef4d1bc0c2940efd9 (diff) | |
download | chromium_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.h | 43 |
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_ |