LGTM2 On Wed, Jun 21, 2023 at 11:46 AM Chris Harrelson <chris...@chromium.org> wrote:
> LGTM1 > > Thank you for thoroughly working through all the design and specification > steps for this feature. Glad to see some positive signals from the TAG > about the fundamental design in particular. > > I agree that Alex's comments are good to answer and investigate for future > work, but also they aren't blocking this intent. (Confirmed this > interpretation with Alex.) > > On Wed, Jun 21, 2023 at 8:42 AM Alex Russell <slightly...@chromium.org> > wrote: > >> Hey all, >> >> I'm not going to weigh in on if this should ship right now, but I want to >> express some disappointment that this design seems to be launching without >> a way to load from a bundle and a flag for removing the ability to load >> from the network. We have a lot of use-cases that would benefit from a >> version of <fencedframe> that was more capable and generic, rather than >> being narrowly targeted at an ads use-case. >> >> What's the prognosis for fixing those deficiencies in near-future work? >> >> Best, >> >> Alex >> >> On Tuesday, June 20, 2023 at 5:07:07 AM UTC-7 Shivani Sharma wrote: >> >>> Contact emails >>> >>> shivani...@chromium.org , d...@chromium.org, jkar...@chromium.org >>> >>> >>> >>> Explainer >>> >>> https://github.com/WICG/fenced-frame/tree/master/explainer >>> >>> Spec >>> >>> https://wicg.github.io/fenced-frame/ >>> >>> Summary >>> >>> In a web that has its cookies and storage partitioned by top-frame >>> sites, there are occasions (such as Interest group based advertising >>> <https://github.com/WICG/turtledove> or Consistent A/B experiments >>> across sites >>> <https://github.com/WICG/shared-storage#simple-example-consistent-ab-experiments-across-sites>) >>> when it would be useful to display content based on inputs from different >>> partitions on the same page. For such use cases, it would be ideal from a >>> privacy perspective, if the documents that contain data from different >>> partitions are isolated from each other such that they're visually composed >>> on the page, but unable to communicate with each other. Iframes do not suit >>> this purpose since they have several communication channels with their >>> embedding frame (e.g., postMessage, URLs, size attribute, etc.). We propose >>> fenced frames, a new element to embed documents on a page, that explicitly >>> prevents communication between the embedder and the frame. >>> >>> >>> At the time of this I2S, fenced frames can be created and navigated >>> using the `FencedFrameConfig` object returned from the following APIs: >>> >>> - >>> >>> Protected Audience API runAdAuction() (code snippet >>> >>> <https://github.com/WICG/turtledove/blob/main/FLEDGE.md#:~:text=const%20result%20%3D%20await,fencedFrame.config%20%3D%20result%3B> >>> ) >>> - >>> >>> Shared Storage API selectUrl() (code snippet >>> >>> <https://github.com/WICG/shared-storage#:~:text=const%20frameConfig%20%3D%20await%20window.sharedStorage.selectURL(%0A%20%20%27creative%2Dselection%2Dby%2Dfrequency%27%2C%20%0A%20%20ads.urls%2C%20%0A%20%20%7B%20%0A%20%20%20%20data%3A%20%7B%20%0A%20%20%20%20%20%20campaignId%3A%20ads.campaignId%20%0A%20%20%20%20%7D%2C%0A%20%20%20%20resolveToConfig%3A%20true%2C%0A%20%20%7D)%3B%0A%0A//%20Render%20the%20frame%0Adocument.getElementById(%27my%2Dfenced%2Dframe%27).config%20%3D%20frameConfig%3B> >>> ) >>> >>> (For future use cases of fenced frames, separate I2S would be sent.) >>> >>> Blink component >>> >>> Blink>FencedFrames >>> <https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink%3EFencedFrames> >>> >>> TAG reviews and status >>> >>> early design review >>> <https://github.com/w3ctag/design-reviews/issues/735#issuecomment-1226822420> >>> (status: complete), >>> >>> specification review >>> <https://github.com/w3ctag/design-reviews/issues/838> (status: pending) >>> >>> Link to Origin Trial feedback summary >>> >>> Fenced frames are part of the unified Privacy Sandbox OT and are an >>> integral part of the privacy design of “Protected Audience” and “Shared >>> Storage” APIs. For easier adoption, these consumer APIs don’t currently >>> enforce the use of fenced frames, but we have had multiple testers testing >>> these APIs with fenced frames. We’ve incorporated feedback and feature >>> requests from those testers, some examples are given below: >>> >>> - >>> >>> Attribution reporting API support for event-level reporting ( >>> explainer >>> >>> <https://github.com/WICG/turtledove/blob/main/Fenced_Frames_Ads_Reporting.md#support-for-attribution-reporting> >>> ), >>> - >>> >>> reserved.top_navigation support for component ads (explainer >>> <https://github.com/WICG/turtledove/pull/541>), >>> - >>> >>> Dev tools integration with reportEvent beacons, >>> - >>> >>> etc. >>> >>> >>> Is this feature supported on all six Blink platforms (Windows, Mac, >>> Linux, Chrome OS, Android, and Android WebView)? >>> >>> Supported on all the above platforms except Android WebView. >>> >>> Demo link >>> >>> https://browsing-context.glitch.me/host-fenced-frame.html >>> >>> Debuggability >>> >>> >>> - DevTools are supported for fenced frames similar to how they are >>> supported for iframes. >>> - DevTools’ network tab will include the beacons sent from a fenced >>> frame as part of fenced frames ads reporting >>> >>> <https://github.com/WICG/turtledove/blob/main/Fenced_Frames_Ads_Reporting.md> >>> . >>> - We also support a developers testing mode behind a non-web-exposed >>> flag where a `FencedFrameConfig` can be created with a plain url, to >>> enable testing fenced frames without invoking the above mentioned >>> consumer >>> APIs. At the moment, this is at >>> chrome://flags/#enable-fenced-frames-developer-mode, but we will likely >>> move it to DevTools in the future. >>> >>> Risks >>> >>> Interoperability >>> >>> Gecko: https://github.com/mozilla/standards-positions/issues/781 >>> >>> WebKit: https://github.com/WebKit/standards-positions/issues/173 >>> >>> Neutral though we haven’t received formal positions on the above issues >>> yet. If these browsers implement the use cases that fenced frames support >>> e.g. interest based advertising or future fenced frame use cases like >>> personalized >>> payment buttons <https://github.com/WICG/fenced-frame/issues/15> then >>> it’s more likely for them to implement fenced frames. >>> >>> Edge: >>> >>> Positive signal. >>> >>> Edge is also exploring interest group based advertising, namely with the >>> PARAKEET proposal >>> <https://github.com/WICG/privacy-preserving-ads/blob/main/Parakeet.md>. >>> PARAKEET, similar to “Protected Audience”, relies on fenced frames for >>> rendering the ad and are interested in collaborating (comment on WICG >>> issue >>> <https://github.com/WICG/proposals/issues/52#issuecomment-1063481655>). >>> >>> Web developers: Fenced frames are designed as a requirement for certain >>> Privacy Sandbox APIs, like Protected Audience API >>> <https://github.com/WICG/turtledove/blob/main/FLEDGE.md#4-browsers-render-the-winning-ad>. >>> There is significant interest in FLEDGE from many web developers. WICG >>> FLEDGE calls <https://github.com/WICG/turtledove/issues/88> are well >>> attended and fenced frames have often been discussed with developers as >>> part of those calls and on github issues on the “Protected Audience” WICG >>> repository. >>> >>> Fenced frames have a stricter information flow as compared to iframes >>> and no information flows from the embedding context to the fenced frame or >>> vice versa. This makes it a challenge to have traditional methods of >>> measurement and spam detection to be applied as they do in iframes. In the >>> short term, fenced frames do allow event level reporting >>> <https://github.com/WICG/turtledove/blob/main/Fenced_Frames_Ads_Reporting.md> >>> but eventually new methods like aggregate reporting would be required and >>> that’s a long-term challenge for the industry to adapt to. >>> >>> Compatibility risks >>> >>> Fenced frames do not deprecate or change existing web behavior, so there >>> should be no compatibility risk. >>> >>> Activation >>> >>> There are no concerns for developers to take advantage of this feature >>> immediately, as-is. >>> >>> Developers can either test fenced frames in conjunction with the >>> consumer APIs or separately using the test-only mode (GH issue >>> <https://github.com/WICG/fenced-frame/issues/94>). >>> >>> Is this feature fully tested by web-platform-tests >>> <https://chromium.googlesource.com/chromium/src/+/master/docs/testing/web_platform_tests.md>? >>> Link to test suite results from wpt.fyi. >>> >>> Yes >>> >>> Tests: >>> https://github.com/web-platform-tests/wpt/tree/master/fenced-frame >>> >>> Results: >>> https://wpt.fyi/results/fenced-frame?label=experimental&label=master&aligned >>> >>> Anticipated spec changes >>> >>> The following are ongoing technical considerations and will be addressed >>> in upcoming milestones accompanied by separate I2Ss and spec changes. These >>> will be breaking changes and should be anticipated by developers: >>> >>> >>> - >>> >>> Currently, the network is unrestricted in fenced frames but will >>> eventually be addressed to mitigate the network side channel leak. The >>> leak >>> is described in the explainer here >>> >>> <https://github.com/WICG/fenced-frame/blob/master/explainer/network_side_channel.md> >>> . >>> - >>> >>> Currently, intersection observer API is supported just like in >>> iframes but will eventually either be replaced with a more private >>> solution >>> or the outflow of information from the FF will be restricted (see point >>> above). This is further described in the explainer here >>> >>> <https://github.com/WICG/fenced-frame/blob/master/explainer/integration_with_web_platform.md#viewability> >>> . >>> - >>> >>> Currently event-level reporting is allowed with information from >>> various contexts as per the explainer here >>> >>> <https://github.com/WICG/turtledove/blob/main/Fenced_Frames_Ads_Reporting.md>. >>> In the future, the event level reporting surface >>> `window.fence.reportEvent` >>> will either change in behavior to become more privacy-preserving or will >>> be >>> a no-op and not send out a beacon. This won’t be a breaking change for >>> the >>> script on the page but impacts the ecosystem since reporting is impacted. >>> >>> >>> Link to entry on the Chrome Platform Status >>> >>> https://chromestatus.com/feature/5699388062040064 >>> >>> Links to previous Intent discussions >>> >>> Intent to prototype: >>> https://groups.google.com/a/chromium.org/g/blink-dev/c/Ko9UXQYPgUE/m/URRsB-qvAAAJ >>> >>> >>> Intent to experiment: >>> >>> >>> https://groups.google.com/a/chromium.org/g/blink-dev/c/y6G3cvKXjlg/m/Lcpmpi_LAgAJ >>> >>> >>> Intent to extend origin trial: >>> >>> >>> https://groups.google.com/a/chromium.org/g/blink-dev/c/SD8Ot2gpz4g/m/A9uA-_cGAwAJ >>> >>> >>> >>> https://groups.google.com/a/chromium.org/g/blink-dev/c/gpmaOi3of_w/m/SyMclFhMAAAJ >>> >>> >>> >>> https://groups.google.com/a/chromium.org/g/blink-dev/c/CBrV-2DrYFI/m/RTojC6kHAgAJ >>> >>> >>> -- >> You received this message because you are subscribed to the Google Groups >> "blink-dev" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to blink-dev+unsubscr...@chromium.org. >> To view this discussion on the web visit >> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/80c0731a-6fab-43b8-9117-c445525de51dn%40chromium.org >> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/80c0731a-6fab-43b8-9117-c445525de51dn%40chromium.org?utm_medium=email&utm_source=footer> >> . >> > -- > You received this message because you are subscribed to the Google Groups > "blink-dev" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to blink-dev+unsubscr...@chromium.org. > To view this discussion on the web visit > https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAOMQ%2Bw8BwtxFW9OdHqOOVpLwr7ohvUQ6UUvWzSCjsTRse%3DHV1A%40mail.gmail.com > <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAOMQ%2Bw8BwtxFW9OdHqOOVpLwr7ohvUQ6UUvWzSCjsTRse%3DHV1A%40mail.gmail.com?utm_medium=email&utm_source=footer> > . > -- You received this message because you are subscribed to the Google Groups "blink-dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+unsubscr...@chromium.org. To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAFUtAY-mX-ziUw%3DFnbRsiHvBT1i8GJucE-iYeFTH15m-b05hGg%40mail.gmail.com.