Hey Jeremy,

We got more context from Rick at this morning's API OWNERS, and now that I 
understand the situation better, LGTM1.

On the TAG review, I agree that we can hold updating them until a date when 
the feature is described more naturally in the Explainer.

Until then, it would be helpful to have the Explainer address 
considerations around page-level developer opt-in. My concern is that the *next 
*browser that implements something along these lines might not implement 
image replacement in such an explicit developer opt-in way, leading to user 
astonishment, potentially in high-stakes or regulated settings. Under those 
conditions, it seems appropriate to me to have developer controls for 
opting into (or out of) replacement at the page level, and that's a 
consideration the Explainer should weigh.

Thanks for your patience,

Alex

On Monday, August 17, 2026 at 11:47:58 AM UTC-7 Alex Russell wrote:

> Thanks for all the detailed background, Jeremy.
>
> The detailed back-and-forth here on the finer points of the design strikes 
> me as the sort of thing a TAG design review should help to sort out. Can 
> you please file one for this feature? I'm going to gate any positive vote 
> here on a resolution there.
>
> Best,
>
> Alex
>
> On Thursday, August 13, 2026 at 11:14:33 AM UTC-7 Jeremy Roman wrote:
>
>> On Wed, Aug 12, 2026 at 8:43 PM Sangwhan Moon <[email protected]> wrote:
>>
>>> Adding a couple of drive-by questions below, 
>>>
>>> On Wed, Aug 12, 2026 at 5:14 PM Jeremy Roman <[email protected]> 
>>> wrote:
>>>
>>>> Thanks for the feedback and advice; responses inline.
>>>>
>>>> On Wed, Aug 12, 2026 at 11:55 AM Alex Russell <[email protected]> 
>>>> wrote:
>>>>
>>>>> Hey Jeremy,
>>>>>
>>>>> Thanks for filing this. Would be good to see this sent to the TAG, as 
>>>>> I'm not sure it qualifies as trivial.
>>>>>
>>>>
>>>> This is thin enough that I'm not quite sure what feedback I would be 
>>>> asking for TAG's time on.
>>>>
>>>> With respect to *form*, certainly we could imagine different naming, 
>>>> or some enum or dictionary instead of a boolean, or something like that. 
>>>> It's quite a small API surface, though, and I don't think anything is very 
>>>> out of the ordinary.
>>>>
>>>> With respect to *function*, most of the interesting functionality 
>>>> (what sorts of transformations the user might do, what capabilities the 
>>>> user has to control it, how associated user data is stored and processed, 
>>>> etc) resides in vendor-specific features that are for the moment outside 
>>>> the scope of standardization. Maybe in the future some of these 
>>>> capabilities will be useful to expose to the platform and at that time 
>>>> much 
>>>> deeper standardization discussion would be beneficial. The only 
>>>> functionality added to the platform here is that some web pages can tell 
>>>> that some sort of browser feature was used in a way that might change the 
>>>> content the user sees.
>>>>
>>>> To me it seems that the size of the platform exposure in both respects 
>>>> is rather modest, but if others would like this reviewed I'm not 
>>>> necessarily opposed.
>>>>
>>>> On the overall feature, Edge has some experience with features in this 
>>>>> space, as we had some image and video "superresolution" features that we 
>>>>> have since un-launched. A couple of thing we learned along the way:
>>>>>
>>>>>
>>>>>    - It's *extremely* important for developers to have control. 
>>>>>    Consider radiology charts or other regulated enviornments. We cannot 
>>>>> be 
>>>>>    messing with images in those settings, and so there have to be 
>>>>> controls 
>>>>>    (and I'd argue, affirmative developer opt-in) to gate this sort of 
>>>>> feature. 
>>>>>    The I2E implicitly fits this, but it isn't clear from the explainer 
>>>>> that it 
>>>>>    will remain opt-in.
>>>>>
>>>>> For the first Chrome feature I'm looking at surfacing this way, we'll 
>>>> probably avoid this particular concern, because it applies only to certain 
>>>> kinds of images and we only perform the transformation when the user 
>>>> explicitly uses the feature from browser UI.
>>>>
>>>
>>> 1. Extending Alex's developer control question: does this mean the 
>>> proposal considers preventDefault() against the uareplacestart event a 
>>> no-op?
>>>
>>
>> Yes. Maybe in the future certain browser features might be preventable, 
>> but broadly speaking browser features acting on behalf of the user tend to 
>> "win" in the hierarchy of constituencies.
>>  
>>
>>> 2. Skimming the explainer, my understanding is that when blitting the 
>>> "transformed" image to an HTMLCanvasElement or serializing it, the 
>>> expectation is that it will be a reference to the original image, correct?
>>>
>>
>> I believe that would be the result in Chrome's implementation (which uses 
>> UA shadow DOM to embed an iframe to a UA-controlled origin) and I think 
>> vendors ought to do the same or something similar in most cases, but all 
>> I'm aiming to expose/standardize at this point is how sites can observe the 
>> fact of replacement. But since we're talking about vendor-specific 
>> features, I don't know what constraints might apply to future features 
>> implemented by Chrome or other vendors.
>>  
>>
>>> 3. If the expectation for (2) is to make the replaced image transparent, 
>>> how do you see this working with getDisplayMedia()? (I ask because this 
>>> might not be trivial)
>>>
>>
>> As far as I know, getDisplayMedia can be used to see pixels on the screen 
>> that are cross-origin, cross-site, and even outside the browser. For that 
>> reason, I think it's reasonable that it can see the transformed image.
>>  
>>
>>> 4. Extension of developer control: Was a site-initiated 
>>> HTMLImageElement.requestReplaceImage() path (e.g. gated by a user gesture) 
>>> considered?
>>>
>>
>> Right now the particular feature I'm working on is viewed as a browser 
>> feature rather than a web platform feature. Browser features, including 
>> this one, are typically activated using vendor-specific UI.
>>
>> If in the future we want to allow sites to request that these features be 
>> offered or even directly activate them, that would require a much larger 
>> discussion about the security/privacy properties of that, interoperability 
>> of different implementations and offerings, etc.
>>
>> This API is very generic; it simply lets pages know when some such 
>>>> feature has touched their images. It could conceivably be used for 
>>>> features 
>>>> which should have additional controls of the form you mention, but I'm not 
>>>> sure what can be done at this level to address that beyond advice that 
>>>> browser vendors consider this potential issue with each such feature they 
>>>> implement. I'm fine to do that if it's helpful, though in many cases it'll 
>>>> refer to browser features which standards don't generally describe.
>>>>
>>>>>
>>>>>    - Developers will need visibility in logging for impacts on 
>>>>>    latency and potential control over replacement UI. E.g. if this snaps 
>>>>> in 
>>>>>    later than the original image, do we have good CSS controls for making 
>>>>> sure 
>>>>>    the transition is seamless? (I know the answer to this question, which 
>>>>> is 
>>>>>    "no", but it should be addressed in any Explainer).
>>>>>
>>>>> One application of this API is identifying when image replacement 
>>>> features are (or have been) in use, so that developers can consider that 
>>>> when looking at performance reports. Given the transformations and how 
>>>> they 
>>>> are presented is within the purview of the vendor-specific feature, I'm 
>>>> not 
>>>> sure how much there is to say here. Features that happen on page load 
>>>> might 
>>>> want controls analogous to CSS font-display (I assume this is what you're 
>>>> referring to), but this doesn't really apply to features that transform 
>>>> images much later based on user action.
>>>>
>>>> I can explicitly state that this is out of scope (for now) if you think 
>>>> it's helpful.
>>>>
>>>>>
>>>>>    - Given that this is a feature that uses LLMs behind the scenes, 
>>>>>    has thought gone into interop?
>>>>>
>>>>> At this time I'm not pursuing interoperability on the particular 
>>>> generated outputs (or indeed on the types of transformation at all), 
>>>> though 
>>>> that could happen in the future.
>>>>
>>>> Nonetheless it does seem useful to work toward interoperability in the 
>>>> following sense: if website www.photographyblog.com wants to remove a 
>>>> label that says "this photo was taken by a human on 01/02/2016" when the 
>>>> image is substantively transformed in Chrome, then when another browser 
>>>> adds a similar (or even cooler) transformation feature it should be able 
>>>> to 
>>>> benefit from this behavior in that site (and any other site).
>>>>  
>>>>
>>>>> Best,
>>>>>
>>>>> Alex
>>>>>
>>>>> On Tuesday, August 11, 2026 at 2:20:39 PM UTC-7 Chromestatus wrote:
>>>>>
>>>>>> *Contact emails*
>>>>>> [email protected]
>>>>>>
>>>>>> *Explainer*
>>>>>> https://github.com/explainers-by-googlers/ua-image-replacement
>>>>>>
>>>>>> *Specification*
>>>>>> https://github.com/explainers-by-googlers/ua-image-replacement 
>>>>>>
>>>>>> *Summary*
>>>>>> Modern browsers can provide capabilities to augment the browsing 
>>>>>> experience by modifying media in the page on behalf of the user. The 
>>>>>> advent 
>>>>>> of generative AI makes it more likely that browsers will add such 
>>>>>> features. 
>>>>>> Sometimes, the replacement content added at the user request might not 
>>>>>> match other content and functionality in the page, which could confuse 
>>>>>> the 
>>>>>> user. Even if this cannot be completely avoided, if authors can observe 
>>>>>> when replacement happens they can adjust the document to mitigate 
>>>>>> confusion 
>>>>>> (e.g., by hiding or adjusting other content). For example, a user 
>>>>>> browsing 
>>>>>> an e-commerce site with a generic product image (e.g., a model wearing a 
>>>>>> jacket) might wish to imagine themselves wearing the item. The user 
>>>>>> agent 
>>>>>> uses generative AI technology to produce that image and present it in 
>>>>>> place 
>>>>>> of the model image. The page improves the user experience by removing 
>>>>>> text 
>>>>>> referring to the model's dimensions and the garment size depicted, as it 
>>>>>> may not be correct in the replacement image. 
>>>>>>
>>>>>> *Blink component*
>>>>>> Blink>Image 
>>>>>> <https://issues.chromium.org/issues?q=customfield1222907:%22Blink%3EImage%22>
>>>>>>
>>>>>> *Web Feature ID*
>>>>>> Missing feature 
>>>>>>
>>>>>> *TAG review*
>>>>>> none as yet (API shape is trivial, API owner discretion needed on 
>>>>>> whether this requires review) 
>>>>>>
>>>>>> *TAG review status*
>>>>>> Pending
>>>>>>
>>>>>> *Goals for experimentation*
>>>>>> We're looking on hearing from sites which are affected by Chrome 
>>>>>> features allow users to generate and emplace edited images in web pages, 
>>>>>> about whether this API allows them the information required to optimize 
>>>>>> the 
>>>>>> user experience as these features are used. If additional or different 
>>>>>> API 
>>>>>> is required to adapt appropriately, we'd like to know that sooner rather 
>>>>>> than later, especially if the changes required are not purely additive.
>>>>>>
>>>>>> *Origin Trial documentation link*
>>>>>> https://github.com/explainers-by-googlers/ua-image-replacement 
>>>>>>
>>>>>> *Risks*
>>>>>>
>>>>>>
>>>>>> *Interoperability and Compatibility*
>>>>>> *No information provided* 
>>>>>>
>>>>>> *Gecko*: No signal
>>>>>>
>>>>>> *WebKit*: No signal
>>>>>>
>>>>>> *Web developers*: No signals
>>>>>>
>>>>>> *Other signals*:
>>>>>>
>>>>>> *WebView application risks*
>>>>>>
>>>>>> Does this intent deprecate or change behavior of existing APIs, such 
>>>>>> that it has potentially high risk for Android WebView-based 
>>>>>> applications? 
>>>>>> *No information provided* 
>>>>>>
>>>>>>
>>>>>> *Ongoing technical constraints*
>>>>>> None
>>>>>>
>>>>>> *Debuggability*
>>>>>> *No information provided* 
>>>>>>
>>>>>> *Will this feature be supported on all six Blink platforms (Windows, 
>>>>>> Mac, Linux, ChromeOS, Android, and Android WebView)?*
>>>>>> No
>>>>>>
>>>>>> *Is this feature fully tested by web-platform-tests 
>>>>>> <https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>?*
>>>>>> No 
>>>>>>
>>>>>>
>>>>>> *Flag name on about://flags*
>>>>>> *No information provided* 
>>>>>>
>>>>>> *Finch feature name*
>>>>>> *No information provided* 
>>>>>>
>>>>>> *Non-finch justification*
>>>>>> *No information provided*
>>>>>>
>>>>>> *Requires code in //chrome?*
>>>>>> True
>>>>>>
>>>>>> *Tracking bug*
>>>>>> https://issues.chromium.org/issues/544822216
>>>>>>
>>>>>> *Launch bug*
>>>>>> https://launch.corp.google.com/4452457
>>>>>>
>>>>>> *Estimated milestones*
>>>>>> Origin trial desktop first 152 
>>>>>> Origin trial desktop last 157 
>>>>>>
>>>>>> *Link to entry on the Chrome Platform Status*
>>>>>>
>>>>>> https://chromestatus.com/feature/5076374013476864?gate=5435940823760896
>>>>>>
>>>>>> 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 [email protected].
>>>> To view this discussion visit 
>>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CACuR13eUhYfhQg1r6-13O77Ui2OiL2cszWZL_vDum-42GzR8rA%40mail.gmail.com
>>>>  
>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CACuR13eUhYfhQg1r6-13O77Ui2OiL2cszWZL_vDum-42GzR8rA%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 [email protected].
To view this discussion visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/f6e81fe8-cb3f-41b4-9021-f757652fd54an%40chromium.org.

Reply via email to