brave-core
brave-core copied to clipboard
Add support for dynamic, express and expirable P3A metrics, add NTP SI/creative metrics
Resolves brave/brave-browser#24318, brave/brave-browser#24319 and brave/brave-browser#24609.
Submitter Checklist:
- [ ] I confirm that no security/privacy review is needed, or that I have requested one
- [ ] There is a ticket for my issue
- [ ] Used Github auto-closing keywords in the PR description above
- [ ] Wrote a good PR/commit description
- [ ] Squashed any review feedback or "fixup" commits before merge, so that history is a record of what happened in the repo, not your PR
- [ ] Added appropriate labels (
QA/Yes
orQA/No
;release-notes/include
orrelease-notes/exclude
;OS/...
) to the associated issue - [ ] Checked the PR locally:
npm run test -- brave_browser_tests
,npm run test -- brave_unit_tests
,npm run lint
,npm run gn_check
,npm run tslint
- [ ] Ran
git rebase master
(if needed)
Reviewer Checklist:
- [ ] A security review is not needed, or a link to one is included in the PR description
- [ ] New files have MPL-2.0 license header
- [ ] Adequate test coverage exists to prevent regressions
- [ ] Major classes, functions and non-trivial code blocks are well-commented
- [ ] Changes in component dependencies are properly reflected in
gn
- [ ] Code follows the style guide
- [ ] Test plan is specified in PR before merging
After-merge Checklist:
- [ ] The associated issue milestone is set to the smallest version that the changes has landed on
- [ ] All relevant documentation has been updated, for instance:
- [ ] https://github.com/brave/brave-browser/wiki/Deviations-from-Chromium-(features-we-disable-or-remove)
- [ ] https://github.com/brave/brave-browser/wiki/Proxy-redirected-URLs
- [ ] https://github.com/brave/brave-browser/wiki/Fingerprinting-Protections
- [ ] https://github.com/brave/brave-browser/wiki/Brave%E2%80%99s-Use-of-Referral-Codes
- [ ] https://github.com/brave/brave-browser/wiki/Custom-Headers
- [ ] https://github.com/brave/brave-browser/wiki/Web-Compatibility-Exceptions-in-Brave
- [ ] https://github.com/brave/brave-browser/wiki/QA-Guide
- [ ] https://github.com/brave/brave-browser/wiki/P3A
Test Plan:
- Start with fresh profile, ensure ads is disabled, ensure no metrics with the prefix
creativeInstanceId
exist in the local state page. - Open new tabs until an ad is shown. Verify one creative metric with the suffix
views
exists in the local state page. - Click on the creative, verify one creative metric with the suffix
clicks
exists in the local state page. - Verify that the metrics are sent (by using a mitm proxy), with the header
X-Brave-P3A-Creative
set totrue
. - Close browser, advance the time by one day, open browser, ensure the metrics are resent.
- Close browser, advance the time by seven days, open browser, ensure metrics are not sent (due to expiry).