blob: bd07c5c37945df40aede476f38eb177edee468e4 [file] [log] [blame]
Dana Friedab22fac42024-03-29 22:34:541// Copyright 2024 The Chromium Authors
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef CHROME_BROWSER_USER_EDUCATION_RECENT_SESSION_OBSERVER_H_
6#define CHROME_BROWSER_USER_EDUCATION_RECENT_SESSION_OBSERVER_H_
7
Dana Friedf74d7c52024-05-01 23:55:438#include "base/callback_list.h"
9#include "base/functional/callback_forward.h"
Dana Friedd72e10f2024-05-07 17:38:3010#include "base/gtest_prod_util.h"
Dana Friedab22fac42024-03-29 22:34:5411#include "chrome/browser/user_education/recent_session_tracker.h"
12
13class RecentSessionObserver {
14 public:
Dana Friedf74d7c52024-05-01 23:55:4315 RecentSessionObserver();
Dana Friedab22fac42024-03-29 22:34:5416 RecentSessionObserver(const RecentSessionObserver&) = delete;
17 void operator=(const RecentSessionObserver&) = delete;
Dana Friedf74d7c52024-05-01 23:55:4318 virtual ~RecentSessionObserver();
Dana Friedab22fac42024-03-29 22:34:5419
20 // Initialization once the tracker is available.
21 virtual void Init(RecentSessionTracker& tracker) = 0;
Dana Friedf74d7c52024-05-01 23:55:4322
23 // Adds a callback that will be called when a new session starts for a
24 // low-usage profile.
25 base::CallbackListSubscription AddLowUsageSessionCallback(
26 base::RepeatingClosure callback);
27