#include "chrome/browser/ui/search_engines/search_engine_tab_helper.h"
#include <memory>
#include "base/metrics/histogram_macros.h"
#include "chrome/browser/favicon/favicon_utils.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/search_engines/template_url_fetcher_factory.h"
#include "chrome/browser/search_engines/template_url_service_factory.h"
#include "chrome/browser/ui/search_engines/edit_search_engine_controller.h"
#include "chrome/common/url_constants.h"
#include "components/search_engines/template_url.h"
#include "components/search_engines/template_url_fetcher.h"
#include "components/search_engines/template_url_service.h"
#include "content/public/browser/favicon_status.h"
#include "content/public/browser/navigation_controller.h"
#include "content/public/browser/navigation_entry.h"
#include "content/public/browser/navigation_handle.h"
#include "content/public/browser/render_frame_host.h"
#include "content/public/browser/render_process_host.h"
#include "content/public/browser/web_contents.h"
#include "mojo/public/cpp/bindings/remote.h"
#include "services/network/public/mojom/url_loader_factory.mojom.h"
NavigationController;
NavigationEntry;
WebContents;
namespace {
bool IsFormSubmit(NavigationEntry* entry) { … }
}
void SearchEngineTabHelper::BindOpenSearchDescriptionDocumentHandler(
content::RenderFrameHost* rfh,
mojo::PendingReceiver<chrome::mojom::OpenSearchDescriptionDocumentHandler>
receiver) { … }
SearchEngineTabHelper::~SearchEngineTabHelper() = default;
void SearchEngineTabHelper::DidFinishNavigation(
content::NavigationHandle* handle) { … }
void SearchEngineTabHelper::WebContentsDestroyed() { … }
std::u16string SearchEngineTabHelper::GenerateKeywordFromNavigationEntry(
NavigationEntry* entry) { … }
SearchEngineTabHelper::SearchEngineTabHelper(WebContents* web_contents)
: … { … }
void SearchEngineTabHelper::PageHasOpenSearchDescriptionDocument(
const GURL& page_url,
const GURL& osdd_url) { … }
void SearchEngineTabHelper::OnFaviconUpdated(
favicon::FaviconDriver* driver,
NotificationIconType notification_icon_type,
const GURL& icon_url,
bool icon_url_changed,
const gfx::Image& image) { … }
void SearchEngineTabHelper::GenerateKeywordIfNecessary(
content::NavigationHandle* handle) { … }
WEB_CONTENTS_USER_DATA_KEY_IMPL(SearchEngineTabHelper);