[webkit-reviews] review granted: [Bug 204713] Throttling requestAnimationFrame should be controlled by RenderingUpdateScheduler : [Attachment 385114] Patch

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Mon Dec 9 10:23:35 PST 2019


Simon Fraser (smfr) <simon.fraser at apple.com> has granted Said Abou-Hallawa
<sabouhallawa at apple.com>'s request for review:
Bug 204713: Throttling requestAnimationFrame should be controlled by
RenderingUpdateScheduler
https://bugs.webkit.org/show_bug.cgi?id=204713

Attachment 385114: Patch

https://bugs.webkit.org/attachment.cgi?id=385114&action=review




--- Comment #15 from Simon Fraser (smfr) <simon.fraser at apple.com> ---
Comment on attachment 385114
  --> https://bugs.webkit.org/attachment.cgi?id=385114
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=385114&action=review

> Source/WebCore/dom/ScriptedAnimationController.h:66
>      WEBCORE_EXPORT bool isThrottled() const;

Does anyone still call isThrottled()?

> Source/WebCore/page/RenderingUpdateScheduler.cpp:45
> +#if USE(REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR) && PLATFORM(IOS)

PLATFORM(IOS_FAMILY)

> Source/WebCore/page/RenderingUpdateScheduler.cpp:49
> +    if (interval < 1_s)

Why is 1_s special? Doesn't DisplayRefreshMonitorManager handle any refresh
rate?

> Source/WebCore/page/RenderingUpdateScheduler.cpp:56
> +#if USE(REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR) && PLATFORM(IOS)

PLATFORM(IOS_FAMILY)

> Source/WebCore/page/RenderingUpdateScheduler.cpp:81
> +    if (interval < 1_s) {

Same weird cutoff.

> Source/WebCore/page/RenderingUpdateScheduler.cpp:82
> +#if PLATFORM(IOS)

PLATFORM(IOS_FAMILY)

> Source/WebCore/page/RenderingUpdateScheduler.h:57
> +#if PLATFORM(IOS)

PLATFORM(IOS_FAMILY)

> Source/WebCore/page/RenderingUpdateScheduler.h:74
> +#if USE(REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR) && PLATFORM(IOS)

PLATFORM(IOS_FAMILY)

> Source/WebCore/page/RenderingUpdateScheduler.h:75
> +    std::once_flag m_createdMonitor;

These are always static.

> Source/WebCore/platform/graphics/AnimationFrameRate.h:48
> +constexpr const FramesPerSecond ZeroFramesPerSecond = 60;

This is very confusing.

> Source/WebCore/platform/graphics/AnimationFrameRate.h:50
> +constexpr const FramesPerSecond MaxFramesPerSecond = 60;

Maybe FullSpeedFramesPerSecond.

> Source/WebCore/platform/graphics/DisplayRefreshMonitorManager.cpp:60
> -    LOG(RequestAnimationFrame,
"DisplayRefreshMonitorManager::createMonitorForClient() - created monitor %p",
monitor.get());
> +    LOG(RequestAnimationFrame,
"DisplayRefreshMonitorManager::monitorForClient() - created monitor %p",
monitor.get());

This is createMonitorForClient


More information about the webkit-reviews mailing list