#include "chrome/browser/ui/views/toolbar/chrome_labs/chrome_labs_bubble_view.h"
#include "base/callback_list.h"
#include "base/functional/bind.h"
#include "base/functional/callback.h"
#include "base/memory/raw_ptr.h"
#include "build/build_config.h"
#include "build/buildflag.h"
#include "chrome/browser/about_flags.h"
#include "chrome/browser/flag_descriptions.h"
#include "chrome/browser/ui/actions/chrome_action_id.h"
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/browser_actions.h"
#include "chrome/browser/ui/browser_element_identifiers.h"
#include "chrome/browser/ui/toolbar/chrome_labs/chrome_labs_model.h"
#include "chrome/browser/ui/ui_features.h"
#include "chrome/browser/ui/views/toolbar/chrome_labs/chrome_labs_button.h"
#include "chrome/browser/ui/views/toolbar/chrome_labs/chrome_labs_item_view.h"
#include "chrome/browser/ui/webui/flags/flags_ui.h"
#include "chrome/grit/branded_strings.h"
#include "chrome/grit/generated_resources.h"
#include "ui/base/l10n/l10n_util.h"
#include "ui/base/metadata/metadata_header_macros.h"
#include "ui/base/metadata/metadata_impl_macros.h"
#include "ui/base/mojom/dialog_button.mojom.h"
#include "ui/base/ui_base_features.h"
#include "ui/color/color_id.h"
#include "ui/gfx/color_palette.h"
#include "ui/gfx/geometry/rounded_corners_f.h"
#include "ui/views/accessibility/view_accessibility.h"
#include "ui/views/background.h"
#include "ui/views/border.h"
#include "ui/views/controls/button/md_text_button.h"
#include "ui/views/controls/label.h"
#include "ui/views/controls/scroll_view.h"
#include "ui/views/layout/box_layout.h"
#include "ui/views/layout/flex_layout.h"
#include "ui/views/layout/flex_layout_types.h"
#include "ui/views/layout/flex_layout_view.h"
#include "ui/views/layout/layout_provider.h"
#include "ui/views/view_class_properties.h"
namespace {
class ChromeLabsFooter : public views::View { … };
BEGIN_METADATA(…)
}
ChromeLabsBubbleView::ChromeLabsBubbleView(views::Button* anchor_view,
Browser* browser)
: … { … }
ChromeLabsBubbleView::~ChromeLabsBubbleView() { … }
ChromeLabsItemView* ChromeLabsBubbleView::AddLabItem(
const LabInfo& lab,
int default_index,
const flags_ui::FeatureEntry* entry,
Browser* browser,
base::RepeatingCallback<void(ChromeLabsItemView* item_view)>
combobox_callback) { … }
size_t ChromeLabsBubbleView::GetNumLabItems() { … }
base::CallbackListSubscription ChromeLabsBubbleView::RegisterRestartCallback(
base::RepeatingClosureList::CallbackType callback) { … }
void ChromeLabsBubbleView::ShowRelaunchPrompt() { … }
void ChromeLabsBubbleView::NotifyRestartCallback() { … }
views::View* ChromeLabsBubbleView::GetMenuItemContainerForTesting() { … }
bool ChromeLabsBubbleView::IsRestartPromptVisibleForTesting() { … }
views::ScrollView* ChromeLabsBubbleView::GetScrollViewForTesting() { … }
BEGIN_METADATA(…)