New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 704259 link

Starred by 8 users

Issue metadata

Status: Assigned
Owner:
Last visit > 30 days ago
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug

Blocked on:
issue 850170
issue 792975
issue 810142
issue 854248
issue 860802
issue 865394

Blocking:
issue 748549
issue 676024



Sign in to add a comment

Implement Reporting API

Project Member Reported by juliatut...@chromium.org, Mar 22 2017

Issue description

This is a metabug for the implementation of the Reporting API, as specified at wicg.github.io/reporting/.
 
Project Member

Comment 1 by bugdroid1@chromium.org, Mar 27 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5868433300e998d6aee22dd603d95c5e42830776

commit 5868433300e998d6aee22dd603d95c5e42830776
Author: juliatuttle <juliatuttle@chromium.org>
Date: Mon Mar 27 16:22:37 2017

Reporting: Implement cache.

Reporting is a spec for delivering out-of-band reports from various
other parts of the browser. See http://wicg.github.io/reporting/ for
the spec, or https://goo.gl/pygX5I for details of the planned
implementation in Chromium.

This implements the cache, which holds report delivery configuration
and queued reports.

BUG=704259

Review-Url: https://codereview.chromium.org/2708503002
Cr-Commit-Position: refs/heads/master@{#459797}

[modify] https://crrev.com/5868433300e998d6aee22dd603d95c5e42830776/net/BUILD.gn
[add] https://crrev.com/5868433300e998d6aee22dd603d95c5e42830776/net/reporting/reporting_cache.cc
[add] https://crrev.com/5868433300e998d6aee22dd603d95c5e42830776/net/reporting/reporting_cache.h
[add] https://crrev.com/5868433300e998d6aee22dd603d95c5e42830776/net/reporting/reporting_cache_unittest.cc
[add] https://crrev.com/5868433300e998d6aee22dd603d95c5e42830776/net/reporting/reporting_client.cc
[add] https://crrev.com/5868433300e998d6aee22dd603d95c5e42830776/net/reporting/reporting_client.h
[add] https://crrev.com/5868433300e998d6aee22dd603d95c5e42830776/net/reporting/reporting_report.cc
[add] https://crrev.com/5868433300e998d6aee22dd603d95c5e42830776/net/reporting/reporting_report.h
[add] https://crrev.com/5868433300e998d6aee22dd603d95c5e42830776/net/reporting/reporting_test_util.cc
[add] https://crrev.com/5868433300e998d6aee22dd603d95c5e42830776/net/reporting/reporting_test_util.h

Project Member

Comment 2 by bugdroid1@chromium.org, Mar 28 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/72a9ba62f86ddc14b76972333a3d5feee5f9b6d0

commit 72a9ba62f86ddc14b76972333a3d5feee5f9b6d0
Author: juliatuttle <juliatuttle@chromium.org>
Date: Tue Mar 28 17:28:52 2017

Reporting: Clarify "pending" reports, add README.md.

Add a few bits of documentation requested in a previous CL.

BUG=704259

Review-Url: https://codereview.chromium.org/2774403003
Cr-Commit-Position: refs/heads/master@{#460155}

[add] https://crrev.com/72a9ba62f86ddc14b76972333a3d5feee5f9b6d0/net/reporting/README.md
[modify] https://crrev.com/72a9ba62f86ddc14b76972333a3d5feee5f9b6d0/net/reporting/reporting_cache.h

Project Member

Comment 3 by bugdroid1@chromium.org, Mar 29 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/1690bc6eba0b829b5250c2e26347a951ed653515

commit 1690bc6eba0b829b5250c2e26347a951ed653515
Author: juliatuttle <juliatuttle@chromium.org>
Date: Wed Mar 29 17:20:46 2017

Reporting: Implement header parser.

Reporting is a spec for delivering out-of-band reports from various
other parts of the browser. See http://wicg.github.io/reporting/ for
the spec, or https://goo.gl/pygX5I for details of the planned
implementation in Chromium.

This implements the header parser, which parses Report-To headers
and applies the correct updates to the Reporting cache.

BUG=704259

Review-Url: https://codereview.chromium.org/2689953004
Cr-Commit-Position: refs/heads/master@{#460434}

[modify] https://crrev.com/1690bc6eba0b829b5250c2e26347a951ed653515/net/BUILD.gn
[add] https://crrev.com/1690bc6eba0b829b5250c2e26347a951ed653515/net/reporting/reporting_header_parser.cc
[add] https://crrev.com/1690bc6eba0b829b5250c2e26347a951ed653515/net/reporting/reporting_header_parser.h
[add] https://crrev.com/1690bc6eba0b829b5250c2e26347a951ed653515/net/reporting/reporting_header_parser_unittest.cc

Project Member

Comment 4 by bugdroid1@chromium.org, Mar 30 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2f46b5780970e186eda8641be9138ec551e3f1db

commit 2f46b5780970e186eda8641be9138ec551e3f1db
Author: juliatuttle <juliatuttle@chromium.org>
Date: Thu Mar 30 19:12:37 2017

Reporting: Implement uploader.

Reporting is a spec for delivering out-of-band reports from various
other parts of the browser. See http://wicg.github.io/reporting/.

The uploader handles the network side of report delivery: it takes the
assembled JSON and an endpoint URL, and handles sending the URL request
and categorizing the response according to the Reporting spec.

BUG=704259

Review-Url: https://codereview.chromium.org/2723563002
Cr-Commit-Position: refs/heads/master@{#460846}

[modify] https://crrev.com/2f46b5780970e186eda8641be9138ec551e3f1db/net/BUILD.gn
[add] https://crrev.com/2f46b5780970e186eda8641be9138ec551e3f1db/net/reporting/reporting_uploader.cc
[add] https://crrev.com/2f46b5780970e186eda8641be9138ec551e3f1db/net/reporting/reporting_uploader.h
[add] https://crrev.com/2f46b5780970e186eda8641be9138ec551e3f1db/net/reporting/reporting_uploader_unittest.cc

Project Member

Comment 5 by bugdroid1@chromium.org, Apr 3 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/add0a38b6ba104546419dc750650a3b09fa81810

commit add0a38b6ba104546419dc750650a3b09fa81810
Author: juliatuttle <juliatuttle@chromium.org>
Date: Mon Apr 03 16:27:15 2017

Reporting: Implement endpoint manager.

Reporting is a spec for delivering out-of-band reports from various
other parts of the browser. See http://wicg.github.io/reporting/ for
the spec, or https://goo.gl/pygX5I for details of the planned
implementation in Chromium.

The endpoint manager keeps track of which endpoints have active
delivery attempts in progress, and chooses endpoints from those
configured in the cache, filtering out busy, failed, or expired
ones.

BUG=704259

Review-Url: https://codereview.chromium.org/2737483004
Cr-Commit-Position: refs/heads/master@{#461449}

[modify] https://crrev.com/add0a38b6ba104546419dc750650a3b09fa81810/net/BUILD.gn
[add] https://crrev.com/add0a38b6ba104546419dc750650a3b09fa81810/net/reporting/reporting_endpoint_manager.cc
[add] https://crrev.com/add0a38b6ba104546419dc750650a3b09fa81810/net/reporting/reporting_endpoint_manager.h
[add] https://crrev.com/add0a38b6ba104546419dc750650a3b09fa81810/net/reporting/reporting_endpoint_manager_unittest.cc

Project Member

Comment 6 by bugdroid1@chromium.org, Apr 6 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b54a1a8b7fe040cdf0d5cd6799cb0cb0a4bd8ddb

commit b54a1a8b7fe040cdf0d5cd6799cb0cb0a4bd8ddb
Author: juliatuttle <juliatuttle@chromium.org>
Date: Thu Apr 06 19:35:29 2017

Reporting: Implement delivery agent.

Reporting is a spec for delivering out-of-band reports from various
other parts of the browser. See http://wicg.github.io/reporting/ for
the spec, or https://goo.gl/pygX5I for details of the planned
implementation in Chromium.

The delivery agent takes the queued reports in the cache, figures out
(with the help of the EndpointManager) where to deliver them, and sends
the serialized reports using the Uploader.

BUG=704259

Review-Url: https://codereview.chromium.org/2739483002
Cr-Commit-Position: refs/heads/master@{#462584}

[modify] https://crrev.com/b54a1a8b7fe040cdf0d5cd6799cb0cb0a4bd8ddb/net/BUILD.gn
[add] https://crrev.com/b54a1a8b7fe040cdf0d5cd6799cb0cb0a4bd8ddb/net/reporting/reporting_delivery_agent.cc
[add] https://crrev.com/b54a1a8b7fe040cdf0d5cd6799cb0cb0a4bd8ddb/net/reporting/reporting_delivery_agent.h
[add] https://crrev.com/b54a1a8b7fe040cdf0d5cd6799cb0cb0a4bd8ddb/net/reporting/reporting_delivery_agent_unittest.cc
[modify] https://crrev.com/b54a1a8b7fe040cdf0d5cd6799cb0cb0a4bd8ddb/net/reporting/reporting_report.h

Project Member

Comment 7 by bugdroid1@chromium.org, Apr 7 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ee4b55e3526065ac1d0f09a80372e17f26892c8e

commit ee4b55e3526065ac1d0f09a80372e17f26892c8e
Author: juliatuttle <juliatuttle@chromium.org>
Date: Fri Apr 07 17:09:45 2017

Reporting: Wrap existing classes in context.

Reporting is a spec for delivering out-of-band reports from various
other parts of the browser. See http://wicg.github.io/reporting/ for
the spec, or https://goo.gl/pygX5I for details of the planned
implementation in Chromium.

This CL takes the pile of small classes that I've written so far and
wraps them in a single "context" object.

It also changes the classes to accept a pointer to the context instead
of several pointers to individual dependencies.

It *also* creates a ReportingTestBase class that provides a properly
configured context for all of the existing unittests to use, and
switches the tests over.

BUG=704259

Review-Url: https://codereview.chromium.org/2751103002
Cr-Commit-Position: refs/heads/master@{#462901}

[modify] https://crrev.com/ee4b55e3526065ac1d0f09a80372e17f26892c8e/net/BUILD.gn
[modify] https://crrev.com/ee4b55e3526065ac1d0f09a80372e17f26892c8e/net/reporting/reporting_cache.cc
[modify] https://crrev.com/ee4b55e3526065ac1d0f09a80372e17f26892c8e/net/reporting/reporting_cache.h
[modify] https://crrev.com/ee4b55e3526065ac1d0f09a80372e17f26892c8e/net/reporting/reporting_cache_unittest.cc
[add] https://crrev.com/ee4b55e3526065ac1d0f09a80372e17f26892c8e/net/reporting/reporting_context.cc
[add] https://crrev.com/ee4b55e3526065ac1d0f09a80372e17f26892c8e/net/reporting/reporting_context.h
[add] https://crrev.com/ee4b55e3526065ac1d0f09a80372e17f26892c8e/net/reporting/reporting_delegate.cc
[add] https://crrev.com/ee4b55e3526065ac1d0f09a80372e17f26892c8e/net/reporting/reporting_delegate.h
[modify] https://crrev.com/ee4b55e3526065ac1d0f09a80372e17f26892c8e/net/reporting/reporting_delivery_agent.cc
[modify] https://crrev.com/ee4b55e3526065ac1d0f09a80372e17f26892c8e/net/reporting/reporting_delivery_agent.h
[modify] https://crrev.com/ee4b55e3526065ac1d0f09a80372e17f26892c8e/net/reporting/reporting_delivery_agent_unittest.cc
[modify] https://crrev.com/ee4b55e3526065ac1d0f09a80372e17f26892c8e/net/reporting/reporting_endpoint_manager.cc
[modify] https://crrev.com/ee4b55e3526065ac1d0f09a80372e17f26892c8e/net/reporting/reporting_endpoint_manager.h
[modify] https://crrev.com/ee4b55e3526065ac1d0f09a80372e17f26892c8e/net/reporting/reporting_endpoint_manager_unittest.cc
[modify] https://crrev.com/ee4b55e3526065ac1d0f09a80372e17f26892c8e/net/reporting/reporting_header_parser.cc
[modify] https://crrev.com/ee4b55e3526065ac1d0f09a80372e17f26892c8e/net/reporting/reporting_header_parser.h
[modify] https://crrev.com/ee4b55e3526065ac1d0f09a80372e17f26892c8e/net/reporting/reporting_header_parser_unittest.cc
[add] https://crrev.com/ee4b55e3526065ac1d0f09a80372e17f26892c8e/net/reporting/reporting_policy.cc
[add] https://crrev.com/ee4b55e3526065ac1d0f09a80372e17f26892c8e/net/reporting/reporting_policy.h
[modify] https://crrev.com/ee4b55e3526065ac1d0f09a80372e17f26892c8e/net/reporting/reporting_test_util.cc
[modify] https://crrev.com/ee4b55e3526065ac1d0f09a80372e17f26892c8e/net/reporting/reporting_test_util.h

Project Member

Comment 8 by bugdroid1@chromium.org, Apr 7 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/381d77efd050a4ef04eba2ce52f06741ac0d1107

commit 381d77efd050a4ef04eba2ce52f06741ac0d1107
Author: juliatuttle <juliatuttle@chromium.org>
Date: Fri Apr 07 18:54:12 2017

Reporting: Wrap context in service.

Reporting is a spec for delivering out-of-band reports from various
other parts of the browser. See http://wicg.github.io/reporting/ for
the spec, or https://goo.gl/pygX5I for details of the planned
implementation in Chromium.

This wraps the context in a service that keeps the implementation
details of Reporting private while implementing and exposing the
high-level operations that other components require from it.

BUG=704259

Review-Url: https://codereview.chromium.org/2770443002
Cr-Commit-Position: refs/heads/master@{#462943}

[modify] https://crrev.com/381d77efd050a4ef04eba2ce52f06741ac0d1107/net/BUILD.gn
[add] https://crrev.com/381d77efd050a4ef04eba2ce52f06741ac0d1107/net/reporting/reporting_service.cc
[add] https://crrev.com/381d77efd050a4ef04eba2ce52f06741ac0d1107/net/reporting/reporting_service.h
[add] https://crrev.com/381d77efd050a4ef04eba2ce52f06741ac0d1107/net/reporting/reporting_service_unittest.cc

Project Member

Comment 9 by bugdroid1@chromium.org, Apr 7 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/48f489e9d57806e4e78039e4712721ba141229d7

commit 48f489e9d57806e4e78039e4712721ba141229d7
Author: juliatuttle <juliatuttle@chromium.org>
Date: Fri Apr 07 20:14:57 2017

Reporting: Add Observer interface to observe cache updates.

Reporting is a spec for delivering out-of-band reports from various
other parts of the browser. See http://wicg.github.io/reporting/ for
the spec, or https://goo.gl/pygX5I for details of the planned
implementation in Chromium.

This adds an Observer interface by which parts of Reporting can observe
cache updates. Expected users are the DeliveryAgent and Serializer.

BUG=704259

Review-Url: https://codereview.chromium.org/2778373003
Cr-Commit-Position: refs/heads/master@{#462980}

[modify] https://crrev.com/48f489e9d57806e4e78039e4712721ba141229d7/net/BUILD.gn
[modify] https://crrev.com/48f489e9d57806e4e78039e4712721ba141229d7/net/reporting/reporting_cache.cc
[modify] https://crrev.com/48f489e9d57806e4e78039e4712721ba141229d7/net/reporting/reporting_cache_unittest.cc
[modify] https://crrev.com/48f489e9d57806e4e78039e4712721ba141229d7/net/reporting/reporting_context.cc
[modify] https://crrev.com/48f489e9d57806e4e78039e4712721ba141229d7/net/reporting/reporting_context.h
[add] https://crrev.com/48f489e9d57806e4e78039e4712721ba141229d7/net/reporting/reporting_observer.cc
[add] https://crrev.com/48f489e9d57806e4e78039e4712721ba141229d7/net/reporting/reporting_observer.h

Project Member

Comment 10 by bugdroid1@chromium.org, Apr 7 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/1170eb931001e6307d73a250f8c7a7f2db2042a4

commit 1170eb931001e6307d73a250f8c7a7f2db2042a4
Author: juliatuttle <juliatuttle@chromium.org>
Date: Fri Apr 07 21:54:58 2017

Reporting: Implement browsing data remover.

Reporting is a spec for delivering out-of-band reports from various
other parts of the browser. See http://wicg.github.io/reporting/ for
the spec, or https://goo.gl/pygX5I for details of the planned
implementation in Chromium.

The browsing data remover removes reports and/or endpoints that match
an (optional) origin filter, or all reports and/or endpoints. It will
be called from Chromium's browsing_data_remover, potentially among
other places.

BUG=704259

Review-Url: https://codereview.chromium.org/2752523005
Cr-Commit-Position: refs/heads/master@{#463016}

[modify] https://crrev.com/1170eb931001e6307d73a250f8c7a7f2db2042a4/net/BUILD.gn
[add] https://crrev.com/1170eb931001e6307d73a250f8c7a7f2db2042a4/net/reporting/reporting_browsing_data_remover.cc
[add] https://crrev.com/1170eb931001e6307d73a250f8c7a7f2db2042a4/net/reporting/reporting_browsing_data_remover.h
[add] https://crrev.com/1170eb931001e6307d73a250f8c7a7f2db2042a4/net/reporting/reporting_browsing_data_remover_unittest.cc

Project Member

Comment 11 by bugdroid1@chromium.org, Apr 10 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9f970c02c1feef9d61eff3fd52db7253eab1d9d9

commit 9f970c02c1feef9d61eff3fd52db7253eab1d9d9
Author: juliatuttle <juliatuttle@chromium.org>
Date: Mon Apr 10 19:26:37 2017

Reporting: Implement garbage collector.

Reporting is a spec for delivering out-of-band reports from various
other parts of the browser. See http://wicg.github.io/reporting/ for
the spec, or https://goo.gl/pygX5I for details of the planned
implementation in Chromium.

This implements the garbage collector, which cleans out reports that
haven't been delivered for too long or through too many attempts (and
also clears reports on network changes, if so configured).

BUG=704259

Review-Url: https://codereview.chromium.org/2740833004
Cr-Commit-Position: refs/heads/master@{#463359}

[modify] https://crrev.com/9f970c02c1feef9d61eff3fd52db7253eab1d9d9/net/BUILD.gn
[modify] https://crrev.com/9f970c02c1feef9d61eff3fd52db7253eab1d9d9/net/reporting/reporting_context.cc
[modify] https://crrev.com/9f970c02c1feef9d61eff3fd52db7253eab1d9d9/net/reporting/reporting_context.h
[add] https://crrev.com/9f970c02c1feef9d61eff3fd52db7253eab1d9d9/net/reporting/reporting_garbage_collector.cc
[add] https://crrev.com/9f970c02c1feef9d61eff3fd52db7253eab1d9d9/net/reporting/reporting_garbage_collector.h
[add] https://crrev.com/9f970c02c1feef9d61eff3fd52db7253eab1d9d9/net/reporting/reporting_garbage_collector_unittest.cc
[modify] https://crrev.com/9f970c02c1feef9d61eff3fd52db7253eab1d9d9/net/reporting/reporting_policy.cc
[modify] https://crrev.com/9f970c02c1feef9d61eff3fd52db7253eab1d9d9/net/reporting/reporting_policy.h
[modify] https://crrev.com/9f970c02c1feef9d61eff3fd52db7253eab1d9d9/net/reporting/reporting_test_util.cc
[modify] https://crrev.com/9f970c02c1feef9d61eff3fd52db7253eab1d9d9/net/reporting/reporting_test_util.h

Project Member

Comment 12 by bugdroid1@chromium.org, Apr 12 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e9b931b5db3e382b208607439ebc22ab0a7e5a68

commit e9b931b5db3e382b208607439ebc22ab0a7e5a68
Author: juliatuttle <juliatuttle@chromium.org>
Date: Wed Apr 12 18:51:25 2017

Reporting: Properly support endpoints with includeSubdomains.

Reporting is a spec for delivering out-of-band reports from various
other parts of the browser. See http://wicg.github.io/reporting/ for
the spec, or https://goo.gl/pygX5I for details of the planned
implementation in Chromium.

This modifies the ReportingCache to look for superdomain matches when
asked for clients for an origin but no exact origin match is found.

BUG=704259

Review-Url: https://codereview.chromium.org/2779983002
Cr-Commit-Position: refs/heads/master@{#464097}

[modify] https://crrev.com/e9b931b5db3e382b208607439ebc22ab0a7e5a68/net/reporting/reporting_cache.cc
[modify] https://crrev.com/e9b931b5db3e382b208607439ebc22ab0a7e5a68/net/reporting/reporting_cache.h
[modify] https://crrev.com/e9b931b5db3e382b208607439ebc22ab0a7e5a68/net/reporting/reporting_cache_unittest.cc

Project Member

Comment 13 by bugdroid1@chromium.org, Apr 12 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e9b931b5db3e382b208607439ebc22ab0a7e5a68

commit e9b931b5db3e382b208607439ebc22ab0a7e5a68
Author: juliatuttle <juliatuttle@chromium.org>
Date: Wed Apr 12 18:51:25 2017

Reporting: Properly support endpoints with includeSubdomains.

Reporting is a spec for delivering out-of-band reports from various
other parts of the browser. See http://wicg.github.io/reporting/ for
the spec, or https://goo.gl/pygX5I for details of the planned
implementation in Chromium.

This modifies the ReportingCache to look for superdomain matches when
asked for clients for an origin but no exact origin match is found.

BUG=704259

Review-Url: https://codereview.chromium.org/2779983002
Cr-Commit-Position: refs/heads/master@{#464097}

[modify] https://crrev.com/e9b931b5db3e382b208607439ebc22ab0a7e5a68/net/reporting/reporting_cache.cc
[modify] https://crrev.com/e9b931b5db3e382b208607439ebc22ab0a7e5a68/net/reporting/reporting_cache.h
[modify] https://crrev.com/e9b931b5db3e382b208607439ebc22ab0a7e5a68/net/reporting/reporting_cache_unittest.cc

Project Member

Comment 14 by bugdroid1@chromium.org, Apr 12 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e9b931b5db3e382b208607439ebc22ab0a7e5a68

commit e9b931b5db3e382b208607439ebc22ab0a7e5a68
Author: juliatuttle <juliatuttle@chromium.org>
Date: Wed Apr 12 18:51:25 2017

Reporting: Properly support endpoints with includeSubdomains.

Reporting is a spec for delivering out-of-band reports from various
other parts of the browser. See http://wicg.github.io/reporting/ for
the spec, or https://goo.gl/pygX5I for details of the planned
implementation in Chromium.

This modifies the ReportingCache to look for superdomain matches when
asked for clients for an origin but no exact origin match is found.

BUG=704259

Review-Url: https://codereview.chromium.org/2779983002
Cr-Commit-Position: refs/heads/master@{#464097}

[modify] https://crrev.com/e9b931b5db3e382b208607439ebc22ab0a7e5a68/net/reporting/reporting_cache.cc
[modify] https://crrev.com/e9b931b5db3e382b208607439ebc22ab0a7e5a68/net/reporting/reporting_cache.h
[modify] https://crrev.com/e9b931b5db3e382b208607439ebc22ab0a7e5a68/net/reporting/reporting_cache_unittest.cc

Project Member

Comment 15 by bugdroid1@chromium.org, Apr 12 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2b8dd2d1d8c2c17e5715853ad74cf2891b3c87c7

commit 2b8dd2d1d8c2c17e5715853ad74cf2891b3c87c7
Author: juliatuttle <juliatuttle@chromium.org>
Date: Wed Apr 12 21:27:41 2017

Reporting: Plumb into UrlRequest{HttpJob,Context}.

Reporting is a spec for delivering out-of-band reports from various
other parts of the browser. See http://wicg.github.io/reporting/ for
the spec, or https://goo.gl/pygX5I for details of the planned
implementation in Chromium.

This CL adds a member in URLRequestContext{,Storage} for the
ReportingService and calls ProcessHeader from URLRequestHttpJob when
a Report-To header is received under the right circumstances.

BUG=704259

Review-Url: https://codereview.chromium.org/2769703006
Cr-Commit-Position: refs/heads/master@{#464155}

[modify] https://crrev.com/2b8dd2d1d8c2c17e5715853ad74cf2891b3c87c7/net/url_request/url_request_context.cc
[modify] https://crrev.com/2b8dd2d1d8c2c17e5715853ad74cf2891b3c87c7/net/url_request/url_request_context.h
[modify] https://crrev.com/2b8dd2d1d8c2c17e5715853ad74cf2891b3c87c7/net/url_request/url_request_context_storage.cc
[modify] https://crrev.com/2b8dd2d1d8c2c17e5715853ad74cf2891b3c87c7/net/url_request/url_request_context_storage.h
[modify] https://crrev.com/2b8dd2d1d8c2c17e5715853ad74cf2891b3c87c7/net/url_request/url_request_http_job.cc
[modify] https://crrev.com/2b8dd2d1d8c2c17e5715853ad74cf2891b3c87c7/net/url_request/url_request_http_job.h
[modify] https://crrev.com/2b8dd2d1d8c2c17e5715853ad74cf2891b3c87c7/net/url_request/url_request_unittest.cc

Blocking: 676024
Blocking: 564071
Project Member

Comment 18 by bugdroid1@chromium.org, Apr 13 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/7da138164fb7dc30540f1340df0fd93b4d417a34

commit 7da138164fb7dc30540f1340df0fd93b4d417a34
Author: juliatuttle <juliatuttle@chromium.org>
Date: Thu Apr 13 19:18:19 2017

Reporting: Implement serializer.

Reporting is a spec for delivering out-of-band reports from various
other parts of the browser. See http://wicg.github.io/reporting/ for
the spec, or https://goo.gl/pygX5I for details of the planned
implementation in Chromium.

The serializer can serialize and deserialize the data in the cache (and
potentially other places eventually, like the endpoint manager's state).
It will be used to persist selected state of the Reporting system
across browser/embedder restarts.

BUG=704259

Review-Url: https://codereview.chromium.org/2751883003
Cr-Commit-Position: refs/heads/master@{#464496}

[modify] https://crrev.com/7da138164fb7dc30540f1340df0fd93b4d417a34/net/BUILD.gn
[modify] https://crrev.com/7da138164fb7dc30540f1340df0fd93b4d417a34/net/reporting/reporting_context.cc
[modify] https://crrev.com/7da138164fb7dc30540f1340df0fd93b4d417a34/net/reporting/reporting_context.h
[modify] https://crrev.com/7da138164fb7dc30540f1340df0fd93b4d417a34/net/reporting/reporting_garbage_collector.cc
[modify] https://crrev.com/7da138164fb7dc30540f1340df0fd93b4d417a34/net/reporting/reporting_garbage_collector.h
[modify] https://crrev.com/7da138164fb7dc30540f1340df0fd93b4d417a34/net/reporting/reporting_observer.h
[add] https://crrev.com/7da138164fb7dc30540f1340df0fd93b4d417a34/net/reporting/reporting_persister.cc
[add] https://crrev.com/7da138164fb7dc30540f1340df0fd93b4d417a34/net/reporting/reporting_persister.h
[add] https://crrev.com/7da138164fb7dc30540f1340df0fd93b4d417a34/net/reporting/reporting_persister_unittest.cc
[modify] https://crrev.com/7da138164fb7dc30540f1340df0fd93b4d417a34/net/reporting/reporting_policy.cc
[modify] https://crrev.com/7da138164fb7dc30540f1340df0fd93b4d417a34/net/reporting/reporting_policy.h
[modify] https://crrev.com/7da138164fb7dc30540f1340df0fd93b4d417a34/net/reporting/reporting_service.cc
[modify] https://crrev.com/7da138164fb7dc30540f1340df0fd93b4d417a34/net/reporting/reporting_test_util.cc
[modify] https://crrev.com/7da138164fb7dc30540f1340df0fd93b4d417a34/net/reporting/reporting_test_util.h

Project Member

Comment 19 by bugdroid1@chromium.org, Apr 19 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/830962ad03b788b02aa7ac6d8dd02f0a38ba6d4b

commit 830962ad03b788b02aa7ac6d8dd02f0a38ba6d4b
Author: juliatuttle <juliatuttle@chromium.org>
Date: Wed Apr 19 17:50:04 2017

Reporting: Make DeliveryAgent self-scheduling.

Reporting is a spec for delivering out-of-band reports from various
other parts of the browser. See http://wicg.github.io/reporting/ for
the spec, or https://goo.gl/pygX5I for details of the planned
implementation in Chromium.

This makes the existing DeliveryAgent class self-scheduling using the
ReportingObserver interface: when reports are added to the cache, or
periodically while reports are still queued, it automatically runs the
"send reports" algorithm described in the spec.

BUG=704259

Review-Url: https://codereview.chromium.org/2785293003
Cr-Commit-Position: refs/heads/master@{#465663}

[modify] https://crrev.com/830962ad03b788b02aa7ac6d8dd02f0a38ba6d4b/net/reporting/reporting_context.cc
[modify] https://crrev.com/830962ad03b788b02aa7ac6d8dd02f0a38ba6d4b/net/reporting/reporting_delivery_agent.cc
[modify] https://crrev.com/830962ad03b788b02aa7ac6d8dd02f0a38ba6d4b/net/reporting/reporting_delivery_agent.h
[modify] https://crrev.com/830962ad03b788b02aa7ac6d8dd02f0a38ba6d4b/net/reporting/reporting_delivery_agent_unittest.cc
[modify] https://crrev.com/830962ad03b788b02aa7ac6d8dd02f0a38ba6d4b/net/reporting/reporting_policy.cc
[modify] https://crrev.com/830962ad03b788b02aa7ac6d8dd02f0a38ba6d4b/net/reporting/reporting_policy.h
[modify] https://crrev.com/830962ad03b788b02aa7ac6d8dd02f0a38ba6d4b/net/reporting/reporting_test_util.cc
[modify] https://crrev.com/830962ad03b788b02aa7ac6d8dd02f0a38ba6d4b/net/reporting/reporting_test_util.h

Project Member

Comment 20 by bugdroid1@chromium.org, Apr 20 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/164e4cdfd53297fe3801ae893bbaa48651e1b339

commit 164e4cdfd53297fe3801ae893bbaa48651e1b339
Author: juliatuttle <juliatuttle@chromium.org>
Date: Thu Apr 20 20:30:29 2017

Reporting: Observe network changes and clear reports/clients

Reporting is a spec for delivering out-of-band reports from various
other parts of the browser. See http://wicg.github.io/reporting/ for
the spec, or https://goo.gl/pygX5I for details of the planned
implementation in Chromium.

This CL adds a ReportingNetworkChangeObserver that can clear reports
and/or clients (as configured in ReportingPolicy) on network changes.

BUG=704259

Review-Url: https://codereview.chromium.org/2813103005
Cr-Commit-Position: refs/heads/master@{#466113}

[modify] https://crrev.com/164e4cdfd53297fe3801ae893bbaa48651e1b339/net/BUILD.gn
[modify] https://crrev.com/164e4cdfd53297fe3801ae893bbaa48651e1b339/net/reporting/reporting_context.cc
[modify] https://crrev.com/164e4cdfd53297fe3801ae893bbaa48651e1b339/net/reporting/reporting_context.h
[add] https://crrev.com/164e4cdfd53297fe3801ae893bbaa48651e1b339/net/reporting/reporting_network_change_observer.cc
[add] https://crrev.com/164e4cdfd53297fe3801ae893bbaa48651e1b339/net/reporting/reporting_network_change_observer.h
[add] https://crrev.com/164e4cdfd53297fe3801ae893bbaa48651e1b339/net/reporting/reporting_network_change_observer_unittest.cc
[modify] https://crrev.com/164e4cdfd53297fe3801ae893bbaa48651e1b339/net/reporting/reporting_policy.cc
[modify] https://crrev.com/164e4cdfd53297fe3801ae893bbaa48651e1b339/net/reporting/reporting_policy.h

Project Member

Comment 21 by bugdroid1@chromium.org, Apr 28 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/42c573195110d731d47865d8d780db53b95a487b

commit 42c573195110d731d47865d8d780db53b95a487b
Author: juliatuttle <juliatuttle@chromium.org>
Date: Fri Apr 28 03:01:30 2017

Reporting: Remove persistence for now.

I'm going to build a general persistence mechanism for //net instead of
tediously plumbing out to the profile's prefs (which gets really messy
with isolated app contexts and such), so I'm removing the old
persistence stuff until that's done.

BUG=704259

Review-Url: https://codereview.chromium.org/2835923005
Cr-Commit-Position: refs/heads/master@{#467862}

[modify] https://crrev.com/42c573195110d731d47865d8d780db53b95a487b/net/BUILD.gn
[modify] https://crrev.com/42c573195110d731d47865d8d780db53b95a487b/net/reporting/reporting_context.cc
[modify] https://crrev.com/42c573195110d731d47865d8d780db53b95a487b/net/reporting/reporting_context.h
[delete] https://crrev.com/c045c21a0b84cbeabd7428c9722fd37258c81bc0/net/reporting/reporting_delegate.cc
[delete] https://crrev.com/c045c21a0b84cbeabd7428c9722fd37258c81bc0/net/reporting/reporting_delegate.h
[modify] https://crrev.com/42c573195110d731d47865d8d780db53b95a487b/net/reporting/reporting_delivery_agent.cc
[modify] https://crrev.com/42c573195110d731d47865d8d780db53b95a487b/net/reporting/reporting_delivery_agent.h
[modify] https://crrev.com/42c573195110d731d47865d8d780db53b95a487b/net/reporting/reporting_garbage_collector.cc
[modify] https://crrev.com/42c573195110d731d47865d8d780db53b95a487b/net/reporting/reporting_garbage_collector.h
[modify] https://crrev.com/42c573195110d731d47865d8d780db53b95a487b/net/reporting/reporting_persister.cc
[modify] https://crrev.com/42c573195110d731d47865d8d780db53b95a487b/net/reporting/reporting_persister.h
[modify] https://crrev.com/42c573195110d731d47865d8d780db53b95a487b/net/reporting/reporting_persister_unittest.cc
[modify] https://crrev.com/42c573195110d731d47865d8d780db53b95a487b/net/reporting/reporting_service.cc
[modify] https://crrev.com/42c573195110d731d47865d8d780db53b95a487b/net/reporting/reporting_service.h
[modify] https://crrev.com/42c573195110d731d47865d8d780db53b95a487b/net/reporting/reporting_service_unittest.cc
[modify] https://crrev.com/42c573195110d731d47865d8d780db53b95a487b/net/reporting/reporting_test_util.cc
[modify] https://crrev.com/42c573195110d731d47865d8d780db53b95a487b/net/reporting/reporting_test_util.h

Project Member

Comment 22 by bugdroid1@chromium.org, Apr 28 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/1d92f015d0b85e071f0040c53ccd8f145b55e4c1

commit 1d92f015d0b85e071f0040c53ccd8f145b55e4c1
Author: juliatuttle <juliatuttle@chromium.org>
Date: Fri Apr 28 17:19:21 2017

Reporting: Set up in ProfileImplIOData.

Reporting is a spec for delivering out-of-band reports from various
other parts of the browser. See http://wicg.github.io/reporting/ for
the spec, or https://goo.gl/pygX5I for details of the planned
implementation in Chromium.

This CL creates a barebones ChromeReportingDelegate, initializes the
ReportingService in ProfileImplIOData::InitializeInternal, and sets the
service on the URLRequestContext.

BUG=704259

Review-Url: https://codereview.chromium.org/2769083005
Cr-Commit-Position: refs/heads/master@{#468038}

[modify] https://crrev.com/1d92f015d0b85e071f0040c53ccd8f145b55e4c1/chrome/browser/profiles/profile_browsertest.cc
[modify] https://crrev.com/1d92f015d0b85e071f0040c53ccd8f145b55e4c1/chrome/browser/profiles/profile_impl_io_data.cc
[modify] https://crrev.com/1d92f015d0b85e071f0040c53ccd8f145b55e4c1/chrome/browser/profiles/profile_impl_io_data.h
[modify] https://crrev.com/1d92f015d0b85e071f0040c53ccd8f145b55e4c1/chrome/browser/profiles/profile_io_data.cc
[modify] https://crrev.com/1d92f015d0b85e071f0040c53ccd8f145b55e4c1/chrome/browser/profiles/profile_io_data.h
[modify] https://crrev.com/1d92f015d0b85e071f0040c53ccd8f145b55e4c1/net/BUILD.gn
[add] https://crrev.com/1d92f015d0b85e071f0040c53ccd8f145b55e4c1/net/reporting/reporting_feature.cc
[add] https://crrev.com/1d92f015d0b85e071f0040c53ccd8f145b55e4c1/net/reporting/reporting_feature.h
[modify] https://crrev.com/1d92f015d0b85e071f0040c53ccd8f145b55e4c1/net/reporting/reporting_garbage_collector.cc
[modify] https://crrev.com/1d92f015d0b85e071f0040c53ccd8f145b55e4c1/net/reporting/reporting_persister.h
[modify] https://crrev.com/1d92f015d0b85e071f0040c53ccd8f145b55e4c1/net/reporting/reporting_persister_unittest.cc
[modify] https://crrev.com/1d92f015d0b85e071f0040c53ccd8f145b55e4c1/net/reporting/reporting_service.cc
[modify] https://crrev.com/1d92f015d0b85e071f0040c53ccd8f145b55e4c1/net/url_request/url_request_unittest.cc

Project Member

Comment 23 by bugdroid1@chromium.org, May 4 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/aeb1abc9b5177c2817b21fe3a366fc0f23450607

commit aeb1abc9b5177c2817b21fe3a366fc0f23450607
Author: juliatuttle <juliatuttle@chromium.org>
Date: Thu May 04 21:14:38 2017

Reporting: Plumb from //chrome/browser/browsing_data.

Reporting is a spec for delivering out-of-band reports from various
other parts of the browser. See http://wicg.github.io/reporting/ for
the spec, or https://goo.gl/pygX5I for details of the planned
implementation in Chromium.

This CL plumbs from Chromium's browsing data removal code to Reporting
(and also makes a few tweaks to Reporting's browsing data removal).

BUG=704259

Review-Url: https://codereview.chromium.org/2829683004
Cr-Commit-Position: refs/heads/master@{#469474}

[modify] https://crrev.com/aeb1abc9b5177c2817b21fe3a366fc0f23450607/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
[modify] https://crrev.com/aeb1abc9b5177c2817b21fe3a366fc0f23450607/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.h
[modify] https://crrev.com/aeb1abc9b5177c2817b21fe3a366fc0f23450607/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate_unittest.cc
[modify] https://crrev.com/aeb1abc9b5177c2817b21fe3a366fc0f23450607/net/reporting/reporting_browsing_data_remover.cc
[modify] https://crrev.com/aeb1abc9b5177c2817b21fe3a366fc0f23450607/net/reporting/reporting_browsing_data_remover.h
[modify] https://crrev.com/aeb1abc9b5177c2817b21fe3a366fc0f23450607/net/reporting/reporting_browsing_data_remover_unittest.cc
[modify] https://crrev.com/aeb1abc9b5177c2817b21fe3a366fc0f23450607/net/reporting/reporting_context.cc
[modify] https://crrev.com/aeb1abc9b5177c2817b21fe3a366fc0f23450607/net/reporting/reporting_context.h
[modify] https://crrev.com/aeb1abc9b5177c2817b21fe3a366fc0f23450607/net/reporting/reporting_service.cc
[modify] https://crrev.com/aeb1abc9b5177c2817b21fe3a366fc0f23450607/net/reporting/reporting_service.h
[modify] https://crrev.com/aeb1abc9b5177c2817b21fe3a366fc0f23450607/net/reporting/reporting_test_util.h
[modify] https://crrev.com/aeb1abc9b5177c2817b21fe3a366fc0f23450607/net/url_request/url_request_unittest.cc

Project Member

Comment 24 by bugdroid1@chromium.org, May 9 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/cf0772c92c9909b3ad0f107541a533c567bfda75

commit cf0772c92c9909b3ad0f107541a533c567bfda75
Author: juliatuttle <juliatuttle@chromium.org>
Date: Tue May 09 15:05:42 2017

Reporting: Document browsing data remover + endpoint backoff

The ReportingBrowsingDataRemover currently doesn't remove entries from
the endpoint backoff map in the ReportingEndpointManager, because it's
never persisted to disk. This CL adds comments in a couple places to
note this, so someone implementing persistence for that knows to
implement browsing data removal as well.

BUG=704259,676324

Review-Url: https://codereview.chromium.org/2862003003
Cr-Commit-Position: refs/heads/master@{#470336}

[modify] https://crrev.com/cf0772c92c9909b3ad0f107541a533c567bfda75/net/reporting/reporting_browsing_data_remover.h
[modify] https://crrev.com/cf0772c92c9909b3ad0f107541a533c567bfda75/net/reporting/reporting_endpoint_manager.h

Project Member

Comment 27 by bugdroid1@chromium.org, May 22 2017

Project Member

Comment 28 by bugdroid1@chromium.org, May 23 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/587548914b332653d2ae18e4d10e73ffde0f9406

commit 587548914b332653d2ae18e4d10e73ffde0f9406
Author: juliatuttle <juliatuttle@chromium.org>
Date: Tue May 23 14:17:21 2017

Reporting: Add ReportingDelegate to check site permissions

This adds a Delegate to Reporting that can eventually be plumbed to
check whether sites are allowed to store data (reports and clients).

BUG=704259,676324

Review-Url: https://codereview.chromium.org/2889193002
Cr-Commit-Position: refs/heads/master@{#473885}

[modify] https://crrev.com/587548914b332653d2ae18e4d10e73ffde0f9406/net/BUILD.gn
[modify] https://crrev.com/587548914b332653d2ae18e4d10e73ffde0f9406/net/reporting/reporting_context.cc
[modify] https://crrev.com/587548914b332653d2ae18e4d10e73ffde0f9406/net/reporting/reporting_context.h
[add] https://crrev.com/587548914b332653d2ae18e4d10e73ffde0f9406/net/reporting/reporting_delegate.cc
[add] https://crrev.com/587548914b332653d2ae18e4d10e73ffde0f9406/net/reporting/reporting_delegate.h
[modify] https://crrev.com/587548914b332653d2ae18e4d10e73ffde0f9406/net/reporting/reporting_delivery_agent.cc
[modify] https://crrev.com/587548914b332653d2ae18e4d10e73ffde0f9406/net/reporting/reporting_endpoint_manager.cc
[modify] https://crrev.com/587548914b332653d2ae18e4d10e73ffde0f9406/net/reporting/reporting_endpoint_manager.h
[modify] https://crrev.com/587548914b332653d2ae18e4d10e73ffde0f9406/net/reporting/reporting_header_parser.cc
[modify] https://crrev.com/587548914b332653d2ae18e4d10e73ffde0f9406/net/reporting/reporting_header_parser.h
[modify] https://crrev.com/587548914b332653d2ae18e4d10e73ffde0f9406/net/reporting/reporting_service.cc

Project Member

Comment 29 by bugdroid1@chromium.org, May 23 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/fcf472038605e8554a6c7e75f0f159ebdaa73299

commit fcf472038605e8554a6c7e75f0f159ebdaa73299
Author: juliatuttle <juliatuttle@chromium.org>
Date: Tue May 23 15:53:02 2017

Reporting: Wire ReportingDelegate into ChromeNetworkDelegate

Add, implement, and call some methods in NetworkDelegate to check
whether sites are allowed to store reports and clients.

BUG=704259,676324

Review-Url: https://codereview.chromium.org/2891133003
Cr-Commit-Position: refs/heads/master@{#473917}

[modify] https://crrev.com/fcf472038605e8554a6c7e75f0f159ebdaa73299/chrome/browser/net/chrome_network_delegate.cc
[modify] https://crrev.com/fcf472038605e8554a6c7e75f0f159ebdaa73299/chrome/browser/net/chrome_network_delegate.h
[modify] https://crrev.com/fcf472038605e8554a6c7e75f0f159ebdaa73299/net/base/layered_network_delegate.cc
[modify] https://crrev.com/fcf472038605e8554a6c7e75f0f159ebdaa73299/net/base/layered_network_delegate.h
[modify] https://crrev.com/fcf472038605e8554a6c7e75f0f159ebdaa73299/net/base/layered_network_delegate_unittest.cc
[modify] https://crrev.com/fcf472038605e8554a6c7e75f0f159ebdaa73299/net/base/network_delegate.cc
[modify] https://crrev.com/fcf472038605e8554a6c7e75f0f159ebdaa73299/net/base/network_delegate.h
[modify] https://crrev.com/fcf472038605e8554a6c7e75f0f159ebdaa73299/net/base/network_delegate_impl.cc
[modify] https://crrev.com/fcf472038605e8554a6c7e75f0f159ebdaa73299/net/base/network_delegate_impl.h
[modify] https://crrev.com/fcf472038605e8554a6c7e75f0f159ebdaa73299/net/reporting/reporting_context.cc
[modify] https://crrev.com/fcf472038605e8554a6c7e75f0f159ebdaa73299/net/reporting/reporting_context.h
[modify] https://crrev.com/fcf472038605e8554a6c7e75f0f159ebdaa73299/net/reporting/reporting_delegate.cc
[modify] https://crrev.com/fcf472038605e8554a6c7e75f0f159ebdaa73299/net/reporting/reporting_delegate.h
[modify] https://crrev.com/fcf472038605e8554a6c7e75f0f159ebdaa73299/net/reporting/reporting_test_util.cc
[modify] https://crrev.com/fcf472038605e8554a6c7e75f0f159ebdaa73299/net/reporting/reporting_test_util.h

Project Member

Comment 30 by bugdroid1@chromium.org, May 24 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8ef9cbb441f237546060032abdbc7a04ba73cfc1

commit 8ef9cbb441f237546060032abdbc7a04ba73cfc1
Author: juliatuttle <juliatuttle@chromium.org>
Date: Wed May 24 21:47:55 2017

Reporting: Add Feature to fieldtrial_testing_config.json

BUG=676024,704259

Review-Url: https://codereview.chromium.org/2904583002
Cr-Commit-Position: refs/heads/master@{#474434}

[modify] https://crrev.com/8ef9cbb441f237546060032abdbc7a04ba73cfc1/testing/variations/fieldtrial_testing_config.json

Project Member

Comment 32 by bugdroid1@chromium.org, Jul 6 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/667c0bb37390dc1f4e336151719e30537c1d746d

commit 667c0bb37390dc1f4e336151719e30537c1d746d
Author: juliatuttle <juliatuttle@chromium.org>
Date: Thu Jul 06 15:17:13 2017

Reporting: Add histograms.

BUG=704259, 676024
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_site_isolation

Review-Url: https://codereview.chromium.org/2900553004
Cr-Commit-Position: refs/heads/master@{#484599}

[modify] https://crrev.com/667c0bb37390dc1f4e336151719e30537c1d746d/content/browser/net/reporting_service_proxy.cc
[modify] https://crrev.com/667c0bb37390dc1f4e336151719e30537c1d746d/net/reporting/reporting_browsing_data_remover.cc
[modify] https://crrev.com/667c0bb37390dc1f4e336151719e30537c1d746d/net/reporting/reporting_cache.cc
[modify] https://crrev.com/667c0bb37390dc1f4e336151719e30537c1d746d/net/reporting/reporting_cache.h
[modify] https://crrev.com/667c0bb37390dc1f4e336151719e30537c1d746d/net/reporting/reporting_cache_unittest.cc
[modify] https://crrev.com/667c0bb37390dc1f4e336151719e30537c1d746d/net/reporting/reporting_delivery_agent.cc
[modify] https://crrev.com/667c0bb37390dc1f4e336151719e30537c1d746d/net/reporting/reporting_delivery_agent_unittest.cc
[modify] https://crrev.com/667c0bb37390dc1f4e336151719e30537c1d746d/net/reporting/reporting_garbage_collector.cc
[modify] https://crrev.com/667c0bb37390dc1f4e336151719e30537c1d746d/net/reporting/reporting_header_parser.cc
[modify] https://crrev.com/667c0bb37390dc1f4e336151719e30537c1d746d/net/reporting/reporting_header_parser.h
[modify] https://crrev.com/667c0bb37390dc1f4e336151719e30537c1d746d/net/reporting/reporting_network_change_observer.cc
[modify] https://crrev.com/667c0bb37390dc1f4e336151719e30537c1d746d/net/reporting/reporting_report.cc
[modify] https://crrev.com/667c0bb37390dc1f4e336151719e30537c1d746d/net/reporting/reporting_report.h
[modify] https://crrev.com/667c0bb37390dc1f4e336151719e30537c1d746d/net/url_request/url_request_http_job.cc
[modify] https://crrev.com/667c0bb37390dc1f4e336151719e30537c1d746d/tools/metrics/histograms/enums.xml
[modify] https://crrev.com/667c0bb37390dc1f4e336151719e30537c1d746d/tools/metrics/histograms/histograms.xml

Blockedon: 792976
Blockedon: 792975
Blockedon: 792974
Blocking: 748549
Blockedon: 792978
Blockedon: -792978
Blockedon: -792976
Blockedon: -792974
Blockedon: -792975
Blockedon: 792975
Blockedon: 810142
Project Member

Comment 44 by bugdroid1@chromium.org, Feb 27 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/7b07ea496fa602108d266ae0fe58b2b42aa7f6e9

commit 7b07ea496fa602108d266ae0fe58b2b42aa7f6e9
Author: Douglas Creager <dcreager@google.com>
Date: Tue Feb 27 21:08:08 2018

Reporting: Check upload permissions asynchronously

This changes the signature of the CanSendReport method so that it works
asynchronously.  We need this to able to check the background sync
permission, since that can only be checked from the UI thread; we need
the async logic to pass control between the IO and UI threads in the
right way.

To reduce the number of async calls, the method has also been updated to
check several origins all at once, instead of having a single method
call for each origin.  You pass in a set of origins that you'd like to
upload reports for, and the method passes back the set of origins that
you're allowed to.

Bug: 704259
Change-Id: I431b2fe1c1eb4e65cea91a86fd213e3204b852a1
Reviewed-on: https://chromium-review.googlesource.com/937566
Reviewed-by: Julia Tuttle <juliatuttle@chromium.org>
Commit-Queue: Douglas Creager <dcreager@google.com>
Cr-Commit-Position: refs/heads/master@{#539546}
[modify] https://crrev.com/7b07ea496fa602108d266ae0fe58b2b42aa7f6e9/chrome/browser/net/chrome_network_delegate.cc
[modify] https://crrev.com/7b07ea496fa602108d266ae0fe58b2b42aa7f6e9/chrome/browser/net/chrome_network_delegate.h
[modify] https://crrev.com/7b07ea496fa602108d266ae0fe58b2b42aa7f6e9/net/base/layered_network_delegate.cc
[modify] https://crrev.com/7b07ea496fa602108d266ae0fe58b2b42aa7f6e9/net/base/layered_network_delegate.h
[modify] https://crrev.com/7b07ea496fa602108d266ae0fe58b2b42aa7f6e9/net/base/layered_network_delegate_unittest.cc
[modify] https://crrev.com/7b07ea496fa602108d266ae0fe58b2b42aa7f6e9/net/base/network_delegate.cc
[modify] https://crrev.com/7b07ea496fa602108d266ae0fe58b2b42aa7f6e9/net/base/network_delegate.h
[modify] https://crrev.com/7b07ea496fa602108d266ae0fe58b2b42aa7f6e9/net/base/network_delegate_impl.cc
[modify] https://crrev.com/7b07ea496fa602108d266ae0fe58b2b42aa7f6e9/net/base/network_delegate_impl.h
[modify] https://crrev.com/7b07ea496fa602108d266ae0fe58b2b42aa7f6e9/net/reporting/reporting_delegate.cc
[modify] https://crrev.com/7b07ea496fa602108d266ae0fe58b2b42aa7f6e9/net/reporting/reporting_delegate.h
[modify] https://crrev.com/7b07ea496fa602108d266ae0fe58b2b42aa7f6e9/net/reporting/reporting_delivery_agent.cc
[modify] https://crrev.com/7b07ea496fa602108d266ae0fe58b2b42aa7f6e9/net/reporting/reporting_delivery_agent_unittest.cc
[modify] https://crrev.com/7b07ea496fa602108d266ae0fe58b2b42aa7f6e9/net/reporting/reporting_report.h
[modify] https://crrev.com/7b07ea496fa602108d266ae0fe58b2b42aa7f6e9/net/reporting/reporting_test_util.cc
[modify] https://crrev.com/7b07ea496fa602108d266ae0fe58b2b42aa7f6e9/net/reporting/reporting_test_util.h
[modify] https://crrev.com/7b07ea496fa602108d266ae0fe58b2b42aa7f6e9/tools/metrics/histograms/enums.xml

Project Member

Comment 45 by bugdroid1@chromium.org, Feb 28 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f0db63ad38a2ca6c37da8e9f37d34e5e0ad94b5d

commit f0db63ad38a2ca6c37da8e9f37d34e5e0ad94b5d
Author: Douglas Creager <dcreager@google.com>
Date: Wed Feb 28 17:50:23 2018

Reporting: Use new format for Report-To header

The format of the Report-To header recently changed so that endpoint
groups are the top-level element, instead of individual endpoints.

Bug: 704259
Change-Id: I7534c46abbbb86c367931ffc060972ac36b1084b
Reviewed-on: https://chromium-review.googlesource.com/914687
Commit-Queue: Douglas Creager <dcreager@google.com>
Reviewed-by: Robert Kaplow <rkaplow@chromium.org>
Reviewed-by: Julia Tuttle <juliatuttle@chromium.org>
Cr-Commit-Position: refs/heads/master@{#539876}
[modify] https://crrev.com/f0db63ad38a2ca6c37da8e9f37d34e5e0ad94b5d/net/network_error_logging/network_error_logging_end_to_end_test.cc
[modify] https://crrev.com/f0db63ad38a2ca6c37da8e9f37d34e5e0ad94b5d/net/reporting/reporting_cache.cc
[modify] https://crrev.com/f0db63ad38a2ca6c37da8e9f37d34e5e0ad94b5d/net/reporting/reporting_cache.h
[modify] https://crrev.com/f0db63ad38a2ca6c37da8e9f37d34e5e0ad94b5d/net/reporting/reporting_header_parser.cc
[modify] https://crrev.com/f0db63ad38a2ca6c37da8e9f37d34e5e0ad94b5d/net/reporting/reporting_header_parser_unittest.cc
[modify] https://crrev.com/f0db63ad38a2ca6c37da8e9f37d34e5e0ad94b5d/net/reporting/reporting_service_unittest.cc
[modify] https://crrev.com/f0db63ad38a2ca6c37da8e9f37d34e5e0ad94b5d/third_party/WebKit/LayoutTests/external/wpt/content-security-policy/reporting-api/reporting-api-doesnt-send-reports-without-violation.https.sub.html.sub.headers
[modify] https://crrev.com/f0db63ad38a2ca6c37da8e9f37d34e5e0ad94b5d/third_party/WebKit/LayoutTests/external/wpt/content-security-policy/reporting-api/reporting-api-report-only-sends-reports-on-violation.https.sub.html.sub.headers
[modify] https://crrev.com/f0db63ad38a2ca6c37da8e9f37d34e5e0ad94b5d/third_party/WebKit/LayoutTests/external/wpt/content-security-policy/reporting-api/reporting-api-report-to-overrides-report-uri-1.https.sub.html.sub.headers
[modify] https://crrev.com/f0db63ad38a2ca6c37da8e9f37d34e5e0ad94b5d/third_party/WebKit/LayoutTests/external/wpt/content-security-policy/reporting-api/reporting-api-report-to-overrides-report-uri-2.https.sub.html.sub.headers
[modify] https://crrev.com/f0db63ad38a2ca6c37da8e9f37d34e5e0ad94b5d/third_party/WebKit/LayoutTests/external/wpt/content-security-policy/reporting-api/reporting-api-sends-reports-on-violation.https.sub.html.sub.headers
[modify] https://crrev.com/f0db63ad38a2ca6c37da8e9f37d34e5e0ad94b5d/third_party/WebKit/LayoutTests/external/wpt/content-security-policy/reporting-api/reporting-api-works-on-frame-src.https.sub.html.sub.headers
[modify] https://crrev.com/f0db63ad38a2ca6c37da8e9f37d34e5e0ad94b5d/tools/metrics/histograms/enums.xml
[modify] https://crrev.com/f0db63ad38a2ca6c37da8e9f37d34e5e0ad94b5d/tools/metrics/histograms/histograms.xml

Project Member

Comment 47 by bugdroid1@chromium.org, Mar 1 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/de03f4c93629026a59923b6981f50e2a74ac90a9

commit de03f4c93629026a59923b6981f50e2a74ac90a9
Author: Douglas Creager <dcreager@google.com>
Date: Thu Mar 01 19:38:28 2018

Reporting: Use BACKGROUND_SYNC permission to control uploads

We now use the BACKGROUND_SYNC permission to decide whether or not to
upload reports for a particular origin.  Note that as currently written,
we don't use this permission to decide whether to *collect* the reports,
only whether to *send* them.  Whether or not to collect is controlled
by the site's cookie settings.

Bug: 704259
Change-Id: I059019ab85106c26f4d156e9f5d61e2f8b8fa757
Reviewed-on: https://chromium-review.googlesource.com/937572
Reviewed-by: Ryan Hamilton <rch@chromium.org>
Commit-Queue: Douglas Creager <dcreager@google.com>
Cr-Commit-Position: refs/heads/master@{#540257}
[modify] https://crrev.com/de03f4c93629026a59923b6981f50e2a74ac90a9/chrome/browser/BUILD.gn
[modify] https://crrev.com/de03f4c93629026a59923b6981f50e2a74ac90a9/chrome/browser/net/chrome_network_delegate.cc
[modify] https://crrev.com/de03f4c93629026a59923b6981f50e2a74ac90a9/chrome/browser/net/chrome_network_delegate.h
[modify] https://crrev.com/de03f4c93629026a59923b6981f50e2a74ac90a9/chrome/browser/net/chrome_network_delegate_unittest.cc
[add] https://crrev.com/de03f4c93629026a59923b6981f50e2a74ac90a9/chrome/browser/net/reporting_permissions_checker.cc
[add] https://crrev.com/de03f4c93629026a59923b6981f50e2a74ac90a9/chrome/browser/net/reporting_permissions_checker.h
[add] https://crrev.com/de03f4c93629026a59923b6981f50e2a74ac90a9/chrome/browser/net/reporting_permissions_checker_unittest.cc
[modify] https://crrev.com/de03f4c93629026a59923b6981f50e2a74ac90a9/chrome/browser/profiles/profile_impl_io_data.cc
[modify] https://crrev.com/de03f4c93629026a59923b6981f50e2a74ac90a9/chrome/browser/profiles/profile_impl_io_data.h
[modify] https://crrev.com/de03f4c93629026a59923b6981f50e2a74ac90a9/chrome/test/BUILD.gn

Project Member

Comment 48 by bugdroid1@chromium.org, May 13 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/326c73c6cbc33e26b062a0afa41da36ec19db82e

commit 326c73c6cbc33e26b062a0afa41da36ec19db82e
Author: Wez <wez@chromium.org>
Date: Sun May 13 17:55:40 2018

Revert "Reporting: Use BACKGROUND_SYNC permission to control uploads"

This reverts commit de03f4c93629026a59923b6981f50e2a74ac90a9.

Reason for revert: CL introduced a ReportingPermissionsChecker class which appears to be intended to safely "cancel" UI-thread work posted from the IO thread, when the class instance is destroyed. The class, however, is always destroyed on the IO thread, so this use of WeakPtrs does not have the intended effect.

Original change's description:
> Reporting: Use BACKGROUND_SYNC permission to control uploads
>
> We now use the BACKGROUND_SYNC permission to decide whether or not to
> upload reports for a particular origin.  Note that as currently written,
> we don't use this permission to decide whether to *collect* the reports,
> only whether to *send* them.  Whether or not to collect is controlled
> by the site's cookie settings.
>
> Bug: 704259
> Change-Id: I059019ab85106c26f4d156e9f5d61e2f8b8fa757
> Reviewed-on: https://chromium-review.googlesource.com/937572
> Reviewed-by: Ryan Hamilton <rch@chromium.org>
> Commit-Queue: Douglas Creager <dcreager@google.com>
> Cr-Commit-Position: refs/heads/master@{#540257}

TBR=rch@chromium.org,juliatuttle@chromium.org,dcreager@google.com

Bug: 704259
Change-Id: I9cb1990f4273f74e39de83b99a12e6bfc00e7348
Reviewed-on: https://chromium-review.googlesource.com/1056727
Commit-Queue: Wez <wez@chromium.org>
Reviewed-by: Wez <wez@chromium.org>
Cr-Commit-Position: refs/heads/master@{#558160}
[modify] https://crrev.com/326c73c6cbc33e26b062a0afa41da36ec19db82e/chrome/browser/BUILD.gn
[modify] https://crrev.com/326c73c6cbc33e26b062a0afa41da36ec19db82e/chrome/browser/net/chrome_network_delegate.cc
[modify] https://crrev.com/326c73c6cbc33e26b062a0afa41da36ec19db82e/chrome/browser/net/chrome_network_delegate.h
[modify] https://crrev.com/326c73c6cbc33e26b062a0afa41da36ec19db82e/chrome/browser/net/chrome_network_delegate_unittest.cc
[delete] https://crrev.com/c77d564743fe0ac7b3dac2ef84142f134099c242/chrome/browser/net/reporting_permissions_checker.cc
[delete] https://crrev.com/c77d564743fe0ac7b3dac2ef84142f134099c242/chrome/browser/net/reporting_permissions_checker.h
[delete] https://crrev.com/c77d564743fe0ac7b3dac2ef84142f134099c242/chrome/browser/net/reporting_permissions_checker_unittest.cc
[modify] https://crrev.com/326c73c6cbc33e26b062a0afa41da36ec19db82e/chrome/browser/profiles/profile_impl_io_data.cc
[modify] https://crrev.com/326c73c6cbc33e26b062a0afa41da36ec19db82e/chrome/browser/profiles/profile_impl_io_data.h
[modify] https://crrev.com/326c73c6cbc33e26b062a0afa41da36ec19db82e/chrome/test/BUILD.gn

Project Member

Comment 49 by bugdroid1@chromium.org, May 17 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/81cad4732ff638166f36483f9322aa83ed4aefd7

commit 81cad4732ff638166f36483f9322aa83ed4aefd7
Author: Douglas Creager <dcreager@chromium.org>
Date: Thu May 17 14:34:09 2018

Reporting: Clearly separate IO and UI thread concerns

This patch separates ReportingPermissionsChecker class in two, making it
clearer which parts belong on the UI and IO threads.  The Profile
creates an instance of the UI class on the UI thread, and then creates a
subsidiary IO instance, which is how ChromeNetworkDelegate actually
performs permissions checks.  The IO instance as a WeakPtr to the UI
instance, since it must delegate to the IO thread to actually perform
the check.  If the Profile starts tearing down itself (and by extension,
the UI instance), the WeakPtr will be invalidated.  But importantly, the
IO instance will still be well-formed, in case the network delegate is
trying any outstanding permissions checks.

Bug: 704259
Change-Id: I2b8d437c835a00a90d59aa7e3f39a49d83f511f2
Reviewed-on: https://chromium-review.googlesource.com/1059455
Commit-Queue: Douglas Creager <dcreager@chromium.org>
Reviewed-by: Matt Menke <mmenke@chromium.org>
Reviewed-by: Wez <wez@chromium.org>
Cr-Commit-Position: refs/heads/master@{#559526}
[modify] https://crrev.com/81cad4732ff638166f36483f9322aa83ed4aefd7/chrome/browser/BUILD.gn
[modify] https://crrev.com/81cad4732ff638166f36483f9322aa83ed4aefd7/chrome/browser/net/chrome_network_delegate.cc
[modify] https://crrev.com/81cad4732ff638166f36483f9322aa83ed4aefd7/chrome/browser/net/chrome_network_delegate.h
[modify] https://crrev.com/81cad4732ff638166f36483f9322aa83ed4aefd7/chrome/browser/net/chrome_network_delegate_unittest.cc
[add] https://crrev.com/81cad4732ff638166f36483f9322aa83ed4aefd7/chrome/browser/net/reporting_permissions_checker.cc
[add] https://crrev.com/81cad4732ff638166f36483f9322aa83ed4aefd7/chrome/browser/net/reporting_permissions_checker.h
[add] https://crrev.com/81cad4732ff638166f36483f9322aa83ed4aefd7/chrome/browser/net/reporting_permissions_checker_unittest.cc
[modify] https://crrev.com/81cad4732ff638166f36483f9322aa83ed4aefd7/chrome/browser/profiles/profile_impl.cc
[modify] https://crrev.com/81cad4732ff638166f36483f9322aa83ed4aefd7/chrome/browser/profiles/profile_impl.h
[modify] https://crrev.com/81cad4732ff638166f36483f9322aa83ed4aefd7/chrome/browser/profiles/profile_impl_io_data.cc
[modify] https://crrev.com/81cad4732ff638166f36483f9322aa83ed4aefd7/chrome/browser/profiles/profile_impl_io_data.h
[modify] https://crrev.com/81cad4732ff638166f36483f9322aa83ed4aefd7/chrome/test/BUILD.gn

Cc: juliatut...@chromium.org
Owner: dcreager@chromium.org
Blockedon: 854248
Blockedon: 850170
Blockedon: 860802
Blockedon: 865394
Blocking: -564071

Sign in to add a comment