On Wed, Jul 13, 2022 at 3:44 PM Mike Taylor <miketa...@chromium.org> wrote:

> On 7/13/22 3:04 PM, Khushal Sagar wrote:
>
>
>
> On Wed, Jul 13, 2022 at 6:12 AM Yoav Weiss <yoavwe...@chromium.org> wrote:
>
>>
>>
>> On Wednesday, July 13, 2022 at 3:54:28 AM UTC+2 Khushal Sagar wrote:
>>
>>> On Mon, Jul 11, 2022 at 11:40 AM Yoav Weiss <yoavwe...@chromium.org>
>>> wrote:
>>>
>>>>
>>>>
>>>> On Fri, Jul 8, 2022 at 7:22 PM Khushal Sagar <khushalsa...@chromium.org>
>>>> wrote:
>>>>
>>>>> Contact emails khushalsa...@chromium.org, vmp...@chromium.org
>>>>>
>>>>> Explainer
>>>>> https://github.com/WICG/shared-element-transitions/blob/main/overflow-on-replaced-elements.md
>>>>> https://github.com/w3c/csswg-drafts/issues/7058
>>>>>
>>>>> Specification
>>>>> https://drafts.csswg.org/css-overflow/#overflow-properties
>>>>>
>>>>> Summary
>>>>>
>>>>> This change allows developers to use the existing `overflow` property
>>>>> with replaced elements that paint outside the content-box. Paired with
>>>>> `object-view-box` this can be used to create an image with a custom glow 
>>>>> or
>>>>> shadow applied, with proper ink-overflow behavior like a CSS shadow would
>>>>> have.
>>>>>
>>>>> Blink component Blink>CSS
>>>>> <https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink%3ECSS>
>>>>>
>>>>> TAG review https://github.com/w3ctag/design-reviews/issues/750
>>>>>
>>>>> TAG review status Pending
>>>>>
>>>>> Risks
>>>>> Interoperability and Compatibility
>>>>>
>>>>> This feature changes the behaviour of the existing overflow property
>>>>> on replaced elements (img, video, canvas). Currently `overflow:visible` in
>>>>> a developer stylesheet on such elements is ignored during paint and the
>>>>> content is clipped to the element's content-box. With this feature,
>>>>> `overflow:visible` will result in content outside the element's 
>>>>> content-box
>>>>> to paint as ink overflow. We've collected use counter data to measure the
>>>>> number of sites which could be affected by this. The use counter data
>>>>> collected over 1 week of a stable release (M102) is as follows. We
>>>>> collected 2 different counters explained below. * The first measures any
>>>>> instance where overflow is explicitly set from developer styles to 
>>>>> visible.
>>>>> The percentage of page loads with this is 2.16%. * The second measures the
>>>>> above instances but only includes the cases with object-fit set to cover 
>>>>> or
>>>>> none or object-position set to any value other than the default (50% 50%).
>>>>> The rationale behind this counter is to exclude cases which can not cause
>>>>> overflow (such as object-fit:contain), even if overflow is set to visible.
>>>>> The percentage of page loads with this is 0.017%.
>>>>>
>>>>
>>>> That's not nothing. Any idea what breakage may look like?
>>>> Can we maybe collect histograms on *how much* overflow would occur in
>>>> those cases? (maybe with ClusterTelemetry initially, to get a rough idea in
>>>> the lab)
>>>>
>>>
>>> I ran an analysis on CT using top 100k sites for desktop and top 10k
>>> sites on mobile. The raw numbers are here: desktop
>>> <https://docs.google.com/spreadsheets/d/1kKWq8kqZOfCXqiHaiamYNDdTs5x1_YJfDTnAgXOIwaE/edit#gid=0>
>>> and mobile
>>> <https://docs.google.com/spreadsheets/d/1SrNyrEe4yzCOIxqNOlNgCk8O58NqqoBlBTd4Wn_gKCc/edit#gid=0>,
>>> and the rough patch
>>> <https://chromium-review.googlesource.com/c/chromium/src/+/3749485> to
>>> collect this data. The highlights from the analysis are below:
>>>
>>>    - The number of sites which override the default CSS to allow
>>>    overflow *and* also had overflow during painting was 13 out of 10k on
>>>    mobile and 39 out of 63k on desktop (only 63k sites yielded results out 
>>> of
>>>    100k).
>>>
>>>    - I measured the percentage of area painted outside the content box
>>>    out of the total painted area. The highest was 88% on desktop and 70% on
>>>    mobile.
>>>
>>>
>> I'm not sure what that means in practice. Can you elaborate? Have you
>> looked at extreme cases to see the impact there?
>>
>
> Sorry, I should've added more details. :) I was looking for breakages with
> 2 numbers: sites with the largest number of overflowing pixels (such that
> other content could be occluded); sites with the largest percentage of
> image content outside the content box. But I realize the former is probably
> better to identify breakages.
>
> Looking at the top 10 sites, the worst affected is liveops.com. This has
> cases which use object-fit:cover so the image scales to a size bigger than
> its content rect and developer CSS overrides overflow to visible.
> Unfortunately, interacting more with this site, I did see images which are
> drawing above other content (screenshot attached) as you scroll down. This
> pattern showed up on the rest of the sites with high overflow numbers too
> (another example with screenshot attached).
>
> This kind of breakage is expected with this change. I'm not sure where to
> put the cutoff to identify sites with significant breakage, but there are
> at least 30 sites (out of 63k) that have images with more than 100px of
> overflow. The fix for the developer is to trace down the source of the
> overflow override and remove it.
>
> I'm not sure what's the recommended way to progress with a behaviour
> change like this given these numbers, the instances of affected sites seems
> low. Since the fix is simple, but hard to diagnose, one option could be to
> add a warning to the console: "overflow:visible now causes images to draw
> outside their bounds. Please make sure this style is intentional" for a few
> releases (credits to @Vladimir Levin <vmp...@chromium.org> for the idea).
> Would that suffice?
>
> This feels like a fairly challenging bug to diagnose out without a DevTools
> issue <https://developer.chrome.com/docs/devtools/issues/> (or similar
> console message that links to some useful docs, as you proposed). Would we
> have the ability to conditionally create these for some overflow threshold
> value?
>
Sure, we can do this conditionally based on the area of overflow. I'd be
inclined to always do it if the UA style is overridden to allow overflow
for at least a few releases. Since it's likely that existing sites are not
overriding this style intentionally (because currently it's a no-op). Just
to catch cases which don't show up in local testing because scaling of the
image (with properties like object-fit) can depend on the form factor of
the device.

>
>
>>
>>> I manually went through ~10 sites on both desktop and mobile. For the
>>> ones which repro-ed, the breakage was losing rounded corners because
>>> border-radius doesn't clip the content if 'overflow' is 'visible'. In fact
>>> a few sites had the same code, likely coming from customerly
>>> <https://www.customerly.io/> based on class names and the UX. There was
>>> one case where an image (used in the background) had object-fit:cover and
>>> overflowed outside the content box now. I've attached screenshots for both
>>> of these.
>>>
>>> Overall I didn't see any case where the overflow occluded any other
>>> content on the page.
>>>
>>
>> That's reassuring! :)
>>
>>
>>>
>>>
>>>>
>>>>
>>>>>
>>>>> *Gecko*: No signal (
>>>>> https://github.com/mozilla/standards-positions/issues/659)
>>>>>
>>>>> *WebKit*: No signal (
>>>>> https://lists.webkit.org/pipermail/webkit-dev/2022-June/032317.html)
>>>>>
>>>>> *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?
>>>>>
>>>>> Debuggability
>>>>>
>>>>> This is a CSS property which can be debugged in the devtools style
>>>>> panel similar to other CSS properties.
>>>>>
>>>>> Will this feature be supported on all six Blink platforms (Windows,
>>>>> Mac, Linux, Chrome OS, 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 CSSOverflowForReplacedElements
>>>>>
>>>>> *Note: Because of the compat risk with this feature, this flag can be
>>>>> controlled via Finch. This will allow us to rollback with a server-side
>>>>> config change if needed.*
>>>>>
>>>>> Requires code in //chrome? False
>>>>>
>>>>> Tracking bug
>>>>> https://bugs.chromium.org/p/chromium/issues/detail?id=1321217
>>>>>
>>>>> Estimated milestones
>>>>>
>>>>> M105
>>>>>
>>>>> Anticipated spec changes
>>>>>
>>>>> N/A
>>>>>
>>>>> Link to entry on the Chrome Platform Status
>>>>> https://chromestatus.com/feature/5137515594383360
>>>>>
>>>>> Links to previous Intent discussions Intent to prototype:
>>>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAMLuWUykJWEAqVzcUy15fpBNdA68508Mny_1z--FCBKXRTZOFQ%40mail.gmail.com
>>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/camluwuykjweaqvzcuy15fpbnda68508mny_1z--fcbkxrtz...@mail.gmail.com>
>>>>>
>>>>>
>>>>> 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/CAMLuWUze8JV6twLfhPBwkXj_UBMGApU048OdY33hYQn_KDj2rA%40mail.gmail.com
>>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAMLuWUze8JV6twLfhPBwkXj_UBMGApU048OdY33hYQn_KDj2rA%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/CAMLuWUz9cutp%2BinEc3%2B7sdv%2B2TPoBbEeFCZjZFExBHSOL1p47A%40mail.gmail.com
> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAMLuWUz9cutp%2BinEc3%2B7sdv%2B2TPoBbEeFCZjZFExBHSOL1p47A%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/CAMLuWUyXdQajO_TRLurzMmvTP7WeFjkFnYeByN-d%2B3N-6_sFQQ%40mail.gmail.com.

Reply via email to