Home | History | Annotate | Download | only in ui
      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 CHROME_BROWSER_UI_UMA_BROWSING_ACTIVITY_OBSERVER_H_
      6 #define CHROME_BROWSER_UI_UMA_BROWSING_ACTIVITY_OBSERVER_H_
      7 
      8 #include "content/public/browser/notification_registrar.h"
      9 #include "content/public/browser/notification_observer.h"
     10 
     11 namespace chrome {
     12 
     13 // This object is instantiated when the first Browser object is added to the
     14 // list and delete when the last one is removed. It watches for loads and
     15 // creates histograms of some global object counts.
     16 class UMABrowsingActivityObserver : public content::NotificationObserver {
     17  public:
     18   static void Init();
     19 
     20  private:
     21   UMABrowsingActivityObserver();
     22   virtual ~UMABrowsingActivityObserver();
     23 
     24   // content::NotificationObserver implementation.
     25   virtual void Observe(int type,
     26                        const content::NotificationSource& source,
     27                        const content::NotificationDetails& details) OVERRIDE;
     28 
     29   // Counts the number of active RenderProcessHosts and logs them.
     30   void LogRenderProcessHostCount() const;
     31 
     32   // Counts the number of tabs in each browser window and logs them. This is
     33   // different than the number of WebContents objects since WebContents objects
     34   // can be used for popups and in dialog boxes. We're just counting toplevel
     35   // tabs here.
     36   void LogBrowserTabCount() const;
     37 
     38   content::NotificationRegistrar registrar_;
     39 
     40   DISALLOW_COPY_AND_ASSIGN(UMABrowsingActivityObserver);
     41 };
     42 
     43 }  // namespace chrome
     44 
     45 #endif  // CHROME_BROWSER_UI_UMA_BROWSING_ACTIVITY_OBSERVER_H_
     46