From 993e20e9ee2fc694bd9879062911331e4e545201 Mon Sep 17 00:00:00 2001 From: AlexeyBarabash Date: Wed, 19 Feb 2025 14:31:44 +0200 Subject: [PATCH] [Android] Fixed permission_dialog_delegate_ at PermissionPromptAndroid (#27715) Fixes brave/brave-browser#44073 This is basically fixup for https://github.com/brave/brave-core/commit/7125b6f95a62ccf0c32f444739281a5fae862733 Related Chromium change https://source.chromium.org/chromium/chromium/src/+/b03957663284904033846c9dc667fac4e052d0bc [PEPC] Add embedded prompt class for Android As outlined in go/pepc-on-clank-dd, this CL introduces a new PEPC prompt class extending from the PermissionPromptAndroid base. Change-Id: I32e7a2a85e5febf3df34080b17a72054abc3a86b Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6162756 --- .../permission_prompt/permission_prompt_android.h | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/chromium_src/components/permissions/android/permission_prompt/permission_prompt_android.h b/chromium_src/components/permissions/android/permission_prompt/permission_prompt_android.h index d4bbd5aa67c..4a29bfa495d 100644 --- a/chromium_src/components/permissions/android/permission_prompt/permission_prompt_android.h +++ b/chromium_src/components/permissions/android/permission_prompt/permission_prompt_android.h @@ -21,6 +21,11 @@ Delegate* delegate_public() const { \ return delegate_; \ } \ + /* Public setter for upstream's private permission_dialog_delegate_ */ \ + void set_permission_dialog_delegate( \ + std::unique_ptr permission_dialog_delegate) { \ + permission_dialog_delegate_ = std::move(permission_dialog_delegate); \ + } \ size_t PermissionCount #include "src/components/permissions/android/permission_prompt/permission_prompt_android.h" // IWYU pragma: export @@ -44,7 +49,13 @@ class PermissionPromptAndroid : public PermissionPromptAndroid_ChromiumImpl { bool ShouldUseRequestingOriginFavicon() const override; void CreatePermissionDialogDelegate() { - PermissionDialogDelegate::Create(web_contents(), this); + // This method does the same as upstream's + // PermissionPromptAndroid::CreatePermissionDialogDelegate: + // permission_dialog_delegate_ = + // PermissionDialogDelegate::Create(web_contents_, this); + std::unique_ptr permission_dialog_delegate = + PermissionDialogDelegate::Create(web_contents(), this); + set_permission_dialog_delegate(std::move(permission_dialog_delegate)); } };