|
|
Created:
3 years, 10 months ago by Julia Tuttle Modified:
3 years, 8 months ago CC:
cbentzel+watch_chromium.org, chromium-reviews, net-reviews_chromium.org Target Ref:
refs/heads/master Project:
chromium Visibility:
Public. |
DescriptionReporting: 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}
Committed: https://chromium.googlesource.com/chromium/src/+/1690bc6eba0b829b5250c2e26347a951ed653515
Patch Set 1 #Patch Set 2 : Actually include new code. #Patch Set 3 : Finish DelegateImpl implementation #
Total comments: 18
Patch Set 4 : Make requested changes. #Patch Set 5 : Make sure we sanitize report URLs. #Patch Set 6 : Add unittests. #Patch Set 7 : git cl format, tweak #Patch Set 8 : rebase #Patch Set 9 : DISALLOW_COPY_AND_ASSIGN #
Total comments: 3
Patch Set 10 : Extract header parser and make static #
Total comments: 6
Patch Set 11 : Make requested changes. #
Total comments: 12
Patch Set 12 : Make requested changes. #
Total comments: 4
Patch Set 13 : Make requested changes. #
Messages
Total messages: 54 (39 generated)
The CQ bit was checked by juliatuttle@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: android_clang_dbg_recipe on master.tryserver.chromium.android (JOB_FAILED, https://build.chromium.org/p/tryserver.chromium.android/builders/android_clan...) android_cronet on master.tryserver.chromium.android (JOB_FAILED, https://build.chromium.org/p/tryserver.chromium.android/builders/android_cron...) cast_shell_linux on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/cast_shell_linu...) linux_chromium_compile_dbg_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_...) linux_chromium_rel_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_...) linux_chromium_tsan_rel_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_...)
The CQ bit was checked by juliatuttle@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: This issue passed the CQ dry run.
Description was changed from ========== Reporting: Add stub interface in //net. In preparation for landing the actual Reporting code in a component, create a delegate interface in //net that allows the net stack to notify the Reporting component of Report-To headers, as well as reports generated by the net stack. BUG= ========== to ========== Reporting: Create and implement Delegate interface. Reporting is a spec for delivering out-of-band reports from various other parts of the browser. See http://wicg.github.io/reporting/. This implements the Reporting delegate, which accepts reports and configuration headers from other parts of the network stack (and potentially reports from outside the stack as well). ==========
juliatuttle@chromium.org changed reviewers: + shivanisha@chromium.org
PTAL, shivanisha.
Added feedback mostly to add comments and some other nits. Thanks! https://codereview.chromium.org/2689953004/diff/40001/net/reporting/reporting... File net/reporting/reporting_delegate.h (right): https://codereview.chromium.org/2689953004/diff/40001/net/reporting/reporting... net/reporting/reporting_delegate.h:15: class NET_EXPORT ReportingDelegate { Comment to describe the purpose of the class. https://codereview.chromium.org/2689953004/diff/40001/net/reporting/reporting... net/reporting/reporting_delegate.h:19: virtual void OnReportGenerated(const GURL& url, Comments for both the exposed API including a brief explanation of the arguments. https://codereview.chromium.org/2689953004/diff/40001/net/reporting/reporting... File net/reporting/reporting_delegate_impl.cc (right): https://codereview.chromium.org/2689953004/diff/40001/net/reporting/reporting... net/reporting/reporting_delegate_impl.cc:34: const base::ListValue* list; const base::ListValue* list = nullptr; https://codereview.chromium.org/2689953004/diff/40001/net/reporting/reporting... net/reporting/reporting_delegate_impl.cc:38: const base::Value* item; const base::Value* item = nullptr; Also, may be rename item to json_value? https://codereview.chromium.org/2689953004/diff/40001/net/reporting/reporting... net/reporting/reporting_delegate_impl.cc:40: bool got = list->Get(i, &item); nit: may be rename "got" to "is_present" https://codereview.chromium.org/2689953004/diff/40001/net/reporting/reporting... net/reporting/reporting_delegate_impl.cc:48: const base::DictionaryValue* dict; const base::DictionaryValue* dict = nullptr; https://codereview.chromium.org/2689953004/diff/40001/net/reporting/reporting... net/reporting/reporting_delegate_impl.cc:54: return; empty line after this return. https://codereview.chromium.org/2689953004/diff/40001/net/reporting/reporting... net/reporting/reporting_delegate_impl.cc:67: int ttl_sec; int ttl_sec = 0; https://codereview.chromium.org/2689953004/diff/40001/net/reporting/reporting... File net/reporting/reporting_delegate_impl.h (right): https://codereview.chromium.org/2689953004/diff/40001/net/reporting/reporting... net/reporting/reporting_delegate_impl.h:30: void ProcessEndpoint(const GURL& url, const base::Value* json); Comment to describe the purpose of ProcessEndpoint.
PTAL, shivanisha. (Unit tests will come later.) https://codereview.chromium.org/2689953004/diff/40001/net/reporting/reporting... File net/reporting/reporting_delegate.h (right): https://codereview.chromium.org/2689953004/diff/40001/net/reporting/reporting... net/reporting/reporting_delegate.h:15: class NET_EXPORT ReportingDelegate { On 2017/03/01 21:51:56, shivanisha wrote: > Comment to describe the purpose of the class. Done. https://codereview.chromium.org/2689953004/diff/40001/net/reporting/reporting... net/reporting/reporting_delegate.h:19: virtual void OnReportGenerated(const GURL& url, On 2017/03/01 21:51:56, shivanisha wrote: > Comments for both the exposed API including a brief explanation of the > arguments. Done. https://codereview.chromium.org/2689953004/diff/40001/net/reporting/reporting... File net/reporting/reporting_delegate_impl.cc (right): https://codereview.chromium.org/2689953004/diff/40001/net/reporting/reporting... net/reporting/reporting_delegate_impl.cc:34: const base::ListValue* list; On 2017/03/01 21:51:57, shivanisha wrote: > const base::ListValue* list = nullptr; Done. https://codereview.chromium.org/2689953004/diff/40001/net/reporting/reporting... net/reporting/reporting_delegate_impl.cc:38: const base::Value* item; On 2017/03/01 21:51:56, shivanisha wrote: > const base::Value* item = nullptr; > Also, may be rename item to json_value? Renaming to "endpoint", since it describes what should be in the JSON. https://codereview.chromium.org/2689953004/diff/40001/net/reporting/reporting... net/reporting/reporting_delegate_impl.cc:40: bool got = list->Get(i, &item); On 2017/03/01 21:51:56, shivanisha wrote: > nit: may be rename "got" to "is_present" Renaming to "got_endpoint". https://codereview.chromium.org/2689953004/diff/40001/net/reporting/reporting... net/reporting/reporting_delegate_impl.cc:48: const base::DictionaryValue* dict; On 2017/03/01 21:51:56, shivanisha wrote: > const base::DictionaryValue* dict = nullptr; Done. https://codereview.chromium.org/2689953004/diff/40001/net/reporting/reporting... net/reporting/reporting_delegate_impl.cc:54: return; On 2017/03/01 21:51:57, shivanisha wrote: > empty line after this return. Done. https://codereview.chromium.org/2689953004/diff/40001/net/reporting/reporting... net/reporting/reporting_delegate_impl.cc:67: int ttl_sec; On 2017/03/01 21:51:56, shivanisha wrote: > int ttl_sec = 0; Initializing to -1, so if GetInteger doesn't set it, the if returns immediately. https://codereview.chromium.org/2689953004/diff/40001/net/reporting/reporting... File net/reporting/reporting_delegate_impl.h (right): https://codereview.chromium.org/2689953004/diff/40001/net/reporting/reporting... net/reporting/reporting_delegate_impl.h:30: void ProcessEndpoint(const GURL& url, const base::Value* json); On 2017/03/01 21:51:57, shivanisha wrote: > Comment to describe the purpose of ProcessEndpoint. Done.
The CQ bit was checked by juliatuttle@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: linux_android_rel_ng on master.tryserver.chromium.android (JOB_FAILED, https://build.chromium.org/p/tryserver.chromium.android/builders/linux_androi...)
The CQ bit was checked by juliatuttle@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was checked by juliatuttle@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: This issue passed the CQ dry run.
Description was changed from ========== Reporting: Create and implement Delegate interface. Reporting is a spec for delivering out-of-band reports from various other parts of the browser. See http://wicg.github.io/reporting/. This implements the Reporting delegate, which accepts reports and configuration headers from other parts of the network stack (and potentially reports from outside the stack as well). ========== to ========== Reporting: Create 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/. This implements the header parser, which parses Report-To headers and applies the correct updates to the Reporting cache. ==========
Looking good. Added some nits and a clarification regarding the ReportingHeaderParser class. Also, I wasn't sure why the latest patch does not include the reporting_delegate* files. https://codereview.chromium.org/2689953004/diff/160001/net/reporting/reportin... File net/reporting/reporting_delegate.h (right): https://codereview.chromium.org/2689953004/diff/160001/net/reporting/reportin... net/reporting/reporting_delegate.h:34: // Reporting implementation will take ownership of, and that will be reporting does not need to start with capital letter. https://codereview.chromium.org/2689953004/diff/160001/net/reporting/reportin... File net/reporting/reporting_delegate_impl.h (right): https://codereview.chromium.org/2689953004/diff/160001/net/reporting/reportin... net/reporting/reporting_delegate_impl.h:23: ReportingDelegateImpl(base::TickClock* clock, ReportingCache* cache); Since the constructor takes raw pointers, it needs documentation about the lifetime of the passed pointers, whether |clock| and |cache| should outlive |this| or not. https://codereview.chromium.org/2689953004/diff/160001/net/reporting/reportin... net/reporting/reporting_delegate_impl.h:38: // We can probably remove the empty lines between parameter documentations. Had a quick look at other header files and did not find them. https://codereview.chromium.org/2689953004/diff/180001/net/reporting/reportin... File net/reporting/reporting_header_parser.h (right): https://codereview.chromium.org/2689953004/diff/180001/net/reporting/reportin... net/reporting/reporting_header_parser.h:23: class NET_EXPORT ReportingHeaderParser { class documentation. https://codereview.chromium.org/2689953004/diff/180001/net/reporting/reportin... net/reporting/reporting_header_parser.h:25: static void ParseHeader(ReportingCache* cache, API documentation https://codereview.chromium.org/2689953004/diff/180001/net/reporting/reportin... net/reporting/reporting_header_parser.h:38: base::TimeTicks now, How is this function different from ReportingDelegateImpl's ProcessEndpoint?
The CQ bit was checked by juliatuttle@chromium.org to run a CQ dry run
PTAL, shivanisha. https://codereview.chromium.org/2689953004/diff/180001/net/reporting/reportin... File net/reporting/reporting_header_parser.h (right): https://codereview.chromium.org/2689953004/diff/180001/net/reporting/reportin... net/reporting/reporting_header_parser.h:23: class NET_EXPORT ReportingHeaderParser { On 2017/03/15 23:38:01, shivanisha wrote: > class documentation. Done. https://codereview.chromium.org/2689953004/diff/180001/net/reporting/reportin... net/reporting/reporting_header_parser.h:25: static void ParseHeader(ReportingCache* cache, On 2017/03/15 23:38:01, shivanisha wrote: > API documentation Done. https://codereview.chromium.org/2689953004/diff/180001/net/reporting/reportin... net/reporting/reporting_header_parser.h:38: base::TimeTicks now, On 2017/03/15 23:38:01, shivanisha wrote: > How is this function different from ReportingDelegateImpl's ProcessEndpoint? It's similar; I just chose to break out the header parser (the majority of ReportingDelegateImpl) into a separate class, and put the remainder in the ReportingService (many CLs later).
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: linux_chromium_tsan_rel_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_...)
Description was changed from ========== Reporting: Create 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/. This implements the header parser, which parses Report-To headers and applies the correct updates to the Reporting cache. ========== to ========== 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. ==========
Description was changed from ========== 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. ========== to ========== 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 ==========
On 2017/03/21 at 18:52:33, juliatuttle wrote: > PTAL, shivanisha. > > https://codereview.chromium.org/2689953004/diff/180001/net/reporting/reportin... > File net/reporting/reporting_header_parser.h (right): > > https://codereview.chromium.org/2689953004/diff/180001/net/reporting/reportin... > net/reporting/reporting_header_parser.h:23: class NET_EXPORT ReportingHeaderParser { > On 2017/03/15 23:38:01, shivanisha wrote: > > class documentation. > > Done. > > https://codereview.chromium.org/2689953004/diff/180001/net/reporting/reportin... > net/reporting/reporting_header_parser.h:25: static void ParseHeader(ReportingCache* cache, > On 2017/03/15 23:38:01, shivanisha wrote: > > API documentation > > Done. > > https://codereview.chromium.org/2689953004/diff/180001/net/reporting/reportin... > net/reporting/reporting_header_parser.h:38: base::TimeTicks now, > On 2017/03/15 23:38:01, shivanisha wrote: > > How is this function different from ReportingDelegateImpl's ProcessEndpoint? > > It's similar; I just chose to break out the header parser (the majority of ReportingDelegateImpl) into a separate class, and put the remainder in the ReportingService (many CLs later). lgtm
The CQ bit was checked by juliatuttle@chromium.org
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
No L-G-T-M from a valid reviewer yet. CQ run can only be started once the patch has received an L-G-T-M from a full committer. Even if an L-G-T-M may have been provided, it was from a non-committer,_not_ a full super star committer. Committers are members of the group "project-chromium-committers". Note that this has nothing to do with OWNERS files.
juliatuttle@chromium.org changed reviewers: + jkarlin@chromium.org
PTAL, jkarlin (for committer signoff).
https://codereview.chromium.org/2689953004/diff/200001/net/reporting/reportin... File net/reporting/reporting_header_parser.cc (right): https://codereview.chromium.org/2689953004/diff/200001/net/reporting/reportin... net/reporting/reporting_header_parser.cc:23: if (!url.SchemeIsCryptographic()) You DCHECK this in the cache, should DCHECK here as well? https://codereview.chromium.org/2689953004/diff/200001/net/reporting/reportin... net/reporting/reporting_header_parser.cc:33: DCHECK(is_list && list); Prefer two separate into two DCHECKS so you know which was incorrect. https://codereview.chromium.org/2689953004/diff/200001/net/reporting/reportin... net/reporting/reporting_header_parser.cc:38: DCHECK(got_endpoint && endpoint); Prefer two separate into two DCHECKS so you know which was incorrect. https://codereview.chromium.org/2689953004/diff/200001/net/reporting/reportin... net/reporting/reporting_header_parser.cc:65: if (dict->HasKey("includeSubdomains") && "includeSubdomains" should should be a const char[] Same for all the other strings. https://codereview.chromium.org/2689953004/diff/200001/net/reporting/reportin... File net/reporting/reporting_header_parser_unittest.cc (right): https://codereview.chromium.org/2689953004/diff/200001/net/reporting/reportin... net/reporting/reporting_header_parser_unittest.cc:28: const std::string kType("type"); All of above need to be POD https://codereview.chromium.org/2689953004/diff/200001/net/reporting/reportin... net/reporting/reporting_header_parser_unittest.cc:102: EXPECT_FALSE(FindClientInCache(&cache_, kOrigin, kEndpoint) != nullptr); EXPECT_EQ(nullptr, FindClientInCache(&cache_, kOrigin, kEndPoint))
The CQ bit was checked by juliatuttle@chromium.org to run a CQ dry run
PTAL, jkarlin. https://codereview.chromium.org/2689953004/diff/200001/net/reporting/reportin... File net/reporting/reporting_header_parser.cc (right): https://codereview.chromium.org/2689953004/diff/200001/net/reporting/reportin... net/reporting/reporting_header_parser.cc:23: if (!url.SchemeIsCryptographic()) On 2017/03/28 18:29:50, jkarlin wrote: > You DCHECK this in the cache, should DCHECK here as well? Done. https://codereview.chromium.org/2689953004/diff/200001/net/reporting/reportin... net/reporting/reporting_header_parser.cc:33: DCHECK(is_list && list); On 2017/03/28 18:29:50, jkarlin wrote: > Prefer two separate into two DCHECKS so you know which was incorrect. Come to think of it, I don't actually need to check list, given the guarantees of GetAsList. https://codereview.chromium.org/2689953004/diff/200001/net/reporting/reportin... net/reporting/reporting_header_parser.cc:38: DCHECK(got_endpoint && endpoint); On 2017/03/28 18:29:50, jkarlin wrote: > Prefer two separate into two DCHECKS so you know which was incorrect. Ditto. https://codereview.chromium.org/2689953004/diff/200001/net/reporting/reportin... net/reporting/reporting_header_parser.cc:65: if (dict->HasKey("includeSubdomains") && On 2017/03/28 18:29:50, jkarlin wrote: > "includeSubdomains" should should be a const char[] > > Same for all the other strings. Done. https://codereview.chromium.org/2689953004/diff/200001/net/reporting/reportin... File net/reporting/reporting_header_parser_unittest.cc (right): https://codereview.chromium.org/2689953004/diff/200001/net/reporting/reportin... net/reporting/reporting_header_parser_unittest.cc:28: const std::string kType("type"); On 2017/03/28 18:29:50, jkarlin wrote: > All of above need to be POD Moved into class instead. https://codereview.chromium.org/2689953004/diff/200001/net/reporting/reportin... net/reporting/reporting_header_parser_unittest.cc:102: EXPECT_FALSE(FindClientInCache(&cache_, kOrigin, kEndpoint) != nullptr); On 2017/03/28 18:29:50, jkarlin wrote: > EXPECT_EQ(nullptr, FindClientInCache(&cache_, kOrigin, kEndPoint)) Done.
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: CQ has no permission to schedule in bucket master.tryserver.chromium.linux
lgtm with a couple comments https://codereview.chromium.org/2689953004/diff/220001/net/reporting/reportin... File net/reporting/reporting_header_parser.cc (right): https://codereview.chromium.org/2689953004/diff/220001/net/reporting/reportin... net/reporting/reporting_header_parser.cc:86: if (!dict->GetInteger(kMaxAgeKey, &ttl_sec) || ttl_sec < 0) nit: perhaps move this up to just after parsing the url so that we can exit early if the header is missing something. https://codereview.chromium.org/2689953004/diff/220001/net/reporting/reportin... File net/reporting/reporting_header_parser_unittest.cc (right): https://codereview.chromium.org/2689953004/diff/220001/net/reporting/reportin... net/reporting/reporting_header_parser_unittest.cc:56: "non-string group"}, I think we should check the invalid case that the headers are in a list e.g., [{max-age:1, url:"https://foo.com"}, {max-age:2, url:"https://bar.com"}]
Thanks jkarlin! https://codereview.chromium.org/2689953004/diff/220001/net/reporting/reportin... File net/reporting/reporting_header_parser.cc (right): https://codereview.chromium.org/2689953004/diff/220001/net/reporting/reportin... net/reporting/reporting_header_parser.cc:86: if (!dict->GetInteger(kMaxAgeKey, &ttl_sec) || ttl_sec < 0) On 2017/03/29 11:30:05, jkarlin wrote: > nit: perhaps move this up to just after parsing the url so that we can exit > early if the header is missing something. Done. https://codereview.chromium.org/2689953004/diff/220001/net/reporting/reportin... File net/reporting/reporting_header_parser_unittest.cc (right): https://codereview.chromium.org/2689953004/diff/220001/net/reporting/reportin... net/reporting/reporting_header_parser_unittest.cc:56: "non-string group"}, On 2017/03/29 11:30:05, jkarlin wrote: > I think we should check the invalid case that the headers are in a list e.g., > [{max-age:1, url:"https://foo.com"}, {max-age:2, url:"https://bar.com"}] Oh, good call.
The CQ bit was checked by juliatuttle@chromium.org
The patchset sent to the CQ was uploaded after l-g-t-m from shivanisha@chromium.org, jkarlin@chromium.org Link to the patchset: https://codereview.chromium.org/2689953004/#ps240001 (title: "Make requested changes.")
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
CQ is committing da patch. Bot data: {"patchset_id": 240001, "attempt_start_ts": 1490804099882810, "parent_rev": "bb5b80f0f2882522fb2ead659374aa05ac218c9f", "commit_rev": "9752613a829e4c079d89da0b5f5ad7cb7891657a"}
CQ is committing da patch. Bot data: {"patchset_id": 240001, "attempt_start_ts": 1490804099882810, "parent_rev": "e2b71b92f726eb998e8176da1be881d2755dd451", "commit_rev": "1690bc6eba0b829b5250c2e26347a951ed653515"}
Message was sent while issue was closed.
Description was changed from ========== 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 ========== to ========== 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} Committed: https://chromium.googlesource.com/chromium/src/+/1690bc6eba0b829b5250c2e26347... ==========
Message was sent while issue was closed.
Committed patchset #13 (id:240001) as https://chromium.googlesource.com/chromium/src/+/1690bc6eba0b829b5250c2e26347... |