#include "chrome/browser/ui/views/side_panel/search_companion/search_companion_side_panel_coordinator.h"
#include <memory>
#include "base/metrics/histogram.h"
#include "base/metrics/histogram_functions.h"
#include "chrome/app/vector_icons/vector_icons.h"
#include "chrome/browser/companion/core/constants.h"
#include "chrome/browser/companion/core/features.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/search/search.h"
#include "chrome/browser/search_engines/template_url_service_factory.h"
#include "chrome/browser/ui/actions/chrome_action_id.h"
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/browser_actions.h"
#include "chrome/browser/ui/browser_window/public/browser_window_features.h"
#include "chrome/browser/ui/toolbar/pinned_toolbar/pinned_toolbar_actions_model_factory.h"
#include "chrome/browser/ui/ui_features.h"
#include "chrome/browser/ui/views/chrome_layout_provider.h"
#include "chrome/browser/ui/views/frame/browser_view.h"
#include "chrome/browser/ui/views/side_panel/companion/companion_tab_helper.h"
#include "chrome/browser/ui/views/side_panel/companion/companion_utils.h"
#include "chrome/browser/ui/views/side_panel/side_panel_entry.h"
#include "chrome/browser/ui/views/side_panel/side_panel_enums.h"
#include "chrome/browser/ui/views/side_panel/side_panel_registry.h"
#include "chrome/browser/ui/views/side_panel/side_panel_ui.h"
#include "chrome/browser/ui/views/toolbar/toolbar_view.h"
#include "chrome/common/pref_names.h"
#include "chrome/grit/generated_resources.h"
#include "components/prefs/pref_registry_simple.h"
#include "components/prefs/pref_service.h"
#include "components/vector_icons/vector_icons.h"
#include "ui/actions/actions.h"
#include "ui/base/l10n/l10n_util.h"
#include "ui/base/ui_base_features.h"
namespace {
enum class CompanionSidePanelAvailabilityChanged { … };
}
SearchCompanionSidePanelCoordinator::SearchCompanionSidePanelCoordinator(
Browser* browser)
: … { … }
SearchCompanionSidePanelCoordinator::~SearchCompanionSidePanelCoordinator() =
default;
bool SearchCompanionSidePanelCoordinator::IsSupported(
Profile* profile,
bool include_runtime_checks) { … }
bool SearchCompanionSidePanelCoordinator::Show(
SidePanelOpenTrigger side_panel_open_trigger) { … }
void SearchCompanionSidePanelCoordinator::ShowLens(
const content::OpenURLParams& url_params) { … }
BrowserView* SearchCompanionSidePanelCoordinator::GetBrowserView() const { … }
std::u16string SearchCompanionSidePanelCoordinator::GetTooltipForToolbarButton()
const { … }
void SearchCompanionSidePanelCoordinator::NotifyCompanionOfSidePanelOpenTrigger(
std::optional<SidePanelOpenTrigger> side_panel_open_trigger) { … }
void SearchCompanionSidePanelCoordinator::OnTabStripModelChanged(
TabStripModel* tab_strip_model,
const TabStripModelChange& change,
const TabStripSelectionChange& selection) { … }
void SearchCompanionSidePanelCoordinator::TabChangedAt(
content::WebContents* contents,
int index,
TabChangeType change_type) { … }
void SearchCompanionSidePanelCoordinator::
CreateAndRegisterEntriesForExistingWebContents(
TabStripModel* tab_strip_model) { … }
void SearchCompanionSidePanelCoordinator::
DeregisterEntriesForExistingWebContents(TabStripModel* tab_strip_model) { … }
void SearchCompanionSidePanelCoordinator::OnTemplateURLServiceChanged() { … }
void SearchCompanionSidePanelCoordinator::
UpdateCompanionAvailabilityInSidePanel() { … }
actions::ActionItem* SearchCompanionSidePanelCoordinator::GetActionItem() { … }
void SearchCompanionSidePanelCoordinator::MaybeUpdateCompanionEnabledState() { … }
void SearchCompanionSidePanelCoordinator::OnTemplateURLServiceShuttingDown() { … }
void SearchCompanionSidePanelCoordinator::OnPolicyPrefChanged() { … }
void SearchCompanionSidePanelCoordinator::OnExpsPolicyPrefChanged() { … }
BROWSER_USER_DATA_KEY_IMPL(SearchCompanionSidePanelCoordinator);