WebKit Bugzilla
Attachment 371626 Details for
Bug 198664
: REGRESSION (r244182) [WK1]: Page updates should always scheduleCompositingLayerFlush() immediately
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-198664-20190607161659.patch (text/plain), 10.23 KB, created by
Said Abou-Hallawa
on 2019-06-07 16:17:00 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Said Abou-Hallawa
Created:
2019-06-07 16:17:00 PDT
Size:
10.23 KB
patch
obsolete
>Index: Source/WebCore/ChangeLog >=================================================================== >--- Source/WebCore/ChangeLog (revision 246210) >+++ Source/WebCore/ChangeLog (working copy) >@@ -1,3 +1,32 @@ >+2019-06-07 Said Abou-Hallawa <sabouhallawa@apple.com> >+ >+ REGRESSION (r244182) [WK1]: Page updates should always scheduleCompositingLayerFlush() immediately >+ https://bugs.webkit.org/show_bug.cgi?id=198664 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Because WK1 is a single process, scheduleCompositingLayerFlush() has to >+ run immediately when an update is needed. Otherwise no content will be >+ draw for the current frame. Doing this will get smooth scrolling back >+ to WK1. >+ >+ RenderLayerCompositor::scheduleLayerFlush() now calls >+ RenderingUpdateScheduler::schedulePerScreenRenderingUpdate() which either >+ calls scheduleImmediateRenderingUpdate() or calls scheduleRenderingUpdate(). >+ WK1 will call the former and WK2 will call the later. >+ >+ * page/ChromeClient.h: >+ * page/RenderingUpdateScheduler.cpp: >+ (WebCore::RenderingUpdateScheduler::scheduleRenderingUpdate): >+ (WebCore::RenderingUpdateScheduler::displayRefreshFired): >+ (WebCore::RenderingUpdateScheduler::scheduleImmediateRenderingUpdate): >+ (WebCore::RenderingUpdateScheduler::schedulePerScreenRenderingUpdate): >+ (WebCore::RenderingUpdateScheduler::scheduleCompositingLayerFlush): Deleted. >+ * page/RenderingUpdateScheduler.h: >+ * rendering/RenderLayerCompositor.cpp: >+ (WebCore::RenderLayerCompositor::scheduleLayerFlush): >+ (WebCore::RenderLayerCompositor::layerTreeAsText): >+ > 2019-06-07 Zalan Bujtas <zalan@apple.com> > > Images are not resizing correctly when dragged to a message in 1/3 view >Index: Source/WebCore/page/ChromeClient.h >=================================================================== >--- Source/WebCore/page/ChromeClient.h (revision 246202) >+++ Source/WebCore/page/ChromeClient.h (working copy) >@@ -320,6 +320,7 @@ public: > // Sets a flag to specify that the view needs to be updated, so we need > // to do an eager layout before the drawing. > virtual void scheduleCompositingLayerFlush() = 0; >+ virtual bool needsImmediateScheduleCompositingLayerFlush() const { return false; } > // Returns whether or not the client can render the composited layer, > // regardless of the settings. > virtual bool allowsAcceleratedCompositing() const { return true; } >Index: Source/WebCore/page/RenderingUpdateScheduler.cpp >=================================================================== >--- Source/WebCore/page/RenderingUpdateScheduler.cpp (revision 246202) >+++ Source/WebCore/page/RenderingUpdateScheduler.cpp (working copy) >@@ -49,7 +49,7 @@ void RenderingUpdateScheduler::scheduleR > > // Optimize the case when an invisible page wants just to schedule layer flush. > if (!m_page.isVisible()) { >- scheduleCompositingLayerFlush(); >+ scheduleImmediateRenderingUpdate(); > return; > } > >@@ -102,12 +102,20 @@ void RenderingUpdateScheduler::displayRe > tracePoint(TriggerRenderingUpdate); > > clearScheduled(); >- scheduleCompositingLayerFlush(); >+ scheduleImmediateRenderingUpdate(); > } > >-void RenderingUpdateScheduler::scheduleCompositingLayerFlush() >+void RenderingUpdateScheduler::scheduleImmediateRenderingUpdate() > { > m_page.chrome().client().scheduleCompositingLayerFlush(); > } > >+void RenderingUpdateScheduler::schedulePerScreenRenderingUpdate() >+{ >+ if (m_page.chrome().client().needsImmediateScheduleCompositingLayerFlush()) >+ scheduleImmediateRenderingUpdate(); >+ else >+ scheduleRenderingUpdate(); >+} >+ > } >Index: Source/WebCore/page/RenderingUpdateScheduler.h >=================================================================== >--- Source/WebCore/page/RenderingUpdateScheduler.h (revision 246202) >+++ Source/WebCore/page/RenderingUpdateScheduler.h (working copy) >@@ -47,7 +47,8 @@ public: > > RenderingUpdateScheduler(Page&); > void scheduleRenderingUpdate(); >- void scheduleCompositingLayerFlush(); >+ void scheduleImmediateRenderingUpdate(); >+ void schedulePerScreenRenderingUpdate(); > > private: > #if USE(REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR) >Index: Source/WebCore/rendering/RenderLayerCompositor.cpp >=================================================================== >--- Source/WebCore/rendering/RenderLayerCompositor.cpp (revision 246202) >+++ Source/WebCore/rendering/RenderLayerCompositor.cpp (working copy) >@@ -466,7 +466,7 @@ void RenderLayerCompositor::scheduleLaye > m_hasPendingLayerFlush = true; > else { > m_hasPendingLayerFlush = false; >- page().renderingUpdateScheduler().scheduleRenderingUpdate(); >+ page().renderingUpdateScheduler().schedulePerScreenRenderingUpdate(); > } > } > >@@ -2061,7 +2061,7 @@ String RenderLayerCompositor::layerTreeA > return String(); > > flushPendingLayerChanges(true); >- page().renderingUpdateScheduler().scheduleCompositingLayerFlush(); >+ page().renderingUpdateScheduler().scheduleImmediateRenderingUpdate(); > > LayerTreeAsTextBehavior layerTreeBehavior = LayerTreeAsTextBehaviorNormal; > if (flags & LayerTreeFlagsIncludeDebugInfo) >Index: Source/WebKitLegacy/mac/ChangeLog >=================================================================== >--- Source/WebKitLegacy/mac/ChangeLog (revision 246202) >+++ Source/WebKitLegacy/mac/ChangeLog (working copy) >@@ -1 +1,13 @@ >+2019-06-07 Said Abou-Hallawa <sabouhallawa@apple.com> >+ >+ REGRESSION (r244182) [WK1]: Page updates should always scheduleCompositingLayerFlush() immediately >+ https://bugs.webkit.org/show_bug.cgi?id=198664 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ WK1 needs to skip using DisplayRefreshMonitor when updating the page. >+ >+ * WebCoreSupport/WebChromeClient.h: >+ (WebChromeClient::needsImmediateScheduleCompositingLayerFlush): >+ > == Rolled over to ChangeLog-2019-06-05 == >Index: Source/WebKitLegacy/mac/WebCoreSupport/WebChromeClient.h >=================================================================== >--- Source/WebKitLegacy/mac/WebCoreSupport/WebChromeClient.h (revision 246202) >+++ Source/WebKitLegacy/mac/WebCoreSupport/WebChromeClient.h (working copy) >@@ -176,6 +176,7 @@ private: > void attachViewOverlayGraphicsLayer(WebCore::GraphicsLayer*) final; > void setNeedsOneShotDrawingSynchronization() final; > void scheduleCompositingLayerFlush() final; >+ bool needsImmediateScheduleCompositingLayerFlush() const final { return true; } > > CompositingTriggerFlags allowedCompositingTriggers() const final > { >Index: Source/WebKitLegacy/win/ChangeLog >=================================================================== >--- Source/WebKitLegacy/win/ChangeLog (revision 246206) >+++ Source/WebKitLegacy/win/ChangeLog (working copy) >@@ -1,3 +1,14 @@ >+2019-06-07 Said Abou-Hallawa <sabouhallawa@apple.com> >+ >+ REGRESSION (r244182) [WK1]: Page updates should always scheduleCompositingLayerFlush() immediately >+ https://bugs.webkit.org/show_bug.cgi?id=198664 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ WK1 needs to skip using DisplayRefreshMonitor when updating the page. >+ >+ * WebCoreSupport/WebChromeClient.h: >+ > 2019-05-31 Don Olmstead <don.olmstead@sony.com> > > [CMake] Add WebKit::WTF target >Index: Source/WebKitLegacy/win/WebCoreSupport/WebChromeClient.h >=================================================================== >--- Source/WebKitLegacy/win/WebCoreSupport/WebChromeClient.h (revision 246202) >+++ Source/WebKitLegacy/win/WebCoreSupport/WebChromeClient.h (working copy) >@@ -133,6 +133,7 @@ public: > // Sets a flag to specify that the view needs to be updated, so we need > // to do an eager layout before the drawing. > void scheduleCompositingLayerFlush() final; >+ bool needsImmediateScheduleCompositingLayerFlush() const final { return true; } > > #if PLATFORM(WIN) && USE(AVFOUNDATION) > WebCore::GraphicsDeviceAdapter* graphicsDeviceAdapter() const final; >Index: Tools/ChangeLog >=================================================================== >--- Tools/ChangeLog (revision 246210) >+++ Tools/ChangeLog (working copy) >@@ -1,3 +1,14 @@ >+2019-06-07 Said Abou-Hallawa <sabouhallawa@apple.com> >+ >+ REGRESSION (r244182) [WK1]: Page updates should always scheduleCompositingLayerFlush() immediately >+ https://bugs.webkit.org/show_bug.cgi?id=198664 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Delete repeated entries which were submitted by mistake. >+ >+ * Tracing/SystemTracePoints.plist: >+ > 2019-06-07 Wenson Hsieh <wenson_hsieh@apple.com> > > [iOS] At least 6 API tests are failing due to an exception when writing NSAttributedString to the pasteboard >Index: Tools/Tracing/SystemTracePoints.plist >=================================================================== >--- Tools/Tracing/SystemTracePoints.plist (revision 246202) >+++ Tools/Tracing/SystemTracePoints.plist (working copy) >@@ -262,38 +262,6 @@ > </dict> > <dict> > <key>Name</key> >- <string>Schedule rendering update</string> >- <key>Type</key> >- <string>Impulse</string> >- <key>Component</key> >- <string>47</string> >- <key>Code</key> >- <string>5028</string> >- </dict> >- <dict> >- <key>Name</key> >- <string>Trigger rendering update</string> >- <key>Type</key> >- <string>Impulse</string> >- <key>Component</key> >- <string>47</string> >- <key>Code</key> >- <string>5029</string> >- </dict> >- <dict> >- <key>Name</key> >- <string>Rendering update</string> >- <key>Type</key> >- <string>Interval</string> >- <key>Component</key> >- <string>47</string> >- <key>CodeBegin</key> >- <string>5030</string> >- <key>CodeEnd</key> >- <string>5031</string> >- </dict> >- <dict> >- <key>Name</key> > <string>Paint WebHTMLView</string> > <key>Type</key> > <string>Interval</string>
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 198664
:
371594
|
371603
|
371626
|
371638
|
371642
|
371644