blob: 0bf0d113228e4970373bd969ba9970767d0f1f95 [file] [log] [blame]
// Copyright 2024 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_VIEWS_EXTENSIONS_EXTENSION_INSTALLED_BUBBLE_VIEW_H_
#define CHROME_BROWSER_UI_VIEWS_EXTENSIONS_EXTENSION_INSTALLED_BUBBLE_VIEW_H_
#include <string>
#include "base/memory/raw_ptr.h"
#include "build/build_config.h"
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/chrome_pages.h"
#include "chrome/browser/ui/extensions/extension_installed_bubble_model.h"
#include "chrome/browser/ui/extensions/extension_installed_waiter.h"
#include "extensions/common/extension.h"
#include "ui/base/models/dialog_model.h"
DECLARE_ELEMENT_IDENTIFIER_VALUE(kExtensionBubbleFrameViewId);
// Provides feedback to the user upon successful installation of an
// extension. Depending on the type of extension, the Bubble will
// point to:
// OMNIBOX_KEYWORD-> The omnibox.
// BROWSER_ACTION -> The browserAction icon in the toolbar.
// PAGE_ACTION -> A preview of the pageAction icon in the location
// bar which is shown while the Bubble is shown.
// GENERIC -> The app menu. This case includes pageActions that don't
// specify a default icon.
class ExtensionInstalledBubbleView : public ui::DialogModelDelegate {
public:
ExtensionInstalledBubbleView(
Browser* browser,
std::unique_ptr<ExtensionInstalledBubbleModel> model);
ExtensionInstalledBubbleView(const ExtensionInstalledBubbleView&) = delete;
ExtensionInstalledBubbleView& operator=(const ExtensionInstalledBubbleView&) =
delete;
~ExtensionInstalledBubbleView() override;
static void Show(Browser* browser,
std::unique_ptr<ExtensionInstalledBubbleModel> model);
const ExtensionInstalledBubbleModel* model() const { return model_.get(); }
private:
void LinkClicked();
const raw_ptr<Browser> browser_;
const std::unique_ptr<ExtensionInstalledBubbleModel> model_;
};
#endif // CHROME_BROWSER_UI_VIEWS_EXTENSIONS_EXTENSION_INSTALLED_BUBBLE_VIEW_H_