Contact email
Spec
http://tabatkins.github.io/specs/css-will-change/ (Note that the CSSWG has approved [1] publishing this spec as a First Public Working Draft, so this will soon be moving to w3.org).
Summary
This adds a will-change CSS property, that can be used to signal that a particular property is likely to be changed in the future, or that an element’s content is likely to change.
Link to “Intent to Implement” blink-dev discussion
https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/M62y2nKZ-gE
Is this feature supported on all five Blink platforms (Windows, Mac, Linux, Chrome OS and Android)?
Yes.
Compatibility risk
Mozilla has implemented will-change behind a flag [2] and has a tracking bug for enabling will-change by default [3]. Mozilla has already enabled will-change for Firefox OS system apps [4].
will-change is “Under Consideration” by Microsoft [5].
OWP launch tracking bug
Link to entry on feature dashboard
http://www.chromestatus.com/features/5954199330226176
[1] http://lists.w3.org/Archives/Public/www-style/2014Apr/0016.html
[2] https://bugzilla.mozilla.org/show_bug.cgi?id=940842
[3] https://bugzilla.mozilla.org/show_bug.cgi?id=961871
[4] https://bugzilla.mozilla.org/show_bug.cgi?id=977757
[5] http://status.modern.ie/csswillchange
Contact email
Spec
http://tabatkins.github.io/specs/css-will-change/ (Note that the CSSWG has approved [1] publishing this spec as a First Public Working Draft, so this will soon be moving to w3.org).
Summary
This adds a will-change CSS property, that can be used to signal that a particular property is likely to be changed in the future, or that an element’s content is likely to change.
Link to “Intent to Implement” blink-dev discussion
https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/M62y2nKZ-gE
Is this feature supported on all five Blink platforms (Windows, Mac, Linux, Chrome OS and Android)?
Yes.
Compatibility risk
Mozilla has implemented will-change behind a flag [2] and has a tracking bug for enabling will-change by default [3]. Mozilla has already enabled will-change for Firefox OS system apps [4].
will-change is “Under Consideration” by Microsoft [5].
OWP launch tracking bug
Link to entry on feature dashboard
On Mon, Apr 14, 2014 at 11:42 AM, Ali Juma <aj...@chromium.org> wrote:
Contact email
Spec
http://tabatkins.github.io/specs/css-will-change/ (Note that the CSSWG has approved [1] publishing this spec as a First Public Working Draft, so this will soon be moving to w3.org).
Summary
This adds a will-change CSS property, that can be used to signal that a particular property is likely to be changed in the future, or that an element’s content is likely to change.
Link to “Intent to Implement” blink-dev discussion
https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/M62y2nKZ-gE
Is this feature supported on all five Blink platforms (Windows, Mac, Linux, Chrome OS and Android)?
Yes.
Reading the mozilla bug (https://bugzilla.mozilla.org/show_bug.cgi?id=961871), they are limiting the number of elements where will-change is honored to a certain buffer size. Looking at the reviews in blink, it doesn't seem like it constrains this at all so it's up to the capabilities of the running browser [1].There really should be some sort of guideline so an author could make an informed decision if his use of 'will-change' is actually going to improve performance.Mozilla is also flagging 'display' as a hint that creates a stacking context, but blink is not.will-change is “Under Consideration” by Microsoft [5].
OWP launch tracking bug
Link to entry on feature dashboard
On Mon, Apr 14, 2014 at 11:42 AM, Ali Juma <aj...@chromium.org> wrote:
Contact email
Spec
http://tabatkins.github.io/specs/css-will-change/ (Note that the CSSWG has approved [1] publishing this spec as a First Public Working Draft, so this will soon be moving to w3.org).
Summary
This adds a will-change CSS property, that can be used to signal that a particular property is likely to be changed in the future, or that an element’s content is likely to change.
Link to “Intent to Implement” blink-dev discussion
https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/M62y2nKZ-gE
Is this feature supported on all five Blink platforms (Windows, Mac, Linux, Chrome OS and Android)?
Yes.
Compatibility risk
Mozilla has implemented will-change behind a flag [2] and has a tracking bug for enabling will-change by default [3]. Mozilla has already enabled will-change for Firefox OS system apps [4].
Reading the mozilla bug (https://bugzilla.mozilla.org/show_bug.cgi?id=961871), they are limiting the number of elements where will-change is honored to a certain buffer size. Looking at the reviews in blink, it doesn't seem like it constrains this at all so it's up to the capabilities of the running browser [1].There really should be some sort of guideline so an author could make an informed decision if his use of 'will-change' is actually going to improve performance.Mozilla is also flagging 'display' as a hint that creates a stacking context, but blink is not.
Mozilla is also flagging 'display' as a hint that creates a stacking context, but blink is not.That sounds like an important issue to resolve before shipping the feature.---8<---If any non-initial value of a property would create a stacking context on the element, specifying that property in will-change must create a stacking context on the element.--->8---Maybe Firefox supports a value for the display property that creates a stacking context?
On Mon Apr 14 2014 at 1:28:44 PM, Rik Cabanier <caba...@gmail.com> wrote:On Mon, Apr 14, 2014 at 11:42 AM, Ali Juma <aj...@chromium.org> wrote:
Contact email
Spec
http://tabatkins.github.io/specs/css-will-change/ (Note that the CSSWG has approved [1] publishing this spec as a First Public Working Draft, so this will soon be moving to w3.org).
Summary
This adds a will-change CSS property, that can be used to signal that a particular property is likely to be changed in the future, or that an element’s content is likely to change.
Link to “Intent to Implement” blink-dev discussion
https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/M62y2nKZ-gE
Is this feature supported on all five Blink platforms (Windows, Mac, Linux, Chrome OS and Android)?
Yes.
Compatibility risk
Mozilla has implemented will-change behind a flag [2] and has a tracking bug for enabling will-change by default [3]. Mozilla has already enabled will-change for Firefox OS system apps [4].
Reading the mozilla bug (https://bugzilla.mozilla.org/show_bug.cgi?id=961871), they are limiting the number of elements where will-change is honored to a certain buffer size. Looking at the reviews in blink, it doesn't seem like it constrains this at all so it's up to the capabilities of the running browser [1].There really should be some sort of guideline so an author could make an informed decision if his use of 'will-change' is actually going to improve performance.Mozilla is also flagging 'display' as a hint that creates a stacking context, but blink is not.That sounds like an important issue to resolve before shipping the feature.---8<---If any non-initial value of a property would create a stacking context on the element, specifying that property in will-change must create a stacking context on the element.--->8---Maybe Firefox supports a value for the display property that creates a stacking context? Hum... I wonder if this requirement will cause us problems in the future because we won't be able to add new property values that create stacking contexts without breaking existing content that specifies will-change for that property.
Would the behavior be to warn (in the console?) when authors exceed
the browser-specific limit for will-change elements?
Warning on bad usage of a performance hit does seem like a useful
feature to try and help authors achieve good performance of their
pages.
Even just a console log:
WARNING: CSS property "will-change" applied to more than N elements,
matches beyond N will be ignored.
I agree that without a tool to div down and see who is using what it
might be difficult to debug.
The ideal implementation would let authors specify appropriate will-change and not have to think about what hardware the device will run. Having JS conditional logic would be a big failure IMO. Therefore I suggest that the browser engine allot a layers budget appropriate for that device. This budget could be 'no more then 5 Megapixel of layers, no layers smaller then a page in size before of high draw overhead in this platform'. We then give priority to the normal active layers and the remaining will-change. If we run out then the will-change layers wont fit first and we might even skip active layers if we're constraint. This also solve our problem with getting too many active layers on mobile where we currently limit a container layer to 10 children which is a terrible band-aid.
I vote we (1) Implement a page layer budget, (2) distribute the budget between LAYER_FORCE_ACTIVE (and never disallow), LAYER_ACTIVE, will-change in that order, (3) then focus on better detecting cases where layering an element is a performance regression on that device.
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+...@chromium.org.