Hi all,

FYI: we have had some delays in the experimental rollout and will be
continuing with low-level (Stable 1% or lower) Finch experiments in M131
(and probably in M132 as well).

Feel free to respond with any questions or concerns - thanks so much!

@Yoav Weiss <yoavwe...@chromium.org> due to the extra development time we
were able to include this concept (what we're calling self-links) in our
multi-armed experiment to determine if it is feasible!

Thanks,
Kyra

On Wed, Jul 3, 2024 at 10:27 PM Yoav Weiss (@Shopify) <
yoavwe...@chromium.org> wrote:

> LGTM3
>
> One question raised <https://x.com/miketaylr/status/1808452993504739821>
> elsewhere was around same-origin links, where links to origin B visited
> from origin A should be then marked as visited when linked directly from B.
> I see there's an open issue
> <https://github.com/kyraseevers/Partitioning-visited-links-history/issues/6>
> on this. It'd be good if one of the experiment's goals would be to
> determine if this is a blocker or not for initial shipping.
>
> On Wed, Jul 3, 2024 at 10:12 PM Daniel Bratell <bratel...@gmail.com>
> wrote:
>
>> LGTM2 for a low percentage finch experiment in M128-M130 (inclusive)
>>
>> /Daniel
>> On 2024-07-03 22:02, Chris Harrelson wrote:
>>
>> LGTM1
>>
>> (probably 3 needed because this is a non-standard experiment)
>>
>> On Wed, Jul 3, 2024 at 12:28 PM Kyra Seevers <kyraseev...@chromium.org>
>> wrote:
>>
>>> 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
>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CA%2BmmbXbJX%2BW5m9351o8qZV56SAnsmEfDbSwTr6YHPrpQUx%3DG2Q%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/c88842b3-894d-49c6-be1a-d83f7fdae7ea%40gmail.com
>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/c88842b3-894d-49c6-be1a-d83f7fdae7ea%40gmail.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/CAOmohSLzt-06_bsRvJzNm%2BDgkGaV15bE3QiY%3DaoN-krLY8NSOQ%40mail.gmail.com
> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAOmohSLzt-06_bsRvJzNm%2BDgkGaV15bE3QiY%3DaoN-krLY8NSOQ%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
>


-- 

Kyra Seevers (she/her) |  Software Engineer |  kyraseev...@google.com |
kyraseev...@chromium.org

-- 
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/CANyVgfBqtNkPPb4-vnocmXxVxVK5U1Cv63xiCBs8ZsAj_yX8MQ%40mail.gmail.com.

Reply via email to