chromium/components/performance_manager/decorators/site_data_recorder.cc

// Copyright 2020 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/decorators/site_data_recorder.h"

#include "base/memory/raw_ptr.h"
#include "base/notreached.h"
#include "base/time/time.h"
#include "components/performance_manager/graph/node_inline_data.h"
#include "components/performance_manager/graph/page_node_impl.h"
#include "components/performance_manager/persistence/site_data/site_data_cache.h"
#include "components/performance_manager/persistence/site_data/site_data_cache_factory.h"
#include "components/performance_manager/persistence/site_data/site_data_writer.h"
#include "components/performance_manager/public/persistence/site_data/site_data_reader.h"

namespace performance_manager {

namespace {

// The period of time after loading during which we ignore title/favicon
// change events. It's possible for some site that are loaded in background to
// use some of these features without this being an attempt to communicate
// with the user (e.g. the page is just really finishing to load).
constexpr base::TimeDelta kTitleOrFaviconChangePostLoadGracePeriod =;

// The period of time during which audio usage gets ignored after a page gets
// backgrounded. It's necessary because there might be a delay between a media
// request gets initiated and the time the audio actually starts.
constexpr base::TimeDelta kFeatureUsagePostBackgroundGracePeriod =;

SiteDataRecorder* g_site_data_recorder =;

TabVisibility GetPageNodeVisibility(const PageNode* page_node) {}

// Default implementation of SiteDataRecorderHeuristics that's used in
// production.
class DefaultHeuristics final : public SiteDataRecorderHeuristics {};

SiteDataNodeData& GetSiteDataNodeDataFromPageNode(const PageNode* page_node) {}

}  // namespace

SiteDataRecorder::SiteDataRecorder()
    :{}

SiteDataRecorder::~SiteDataRecorder() = default;

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

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

void SiteDataRecorder::OnPageNodeAdded(const PageNode* page_node) {}

void SiteDataRecorder::OnBeforePageNodeRemoved(const PageNode* page_node) {}

void SiteDataRecorder::OnMainFrameUrlChanged(const PageNode* page_node) {}

void SiteDataRecorder::OnLoadingStateChanged(
    const PageNode* page_node,
    PageNode::LoadingState previous_state) {}

void SiteDataRecorder::OnIsVisibleChanged(const PageNode* page_node) {}

void SiteDataRecorder::OnIsAudibleChanged(const PageNode* page_node) {}

void SiteDataRecorder::OnTitleUpdated(const PageNode* page_node) {}

void SiteDataRecorder::OnFaviconUpdated(const PageNode* page_node) {}

// static
void SiteDataRecorder::SetHeuristicsImplementationForTesting(
    std::unique_ptr<SiteDataRecorderHeuristics> heuristics) {}

void SiteDataRecorder::RegisterObservers(Graph* graph) {}

void SiteDataRecorder::UnregisterObservers(Graph* graph) {}

void SiteDataRecorder::SetPageNodeDataCache(const PageNode* page_node) {}

// static
bool SiteDataRecorderHeuristics::DefaultIsLoadedIdle(
    PageNode::LoadingState loading_state) {}

// static
bool SiteDataRecorderHeuristics::DefaultIsInBackground(
    const PageNode* page_node) {}

// static
bool SiteDataRecorderHeuristics::DefaultIsOutsideLoadingGracePeriod(
    const PageNode* page_node,
    FeatureType feature_type,
    base::TimeDelta time_since_load) {}

// static
bool SiteDataRecorderHeuristics::DefaultIsOutsideBackgroundingGracePeriod(
    const PageNode* page_node,
    FeatureType feature_type,
    base::TimeDelta time_since_backgrounding) {}

// static
const SiteDataRecorder::Data& SiteDataRecorder::Data::FromPageNode(
    const PageNode* page_node) {}

// static
SiteDataRecorder::Data& SiteDataRecorder::Data::GetForTesting(
    const PageNode* page_node) {}

// static
SiteDataReader* SiteDataRecorder::Data::GetReaderForPageNode(
    const PageNode* page_node) {}

}  // namespace performance_manager