Chromium Code Reviews
Help | Chromium Project | Sign in
(22)

Issue 49753002: RAPPOR implementation (Closed)

Can't Edit
Can't Publish+Mail
Start Review
Created:
1 year, 9 months ago by Steven Holte
Modified:
1 year, 4 months ago
CC:
chromium-reviews, Ilya Sherman (Away 7.18-8.03), jar (doing other things), asvitkine+watch_chromium.org, ulfar, vpihur, battre
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Visibility:
Public.

Description

Implementation of Randomized Aggregatable Privacy-Preserving Ordinal Responses (RAPPORs). See the design doc at http://www.chromium.org/developers/design-documents/rappor BUG=328168 TBR=darin@chromium.org Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=252492

Patch Set 1 #

Total comments: 6

Patch Set 2 : Named metrics #

Patch Set 3 : #

Patch Set 4 : Renames to Rappor #

Patch Set 5 : Detach from UMA #

Patch Set 6 : Moved to components #

Patch Set 7 : Seperated log generation and uploading #

Total comments: 14

Patch Set 8 : BrowserProcess member #

Total comments: 21

Patch Set 9 : #

Total comments: 16

Patch Set 10 : Extract RapporParameters #

Patch Set 11 : #

Total comments: 53

Patch Set 12 : Merge Recorder into Service #

Patch Set 13 : RapporMetric #

Total comments: 20

Patch Set 14 : #

Total comments: 34

Patch Set 15 : #

Patch Set 16 : #

Patch Set 17 : #

Total comments: 175

Patch Set 18 : Partial fixes #

Patch Set 19 : #

Patch Set 20 : Field Trial #

Patch Set 21 : RapporMetrics StatsTest #

Total comments: 26

Patch Set 22 : Finch Param #

Total comments: 4

Patch Set 23 : #

Total comments: 8

Patch Set 24 : Cohorts #

Total comments: 9

Patch Set 25 : HashMetricName #

Patch Set 26 : eTLD and fake data seed #

Patch Set 27 : #

Total comments: 2

Patch Set 28 : Rappor Registry #

Patch Set 29 : Rappor Registry #

Total comments: 6

Patch Set 30 : Split Name/Parameters #

Total comments: 60

Patch Set 31 : #

Total comments: 11

Patch Set 32 : LogUploaderTest #

Patch Set 33 : CityHash #

Total comments: 24

Patch Set 34 : OWNERS #

Patch Set 35 : HMAC_DRBG #

Total comments: 6

Patch Set 36 : #

Patch Set 37 : #

Total comments: 2

Patch Set 38 : #

Total comments: 16

Patch Set 39 : #

Total comments: 2

Patch Set 40 : #

Total comments: 8

Patch Set 41 : #

Patch Set 42 : #

Total comments: 33

Patch Set 43 : #

Total comments: 10

Patch Set 44 : #

Total comments: 21

Patch Set 45 : Rebased #

Patch Set 46 : #

Total comments: 180

Patch Set 47 : #

Patch Set 48 : #

Patch Set 49 : #

Patch Set 50 : #

Patch Set 51 : NIST test vector #

Total comments: 15

Patch Set 52 : #

Patch Set 53 : #

Total comments: 9

Patch Set 54 : #

Patch Set 55 : Rebase #

Patch Set 56 : Rename metrics_util to metrics_hashes #

Patch Set 57 : #

Unified diffs Side-by-side diffs Delta from patch set Stats (+1926 lines, -56 lines) Patch
M DEPS 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 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 1 chunk +0 lines, -1 line 0 comments Download
M chrome/DEPS 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 40 41 42 43 44 45 46 47 48 49 50 51 52 53 1 chunk +1 line, -0 lines 0 comments Download
M chrome/browser/DEPS 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 40 41 42 43 44 1 chunk +1 line, -0 lines 0 comments Download
M chrome/browser/browser_process.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 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 2 chunks +5 lines, -0 lines 0 comments Download
M chrome/browser/browser_process_impl.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 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 2 chunks +3 lines, -0 lines 0 comments Download
M chrome/browser/browser_process_impl.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 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 2 chunks +8 lines, -0 lines 0 comments Download
M chrome/browser/chrome_browser_main.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 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 2 chunks +5 lines, -0 lines 0 comments Download
M chrome/browser/prefs/browser_prefs.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 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 2 chunks +2 lines, -0 lines 0 comments Download
M chrome/browser/prefs/pref_metrics_service.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 40 41 42 43 3 chunks +10 lines, -1 line 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 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 1 chunk +1 line, -0 lines 0 comments Download
M chrome/chrome_common.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 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 1 chunk +1 line, -0 lines 0 comments Download
M chrome/common/metrics/metrics_log_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 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 3 chunks +2 lines, -25 lines 0 comments Download
M chrome/common/metrics/metrics_log_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 2 chunks +0 lines, -20 lines 0 comments Download
M chrome/test/base/testing_browser_process.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 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 1 chunk +1 line, -0 lines 0 comments Download
M chrome/test/base/testing_browser_process.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 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 1 chunk +4 lines, -0 lines 0 comments Download
M components/OWNERS 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 40 41 42 43 44 45 46 47 48 49 50 51 52 53 2 chunks +9 lines, -0 lines 0 comments Download
M components/components.gyp 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 40 41 42 43 44 45 46 47 48 49 50 51 52 1 chunk +2 lines, -0 lines 0 comments Download
M components/components_tests.gyp 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 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 3 chunks +9 lines, -0 lines 0 comments Download
A + components/metrics.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 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 1 chunk +6 lines, -6 lines 0 comments Download
A + components/metrics/OWNERS 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 40 41 42 43 44 45 46 47 48 49 50 51 52 53 1 chunk +3 lines, -3 lines 0 comments Download
A components/metrics/metrics_hashes.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 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 1 chunk +20 lines, -0 lines 0 comments Download
A components/metrics/metrics_hashes.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 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 1 chunk +39 lines, -0 lines 0 comments Download
A components/metrics/metrics_hashes_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 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 1 chunk +31 lines, -0 lines 0 comments Download
A components/rappor.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 39 40 41 42 43 44 45 46 47 48 49 50 51 52 1 chunk +45 lines, -0 lines 0 comments Download
A components/rappor/DEPS 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 40 41 42 43 44 45 46 47 48 49 50 51 52 1 chunk +7 lines, -0 lines 0 comments Download
A components/rappor/OWNERS 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 +2 lines, -0 lines 0 comments Download
A components/rappor/bloom_filter.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 39 40 41 42 43 44 45 46 47 1 chunk +48 lines, -0 lines 0 comments Download
A components/rappor/bloom_filter.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 40 41 42 43 44 45 46 47 48 49 50 51 52 53 1 chunk +38 lines, -0 lines 0 comments Download
A components/rappor/bloom_filter_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 38 39 40 41 42 43 44 45 46 47 1 chunk +54 lines, -0 lines 0 comments Download
A components/rappor/byte_vector_utils.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 39 40 41 42 43 44 45 46 47 48 49 50 51 52 1 chunk +110 lines, -0 lines 0 comments Download
A components/rappor/byte_vector_utils.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 40 41 42 43 44 45 46 47 48 49 50 51 52 1 chunk +215 lines, -0 lines 0 comments Download
A components/rappor/byte_vector_utils_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 38 39 40 41 42 43 44 45 46 47 48 49 50 1 chunk +128 lines, -0 lines 0 comments Download
A components/rappor/log_uploader.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 39 40 41 42 43 44 45 46 47 1 chunk +94 lines, -0 lines 0 comments Download
A components/rappor/log_uploader.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 40 41 42 43 44 45 46 47 1 chunk +149 lines, -0 lines 0 comments Download
A components/rappor/log_uploader_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 38 39 40 41 42 43 44 45 46 47 48 49 50 51 1 chunk +153 lines, -0 lines 0 comments Download
A components/rappor/proto/rappor_metric.proto 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 40 41 42 43 44 45 46 47 48 49 50 51 52 1 chunk +39 lines, -0 lines 0 comments Download
A components/rappor/rappor_metric.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 39 40 41 42 43 44 45 46 47 1 chunk +56 lines, -0 lines 0 comments Download
A components/rappor/rappor_metric.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 40 41 42 43 44 45 46 47 48 49 50 51 52 1 chunk +60 lines, -0 lines 0 comments Download
A components/rappor/rappor_metric_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 38 39 40 41 42 43 44 45 46 47 1 chunk +97 lines, -0 lines 0 comments Download
A components/rappor/rappor_parameters.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 1 chunk +43 lines, -0 lines 0 comments Download
A components/rappor/rappor_parameters.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 1 chunk +21 lines, -0 lines 0 comments Download
A components/rappor/rappor_pref_names.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 39 40 41 42 43 44 45 46 47 1 chunk +19 lines, -0 lines 0 comments Download
A components/rappor/rappor_pref_names.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 40 41 42 43 44 45 46 47 1 chunk +20 lines, -0 lines 0 comments Download
A components/rappor/rappor_service.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 39 40 41 42 43 44 45 46 47 1 chunk +109 lines, -0 lines 0 comments Download
A components/rappor/rappor_service.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 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 1 chunk +187 lines, -0 lines 0 comments Download
A components/rappor/rappor_service_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 38 39 40 41 42 43 44 45 1 chunk +50 lines, -0 lines 0 comments Download
M tools/metrics/histograms/histograms.xml View 2 chunks +19 lines, -0 lines 0 comments Download
Commit: CQ not working?

Messages

Total messages: 110 (0 generated)
Steven Holte
This is still a pretty early draft, but any pointers about where different bits of ...
1 year, 9 months ago (2013-10-28 21:02:44 UTC) #1
Ilya Sherman (Away 7.18-8.03)
I'm not familiar with the context for this change. Is there a design doc that ...
1 year, 9 months ago (2013-10-28 23:38:27 UTC) #2
Steven Holte
The only doc right now is this one: https://docs.google.com/a/google.com/document/d/1Us5U2lA8g_2s5Bf5ag7LGa3SZ97sjgjVLtEANSgsGic/edit I'm working on one with more ...
1 year, 9 months ago (2013-10-28 23:50:00 UTC) #3
Ilya Sherman (Away 7.18-8.03)
On 2013/10/28 23:50:00, holte wrote: > The only doc right now is this one: > ...
1 year, 9 months ago (2013-10-29 00:32:31 UTC) #4
Alexei Svitkine
I'll review more later when I have a chance. Here's a few initial nits. I'm ...
1 year, 7 months ago (2013-12-11 15:27:04 UTC) #5
Steven Holte
https://codereview.chromium.org/49753002/diff/220001/chrome/browser/chrome_browser_main.cc File chrome/browser/chrome_browser_main.cc (right): https://codereview.chromium.org/49753002/diff/220001/chrome/browser/chrome_browser_main.cc#newcode1130 chrome/browser/chrome_browser_main.cc:1130: browser_process_->system_request_context()); On 2013/12/11 15:27:05, Alexei Svitkine wrote: > Nit: ...
1 year, 7 months ago (2013-12-11 20:31:25 UTC) #6
Ilya Sherman (Away 7.18-8.03)
Friendly reminder: If this is no longer just a draft CL, please update the CL ...
1 year, 7 months ago (2013-12-12 08:49:21 UTC) #7
Jesse Doherty
Some initial comments. https://codereview.chromium.org/49753002/diff/240001/components/rappor/bloom_filter.cc File components/rappor/bloom_filter.cc (right): https://codereview.chromium.org/49753002/diff/240001/components/rappor/bloom_filter.cc#newcode16 components/rappor/bloom_filter.cc:16: const uint32_t hashSeedCount = 20; Use ...
1 year, 7 months ago (2013-12-16 17:04:02 UTC) #8
Steven Holte
https://codereview.chromium.org/49753002/diff/240001/components/rappor/bloom_filter.cc File components/rappor/bloom_filter.cc (right): https://codereview.chromium.org/49753002/diff/240001/components/rappor/bloom_filter.cc#newcode16 components/rappor/bloom_filter.cc:16: const uint32_t hashSeedCount = 20; On 2013/12/16 17:04:03, Jesse ...
1 year, 7 months ago (2013-12-16 23:02:16 UTC) #9
Jesse Doherty
https://codereview.chromium.org/49753002/diff/250001/components/rappor/proto/rappor_metric.proto File components/rappor/proto/rappor_metric.proto (right): https://codereview.chromium.org/49753002/diff/250001/components/rappor/proto/rappor_metric.proto#newcode14 components/rappor/proto/rappor_metric.proto:14: // Next tag: 3 Update next tag, maybe drop ...
1 year, 7 months ago (2013-12-17 23:00:25 UTC) #10
Steven Holte
https://codereview.chromium.org/49753002/diff/250001/components/rappor/proto/rappor_metric.proto File components/rappor/proto/rappor_metric.proto (right): https://codereview.chromium.org/49753002/diff/250001/components/rappor/proto/rappor_metric.proto#newcode16 components/rappor/proto/rappor_metric.proto:16: message RapporMetricProto { On 2013/12/17 23:00:25, Jesse Doherty wrote: ...
1 year, 7 months ago (2013-12-18 02:06:11 UTC) #11
Steven Holte
https://codereview.chromium.org/49753002/diff/250001/components/rappor/proto/rappor_metric.proto File components/rappor/proto/rappor_metric.proto (right): https://codereview.chromium.org/49753002/diff/250001/components/rappor/proto/rappor_metric.proto#newcode14 components/rappor/proto/rappor_metric.proto:14: // Next tag: 3 On 2013/12/17 23:00:25, Jesse Doherty ...
1 year, 7 months ago (2013-12-18 23:38:47 UTC) #12
Alexei Svitkine
https://codereview.chromium.org/49753002/diff/290001/chrome/browser/browser_process_impl.cc File chrome/browser/browser_process_impl.cc (right): https://codereview.chromium.org/49753002/diff/290001/chrome/browser/browser_process_impl.cc#newcode441 chrome/browser/browser_process_impl.cc:441: if (!rappor_service_.get()) { Nit: No {}s https://codereview.chromium.org/49753002/diff/290001/components/rappor.gypi File components/rappor.gypi ...
1 year, 7 months ago (2013-12-19 19:47:01 UTC) #13
Steven Holte
https://codereview.chromium.org/49753002/diff/290001/chrome/browser/browser_process_impl.cc File chrome/browser/browser_process_impl.cc (right): https://codereview.chromium.org/49753002/diff/290001/chrome/browser/browser_process_impl.cc#newcode441 chrome/browser/browser_process_impl.cc:441: if (!rappor_service_.get()) { On 2013/12/19 19:47:02, Alexei Svitkine wrote: ...
1 year, 7 months ago (2013-12-20 03:03:55 UTC) #14
Steven Holte
Renamed Rappor to RapporMetric, and bytevector.cc to byte_vector_utils.cc. Split code from rappor_reporter.cc and merged it ...
1 year, 7 months ago (2013-12-20 23:36:03 UTC) #15
Alexei Svitkine
https://codereview.chromium.org/49753002/diff/330001/components/rappor/bloom_filter.h File components/rappor/bloom_filter.h (right): https://codereview.chromium.org/49753002/diff/330001/components/rappor/bloom_filter.h#newcode29 components/rappor/bloom_filter.h:29: return bytes_; Nit: This can go on the same ...
1 year, 7 months ago (2013-12-24 16:59:29 UTC) #16
Steven Holte
https://codereview.chromium.org/49753002/diff/330001/components/rappor/bloom_filter.h File components/rappor/bloom_filter.h (right): https://codereview.chromium.org/49753002/diff/330001/components/rappor/bloom_filter.h#newcode29 components/rappor/bloom_filter.h:29: return bytes_; On 2013/12/24 16:59:30, asvitkine (OOO until Jan ...
1 year, 6 months ago (2014-01-04 00:12:54 UTC) #17
Alexei Svitkine
I did another round of review on this. Ilya, would you mind also giving this ...
1 year, 6 months ago (2014-01-09 19:23:08 UTC) #18
Steven Holte
BTW, what should I do about this presubmit error? These files spam the console log ...
1 year, 6 months ago (2014-01-09 22:02:59 UTC) #19
Alexei Svitkine
On Thu, Jan 9, 2014 at 5:03 PM, <holte@chromium.org> wrote: > BTW, what should I ...
1 year, 6 months ago (2014-01-09 22:19:30 UTC) #20
Ilya Sherman (Away 7.18-8.03)
Thanks. This actually looks really good, I'm just a nitpicky reviewer. Don't be disheartened :) ...
1 year, 6 months ago (2014-01-10 11:00:32 UTC) #21
Alexei Svitkine
https://codereview.chromium.org/49753002/diff/920001/components/rappor/bloom_filter.cc File components/rappor/bloom_filter.cc (right): https://codereview.chromium.org/49753002/diff/920001/components/rappor/bloom_filter.cc#newcode44 components/rappor/bloom_filter.cc:44: for (size_t i = 0; i < strings.size(); ++i) ...
1 year, 6 months ago (2014-01-10 12:51:02 UTC) #22
Ilya Sherman (Away 7.18-8.03)
https://codereview.chromium.org/49753002/diff/920001/components/rappor/bloom_filter.cc File components/rappor/bloom_filter.cc (right): https://codereview.chromium.org/49753002/diff/920001/components/rappor/bloom_filter.cc#newcode44 components/rappor/bloom_filter.cc:44: for (size_t i = 0; i < strings.size(); ++i) ...
1 year, 6 months ago (2014-01-10 22:34:47 UTC) #23
Steven Holte
Partial response to Ilya's feedback. Will address more in next patch. https://codereview.chromium.org/49753002/diff/920001/chrome/browser/prefs/pref_metrics_service.cc File chrome/browser/prefs/pref_metrics_service.cc (right): ...
1 year, 6 months ago (2014-01-14 00:47:54 UTC) #24
Alexei Svitkine
While you're still addressing Ilya's comments, the other thing I'd like to mention is I ...
1 year, 6 months ago (2014-01-14 17:55:48 UTC) #25
Steven Holte
Incorporated/responded to the rest of Ilya's comments. Will add finch experiment in next revision. https://codereview.chromium.org/49753002/diff/920001/components/rappor/bloom_filter.cc ...
1 year, 6 months ago (2014-01-15 04:53:43 UTC) #26
Steven Holte
Added a rollout field trial and statistical test of RapporMetric. https://codereview.chromium.org/49753002/diff/920001/components/rappor/rappor_metric_unittest.cc File components/rappor/rappor_metric_unittest.cc (right): https://codereview.chromium.org/49753002/diff/920001/components/rappor/rappor_metric_unittest.cc#newcode33 ...
1 year, 6 months ago (2014-01-15 23:00:56 UTC) #27
Alexei Svitkine
Some more comments your way. (Sorry for my latency on this, but many things are ...
1 year, 6 months ago (2014-01-21 18:14:03 UTC) #28
Steven Holte
https://codereview.chromium.org/49753002/diff/1230001/components/rappor/bloom_filter_unittest.cc File components/rappor/bloom_filter_unittest.cc (right): https://codereview.chromium.org/49753002/diff/1230001/components/rappor/bloom_filter_unittest.cc#newcode13 components/rappor/bloom_filter_unittest.cc:13: int CountBits(const ByteVector& v) { On 2014/01/21 18:14:04, Alexei ...
1 year, 6 months ago (2014-01-21 20:25:13 UTC) #29
Alexei Svitkine
https://codereview.chromium.org/49753002/diff/1230001/components/rappor/rappor_parameters.h File components/rappor/rappor_parameters.h (right): https://codereview.chromium.org/49753002/diff/1230001/components/rappor/rappor_parameters.h#newcode42 components/rappor/rappor_parameters.h:42: std::ostream& operator<<(std::ostream& out, const RapporParameters& rhs); On 2014/01/21 20:25:14, ...
1 year, 6 months ago (2014-01-21 20:30:38 UTC) #30
Steven Holte
https://codereview.chromium.org/49753002/diff/1230001/components/rappor/rappor_parameters.h File components/rappor/rappor_parameters.h (right): https://codereview.chromium.org/49753002/diff/1230001/components/rappor/rappor_parameters.h#newcode42 components/rappor/rappor_parameters.h:42: std::ostream& operator<<(std::ostream& out, const RapporParameters& rhs); On 2014/01/21 20:30:39, ...
1 year, 6 months ago (2014-01-21 21:05:31 UTC) #31
Alexei Svitkine
So code is looking pretty good at this point, so I'm going to look more ...
1 year, 6 months ago (2014-01-22 22:13:27 UTC) #32
ulfar
Guidance coming. U On Wed, Jan 22, 2014 at 2:13 PM, <asvitkine@chromium.org> wrote: > So ...
1 year, 6 months ago (2014-01-22 22:29:42 UTC) #33
Steven Holte
Following up on an offline discussion with ulfar and vpihur yesterday, I've added support for ...
1 year, 6 months ago (2014-01-24 02:06:16 UTC) #34
ulfar
To elaborate: Cohorts are useful for eliminating the uncertainty induced by the Bloom filter hash ...
1 year, 6 months ago (2014-01-24 05:57:38 UTC) #35
Alexei Svitkine
More comments. https://codereview.chromium.org/49753002/diff/1420001/components/rappor/rappor_metric.h File components/rappor/rappor_metric.h (right): https://codereview.chromium.org/49753002/diff/1420001/components/rappor/rappor_metric.h#newcode8 components/rappor/rappor_metric.h:8: #include <assert.h> Does the header file need ...
1 year, 6 months ago (2014-01-24 22:09:02 UTC) #36
Steven Holte
https://codereview.chromium.org/49753002/diff/1420001/components/rappor/rappor_metric.h File components/rappor/rappor_metric.h (right): https://codereview.chromium.org/49753002/diff/1420001/components/rappor/rappor_metric.h#newcode8 components/rappor/rappor_metric.h:8: #include <assert.h> On 2014/01/24 22:09:03, Alexei Svitkine wrote: > ...
1 year, 6 months ago (2014-01-24 23:26:57 UTC) #37
Steven Holte
Some changes from discussion with vpihur/ulfar/tyler/dominic: - Modified the "Settings.HomePage" metric to record just eTLD+1 ...
1 year, 5 months ago (2014-02-03 20:27:37 UTC) #38
Alexei Svitkine
https://codereview.chromium.org/49753002/diff/1820002/chrome/browser/prefs/pref_metrics_service.cc File chrome/browser/prefs/pref_metrics_service.cc (right): https://codereview.chromium.org/49753002/diff/1820002/chrome/browser/prefs/pref_metrics_service.cc#newcode33 chrome/browser/prefs/pref_metrics_service.cc:33: const rappor::RapporParameters kHomePageRapporParameters = { As I said in ...
1 year, 5 months ago (2014-02-03 22:34:17 UTC) #39
Steven Holte
https://codereview.chromium.org/49753002/diff/1820002/chrome/browser/prefs/pref_metrics_service.cc File chrome/browser/prefs/pref_metrics_service.cc (right): https://codereview.chromium.org/49753002/diff/1820002/chrome/browser/prefs/pref_metrics_service.cc#newcode33 chrome/browser/prefs/pref_metrics_service.cc:33: const rappor::RapporParameters kHomePageRapporParameters = { On 2014/02/03 22:34:18, Alexei ...
1 year, 5 months ago (2014-02-03 23:58:04 UTC) #40
Alexei Svitkine
https://codereview.chromium.org/49753002/diff/2020001/components/rappor/rappor_parameters.h File components/rappor/rappor_parameters.h (right): https://codereview.chromium.org/49753002/diff/2020001/components/rappor/rappor_parameters.h#newcode44 components/rappor/rappor_parameters.h:44: extern const RapporParameters kHomePageRapporParameters; Remove? https://codereview.chromium.org/49753002/diff/2020001/components/rappor/rappor_registry.cc File components/rappor/rappor_registry.cc (right): ...
1 year, 5 months ago (2014-02-04 19:20:11 UTC) #41
ulfar
Probably RAPPOR_TLD_PLUS_ONE or something like that would be a good name. On Tue, Feb 4, ...
1 year, 5 months ago (2014-02-04 19:36:34 UTC) #42
Steven Holte
https://codereview.chromium.org/49753002/diff/2020001/components/rappor/rappor_parameters.h File components/rappor/rappor_parameters.h (right): https://codereview.chromium.org/49753002/diff/2020001/components/rappor/rappor_parameters.h#newcode44 components/rappor/rappor_parameters.h:44: extern const RapporParameters kHomePageRapporParameters; On 2014/02/04 19:20:12, Alexei Svitkine ...
1 year, 5 months ago (2014-02-04 21:41:20 UTC) #43
Alexei Svitkine
I've had a chance to do a more thorough review on this (actually looking closely ...
1 year, 5 months ago (2014-02-05 18:07:00 UTC) #44
ulfar
https://codereview.chromium.org/49753002/diff/2200001/components/rappor/rappor_metric.cc File components/rappor/rappor_metric.cc (right): https://codereview.chromium.org/49753002/diff/2200001/components/rappor/rappor_metric.cc#newcode33 components/rappor/rappor_metric.cc:33: std::string(real_bits.begin(), real_bits.end()); On 2014/02/05 18:07:01, Alexei Svitkine wrote: > ...
1 year, 5 months ago (2014-02-05 18:32:46 UTC) #45
Steven Holte
Will look at adding test for LogUploader next. https://codereview.chromium.org/49753002/diff/2200001/chrome/common/metrics/metrics_log_base.cc File chrome/common/metrics/metrics_log_base.cc (left): https://codereview.chromium.org/49753002/diff/2200001/chrome/common/metrics/metrics_log_base.cc#oldcode12 chrome/common/metrics/metrics_log_base.cc:12: #include ...
1 year, 5 months ago (2014-02-05 22:44:35 UTC) #46
Alexei Svitkine
https://codereview.chromium.org/49753002/diff/2310001/components/rappor/log_uploader.cc File components/rappor/log_uploader.cc (right): https://codereview.chromium.org/49753002/diff/2310001/components/rappor/log_uploader.cc#newcode114 components/rappor/log_uploader.cc:114: ResponseCodeToStatus(response_code), I know this how the MetricsService does it, ...
1 year, 5 months ago (2014-02-06 17:47:18 UTC) #47
Steven Holte
Added LogUploader test. https://codereview.chromium.org/49753002/diff/2310001/components/rappor/log_uploader.cc File components/rappor/log_uploader.cc (right): https://codereview.chromium.org/49753002/diff/2310001/components/rappor/log_uploader.cc#newcode114 components/rappor/log_uploader.cc:114: ResponseCodeToStatus(response_code), On 2014/02/06 17:47:20, Alexei Svitkine ...
1 year, 5 months ago (2014-02-06 23:07:07 UTC) #48
Steven Holte
Replaced MurmurHash3 with CityHash, which has better support in Dremel.
1 year, 5 months ago (2014-02-06 23:50:31 UTC) #49
Alexei Svitkine
LGTM % some final nits. Also, please add an OWNERS file for this (see my ...
1 year, 5 months ago (2014-02-07 18:24:20 UTC) #50
ulfar
Comments on https://sites.google.com/a/chromium.org/dev/developers/design-documents/rappor On that feature description page, I think the mathematical notation hurts, and ...
1 year, 5 months ago (2014-02-07 19:00:37 UTC) #51
ulfar
Also, the parameter configuration described in that doc is out of date. On Fri, Feb ...
1 year, 5 months ago (2014-02-07 19:05:57 UTC) #52
ulfar
https://codereview.chromium.org/49753002/diff/2430001/chrome/browser/prefs/pref_metrics_service.cc File chrome/browser/prefs/pref_metrics_service.cc (right): https://codereview.chromium.org/49753002/diff/2430001/chrome/browser/prefs/pref_metrics_service.cc#newcode74 chrome/browser/prefs/pref_metrics_service.cc:74: // pages, e.g. plus.google.com). Fix comment here. https://codereview.chromium.org/49753002/diff/2430001/components/rappor/bloom_filter.cc File ...
1 year, 5 months ago (2014-02-07 20:19:00 UTC) #53
Steven Holte
Adding OWNERS reviewers: thakis@ for chrome/browsers joi@ for components/ darin@ for third_party/smhasher wtc@ for net/ ...
1 year, 5 months ago (2014-02-07 21:08:15 UTC) #54
wtc
On 2014/02/07 21:08:15, Steven Holte wrote: > Adding OWNERS reviewers: > ... > wtc@ for ...
1 year, 5 months ago (2014-02-07 23:49:39 UTC) #55
Steven Holte
Now using the HMAC_DRBG algorithm for pseudo-random bits. @wtc (also @darin), I didn't modify net/crypto ...
1 year, 5 months ago (2014-02-08 01:32:13 UTC) #56
ulfar
https://codereview.chromium.org/49753002/diff/1790039/components/rappor/byte_vector_utils.cc File components/rappor/byte_vector_utils.cc (right): https://codereview.chromium.org/49753002/diff/1790039/components/rappor/byte_vector_utils.cc#newcode95 components/rappor/byte_vector_utils.cc:95: if (!keygen_hmac.Sign(initial_value + secret, key.data(), key.size())) Isn't the zero ...
1 year, 5 months ago (2014-02-08 01:51:31 UTC) #57
Steven Holte
https://codereview.chromium.org/49753002/diff/1790039/components/rappor/byte_vector_utils.cc File components/rappor/byte_vector_utils.cc (right): https://codereview.chromium.org/49753002/diff/1790039/components/rappor/byte_vector_utils.cc#newcode95 components/rappor/byte_vector_utils.cc:95: if (!keygen_hmac.Sign(initial_value + secret, key.data(), key.size())) On 2014/02/08 01:51:33, ...
1 year, 5 months ago (2014-02-08 02:19:44 UTC) #58
ulfar
lgtm LGTM on the code. Comments on the text at http://www.chromium.org/developers/design-documents/rappor still outstanding. Use descriptions ...
1 year, 5 months ago (2014-02-08 03:20:22 UTC) #59
ulfar
LGTM on the code. Comments on the text at http://www.chromium.org/developers/design-documents/rappor still outstanding. Use descriptions and ...
1 year, 5 months ago (2014-02-08 03:20:34 UTC) #60
Jói
//components/* and //components/rappor/OWNERS LGTM. Please rely on an OWNER from the latter-mentioned file for the ...
1 year, 5 months ago (2014-02-10 12:57:43 UTC) #61
Jesse Doherty
lgtm
1 year, 5 months ago (2014-02-10 14:34:52 UTC) #62
Steven Holte
Ulfar, I've updated the design doc at http://www.chromium.org/developers/design-documents/rappor https://codereview.chromium.org/49753002/diff/2720001/components/OWNERS File components/OWNERS (right): https://codereview.chromium.org/49753002/diff/2720001/components/OWNERS#newcode48 components/OWNERS:48: per-file ...
1 year, 5 months ago (2014-02-10 18:36:31 UTC) #63
wtc
Review comments on patch set 38: I reviewed the use of crypto/ and net/ in ...
1 year, 5 months ago (2014-02-10 20:12:51 UTC) #64
Steven Holte
https://codereview.chromium.org/49753002/diff/2850001/components/rappor/byte_vector_utils.cc File components/rappor/byte_vector_utils.cc (right): https://codereview.chromium.org/49753002/diff/2850001/components/rappor/byte_vector_utils.cc#newcode33 components/rappor/byte_vector_utils.cc:33: int CountBits(const ByteVector& vector) { On 2014/02/10 20:12:54, wtc ...
1 year, 5 months ago (2014-02-10 22:50:53 UTC) #65
ulfar
https://codereview.chromium.org/49753002/diff/2940001/components/rappor/byte_vector_utils.h File components/rappor/byte_vector_utils.h (right): https://codereview.chromium.org/49753002/diff/2940001/components/rappor/byte_vector_utils.h#newcode63 components/rappor/byte_vector_utils.h:63: // have been produced by some value of secret. ...
1 year, 5 months ago (2014-02-10 22:59:06 UTC) #66
Steven Holte
https://codereview.chromium.org/49753002/diff/2940001/components/rappor/byte_vector_utils.h File components/rappor/byte_vector_utils.h (right): https://codereview.chromium.org/49753002/diff/2940001/components/rappor/byte_vector_utils.h#newcode63 components/rappor/byte_vector_utils.h:63: // have been produced by some value of secret. ...
1 year, 5 months ago (2014-02-10 23:17:27 UTC) #67
wtc
Patch set 40 LGTM. https://codereview.chromium.org/49753002/diff/3000001/components/rappor/byte_vector_utils.cc File components/rappor/byte_vector_utils.cc (right): https://codereview.chromium.org/49753002/diff/3000001/components/rappor/byte_vector_utils.cc#newcode52 components/rappor/byte_vector_utils.cc:52: crypto::RandBytes(bytes.data(), bytes.size()); IMPORTANT: the data() ...
1 year, 5 months ago (2014-02-10 23:52:49 UTC) #68
wtc
https://codereview.chromium.org/49753002/diff/3000001/components/rappor/byte_vector_utils.h File components/rappor/byte_vector_utils.h (right): https://codereview.chromium.org/49753002/diff/3000001/components/rappor/byte_vector_utils.h#newcode40 components/rappor/byte_vector_utils.h:40: // Generates a random byte vector where the bits ...
1 year, 5 months ago (2014-02-10 23:56:15 UTC) #69
Steven Holte
https://codereview.chromium.org/49753002/diff/3000001/components/rappor/byte_vector_utils.cc File components/rappor/byte_vector_utils.cc (right): https://codereview.chromium.org/49753002/diff/3000001/components/rappor/byte_vector_utils.cc#newcode52 components/rappor/byte_vector_utils.cc:52: crypto::RandBytes(bytes.data(), bytes.size()); On 2014/02/10 23:52:51, wtc wrote: > > ...
1 year, 5 months ago (2014-02-11 00:36:11 UTC) #70
Alexei Svitkine
https://codereview.chromium.org/49753002/diff/3100001/components/rappor/byte_vector_utils.cc File components/rappor/byte_vector_utils.cc (right): https://codereview.chromium.org/49753002/diff/3100001/components/rappor/byte_vector_utils.cc#newcode74 components/rappor/byte_vector_utils.cc:74: requested_bytes_(0) { Why does this need to be a ...
1 year, 5 months ago (2014-02-11 16:59:05 UTC) #71
edknapp
https://codereview.chromium.org/49753002/diff/3100001/components/rappor/byte_vector_utils.cc File components/rappor/byte_vector_utils.cc (right): https://codereview.chromium.org/49753002/diff/3100001/components/rappor/byte_vector_utils.cc#newcode69 components/rappor/byte_vector_utils.cc:69: HmacByteVectorGenerator::HmacByteVectorGenerator(size_t byte_count, Please pass in entropy_input, nonce, and personalization_string ...
1 year, 5 months ago (2014-02-11 17:27:58 UTC) #72
wtc
https://codereview.chromium.org/49753002/diff/3100001/components/rappor/byte_vector_utils.cc File components/rappor/byte_vector_utils.cc (right): https://codereview.chromium.org/49753002/diff/3100001/components/rappor/byte_vector_utils.cc#newcode74 components/rappor/byte_vector_utils.cc:74: requested_bytes_(0) { On 2014/02/11 16:59:06, Alexei Svitkine wrote: > ...
1 year, 5 months ago (2014-02-11 20:55:27 UTC) #73
Steven Holte
https://codereview.chromium.org/49753002/diff/3100001/components/rappor/byte_vector_utils.cc File components/rappor/byte_vector_utils.cc (right): https://codereview.chromium.org/49753002/diff/3100001/components/rappor/byte_vector_utils.cc#newcode69 components/rappor/byte_vector_utils.cc:69: HmacByteVectorGenerator::HmacByteVectorGenerator(size_t byte_count, On 2014/02/11 17:28:00, edknapp wrote: > Please ...
1 year, 5 months ago (2014-02-11 22:08:12 UTC) #74
Steven Holte
Adding sky@ to replace thakis@ (Away) for chrome/browser/ review.
1 year, 5 months ago (2014-02-11 22:33:40 UTC) #75
edknapp
https://codereview.chromium.org/49753002/diff/3100001/components/rappor/rappor_service.cc File components/rappor/rappor_service.cc (right): https://codereview.chromium.org/49753002/diff/3100001/components/rappor/rappor_service.cc#newcode29 components/rappor/rappor_service.cc:29: const int kRapporSecretSize = 128; On 2014/02/11 22:08:14, Steven ...
1 year, 5 months ago (2014-02-12 00:27:15 UTC) #76
sky
Did this go through eng review? https://codereview.chromium.org/49753002/diff/3470001/chrome/browser/chrome_browser_main.cc File chrome/browser/chrome_browser_main.cc (right): https://codereview.chromium.org/49753002/diff/3470001/chrome/browser/chrome_browser_main.cc#newcode1084 chrome/browser/chrome_browser_main.cc:1084: browser_process_->rappor_service()->Start( How will ...
1 year, 5 months ago (2014-02-12 01:06:49 UTC) #77
Steven Holte
sky@ - Yes, this went through eng review. Here's the link to the eng review ...
1 year, 5 months ago (2014-02-12 04:02:53 UTC) #78
sky
LGTM
1 year, 5 months ago (2014-02-12 14:42:07 UTC) #79
Alexei Svitkine
https://codereview.chromium.org/49753002/diff/3100002/components/rappor/byte_vector_utils.cc File components/rappor/byte_vector_utils.cc (right): https://codereview.chromium.org/49753002/diff/3100002/components/rappor/byte_vector_utils.cc#newcode36 components/rappor/byte_vector_utils.cc:36: for(size_t i = 0; i < vector.size(); ++i) { ...
1 year, 5 months ago (2014-02-12 18:13:03 UTC) #80
Steven Holte
https://codereview.chromium.org/49753002/diff/3100002/components/rappor/byte_vector_utils.cc File components/rappor/byte_vector_utils.cc (right): https://codereview.chromium.org/49753002/diff/3100002/components/rappor/byte_vector_utils.cc#newcode36 components/rappor/byte_vector_utils.cc:36: for(size_t i = 0; i < vector.size(); ++i) { ...
1 year, 5 months ago (2014-02-12 22:28:48 UTC) #81
Alexei Svitkine
re-LGTM with a nit https://codereview.chromium.org/49753002/diff/3100002/components/rappor/byte_vector_utils.cc File components/rappor/byte_vector_utils.cc (right): https://codereview.chromium.org/49753002/diff/3100002/components/rappor/byte_vector_utils.cc#newcode124 components/rappor/byte_vector_utils.cc:124: if (!hmac2.Sign(value2 + char(0x01) + ...
1 year, 5 months ago (2014-02-12 22:42:33 UTC) #82
edknapp
https://codereview.chromium.org/49753002/diff/3770001/components/rappor/byte_vector_utils_unittest.cc File components/rappor/byte_vector_utils_unittest.cc (right): https://codereview.chromium.org/49753002/diff/3770001/components/rappor/byte_vector_utils_unittest.cc#newcode88 components/rappor/byte_vector_utils_unittest.cc:88: Could you include the relevant sample test vectors from ...
1 year, 5 months ago (2014-02-12 23:09:16 UTC) #83
Ilya Sherman (Away 7.18-8.03)
Some comments on the code outside of //components/rappor, which I'll look at next. Note that ...
1 year, 5 months ago (2014-02-12 23:25:58 UTC) #84
Ilya Sherman (Away 7.18-8.03)
Now with comments on the rappor code itself. Since there are lots of nits, I've ...
1 year, 5 months ago (2014-02-13 01:39:00 UTC) #85
Alexei Svitkine
I'll let Steve reply to the other comments, but just wanted to reply to the ...
1 year, 5 months ago (2014-02-13 04:22:31 UTC) #86
Steven Holte
Ilya, could you expand more on what privacy concerns you have about storing a random ...
1 year, 5 months ago (2014-02-13 05:11:10 UTC) #87