blob: 2a262d0f5dc1ce45937aae56c9fd8d057f277d27 [file] [log] [blame]
// Copyright 2024 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/browser/ui/user_education/browser_user_education_interface.h"
#include "chrome/browser/ui/browser_window/public/browser_window_features.h"
#include "chrome/browser/ui/browser_window/public/browser_window_interface.h"
#include "components/tabs/public/tab_interface.h"
#include "ui/base/unowned_user_data/scoped_unowned_user_data.h"
#include "ui/base/unowned_user_data/unowned_user_data_host.h"
DEFINE_USER_DATA(BrowserUserEducationInterface);
BrowserUserEducationInterface::BrowserUserEducationInterface(
BrowserWindowInterface* browser)
: scoped_unowned_user_data_(browser->GetUnownedUserDataHost(), *this) {}
BrowserUserEducationInterface::~BrowserUserEducationInterface() = default;
void BrowserUserEducationInterface::Init(BrowserView*) {}
void BrowserUserEducationInterface::TearDown() {}
// static
BrowserUserEducationInterface*
BrowserUserEducationInterface::MaybeGetForWebContentsInTab(
content::WebContents* contents) {
auto* const tab = tabs::TabInterface::MaybeGetFromContents(contents);
return tab ? From(tab->GetBrowserWindowInterface()) : nullptr;
}
// static
BrowserUserEducationInterface* BrowserUserEducationInterface::From(
BrowserWindowInterface* browser) {
return browser ? Get(browser->GetUnownedUserDataHost()) : nullptr;
}