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

Issue 2651163002: Add UMA for autoblocking and embargoing. (Closed)

Created:
3 years, 11 months ago by meredithl
Modified:
3 years, 10 months ago
CC:
chromium-reviews, mlamouri+watch-permissions_chromium.org, asvitkine+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 UMA for autoblocking and embargoing. Metrics are recorded in PermissionUmaUtil. Currently, the client records what the response time was from Safe Browsing, as well as what the response was. The autoblocker records embargo status for both Permissions Blacklisting and repeated dismissals. Recording that a permission was not embargoed happens in either PermissionsContextBase once the permission has been responded to, or in PermissionRequestImpl when it is destroyed after not being responded to. These are mutually exclusive events so they should not interfere with one another. BUG=679877

Patch Set 1 #

Total comments: 26

Patch Set 2 : Nits, review #

Patch Set 3 : Rebase #

Patch Set 4 : Sync branch, add test #

Total comments: 4

Patch Set 5 : Review comments, add histogram checks #

Total comments: 16

Patch Set 6 : Review #

Total comments: 2

Patch Set 7 : Review #

Total comments: 4
Unified diffs Side-by-side diffs Delta from patch set Stats (+251 lines, -13 lines) Patch
M chrome/browser/permissions/permission_blacklist_client.h View 1 2 3 4 5 4 chunks +6 lines, -2 lines 0 comments Download
M chrome/browser/permissions/permission_blacklist_client.cc View 1 2 3 4 5 4 chunks +16 lines, -5 lines 0 comments Download
M chrome/browser/permissions/permission_context_base.cc View 1 2 3 4 1 chunk +5 lines, -0 lines 4 comments Download
M chrome/browser/permissions/permission_context_base_unittest.cc View 1 2 3 4 5 7 chunks +24 lines, -1 line 0 comments Download
M chrome/browser/permissions/permission_decision_auto_blocker.cc View 1 2 3 4 5 6 6 chunks +36 lines, -3 lines 0 comments Download
M chrome/browser/permissions/permission_decision_auto_blocker_unittest.cc View 1 2 3 4 5 9 chunks +51 lines, -1 line 0 comments Download
M chrome/browser/permissions/permission_request_impl.cc View 1 chunk +2 lines, -0 lines 0 comments Download
M chrome/browser/permissions/permission_uma_util.h View 1 2 3 4 5 3 chunks +26 lines, -1 line 0 comments Download
M chrome/browser/permissions/permission_uma_util.cc View 1 2 chunks +27 lines, -0 lines 0 comments Download
M tools/metrics/histograms/histograms.xml View 1 2 3 chunks +58 lines, -0 lines 0 comments Download

Dependent Patchsets:

Messages

Total messages: 43 (26 generated)
meredithl
Hey guys. PTAL!
3 years, 11 months ago (2017-01-25 06:42:03 UTC) #4
dominickn
https://codereview.chromium.org/2651163002/diff/1/chrome/browser/permissions/permission_blacklist_client.cc File chrome/browser/permissions/permission_blacklist_client.cc (right): https://codereview.chromium.org/2651163002/diff/1/chrome/browser/permissions/permission_blacklist_client.cc#newcode92 chrome/browser/permissions/permission_blacklist_client.cc:92: // record elapsed time in PermissionUmaUtil This comment is ...
3 years, 10 months ago (2017-01-27 06:05:47 UTC) #7
meredithl
Thanks! https://codereview.chromium.org/2651163002/diff/1/chrome/browser/permissions/permission_blacklist_client.cc File chrome/browser/permissions/permission_blacklist_client.cc (right): https://codereview.chromium.org/2651163002/diff/1/chrome/browser/permissions/permission_blacklist_client.cc#newcode92 chrome/browser/permissions/permission_blacklist_client.cc:92: // record elapsed time in PermissionUmaUtil On 2017/01/27 ...
3 years, 10 months ago (2017-01-29 23:48:30 UTC) #10
dominickn
https://codereview.chromium.org/2651163002/diff/1/chrome/browser/permissions/permission_decision_auto_blocker.cc File chrome/browser/permissions/permission_decision_auto_blocker.cc (right): https://codereview.chromium.org/2651163002/diff/1/chrome/browser/permissions/permission_decision_auto_blocker.cc#newcode376 chrome/browser/permissions/permission_decision_auto_blocker.cc:376: PermissionUmaUtil::RecordPermissionEmbargoReason( On 2017/01/29 23:48:29, meredithl wrote: > On 2017/01/27 ...
3 years, 10 months ago (2017-01-30 00:06:20 UTC) #13
meredithl
https://codereview.chromium.org/2651163002/diff/1/chrome/browser/permissions/permission_decision_auto_blocker.cc File chrome/browser/permissions/permission_decision_auto_blocker.cc (right): https://codereview.chromium.org/2651163002/diff/1/chrome/browser/permissions/permission_decision_auto_blocker.cc#newcode376 chrome/browser/permissions/permission_decision_auto_blocker.cc:376: PermissionUmaUtil::RecordPermissionEmbargoReason( On 2017/01/30 00:06:20, dominickn wrote: > On 2017/01/29 ...
3 years, 10 months ago (2017-01-30 00:34:33 UTC) #16
dominickn
https://codereview.chromium.org/2651163002/diff/1/chrome/browser/permissions/permission_decision_auto_blocker.cc File chrome/browser/permissions/permission_decision_auto_blocker.cc (right): https://codereview.chromium.org/2651163002/diff/1/chrome/browser/permissions/permission_decision_auto_blocker.cc#newcode376 chrome/browser/permissions/permission_decision_auto_blocker.cc:376: PermissionUmaUtil::RecordPermissionEmbargoReason( On 2017/01/30 00:34:33, meredithl wrote: > On 2017/01/30 ...
3 years, 10 months ago (2017-01-30 00:42:36 UTC) #19
meredithl
https://codereview.chromium.org/2651163002/diff/1/chrome/browser/permissions/permission_decision_auto_blocker.cc File chrome/browser/permissions/permission_decision_auto_blocker.cc (right): https://codereview.chromium.org/2651163002/diff/1/chrome/browser/permissions/permission_decision_auto_blocker.cc#newcode376 chrome/browser/permissions/permission_decision_auto_blocker.cc:376: PermissionUmaUtil::RecordPermissionEmbargoReason( On 2017/01/30 00:42:36, dominickn wrote: > On 2017/01/30 ...
3 years, 10 months ago (2017-01-30 02:04:47 UTC) #22
dominickn
https://codereview.chromium.org/2651163002/diff/60001/chrome/browser/permissions/permission_context_base.cc File chrome/browser/permissions/permission_context_base.cc (right): https://codereview.chromium.org/2651163002/diff/60001/chrome/browser/permissions/permission_context_base.cc#newcode292 chrome/browser/permissions/permission_context_base.cc:292: PermissionUmaUtil::RecordPermissionEmbargoReason( Nit: add a comment saying: // If a ...
3 years, 10 months ago (2017-01-30 02:41:36 UTC) #23
meredithl
Still not sure on the use of ExpectedBucketCount vs. ExpectedTotalCount. https://codereview.chromium.org/2651163002/diff/60001/chrome/browser/permissions/permission_context_base.cc File chrome/browser/permissions/permission_context_base.cc (right): https://codereview.chromium.org/2651163002/diff/60001/chrome/browser/permissions/permission_context_base.cc#newcode292 ...
3 years, 10 months ago (2017-01-30 03:52:17 UTC) #28
dominickn
Thanks Meredith, nearly there! https://codereview.chromium.org/2651163002/diff/80001/chrome/browser/permissions/permission_blacklist_client.h File chrome/browser/permissions/permission_blacklist_client.h (right): https://codereview.chromium.org/2651163002/diff/80001/chrome/browser/permissions/permission_blacklist_client.h#newcode7 chrome/browser/permissions/permission_blacklist_client.h:7: #include <memory> for std::unique_ptr https://codereview.chromium.org/2651163002/diff/80001/chrome/browser/permissions/permission_blacklist_client.h#newcode10 ...
3 years, 10 months ago (2017-01-30 04:55:26 UTC) #29
meredithl
https://codereview.chromium.org/2651163002/diff/80001/chrome/browser/permissions/permission_blacklist_client.h File chrome/browser/permissions/permission_blacklist_client.h (right): https://codereview.chromium.org/2651163002/diff/80001/chrome/browser/permissions/permission_blacklist_client.h#newcode7 chrome/browser/permissions/permission_blacklist_client.h:7: On 2017/01/30 04:55:25, dominickn wrote: > #include <memory> for ...
3 years, 10 months ago (2017-01-30 05:37:41 UTC) #34
dominickn
lgtm. Thanks! https://codereview.chromium.org/2651163002/diff/80001/chrome/browser/permissions/permission_context_base_unittest.cc File chrome/browser/permissions/permission_context_base_unittest.cc (right): https://codereview.chromium.org/2651163002/diff/80001/chrome/browser/permissions/permission_context_base_unittest.cc#newcode357 chrome/browser/permissions/permission_context_base_unittest.cc:357: histograms.ExpectTotalCount("Permissions.AutoBlocker.EmbargoReason", On 2017/01/30 05:37:40, meredithl wrote: > ...
3 years, 10 months ago (2017-01-30 05:52:29 UTC) #35
raymes
Sorry for the delay on this! Hmm, I'm not quite sure what we're trying to ...
3 years, 10 months ago (2017-02-01 19:15:44 UTC) #38
meredithl
On 2017/02/01 19:15:44, raymes wrote: > Sorry for the delay on this! > > Hmm, ...
3 years, 10 months ago (2017-02-01 22:50:22 UTC) #39
meredithl
https://codereview.chromium.org/2651163002/diff/100001/chrome/browser/permissions/permission_decision_auto_blocker.cc File chrome/browser/permissions/permission_decision_auto_blocker.cc (right): https://codereview.chromium.org/2651163002/diff/100001/chrome/browser/permissions/permission_decision_auto_blocker.cc#newcode253 chrome/browser/permissions/permission_decision_auto_blocker.cc:253: PermissionEmbargoReason::REPEATED_DISMISSALS); On 2017/02/01 19:15:44, raymes wrote: > Can these ...
3 years, 10 months ago (2017-02-01 22:52:37 UTC) #40
raymes
Hi Meredith, I talked to Dom and realized that we might actually want to record ...
3 years, 10 months ago (2017-02-03 19:56:20 UTC) #41
meredithl
3 years, 10 months ago (2017-02-08 03:55:37 UTC) #43
Message was sent while issue was closed.
On 2017/02/03 19:56:20, raymes wrote:
> Hi Meredith,
> 
> I talked to Dom and realized that we might actually want to record the number
of
> requests that are blocked due to embargo vs the number let through (as opposed
> to just when an embargo occurs). 
> 
> I think that might change the implementation a bit and I've added some notes
> below, but it might be easier to chat about this in the office next week.
> 
> You may want to pull out the changes in
> chrome/browser/permissions/permission_blacklist_client.h/cc into a separate CL
> since they seem ok to me and it would allow us to focus on the trickier metric
> here in this CL.
> 
> Thanks!
> Raymes
> 
>
https://codereview.chromium.org/2651163002/diff/120001/chrome/browser/permiss...
> File chrome/browser/permissions/permission_context_base.cc (right):
> 
>
https://codereview.chromium.org/2651163002/diff/120001/chrome/browser/permiss...
> chrome/browser/permissions/permission_context_base.cc:115:
> GetPermissionStatus(requesting_origin, embedding_origin);
> I think we want to record that it was embargoed here, if the reason it was
> blocked is due to embargo.
> 
>
https://codereview.chromium.org/2651163002/diff/120001/chrome/browser/permiss...
> chrome/browser/permissions/permission_context_base.cc:146: bool
> permission_blocked) {
> If we pass in the reason for the permission being blocked here, we can record
> the metric at this layer. Basically we would just add the metric recording
into
> the if (permission_blocked) case below
> 
>
https://codereview.chromium.org/2651163002/diff/120001/chrome/browser/permiss...
> chrome/browser/permissions/permission_context_base.cc:169: const GURL&
> embedding_origin) const {
> I think we might want to have a version of this function which returns a
denial
> reason.
> 
>
https://codereview.chromium.org/2651163002/diff/120001/chrome/browser/permiss...
> chrome/browser/permissions/permission_context_base.cc:318: content_setting =
> CONTENT_SETTING_BLOCK;
> This is slightly orthogonal to this CL, but I think we can just remove this
line
> and rework this into:
> if (content_setting == CONTENT_SETTING_DEFAULT)
>   PermissionUmaUtil::RecordPermissionEmbargoReason

After the meeting with Dominick and Raymes, it has been decided that we were
conflating two different metrics. I'm closing this issue for now, and will split
out the two metrics we want into different CLs. 
The current plan is to have one metric that records the total number of requests
that could trigger a prompt. This should be comprised of the buckets: prompts
not shown due to blacklist embargo, prompts not shown due to dismissal embargo,
prompts not shown due to a new blacklist embargo (placed under embargo for the
current request) and everything that shows a prompt.
The other metric records any embargo interactions through
PermissionDecisionAutoBlocker. These include when a permission is placed under
embargo for blacklisting, placed under embargo for dismissals (once the prompt
has been dismissed), or if the permission is granted/denied/ignored it is
recorded as not embargoed. These will be recorded from PermissionContextBase, as
its the only place we can record both permissions blacklisting and dismissals.

I'll be sending out those CLs (hopefully) very soon. Email me with questions,
this will all be added to the design doc soon.

Powered by Google App Engine
This is Rietveld 408576698