Hi,

In it's current form Chromium's implementation of these functions bypasses 
trusted types protection.

The below WPT tests cover this behaviour:

https://wpt.fyi/results/trusted-types/block-string-assignment-to-ShadowRoot-setHTMLUnsafe.html?label=experimental&label=master&aligned
https://wpt.fyi/results/trusted-types/block-string-assignment-to-Element-setHTMLUnsafe.html?label=experimental&label=master&aligned
https://wpt.fyi/results/trusted-types/block-string-assignment-to-Document-parseHTMLUnsafe.html?label=experimental&label=master&aligned

This should be addressed before shipping, else it will be an unexpected 
security regression.

On Wednesday, February 14, 2024 at 10:23:01 PM UTC Vladimir Levin wrote:

> On Wed, Feb 14, 2024 at 1:53 PM Jeffrey Yasskin <jyas...@chromium.org> 
> wrote:
>
>> Non-API-owner opinions inline:
>>
>> On Wed, Feb 14, 2024 at 1:42 PM 'Vladimir Levin' via blink-dev <
>> blin...@chromium.org> wrote:
>>
>>> I just had some clarifying questions
>>>
>>> On Wed, Feb 14, 2024 at 1:13 PM Joey Arhar <jar...@chromium.org> wrote:
>>>
>>>> Some additional notes:
>>>> - This API is tested in the declarative ShadowDOM tests in interop2024, 
>>>> and it is counting against us to not have it enabled by default.
>>>> - The future sanitization options will be added as an optional second 
>>>> parameter to both methods, so there will not be any compat issues with 
>>>> shipping now.
>>>>
>>>> On Wed, Feb 14, 2024 at 1:11 PM Joey Arhar <jar...@chromium.org> wrote:
>>>>
>>>>> Contact emailsjar...@chromium.org
>>>>>
>>>>> ExplainerNone
>>>>>
>>>>
>>> Is this the relevant explainer (referenced from the PR below): 
>>> https://github.com/WICG/sanitizer-api/blob/main/explainer.md
>>>  
>>>
>>>>
>>>>>
>>>>> Specification
>>>>> https://html.spec.whatwg.org/C/#unsafe-html-parsing-methods
>>>>> https://github.com/whatwg/html/pull/9538
>>>>>
>>>>> Summary
>>>>>
>>>>> The setHTMLUnsafe and parseHTMLUnsafe methods allow Declarative 
>>>>> ShadowDOM to be used from javascript. In the future, they may also get 
>>>>> new 
>>>>> parameters for sanitization.
>>>>>
>>>>>
>>>>> Blink componentBlink>HTML 
>>>>> <https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink%3EHTML>
>>>>>
>>>>> TAG reviewNone
>>>>>
>>>>> TAG review statusNot applicable
>>>>>
>>>>
>>> There seems to be consensus within browser vendors that this is a good 
>>> idea, but I'm just wondering why you decided against filing TAG here?
>>>
>>
>> IMO, either Firefox or Safari folks should have filed a TAG review for 
>> this before they merged their patches. Now that they've merged, I think it 
>> falls into the "[already specified && already shipped]" exception 
>> category 
>> <https://www.chromium.org/blink/guidelines/api-owners/process-exceptions/>, 
>> and it's probably too fixed to ask the TAG to spend time on it.
>>
>
> (also non-api-owner, but responding anyway): if that is in fact shipping 
> then I agree that this should be the exception here, thanks. 
>
>  
>>
>>> Risks
>>>>>
>>>>>
>>>>> Interoperability and Compatibility
>>>>>
>>>>> None
>>>>>
>>>>>
>>>>> *Gecko*: No signal (
>>>>> https://bugzilla.mozilla.org/show_bug.cgi?id=1850675) 
>>>>> https://github.com/whatwg/html/pull/9538#issuecomment-1728947778
>>>>>
>>>>
>>> This seems positive, right?  
>>>
>>  
>>
>>> *WebKit*: Positive (https://bugs.webkit.org/show_bug.cgi?id=261143)
>>>>>
>>>>
>>> I'm not sure how to read this properly, but is this a positive signal or 
>>> "shipped/shipping" signal?
>>>
>>
>> Both of these look like "Shipped/Shipping", per 
>> https://bit.ly/blink-signals. That status is a little odd, because it 
>> doesn't look like they've actually made it to a stable release, but if I'm 
>> reading the bug trackers right they're both merged, so they're past "In 
>> Development".
>>
>
> Yeah, that's my thought here too. My understanding is that all of the 
> patches here are merged, but I just wanted to double check in case I'm 
> misunderstanding what those bugs are implying.
>  
>
>>  
>>
>>> *Web developers*: No signals
>>>>>
>>>>> *Other signals*:
>>>>>
>>>>> Ergonomics
>>>>>
>>>>> This API will likely be used in tandem with Declarative ShadowDOM. The 
>>>>> default usage of this API will not make it hard for chrome to maintain 
>>>>> good 
>>>>> performance.
>>>>>
>>>>>
>>>>> Activation
>>>>>
>>>>> It will not be challenging for developers to use this feature 
>>>>> immediately.
>>>>>
>>>>>
>>>>> Security
>>>>>
>>>>> There are no security risks. This API just does declarative ShadowDOM. 
>>>>> There is an "unsafe" in the name because there are future plans to add 
>>>>> sanitization options. https://github.com/WICG/sanitizer-api/issues/185 
>>>>> https://github.com/whatwg/html/issues/8627 
>>>>> https://github.com/whatwg/html/issues/8759
>>>>>
>>>>>
>>>>> 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?
>>>>>
>>>>> None
>>>>>
>>>>>
>>>>> Debuggability
>>>>>
>>>>> This API does not need any special DevTools features. You can call the 
>>>>> method from the console panel.
>>>>>
>>>>>
>>>>> Will this feature be supported on all six Blink platforms (Windows, 
>>>>> Mac, Linux, ChromeOS, Android, and Android WebView)?Yes
>>>>>
>>>>> Is this feature fully tested by web-platform-tests 
>>>>> <https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>
>>>>> ?Yes
>>>>>
>>>>> Flag name on chrome://flagsHTMLUnsafeMethods
>>>>>
>>>>> Finch feature nameHTMLUnsafeMethods
>>>>>
>>>>> Requires code in //chrome?False
>>>>>
>>>>> Estimated milestones
>>>>> DevTrial on desktop 120
>>>>> DevTrial on Android 120
>>>>>
>>>>> Anticipated spec changes
>>>>>
>>>>> Open questions about a feature may be a source of future web compat or 
>>>>> interop issues. Please list open issues (e.g. links to known github 
>>>>> issues 
>>>>> in the project for the feature specification) whose resolution may 
>>>>> introduce web compat/interop risk (e.g., changing to naming or structure 
>>>>> of 
>>>>> the API in a non-backward-compatible way).
>>>>> None
>>>>>
>>>>> Link to entry on the Chrome Platform Status
>>>>> https://chromestatus.com/feature/6560361081995264
>>>>>
>>>>> 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+...@chromium.org.
>>>> To view this discussion on the web visit 
>>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAK6btwJiEbhk_YGbVhuUg0emSJTfT%3D20_1bTDMFJxcH5i9tbMQ%40mail.gmail.com
>>>>  
>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAK6btwJiEbhk_YGbVhuUg0emSJTfT%3D20_1bTDMFJxcH5i9tbMQ%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+...@chromium.org.
>>> To view this discussion on the web visit 
>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CADsXd2MH_fZddPf6c_QwhEP5JU767nEy1ck338Cx_HYFsytO4w%40mail.gmail.com
>>>  
>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CADsXd2MH_fZddPf6c_QwhEP5JU767nEy1ck338Cx_HYFsytO4w%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/e12d5870-8ec7-4585-b6df-d47bcb6a9d14n%40chromium.org.

Reply via email to