Avi Drissman | 4a8573c | 2022-09-09 19:35:54 | [diff] [blame] | 1 | // Copyright 2016 The Chromium Authors |
[email protected] | 94b8a51a | 2014-03-26 20:57:55 | [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 | |
rdevlin.cronin | 7138b37e | 2016-05-18 17:23:55 | [diff] [blame] | 5 | #ifndef CHROME_BROWSER_UI_EXTENSIONS_SETTINGS_API_BUBBLE_HELPERS_H_ |
| 6 | #define CHROME_BROWSER_UI_EXTENSIONS_SETTINGS_API_BUBBLE_HELPERS_H_ |
[email protected] | 94b8a51a | 2014-03-26 20:57:55 | [diff] [blame] | 7 | |
Devlin Cronin | a997c8e | 2021-03-18 00:33:18 | [diff] [blame] | 8 | #include "base/auto_reset.h" |
pkasting | da6dd84 | 2016-02-24 15:26:59 | [diff] [blame] | 9 | #include "components/omnibox/browser/autocomplete_match.h" |
| 10 | |
[email protected] | 94b8a51a | 2014-03-26 20:57:55 | [diff] [blame] | 11 | class Browser; |
Devlin Cronin | a997c8e | 2021-03-18 00:33:18 | [diff] [blame] | 12 | class PrefRegistrySimple; |
| 13 | class Profile; |
[email protected] | 94b8a51a | 2014-03-26 20:57:55 | [diff] [blame] | 14 | |
| 15 | namespace content { |
[email protected] | 94b8a51a | 2014-03-26 20:57:55 | [diff] [blame] | 16 | class WebContents; |
| 17 | } |
| 18 | |
| 19 | namespace extensions { |
| 20 | |
Devlin Cronin | a997c8e | 2021-03-18 00:33:18 | [diff] [blame] | 21 | extern const char kNtpOverridingExtensionAcknowledged[]; |
| 22 | |
Devlin Cronin | 5739bf0 | 2020-05-15 00:38:38 | [diff] [blame] | 23 | // Sets whether the NTP post-install UI is enabled for testing purposes. |
| 24 | // TODO(devlin): This would be cooler as a base::AutoReset<>. |
| 25 | void SetNtpPostInstallUiEnabledForTesting(bool enabled); |
rdevlin.cronin | 81d3516 | 2017-05-31 15:44:48 | [diff] [blame] | 26 | |
Devlin Cronin | a997c8e | 2021-03-18 00:33:18 | [diff] [blame] | 27 | // Testing-only method to configure if existing NTP extensions are |
| 28 | // auto-acknowledged. |
| 29 | base::AutoReset<bool> SetAcknowledgeExistingNtpExtensionsForTesting( |
| 30 | bool should_acknowledge); |
| 31 | |
| 32 | // Registers prefs related to the settings overridden UI. |
| 33 | void RegisterSettingsOverriddenUiPrefs(PrefRegistrySimple* registry); |
| 34 | |
| 35 | // Iterates over existing NTP-overriding extensions installed in the given |
| 36 | // `profile` and marks them as acknowledged. Stores a preference indicating |
| 37 | // the action was completed. Subsequent calls will *not* acknowledge more |
| 38 | // extensions. This is needed to avoid prompting users with existing |
| 39 | // extensions when we expand the warning to new platforms. |
| 40 | void AcknowledgePreExistingNtpExtensions(Profile* profile); |
| 41 | |
[email protected] | 94b8a51a | 2014-03-26 20:57:55 | [diff] [blame] | 42 | // Shows a bubble notifying the user that the homepage is controlled by an |
| 43 | // extension. This bubble is shown only on the first use of the Home button |
| 44 | // after the controlling extension takes effect. |
| 45 | void MaybeShowExtensionControlledHomeNotification(Browser* browser); |
| 46 | |
| 47 | // Shows a bubble notifying the user that the search engine is controlled by an |
| 48 | // extension. This bubble is shown only on the first search after the |
| 49 | // controlling extension takes effect. |
| 50 | void MaybeShowExtensionControlledSearchNotification( |
[email protected] | 94b8a51a | 2014-03-26 20:57:55 | [diff] [blame] | 51 | content::WebContents* web_contents, |
pkasting | da6dd84 | 2016-02-24 15:26:59 | [diff] [blame] | 52 | AutocompleteMatch::Type match_type); |
[email protected] | 94b8a51a | 2014-03-26 20:57:55 | [diff] [blame] | 53 | |
[email protected] | fbb597f | 2014-04-29 14:28:14 | [diff] [blame] | 54 | // Shows a bubble notifying the user that the new tab page is controlled by an |
| 55 | // extension. This bubble is shown only the first time the new tab page is shown |
| 56 | // after the controlling extension takes effect. |
Peter Kasting | a486324 | 2024-12-23 00:19:43 | [diff] [blame] | 57 | void MaybeShowExtensionControlledNewTabPage(Browser* browser, |
| 58 | content::WebContents* web_contents); |
[email protected] | fbb597f | 2014-04-29 14:28:14 | [diff] [blame] | 59 | |
[email protected] | 94b8a51a | 2014-03-26 20:57:55 | [diff] [blame] | 60 | } // namespace extensions |
| 61 | |
rdevlin.cronin | 7138b37e | 2016-05-18 17:23:55 | [diff] [blame] | 62 | #endif // CHROME_BROWSER_UI_EXTENSIONS_SETTINGS_API_BUBBLE_HELPERS_H_ |