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

Unified Diff: chrome/browser/ui/tab_contents/core_tab_helper.h

Issue 17151010: Move histograms and supporting code that don't belong in content out. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: fix Created 7 years, 6 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
Index: chrome/browser/ui/tab_contents/core_tab_helper.h
===================================================================
--- chrome/browser/ui/tab_contents/core_tab_helper.h (revision 207139)
+++ chrome/browser/ui/tab_contents/core_tab_helper.h (working copy)
@@ -5,6 +5,7 @@
#ifndef CHROME_BROWSER_UI_TAB_CONTENTS_CORE_TAB_HELPER_H_
#define CHROME_BROWSER_UI_TAB_CONTENTS_CORE_TAB_HELPER_H_
+#include "base/time.h"
#include "content/public/browser/web_contents_observer.h"
#include "content/public/browser/web_contents_user_data.h"
@@ -16,25 +17,64 @@
public:
virtual ~CoreTabHelper();
- CoreTabHelperDelegate* delegate() const { return delegate_; }
- void set_delegate(CoreTabHelperDelegate* d) { delegate_ = d; }
-
// Initial title assigned to NavigationEntries from Navigate.
static string16 GetDefaultTitle();
// Returns a human-readable description the tab's loading state.
string16 GetStatusText() const;
+ // Notification that tab closing has started. This can be called multiple
+ // times, subsequent calls are ignored.
+ void OnCloseStarted();
+
+ // Notification that tab closing was cancelled. This can happen when a user
+ // cancels a window close via another tab's beforeunload dialog.
+ void OnCloseCanceled();
+
+ // Set the time during close when unload is started. Normally, this is set
+ // after the beforeunload dialog. However, for a window close, it is set
+ // after all the beforeunload dialogs have finished.
+ void OnUnloadStarted();
+
+ // Set the time during close when the tab is no longer visible.
+ void OnUnloadDetachedStarted();
+
+ CoreTabHelperDelegate* delegate() const { return delegate_; }
+ void set_delegate(CoreTabHelperDelegate* d) { delegate_ = d; }
+
+ void set_new_tab_start_time(const base::TimeTicks& time) {
+ new_tab_start_time_ = time;
+ }
+
+ base::TimeTicks new_tab_start_time() const { return new_tab_start_time_; }
+
private:
explicit CoreTabHelper(content::WebContents* web_contents);
friend class content::WebContentsUserData<CoreTabHelper>;
// content::WebContentsObserver overrides:
virtual void WasShown() OVERRIDE;
+ virtual void WebContentsDestroyed(
+ content::WebContents* web_contents) OVERRIDE;
+ virtual void BeforeUnloadFired(const base::TimeTicks& proceed_time) OVERRIDE;
+ virtual void BeforeUnloadDialogCancelled() OVERRIDE;
// Delegate for notifying our owner about stuff. Not owned by us.
CoreTabHelperDelegate* delegate_;
+ // The time when we started to create the new tab page. This time is from
+ // before we created this WebContents.
+ base::TimeTicks new_tab_start_time_;
+
+ // The time that we started to close this WebContents.
+ base::TimeTicks close_start_time_;
+
+ // The time when onbeforeunload ended.
+ base::TimeTicks before_unload_end_time_;
+
+ // The time when the tab was removed from view during close.
+ base::TimeTicks unload_detached_start_time_;
+
DISALLOW_COPY_AND_ASSIGN(CoreTabHelper);
};

Powered by Google App Engine
This is Rietveld 408576698