LGTM1

On Monday, March 25, 2024 at 4:42:55 PM UTC+1 Mike Taylor wrote:

> Thank you for the answers Etienne. Once the Testing bit has been 
> requested, I'm happy to give an LGTM.
> On 3/25/24 11:08 AM, Etienne Pierre-doray wrote:
>
> 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?
>>
> I don't think WebKit has a viewport condition. [code 
> <https://github.com/WebKit/WebKit/blob/main/Source/WebCore/dom/Document.cpp#L4005>
> ]
>   
>
>> 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.
>
> Defining this concept in the spec would presumably be used to more 
> strictly define when throttling is allowed (1) or mandatory (2) by 
> browsers. I really don't think it's useful to specify this more tightly in 
> the spec, as it makes performance interventions overly restrictive and is 
> prone to rotting over time, as common patterns and APIs evolve.
> 1- Allowing throttling *only* for some definition of unimportant frames 
> could provide a more predictable platform to web devs, but it seems overly 
> restrictive on what the platform is allowed to do, and locks us in wrt. the 
> kind of performance intervention we're allowed to do. This is already not 
> true: both Webkit and blink implement various throttling in power-reducing 
> situations other than unimportant frames.
> 2- It's unclear how making throttling mandatory in certain situations 
> brings value to web devs, especially if the intervention is different among 
> browsers. It does however add unnecessary constraints on the platform.
> As a case in point, the spec specifies a mandatory 4ms delay on settimeout 
> (8.6.5 
> <https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#timers>) 
> with a nesting level greater than 5. This intervention doesn't really make 
> sense in modern day browsers, and neither blink or webkit are spec 
> compliant (in distinct ways).
>
>
> On Fri, Mar 22, 2024 at 2:57 PM Mike Taylor <miketa...@chromium.org> 
> wrote:
>
>> 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/4410b794-35c8-464d-b647-d48e9835f201n%40chromium.org.

Reply via email to