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.

Reply via email to