One point of clarification: we are intending to experiment for one milestone (M128), but would like to request 3 milestones (M128 - M130) in case of any delays.
Thanks so much! On Wed, Jul 3, 2024 at 2:16 PM Kyra Seevers <kyraseev...@chromium.org> wrote: > Update: I wanted to update the thread that WebKit left positive > indications of support for this proposal in the request for position > recently: https://github.com/WebKit/standards-positions/issues/363. > > Daniel: Thanks for the question! We will be using a traditional Finch > experiment rollout starting with Canary/Dev in M128. I will update this > thread with any changes to the experiment that occur. > > As for why we chose our keying structure: top-level site allows us to > prevent cross-site leaks and frame origin allows us to adhere to the > same-origin policy and avoid cross-frame leaks. For example, if I have an > iframe c.com embedded in both a.com and b.com, keying by top-level site > removes the opportunity for cross-site tracking to occur between these two > iframes. For a visual example of this, please see the explainer (especially > Key Scenarios #2 and #3): > https://github.com/kyraseevers/Partitioning-visited-links-history?tab=readme-ov-file#key-scenarios > . > > Thanks all, > Kyra > > On Wed, Jul 3, 2024 at 10:48 AM Daniel Bratell <bratel...@gmail.com> > wrote: > >> What milestones do you plan to run the experiment in? >> >> (Also, why isn't it enough to key on frame origin? I'm sure there is a >> good reason but it's not obvious.) >> >> /Daniel >> On 2024-07-02 22:42, Kyra Seevers wrote: >> >> Intent to Experiment: Partitioning :visited links history Phase 2 >> (User-facing partitioning for :visited links) >> Contact emails >> >> kyraseev...@chromium.org >> >> Explainer >> >> https://github.com/kyraseevers/Partitioning-visited-links-history >> >> Specification >> >> We plan to specify our solution before shipping. This work currently >> falls under the wording in CSS Selectors Level 4 >> <https://www.w3.org/TR/selectors-4/#link>: “UAs may treat all links as >> unvisited links or implement other measures to preserve the user’s privacy >> while rendering visited and unvisited links differently.” >> >> Summary >> >> To eliminate user browsing history leaks, anchor elements will be styled >> as :visited if and only if they have been clicked from this top-level site >> and frame origin before. On the browser-side, this means that the >> VisitedLinks hashtable will now be partitioned via "triple-keying", or by >> storing the following for each visited link: <link URL, top-level site, >> frame origin>. By only styling links that have been clicked on this site >> and frame before, the many side-channel attacks that have been developed to >> obtain :visited links styling information are now obsolete, as they no >> longer provide sites with new information about users. >> >> Blink component >> >> Blink>History>VisitedLinks >> <https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink%3EHistory%3EVisitedLinks> >> >> Search tags >> >> visited links <https://chromestatus.com/features#tags:visited%20links>, >> :visited >> selector <https://chromestatus.com/features#tags::visited%20selector>, >> partitioning >> history <https://chromestatus.com/features#tags:partitioning%20history> >> >> TAG review >> >> https://github.com/w3ctag/design-reviews/issues/896 >> >> TAG review status >> >> Issues addressed >> >> Risks >> Interoperability and Compatibility >> >> Gecko: Positive ( >> https://github.com/mozilla/standards-positions/issues/1040) >> >> WebKit: Under Review ( >> https://github.com/WebKit/standards-positions/issues/363) >> >> Web developers: No signals >> >> Other signals: >> >> - >> >> Positive initial signals from presentation at WebAppSec from both >> Apple and Firefox >> >> <https://github.com/w3c/webappsec/blob/main/meetings/2023/2023-06-21-minutes.md> >> - >> >> At the XS Leaks Summit, Firefox stated exploration of :visited links >> partitioning in their privacy goals for the upcoming year at the XS-Leaks >> Summit >> >> >> - >> >> Positive or neutral initial signals from security and privacy >> researchers at the XS-Leaks summit. No security concerns about this >> design. >> Interest in understanding user behavior around this new model of what >> constitutes a :visited link. >> - >> >> Feedback from UX that CSS extensibility is in-demand from developers >> right now, and this work would pave the way for less restricted CSS on >> anchor elements. In addition, support from various developers who believe >> that taking care of this long-standing privacy leak will allow their own >> security and privacy solutions to advance once history sniffing is no >> longer an issue. >> >> >> Ergonomics >> >> This design is asynchronous and not used in tandem with other APIs. >> >> Activation >> >> Since this is a Finch roll-out, there are no additional activation risks. >> >> Security >> >> For this design we worked with the Chrome Security Architecture team to >> ensure reasonable precautions were taken against leaks of the :visited >> links hashtable via renderer compromise. >> >> WebView application risks >> >> This experiment will not run on WebView. This feature deals with >> platform-specific code and the WebView implementation of :visited links >> does not integrate with the History Database. >> >> >> Goals for experimentation >> >> Our intent is to run a Finch experiment. This user-facing experiment will >> use the traditional Finch roll-out schedule. We will utilize newly added >> UMA to determine the percentage of links styled as :visited under >> partitioning, as well as observe the size, efficiency, and impact of the >> newly partitioned infrastructure in comparison to the unpartitioned >> (original) codepaths. >> >> Experiment Risks >> >> As this is a Finch experiment, it is per-client rather than per-site. The >> biggest potential risk to clients is a visible change to which links are >> styled as :visited once they enter the experiment. However, based on >> pre-experimental metrics analysis, we believe that most links the user sees >> will remain unchanged. In the event of an issue during the experiment, we >> will flip our kill switch via Finch. >> >> Ongoing technical constraints >> >> None >> >> Debuggability >> >> No DevTools support is required. >> >> Will this feature be supported on all six Blink platforms (Windows, Mac, >> Linux, ChromeOS, Android, and Android WebView)? >> >> No >> >> This feature is not currently supported on iOS or Android Webview. For >> iOS, this feature requires WebKit to alter its CSS parsing to support >> triple-key partitioning. Android Webview relies on an entirely different >> system to populate history, so it will require a separate design. >> >> Is this feature fully tested by web-platform-tests >> <https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md> >> ? >> >> No >> >> This feature is not tested by Web Platform Tests because the :visited >> selector cannot be queried via JavaScript ( >> https://developer.mozilla.org/en-US/docs/Web/CSS/Privacy_and_the_:visited_selector). >> As a result, we can only test :visited-ness via manual tests which rely on >> users visually confirming the correct links are :visited, or unit and >> integration tests internal to Chrome. >> >> Flag name on chrome://flags >> >> N/a >> >> Finch feature name >> >> PartitionVisitedLinkDatabase >> >> Requires code in //chrome? >> >> True >> >> Tracking bug >> >> https://bugs.chromium.org/p/chromium/issues/detail?id=1448609 >> >> Launch bug >> >> https://launch.corp.google.com/launch/4330864 >> >> Estimated milestones >> >> Shipping on desktop >> >> 128 >> >> Shipping on Android >> >> 128 >> >> Link to entry on the Chrome Platform Status >> >> https://chromestatus.com/feature/5101991698628608?gate=4821248529137664 >> >> Links to previous Intent discussions >> >> Intent to prototype: >> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CA%2BmmbXbbLWwmRYH5SWx0%2BMWkfB2UY2miOAq4r0MZc34i_sWqBw%40mail.gmail.com >> >> >> Intent to Experiment (Phase 1): >> https://groups.google.com/a/chromium.org/g/blink-dev/c/U5AX0OXaxM8/m/tIGr4bJJBgAJ?utm_medium=email&utm_source=footer >> >> This intent message was generated by Chrome Platform Status >> <https://chromestatus.com/>. >> -- >> 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/CA%2BmmbXYy4CSMuPLY0HJuTbZt0qPz5ZUsGUToFJuCE%2BTfC86umA%40mail.gmail.com >> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CA%2BmmbXYy4CSMuPLY0HJuTbZt0qPz5ZUsGUToFJuCE%2BTfC86umA%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/CA%2BmmbXbJX%2BW5m9351o8qZV56SAnsmEfDbSwTr6YHPrpQUx%3DG2Q%40mail.gmail.com.