Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(29)

Issue 2315563002: Add PermissionPromptAndroid skeleton (Closed)

Created:
4 years, 3 months ago by lshang
Modified:
4 years, 1 month ago
CC:
chromium-reviews, mlamouri+watch-permissions_chromium.org, tfarina, markusheintz_, msramek+watch_chromium.org, raymes+watch_chromium.org, chrome-apps-syd-reviews_chromium.org
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Add PermissionPromptAndroid skeleton Currently desktop and Android use different ways to handle multiple permission requests. Desktop uses PermissionRequestManager to schedule, group and show requests, delegating the actual UI to a Views/Cocoa-based permission prompt. Android, however, uses PermissionQueueController, an entirely different system sharing no code with desktop, which queues up infobars for individual requests. We'd like to reuse PermissionRequestManager on Android to improve feature parity between the two platforms. On Android, GroupedPermissionInfobarDelegate is ready to use to show multiple permission requests and show individual toggles(allow/block) for each request. We also need a subclass of PermissionPrompt which is responsible for showing GroupedPermissionInfobars, coordinating permission infobars with InfoBarService, and passing the results back to PermissionRequestManager. This CL added the skeleton of this class, called PermissionPromptAndroid, similar to PermissionPromptImpl on desktop. It allows multiple requests to show and grouped in one infobar. Currently 'OK' and 'Cancel' button does nothing, they will be plugged in SetPermissions() in the following CL. Also to reuse PermissionRequestManager on Android, BUILD.gn files are changed to get PermissionRequest and PermissionPrompt compiled on Android. Since this refactoring work is not all ready yet, it's behind a runtime switch flag for now so that we could implement and test it step by step. Finally we'll enable it by default on Android. BUG=606138 Committed: https://crrev.com/c4089c7219c8b04750a1a72f1ce26e111dbdb909 Cr-Commit-Position: refs/heads/master@{#427617}

Patch Set 1 #

Patch Set 2 : remove unused stuff #

Total comments: 18

Patch Set 3 : address review comments #

Total comments: 1

Patch Set 4 : try #

Patch Set 5 : rebase #

Total comments: 10

Patch Set 6 : address #

Total comments: 2

Patch Set 7 : add a comment #

Total comments: 4

Patch Set 8 : nit change #

Patch Set 9 : rebase #

Patch Set 10 : update #

Total comments: 4

Patch Set 11 : minor change #

Unified diffs Side-by-side diffs Delta from patch set Stats (+219 lines, -45 lines) Patch
M chrome/browser/BUILD.gn View 1 2 3 4 5 6 7 8 3 chunks +4 lines, -2 lines 0 comments Download
M chrome/browser/permissions/permission_context_base.cc View 1 2 3 4 5 6 7 3 chunks +37 lines, -31 lines 0 comments Download
A chrome/browser/permissions/permission_prompt_android.h View 1 2 3 4 5 6 7 1 chunk +52 lines, -0 lines 0 comments Download
A chrome/browser/permissions/permission_prompt_android.cc View 1 2 3 4 5 6 7 8 9 10 1 chunk +76 lines, -0 lines 0 comments Download
M chrome/browser/permissions/permission_request_impl.cc View 1 2 3 4 5 3 chunks +23 lines, -0 lines 0 comments Download
M chrome/browser/permissions/permission_request_manager.h View 1 2 1 chunk +4 lines, -0 lines 0 comments Download
M chrome/browser/permissions/permission_request_manager.cc View 1 2 3 4 5 6 7 8 4 chunks +13 lines, -9 lines 0 comments Download
M chrome/browser/ui/BUILD.gn View 1 2 3 4 5 6 7 8 2 chunks +1 line, -1 line 0 comments Download
M chrome/browser/ui/tab_helpers.cc View 1 2 3 4 5 6 7 8 9 4 chunks +2 lines, -2 lines 0 comments Download
M chrome/common/chrome_features.h View 1 2 3 4 5 6 7 8 1 chunk +2 lines, -0 lines 0 comments Download
M chrome/common/chrome_features.cc View 1 2 3 4 5 6 7 8 1 chunk +5 lines, -0 lines 0 comments Download

Dependent Patchsets:

Messages

Total messages: 69 (51 generated)
lshang
raymes@ PTAL thanks! This CL adds the skeleton of PermissionPromptAndroid, it can shows the prompt ...
4 years, 2 months ago (2016-10-18 06:51:14 UTC) #30
raymes
Thanks Liu, this look cool :) It would be good to try to get Tim ...
4 years, 2 months ago (2016-10-19 00:25:41 UTC) #31
lshang
I found something wrong with the prompt, please hold off review:-) https://codereview.chromium.org/2315563002/diff/200001/chrome/browser/permissions/grouped_permission_infobar_delegate_android.h File chrome/browser/permissions/grouped_permission_infobar_delegate_android.h (right): ...
4 years, 2 months ago (2016-10-20 05:03:10 UTC) #32
lshang
Hi Raymes, please review the updated patch again, thanks! I've addressed your comments, and made ...
4 years, 2 months ago (2016-10-23 23:56:43 UTC) #33
raymes
Thanks Liu! https://codereview.chromium.org/2315563002/diff/220001/chrome/browser/permissions/permission_prompt_android.cc File chrome/browser/permissions/permission_prompt_android.cc (right): https://codereview.chromium.org/2315563002/diff/220001/chrome/browser/permissions/permission_prompt_android.cc#newcode51 chrome/browser/permissions/permission_prompt_android.cc:51: if (infobar_delegate_ && infobar_service_) { Do we ...
4 years, 2 months ago (2016-10-24 00:50:16 UTC) #34
lshang
+dominickn@ to review this CL from infobar perspective, especially take a look at the new ...
4 years, 1 month ago (2016-10-24 08:48:02 UTC) #37
dominickn
https://codereview.chromium.org/2315563002/diff/280001/chrome/browser/permissions/permission_prompt_android.h File chrome/browser/permissions/permission_prompt_android.h (right): https://codereview.chromium.org/2315563002/diff/280001/chrome/browser/permissions/permission_prompt_android.h#newcode39 chrome/browser/permissions/permission_prompt_android.h:39: content::WebContents* web_contents_; Holding a bare WebContents is dangerous, since ...
4 years, 1 month ago (2016-10-24 23:22:38 UTC) #38
raymes
On 2016/10/24 23:22:38, dominickn wrote: > https://codereview.chromium.org/2315563002/diff/280001/chrome/browser/permissions/permission_prompt_android.h > File chrome/browser/permissions/permission_prompt_android.h (right): > > https://codereview.chromium.org/2315563002/diff/280001/chrome/browser/permissions/permission_prompt_android.h#newcode39 > ...
4 years, 1 month ago (2016-10-25 02:47:55 UTC) #39
lshang
https://codereview.chromium.org/2315563002/diff/280001/chrome/browser/permissions/permission_prompt_android.h File chrome/browser/permissions/permission_prompt_android.h (right): https://codereview.chromium.org/2315563002/diff/280001/chrome/browser/permissions/permission_prompt_android.h#newcode39 chrome/browser/permissions/permission_prompt_android.h:39: content::WebContents* web_contents_; On 2016/10/24 23:22:38, dominickn wrote: > Holding ...
4 years, 1 month ago (2016-10-25 03:33:15 UTC) #40
lshang
Hey Dom, I've updated the patch. As we discussed, I added a comment saying it's ...
4 years, 1 month ago (2016-10-26 02:33:22 UTC) #41
dominickn
lgtm % nits https://codereview.chromium.org/2315563002/diff/300001/chrome/browser/permissions/permission_context_base.cc File chrome/browser/permissions/permission_context_base.cc (right): https://codereview.chromium.org/2315563002/diff/300001/chrome/browser/permissions/permission_context_base.cc#newcode184 chrome/browser/permissions/permission_context_base.cc:184: std::unique_ptr<PermissionRequest> request_ptr(new PermissionRequestImpl( Nit: #include "base/memory/ptr_util.h", ...
4 years, 1 month ago (2016-10-26 02:51:16 UTC) #42
lshang
Raymes, PTALA thanks! also +avi@ for owner review of chrome/browser/ui/tab_helpers.cc, the change is to move ...
4 years, 1 month ago (2016-10-26 04:55:17 UTC) #56
Avi (use Gerrit)
tab helpers lgtm
4 years, 1 month ago (2016-10-26 05:01:23 UTC) #60
raymes
lgtm https://codereview.chromium.org/2315563002/diff/360001/chrome/browser/permissions/permission_prompt_android.cc File chrome/browser/permissions/permission_prompt_android.cc (right): https://codereview.chromium.org/2315563002/diff/360001/chrome/browser/permissions/permission_prompt_android.cc#newcode49 chrome/browser/permissions/permission_prompt_android.cc:49: infobar_ = nullptr; Should we clear the pointer ...
4 years, 1 month ago (2016-10-26 05:37:36 UTC) #61
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2315563002/380001
4 years, 1 month ago (2016-10-26 05:55:46 UTC) #64
lshang
Thanks all! https://codereview.chromium.org/2315563002/diff/360001/chrome/browser/permissions/permission_prompt_android.cc File chrome/browser/permissions/permission_prompt_android.cc (right): https://codereview.chromium.org/2315563002/diff/360001/chrome/browser/permissions/permission_prompt_android.cc#newcode49 chrome/browser/permissions/permission_prompt_android.cc:49: infobar_ = nullptr; On 2016/10/26 05:37:36, raymes ...
4 years, 1 month ago (2016-10-26 05:55:49 UTC) #65
commit-bot: I haz the power
Committed patchset #11 (id:380001)
4 years, 1 month ago (2016-10-26 06:54:58 UTC) #67
commit-bot: I haz the power
4 years, 1 month ago (2016-10-26 06:56:48 UTC) #69
Message was sent while issue was closed.
Patchset 11 (id:??) landed as
https://crrev.com/c4089c7219c8b04750a1a72f1ce26e111dbdb909
Cr-Commit-Position: refs/heads/master@{#427617}

Powered by Google App Engine
This is Rietveld 408576698