Diff
Modified: trunk/Source/WTF/ChangeLog (217861 => 217862)
--- trunk/Source/WTF/ChangeLog 2017-06-06 22:20:16 UTC (rev 217861)
+++ trunk/Source/WTF/ChangeLog 2017-06-06 22:29:45 UTC (rev 217862)
@@ -1,3 +1,12 @@
+2017-06-06 Don Olmstead <[email protected]>
+
+ [WebCore] Enable REQUEST_ANIMATION_FRAME_TIMER for all ports
+ https://bugs.webkit.org/show_bug.cgi?id=172780
+
+ Reviewed by Alex Christensen.
+
+ * wtf/Platform.h:
+
2017-06-06 Darin Adler <[email protected]>
Cut down use of WTF_ARRAY_LENGTH
Modified: trunk/Source/WTF/wtf/Platform.h (217861 => 217862)
--- trunk/Source/WTF/wtf/Platform.h 2017-06-06 22:20:16 UTC (rev 217861)
+++ trunk/Source/WTF/wtf/Platform.h 2017-06-06 22:29:45 UTC (rev 217862)
@@ -1101,10 +1101,6 @@
#define USE_VIDEOTOOLBOX 1
#endif
-#if PLATFORM(COCOA) || PLATFORM(GTK) || PLATFORM(WPE) || (PLATFORM(WIN) && !USE(WINGDI))
-#define USE_REQUEST_ANIMATION_FRAME_TIMER 1
-#endif
-
#if PLATFORM(COCOA) || PLATFORM(GTK) || PLATFORM(WPE)
#define USE_REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR 1
#endif
Modified: trunk/Source/WebCore/ChangeLog (217861 => 217862)
--- trunk/Source/WebCore/ChangeLog 2017-06-06 22:20:16 UTC (rev 217861)
+++ trunk/Source/WebCore/ChangeLog 2017-06-06 22:29:45 UTC (rev 217862)
@@ -1,3 +1,36 @@
+2017-06-06 Don Olmstead <[email protected]>
+
+ [WebCore] Enable REQUEST_ANIMATION_FRAME_TIMER for all ports
+ https://bugs.webkit.org/show_bug.cgi?id=172780
+
+ Reviewed by Alex Christensen.
+
+ No new tests. No change in behavior.
+
+ * dom/ScriptedAnimationController.cpp:
+ (WebCore::ScriptedAnimationController::ScriptedAnimationController):
+ (WebCore::ScriptedAnimationController::addThrottlingReason):
+ (WebCore::ScriptedAnimationController::removeThrottlingReason):
+ (WebCore::ScriptedAnimationController::isThrottled):
+ (WebCore::ScriptedAnimationController::interval):
+ (WebCore::ScriptedAnimationController::scheduleAnimation):
+ (WebCore::ScriptedAnimationController::displayRefreshFired):
+ * dom/ScriptedAnimationController.h:
+ * loader/EmptyClients.h:
+ * page/Chrome.cpp:
+ (WebCore::Chrome::scheduleAnimation): Deleted.
+ * page/Chrome.h:
+ * page/ChromeClient.h:
+ * platform/Curl.cmake: Added.
+ * platform/ScrollAnimationSmooth.cpp:
+ (WebCore::ScrollAnimationSmooth::ScrollAnimationSmooth):
+ (WebCore::ScrollAnimationSmooth::stop):
+ (WebCore::ScrollAnimationSmooth::animationTimerFired):
+ (WebCore::ScrollAnimationSmooth::startNextTimer):
+ (WebCore::ScrollAnimationSmooth::animationTimerActive):
+ (WebCore::ScrollAnimationSmooth::serviceAnimation): Deleted.
+ * platform/ScrollAnimationSmooth.h:
+
2017-06-06 Darin Adler <[email protected]>
Cut down use of WTF_ARRAY_LENGTH
Modified: trunk/Source/WebCore/dom/ScriptedAnimationController.cpp (217861 => 217862)
--- trunk/Source/WebCore/dom/ScriptedAnimationController.cpp 2017-06-06 22:20:16 UTC (rev 217861)
+++ trunk/Source/WebCore/dom/ScriptedAnimationController.cpp 2017-06-06 22:29:45 UTC (rev 217862)
@@ -38,20 +38,17 @@
#include "Page.h"
#include "RequestAnimationFrameCallback.h"
#include "Settings.h"
+#include <algorithm>
+#include <wtf/CurrentTime.h>
#include <wtf/Ref.h>
#include <wtf/SystemTracing.h>
#include <wtf/text/StringBuilder.h>
-#if USE(REQUEST_ANIMATION_FRAME_TIMER)
-#include <algorithm>
-#include <wtf/CurrentTime.h>
-
// Allow a little more than 60fps to make sure we can at least hit that frame rate.
static const Seconds fullSpeedAnimationInterval { 15_ms };
// Allow a little more than 30fps to make sure we can at least hit that frame rate.
static const Seconds halfSpeedThrottlingAnimationInterval { 30_ms };
static const Seconds aggressiveThrottlingAnimationInterval { 10_s };
-#endif
#define RELEASE_LOG_IF_ALLOWED(fmt, ...) RELEASE_LOG_IF(page() && page()->isAlwaysOnLoggingAllowed(), PerformanceLogging, "%p - ScriptedAnimationController::" fmt, this, ##__VA_ARGS__)
@@ -59,9 +56,7 @@
ScriptedAnimationController::ScriptedAnimationController(Document& document, PlatformDisplayID displayID)
: m_document(&document)
-#if USE(REQUEST_ANIMATION_FRAME_TIMER)
, m_animationTimer(*this, &ScriptedAnimationController::animationTimerFired)
-#endif
{
windowScreenDidChange(displayID);
}
@@ -91,7 +86,7 @@
scheduleAnimation();
}
-#if USE(REQUEST_ANIMATION_FRAME_TIMER) && USE(REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR) && !RELEASE_LOG_DISABLED
+#if USE(REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR) && !RELEASE_LOG_DISABLED
static const char* throttlingReasonToString(ScriptedAnimationController::ThrottlingReason reason)
{
@@ -125,7 +120,7 @@
void ScriptedAnimationController::addThrottlingReason(ThrottlingReason reason)
{
-#if USE(REQUEST_ANIMATION_FRAME_TIMER) && USE(REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR)
+#if USE(REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR)
if (m_throttlingReasons.contains(reason))
return;
@@ -144,7 +139,7 @@
void ScriptedAnimationController::removeThrottlingReason(ThrottlingReason reason)
{
-#if USE(REQUEST_ANIMATION_FRAME_TIMER) && USE(REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR)
+#if USE(REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR)
if (!m_throttlingReasons.contains(reason))
return;
@@ -163,7 +158,7 @@
bool ScriptedAnimationController::isThrottled() const
{
-#if USE(REQUEST_ANIMATION_FRAME_TIMER) && USE(REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR)
+#if USE(REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR)
return !m_throttlingReasons.isEmpty();
#else
return false;
@@ -251,7 +246,7 @@
Seconds ScriptedAnimationController::interval() const
{
-#if USE(REQUEST_ANIMATION_FRAME_TIMER) && USE(REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR)
+#if USE(REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR)
if (m_throttlingReasons.contains(ThrottlingReason::VisuallyIdle) || m_throttlingReasons.contains(ThrottlingReason::OutsideViewport))
return aggressiveThrottlingAnimationInterval;
@@ -276,7 +271,6 @@
if (!requestAnimationFrameEnabled())
return;
-#if USE(REQUEST_ANIMATION_FRAME_TIMER)
#if USE(REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR)
if (!m_isUsingTimer && !isThrottled()) {
if (DisplayRefreshMonitorManager::sharedManager().scheduleAnimation(*this))
@@ -304,29 +298,20 @@
}
m_animationTimer.startOneShot(scheduleDelay);
-
-#else
- if (FrameView* frameView = m_document->view())
- frameView->scheduleAnimation();
-#endif
}
-#if USE(REQUEST_ANIMATION_FRAME_TIMER)
void ScriptedAnimationController::animationTimerFired()
{
m_lastAnimationFrameTimestamp = m_document->domWindow()->nowTimestamp();
serviceScriptedAnimations(m_lastAnimationFrameTimestamp);
}
+
#if USE(REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR)
void ScriptedAnimationController::displayRefreshFired()
{
serviceScriptedAnimations(m_document->domWindow()->nowTimestamp());
}
-#endif
-#endif
-
-#if USE(REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR)
RefPtr<DisplayRefreshMonitor> ScriptedAnimationController::createDisplayRefreshMonitor(PlatformDisplayID displayID) const
{
if (!m_document->page())
Modified: trunk/Source/WebCore/dom/ScriptedAnimationController.h (217861 => 217862)
--- trunk/Source/WebCore/dom/ScriptedAnimationController.h 2017-06-06 22:20:16 UTC (rev 217861)
+++ trunk/Source/WebCore/dom/ScriptedAnimationController.h 2017-06-06 22:29:45 UTC (rev 217862)
@@ -27,6 +27,7 @@
#include "DOMTimeStamp.h"
#include "PlatformScreen.h"
+#include "Timer.h"
#include <wtf/OptionSet.h>
#include <wtf/RefCounted.h>
#include <wtf/RefPtr.h>
@@ -33,11 +34,7 @@
#include <wtf/Vector.h>
#include <wtf/text/AtomicString.h>
-#if USE(REQUEST_ANIMATION_FRAME_TIMER)
-#include "Timer.h"
-#endif
-
-#if USE(REQUEST_ANIMATION_FRAME_TIMER) && USE(REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR)
+#if USE(REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR)
#include "Chrome.h"
#include "ChromeClient.h"
#include "DisplayRefreshMonitorClient.h"
@@ -98,14 +95,11 @@
int m_suspendCount { 0 };
void scheduleAnimation();
-
-#if USE(REQUEST_ANIMATION_FRAME_TIMER)
void animationTimerFired();
Timer m_animationTimer;
double m_lastAnimationFrameTimestamp { 0 };
-#endif
-#if USE(REQUEST_ANIMATION_FRAME_TIMER) && USE(REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR)
+#if USE(REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR)
// Override for DisplayRefreshMonitorClient
void displayRefreshFired() override;
RefPtr<DisplayRefreshMonitor> createDisplayRefreshMonitor(PlatformDisplayID) const override;
Modified: trunk/Source/WebCore/loader/EmptyClients.h (217861 => 217862)
--- trunk/Source/WebCore/loader/EmptyClients.h 2017-06-06 22:20:16 UTC (rev 217861)
+++ trunk/Source/WebCore/loader/EmptyClients.h 2017-06-06 22:29:45 UTC (rev 217862)
@@ -112,10 +112,6 @@
void resetUpdateAtlasForTesting() final { }
#endif
-#if !USE(REQUEST_ANIMATION_FRAME_TIMER)
- void scheduleAnimation() final { }
-#endif
-
IntPoint screenToRootView(const IntPoint& p) const final { return p; }
IntRect rootViewToScreen(const IntRect& r) const final { return r; }
Modified: trunk/Source/WebCore/page/Chrome.cpp (217861 => 217862)
--- trunk/Source/WebCore/page/Chrome.cpp 2017-06-06 22:20:16 UTC (rev 217861)
+++ trunk/Source/WebCore/page/Chrome.cpp 2017-06-06 22:29:45 UTC (rev 217862)
@@ -474,13 +474,6 @@
#endif
}
-void Chrome::scheduleAnimation()
-{
-#if !USE(REQUEST_ANIMATION_FRAME_TIMER)
- m_client.scheduleAnimation();
-#endif
-}
-
PlatformDisplayID Chrome::displayID() const
{
return m_displayID;
Modified: trunk/Source/WebCore/page/Chrome.h (217861 => 217862)
--- trunk/Source/WebCore/page/Chrome.h 2017-06-06 22:20:16 UTC (rev 217861)
+++ trunk/Source/WebCore/page/Chrome.h 2017-06-06 22:29:45 UTC (rev 217862)
@@ -85,7 +85,7 @@
void setCursor(const Cursor&) override;
void setCursorHiddenUntilMouseMoves(bool) override;
- void scheduleAnimation() override;
+ void scheduleAnimation() override { }
PlatformDisplayID displayID() const override;
void windowScreenDidChange(PlatformDisplayID) override;
Modified: trunk/Source/WebCore/page/ChromeClient.h (217861 => 217862)
--- trunk/Source/WebCore/page/ChromeClient.h 2017-06-06 22:20:16 UTC (rev 217861)
+++ trunk/Source/WebCore/page/ChromeClient.h 2017-06-06 22:29:45 UTC (rev 217862)
@@ -185,10 +185,6 @@
virtual void setCursorHiddenUntilMouseMoves(bool) = 0;
#endif
-#if !USE(REQUEST_ANIMATION_FRAME_TIMER)
- virtual void scheduleAnimation() = 0;
-#endif
-
virtual FloatSize screenSize() const { return const_cast<ChromeClient&>(*this).windowRect().size(); }
virtual FloatSize availableScreenSize() const { return const_cast<ChromeClient&>(*this).windowRect().size(); }
Modified: trunk/Source/WebCore/platform/ScrollAnimationSmooth.cpp (217861 => 217862)
--- trunk/Source/WebCore/platform/ScrollAnimationSmooth.cpp 2017-06-06 22:20:16 UTC (rev 217861)
+++ trunk/Source/WebCore/platform/ScrollAnimationSmooth.cpp 2017-06-06 22:29:45 UTC (rev 217862)
@@ -45,11 +45,7 @@
, m_notifyPositionChangedFunction(WTFMove(notifyPositionChangedFunction))
, m_horizontalData(position.x(), scrollableArea.visibleWidth())
, m_verticalData(position.y(), scrollableArea.visibleHeight())
-#if USE(REQUEST_ANIMATION_FRAME_TIMER)
, m_animationTimer(*this, &ScrollAnimationSmooth::animationTimerFired)
-#else
- , m_animationActive(false)
-#endif
{
}
@@ -74,11 +70,7 @@
void ScrollAnimationSmooth::stop()
{
-#if USE(REQUEST_ANIMATION_FRAME_TIMER)
m_animationTimer.stop();
-#else
- m_animationActive = false;
-#endif
}
void ScrollAnimationSmooth::updateVisibleLengths()
@@ -94,14 +86,6 @@
m_verticalData = PerAxisData(position.y(), m_verticalData.visibleLength);
}
-#if !USE(REQUEST_ANIMATION_FRAME_TIMER)
-void ScrollAnimationSmooth::serviceAnimation()
-{
- if (m_animationActive)
- animationTimerFired();
-}
-#endif
-
ScrollAnimationSmooth::~ScrollAnimationSmooth()
{
}
@@ -410,37 +394,19 @@
continueAnimation = true;
if (continueAnimation)
-#if USE(REQUEST_ANIMATION_FRAME_TIMER)
startNextTimer(std::max(minimumTimerInterval, deltaToNextFrame));
-#else
- startNextTimer();
- else
- m_animationActive = false;
-#endif
m_notifyPositionChangedFunction(FloatPoint(m_horizontalData.currentPosition, m_verticalData.currentPosition));
}
-#if USE(REQUEST_ANIMATION_FRAME_TIMER)
void ScrollAnimationSmooth::startNextTimer(Seconds delay)
{
m_animationTimer.startOneShot(delay);
}
-#else
-void ScrollAnimationSmooth::startNextTimer()
-{
- if (m_scrollableArea.scheduleAnimation())
- m_animationActive = true;
-}
-#endif
bool ScrollAnimationSmooth::animationTimerActive() const
{
-#if USE(REQUEST_ANIMATION_FRAME_TIMER)
return m_animationTimer.isActive();
-#else
- return m_animationActive;
-#endif
}
} // namespace WebCore
Modified: trunk/Source/WebCore/platform/ScrollAnimationSmooth.h (217861 => 217862)
--- trunk/Source/WebCore/platform/ScrollAnimationSmooth.h 2017-06-06 22:20:16 UTC (rev 217861)
+++ trunk/Source/WebCore/platform/ScrollAnimationSmooth.h 2017-06-06 22:29:45 UTC (rev 217862)
@@ -23,8 +23,7 @@
* THE POSSIBILITY OF SUCH DAMAGE.
*/
-#ifndef ScrollAnimationSmooth_h
-#define ScrollAnimationSmooth_h
+#pragma once
#include "ScrollAnimation.h"
@@ -55,9 +54,6 @@
void stop() override;
void updateVisibleLengths() override;
void setCurrentPosition(const FloatPoint&) override;
-#if !USE(REQUEST_ANIMATION_FRAME_TIMER)
- void serviceAnimation() override;
-#endif
struct PerAxisData {
PerAxisData() = delete;
@@ -96,12 +92,8 @@
bool updatePerAxisData(PerAxisData&, ScrollGranularity, float delta, float minScrollPosition, float maxScrollPosition);
bool animateScroll(PerAxisData&, MonotonicTime currentTime);
-#if USE(REQUEST_ANIMATION_FRAME_TIMER)
void requestAnimationTimerFired();
void startNextTimer(Seconds delay);
-#else
- void startNextTimer();
-#endif
void animationTimerFired();
bool animationTimerActive() const;
@@ -111,15 +103,9 @@
PerAxisData m_verticalData;
MonotonicTime m_startTime;
-#if USE(REQUEST_ANIMATION_FRAME_TIMER)
Timer m_animationTimer;
-#else
- bool m_animationActive { false };
-#endif
-
};
} // namespace WebCore
#endif // ENABLE(SMOOTH_SCROLLING)
-#endif // ScrollAnimationSmooth_h
Modified: trunk/Source/WebKit2/ChangeLog (217861 => 217862)
--- trunk/Source/WebKit2/ChangeLog 2017-06-06 22:20:16 UTC (rev 217861)
+++ trunk/Source/WebKit2/ChangeLog 2017-06-06 22:29:45 UTC (rev 217862)
@@ -1,3 +1,16 @@
+2017-06-06 Don Olmstead <[email protected]>
+
+ [WebCore] Enable REQUEST_ANIMATION_FRAME_TIMER for all ports
+ https://bugs.webkit.org/show_bug.cgi?id=172780
+
+ Reviewed by Alex Christensen.
+
+ * WebProcess/WebCoreSupport/WebChromeClient.cpp:
+ (WebKit::WebChromeClient::scheduleAnimation): Deleted.
+ * WebProcess/WebCoreSupport/WebChromeClient.h:
+ * WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp:
+ (WebKit::CompositingCoordinator::syncDisplayState):
+
2017-06-06 Beth Dakin <[email protected]>
Netflix seeking quirk should also apply to Now Playing, and should always use the
Modified: trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp (217861 => 217862)
--- trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp 2017-06-06 22:20:16 UTC (rev 217861)
+++ trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp 2017-06-06 22:29:45 UTC (rev 217862)
@@ -806,17 +806,6 @@
#endif
-#if !USE(REQUEST_ANIMATION_FRAME_TIMER)
-
-void WebChromeClient::scheduleAnimation()
-{
-#if USE(COORDINATED_GRAPHICS)
- m_page.drawingArea()->layerTreeHost()->scheduleAnimation();
-#endif
-}
-
-#endif
-
void WebChromeClient::didAssociateFormControls(const Vector<RefPtr<Element>>& elements)
{
return m_page.injectedBundleFormClient().didAssociateFormControls(&m_page, elements);
Modified: trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.h (217861 => 217862)
--- trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.h 2017-06-06 22:20:16 UTC (rev 217861)
+++ trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.h 2017-06-06 22:29:45 UTC (rev 217862)
@@ -189,10 +189,6 @@
void setCursorHiddenUntilMouseMoves(bool) final;
#endif
-#if !USE(REQUEST_ANIMATION_FRAME_TIMER)
- void scheduleAnimation() final;
-#endif
-
#if ENABLE(POINTER_LOCK)
bool requestPointerLock() final;
void requestPointerUnlock() final;
Modified: trunk/Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp (217861 => 217862)
--- trunk/Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp 2017-06-06 22:20:16 UTC (rev 217861)
+++ trunk/Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp 2017-06-06 22:29:45 UTC (rev 217862)
@@ -157,11 +157,6 @@
void CompositingCoordinator::syncDisplayState()
{
-#if !USE(REQUEST_ANIMATION_FRAME_TIMER) && !USE(REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR)
- // Make sure that any previously registered animation callbacks are being executed before we flush the layers.
- m_lastAnimationServiceTime = timestamp();
- m_page->mainFrame().view()->serviceScriptedAnimations();
-#endif
m_page->mainFrame().view()->updateLayoutAndStyleIfNeededRecursive();
}