chromium/chrome/browser/ui/views/permissions/embedded_permission_prompt_base_view.h

// Copyright 2023 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_PERMISSIONS_EMBEDDED_PERMISSION_PROMPT_BASE_VIEW_H_
#define CHROME_BROWSER_UI_VIEWS_PERMISSIONS_EMBEDDED_PERMISSION_PROMPT_BASE_VIEW_H_

#include <string>

#include "base/memory/raw_ptr.h"
#include "chrome/browser/ui/views/permissions/embedded_permission_prompt_view_delegate.h"
#include "chrome/browser/ui/views/permissions/permission_prompt_base_view.h"
#include "components/favicon_base/favicon_types.h"
#include "components/permissions/features.h"
#include "components/permissions/permission_prompt.h"
#include "ui/base/interaction/element_identifier.h"
#include "ui/base/metadata/metadata_header_macros.h"
#include "ui/base/ui_base_types.h"
#include "ui/gfx/vector_icon_types.h"
#include "ui/views/controls/styled_label.h"
#include "ui/views/layout/flex_layout_view.h"

class Browser;

// Base view used for embedded permission prompts dialogs.
// It looks like this:
//
// |-------------------------------------------------|
// |                                              [X]|
// | Title (optional)                                |
// |-------------------------------------------------|
// |Icon1(optional)|RequestMessage1                  |
// |Icon2(optional)|RequestMessage2                  |
// |...                                              |
// |-------------------------------------------------|
// |                 Button1                         |
// |                 Button2                         |
// |                 ...                             |
// |-------------------------------------------------|

// Subclasses need to implement at least:
// GetRequestLinesConfiguration - provides the info for the main body of the
// prompt.
// GetButtonsConfiguration - provides the info for the buttons section.
// RunButtonCallback - called when a button is pressed.
// GetWindowTitle/GetAccessibleWindowTitle - inherited from
// views::BubbleDialogDelegateView.

class EmbeddedPermissionPromptBaseView : public PermissionPromptBaseView {};

#endif  // CHROME_BROWSER_UI_VIEWS_PERMISSIONS_EMBEDDED_PERMISSION_PROMPT_BASE_VIEW_H_