Bug 228708

Summary: [App Privacy Report] Domains are deleted for ephemeral website data stores
Product: WebKit Reporter: Kate Cheney <katherine_cheney>
Component: New BugsAssignee: Kate Cheney <katherine_cheney>
Status: RESOLVED FIXED    
Severity: Normal CC: achristensen, bfulgham, jberlin, mjs, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Patch
none
Patch
none
Patch for landing
none
Patch for landing none

Kate Cheney
Reported 2021-08-02 11:25:37 PDT
[App Privacy Report] Domains are deleted for ephemeral website data stores
Attachments
Patch (18.46 KB, patch)
2021-08-02 11:42 PDT, Kate Cheney
no flags
Patch (2.42 KB, patch)
2021-08-02 15:58 PDT, Kate Cheney
no flags
Patch for landing (9.63 KB, patch)
2021-08-02 16:56 PDT, Kate Cheney
no flags
Patch for landing (2.52 KB, patch)
2021-08-02 17:00 PDT, Kate Cheney
no flags
Kate Cheney
Comment 1 2021-08-02 11:42:50 PDT
Kate Cheney
Comment 2 2021-08-02 14:12:11 PDT
Comment on attachment 434781 [details] Patch Removing r flag, this should probably also fix the Safari Privacy Report case, which is basically an identical fix.
Alex Christensen
Comment 3 2021-08-02 15:08:37 PDT
Comment on attachment 434781 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=434781&action=review > Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm:1830 > + if (!dataStoreIsPersistent) m_sessionID.isEphemeral() Then you don't need to pass the redundant bool around.
Kate Cheney
Comment 4 2021-08-02 15:09:38 PDT
(In reply to Alex Christensen from comment #3) > Comment on attachment 434781 [details] > Patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=434781&action=review > > > Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm:1830 > > + if (!dataStoreIsPersistent) > > m_sessionID.isEphemeral() > Then you don't need to pass the redundant bool around. Will an ephemeral website data store automatically use an ephemeral session?
Alex Christensen
Comment 5 2021-08-02 15:11:01 PDT
Comment on attachment 434781 [details] Patch Yes. WebsiteDataStore::isPersistent() and NetworkSessionCocoa::m_sessionID.isEphemeral() are opposites, getting their information from the same place.
Kate Cheney
Comment 6 2021-08-02 15:58:20 PDT
Kate Cheney
Comment 7 2021-08-02 15:58:30 PDT
(In reply to Alex Christensen from comment #5) > Comment on attachment 434781 [details] > Patch > > Yes. WebsiteDataStore::isPersistent() and > NetworkSessionCocoa::m_sessionID.isEphemeral() are opposites, getting their > information from the same place. TIL.
Alex Christensen
Comment 8 2021-08-02 16:50:46 PDT
Comment on attachment 434797 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=434797&action=review r=me > Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm:1830 > + if (sessionID().isEphemeral()) { Could you add a radar link where you requested SPI to add an automated test for this? // FIXME: Add automated test for this once rdar://???????? is resolved.
Kate Cheney
Comment 9 2021-08-02 16:56:42 PDT
Created attachment 434802 [details] Patch for landing
EWS
Comment 10 2021-08-02 16:57:17 PDT
Tools/Scripts/svn-apply failed to apply attachment 434802 [details] to trunk. Please resolve the conflicts and upload a new patch.
Kate Cheney
Comment 11 2021-08-02 17:00:22 PDT
Created attachment 434803 [details] Patch for landing
Maciej Stachowiak
Comment 12 2021-08-02 17:04:03 PDT
Comment on attachment 434781 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=434781&action=review > Source/WebKit/ChangeLog:11 > + No new tests. Since this data is not stored in WebKit, we have no > + way to test when it gets deleted or not. I tested manually and requested > + an automated test at the correct networking layer. Should we consider making a testing hook for this so that a layout test or API test is possible? > Source/WebKit/ChangeLog:17 > + Only clear App Privacy Report data if the website data store is > + persistent. Safari calls the SPI to remove website data for ephemeral > + data stores in some cases that are unrelated to a user clearing > + website data or history and thus should not clear App Privacy Report > + data. Private browsing is also an ephemeral data store. With this change, would private browsing leave traces in the Privacy Report data store, or do we have some other way of avoiding that?
Maciej Stachowiak
Comment 13 2021-08-02 17:08:41 PDT
Radar WebKit Bug Importer
Comment 14 2021-08-02 17:08:52 PDT
Kate Cheney
Comment 15 2021-08-02 17:09:00 PDT
(In reply to Maciej Stachowiak from comment #12) > Comment on attachment 434781 [details] > Patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=434781&action=review > > > Source/WebKit/ChangeLog:11 > > + No new tests. Since this data is not stored in WebKit, we have no > > + way to test when it gets deleted or not. I tested manually and requested > > + an automated test at the correct networking layer. > > Should we consider making a testing hook for this so that a layout test or > API test is possible? Yes, I requested this in the radar mentioned in the FIXME. The ideal would be SPI that let us test this directly. > > > Source/WebKit/ChangeLog:17 > > + Only clear App Privacy Report data if the website data store is > > + persistent. Safari calls the SPI to remove website data for ephemeral > > + data stores in some cases that are unrelated to a user clearing > > + website data or history and thus should not clear App Privacy Report > > + data. > > Private browsing is also an ephemeral data store. With this change, would > private browsing leave traces in the Privacy Report data store, or do we > have some other way of avoiding that? Ephemeral sessions in full browsers (aka private browsing) do not log any information in the App Privacy Report. However, ephemeral sessions for non-browsers still log domains to prevent sidesteps of APR by using ephemeral sessions.
Radar WebKit Bug Importer
Comment 16 2021-08-02 17:09:10 PDT
EWS
Comment 17 2021-08-02 17:55:21 PDT
Committed r280575 (240197@main): <https://commits.webkit.org/240197@main> All reviewed patches have been landed. Closing bug and clearing flags on attachment 434803 [details].
Note You need to log in before you can comment on or make changes to this bug.