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

Issue 1337903002: permissions: remove PermissionQueueController and introduce PermissionInfoBarManager (Closed)

Created:
5 years, 3 months ago by Lalit Maganti
Modified:
5 years, 1 month ago
CC:
chromium-reviews, gone
Base URL:
https://chromium.googlesource.com/chromium/src.git@callbacks-delegates
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

permissions: remove PermissionQueueController and introduce PermissionInfoBarManager Queue controller is a class which is almost 6 years old and its age is starting to show. It uses all sorts of interesting hacks to tie request lifecycles to the lifecycle of a web contents. Moreover, coallescing permissions would be a nightmare since the request id is compared and all sorts of strange checks are used to compare request equality. Instead of all the craziness, just rewrite the controller to be a version of bubble manager for infobars. This leads to far simpler code as the manager as a whole is tied to a web contents so we get lifecycle management for free! Furthermore, we also have multiple permisisons managed and coallesced for when it is implemented. This CL is also a part of a group of CLs: (1) https://codereview.chromium.org/1332293002 (2) https://codereview.chromium.org/1337903002 (this) (3) https://codereview.chromium.org/1332063003 BUG=516626

Patch Set 1 #

Patch Set 2 : Reduce wasted memory and make it compile #

Patch Set 3 : WIP patchset #

Patch Set 4 : WIP patchset 2 #

Patch Set 5 : Fix spotted issues #

Patch Set 6 : Rewrite to allowing infobar queuing and non-prompting of allowed/denied permisisons #

Total comments: 20

Patch Set 7 : Address review comments #

Patch Set 8 : Rebase on master #

Patch Set 9 : Making sure all changes are up #

Patch Set 10 : Rebase to fix conflict #

Patch Set 11 : Try to fix test compile and add callback responses when request is cancelled #

Patch Set 12 : Fix geolocation tests #

Patch Set 13 : Fix crashing on Android #

Patch Set 14 : Rebase on latest #

Patch Set 15 : Fix compile failure #

Patch Set 16 : Attempt to fix geolocation tests #

Patch Set 17 : Fix cancel crash #

Patch Set 18 : FIx cancellation queuing behaviour #

Patch Set 19 : Fix the build #

Patch Set 20 : Fix compile #

Patch Set 21 : Fixing geolocation tests again #

Patch Set 22 : Fix geolocation tests fully #

Patch Set 23 : Rebase on master #

Patch Set 24 : Just a rebase #

Total comments: 38

Patch Set 25 : Address review comments #

Patch Set 26 : Fix test compile #

Patch Set 27 : Fix stupid mistake #

Patch Set 28 : Try to fix context base tests #

Total comments: 30

Patch Set 29 : Attempt to fix geolocation tests #

Patch Set 30 : Address review comments #

Patch Set 31 : Address test failure #

Patch Set 32 : Fix test failure #

Patch Set 33 : Attempt to fix test #

Total comments: 30

Patch Set 34 : Address review comments #

Patch Set 35 : Rebase to fix conflicts #

Patch Set 36 : Fix compile failure #

Patch Set 37 : Fix compile on desktop #

Total comments: 12

Patch Set 38 : Address review comments and fix test failures #

Patch Set 39 : Fix compile failure #

Patch Set 40 : Fix compile failures #

Unified diffs Side-by-side diffs Delta from patch set Stats (+725 lines, -742 lines) Patch
M chrome/browser/geolocation/geolocation_permission_context_android.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 1 chunk +3 lines, -3 lines 0 comments Download
M chrome/browser/geolocation/geolocation_permission_context_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 12 chunks +64 lines, -20 lines 0 comments Download
M chrome/browser/media/media_stream_device_permission_context_unittest.cc View 1 2 3 4 5 6 7 8 9 10 2 chunks +2 lines, -1 line 0 comments Download
M chrome/browser/media/midi_permission_context_unittest.cc View 1 2 3 4 5 6 7 8 9 10 3 chunks +2 lines, -5 lines 0 comments Download
M chrome/browser/permissions/permission_context_base.h View 2 chunks +0 lines, -4 lines 0 comments Download
M chrome/browser/permissions/permission_context_base.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 5 chunks +31 lines, -40 lines 0 comments Download
M chrome/browser/permissions/permission_context_base_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 8 chunks +37 lines, -27 lines 0 comments Download
A chrome/browser/permissions/permission_infobar_manager.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 1 chunk +84 lines, -0 lines 0 comments Download
A chrome/browser/permissions/permission_infobar_manager.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 1 chunk +119 lines, -0 lines 0 comments Download
A chrome/browser/permissions/permission_infobar_request.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 1 chunk +113 lines, -0 lines 0 comments Download
A chrome/browser/permissions/permission_infobar_request.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 1 chunk +252 lines, -0 lines 0 comments Download
M chrome/browser/permissions/permission_manager.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 1 chunk +4 lines, -3 lines 0 comments Download
M chrome/browser/permissions/permission_manager.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 4 chunks +8 lines, -7 lines 0 comments Download
D chrome/browser/permissions/permission_queue_controller.h View 1 chunk +0 lines, -96 lines 0 comments Download
D chrome/browser/permissions/permission_queue_controller.cc View 1 2 3 4 5 6 7 1 chunk +0 lines, -418 lines 0 comments Download
D chrome/browser/permissions/permission_queue_controller_unittest.cc View 1 chunk +0 lines, -115 lines 0 comments Download
M chrome/browser/ui/tab_helpers.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 2 chunks +2 lines, -0 lines 0 comments Download
M chrome/chrome_browser.gypi View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 1 chunk +4 lines, -2 lines 0 comments Download
M chrome/chrome_tests_unit.gypi View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 1 chunk +0 lines, -1 line 0 comments Download

Messages

Total messages: 19 (3 generated)
Lalit Maganti
Another FYI change for splitting up the big commit.
5 years, 3 months ago (2015-09-11 11:50:21 UTC) #2
mlamouri (slow - plz ping)
A few comments from a first pass. https://codereview.chromium.org/1337903002/diff/100001/chrome/browser/permissions/permission_context_base.cc File chrome/browser/permissions/permission_context_base.cc (right): https://codereview.chromium.org/1337903002/diff/100001/chrome/browser/permissions/permission_context_base.cc#newcode76 chrome/browser/permissions/permission_context_base.cc:76: if (web_contents ...
5 years, 3 months ago (2015-09-16 16:21:01 UTC) #3
Lalit Maganti
https://codereview.chromium.org/1337903002/diff/100001/chrome/browser/permissions/permission_context_base.cc File chrome/browser/permissions/permission_context_base.cc (right): https://codereview.chromium.org/1337903002/diff/100001/chrome/browser/permissions/permission_context_base.cc#newcode76 chrome/browser/permissions/permission_context_base.cc:76: if (web_contents == nullptr) On 2015/09/16 16:21:00, Mounir Lamouri ...
5 years, 3 months ago (2015-09-16 17:28:38 UTC) #4
mlamouri (slow - plz ping)
CC: dfalcantara@ so he can follow the status of this CL given that it's required ...
5 years, 2 months ago (2015-09-28 13:30:15 UTC) #5
Lalit Maganti
https://codereview.chromium.org/1337903002/diff/450001/chrome/browser/permissions/permission_context_base.cc File chrome/browser/permissions/permission_context_base.cc (right): https://codereview.chromium.org/1337903002/diff/450001/chrome/browser/permissions/permission_context_base.cc#newcode94 chrome/browser/permissions/permission_context_base.cc:94: if (PermissionInfoBarManager::FromWebContents(web_contents) != NULL) { On 2015/09/28 13:30:14, Mounir ...
5 years, 2 months ago (2015-09-28 15:32:39 UTC) #6
mlamouri (slow - plz ping)
https://codereview.chromium.org/1337903002/diff/530001/chrome/browser/permissions/permission_context_base.cc File chrome/browser/permissions/permission_context_base.cc (right): https://codereview.chromium.org/1337903002/diff/530001/chrome/browser/permissions/permission_context_base.cc#newcode83 chrome/browser/permissions/permission_context_base.cc:83: if (PermissionBubbleManager::Enabled()) { Could you do: if (PermissionBubbleManager::Enabled() && ...
5 years, 2 months ago (2015-09-29 14:02:18 UTC) #7
Lalit Maganti
https://codereview.chromium.org/1337903002/diff/530001/chrome/browser/permissions/permission_context_base.cc File chrome/browser/permissions/permission_context_base.cc (right): https://codereview.chromium.org/1337903002/diff/530001/chrome/browser/permissions/permission_context_base.cc#newcode83 chrome/browser/permissions/permission_context_base.cc:83: if (PermissionBubbleManager::Enabled()) { On 2015/09/29 14:02:17, Mounir Lamouri wrote: ...
5 years, 2 months ago (2015-10-01 17:05:14 UTC) #8
mlamouri (slow - plz ping)
The two major remaining issues are the usage of PermissionManager in the request and the ...
5 years, 2 months ago (2015-10-02 11:49:40 UTC) #9
Lalit Maganti
https://codereview.chromium.org/1337903002/diff/630001/chrome/browser/permissions/permission_infobar_manager.cc File chrome/browser/permissions/permission_infobar_manager.cc (right): https://codereview.chromium.org/1337903002/diff/630001/chrome/browser/permissions/permission_infobar_manager.cc#newcode51 chrome/browser/permissions/permission_infobar_manager.cc:51: weak_factory_.GetWeakPtr())); On 2015/10/02 11:49:39, Mounir Lamouri wrote: > It ...
5 years, 2 months ago (2015-10-02 13:37:46 UTC) #10
mlamouri (slow - plz ping)
lgtm with comments applied. https://codereview.chromium.org/1337903002/diff/710001/chrome/browser/permissions/permission_infobar_manager.cc File chrome/browser/permissions/permission_infobar_manager.cc (right): https://codereview.chromium.org/1337903002/diff/710001/chrome/browser/permissions/permission_infobar_manager.cc#newcode35 chrome/browser/permissions/permission_infobar_manager.cc:35: const PermissionDecidedCallback& response_callback) { nit: ...
5 years, 2 months ago (2015-10-02 15:51:07 UTC) #11
Lalit Maganti
https://codereview.chromium.org/1337903002/diff/710001/chrome/browser/permissions/permission_infobar_manager.cc File chrome/browser/permissions/permission_infobar_manager.cc (right): https://codereview.chromium.org/1337903002/diff/710001/chrome/browser/permissions/permission_infobar_manager.cc#newcode35 chrome/browser/permissions/permission_infobar_manager.cc:35: const PermissionDecidedCallback& response_callback) { On 2015/10/02 15:51:06, Mounir Lamouri ...
5 years, 2 months ago (2015-10-02 16:06:43 UTC) #12
Lalit Maganti
https://codereview.chromium.org/1337903002/diff/710001/chrome/browser/permissions/permission_infobar_manager.cc File chrome/browser/permissions/permission_infobar_manager.cc (right): https://codereview.chromium.org/1337903002/diff/710001/chrome/browser/permissions/permission_infobar_manager.cc#newcode35 chrome/browser/permissions/permission_infobar_manager.cc:35: const PermissionDecidedCallback& response_callback) { On 2015/10/02 15:51:06, Mounir Lamouri ...
5 years, 2 months ago (2015-10-02 16:06:44 UTC) #13
mlamouri (slow - plz ping)
+jochen@ for chrome/ changes.
5 years, 2 months ago (2015-10-03 11:22:04 UTC) #15
Lalit Maganti (personal)
On 2015/10/03 11:22:04, Mounir Lamouri wrote: > +jochen@ for chrome/ changes. This is failing tests ...
5 years, 2 months ago (2015-10-03 13:43:08 UTC) #16
Lalit Maganti (personal)
Superseded by https://codereview.chromium.org/1422053004/ Can't close this so would appreciate someone else doing so :)
5 years, 1 month ago (2015-10-26 21:27:51 UTC) #18
Lalit Maganti (personal)
5 years, 1 month ago (2015-10-26 21:27:54 UTC) #19
Superseded by https://codereview.chromium.org/1422053004/
Can't close this so would appreciate someone else doing so :)

Powered by Google App Engine
This is Rietveld 408576698