[PEPC] Add new flag PermissionElementDialogPositioning
This new flags enables positioning the permission dialog over the
permission element, instead of in the center of the web view.
Bug: 1462930
Change-Id: I9f29f02c2668e5682e231d48ff04dd7f0c5794e0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5125716
Reviewed-by: Thomas Nguyen <[email protected]>
Reviewed-by: Arthur Sonzogni <[email protected]>
Commit-Queue: Andy Paicu <[email protected]>
Reviewed-by: Dominik Röttsches <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1270104}
diff --git a/components/permissions/permission_request.cc b/components/permissions/permission_request.cc
index 58fa158..3900210b 100644
--- a/components/permissions/permission_request.cc
+++ b/components/permissions/permission_request.cc
@@ -180,6 +180,10 @@
return data_.embedded_permission_element_initiated;
}
+std::optional<gfx::Rect> PermissionRequest::GetAnchorElementPosition() const {
+ return data_.anchor_element_position;
+}
+
#if !BUILDFLAG(IS_ANDROID)
bool PermissionRequest::IsConfirmationChipSupported() {
diff --git a/components/permissions/permission_request.h b/components/permissions/permission_request.h
index 1b65018..641feea 100644
--- a/components/permissions/permission_request.h
+++ b/components/permissions/permission_request.h
@@ -151,6 +151,9 @@
// element.
bool IsEmbeddedPermissionElementInitiated() const;
+ // Returns the position of the element that caused the prompt to open.
+ std::optional<gfx::Rect> GetAnchorElementPosition() const;
+
// Returns true if the request has two origins and should use the two origin
// prompt. Returns false otherwise.
bool ShouldUseTwoOriginPrompt() const;
diff --git a/components/permissions/permission_request_data.cc b/components/permissions/permission_request_data.cc
index 434f586..f724c59 100644
--- a/components/permissions/permission_request_data.cc
+++ b/components/permissions/permission_request_data.cc
@@ -20,6 +20,7 @@
embedded_permission_element_initiated(
request_description.embedded_permission_element_initiated),
requesting_origin(canonical_requesting_origin),
+ anchor_element_position(request_description.anchor_element_position),
requested_audio_capture_device_ids(
request_description.requested_audio_capture_device_ids),
requested_video_capture_device_ids(