#ifndef CHROME_BROWSER_UI_BROWSER_TABSTRIP_H_
#define CHROME_BROWSER_UI_BROWSER_TABSTRIP_H_
#include <optional>
#include "chrome/browser/ui/browser_navigator_params.h"
#include "components/tab_groups/tab_group_id.h"
#include "content/public/browser/navigation_controller.h"
#include "content/public/browser/web_contents.h"
#include "ui/base/page_transition_types.h"
#include "ui/base/window_open_disposition.h"
class Browser;
class GURL;
namespace blink {
namespace mojom {
class WindowFeatures;
}
}
namespace gfx {
class Rect;
}
namespace chrome {
content::WebContents* AddAndReturnTabAt(
Browser* browser,
const GURL& url,
int index,
bool foreground,
std::optional<tab_groups::TabGroupId> group = std::nullopt);
void AddTabAt(Browser* browser,
const GURL& url,
int index,
bool foreground,
std::optional<tab_groups::TabGroupId> group = std::nullopt);
content::WebContents* AddSelectedTabWithURL(Browser* browser,
const GURL& url,
ui::PageTransition transition);
content::WebContents* AddWebContents(
Browser* browser,
content::WebContents* source_contents,
std::unique_ptr<content::WebContents> new_contents,
const GURL& target_url,
WindowOpenDisposition disposition,
const blink::mojom::WindowFeatures& window_features,
NavigateParams::WindowAction window_action = NavigateParams::SHOW_WINDOW);
void CloseWebContents(Browser* browser,
content::WebContents* contents,
bool add_to_history);
void ConfigureTabGroupForNavigation(NavigateParams* nav_params);
bool ShouldAutoCreateGroupForNavigation(NavigateParams* nav_params);
}
#endif