// Copyright 2016 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CHROME_BROWSER_UI_EXTENSIONS_SETTINGS_API_BUBBLE_HELPERS_H_ #define CHROME_BROWSER_UI_EXTENSIONS_SETTINGS_API_BUBBLE_HELPERS_H_ #include "base/auto_reset.h" #include "components/omnibox/browser/autocomplete_match.h" class Browser; class PrefRegistrySimple; class Profile; namespace content { class WebContents; } namespace extensions { extern const char kNtpOverridingExtensionAcknowledged[]; // Sets whether the NTP post-install UI is enabled for testing purposes. // TODO(devlin): This would be cooler as a base::AutoReset<>. void SetNtpPostInstallUiEnabledForTesting(bool enabled); // Testing-only method to configure if existing NTP extensions are // auto-acknowledged. base::AutoReset<bool> SetAcknowledgeExistingNtpExtensionsForTesting( bool should_acknowledge); // Registers prefs related to the settings overridden UI. void RegisterSettingsOverriddenUiPrefs(PrefRegistrySimple* registry); // Iterates over existing NTP-overriding extensions installed in the given // `profile` and marks them as acknowledged. Stores a preference indicating // the action was completed. Subsequent calls will *not* acknowledge more // extensions. This is needed to avoid prompting users with existing // extensions when we expand the warning to new platforms. void AcknowledgePreExistingNtpExtensions(Profile* profile); // Shows a bubble notifying the user that the homepage is controlled by an // extension. This bubble is shown only on the first use of the Home button // after the controlling extension takes effect. void MaybeShowExtensionControlledHomeNotification(Browser* browser); // Shows a bubble notifying the user that the search engine is controlled by an // extension. This bubble is shown only on the first search after the // controlling extension takes effect. void MaybeShowExtensionControlledSearchNotification( content::WebContents* web_contents, AutocompleteMatch::Type match_type); // Shows a bubble notifying the user that the new tab page is controlled by an // extension. This bubble is shown only the first time the new tab page is shown // after the controlling extension takes effect. void MaybeShowExtensionControlledNewTabPage( Browser* browser, content::WebContents* web_contents); } // namespace extensions #endif // CHROME_BROWSER_UI_EXTENSIONS_SETTINGS_API_BUBBLE_HELPERS_H_