1// Copyright (c) 2012 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_BROWSER_HISTOGRAM_MESSAGE_FILTER_H_
6#define CONTENT_BROWSER_HISTOGRAM_MESSAGE_FILTER_H_
7
8#include <string>
9#include <vector>
10
11#include "content/public/browser/browser_message_filter.h"
12#include "content/public/common/process_type.h"
13
14namespace content {
15
16// This class sends and receives histogram messages in the browser process.
17class HistogramMessageFilter : public BrowserMessageFilter {
18 public:
19  HistogramMessageFilter();
20
21  // BrowserMessageFilter implementation.
22  virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE;
23
24 private:
25  virtual ~HistogramMessageFilter();
26
27  // Message handlers.
28  void OnChildHistogramData(int sequence_number,
29                            const std::vector<std::string>& pickled_histograms);
30  void OnGetBrowserHistogram(const std::string& name,
31                             std::string* histogram_json);
32
33  DISALLOW_COPY_AND_ASSIGN(HistogramMessageFilter);
34};
35
36}  // namespace content
37
38#endif  // CONTENT_BROWSER_HISTOGRAM_MESSAGE_FILTER_H_
39