chromium/components/performance_manager/user_tuning/tab_revisit_tracker.cc

// Copyright 2023 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "components/performance_manager/public/user_tuning/tab_revisit_tracker.h"

#include <algorithm>

#include "base/check.h"
#include "base/metrics/histogram_functions.h"
#include "base/numerics/safe_conversions.h"
#include "services/metrics/public/cpp/metrics_utils.h"
#include "services/metrics/public/cpp/ukm_builders.h"
#include "services/metrics/public/cpp/ukm_recorder.h"

namespace performance_manager {

namespace {

constexpr base::TimeDelta kMinTime =;
constexpr base::TimeDelta kMaxTime =;
// Choosing a bucket spacing of 1.1 because it roughly matches the spacing of
// the 200 buckets, capped at 48 hours close/revisit histograms.
constexpr double kTimeBucketSpacing =;

int64_t GetLinearCappedBucket(int64_t sample, int64_t max) {}

int64_t StateToSample(TabRevisitTracker::State state) {}

void DoRecordUkm(TabRevisitTracker::StateBundle previous_state,
                 TabRevisitTracker::StateBundle new_state,
                 ukm::SourceId source_id) {}

}  // namespace

class TabRevisitTracker::UkmSourceIdReadyRecorder {};

TabRevisitTracker::TabRevisitTracker() = default;
TabRevisitTracker::~TabRevisitTracker() = default;

TabRevisitTracker::StateBundle TabRevisitTracker::GetStateForTabHandle(
    const TabPageDecorator::TabHandle* tab_handle) {}

void TabRevisitTracker::RecordRevisitHistograms(
    const TabPageDecorator::TabHandle* tab_handle) {}

void TabRevisitTracker::RecordCloseHistograms(
    const TabPageDecorator::TabHandle* tab_handle) {}

void TabRevisitTracker::RecordStateChangeUkmAndUpdateStateBundle(
    const TabPageDecorator::TabHandle* tab_handle,
    StateBundle new_state_bundle) {}

TabRevisitTracker::StateBundle TabRevisitTracker::CreateUpdatedStateBundle(
    const TabPageDecorator::TabHandle* tab_handle,
    State new_state) const {}

// static
int64_t TabRevisitTracker::ExponentiallyBucketedSeconds(base::TimeDelta time) {}

void TabRevisitTracker::OnPassedToGraph(Graph* graph) {}

void TabRevisitTracker::OnTakenFromGraph(Graph* graph) {}

void TabRevisitTracker::OnTabAdded(TabPageDecorator::TabHandle* tab_handle) {}

void TabRevisitTracker::OnTabAboutToBeDiscarded(
    const PageNode* old_page_node,
    TabPageDecorator::TabHandle* tab_handle) {}

void TabRevisitTracker::OnBeforeTabRemoved(
    TabPageDecorator::TabHandle* tab_handle) {}

void TabRevisitTracker::OnIsActiveTabChanged(const PageNode* page_node) {}

void TabRevisitTracker::OnUkmSourceIdChanged(const PageNode* page_node) {}

}  // namespace performance_manager