#include <optional>
#include <string>
#include <string_view>
#include <tuple>
#include <utility>
#include "base/command_line.h"
#include "base/containers/fixed_flat_map.h"
#include "base/functional/callback.h"
#include "base/functional/callback_helpers.h"
#include "base/strings/utf_string_conversions.h"
#include "build/build_config.h"
#include "build/buildflag.h"
#include "build/chromeos_buildflags.h"
#include "chrome/browser/buildflags.h"
#include "chrome/browser/devtools/devtools_infobar_delegate.h"
#include "chrome/browser/extensions/api/debugger/extension_dev_tools_infobar_delegate.h"
#include "chrome/browser/extensions/api/messaging/incognito_connectability_infobar_delegate.h"
#include "chrome/browser/extensions/crx_installer.h"
#include "chrome/browser/extensions/extension_install_prompt.h"
#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/extensions/theme_installed_infobar_delegate.h"
#include "chrome/browser/infobars/infobar_observer.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/themes/theme_service.h"
#include "chrome/browser/themes/theme_service_factory.h"
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/chrome_select_file_policy.h"
#include "chrome/browser/ui/collected_cookies_infobar_delegate.h"
#include "chrome/browser/ui/extensions/installation_error_infobar_delegate.h"
#include "chrome/browser/ui/page_info/page_info_infobar_delegate.h"
#include "chrome/browser/ui/startup/automation_infobar_delegate.h"
#include "chrome/browser/ui/startup/bad_flags_prompt.h"
#include "chrome/browser/ui/startup/google_api_keys_infobar_delegate.h"
#include "chrome/browser/ui/startup/obsolete_system_infobar_delegate.h"
#include "chrome/browser/ui/tab_sharing/tab_sharing_infobar_delegate.h"
#include "chrome/browser/ui/tabs/tab_strip_model.h"
#include "chrome/browser/ui/test/test_infobar.h"
#include "chrome/browser/ui/views/frame/browser_view.h"
#include "chrome/browser/ui/views/infobars/infobar_container_view.h"
#include "chrome/grit/generated_resources.h"
#include "chrome/test/base/in_process_browser_test.h"
#include "chrome/test/base/ui_test_utils.h"
#include "components/crx_file/crx_verifier.h"
#include "components/infobars/content/content_infobar_manager.h"
#include "components/infobars/core/infobar.h"
#include "components/nacl/common/buildflags.h"
#include "content/public/test/browser_test.h"
#include "extensions/browser/extension_dialog_auto_confirm.h"
#include "extensions/browser/extension_registry.h"
#include "extensions/browser/extension_system.h"
#include "extensions/browser/sandboxed_unpacker.h"
#include "extensions/browser/test_extension_registry_observer.h"
#include "net/test/embedded_test_server/embedded_test_server.h"
#include "ppapi/buildflags/buildflags.h"
#include "sandbox/policy/switches.h"
#include "ui/base/l10n/l10n_util.h"
#if BUILDFLAG(ENABLE_PLUGINS)
#include "chrome/browser/plugins/hung_plugin_infobar_delegate.h"
#include "chrome/browser/plugins/plugin_observer.h"
#include "chrome/browser/plugins/reload_plugin_infobar_delegate.h"
#endif
#if !BUILDFLAG(IS_CHROMEOS_ASH)
#include "chrome/browser/ui/startup/default_browser_prompt/default_browser_infobar_delegate.h"
#endif
#if BUILDFLAG(IS_MAC) && BUILDFLAG(ENABLE_UPDATER)
#include "chrome/browser/ui/cocoa/keystone_infobar_delegate.h"
#endif
#if !defined(USE_AURA)
#include "chrome/browser/translate/chrome_translate_client.h"
#include "components/translate/core/browser/translate_infobar_delegate.h"
#include "components/translate/core/browser/translate_manager.h"
#endif
#if BUILDFLAG(ENABLE_NACL)
#include "chrome/browser/nacl_host/nacl_infobar_delegate.h"
#endif
class InfoBarsTest : public InProcessBrowserTest { … };
IN_PROC_BROWSER_TEST_F(InfoBarsTest, TestInfoBarsCloseOnNewTheme) { … }
class InfoBarUiTest : public TestInfoBar { … };
void InfoBarUiTest::ShowUi(const std::string& name) { … }
bool InfoBarUiTest::VerifyUi() { … }
#if BUILDFLAG(IS_WIN)
#define MAYBE_InvokeUi_dev_tools …
#else
#define MAYBE_InvokeUi_dev_tools …
#endif
IN_PROC_BROWSER_TEST_F(InfoBarUiTest, MAYBE_InvokeUi_dev_tools) { … }
IN_PROC_BROWSER_TEST_F(InfoBarUiTest, InvokeUi_extension_dev_tools) { … }
IN_PROC_BROWSER_TEST_F(InfoBarUiTest, InvokeUi_incognito_connectability) { … }
IN_PROC_BROWSER_TEST_F(InfoBarUiTest, InvokeUi_theme_installed) { … }
#if BUILDFLAG(ENABLE_NACL)
IN_PROC_BROWSER_TEST_F(InfoBarUiTest, InvokeUi_nacl) {
ShowAndVerifyUi();
}
#endif
#if BUILDFLAG(ENABLE_PLUGINS)
IN_PROC_BROWSER_TEST_F(InfoBarUiTest, InvokeUi_hung_plugin) { … }
IN_PROC_BROWSER_TEST_F(InfoBarUiTest, InvokeUi_reload_plugin) { … }
IN_PROC_BROWSER_TEST_F(InfoBarUiTest, InvokeUi_plugin_observer) { … }
#endif
IN_PROC_BROWSER_TEST_F(InfoBarUiTest, InvokeUi_file_access_disabled) { … }
#if BUILDFLAG(IS_MAC) && BUILDFLAG(ENABLE_UPDATER)
IN_PROC_BROWSER_TEST_F(InfoBarUiTest, InvokeUi_keystone_promotion) {
ShowAndVerifyUi();
}
#endif
IN_PROC_BROWSER_TEST_F(InfoBarUiTest, InvokeUi_collected_cookies) { … }
IN_PROC_BROWSER_TEST_F(InfoBarUiTest, InvokeUi_installation_error) { … }
IN_PROC_BROWSER_TEST_F(InfoBarUiTest, InvokeUi_bad_flags) { … }
#if !BUILDFLAG(IS_CHROMEOS_ASH)
IN_PROC_BROWSER_TEST_F(InfoBarUiTest, InvokeUi_default_browser) { … }
#endif
IN_PROC_BROWSER_TEST_F(InfoBarUiTest, InvokeUi_google_api_keys) { … }
IN_PROC_BROWSER_TEST_F(InfoBarUiTest, InvokeUi_obsolete_system) { … }
IN_PROC_BROWSER_TEST_F(InfoBarUiTest, InvokeUi_page_info) { … }
#if !defined(USE_AURA) && !BUILDFLAG(IS_MAC)
IN_PROC_BROWSER_TEST_F(InfoBarUiTest, InvokeUi_translate) {
ShowAndVerifyUi();
}
#endif
#if BUILDFLAG(IS_WIN)
#define MAYBE_InvokeUi_automation …
#else
#define MAYBE_InvokeUi_automation …
#endif
IN_PROC_BROWSER_TEST_F(InfoBarUiTest, MAYBE_InvokeUi_automation) { … }
#if BUILDFLAG(IS_WIN)
#define MAYBE_InvokeUi_tab_sharing …
#else
#define MAYBE_InvokeUi_tab_sharing …
#endif
IN_PROC_BROWSER_TEST_F(InfoBarUiTest, MAYBE_InvokeUi_tab_sharing) { … }
IN_PROC_BROWSER_TEST_F(InfoBarUiTest, InvokeUi_multiple_infobars) { … }