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

Unified Diff: content/renderer/render_thread_impl.h

Issue 10828342: Per-host V8 histograms. (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: lame fix attempt for V8ValueConverterImplTest.BasicRoundTrip Created 8 years, 4 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
« no previous file with comments | « content/content_tests.gypi ('k') | content/renderer/render_thread_impl.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/renderer/render_thread_impl.h
diff --git a/content/renderer/render_thread_impl.h b/content/renderer/render_thread_impl.h
index d39fb9e9e0c38360c1ae8a01df9460a88cd8bc3f..083722cad045cbdbb1e6765574c5b822a48c2fae 100644
--- a/content/renderer/render_thread_impl.h
+++ b/content/renderer/render_thread_impl.h
@@ -238,6 +238,52 @@ class CONTENT_EXPORT RenderThreadImpl : public content::RenderThread,
// first call.
content::AudioRendererMixerManager* GetAudioRendererMixerManager();
+ // For producing custom V8 histograms. Custom histograms are produced if all
+ // RenderViews share the same host, and the host is in the pre-specified set
+ // of hosts we want to produce custom diagrams for. The name for a custom
+ // diagram is the name of the corresponding generic diagram plus a
+ // host-specific suffix.
+ class CONTENT_EXPORT HistogramCustomizer {
+ public:
+ HistogramCustomizer();
+ ~HistogramCustomizer();
+
+ // Called when a top frame of a RenderView navigates. This function updates
+ // RenderThreadImpl's information about whether all RenderViews are
+ // displaying a page from the same host. |host| is the host where a
+ // RenderView navigated, and |view_count| is the number of RenderViews in
+ // this process.
+ void RenderViewNavigatedToHost(const std::string& host, size_t view_count);
+
+ // Used for customizing some histograms if all RenderViews share the same
+ // host. Returns the current custom histogram name to use for
+ // |histogram_name|, or |histogram_name| if it shouldn't be customized.
+ std::string ConvertToCustomHistogramName(const char* histogram_name) const;
+
+ private:
+ friend class RenderThreadImplUnittest;
+
+ // Used for updating the information on which is the common host which all
+ // RenderView's share (if any). If there is no common host, this function is
+ // called with an empty string.
+ void SetCommonHost(const std::string& host);
+
+ // The current common host of the RenderViews; empty string if there is no
+ // common host.
+ std::string common_host_;
+ // The corresponding suffix.
+ std::string common_host_histogram_suffix_;
+ // Set of histograms for which we want to produce a custom histogram if
+ // possible.
+ std::set<std::string> custom_histograms_;
+
+ DISALLOW_COPY_AND_ASSIGN(HistogramCustomizer);
+ };
+
+ HistogramCustomizer* histogram_customizer() {
+ return &histogram_customizer_;
+ }
+
private:
virtual bool OnControlMessageReceived(const IPC::Message& msg) OVERRIDE;
@@ -318,6 +364,8 @@ class CONTENT_EXPORT RenderThreadImpl : public content::RenderThread,
scoped_ptr<content::AudioRendererMixerManager> audio_renderer_mixer_manager_;
+ HistogramCustomizer histogram_customizer_;
+
DISALLOW_COPY_AND_ASSIGN(RenderThreadImpl);
};
« no previous file with comments | « content/content_tests.gypi ('k') | content/renderer/render_thread_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698