what about WebSockets? Wondering about video conferencing websites that use
Websockets as signaling transport to establish a WebRTC connection but do
not open camera/microphone or the underlying connection until that is
necessary.
(I do not expect such applications to use a lot of CPU in that state so
might be fine)

Am Mi., 4. Dez. 2024 um 06:34 Uhr schrieb Daniel Bratell <
bratel...@gmail.com>:

> Before "notifications" have been used as a signal of a page that wants to
> run in the background. I didn't see it listed here. The other use case that
> has been mentioned in similar threads is stock market applications which
> seem to both want to run in the background and do non-trivial work of some
> kind.
>
> As for possible pitfalls I do wonder what happens on very slow or
> throttled computers where any work at all will be interpreted as "high cpu
> usage".
>
> But I think this overall is a very reasonable feature for a browser. There
> will be challenges in, tuning, UI and user communication, but nothing that
> I consider a feature blocker.
>
> LGTM2
>
> /Daniel
> On 2024-12-04 03:45, Vladimir Levin wrote:
>
> You've mentioned things like mail/calendar should still work. Is this
> because the expected background CPU usage is low or is it that it's using
> some API that directly opts it out of the freezing behavior? I'm
> particularly worried about things like calendar that don't _typically_ need
> to do any work, but _occasionally_ want to show a notification that you
> have an upcoming meeting. If there happens to be some background work
> happening in those that causes it to be frozen, that seems like it could be
> a hard to discover problem (due to the fact that it maybe only occasionally
> uses too much CPU) and quite painful for the user. In general, any site
> that can do background work and notifies the user via notifications seems
> like it could be problematic
>
> Thanks,
> Vlad
>
> On Fri, Nov 29, 2024 at 7:38 PM Rick Byers <rby...@chromium.org> wrote:
>
>> LGTM1 to ship including a deprecation trial
>>
>> On Fri, Nov 29, 2024, 5:00 p.m. François Doray <fdo...@google.com> wrote:
>>
>>>
>>>
>>> On Friday, November 29, 2024 at 3:13:39 PM UTC-5 Rick Byers wrote:
>>>
>>> tl;dr: Just one remaining question about providing a developer opt-out
>>> (like a deprecation trial).
>>>
>>> On Fri, Nov 29, 2024 at 12:25 PM Francois Pierre Doray <
>>> fdo...@chromium.org> wrote:
>>>
>>> Hi Rick,
>>>
>>> Thanks for raising your concerns regarding troubleshooting issues caused
>>> by Tab Freezing on Energy Saver.
>>>
>>> > Does Chrome have any visual indication that a tab has been frozen?
>>> There is no indication that a tab is frozen. However, the feature only
>>> operates when Energy Saver is active, signaled by a leaf icon next to the
>>> omnibox. When Energy Saver is first activated or when the leaf icon is
>>> clicked, a bubble indicates that "Background activity and some visual
>>> effects may be limited".
>>>
>>>
>>> Ah cool, I had never noticed that before myself. I see there's also a
>>> prominent "turn off now" button:
>>>
>>> [image: image.png]
>>>
>>> That seems like a significant mitigation to me. If someone is having
>>> trouble with some site it seems like there's a decent chance that they (or
>>> their IT support people) would notice this indicator, click it, then click
>>> "turn off now" and confirm that fixes the issue. From there I'd imagine
>>> troubleshooting would be pretty easy (google searches for "chrome energy
>>> saver" would point to the per-site opt-out etc.)
>>>
>>> We avoided a frozen tab indicator because in the long term (2-3 years),
>>> we plan to freeze most background tabs, to ensure that they don't steal
>>> resources from the foreground tab. At that point, there will be a visual
>>> indication for tabs that are *not* frozen (e.g. playing audio = speaker
>>> icon, using the progress notification API
>>> <https://github.com/explainers-by-googlers/progress-notification> to do
>>> arbitrary work = UI TBD).
>>>
>>>
>>> I love that long-term plan, thanks! Personally I'd love to have a mode
>>> where pages get to run in the background only if they show such an icon or
>>> in response to me granting their origin that permission. That's not behind
>>> a flag or anything yet, right?
>>>
>>>
>>> "Pages get to run in the background only if [they show some UI]" : In
>>> 2-3 years, we'd like this to be the default behavior, due to the expected
>>> foreground tab speed up and battery savings. It's not yet behind a flag.
>>>
>>>
>>> > How discoverable is it for users that they can add a site to an
>>> exclusion list?
>>>
>>> Users can add sites to the exclusion list via the "Performance" tab in
>>> Chrome settings (direct link: chrome://settings/performance), under
>>> "Always keep these sites active." This is also mentioned in the help
>>> article <https://support.google.com/chrome/answer/12929150> (will be
>>> updated for this launch).
>>>
>>>
>>> Yeah I saw that, and I like that the UI contains a "current sites" list
>>> rather than requiring copying URLs. But that alone certainly is not
>>> discoverable for a user who simply has a broken web page and doesn't know
>>> why. But given that disabling energy saver is very discoverable, that's
>>> good enough for me as long as this is coupled just to energy saver. I guess
>>> you won't really have a way to measure how much site compat issues lead
>>> users to disable energy saver, eh? I imagine most users disabling it will
>>> do so for the performance / visual quality concerns, not site compat
>>> reasons.
>>>
>>>
>>> We could run a HaTS survey to understand what leads users to add sites
>>> to the exclusion list. Let me know what you think and I can prioritize this.
>>>
>>
>> It's not important for the launch process, so up to you. Not needed from
>> my perspective.
>>
>> While discoverability is limited, most users won't need this feature.
>>> Typical mail/chat/calendar/phone/drive/music
>>> streaming/videoconferencing/... apps will either not exceed the CPU
>>> threshold for freezing or be opted out via API usage. Sites requiring high
>>> background CPU usage under Energy Saver (outside of audio/video calls,
>>> device control...) can direct users to the Chrome settings page or
>>> recommend using this policy
>>> <https://chromeenterprise.google/intl/en_ca/policies/#TabDiscardingExceptions>
>>>  to
>>> enterprise admins (policy doc will be updated for this launch).
>>>
>>>
>>> Yes I'm definitely convinced that "most" (probably even >99.99%) of
>>> users won't have a problem - your design is great for that, thank you! But
>>> what I've learned from my incident post-mortem responsibilities is that
>>> it's the ~0.0001% of users that we have to really focus on to reduce the
>>> risk of most OMGs. Ask Robert about why I'm afraid of his wrath around this
>>> next time you see him in the office :-).
>>>
>>> Realistically I'd expect most such sites to just hack in some API usage
>>> that tickles your heuristic (like take an IndexedDB lock just for the
>>> purposes of being kept alive). That 's going to be much more effective for
>>> them than trying to direct users to take some manual steps, right? That
>>> seems unfortunate to me, as it will make your life harder in driving down
>>> the exceptions. Experience with this sort of thing is a big part of the
>>> motivation behind our guidance
>>> <https://docs.google.com/document/d/1RC-pBBvsazYfCNNUSkPqAVpSpNJ96U8trhNkfV0v9fk/edit?tab=t.0#heading=h.glc7fyugcipe>
>>> for providing explicit developer opt-outs for breaking changes (especially
>>> interventions like this). Sure, there is some risk of an explicit opt-out
>>> being abused but that risk isn't necessarily any greater than abuse of your
>>> heuristic, and at least you can more easily measure and track it and update
>>> behavior as necessary for any "arms race" with abusive sites. Have you
>>> considered offering developers a deprecation trial
>>> <https://www.chromium.org/blink/launching-features/#deprecation-trial> to
>>> reduce the risk of them abusing your heuristics and get you contact info
>>> for the developers who feel they must opt-out?
>>>
>>>
>>> I hadn't considered a deprecation trial, but I think it's a good idea to
>>> reduce the risk of Web developers abusing our heuristics. In terms of
>>> process, should I create a "Feature removal" entry at chromestatus.com
>>> or can we handle this as part of this intent?
>>>
>>
>> Great! Yeah we can just use this intent, no need for extra overhead. And
>> of course it's important to document how to use the trial in the blog post.
>>
>>
>>> We think that requiring some effort to allow high background CPU usage
>>> under Energy Saver is reasonable, as it can significantly impact battery
>>> life and contradicts Energy Saver's purpose (note: Energy Saver is only
>>> available on battery power, activates when battery level is below 20% by
>>> default).
>>>
>>>
>>> I suspect that most impacted users would simply disable energy saver
>>> completely rather than make the extra effort to discover and use the
>>> site-specific opt-out. But that's fine - both settings aren't hard to find,
>>> and if you see a lot of users disabling energy saver then you can do some
>>> research to see if better per-site controls might help reduce that (though
>>> we might be stuck for the users who have already opted out completely).
>>>
>>>
>>> "though we might be stuck for the users who have already opted out
>>> completely": If we observe any significant difference in the number of
>>> Energy Saver activations between the Control/Enabled groups, or if we
>>> observe an upward trend of users without Energy Saver after the launch,
>>> we'll investigate why and make adjustments.
>>>
>>
>> Oh of course, that makes sense - thanks!
>>
>>
>>> > Is the plan for Chrome 133 to be fully at 100%, with 132 still well
>>> below that?
>>> The plan is to experiment on 1% of stable users in Chrome 133 and then
>>> ramp up gradually as we gain confidence that the feature is well tuned. The
>>> feature is already under experimentation in Canary/Dev.  We intend to
>>> expand Tab Freezing beyond Energy Saver in the future, taking into account
>>> lessons learned from this limited scope launch, but that will be handled
>>> under new Intents.
>>>
>>>
>>> Ok, we've come to appreciate that that pattern increases the risk
>>> somewhat because it makes it even harder for IT admins and support
>>> personnel to reproduce and action site compat issues their users are
>>> complaining about. I don't think we've yet come up with some well-informed
>>> guidance for mitigating this risk, so I won't ask for something different
>>> (eg. could keep to <10% in 133 and then go 100% in 134). But it's something
>>> to keep an eye out for in customer reports and perhaps inform our future
>>> guidance, so please let me know (here or privately) if it ends up showing
>>> up as an issue in customer reports or not.
>>>
>>>
>>> Sounds good.
>>>
>>>
>>>
>>> > Will the blog post you mentioned be published prior to 133 beta (Jan
>>> 15)?
>>> That's the goal, though DevRel hasn't confirmed a date. I'll check in
>>> with them.
>>>
>>>
>>> Ok, thanks. If the blog post gets delayed, please hold off on extending
>>> the experiment to stable until the blog post is live.
>>>
>>>
>>> Sounds good.
>>>
>>>
>>>
>>> Have a nice day,
>>>
>>> François
>>>
>>> On Wednesday, November 27, 2024 at 10:20:09 AM UTC-5 Rick Byers wrote:
>>>
>>> I evaluated this intent relative to our compat principles
>>> <https://bit.ly/blink-compat> and overall think you've done an
>>> excellent job mitigating the compat risks. In particular the user controls,
>>> developer-influencable heuristics and enterprise opt-out seem likely to be
>>> significant mitigations. I'm also confident that you will be proactive in
>>> monitoring for issues and being responsive to feedback.
>>>
>>> Heuristics like the energy saver and CPU threshold seem great to me on
>>> balance, but I'm also nervous that they will make troubleshooting rare but
>>> severe issues harder (especially since these signals can't really be
>>> monitored via web page telemetry). We've learned from one recent incident
>>> that sometimes the rarest incidents can be extremely bad - eg. causing a
>>> serious business disruption for one single organization but not more widely
>>> (making support for that organization much harder). In such cases,
>>> discoverability and understandability of the issue (including by skilled IT
>>> support personnel) is key to avoiding extended outages. With that in mind,
>>> I have a couple questions:
>>>
>>> Does Chrome have any visual indication that a tab has been frozen? How
>>> discoverable is it for users that they can add a site to an exclusion list?
>>>
>>> Is the plan for Chrome 133 to be fully at 100%, with 132 still well
>>> below that? I'm just wondering to what extent someone looking into website
>>> logs for an issue will be able to detect a clear correlation with Chrome
>>> 133 (increasing the chance that they reach out to us or find this mentioned
>>> in the chrome 133 blog post)?
>>>
>>> Will the blog post you mentioned be published prior to 133 beta (Jan
>>> 15)? I see it's mentioned
>>> <https://support.google.com/chrome/a/answer/7679408?hl=en&co=CHROME_ENTERPRISE._Product%3DChromeBrowser#top:~:text=131%20on%20Android-,Tab%20freezing%20on%20Energy%20saver,-When%20Energy%20saver>
>>> in Chrome 131 enterprise release notes already, thank you!
>>>
>>> Thanks,
>>>    Rick
>>>
>>> On Tue, Nov 26, 2024 at 3:11 PM Chromestatus <
>>> ad...@cr-status.appspotmail.com> wrote:
>>>
>>> Contact emails fdo...@chromium.org, shas...@chromium.org
>>>
>>> Explainer None
>>>
>>> Specification https://wicg.github.io/page-lifecycle
>>>
>>> Design docs
>>>
>>> https://docs.google.com/document/d/1uTJifh_erMX4_CTKgKljlj9O4SAmGam5W61FBHeasGI/edit?usp=sharing
>>>
>>> Summary
>>>
>>> When Energy Saver is active, Chrome will freeze a "browsing context
>>> group" that has been hidden and silent for >5 minutes if any subgroup of
>>> same-origin frames within it exceeds a CPU usage threshold, unless it: -
>>> Provides audio- or video-conferencing functionality (detected via
>>> microphone, camera or screen/window/tab capture or an RTCPeerConnection
>>> with an 'open' RTCDataChannel or a 'live' MediaStreamTrack). - Controls an
>>> external device (detected via usage of Web USB, Web Bluetooth, Web HID or
>>> Web Serial). - Holds a Web Lock or an IndexedDB connection that blocks a
>>> version update or a transaction on a different connection. Freezing
>>> consists of pausing execution. It is formally defined in the Page Lifecycle
>>> API. The CPU usage threshold will be calibrated to freeze approximately 10%
>>> of background tabs when Energy Saver is active.
>>>
>>>
>>> Blink component Blink>Scheduling
>>> <https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink%3EScheduling>
>>>
>>> TAG review None
>>>
>>> TAG review status Not applicable
>>>
>>> Risks
>>>
>>>
>>> Interoperability and Compatibility
>>>
>>> Interoperability: This feature does not expose new capabilities to the
>>> Web, so it has low chances of creating situations in which the same
>>> HTML/CSS/Js/... behaves differently in different browsers. That being said,
>>> we invite other browsers vendors that already shipped "tab freezing" to
>>> share and discuss their opt-out rules, which will help offer consistent
>>> behavior for web developers across browsers, avoiding situations where a
>>> site's background functionality works correctly in some browsers but not
>>> others. Compatibility: This feature may affect existing sites with
>>> background functionality. However, breaking some functionality to extend
>>> battery life is in line with user expectations when "Energy Saver" is
>>> active. We're interested in Web developer feedback to adjust our opt-outs
>>> and minimize avoidable breakages. "Energy Saver" can be disabled via the
>>> the "BatterySaverModeAvailability" enterprise policy.
>>>
>>>
>>> *Gecko*: Under consideration (
>>> https://github.com/mozilla/standards-positions/issues/87)
>>>
>>> *WebKit*: No signal
>>>
>>> *Web developers*: No signals In the past, Web developers expressed
>>> concerns about freezing, because it made it difficult to implement
>>> background functionality that users care about in a reliable way (e.g.
>>> notification for calendar event). By freezing only pages that use a lot of
>>> CPU and only when Energy Saver is active, breakages that were reported in
>>> the past are mitigated. Additionally, we will listen to Web developers
>>> feedback on multiple channels (crbug, blink-dev, stack overflow, twitter,
>>> github) and make adjustments to heuristics if we find that background
>>> functionality that users care about is broken. Users may deactivate Energy
>>> Saver or manually opt-out sites at chrome://settings/performance
>>>
>>> *Other signals*: Chrome on Android freezes background tabs after 5
>>> minutes (
>>> https://groups.google.com/a/chromium.org/g/blink-dev/c/NKtuFxLsKgo/m/brL3bfS5CAAJ).
>>> Chrome on desktop and Android freezes pages before putting them in the
>>> BFCache. Chrome on desktop freezes tabs in collapsed tab groups. Edge
>>> freezes background tabs after a configurable timeout (
>>> https://www.microsoft.com/en-us/edge/features/sleeping-tabs-at-work?form=MT00D8).
>>>
>>>
>>> Ergonomics
>>>
>>> No Ergonomics Risks identified.
>>>
>>>
>>> Activation
>>>
>>> No action is required to support browsers that don't freeze pages.
>>>
>>>
>>> Security
>>>
>>> A frame can observe when it is frozen, either directly (via the “freeze”
>>> event) or indirectly (timer runs later than expected, server doesn’t
>>> receive a ping…). When the decision to freeze a frame depends on
>>> observations made on other cross-origin frames (crossing CPU usage
>>> threshold, using Web API that opt-outs from freezing) there is a risk of
>>> leaking information across origins. Multiple solutions were considered to
>>> balance security and ergonomy requirements. We finally landed on "freezing
>>> a browsing context group based on independent observations made on groups
>>> of same-origin/same-page frames in that browsing context group". Pros &
>>> cons + All frames on a page are in the same “frozen” state (does not break
>>> Web devs assumptions). + All frames that can synchronously script each
>>> other are in the same “frozen” state (does not break Web devs assumptions).
>>> + Not aggregating CPU usage across origins minimizes leaks, because an
>>> attacker can’t vary its own CPU usage to precisely measure the CPU usage of
>>> another origin. - Leaks Web API usage across cross-origin frames (a frame
>>> can learn that a cross-origin frame in the "browsing context group" uses or
>>> doesn't use one of the APIs that prevents freezing depending on whether it
>>> itself gets frozen).
>>>
>>>
>>> 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?
>>>
>>> This is a desktop-only feature which does not affect Webview.
>>>
>>>
>>> Debuggability
>>>
>>> The frozen state of a tab is displayed in the "Lifecycle state" column
>>> of chrome://discards. Whether a page can be frozen and why (e.g. usage
>>> of WebRTC) is displayed in the "Is freezable" column of
>>> chrome://discards. The #freezing-on-energy-saver and
>>> #freezing-on-energy-saver-testing features at about:flags can be used
>>> to test this intervention. It is also possible to manually freeze a tab via
>>> chrome://discards to verify how it reacts.
>>>
>>>
>>> Will this feature be supported on all six Blink platforms (Windows, Mac,
>>> Linux, ChromeOS, Android, and Android WebView)? Yes
>>>
>>> Chrome for Android already freezes pages in the background (not tied to
>>> Energy Saver). This proposal brings freezing to desktop.
>>>
>>>
>>> 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 about://flags freezing-on-energy-saver
>>>
>>> Finch feature name FreezingOnBatterySaver
>>>
>>> Requires code in //chrome? False
>>>
>>> Tracking bug https://crbug.com/325954772
>>>
>>> Launch bug https://launch.corp.google.com/launch/4282880
>>>
>>> Measurement This feature doesn't introduce new APIs that web pages need
>>> to adopt.
>>>
>>> Availability expectation This feature doesn't introduce new APIs that
>>> other browsers need to make available. It expands the sets of conditions
>>> under which Chrome may freeze tabs (previously, only tabs in collapsed tab
>>> groups could be frozen).
>>>
>>> Adoption expectation This feature doesn't introduce new APIs that web
>>> pages need to adopt. Web pages may listen to the freeze/resume events to
>>> react to freezing, but it's not an issue if a web page doesn't. These
>>> events are already dispatched when a tab in a collapsed tab group is
>>> frozen.
>>>
>>> Adoption plan In collaboration with DevRel, we will publish an article
>>> covering the conditions under which freezing is triggered and possible
>>> remediations for broken background use cases.
>>>
>>> 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
>>>
>>> Estimated milestones Shipping on desktop 133 DevTrial on desktop 132
>>>
>>> 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).
>>> This feature does not modify the spec. It changes the conditions under
>>> which tabs are frozen in Chrome. Those conditions are expected to evolve
>>> over time.
>>>
>>> Link to entry on the Chrome Platform Status
>>> https://chromestatus.com/feature/5158599457767424?gate=5076873410772992
>>>
>>> Links to previous Intent discussions Intent to Prototype:
>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAG9b2qVcRLRWXUz61AkRWi%2BkaOJwgUK8bNCRBG6LOpqgOd%2BvSw%40mail.gmail.com
>>> Ready for Trial:
>>> https://groups.google.com/a/chromium.org/g/blink-dev/c/Xu1C7WhoGm4/m/_9U_kLHDAwAJ
>>>
>>>
>>> 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 visit
>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/67462b62.2b0a0220.19a388.0546.GAE%40google.com
>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/67462b62.2b0a0220.19a388.0546.GAE%40google.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/CAFUtAY9fhohUewpp%3D_eeMcWEbQtZvBvLDNnnPT6eSAbdwxq8uA%40mail.gmail.com
>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAFUtAY9fhohUewpp%3D_eeMcWEbQtZvBvLDNnnPT6eSAbdwxq8uA%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/CADsXd2P1o1wBfdum060TnNmotmxoCFr0fEqKjjzUg%2BaepNijkw%40mail.gmail.com
> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CADsXd2P1o1wBfdum060TnNmotmxoCFr0fEqKjjzUg%2BaepNijkw%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/4086d432-7397-4bc5-9ba8-40f783428cf8%40gmail.com
> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/4086d432-7397-4bc5-9ba8-40f783428cf8%40gmail.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/CADxkKiJD0sQ7ACFFUZ90jrNOELtmyR9U%3DMU%2Bm2AOax7npD-tag%40mail.gmail.com.

Reply via email to