chromium/components/performance_manager/graph/initializing_frame_node_observer.h

// 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.

#ifndef COMPONENTS_PERFORMANCE_MANAGER_GRAPH_INITIALIZING_FRAME_NODE_OBSERVER_H_
#define COMPONENTS_PERFORMANCE_MANAGER_GRAPH_INITIALIZING_FRAME_NODE_OBSERVER_H_

#include "base/observer_list.h"
#include "components/performance_manager/public/graph/frame_node.h"
#include "components/performance_manager/public/graph/graph.h"
#include "url/origin.h"

namespace performance_manager {

// This class is for FrameNodeObservers that need to initialize values on the
// actual frame nodes before other observers are notified of their existence.
// This is needed because modifying frames nodes during the `OnFrameNodeAdded()`
// notification is disallowed. This class should be used sparingly.
class InitializingFrameNodeObserver {};

class InitializingFrameNodeObserverManager final : public FrameNodeObserver {};

}  // namespace performance_manager

#endif  // COMPONENTS_PERFORMANCE_MANAGER_GRAPH_INITIALIZING_FRAME_NODE_OBSERVER_H_