[email protected] | e41982a7 | 2012-11-20 07:16:51 | [diff] [blame] | 1 | // Copyright 2012 The Chromium Authors. All rights reserved. |
[email protected] | 7acfaf9 | 2012-07-11 15:51:59 | [diff] [blame] | 2 | // Use of this source code is governed by a BSD-style license that can be |
3 | // found in the LICENSE file. | ||||
4 | |||||
5 | #ifndef CHROME_BROWSER_UI_BROWSER_INSTANT_CONTROLLER_H_ | ||||
6 | #define CHROME_BROWSER_UI_BROWSER_INSTANT_CONTROLLER_H_ | ||||
[email protected] | 7acfaf9 | 2012-07-11 15:51:59 | [diff] [blame] | 7 | |
Marc Treib | c4de3f1 | 2017-09-05 12:36:15 | [diff] [blame] | 8 | #include <memory> |
9 | |||||
[email protected] | c55e3b8 | 2012-08-09 15:27:05 | [diff] [blame] | 10 | #include "base/compiler_specific.h" |
avi | 655876a | 2015-12-25 07:18:15 | [diff] [blame] | 11 | #include "base/macros.h" |
Marc Treib | 9028a6a | 2017-12-06 16:21:51 | [diff] [blame] | 12 | #include "build/build_config.h" |
Marc Treib | c4de3f1 | 2017-09-05 12:36:15 | [diff] [blame] | 13 | #include "chrome/browser/search/search_engine_base_url_tracker.h" |
[email protected] | 03bb710 | 2013-03-17 22:44:47 | [diff] [blame] | 14 | #include "chrome/browser/ui/search/instant_controller.h" |
[email protected] | 7acfaf9 | 2012-07-11 15:51:59 | [diff] [blame] | 15 | |
Marc Treib | 9028a6a | 2017-12-06 16:21:51 | [diff] [blame] | 16 | #if defined(OS_ANDROID) |
17 | #error "Instant is only used on desktop"; | ||||
18 | #endif | ||||
19 | |||||
[email protected] | 7acfaf9 | 2012-07-11 15:51:59 | [diff] [blame] | 20 | class Browser; |
[email protected] | e41982a7 | 2012-11-20 07:16:51 | [diff] [blame] | 21 | class Profile; |
[email protected] | 7acfaf9 | 2012-07-11 15:51:59 | [diff] [blame] | 22 | |
Marc Treib | 7376bd8 | 2017-09-26 08:03:20 | [diff] [blame] | 23 | // BrowserInstantController is responsible for reloading any Instant tabs (which |
24 | // today just means NTPs) when the default search provider changes. This can | ||||
25 | // happen when the user chooses a different default search engine, or when the | ||||
Marc Treib | f4e8daff | 2017-09-27 08:40:34 | [diff] [blame] | 26 | // Google base URL changes while Google is the default search engine. |
Marc Treib | 7376bd8 | 2017-09-26 08:03:20 | [diff] [blame] | 27 | class BrowserInstantController { |
[email protected] | 7acfaf9 | 2012-07-11 15:51:59 | [diff] [blame] | 28 | public: |
29 | explicit BrowserInstantController(Browser* browser); | ||||
Peter Boström | 53c6c595 | 2021-09-17 09:41:26 | [diff] [blame^] | 30 | |
31 | BrowserInstantController(const BrowserInstantController&) = delete; | ||||
32 | BrowserInstantController& operator=(const BrowserInstantController&) = delete; | ||||
33 | |||||
Marc Treib | 7376bd8 | 2017-09-26 08:03:20 | [diff] [blame] | 34 | ~BrowserInstantController(); |
[email protected] | 7acfaf9 | 2012-07-11 15:51:59 | [diff] [blame] | 35 | |
[email protected] | e41982a7 | 2012-11-20 07:16:51 | [diff] [blame] | 36 | private: |
Marc Treib | c4de3f1 | 2017-09-05 12:36:15 | [diff] [blame] | 37 | void OnSearchEngineBaseURLChanged( |
38 | SearchEngineBaseURLTracker::ChangeReason change_reason); | ||||
[email protected] | 0a46856e | 2013-04-24 00:33:02 | [diff] [blame] | 39 | |
Marc Treib | f4e8daff | 2017-09-27 08:40:34 | [diff] [blame] | 40 | Profile* profile() const; |
41 | |||||
[email protected] | e41982a7 | 2012-11-20 07:16:51 | [diff] [blame] | 42 | Browser* const browser_; |
[email protected] | 7acfaf9 | 2012-07-11 15:51:59 | [diff] [blame] | 43 | |
[email protected] | e41982a7 | 2012-11-20 07:16:51 | [diff] [blame] | 44 | InstantController instant_; |
[email protected] | 7acfaf9 | 2012-07-11 15:51:59 | [diff] [blame] | 45 | |
Marc Treib | c4de3f1 | 2017-09-05 12:36:15 | [diff] [blame] | 46 | std::unique_ptr<SearchEngineBaseURLTracker> search_engine_base_url_tracker_; |
[email protected] | 7acfaf9 | 2012-07-11 15:51:59 | [diff] [blame] | 47 | }; |
48 | |||||
[email protected] | 7acfaf9 | 2012-07-11 15:51:59 | [diff] [blame] | 49 | #endif // CHROME_BROWSER_UI_BROWSER_INSTANT_CONTROLLER_H_ |