FYI, we are shipping this to stable on Android: https://chromium-review.googlesource.com/c/chromium/src/+/6422855
On Thursday, September 12, 2024 at 2:18:28 PM UTC-7 Wenyu Fu wrote: > Rick, Yoav, Mike (and many API owners behind the scene), thank you for the > review and the approval! > > On Thu, Sep 12, 2024 at 7:02 AM Mike Taylor <miketa...@chromium.org> > wrote: > >> LGTM3 >> On 9/12/24 9:57 AM, Yoav Weiss (@Shopify) wrote: >> >> LGTM2 >> >> The fact that iOS already shipped this is a compelling argument. >> >> On Thu, Sep 12, 2024 at 3:55 PM Rick Byers <rby...@chromium.org> wrote: >> >>> On Thu, Sep 12, 2024 at 9:09 AM Yoav Weiss (@Shopify) < >>> yoavwe...@chromium.org> wrote: >>> >>>> >>>> On Wed, Sep 11, 2024 at 5:05 PM Wenyu Fu <weny...@chromium.org> wrote: >>>> >>>>> Thank you for the feedback Robert! >>>>> >>>>> > updating the safe area while scrolling requires a main thread update >>>>> for the developer drawn controls (e.g. footer) to respond >>>>> >>>>> I've attached a recording of the same feature's behavior on iOS >>>>> <https://drive.google.com/file/d/19kaNBAr8RFQ0X9odMjx4g-t28lnCHSS_/view?usp=drive_link>. >>>>> >>>>> One of the initiatives for this change is to align Chrome on Android >>>>> parity with iOS. >>>>> >>>>> > Can you attach this video so that it is available externally? >>>>> >>>>> Here's the link to the recording >>>>> <https://drive.google.com/file/d/1IhIiYMaG5bK2n-ufahEqkQwcPTok7sFe/view?usp=drive_link> >>>>> - >>>>> I've updated that in chrome status too: >>>>> https://chromestatus.com/feature/5174306712322048?gate=5101473814544384 >>>>> >>>>> >>>>> >>>>> On Wed, Sep 11, 2024 at 7:41 AM Robert Flack <fla...@chromium.org> >>>>> wrote: >>>>> >>>>>> My only concern with the current feature is that dynamically updating >>>>>> the safe area while scrolling requires a main thread update for the >>>>>> developer drawn controls (e.g. footer) to respond. This is going to be >>>>>> slow. Hopefully there is a path by which we can recognize this >>>>>> positioning >>>>>> and update it frame perfectly on the compositor similar to fixed / >>>>>> sticky >>>>>> position content. >>>>>> >>>>>> Otherwise, this seems in line with the established pattern for >>>>>> devices which draw the viewport to an area that is not entirely >>>>>> guaranteed >>>>>> to be visible. >>>>>> >>>>>> On Mon, Sep 9, 2024 at 12:54 PM Wenyu Fu <weny...@chromium.org> >>>>>> wrote: >>>>>> >>>>>>> Friendly ping :) This feature has an associated Chrome milstone, >>>>>>> it'd be great if I can get some feedback so I can have them addressed >>>>>>> in a >>>>>>> timely manner >>>>>>> >>>>>>> On Fri, Sep 6, 2024 at 7:58 AM Wenyu Fu <weny...@chromium.org> >>>>>>> wrote: >>>>>>> >>>>>>>> For Chrome on Android, we are aiming to draw the web contents edge >>>>>>>> to edge, drawing part of the web contents under the bezels (i.e. >>>>>>>> navigation >>>>>>>> bar). This change allows us to correctly dispatch the safe-area-inset* >>>>>>>> attributes based on the shown ration of the browser controls, so if >>>>>>>> websites has control elements that anchor to the bottom, they can read >>>>>>>> the >>>>>>>> CSS env variable "safe-area-inset-bottom" to avoid having the controls >>>>>>>> being occluded by the navigation bar. This Intent to Ship is targeting >>>>>>>> the >>>>>>>> render side of the change. >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> On Fri, Sep 6, 2024 at 3:59 AM Yoav Weiss (@Shopify) < >>>>>>>> yoavwe...@chromium.org> wrote: >>>>>>>> >>>>>>>>> The design doc doesn't give a lot of background. Can you provide a >>>>>>>>> short explanation or an inline explainer as to what this is trying to >>>>>>>>> solve >>>>>>>>> and how we think developers will be using this? Thanks! :) >>>>>>>>> >>>>>>>> >>>>>> MDN has a great explanation and examples >>>>>> <https://developer.mozilla.org/en-US/docs/Web/CSS/env#examples> of >>>>>> how this variable is used by developers. I suspect given this is already >>>>>> an >>>>>> established feature and that this is changing it to be dynamic in the >>>>>> case >>>>>> of native UI which only covers the content some of the time that this >>>>>> could >>>>>> have been a PSA >>>>>> <https://www.chromium.org/blink/launching-features/#behavior-changes>. >>>>>> The only risk I can think of is if this is the first instance of a >>>>>> dynamically changing inset, there may be developers who read it once >>>>>> from >>>>>> Javascript and don't have a signal to update their UI when it changes. >>>>>> >>>>> >>>> Makes sense! Can y'all take a look at the HTTP archive to make sure we >>>> don't see evidence of this happening in the wild? >>>> >>> >>> FWIW, given this is already shipped on iOS, I personally think the >>> compat risk is quite small. Even if we did find a few sites that read it >>> once and then didn't update, they'd probably not be any more broken than >>> they are today with non-dynamic safe areas, right? >>> >>> Personally I think we should just ship this ASAP to match iOS. As Rob >>> says, there's an argument that it's just a bug fix. >>> >>> LGTM1 from me (but happy for others to disagree) >>> >>> >>>>>> On Fri, Aug 30, 2024 at 7:10 PM Wenyu Fu <weny...@chromium.org> >>>>>>>>> wrote: >>>>>>>>> >>>>>>>>>> > The work isn't being done by the team which owns Blink>CSS so >>>>>>>>>> it would be good if there were experts which could triage incoming >>>>>>>>>> bugs, >>>>>>>>>> etc in this area. >>>>>>>>>> >>>>>>>>>> Good callout! I can't seem to find an appropriate component for >>>>>>>>>> this feature, thus I choose the closest. During development I've >>>>>>>>>> been >>>>>>>>>> closely working with owners from Blink>CSS (futhark@) and I think >>>>>>>>>> this >>>>>>>>>> still fits the CSS area. >>>>>>>>>> >>>>>>>>>> FWIW I think we could still create the Blink>CSS>SafeArea >>>>>>>>>> component >>>>>>>>>> >>>>>>>>>> > make public access to the indicated document? >>>>>>>>>> >>>>>>>>>> Sorry for the inconvenience. The original doc is associated with >>>>>>>>>> my google account, and I have trouble sharing it to the public. >>>>>>>>>> I've made a public copy: >>>>>>>>>> https://docs.google.com/document/d/1VL0KNzdQwATk9Uf8kP0kcbO1-dDx86pPvB_bMQdLLHE/edit >>>>>>>>>> >>>>>>>>>> On Thu, Aug 29, 2024 at 11:53 PM uazo <carmelo.mess...@gmail.com> >>>>>>>>>> wrote: >>>>>>>>>> >>>>>>>>>>> > Design docs >>>>>>>>>>> >>>>>>>>>>> could you make public access to the indicated document? >>>>>>>>>>> >>>>>>>>>>> thank you! >>>>>>>>>>> >>>>>>>>>>> On Thursday, August 29, 2024 at 9:09:17 PM UTC+2 >>>>>>>>>>> ikilp...@chromium.org wrote: >>>>>>>>>>> >>>>>>>>>>>> On Thu, Aug 29, 2024 at 12:00 PM Wenyu Fu <wen...@chromium.org> >>>>>>>>>>>> wrote: >>>>>>>>>>>> >>>>>>>>>>>>> Contact emails wen...@chromium.org, wen...@google.com >>>>>>>>>>>>> >>>>>>>>>>>>> Explainer None >>>>>>>>>>>>> >>>>>>>>>>>>> Specification >>>>>>>>>>>>> https://developer.mozilla.org/en-US/docs/Web/CSS/env >>>>>>>>>>>>> >>>>>>>>>>>>> Design docs >>>>>>>>>>>>> >>>>>>>>>>>>> https://docs.google.com/document/d/1Wg8M-tkeo7_JDRYVV2vB22pAPQMYXuJ2Ik-fmqn-plg/edit?tab=t.0 >>>>>>>>>>>>> >>>>>>>>>>>>> Summary >>>>>>>>>>>>> >>>>>>>>>>>>> Dynamically change the safe area inset based on the shown >>>>>>>>>>>>> ration for the browser controls. This is used when to keep the >>>>>>>>>>>>> web contents >>>>>>>>>>>>> from the display cutout area when Chrome is drawing edge to edge. >>>>>>>>>>>>> This >>>>>>>>>>>>> feature is targeting Android only. Similar browser behavior is >>>>>>>>>>>>> already >>>>>>>>>>>>> available for Chrome on iOS and Safari Mobile. Detailed design & >>>>>>>>>>>>> implementation, please see crbug.com/324436581 >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> Blink component Blink>CSS >>>>>>>>>>>>> <https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink%3ECSS> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>> Could we create a new Blink component for the env(safe-area-*) >>>>>>>>>>>> implementation? (Maybe Blink>SafeArea). >>>>>>>>>>>> >>>>>>>>>>>> The work isn't being done by the team which owns Blink>CSS so >>>>>>>>>>>> it would be good if there were experts which could triage incoming >>>>>>>>>>>> bugs, >>>>>>>>>>>> etc in this area. >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>>> Search tags safearea >>>>>>>>>>>>> <https://chromestatus.com/features#tags:safearea> >>>>>>>>>>>>> >>>>>>>>>>>>> TAG review None >>>>>>>>>>>>> >>>>>>>>>>>>> TAG review status Not applicable >>>>>>>>>>>>> >>>>>>>>>>>>> Risks >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> Interoperability and Compatibility >>>>>>>>>>>>> >>>>>>>>>>>>> None >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> *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 specific behavior changes to API, no impact to WebView. >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> Debuggability >>>>>>>>>>>>> >>>>>>>>>>>>> None >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> Will this feature be supported on all six Blink platforms >>>>>>>>>>>>> (Windows, Mac, Linux, ChromeOS, Android, and Android WebView)? >>>>>>>>>>>>> No >>>>>>>>>>>>> >>>>>>>>>>>>> Android only - feature targeting OS with a browser controls. >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>> I think it would be fair to say that this is supported on all >>>>>> platforms, as they define the environment variable, even though it's >>>>>> only >>>>>> Android that will currently establish a safe area for overdrawn OS >>>>>> controls. I think if any other platform had native controls drawn on top >>>>>> that we would update the variable there too. >>>>>> >>>>>> >>>>>>>>>>>>> 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 chrome://flags dynamic-safe-area-insets, >>>>>>>>>>>>> dynamic-safe-area-insets-on-scroll >>>>>>>>>>>>> >>>>>>>>>>>>> Finch feature name DynamicSafeAreaInsets, >>>>>>>>>>>>> DynamicSafeAreaInsetsOnScroll >>>>>>>>>>>>> >>>>>>>>>>>>> Requires code in //chrome? False >>>>>>>>>>>>> >>>>>>>>>>>>> Tracking bug https://g-issues.chromium.org/issues/324436581 >>>>>>>>>>>>> >>>>>>>>>>>>> Launch bug https://launch.corp.google.com/launch/4339772 >>>>>>>>>>>>> >>>>>>>>>>>>> Measurement No specific measurement on web platform. This >>>>>>>>>>>>> success will be measured together with >>>>>>>>>>>>> https://launch.corp.google.com/launch/4339772 >>>>>>>>>>>>> >>>>>>>>>>>>> Availability expectation Feature is already available on >>>>>>>>>>>>> Safari, and is implemented to make available on Chrome on Android. >>>>>>>>>>>>> >>>>>>>>>>>>> Adoption expectation No change is required from web developer. >>>>>>>>>>>>> >>>>>>>>>>>>> Adoption plan No changes needed from the developer. >>>>>>>>>>>>> >>>>>>>>>>>>> Non-OSS dependencies >>>>>>>>>>>>> >>>>>>>>>>>>> Does the feature depend on any code or APIs outside the >>>>>>>>>>>>> Chromium open source repository and its open-source dependencies >>>>>>>>>>>>> to >>>>>>>>>>>>> function? >>>>>>>>>>>>> No >>>>>>>>>>>>> >>>>>>>>>>>>> Sample links >>>>>>>>>>>>> >>>>>>>>>>>>> https://screencast.googleplex.com/cast/NTMyMTc4MzcyODE0NDM4NHxmOGViYjdmMC1iZg >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>> Can you attach this video so that it is available externally? I think >>>>>> this is a good example of how the feature is used and what it will look >>>>>> like. >>>>>> >>>>>> Estimated milestones >>>>>>>>>>>>> Shipping on Android 129 >>>>>>>>>>>>> >>>>>>>>>>>>> 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). >>>>>>>>>>>>> No anticipated spec change at the scope for this launch. >>>>>>>>>>>>> >>>>>>>>>>>>> Link to entry on the Chrome Platform Status >>>>>>>>>>>>> https://chromestatus.com/feature/5174306712322048?gate=5101473814544384 >>>>>>>>>>>>> >>>>>>>>>>>>> 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/CAFtDRbBh16No8Jsge-tsaxfXsYOauJVkW4cxsVJQkJ_-2hFAww%40mail.gmail.com >>>>>>>>>>>>> >>>>>>>>>>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAFtDRbBh16No8Jsge-tsaxfXsYOauJVkW4cxsVJQkJ_-2hFAww%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/CAFtDRbDYE2m%3Do-ddaJZc1CvN5FL4jHRbS_fo8T4mfc8tvwk6OA%40mail.gmail.com >>>>>>>>>> >>>>>>>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAFtDRbDYE2m%3Do-ddaJZc1CvN5FL4jHRbS_fo8T4mfc8tvwk6OA%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/CAFtDRbATXu5g-ou4Vc6O%3D8%2BaKnTGkVSFmOZu_ZZSVo0pz_GbfA%40mail.gmail.com >>>>>>> >>>>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAFtDRbATXu5g-ou4Vc6O%3D8%2BaKnTGkVSFmOZu_ZZSVo0pz_GbfA%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/CAOmohSJn064YAioCwXFQ9FRgdt1i_5f9ROE00nirya40RcLCrA%40mail.gmail.com >>>> >>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAOmohSJn064YAioCwXFQ9FRgdt1i_5f9ROE00nirya40RcLCrA%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/CAOmohSJxfoNaxWUYCC9RjvhqoUoiZgeR4q1X3%3Dvq52Kh58mMuw%40mail.gmail.com >> >> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAOmohSJxfoNaxWUYCC9RjvhqoUoiZgeR4q1X3%3Dvq52Kh58mMuw%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 visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/457dcc0f-deee-4539-94da-a2e9d1218d8bn%40chromium.org.