#include "chrome/browser/ui/tabs/tab_strip_model_stats_recorder.h"
#include <utility>
#include "base/check.h"
#include "base/memory/ptr_util.h"
#include "base/metrics/histogram_macros.h"
#include "base/notreached.h"
#include "base/ranges/algorithm.h"
#include "base/supports_user_data.h"
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/browser_list.h"
#include "chrome/browser/ui/tabs/tab_strip_model.h"
TabStripModelStatsRecorder::TabStripModelStatsRecorder()
: … { … }
TabStripModelStatsRecorder::~TabStripModelStatsRecorder() { … }
class TabStripModelStatsRecorder::TabInfo
: public base::SupportsUserData::Data { … };
const char TabStripModelStatsRecorder::TabInfo::kKey[] = …;
TabStripModelStatsRecorder::TabInfo::~TabInfo() { … }
void TabStripModelStatsRecorder::TabInfo::UpdateState(TabState new_state) { … }
void TabStripModelStatsRecorder::OnTabClosing(content::WebContents* contents) { … }
void TabStripModelStatsRecorder::OnActiveTabChanged(
content::WebContents* old_contents,
content::WebContents* new_contents,
int reason) { … }
void TabStripModelStatsRecorder::OnTabReplaced(
content::WebContents* old_contents,
content::WebContents* new_contents) { … }
void TabStripModelStatsRecorder::OnTabStripModelChanged(
TabStripModel* tab_strip_model,
const TabStripModelChange& change,
const TabStripSelectionChange& selection) { … }