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.
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%.
Does this intent deprecate or change behavior of existing APIs, such that it has potentially high risk for Android WebView-based applications?
This is a CSS property which can be debugged in the devtools style panel similar to other CSS properties.
M105
N/A
Contact emails
khusha...@chromium.org, vmp...@chromium.orgExplainer
https://github.com/WICG/shared-element-transitions/blob/main/overflow-on-replaced-elements.md
https://github.com/w3c/csswg-drafts/issues/7058Specification
https://drafts.csswg.org/css-overflow/#overflow-propertiesSummary
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>CSSTAG review
https://github.com/w3ctag/design-reviews/issues/750TAG review status
PendingRisks
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%.
--
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/CAMLuWUze8JV6twLfhPBwkXj_UBMGApU048OdY33hYQn_KDj2rA%40mail.gmail.com.
On Fri, Jul 8, 2022 at 7:22 PM Khushal Sagar <khusha...@chromium.org> wrote:Contact emails
khusha...@chromium.org, vmp...@chromium.orgExplainer
https://github.com/WICG/shared-element-transitions/blob/main/overflow-on-replaced-elements.md
https://github.com/w3c/csswg-drafts/issues/7058Specification
https://drafts.csswg.org/css-overflow/#overflow-propertiesSummary
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>CSSTAG review
https://github.com/w3ctag/design-reviews/issues/750TAG review status
PendingRisks
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)
On Mon, Jul 11, 2022 at 11:40 AM Yoav Weiss <yoav...@chromium.org> wrote:
On Fri, Jul 8, 2022 at 7:22 PM Khushal Sagar <khusha...@chromium.org> wrote:
Explainer
https://github.com/WICG/shared-element-transitions/blob/main/overflow-on-replaced-elements.md
https://github.com/w3c/csswg-drafts/issues/7058Specification
https://drafts.csswg.org/css-overflow/#overflow-propertiesSummary
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>CSSTAG review
https://github.com/w3ctag/design-reviews/issues/750TAG review status
PendingRisks
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 and mobile, and the rough patch 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 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 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.
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+unsubscribe@chromium.org.
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 <yoav...@chromium.org> wrote:
On Fri, Jul 8, 2022 at 7:22 PM Khushal Sagar <khusha...@chromium.org> wrote:
Explainer
https://github.com/WICG/shared-element-transitions/blob/main/overflow-on-replaced-elements.md
https://github.com/w3c/csswg-drafts/issues/7058Specification
https://drafts.csswg.org/css-overflow/#overflow-propertiesSummary
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>CSSTAG review
https://github.com/w3ctag/design-reviews/issues/750TAG review status
PendingRisks
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 and mobile, and the rough patch 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?
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+...@chromium.org.
This feels like a fairly challenging bug to diagnose out without
a DevTools
issue (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?
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.
Hey folks,
I'm summarizing the steps to mitigate the compat risk with this feature based on the feedback:
- Add a warning to the console when a developer style would permit replaced elements to overflow. The patch to add that is here and documentation to help developers debug, which is referenced in the console warning, is here. We can pre-emptively add this warning to M105 and ship the feature in M106 to have a one release window before the behaviour changes.
- Send an email to the webmaster of sites surfaced in the CT analysis which already have the styles that trigger the warning above.
In addition to the above, the feature can be turned off with a server-side config using finch if there is any severe breakage.Please let me know if the above suffices.Thanks.Khushal
On Wed, Jul 13, 2022 at 4:11 PM Khushal Sagar <khusha...@chromium.org> wrote:
On Wed, Jul 13, 2022 at 3:44 PM Mike Taylor <mike...@chromium.org> wrote:
On 7/13/22 3:04 PM, Khushal Sagar wrote:
On Wed, Jul 13, 2022 at 6:12 AM Yoav Weiss <yoav...@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 <yoav...@chromium.org> wrote:
On Fri, Jul 8, 2022 at 7:22 PM Khushal Sagar <khusha...@chromium.org> wrote:
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+unsubscribe@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.
--
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+unsubscribe@chromium.org.
Thanks Khushal! :)The breakage seems potentially significant (at worst, makes the site visually broken and unusable), and the percentage of breakage seems above the threshold we typically consider safe.At the same time this seems like a positive change, and our friends at Mozilla consider it "worth prototyping".Would it be possible to consider this as a deprecation of the old behavior, and run the console issue (+deprecation warnings and outreach to affected sites) for a few milestones, to try and drive the usage down before flipping this change to be on by default? Maybe also get some documentation out there and work with devrel folks to make sure folks are aware of this coming change?Does that sound reasonable?
Cheers,Yoav
On Thursday, July 14, 2022 at 5:03:54 PM UTC+2 Khushal Sagar wrote:
Hey folks,
I'm summarizing the steps to mitigate the compat risk with this feature based on the feedback:
- Add a warning to the console when a developer style would permit replaced elements to overflow. The patch to add that is here and documentation to help developers debug, which is referenced in the console warning, is here. We can pre-emptively add this warning to M105 and ship the feature in M106 to have a one release window before the behaviour changes.
- Send an email to the webmaster of sites surfaced in the CT analysis which already have the styles that trigger the warning above.
In addition to the above, the feature can be turned off with a server-side config using finch if there is any severe breakage.Please let me know if the above suffices.Thanks.Khushal
On Wed, Jul 13, 2022 at 4:11 PM Khushal Sagar <khusha...@chromium.org> wrote:
On Wed, Jul 13, 2022 at 3:44 PM Mike Taylor <mike...@chromium.org> wrote:
On 7/13/22 3:04 PM, Khushal Sagar wrote:
On Wed, Jul 13, 2022 at 6:12 AM Yoav Weiss <yoav...@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 <yoav...@chromium.org> wrote:
On Fri, Jul 8, 2022 at 7:22 PM Khushal Sagar <khusha...@chromium.org> wrote:
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/CAMLuWUze8JV6twLfhPBwkXj_UBMGApU048OdY33hYQn_KDj2rA%40mail.gmail.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.
On Wed, Jul 20, 2022 at 5:17 AM Yoav Weiss <yoav...@chromium.org> wrote:Thanks Khushal! :)The breakage seems potentially significant (at worst, makes the site visually broken and unusable), and the percentage of breakage seems above the threshold we typically consider safe.At the same time this seems like a positive change, and our friends at Mozilla consider it "worth prototyping".Would it be possible to consider this as a deprecation of the old behavior, and run the console issue (+deprecation warnings and outreach to affected sites) for a few milestones, to try and drive the usage down before flipping this change to be on by default? Maybe also get some documentation out there and work with devrel folks to make sure folks are aware of this coming change?Does that sound reasonable?Thanks for the suggestion Yoav. This sounds reasonable. I've reached out to the devrel folks to do more outreach about this change. I'll update this thread with the plan for it. The console issue and deprecation warnings have been added in M105.I looked into adding a use counter for sites which have real breakage, since the current metric tracks whether the computed style *could* permit allow but not whether there is actual overflow at paint time. And unfortunately computing potential overflow is not easy to add. The CT analysis I ran earlier did this by turning the feature on and tracking actual overflow generated by the element. So a couple of questions for moving forward:
- Would it be okay to turn the feature on in beta and 1% stable (in M105) to collect metrics for the sites with real breakage and the extent of this breakage (how many pixels of overflow do we see). This should be lower than the counter of 0.017%.
- What's the number (in terms of page loads affected) we should be targeting before this would be safe?
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAMLuWUy5zyHePkt06pjbtAE_vu1VjbybK5VXURhuSETyR%2Bu54g%40mail.gmail.com.
On Mon, Jul 25, 2022 at 7:44 PM Khushal Sagar <khusha...@chromium.org> wrote:On Wed, Jul 20, 2022 at 5:17 AM Yoav Weiss <yoav...@chromium.org> wrote:Thanks Khushal! :)The breakage seems potentially significant (at worst, makes the site visually broken and unusable), and the percentage of breakage seems above the threshold we typically consider safe.At the same time this seems like a positive change, and our friends at Mozilla consider it "worth prototyping".Would it be possible to consider this as a deprecation of the old behavior, and run the console issue (+deprecation warnings and outreach to affected sites) for a few milestones, to try and drive the usage down before flipping this change to be on by default? Maybe also get some documentation out there and work with devrel folks to make sure folks are aware of this coming change?Does that sound reasonable?Thanks for the suggestion Yoav. This sounds reasonable. I've reached out to the devrel folks to do more outreach about this change. I'll update this thread with the plan for it. The console issue and deprecation warnings have been added in M105.I looked into adding a use counter for sites which have real breakage, since the current metric tracks whether the computed style *could* permit allow but not whether there is actual overflow at paint time. And unfortunately computing potential overflow is not easy to add. The CT analysis I ran earlier did this by turning the feature on and tracking actual overflow generated by the element. So a couple of questions for moving forward:
- Would it be okay to turn the feature on in beta and 1% stable (in M105) to collect metrics for the sites with real breakage and the extent of this breakage (how many pixels of overflow do we see). This should be lower than the counter of 0.017%.That sounds like a great way to gather data! (assuming the relevant Chrome processes are followed)Would be good to gather a histogram of overflowed pixels, to get a sense of "small breakage" vs. "large breakage".- What's the number (in terms of page loads affected) we should be targeting before this would be safe?From my perspective, I'd be comfortable shipping this if we're seeing less than 0.003% of page loads in the "large breakage" bucket (say more than ~5000 overflowing pixels, assuming that number makes sense).+Andre Bandarra - for devrel opinions on this.
Thanks for meticulously gathering that data!!Just to give a rough idea - 5K pixels would be 50x100 pixels, which is noticeable breakage but not necessarily an insurmountable one.The numbers are a bit higher than I'd like, but at the same time, this enables new capabilities and we're not walking this path alone.Given the above, LGTM1 for a careful and monitored rollout, accompanied with DevRel folks supporting y'all in communicating this change to developers.What are the timelines you have in mind? Is there some way to use Deprecation Reporting to help us here?
CC @Cheney Tsai, @Una Kravets, @Kadir TopalFrom a DevRel perspective, the three questions in my mind are:
- Are affected developers aware of the change?
- I understand they were notified via a console warning / deprecation warning. It'd be great to get a sense of how effective the communication was (ie: has usage significantly decreased since the warnings?).
- Have we given them enough time for developers to react to the change?
- This is less about how complex a change is and more about ensuring developers can fit the change into their planning cycle (eg: quarterly OKRs) and avoiding generating unplanned/urgent work, if possible. It does seem to me the timelines described are short.
- Are developers somehow blocked in implementing the change?
- The change seems quite straightforward, but sometimes developers are blocked in surprising ways. Is there a channel developers can provide feedback on?
Andre
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAMLuWUzdatCQP2_iBTPDo2gScAM1PH6Zmtj87UJD4g1UfmbsxA%40mail.gmail.com.