Commit bd379426 authored by Yi Su's avatar Yi Su Committed by Commit Bot

Add empty SearchEngineTabHelper.

Add SearchEngineTabHelper without any functionality. This TabHelper will
be the main worker for custom search engines feature.

Bug: 433824
Cq-Include-Trybots: luci.chromium.try:ios-simulator-cronet;luci.chromium.try:ios-simulator-full-configs
Change-Id: Ie18b9237d0f1df52d94ff2c9b4e70b299ab426b1
Reviewed-on: https://chromium-review.googlesource.com/c/1288431
Commit-Queue: Yi Su <mrsuyi@chromium.org>
Reviewed-by: default avatarMark Cogan <marq@chromium.org>
Cr-Commit-Position: refs/heads/master@{#600759}
parent 36e087c4
...@@ -20,6 +20,8 @@ source_set("search_engines") { ...@@ -20,6 +20,8 @@ source_set("search_engines") {
sources = [ sources = [
"search_engine_observer_bridge.h", "search_engine_observer_bridge.h",
"search_engine_observer_bridge.mm", "search_engine_observer_bridge.mm",
"search_engine_tab_helper.h",
"search_engine_tab_helper.mm",
"search_engines_util.cc", "search_engines_util.cc",
"search_engines_util.h", "search_engines_util.h",
"template_url_fetcher_factory.cc", "template_url_fetcher_factory.cc",
......
// Copyright 2018 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.
#ifndef IOS_CHROME_BROWSER_SEARCH_ENGINES_SEARCH_ENGINE_TAB_HELPER_H_
#define IOS_CHROME_BROWSER_SEARCH_ENGINES_SEARCH_ENGINE_TAB_HELPER_H_
#include "base/macros.h"
#include "base/memory/weak_ptr.h"
#import "ios/web/public/web_state/web_state_observer.h"
#import "ios/web/public/web_state/web_state_user_data.h"
namespace web {
class WebState;
} // namespace web
class SearchEngineTabHelper
: public web::WebStateObserver,
public web::WebStateUserData<SearchEngineTabHelper> {
public:
~SearchEngineTabHelper() override;
private:
friend class web::WebStateUserData<SearchEngineTabHelper>;
explicit SearchEngineTabHelper(web::WebState* web_state);
// WebStateObserver implementation.
void WebStateDestroyed(web::WebState* web_state) override;
// WebState this tab helper is attached to.
web::WebState* web_state_ = nullptr;
base::WeakPtrFactory<SearchEngineTabHelper> weak_ptr_factory_;
DISALLOW_COPY_AND_ASSIGN(SearchEngineTabHelper);
};
#endif // IOS_CHROME_BROWSER_SEARCH_ENGINES_SEARCH_ENGINE_TAB_HELPER_H_
// Copyright 2018 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.
#import "ios/chrome/browser/search_engines/search_engine_tab_helper.h"
#if !defined(__has_feature) || !__has_feature(objc_arc)
#error "This file requires ARC support."
#endif
DEFINE_WEB_STATE_USER_DATA_KEY(SearchEngineTabHelper);
SearchEngineTabHelper::~SearchEngineTabHelper() {}
SearchEngineTabHelper::SearchEngineTabHelper(web::WebState* web_state)
: web_state_(web_state), weak_ptr_factory_(this) {
web_state->AddObserver(this);
}
void SearchEngineTabHelper::WebStateDestroyed(web::WebState* web_state) {
web_state->RemoveObserver(this);
web_state_ = nullptr;
}
...@@ -104,6 +104,7 @@ source_set("tabs_internal") { ...@@ -104,6 +104,7 @@ source_set("tabs_internal") {
"//ios/chrome/browser/prerender", "//ios/chrome/browser/prerender",
"//ios/chrome/browser/reading_list", "//ios/chrome/browser/reading_list",
"//ios/chrome/browser/search_engines", "//ios/chrome/browser/search_engines",
"//ios/chrome/browser/search_engines:feature_flags",
"//ios/chrome/browser/sessions", "//ios/chrome/browser/sessions",
"//ios/chrome/browser/sessions:serialisation", "//ios/chrome/browser/sessions:serialisation",
"//ios/chrome/browser/snapshots", "//ios/chrome/browser/snapshots",
......
...@@ -29,6 +29,8 @@ ...@@ -29,6 +29,8 @@
#import "ios/chrome/browser/passwords/password_tab_helper.h" #import "ios/chrome/browser/passwords/password_tab_helper.h"
#include "ios/chrome/browser/reading_list/reading_list_model_factory.h" #include "ios/chrome/browser/reading_list/reading_list_model_factory.h"
#import "ios/chrome/browser/reading_list/reading_list_web_state_observer.h" #import "ios/chrome/browser/reading_list/reading_list_web_state_observer.h"
#import "ios/chrome/browser/search_engines/feature_flags.h"
#import "ios/chrome/browser/search_engines/search_engine_tab_helper.h"
#import "ios/chrome/browser/sessions/ios_chrome_session_tab_helper.h" #import "ios/chrome/browser/sessions/ios_chrome_session_tab_helper.h"
#import "ios/chrome/browser/snapshots/snapshot_tab_helper.h" #import "ios/chrome/browser/snapshots/snapshot_tab_helper.h"
#include "ios/chrome/browser/ssl/captive_portal_features.h" #include "ios/chrome/browser/ssl/captive_portal_features.h"
...@@ -101,6 +103,10 @@ void AttachTabHelpers(web::WebState* web_state, bool for_prerender) { ...@@ -101,6 +103,10 @@ void AttachTabHelpers(web::WebState* web_state, bool for_prerender) {
ImageFetchTabHelper::CreateForWebState(web_state); ImageFetchTabHelper::CreateForWebState(web_state);
} }
if (base::FeatureList::IsEnabled(kCustomSearchEngines)) {
SearchEngineTabHelper::CreateForWebState(web_state);
}
ReadingListModel* model = ReadingListModel* model =
ReadingListModelFactory::GetForBrowserState(browser_state); ReadingListModelFactory::GetForBrowserState(browser_state);
ReadingListWebStateObserver::CreateForWebState(web_state, model); ReadingListWebStateObserver::CreateForWebState(web_state, model);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment