| Summary: | FrameView::layoutTimerFired() should update style if needed before doing layout | ||||||
|---|---|---|---|---|---|---|---|
| Product: | WebKit | Reporter: | Simon Fraser (smfr) <simon.fraser> | ||||
| Component: | Layout and Rendering | Assignee: | Simon Fraser (smfr) <simon.fraser> | ||||
| Status: | REOPENED --- | ||||||
| Severity: | Normal | CC: | commit-queue, kling, simon.fraser, zalan | ||||
| Priority: | P2 | ||||||
| Version: | 528+ (Nightly build) | ||||||
| Hardware: | Unspecified | ||||||
| OS: | Unspecified | ||||||
| Bug Depends on: | 142368 | ||||||
| Bug Blocks: | |||||||
| Attachments: |
|
||||||
|
Description
Simon Fraser (smfr)
2015-02-16 18:41:01 PST
Fixing this does reduce the number of layouts slightly, but not the total time spent in layout. Created attachment 247613 [details]
Patch
Comment on attachment 247613 [details]
Patch
r=me
This does indeed seem totally reasonable.
Comment on attachment 247613 [details] Patch Clearing flags on attachment: 247613 Committed r180846: <http://trac.webkit.org/changeset/180846> All reviewed patches have been landed. Closing bug. Re-opened since this is blocked by bug 142368 Fix for the regression:
diff --git a/Source/WebCore/page/FrameView.cpp b/Source/WebCore/page/FrameView.cpp
index 229c8a910a042486c9991e4785d8a8dd8058d711..484d90ca1f002b43c55abdb76ea17d65b9f395a2 100644
--- a/Source/WebCore/page/FrameView.cpp
+++ b/Source/WebCore/page/FrameView.cpp
@@ -2440,6 +2440,12 @@ void FrameView::layoutTimerFired()
if (!frame().document()->ownerElement())
printf("Layout timer fired at %lld\n", frame().document()->elapsedTime().count());
#endif
+
+ {
+ TemporaryChange<bool> layoutSchedulingDisabler(m_layoutSchedulingEnabled, false);
+ frame().document()->updateStyleIfNeeded();
+ }
+
layout();
}
Needs testcase.
|