#include "chrome/browser/ui/tabs/organization/tab_organization.h"
#include <optional>
#include <string>
#include <unordered_set>
#include "base/debug/dump_without_crashing.h"
#include "chrome/browser/ui/tabs/organization/tab_data.h"
#include "chrome/browser/ui/tabs/tab_group.h"
#include "chrome/browser/ui/tabs/tab_group_model.h"
#include "chrome/browser/ui/tabs/tab_strip_model.h"
#include "components/tab_groups/tab_group_id.h"
#include "third_party/abseil-cpp/absl/types/variant.h"
namespace {
constexpr int kMinValidTabsForOrganizing = …;
int kNextOrganizationID = …;
}
TabOrganization::TabOrganization(
TabDatas tab_datas,
std::vector<std::u16string> names,
int first_new_tab_index,
absl::variant<size_t, std::u16string> current_name,
UserChoice choice)
: … { … }
TabOrganization::~TabOrganization() { … }
const std::u16string TabOrganization::GetDisplayName() const { … }
void TabOrganization::AddObserver(TabOrganization::Observer* observer) { … }
void TabOrganization::RemoveObserver(TabOrganization::Observer* observer) { … }
bool TabOrganization::IsValidForOrganizing() const { … }
void TabOrganization::AddTabData(std::unique_ptr<TabData> new_tab_data) { … }
void TabOrganization::RemoveTabData(TabData::TabID tab_id) { … }
void TabOrganization::SetCurrentName(
absl::variant<size_t, std::u16string> new_current_name) { … }
void TabOrganization::Accept() { … }
void TabOrganization::Reject() { … }
void TabOrganization::OnTabDataUpdated(const TabData* tab_data) { … }
void TabOrganization::OnTabDataDestroyed(TabData::TabID tab_id) { … }
void TabOrganization::NotifyObserversOfUpdate() { … }