#include "chrome/browser/tab_contents/form_interaction_tab_helper.h"
#include "base/functional/bind.h"
#include "components/performance_manager/public/graph/graph.h"
#include "components/performance_manager/public/graph/page_node.h"
#include "components/performance_manager/public/performance_manager.h"
#include "content/public/browser/browser_task_traits.h"
#include "content/public/browser/browser_thread.h"
namespace {
#if DCHECK_IS_ON()
bool g_observer_exists = …;
#endif
}
class FormInteractionTabHelper::GraphObserver
: public performance_manager::PageNode::ObserverDefaultImpl,
public performance_manager::GraphOwned { … };
void FormInteractionTabHelper::GraphObserver::DispatchOnHadFormInteraction(
base::WeakPtr<content::WebContents> contents,
bool had_form_interaction) { … }
void FormInteractionTabHelper::GraphObserver::OnHadFormInteractionChanged(
const performance_manager::PageNode* page_node) { … }
void FormInteractionTabHelper::GraphObserver::OnPassedToGraph(
performance_manager::Graph* graph) { … }
void FormInteractionTabHelper::GraphObserver::OnTakenFromGraph(
performance_manager::Graph* graph) { … }
std::unique_ptr<performance_manager::GraphOwned>
FormInteractionTabHelper::CreateGraphObserver() { … }
FormInteractionTabHelper::FormInteractionTabHelper(
content::WebContents* contents)
: … { … }
FormInteractionTabHelper::~FormInteractionTabHelper() = default;
bool FormInteractionTabHelper::had_form_interaction() const { … }
WEB_CONTENTS_USER_DATA_KEY_IMPL(FormInteractionTabHelper);