#include "chrome/browser/ui/views/permissions/permission_prompt_chip.h"
#include <algorithm>
#include <memory>
#include "base/containers/contains.h"
#include "base/functional/bind.h"
#include "base/metrics/histogram_functions.h"
#include "base/ranges/algorithm.h"
#include "chrome/browser/ui/views/location_bar/location_bar_view.h"
#include "chrome/browser/ui/views/permissions/chip/chip_controller.h"
#include "chrome/grit/generated_resources.h"
#include "components/permissions/features.h"
#include "components/permissions/permission_prompt.h"
#include "components/permissions/permission_util.h"
#include "components/permissions/request_type.h"
#include "components/strings/grit/components_strings.h"
#include "content/public/browser/browser_context.h"
#include "content/public/browser/permission_controller.h"
#include "content/public/browser/web_contents.h"
#include "third_party/blink/public/common/permissions/permission_utils.h"
#include "ui/views/accessibility/view_accessibility.h"
#include "ui/views/bubble/bubble_dialog_delegate_view.h"
PermissionPromptChip::PermissionPromptChip(Browser* browser,
content::WebContents* web_contents,
Delegate* delegate)
: … { … }
PermissionPromptChip::~PermissionPromptChip() { … }
bool PermissionPromptChip::UpdateAnchor() { … }
permissions::PermissionPromptDisposition
PermissionPromptChip::GetPromptDisposition() const { … }
std::optional<gfx::Rect> PermissionPromptChip::GetViewBoundsInScreen() const { … }
views::Widget* PermissionPromptChip::GetPromptBubbleWidgetForTesting() { … }
void PermissionPromptChip::PreemptivelyResolvePermissionRequest(
content::WebContents* web_contents,
Delegate* delegate) { … }