On 3/22/24 1:37 AM, Yoav Weiss (@Shopify) wrote:


On Thu, Mar 21, 2024 at 10:11 AM Zheda Chen <zheda.c...@intel.com> wrote:

    The privacy/security/enterprise/debuggability gates are requested
    on Chrome Status. Testing gate to be requested later.

Thanks - we've been asked to not send LGTMs until all bits have been requested. Can you let us know when Testing is?


    "Unimportant" cross origin frames means they are cross-origin,
    visible but use non-large proportion (<75%) of page's visible area
    and have not received a user gesture. All 3 conditions should be
    met. The criteria are too long so we use "unimportant" concept here.

Thank you - that's much more clear to me now.


    This intervention is spec-compliant. The spec mentions "the
    SetTimeout/SetInterval API does not guarantee that timers will run
    exactly on schedule. Delays due to CPU load, other tasks, etc, are
    to be expected". The wait length of time is
    implementation-defined, "which is intended to allow user agents to
    pad timeouts as needed to optimize the power usage of the device".
    In Safari, DOM timers of non-interacted cross origin frames are
    aligned to 30ms after reaching max nesting level (>=5). In
    Firefox, all DOM timers of frames (both same origin and cross
    origin) are aligned to 16ms. See details in"Interoperability and
    Compatibility Risks", "Safari views", "Firefox views".


I believe the question Mike asked is not if this is spec compliant, but if the specifics of this should be more tightly specified, given that both WebKit and Chromium find a similar intervention useful.
Right - that's my question. I also asked how similar this change is to whatever Safari implements - do they also align wakeups of JS timers for cross-origin, < 75% of viewport, frames that haven't yet received a user gesture? You previously wrote "non-interacted cross origin frames" for WebKit. Is there also a viewport condition?

    On Thursday, March 21, 2024 at 1:27:16 AM UTC+8
    mike...@chromium.org wrote:

        You should be able to see all the various bits for approvals
        in your chromestatus entry now, can you fill them out please?

        There have been a few questions/comments about the lack of
        clarity of what "unimportant cross-origin frames" are. What
        exactly is the definition? You mention that Safari has a
        similar intervention - how similar is it? Do we know? I wonder
        if there is alignment for this "unimportant cross-origin
        frame" concept, if we shouldn't specify that somehow.

        On 3/15/24 2:58 AM, Zheda Chen wrote:
        *Intent to Ship: Add JavaScript timer wake up alignment for
        unimportant cross-origin frames*

        Contact emails
        zheda...@intel.com, fdo...@chromium.org

        Specification
        https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html

        Summary

        Align wake ups of JavaScript timers for unimportant
        cross-origin frames. Currently, DOM timers <32ms are all
        opt-out from AlignWakeUps [1] due to performance concerns.
        This is very conservative and actually some unimportant
        frames are eligible to use JS timer alignment. WebKit uses
        the policy to align DOM timer of non-interacted cross origin
        frames to 30ms. This feature adds JavaScript timer wake up
        alignment for unimportant frames on foreground pages.
        Unimportant frames means they are cross origin, visible but
        have non-large proportion of page’s visible area, and have no
        user interaction. The alignment interval is 32ms. [1]
        https://chromium-review.googlesource.com/c/chromium/src/+/4589092



        Blink component
        Blink>PerformanceAPIs>Timers
        
<https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink%3EPerformanceAPIs%3ETimers>

        TAG review
        None

        TAG review status
        Not applicable

        Risks


        Interoperability and Compatibility

        "Other vendors already have interoperable implementation"
        Safari has a similar intervention. DOM timers of
        non-interacted cross origin frames are aligned to 30ms. In
        Firefox, all DOM timers (both same-origin and cross-origin)
        in foreground pages would be aligned to 16ms. "A mature
        specification in the relevant standards body" This
        intervention is spec-compliant. The spec mentions "the
        SetTimeout/SetInterval API does not guarantee that timers
        will run exactly on schedule. Delays due to CPU load, other
        tasks, etc, are to be expected. ". The wait length of time is
        implementation-defined, "which is intended to allow user
        agents to pad timeouts as needed to optimize the power usage
        of the device. "
        https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html
        "A shared test suite for that specification" It isn't clear
        what should be tested specifically for this intervention
        since the spec allows waiting for an "implementation-defined"
        length.



        /Gecko/: Shipped/Shipping
        In Firefox, all DOM timers of frames (both same origin and
        cross origin) are aligned to 16ms

        /WebKit/: Shipped/Shipping
        In Safari, DOM timers of non-interacted cross origin frames
        are aligned to 30ms after reaching max nesting level (>=5)

        /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?

        None



        Debuggability

        None



        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

        This intervention doesn't require changes to the spec. Timers
        are already covered by Web Platform Tests.



        Flag name on chrome://flags
        None

        Finch feature name
        ThrottleUnimportantFrameTimers

        Requires code in //chrome?
        False

        Tracking bug
        https://issues.chromium.org/issues/40942028

        Launch bug
        https://issues.chromium.org/issues/40942028

        Estimated milestones
        Shipping on desktop
        123
        DevTrial on desktop
        121
        Shipping on Android
        123
        DevTrial on Android
        121

        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/5106220399853568

        Links to previous Intent discussions

        This intent message was generated by Chrome Platform Status
        <https://chromestatus.com/>.


        On Friday, March 15, 2024 at 6:24:06 AM UTC+8
        mike...@chromium.org wrote:

            The privacy and security teams review all intents, so
            requesting reviews and answering the relevant
            questionnaires is the best path forward.

            Looking forward to the new I2S - thanks!

            On 3/14/24 11:22 AM, Zheda Chen wrote:
            More details are updated in ChromeStatus, including
            interoperability and compatibility risks, Safari/Firefox
            views, web platform tests. It compares the behaviors
            across different browser vendors.
            https://chromestatus.com/feature/5106220399853568

            Will send the updated "intent to ship" to this thread
            later if it looks good.

            AFAIK, I don't see potential privacy/security issues, so
            can i set "security review status" and "privacy review
            status" to "not applicable"? Please let us know if you
            have any concerns.

            On Wednesday, March 13, 2024 at 10:00:35 AM UTC+8
            dom...@chromium.org wrote:

                Can you fill out the interoperability and
                compatibility risks section here? I don't think
                standards position requests are necessary, but
                saying how this behavior might break existing sites
                that assume Chromium's current behavior, and how
                this new behavior compares to WebKit and Gecko,
                would be helpful.

                Also, can you request the
                privacy/security/enterprise/debuggability/testing
                gates on Chrome Status?

                On Tue, Mar 12, 2024 at 10:12 PM Zheda Chen
                <zheda...@intel.com> wrote:

                    Okay I update the process stage in Chrome
                    Platform Status, and paste the newly-generated
                    Intent above. Please take a look.

                    https://chromestatus.com/feature/5106220399853568

-- 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/7b8b9b84-2285-4fa9-a80d-c5fc0c1c0c41n%40chromium.org
    
<https://groups.google.com/a/chromium.org/d/msgid/blink-dev/7b8b9b84-2285-4fa9-a80d-c5fc0c1c0c41n%40chromium.org?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/8476ed23-905a-4542-8be3-c8d17d5ed3a7%40chromium.org.

Reply via email to