szager-chromium / isframepending Goto Github PK
View Code? Open in Web Editor NEWspec proposal for new web API: boolean navigator.scheduling.isFramePending()
License: Apache License 2.0
spec proposal for new web API: boolean navigator.scheduling.isFramePending()
License: Apache License 2.0
Intent to Implement: window.isFramePending references window.isFramePending()
, but the explainer in this repo still calls the API navigator.scheduling.isFramePending()
.
Given the request to have issues in your own repository, I'm copying the comment at w3ctag/design-reviews#415 (comment) here (with a bit of delay!):
@hober @plinss and I are looking at this again at our Cupertino face-to-face meeting, and we pulled in @smfr since he's here.
One of the things that came out of the discourse thread mentioned in the previous comment that we discussed a bit is that it sounds like the intent (although that isn't clear from the explainer, and probably should be!) is that isFramePending
should become true as a result of some vsync trigger that comes from the OS, not as a result of the JS that dirties the DOM or style that ends up triggering the need for a repaint. This actually makes me a little bit more worried about interoperability here: it's not clear to me how interoperably those OS signals are defined, whether they behave in different ways on different platforms, e.g., how much does the time between when isFramePending
becomes true and when the main-thread rendering is done vary between platforms? how much does this differ for a page in a background tab? also, when does isFramePending
become unset?
We also talked a little bit about whether there are :visited
link history-sniffing attacks that would result from this. My assertion was that it didn't seem like a big deal because we should be attempting to audit from the side of not having different performance characteristics whether or not links are visited. But @smfr pointed out that there could be optimizations (e.g., those based on display-list diffing) that might need to be disabled in that case, and which could (depending on how it's defined) affect whether isFramePending
is true.
It might help the review progress a bit if the explainer tried to flesh out the answers to these questions a little bit more. And if you do update the explainer in response to this, please ping us in this issue so we know to take another look at it.
Discussion topics for WebPerf WG:
Violation of run-to-completion semantics.
Interoperability/Testability.
Detectability of dirty rendering.
Detectability of process isolation.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.