1 // Copyright 2013 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef CONTENT_RENDERER_STATS_COLLECTION_CONTROLLER_H_ 6 #define CONTENT_RENDERER_STATS_COLLECTION_CONTROLLER_H_ 7 8 #include "base/basictypes.h" 9 #include "gin/wrappable.h" 10 11 namespace blink { 12 class WebFrame; 13 } 14 15 namespace content { 16 17 // This class is exposed in JS as window.statsCollectionController and provides 18 // functionality to read out statistics from the browser. 19 // Its use must be enabled specifically via the 20 // --enable-stats-collection-bindings command line flag. 21 class StatsCollectionController 22 : public gin::Wrappable<StatsCollectionController> { 23 public: 24 static gin::WrapperInfo kWrapperInfo; 25 26 static void Install(blink::WebFrame* frame); 27 28 private: 29 StatsCollectionController(); 30 virtual ~StatsCollectionController(); 31 32 // gin::WrappableBase 33 virtual gin::ObjectTemplateBuilder GetObjectTemplateBuilder( 34 v8::Isolate* isolate) OVERRIDE; 35 36 // Retrieves a histogram and returns a JSON representation of it. 37 std::string GetHistogram(const std::string& histogram_name); 38 39 // Retrieves a histogram from the browser process and returns a JSON 40 // representation of it. 41 std::string GetBrowserHistogram(const std::string& histogram_name); 42 43 // Returns JSON representation of tab timing information for the current tab. 44 std::string GetTabLoadTiming(); 45 46 DISALLOW_COPY_AND_ASSIGN(StatsCollectionController); 47 }; 48 49 } // namespace content 50 51 #endif // CONTENT_RENDERER_STATS_COLLECTION_CONTROLLER_H_ 52