// 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. #ifndef CHROME_BROWSER_UI_TABS_PUBLIC_TAB_INTERFACE_H_ #define CHROME_BROWSER_UI_TABS_PUBLIC_TAB_INTERFACE_H_ #include <memory> #include "base/callback_list.h" #include "base/functional/callback.h" namespace content { class WebContents; } // namespace content class BrowserWindowInterface; namespace tabs { class TabFeatures; // A feature which wants to show tab-modal UI should call // TabInterface::ShowModalUI and keep alive the instance of ScopedTabModalUI for // the duration of the tab-modal UI. class ScopedTabModalUI { … }; // This is the public interface for tabs in a desktop browser. Most features in // //chrome/browser depend on this interface, and thus to prevent circular // dependencies this interface should not depend on anything else in //chrome. // Ping erikchen for assistance if this class does not have the functionality // your feature needs. This comment will be deleted after there are 10+ features // in TabFeatures. class TabInterface { … }; } // namespace tabs #endif // CHROME_BROWSER_UI_TABS_PUBLIC_TAB_INTERFACE_H_