blob: 622e122bc108d1804e4620a14497189adbc68ff0 [file] [log] [blame]
// Copyright 2020 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/browser/ui/webui/tab_search/tab_search_ui.h"
#include "build/branding_buildflags.h"
#include "chrome/browser/ui/webui/tab_search/tab_search_page_handler.h"
#include "chrome/browser/ui/webui/webui_util.h"
#include "chrome/common/webui_url_constants.h"
#include "chrome/grit/generated_resources.h"
#include "components/strings/grit/components_strings.h"
#include "content/public/browser/web_contents.h"
#include "content/public/browser/web_ui.h"
#include "content/public/browser/web_ui_data_source.h"
#if BUILDFLAG(ENABLE_TAB_SEARCH)
#include "chrome/grit/tab_search_resources.h"
#include "chrome/grit/tab_search_resources_map.h"
#endif // BUILDFLAG(ENABLE_TAB_SEARCH)
#if BUILDFLAG(ENABLE_TAB_SEARCH)
namespace {
constexpr char kGeneratedPath[] =
"@out_folder@/gen/chrome/browser/resources/tab_search/";
}
#endif // BUILDFLAG(ENABLE_TAB_SEARCH)
TabSearchUI::TabSearchUI(content::WebUI* web_ui)
: ui::MojoWebUIController(web_ui) {
#if BUILDFLAG(ENABLE_TAB_SEARCH)
content::WebUIDataSource* source =
content::WebUIDataSource::Create(chrome::kChromeUITabSearchHost);
source->AddLocalizedString("close", IDS_CLOSE);
source->AddResourcePath("tab_search.mojom-lite.js",
IDR_TAB_SEARCH_MOJO_LITE_JS);
webui::SetupWebUIDataSource(
source, base::make_span(kTabSearchResources, kTabSearchResourcesSize),
kGeneratedPath, IDR_TAB_SEARCH_PAGE_HTML);
content::WebUIDataSource::Add(web_ui->GetWebContents()->GetBrowserContext(),
source);
#endif // BUILDFLAG(ENABLE_TAB_SEARCH)
}
TabSearchUI::~TabSearchUI() = default;
WEB_UI_CONTROLLER_TYPE_IMPL(TabSearchUI)
void TabSearchUI::BindInterface(
mojo::PendingReceiver<tab_search::mojom::PageHandlerFactory> receiver) {
page_factory_receiver_.reset();
page_factory_receiver_.Bind(std::move(receiver));
}
void TabSearchUI::CreatePageHandler(
mojo::PendingRemote<tab_search::mojom::Page> page,
mojo::PendingReceiver<tab_search::mojom::PageHandler> receiver) {
DCHECK(page);
page_handler_ = std::make_unique<TabSearchPageHandler>(
std::move(receiver), std::move(page), web_ui());
}