blob: b7bab63501c8c353ff1ad2a456eb8d4f280ba7c7 [file] [log] [blame]
[email protected]e41982a72012-11-20 07:16:511// Copyright 2012 The Chromium Authors. All rights reserved.
[email protected]7acfaf92012-07-11 15:51:592// 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]7acfaf92012-07-11 15:51:597
Marc Treibc4de3f12017-09-05 12:36:158#include <memory>
9
[email protected]c55e3b82012-08-09 15:27:0510#include "base/compiler_specific.h"
avi655876a2015-12-25 07:18:1511#include "base/macros.h"
Marc Treib9028a6a2017-12-06 16:21:5112#include "build/build_config.h"
Marc Treibc4de3f12017-09-05 12:36:1513#include "chrome/browser/search/search_engine_base_url_tracker.h"
[email protected]03bb7102013-03-17 22:44:4714#include "chrome/browser/ui/search/instant_controller.h"
[email protected]7acfaf92012-07-11 15:51:5915
Marc Treib9028a6a2017-12-06 16:21:5116#if defined(OS_ANDROID)
17#error "Instant is only used on desktop";
18#endif
19
[email protected]7acfaf92012-07-11 15:51:5920class Browser;
[email protected]e41982a72012-11-20 07:16:5121class Profile;
[email protected]7acfaf92012-07-11 15:51:5922
Marc Treib7376bd82017-09-26 08:03:2023// 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 Treibf4e8daff2017-09-27 08:40:3426// Google base URL changes while Google is the default search engine.
Marc Treib7376bd82017-09-26 08:03:2027class BrowserInstantController {
[email protected]7acfaf92012-07-11 15:51:5928 public:
29 explicit BrowserInstantController(Browser* browser);
Peter Boström53c6c5952021-09-17 09:41:2630
31 BrowserInstantController(const BrowserInstantController&) = delete;
32 BrowserInstantController& operator=(const BrowserInstantController&) = delete;
33
Marc Treib7376bd82017-09-26 08:03:2034 ~BrowserInstantController();
[email protected]7acfaf92012-07-11 15:51:5935
[email protected]e41982a72012-11-20 07:16:5136 private:
Marc Treibc4de3f12017-09-05 12:36:1537 void OnSearchEngineBaseURLChanged(
38 SearchEngineBaseURLTracker::ChangeReason change_reason);
[email protected]0a46856e2013-04-24 00:33:0239
Marc Treibf4e8daff2017-09-27 08:40:3440 Profile* profile() const;
41
[email protected]e41982a72012-11-20 07:16:5142 Browser* const browser_;
[email protected]7acfaf92012-07-11 15:51:5943
[email protected]e41982a72012-11-20 07:16:5144 InstantController instant_;
[email protected]7acfaf92012-07-11 15:51:5945
Marc Treibc4de3f12017-09-05 12:36:1546 std::unique_ptr<SearchEngineBaseURLTracker> search_engine_base_url_tracker_;
[email protected]7acfaf92012-07-11 15:51:5947};
48
[email protected]7acfaf92012-07-11 15:51:5949#endif // CHROME_BROWSER_UI_BROWSER_INSTANT_CONTROLLER_H_