Closed
Bug 1092320
Opened 10 years ago
Closed 10 years ago
Log a warning to the console when will-change is out of budget
Categories
(Core :: Layout, defect)
Core
Layout
Tracking
()
RESOLVED
FIXED
mozilla37
People
(Reporter: BenWa, Assigned: BenWa)
References
Details
Attachments
(1 file, 2 obsolete files)
9.85 KB,
patch
|
BenWa
:
review+
|
Details | Diff | Splinter Review |
> Can we make sure to log something to the web console when we choose to dishonor will-change? That will help web developers to be able to reason about why will-change doesn't give them the performance benefits that they expect.
Blocks: will-change
This is definitely worth doing. Can you do it?
nsContentUtils::ReportToConsole should make it pretty easy. (See other users.)
Flags: needinfo?(bgirard)
Assignee | ||
Comment 2•10 years ago
|
||
Yes for sure, just let me wrap up a pending bug. Leaving the ni? as a reminder.
Assignee | ||
Comment 3•10 years ago
|
||
I'm considering doing the following:
- Warn up to once per document OR log as we go in and out of budget but can be spamy for some content so I think once would be better.
- Use a message resembling 'Will-change memory consumption is too high. Surface area covers 123456 pixels squared, budget is the document surface area times 3 (12345 pixels squared). Ignoring will-change for document: <URI>'. Thoughts?
Flags: needinfo?(bgirard)
Assignee | ||
Comment 4•10 years ago
|
||
This is my first time modifying localization strings so please reviews that more carefully.
Assignee | ||
Comment 5•10 years ago
|
||
Testing:
1) Go to reddit.com
2) Open the inspector
3) Modify their body, div, dl ... CSS rule to also set: 'will-change: opacity'.
Message:
Will-change memory consumption is too high. Surface area covers 224506193 pixels squared, budget is the document surface area multiplied by 3 (3311700 pixels squared).
Comment on attachment 8526999 [details] [diff] [review]
patch
>+# LOCALIZATION NOTE (WillChangeBudgetWarning): Do not translate Will-change, %1$S,%2$S,%3$S are numbers.
>+WillChangeBudgetWarning=Will-change memory consumption is too high. Surface area covers %1$S pixels squared, budget is the document surface area multiplied by %2$S (%3$S pixels squared). All occurances of will-change in the document is ignored when overbudget.
Change the comma to a period and capitalize the following "budget".
occurances -> occurrences
overbudget -> over budget
is ignored -> are ignored
I also tend to think you probably want:
pixels squared -> pixels
>+ nsString url;
>+ key->Document()->GetURL(url);
This is unused; remove it.
>+ nsString usageStr;
>+ usageStr.AppendInt(budget.mBudget);
>+
>+ nsString multiplierStr;
>+ multiplierStr.AppendInt(multiplier);
>+
>+ nsString limitStr;
>+ limitStr.AppendInt(budgetLimit);
>+
>+ const char16_t* params[] = { usageStr.get(), multiplierStr.get(), limitStr.get() };
>+ key->Document()->WarnOnceAbout(nsIDocument::eWillChangeBudget, false, params, 4);
Use NS_ARRAY_LENGTH(params) or ArrayLength(params) instead of 4. (Note that it's 3!)
r=dbaron on the layout parts and the string
transferring review for the dom parts to Kyle... although it would be good to know why you need a new set of values rather than being able to reuse the other set
Attachment #8526999 -
Flags: review?(khuey)
Attachment #8526999 -
Flags: review?(dbaron)
Attachment #8526999 -
Flags: review+
Assignee | ||
Comment 7•10 years ago
|
||
Attachment #8526999 -
Attachment is obsolete: true
Attachment #8526999 -
Flags: review?(khuey)
Attachment #8527135 -
Flags: review?(khuey)
Assignee | ||
Comment 8•10 years ago
|
||
(In reply to David Baron [:dbaron] (UTC-8) (needinfo? for questions) from comment #6)
> transferring review for the dom parts to Kyle... although it would be good
> to know why you need a new set of values rather than being able to reuse the
> other set
Yes, what's wrong with the existing function
Flags: needinfo?(bgirard)
Assignee | ||
Comment 10•10 years ago
|
||
Because what I have 1) Isn't a deprecation warning, 2) Those warnings have 'nearly' exhausted the 64-bit range (57/64) anyways:
http://mxr.mozilla.org/mozilla-central/source/dom/base/nsDeprecatedOperationList.h
http://mxr.mozilla.org/mozilla-central/source/dom/base/nsDocument.cpp#10185
If we don't care about 1) and 2) then I can just force it in there.
Flags: needinfo?(bgirard)
Attachment #8527135 -
Flags: review?(khuey) → review+
Assignee | ||
Comment 11•10 years ago
|
||
Removed extraneous change to ContainerLayerComposite.cpp, ready to land.
Attachment #8527135 -
Attachment is obsolete: true
Attachment #8534630 -
Flags: review+
Assignee | ||
Comment 12•10 years ago
|
||
OS: Mac OS X → All
Hardware: x86 → All
Status: ASSIGNED → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla37
Comment 14•9 years ago
|
||
Found typo in console message.
"Occurences of will-change over the budget will be ignored."
"Occurences" -> "Occurrences"
Assignee | ||
Comment 15•9 years ago
|
||
Thanks for the report, it's been fixed in bug 1191412.
You need to log in
before you can comment on or make changes to this bug.
Description
•