-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Cherry-pick fa67a26. rdar://problem/110174274
Schedule rendering via RemoteLayerTreeDrawingArea directly, rather than using a 'fake' DisplayRefreshMonitor. https://bugs.webkit.org/show_bug.cgi?id=257290 <rdar://problem/109953504> Reviewed by Simon Fraser. RemoteLayerTreeDisplayRefreshMonitor is mostly just a wrapper around asking the RemoteLayerTreeDrawingArea to schedule when it wants to display next. This is specific to that drawing area, and can be throttled if the drawing area is failing to commit layer trees as fast as expected. DisplayRefreshMonitorManager caches DisplayRefreshMonitors, and shares them between all WebCore::Page/RenderingUpdateSchedulers on the same Display. This means if we have multiple RemoteLayerTreeDrawingAreas on the same display (and in the same process), we'll be sharing a single RemoteLayerTreeDisplayRefreshMonitor, driven at the effective rate of one of the drawing areas. If the first drawing area is trying to hit full frame rate, but rendering takes too long, it'll run at the fastest rate it can manage. Any other drawing areas that are using the shared display refresh monitor will then be throttled to that same rate, even if they could otherwise run at full speed. DrawingAreaCoordinatedGraphics is currently working around this by synthesizing a DisplayID for each drawing area, to prevent DisplayRefreshMonitor sharing. This change makes WebChromeClient pass the scheduleRenderingUpdate request onto RemoteLayerTreeDrawingArea directly, so we can avoid falling back to the RenderingUpdateScheduler/DisplayRefreshMonitor implementation. RemoteLayerTreeDisplayRefreshMonitor is removed, since it should never be used. * Source/WebCore/page/ChromeClient.h: (WebCore::ChromeClient::renderingUpdateFrequencyChanged): * Source/WebCore/page/Page.cpp: (WebCore::Page::windowScreenDidChange): (WebCore::Page::triggerRenderingUpdateForTesting): (WebCore::Page::timelineControllerMaximumAnimationFrameRateDidChange): (WebCore::Page::setIsVisuallyIdleInternal): (WebCore::Page::handleLowModePowerChange): * Source/WebCore/page/Page.h: * Source/WebCore/page/RenderingUpdateScheduler.cpp: (WebCore::RenderingUpdateScheduler::triggerRenderingUpdateForTesting): Deleted. * Source/WebCore/page/RenderingUpdateScheduler.h: * Source/WebKit/SourcesCocoa.txt: * Source/WebKit/WebKit.xcodeproj/project.pbxproj: * Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp: (WebKit::WebChromeClient::scheduleRenderingUpdate): (WebKit::WebChromeClient::renderingUpdateFrequencyChanged): * Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.h: * Source/WebKit/WebProcess/WebPage/DrawingArea.h: (WebKit::DrawingArea::scheduleRenderingUpdate): (WebKit::DrawingArea::renderingUpdateFrequencyChanged): * Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDisplayRefreshMonitor.h: Removed. * Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDisplayRefreshMonitor.mm: Removed. * Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h: * Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm: (WebKit::RemoteLayerTreeDrawingArea::RemoteLayerTreeDrawingArea): (WebKit::RemoteLayerTreeDrawingArea::createDisplayRefreshMonitor): (WebKit::RemoteLayerTreeDrawingArea::displayDidRefresh): (WebKit::RemoteLayerTreeDrawingArea::scheduleRenderingUpdate): (WebKit::RemoteLayerTreeDrawingArea::renderingUpdateFrequencyChanged): (WebKit::RemoteLayerTreeDrawingArea::willDestroyDisplayRefreshMonitor): Deleted. (WebKit::RemoteLayerTreeDrawingArea::adoptDisplayRefreshMonitorsFromDrawingArea): Deleted. Canonical link: https://commits.webkit.org/264920@main Identifier: 263322.1543@safari-7616.1.17-branch
- Loading branch information
1 parent
357fffd
commit 918db9d
Showing
14 changed files
with
100 additions
and
245 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
64 changes: 0 additions & 64 deletions
64
Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDisplayRefreshMonitor.h
This file was deleted.
Oops, something went wrong.
116 changes: 0 additions & 116 deletions
116
Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDisplayRefreshMonitor.mm
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.