LGTM1 to ship
On Fri, Jun 23, 2023 at 9:50 PM Josh Karlin <jkar...@chromium.org> wrote: > > > On Fri, Jun 23, 2023 at 3:27 PM Rick Byers <rby...@chromium.org> wrote: > >> On Thu, Jun 22, 2023 at 4:48 PM Josh Karlin <jkar...@chromium.org> wrote: >> >>> >>> On Thu, Jun 22, 2023 at 12:05 PM Rick Byers <rby...@chromium.org> wrote: >>> >>>> Thanks for the added color! >>>> >>>> With WebKit and Gecko opposed on grounds that we're unlikely to ever >>>> satisfy, it's clear this feature carries a lot of interop risk. Like other >>>> controversial features we've shipped (eg. WebUSB), API owners are >>>> supposed >>>> <https://www.chromium.org/blink/guidelines/web-platform-changes-guidelines/> >>>> to evaluate that risk against the benefit of "moving the web forward". I >>>> personally find it impossible to predict what the future of targeted >>>> advertising will be on the web in ~5 years (eg. will it largely be replaced >>>> by paywalls and/or move to users being required to be signed in to view all >>>> ad-supported content?), but it's clearly important for the industry to >>>> explore a variety of options to help increase the chances that we can align >>>> on something good for both user's short term interests (eg. privacy) and >>>> long-term interests (eg. availability of high-quality free content). So I'm >>>> looking at this API mostly from a perspective of minimizing the costs to >>>> the ecosystem across the likely possible outcomes. >>>> >>>> On the one hand, if perspectives like that of Gecko's >>>> <https://github.com/mozilla/standards-positions/issues/622> prove to >>>> be where the industry converges in time, then the ecosystem risk seems >>>> quite low. We can probably unship this API without breaking any websites, >>>> and worst case if we couldn't then we could simply lie and generate random >>>> topics or something. So future compat risk seems very small and so we >>>> shouldn't be too afraid of being wrong about the value of this API. >>>> >>>> On the other hand, if Topics ends up being successful and other engines >>>> decide to support it (perhaps because some content providers choose to >>>> offer free access to users with the API and paywall otherwise), then we >>>> have to consider the future interop risk. It looks to me like the team has >>>> done a good job with API design, specs and tests such that future >>>> interoperability is likely not too hard. Thank you Domenic for your spec >>>> maturity summary, very helpful! >>>> >>> >>> >>> >>>> The only concern I can see is in the large number of open spec issues. >>>> Given there's at least one open issue >>>> <https://github.com/patcg-individual-drafts/topics/issues/71> that >>>> we'd likely be deciding implicitly by shipping (API name/location), Josh >>>> could you and the team do a bug triage pass and assign a label to it and >>>> any others in a similar boat of being a substantial breaking change should >>>> we decide differently in the future? Ideally such issues could be resolved >>>> now, but if we need to carry them past ship then we should at least be >>>> aware of the future known compat risk we're creating for ourselves. Even >>>> something like the API name doesn't seem like a huge compat problem to me - >>>> I suspect we could simply ship it under a 2nd name for a few months and >>>> then remove the first, right Josh? Still, I think we should make this >>>> determination explicitly prior to shipping. >>>> >>> >>> Yep, done. That was the only challenging compat issue that I came >>> across, and I've labeled it as such. Yes, we could do such a rename but yes >>> we'd wind up having to support both names in the wild for some period of >>> time. >>> >> >> Thanks for doing the review! >> >> So for that one remaining high-compat-risk issue, are you requesting that >> we ship under document as spec'd but that you'd be open to moving the API >> as a breaking change if there's a rough consensus on where to put it at a >> later date? >> > > Yes. Shipping with document.browsingTopics but later deprecating and > changing to window.browsingTopics or whatever that issue resolves to sgtm. > > > >> >> On Thu, Jun 22, 2023 at 8:06 PM Sangwhan Moon <s...@chromium.org> wrote: >> >>> >>> >>> On 2023年06月22日 03時57分08秒 (+09:00), Josh Karlin wrote: >>> >>> Thanks for the questions Alex. Responses inline: >>> >>> >>> > I don't see a full "considered alternatives" section in the Explainer. >>> What other options were explored for this API and/or design? >>> >>> >>> Yes. Before Topics we had another API, FLoC <https://web.dev/floc/>. We >>> learned early on in the OT process that we did not want to move forward >>> with it. Discussion of how FLoC migrated into Topics can be seen in this >>> section >>> <https://github.com/patcg-individual-drafts/topics#evolution-from-floc> of >>> the explainer. Another alternative would be to provide this sort of >>> cross-site data only within a worklet, as Protected Audiences and Shared >>> Storage do, and require that the ad be rendered within a fenced frame. An >>> API like that is not off the table in the future, but at this stage we felt >>> it prudent to make a simple API that could offer value in this space that >>> has high levels of privacy in addition to the more complex and capable APIs >>> that require private rendering. >>> >>> >>> >>> > Does this naturally need to live on `document`? Was `navigator` (or >>> some other root object) considered? >>> >>> >>> There is an issue >>> <https://github.com/patcg-individual-drafts/topics/issues/71> for this, >>> and I asked for advice >>> <https://github.com/w3ctag/design-reviews/issues/726#issuecomment-1137279345> >>> on >>> this on the TAG review but did not receive a response. We chose document at >>> the time because the topics returned are conditional on the caller, and >>> changing didn’t seem particularly compelling (e.g., it wasn’t abundantly >>> clear where it should rightfully go). >>> >>> >>> We have an on-going thread on this, expect something (ideally) as early >>> as next week. >>> >>> >> Thanks Sangwhan. I'm interested to hear the latest thinking from TAG. >> Given the long discussed timeline >> <https://privacysandbox.com/open-web/#the-privacy-sandbox-timeline> of >> shipping in July, at this point I assume we're largely discussing potential >> future work (including breaking changes) that could be done to increase >> industry support and potential for eventual interoperability. So I don't >> think there's particular urgency to the TAG feedback. Nonetheless I'm happy >> to withhold my LGTM for a few more days to see if there's any new arguments >> folks might want to bring to bear on the API owner approval process here. >> >> By the way, re-reading the TAG discussion I want to emphasize a point >> that kleber@ made that I think is at the crux of some of the tension >> here: >> >> "From a POV more focused on web standards: as with any other >> non-backwards-compatible change to the web platform, we can only proceed >> with a deprecation and removal after considering the potential breakage. >> See >> https://www.chromium.org/blink/launching-features/#feature-deprecations for >> full details of the Blink process, but note for example that the >> guidelines >> <https://docs.google.com/document/d/1LdqUfUILyzM5WEcOgeAWGupQILKrZHidEXrUxevyi_Y/edit> >> ask >> "What is the cost of removing this feature?" and "What is the suggested >> alternative? There should be another way for developers to achieve the same >> functionality." A change that would cause most web sites to lose half of >> their revenue, without any privacy-improving alternative, is not compatible >> with our removal process." >> >> I agree with this 100%, and years ago expanded on it in the details of >> our breaking change principles >> <https://docs.google.com/document/d/1RC-pBBvsazYfCNNUSkPqAVpSpNJ96U8trhNkfV0v9fk/edit#heading=h.x5bhg5grhfeo>. >> Our job as API owners is to uphold principles like not taking important >> functionality away from web developers without viable alternatives while >> maximizing interoperability and multi-stakeholder alignment on the shape of >> the web. So I'm viewing all these PS APIs from a lense of the improvement >> they offer over the status quo of 3PCs. In my view there's no alternative >> world where Chrome lacks 3PCs by default but doesn't have new APIs like >> this. So the interop risk of these controversial APIs is balanced by the >> interop risk of Chrome retaining 3PCs indefinitely while other browsers do >> not (which we can see the harm of concretely with all the sites that don't >> work in Safari, eg. in enterprise and education environments). >> >> Josh >>> >>> >>> >>>> >>>> Thanks, >>>> Rick >>>> >>>> >>>> On Thu, Jun 22, 2023 at 10:26 AM 'Michael Kleber' via blink-dev < >>>> blink-dev@chromium.org> wrote: >>>> >>>>> A little more color here: >>>>> >>>>> When we first began work on (the respective predecessors of) Topics >>>>> and Protected Audience, our best guess was that Topics would be more >>>>> easily >>>>> adopted, based on its vastly simpler API surface, but that Protected >>>>> Audience would allow the advertising industry much more power in exchange >>>>> for the hard work of living within its privacy boundaries. And as Josh >>>>> said, the two APIs are also best suited to different levels of detail in >>>>> targeting. >>>>> >>>>> Over the course of the Origin Trial, I would say much of this >>>>> expectation has been borne out. Topics is becoming available to many ads >>>>> buyers, for example, as described by Google Ad Manager at >>>>> https://support.google.com/admanager/answer/12270543?hl=en, while >>>>> Protected Audience so far only includes a narrower slice of early >>>>> adopters. On the other hand, the lists of self-declared testers for the >>>>> two APIs, here >>>>> <https://github.com/patcg-individual-drafts/topics/blob/main/topics-tester-list.md> >>>>> and here >>>>> <https://github.com/WICG/turtledove/blob/main/fledge-tester-list.md> >>>>> respectively, are the same length — so perhaps the Protected Audience >>>>> barrier to entry is not as high as we feared. The OT feedback has >>>>> indicated that both APIs are of interest to the same parties, neither one >>>>> clearly dominating the other, at least for now. >>>>> >>>>> I think the real answer to the question will only be known over time, >>>>> as the ad tech industry tries out the two different APIs and see what best >>>>> suits each use case. We can certainly add some cross-references to the >>>>> two >>>>> explainers, but I don't think it will rise to the level of guidance to >>>>> developers on how to choose one vs. the other. >>>>> >>>>> --Michael >>>>> >>>>> >>>>> On Thu, Jun 22, 2023 at 10:15 AM Yoav Weiss <yoavwe...@chromium.org> >>>>> wrote: >>>>> >>>>>> >>>>>> >>>>>> On Thu, Jun 22, 2023 at 4:05 PM Josh Karlin <jkar...@chromium.org> >>>>>> wrote: >>>>>> >>>>>>> >>>>>>> >>>>>>> On Thu, Jun 22, 2023 at 7:49 AM Yoav Weiss <yoavwe...@chromium.org> >>>>>>> wrote: >>>>>>> >>>>>>>> Thanks for working on this important problem! >>>>>>>> >>>>>>>> This API is an interesting one to think through, as it's quite >>>>>>>> different from other APIs, even Privacy Sandbox ones. While most >>>>>>>> Privacy >>>>>>>> Sandbox APIs carve out specific bits of entropy from 3P cookies to >>>>>>>> enable >>>>>>>> web functionality to continue to work, only with more targeted data, >>>>>>>> Topics >>>>>>>> seems to enable a use-case (targeted advertising) by moving some of the >>>>>>>> targeting work from the server onto the user agent itself. >>>>>>>> >>>>>>>> In my view it makes sense to include "ecosystem health" into a >>>>>>>> broad & holistic view of the user's needs, and hence it makes sense >>>>>>>> for the >>>>>>>> user agent to take on such work in order to enable ecosystem >>>>>>>> monetization, *while >>>>>>>> ensuring the user's agency*. Therefore, I think this is a fine >>>>>>>> precedent to make, under the assumption the user indeed has agency and >>>>>>>> is >>>>>>>> making an informed decision about enabling this API and controlling >>>>>>>> their >>>>>>>> choice of Topics. At the same time, API owners are not UX experts, and >>>>>>>> the >>>>>>>> UX of whatever consent flow browsers end up shipping is a product >>>>>>>> decision, >>>>>>>> rather than a part of the Blink intent process. As a result, approving >>>>>>>> this >>>>>>>> API requires a certain amount of faith that different user-agents will >>>>>>>> do >>>>>>>> the right thing with it. But I guess that's already true for >>>>>>>> permission-bound features, where we trust the UA's UX team to provide >>>>>>>> appropriate mitigations for security and privacy risks. >>>>>>>> >>>>>>>> >>>>>>>> On Wed, Jun 21, 2023 at 8:57 PM Josh Karlin <jkar...@chromium.org> >>>>>>>> wrote: >>>>>>>> >>>>>>>>> Thanks for the questions Alex. Responses inline: >>>>>>>>> >>>>>>>>> >>>>>>>>> > I don't see a full "considered alternatives" section in the >>>>>>>>> Explainer. What other options were explored for this API and/or >>>>>>>>> design? >>>>>>>>> >>>>>>>>> >>>>>>>>> Yes. Before Topics we had another API, FLoC >>>>>>>>> <https://web.dev/floc/>. We learned early on in the OT process >>>>>>>>> that we did not want to move forward with it. Discussion of how FLoC >>>>>>>>> migrated into Topics can be seen in this section >>>>>>>>> <https://github.com/patcg-individual-drafts/topics#evolution-from-floc> >>>>>>>>> of the explainer. >>>>>>>>> >>>>>>>> >>>>>>>> I highly appreciate the evolution of the API and the many learnings >>>>>>>> incorporated from the FLoC experiments. >>>>>>>> >>>>>>>> >>>>>>>>> Another alternative would be to provide this sort of cross-site >>>>>>>>> data only within a worklet, as Protected Audiences and Shared Storage >>>>>>>>> do, >>>>>>>>> and require that the ad be rendered within a fenced frame. An API >>>>>>>>> like that >>>>>>>>> is not off the table in the future, but at this stage we felt it >>>>>>>>> prudent to >>>>>>>>> make a simple API that could offer value in this space that has high >>>>>>>>> levels >>>>>>>>> of privacy in addition to the more complex and capable APIs that >>>>>>>>> require >>>>>>>>> private rendering. >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> > Does this naturally need to live on `document`? Was `navigator` >>>>>>>>> (or some other root object) considered? >>>>>>>>> >>>>>>>>> >>>>>>>>> There is an issue >>>>>>>>> <https://github.com/patcg-individual-drafts/topics/issues/71> for >>>>>>>>> this, and I asked for advice >>>>>>>>> <https://github.com/w3ctag/design-reviews/issues/726#issuecomment-1137279345> >>>>>>>>> on this on the TAG review but did not receive a response. We chose >>>>>>>>> document >>>>>>>>> at the time because the topics returned are conditional on the >>>>>>>>> caller, and >>>>>>>>> changing didn’t seem particularly compelling (e.g., it wasn’t >>>>>>>>> abundantly >>>>>>>>> clear where it should rightfully go). >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> > Is the name `browsingTopics` meant to signify that other sorts >>>>>>>>> of topics may become available? If no, why not just `topics`? And if >>>>>>>>> so, >>>>>>>>> should that be a flag that's passed instead? >>>>>>>>> >>>>>>>>> >>>>>>>>> We do not anticipate other *Topics APIs. At this point I honestly >>>>>>>>> can’t remember how we landed on browsingTopics instead, but I know >>>>>>>>> there >>>>>>>>> was discussion. FWIW, it’s less likely to conflict with expando >>>>>>>>> properties >>>>>>>>> <https://github.com/search?q=document.topics+language%3AJavaScript&type=code>. >>>>>>>>> Do you feel strongly about this? >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> What feedback (if any) came from the OT? >>>>>>>>> >>>>>>>>> >>>>>>>>> Lots! Criteo >>>>>>>>> <https://medium.com/criteo-engineering/is-googles-topics-api-a-viable-replacement-for-interest-based-advertising-297076192bd> >>>>>>>>> pointed out ~5 different things in their link that I have above that >>>>>>>>> they’d >>>>>>>>> like to see improved for utility, many of which are part of our future >>>>>>>>> non-breaking plans. Others pointed out >>>>>>>>> <https://github.com/patcg-individual-drafts/topics/issues/73> >>>>>>>>> that the ratio of noised Topics was proportionate to reach, which >>>>>>>>> wasn’t >>>>>>>>> appropriate, so we fixed that. Yet others pointed out >>>>>>>>> <https://github.com/patcg-individual-drafts/topics/issues/75> >>>>>>>>> that it was easy to detect the random topic, so we fixed that. For >>>>>>>>> more, >>>>>>>>> please see the response to the “Web developers” section in “Risks” >>>>>>>>> above. >>>>>>>>> >>>>>>>>> Josh >>>>>>>>> >>>>>>>>> >>>>>>>>> On Wed, Jun 21, 2023 at 12:06 PM Alex Russell < >>>>>>>>> slightly...@chromium.org> wrote: >>>>>>>>> >>>>>>>>>> The spec looks well-written, and I'm dissapointed by the lack of >>>>>>>>>> technical feedback from the TAG. >>>>>>>>>> >>>>>>>>>> Because the TAG doesn't seem to be engaging at the level of >>>>>>>>>> platform consistency and quality in this review, I have some >>>>>>>>>> questions of >>>>>>>>>> the sort I try not to ask (in the hopes that the TAG has those bases >>>>>>>>>> covered): >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> - I don't see a full "considered alternatives" section in the >>>>>>>>>> Explainer. What other options were explored for this API and/or >>>>>>>>>> design? >>>>>>>>>> - Does this naturally need to live on `document`? Was >>>>>>>>>> `navigator` (or some other root object) considered? >>>>>>>>>> - Is the name `browsingTopics` meant to signify that other >>>>>>>>>> sorts of topics may become available? If no, why not just >>>>>>>>>> `topics`? And if >>>>>>>>>> so, should that be a flag that's passed instead? >>>>>>>>>> - What feedback (if any) came from the OT? >>>>>>>>>> >>>>>>>>>> Best, >>>>>>>>>> >>>>>>>>>> Alex >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On Tuesday, June 20, 2023 at 8:33:41 PM UTC-7 Domenic Denicola >>>>>>>>>> wrote: >>>>>>>>>> >>>>>>>>>>> I was the spec mentor for Yao's work on this feature, and am >>>>>>>>>>> chiming in to provide the requested spec maturity summary >>>>>>>>>>> <https://www.chromium.org/blink/launching-features/#:~:text=If%20your%20specification%20isn%27t%20a%20modification%20of%20an%20existing%20specification%2C%20include%20a%20one%2Dline%20spec%20maturity%20summary%20from%20someone%20outside%20your%20team%20(like%20your%20spec%20mentor)%20who%20has%20done%20a%20review.> >>>>>>>>>>> . >>>>>>>>>>> >>>>>>>>>>> I am very happy with the rigor of this specification. The >>>>>>>>>>> algorithms and APIs are given in full detail, and I am as confident >>>>>>>>>>> as I >>>>>>>>>>> can be that another implementer would be able to follow and create >>>>>>>>>>> an >>>>>>>>>>> interoperable implementation. I'm also happy with how some of the >>>>>>>>>>> design >>>>>>>>>>> discussions went, e.g. we recently made changes to the >>>>>>>>>>> Sec-Browsing-Topics >>>>>>>>>>> HTTP request header which improved its parse-ability and robustness. >>>>>>>>>>> >>>>>>>>>>> The slicing of the specification into implementation-defined vs. >>>>>>>>>>> interoperable behavior is tricky, and as Josh notes, can evolve >>>>>>>>>>> over time. >>>>>>>>>>> E.g. this PR >>>>>>>>>>> <https://github.com/patcg-individual-drafts/topics/pull/203> >>>>>>>>>>> proposes >>>>>>>>>>> making the "top 5 topics" algorithm implementation-defined. (But, >>>>>>>>>>> it keeps >>>>>>>>>>> Chrome's version in a non-normative note, which I think is really >>>>>>>>>>> helpful!) >>>>>>>>>>> And there are browser vendor identifiers and version numbers baked >>>>>>>>>>> into the >>>>>>>>>>> return values of the spec. It's hard to say whether this setup will >>>>>>>>>>> *guarantee* us the ability to evolve the API going forward, but >>>>>>>>>>> I think the team has done a good job setting up the infrastructure >>>>>>>>>>> to avoid >>>>>>>>>>> any known failure modes. >>>>>>>>>>> >>>>>>>>>>> I will note that the open issues list >>>>>>>>>>> <https://github.com/patcg-individual-drafts/topics/issues?q=is%3Aopen> >>>>>>>>>>> for >>>>>>>>>>> the specification is enormous, but my experience with Privacy >>>>>>>>>>> Sandbox >>>>>>>>>>> specifications is that their issues list turn into discussion >>>>>>>>>>> forums pretty >>>>>>>>>>> easily. I'm happy to trust the team's appraisal (under "Anticipate >>>>>>>>>>> spec >>>>>>>>>>> changes") that there aren't any open issues which will be >>>>>>>>>>> significant >>>>>>>>>>> disruptions to the specification. >>>>>>>>>>> >>>>>>>>>>> On Wed, Jun 21, 2023 at 2:40 AM Josh Karlin < >>>>>>>>>>> jkar...@chromium.org> wrote: >>>>>>>>>>> >>>>>>>>>>>> Contact emails >>>>>>>>>>>> >>>>>>>>>>>> jkar...@chromium.org, yao...@chromium.org, >>>>>>>>>>>> leeronisr...@google.com >>>>>>>>>>>> >>>>>>>>>>>> Explainer >>>>>>>>>>>> >>>>>>>>>>>> https://github.com/patcg-individual-drafts/topics >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>> That's a great explainer! One thing I found a bit lacking in it is >>>>>>>> an outline of the use cases that this API tackles. Another question >>>>>>>> that >>>>>>>> came to mind while reviewing other intents was around the differences >>>>>>>> in >>>>>>>> use-cases between this and Protected Audience. Are they destined for >>>>>>>> different kinds of advertisers? Different use cases? Something else? >>>>>>>> >>>>>>> >>>>>>> They are indeed different use cases. Interest based advertising >>>>>>> (Topics) is much broader (larger number of ads to choose from) than >>>>>>> retargeting (Protected Audience). Interest based advertising allows an >>>>>>> advertiser to say, "I'd like to advertise my product to people >>>>>>> interested >>>>>>> in these categories" whereas retargeting allows an advertiser to say, >>>>>>> "this >>>>>>> user was interested in some products on my page, I'd like to show them >>>>>>> some >>>>>>> more". You can imagine how it might be tractable to store metadata for >>>>>>> the >>>>>>> retargeting type ads on the users device, whereas it's less practical >>>>>>> for >>>>>>> interest based ads (easily millions of possible ads to select between). >>>>>>> That is why Topics is quite limited in the information it can share >>>>>>> since >>>>>>> it needs to be made available to the caller, whereas Protected Audiences >>>>>>> allows for more specific ad selection, but from a limited set of ads, >>>>>>> and >>>>>>> the ad must leverage private rendering. >>>>>>> >>>>>> >>>>>> That's extremely useful, thanks!! (Maybe this can be added to the >>>>>> explainer?) >>>>>> >>>>>> >>>>>>> >>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>>>>> Specification >>>>>>>>>>>> >>>>>>>>>>>> https://patcg-individual-drafts.github.io/topics/ >>>>>>>>>>>> >>>>>>>>>>>> Summary >>>>>>>>>>>> >>>>>>>>>>>> The intent of the Topics API is to provide callers (including >>>>>>>>>>>> third-party ad-tech or advertising providers on the page that run >>>>>>>>>>>> script) >>>>>>>>>>>> with coarse-grained advertising topics that the page visitor might >>>>>>>>>>>> currently be interested in for the purposes of advertising. These >>>>>>>>>>>> topics >>>>>>>>>>>> will supplement the contextual signals from the current page and >>>>>>>>>>>> can be >>>>>>>>>>>> combined to help find an appropriate advertisement for the visitor >>>>>>>>>>>> without >>>>>>>>>>>> the advertiser having to track the user’s detailed browsing >>>>>>>>>>>> history as is >>>>>>>>>>>> done with third-party cookies and fingerprinting today. >>>>>>>>>>>> >>>>>>>>>>>> Blink Component >>>>>>>>>>>> >>>>>>>>>>>> Blink>TopicsAPI >>>>>>>>>>>> <https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink%3ETopicsAPI> >>>>>>>>>>>> >>>>>>>>>>>> TAG Review >>>>>>>>>>>> >>>>>>>>>>>> Early design review for the Topics API · Issue #726 >>>>>>>>>>>> <https://github.com/w3ctag/design-reviews/issues/726#issuecomment-1379908459> >>>>>>>>>>>> >>>>>>>>>>>> TAG review status >>>>>>>>>>>> >>>>>>>>>>>> Pending >>>>>>>>>>>> >>>>>>>>>>>> Risks >>>>>>>>>>>> >>>>>>>>>>>> Interoperability and Compatibility >>>>>>>>>>>> >>>>>>>>>>>> Gecko: Negative ( >>>>>>>>>>>> https://github.com/mozilla/standards-positions/issues/622) >>>>>>>>>>>> >>>>>>>>>>>> WebKit: Negative ( >>>>>>>>>>>> https://github.com/WebKit/standards-positions/issues/111 >>>>>>>>>>>> <https://github.com/WebKit/standards-positions/issues/111#issuecomment-1359609317> >>>>>>>>>>>> ) >>>>>>>>>>>> >>>>>>>>>>>> To reduce risk in the event that we later decide to replace >>>>>>>>>>>> this API with one that has more browser support, the API can be >>>>>>>>>>>> effectively >>>>>>>>>>>> disabled without breaking pages by rejecting the promise or >>>>>>>>>>>> returning empty >>>>>>>>>>>> lists of topics. >>>>>>>>>>>> >>>>>>>>>>>> Web developers: We’ve had significant OT participation >>>>>>>>>>>> <https://github.com/patcg-individual-drafts/topics/blob/main/topics-tester-list.md> >>>>>>>>>>>> and feedback in our periodic W3C PATCG calls >>>>>>>>>>>> <https://github.com/patcg-individual-drafts/topics/tree/24c87897e32974c1328b74438feb97bf2ec43375/meetings>, >>>>>>>>>>>> discussions on various GitHub issues >>>>>>>>>>>> <https://github.com/patcg-individual-drafts/topics/issues>, >>>>>>>>>>>> Chrome-facilitated office hours, discussion with industry trade >>>>>>>>>>>> groups >>>>>>>>>>>> representing a variety of stakeholder groups, and more. Some >>>>>>>>>>>> initial >>>>>>>>>>>> feedback on utility has been published by Criteo >>>>>>>>>>>> <https://medium.com/criteo-engineering/is-googles-topics-api-a-viable-replacement-for-interest-based-advertising-297076192bd>, >>>>>>>>>>>> Google Ads >>>>>>>>>>>> <https://github.com/google/ads-privacy/blob/master/Testing%20IBA%20with%20Privacy%20Preserving%20Signals.pdf> >>>>>>>>>>>> and Retargetly >>>>>>>>>>>> <https://retargetly.com/blog-en/a-brief-dive-into-retargetlys-experience-testing-googles-privacy-sandbox>. >>>>>>>>>>>> We recently announced >>>>>>>>>>>> <https://developer.chrome.com/blog/topics-enhancements/> >>>>>>>>>>>> upcoming improvements to utility (not API surface changing) based >>>>>>>>>>>> on that >>>>>>>>>>>> initial feedback. >>>>>>>>>>>> >>>>>>>>>>>> Activation >>>>>>>>>>>> >>>>>>>>>>>> Starting in August 2023, enrollment >>>>>>>>>>>> <https://developer.chrome.com/en/blog/announce-enrollment-privacy-sandbox/> >>>>>>>>>>>> will be required to use the API. This is not a compat risk in the >>>>>>>>>>>> sense >>>>>>>>>>>> that the API will simply reject for callers if they are not >>>>>>>>>>>> enrolled. >>>>>>>>>>>> >>>>>>>>>>>> Other signals: >>>>>>>>>>>> >>>>>>>>>>>> WebView application risks >>>>>>>>>>>> >>>>>>>>>>>> None >>>>>>>>>>>> >>>>>>>>>>>> Debuggability >>>>>>>>>>>> >>>>>>>>>>>> There is a useful internals page: chrome://topics-internals, >>>>>>>>>>>> which shows the user’s current topics, allows for querying the >>>>>>>>>>>> API’s >>>>>>>>>>>> classifier, and provides developer experimentation tooling. >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> Will this feature be supported on all six Blink platforms >>>>>>>>>>>> (Windows, Mac, Linux, Chrome OS, Android, and Android WebView)? >>>>>>>>>>>> >>>>>>>>>>>> All but WebView >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> Is this feature fully tested by web-platform-tests >>>>>>>>>>>> <https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md> >>>>>>>>>>>> ? >>>>>>>>>>>> >>>>>>>>>>>> IDL surface is tested >>>>>>>>>>>> <https://wpt.fyi/results/browsing-topics?label=experimental&label=master&aligned>, >>>>>>>>>>>> the actual returned topics are not as they are browser dependent. >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> Note for the failing tests: Chrome will roll out this feature >>>>>>>>>>>> via Chrome Variations >>>>>>>>>>>> <https://developer.chrome.com/docs/web-platform/chrome-variations/>, >>>>>>>>>>>> rather than enabling the runtime features >>>>>>>>>>>> <https://chromium.googlesource.com/chromium/src/+/HEAD/third_party/blink/renderer/platform/RuntimeEnabledFeatures.md> >>>>>>>>>>>> directly. This means related WPTs need to be virtual, and it isn't >>>>>>>>>>>> supported in wpt.fyi. >>>>>>>>>>>> >>>>>>>>>>>> Requires code in //chrome? >>>>>>>>>>>> >>>>>>>>>>>> No >>>>>>>>>>>> >>>>>>>>>>>> Launch bug >>>>>>>>>>>> >>>>>>>>>>>> https://bugs.chromium.org/p/chromium/issues/detail?id=1286877 >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> Anticipated spec changes >>>>>>>>>>>> >>>>>>>>>>>> As mentioned above, we anticipate changes to the classification >>>>>>>>>>>> model, the taxonomy, the top topics selection algorithm, and >>>>>>>>>>>> possibly some >>>>>>>>>>>> parameters in the future as we try to improve the API’s utility >>>>>>>>>>>> over time. >>>>>>>>>>>> The API already provides version numbers with each returned topic >>>>>>>>>>>> for each >>>>>>>>>>>> of these features, as changes of this nature were anticipated from >>>>>>>>>>>> the >>>>>>>>>>>> beginning. These changes will not break sites. Developers may need >>>>>>>>>>>> to >>>>>>>>>>>> retrain their models and adapt to the new underlying algorithms, >>>>>>>>>>>> so we will >>>>>>>>>>>> announce the changes via channels such as blink-dev FYI as well as >>>>>>>>>>>> on the >>>>>>>>>>>> various support mailing lists. >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> Link to entry on the Chrome Platform Status >>>>>>>>>>>> >>>>>>>>>>>> https://chromestatus.com/feature/5680923054964736 >>>>>>>>>>>> >>>>>>>>>>>> Links to previous Intent discussions >>>>>>>>>>>> >>>>>>>>>>>> Intent to prototype: >>>>>>>>>>>> https://groups.google.com/a/chromium.org/g/blink-dev/c/59uTw_dxM3M/m/vF9lF9BVAgAJ >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> Intent to experiment: >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> https://groups.google.com/a/chromium.org/g/blink-dev/c/oTwd6VwCwqs/m/pk7JPbXLAQAJ >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> 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/CAANMuaNc94moaqPPWepai4THP1rOvXoxvixS%3Dostu2QGMLPtvA%40mail.gmail.com >>>>>>>>>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAANMuaNc94moaqPPWepai4THP1rOvXoxvixS%3Dostu2QGMLPtvA%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/fae46cf2-dbf8-41bf-8e64-c7cfb6844c01n%40chromium.org >>>>>>>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/fae46cf2-dbf8-41bf-8e64-c7cfb6844c01n%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/CAANMuaM1RZP4tKq4x7UvADOhYemyqtOhH5dgKUJK131sLWoS%3DA%40mail.gmail.com >>>>>>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAANMuaM1RZP4tKq4x7UvADOhYemyqtOhH5dgKUJK131sLWoS%3DA%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/CAL5BFfVbQDFhz_zmLHbm3DdN0nn8EtdmhfxFXbd4kYb%3DwOLmSQ%40mail.gmail.com >>>>>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAL5BFfVbQDFhz_zmLHbm3DdN0nn8EtdmhfxFXbd4kYb%3DwOLmSQ%40mail.gmail.com?utm_medium=email&utm_source=footer> >>>>>>>> . >>>>>>>> >>>>>>> >>>>> >>>>> -- >>>>> Forewarned is worth an octopus in the bush. >>>>> >>>>> -- >>>>> 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/CAA6DcCfwqzyUNRW_f3JJCA_WtdJu036fSjphOp%2Bm4x3fmra6xQ%40mail.gmail.com >>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAA6DcCfwqzyUNRW_f3JJCA_WtdJu036fSjphOp%2Bm4x3fmra6xQ%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/CAFUtAY86BwABa2WTbf0_houXFuLaCWjVfHxWAmZ6nV4LFwb4KA%40mail.gmail.com >>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAFUtAY86BwABa2WTbf0_houXFuLaCWjVfHxWAmZ6nV4LFwb4KA%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/CAFUtAY9i%2Bc5diiGm9MBatSgvAQq8_cJa6c6aLtZdNioDKAY5Ew%40mail.gmail.com >> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAFUtAY9i%2Bc5diiGm9MBatSgvAQq8_cJa6c6aLtZdNioDKAY5Ew%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/CAL5BFfXcjw1ONZm-5Vr4e%3Dn6gAwt_m33HQ761f%2BZ2OQQj_ZWpw%40mail.gmail.com.