Diff
Modified: trunk/Source/WebCore/ChangeLog (257995 => 257996)
--- trunk/Source/WebCore/ChangeLog 2020-03-06 14:49:38 UTC (rev 257995)
+++ trunk/Source/WebCore/ChangeLog 2020-03-06 16:05:53 UTC (rev 257996)
@@ -1,3 +1,39 @@
+2020-03-05 Simon Fraser <simon.fra...@apple.com>
+
+ Use an OptionSet<> for SynchronousScrollingReasons
+ https://bugs.webkit.org/show_bug.cgi?id=208697
+
+ Reviewed by Antti Koivisto.
+
+ Convert SynchronousScrollingReasons to an OptionSet<SynchronousScrollingReason>.
+
+ * page/PerformanceLoggingClient.cpp:
+ (WebCore::PerformanceLoggingClient::synchronousScrollingReasonsAsString):
+ * page/PerformanceLoggingClient.h:
+ * page/scrolling/AsyncScrollingCoordinator.cpp:
+ (WebCore::AsyncScrollingCoordinator::setSynchronousScrollingReasons):
+ (WebCore::AsyncScrollingCoordinator::reportSynchronousScrollingReasonsChanged):
+ * page/scrolling/AsyncScrollingCoordinator.h:
+ * page/scrolling/ScrollingCoordinator.cpp:
+ (WebCore::ScrollingCoordinator::synchronousScrollingReasons const):
+ (WebCore::ScrollingCoordinator::shouldUpdateScrollLayerPositionSynchronously const):
+ (WebCore::ScrollingCoordinator::synchronousScrollingReasonsAsText):
+ * page/scrolling/ScrollingCoordinator.h:
+ (WebCore::ScrollingCoordinator::setSynchronousScrollingReasons):
+ * page/scrolling/ScrollingCoordinatorTypes.h:
+ * page/scrolling/ScrollingStateFrameScrollingNode.cpp:
+ (WebCore::ScrollingStateFrameScrollingNode::setSynchronousScrollingReasons):
+ (WebCore::ScrollingStateFrameScrollingNode::dumpProperties const):
+ * page/scrolling/ScrollingStateFrameScrollingNode.h:
+ * page/scrolling/ScrollingTree.h:
+ (WebCore::ScrollingTree::reportSynchronousScrollingReasonsChanged):
+ * page/scrolling/ScrollingTreeFrameScrollingNode.cpp:
+ (WebCore::ScrollingTreeFrameScrollingNode::dumpProperties const):
+ * page/scrolling/ScrollingTreeFrameScrollingNode.h:
+ * page/scrolling/ThreadedScrollingTree.cpp:
+ (WebCore::ThreadedScrollingTree::reportSynchronousScrollingReasonsChanged):
+ * page/scrolling/ThreadedScrollingTree.h:
+
2020-03-06 Antoine Quint <grao...@webkit.org>
Remove the experimental flag for Pointer Events
Modified: trunk/Source/WebCore/page/PerformanceLoggingClient.cpp (257995 => 257996)
--- trunk/Source/WebCore/page/PerformanceLoggingClient.cpp 2020-03-06 14:49:38 UTC (rev 257995)
+++ trunk/Source/WebCore/page/PerformanceLoggingClient.cpp 2020-03-06 16:05:53 UTC (rev 257996)
@@ -26,27 +26,26 @@
#include "config.h"
#include "PerformanceLoggingClient.h"
-#include "ScrollingCoordinator.h"
#include <wtf/text/StringBuilder.h>
namespace WebCore {
-String PerformanceLoggingClient::synchronousScrollingReasonsAsString(SynchronousScrollingReasons synchronousScrollingReasons)
+String PerformanceLoggingClient::synchronousScrollingReasonsAsString(OptionSet<SynchronousScrollingReason> synchronousScrollingReasons)
{
- if (!synchronousScrollingReasons)
+ if (synchronousScrollingReasons.isEmpty())
return emptyString();
StringBuilder reasons;
- if (synchronousScrollingReasons & ScrollingCoordinator::ForcedOnMainThread)
+ if (synchronousScrollingReasons & SynchronousScrollingReason::ForcedOnMainThread)
reasons.appendLiteral("forced,");
- if (synchronousScrollingReasons & ScrollingCoordinator::HasSlowRepaintObjects)
+ if (synchronousScrollingReasons & SynchronousScrollingReason::HasSlowRepaintObjects)
reasons.appendLiteral("slow-repaint objects,");
- if (synchronousScrollingReasons & ScrollingCoordinator::HasViewportConstrainedObjectsWithoutSupportingFixedLayers)
+ if (synchronousScrollingReasons & SynchronousScrollingReason::HasViewportConstrainedObjectsWithoutSupportingFixedLayers)
reasons.appendLiteral("viewport-constrained objects,");
- if (synchronousScrollingReasons & ScrollingCoordinator::HasNonLayerViewportConstrainedObjects)
+ if (synchronousScrollingReasons & SynchronousScrollingReason::HasNonLayerViewportConstrainedObjects)
reasons.appendLiteral("non-layer viewport-constrained objects,");
- if (synchronousScrollingReasons & ScrollingCoordinator::IsImageDocument)
+ if (synchronousScrollingReasons & SynchronousScrollingReason::IsImageDocument)
reasons.appendLiteral("image document,");
// Strip the trailing comma.
Modified: trunk/Source/WebCore/page/PerformanceLoggingClient.h (257995 => 257996)
--- trunk/Source/WebCore/page/PerformanceLoggingClient.h 2020-03-06 14:49:38 UTC (rev 257995)
+++ trunk/Source/WebCore/page/PerformanceLoggingClient.h 2020-03-06 16:05:53 UTC (rev 257996)
@@ -25,14 +25,14 @@
#pragma once
+#include "ScrollingCoordinatorTypes.h"
#include <wtf/FastMalloc.h>
#include <wtf/MonotonicTime.h>
+#include <wtf/OptionSet.h>
#include <wtf/text/WTFString.h>
namespace WebCore {
-typedef unsigned SynchronousScrollingReasons;
-
class PerformanceLoggingClient {
WTF_MAKE_FAST_ALLOCATED;
public:
@@ -43,7 +43,7 @@
};
virtual void logScrollingEvent(ScrollingEvent, MonotonicTime, uint64_t) = 0;
- WEBCORE_EXPORT static String synchronousScrollingReasonsAsString(SynchronousScrollingReasons);
+ WEBCORE_EXPORT static String synchronousScrollingReasonsAsString(OptionSet<SynchronousScrollingReason>);
virtual ~PerformanceLoggingClient() = default;
};
Modified: trunk/Source/WebCore/page/scrolling/AsyncScrollingCoordinator.cpp (257995 => 257996)
--- trunk/Source/WebCore/page/scrolling/AsyncScrollingCoordinator.cpp 2020-03-06 14:49:38 UTC (rev 257995)
+++ trunk/Source/WebCore/page/scrolling/AsyncScrollingCoordinator.cpp 2020-03-06 16:05:53 UTC (rev 257996)
@@ -732,7 +732,7 @@
ASSERT_NOT_REACHED();
}
-void AsyncScrollingCoordinator::setSynchronousScrollingReasons(FrameView& frameView, SynchronousScrollingReasons reasons)
+void AsyncScrollingCoordinator::setSynchronousScrollingReasons(FrameView& frameView, OptionSet<SynchronousScrollingReason> reasons)
{
auto* scrollingStateNode = static_cast<ScrollingStateFrameScrollingNode*>(m_scrollingStateTree->stateNodeForID(frameView.scrollingNodeID()));
if (!scrollingStateNode)
@@ -868,10 +868,10 @@
m_page->performanceLoggingClient()->logScrollingEvent(PerformanceLoggingClient::ScrollingEvent::ExposedTilelessArea, timestamp, unfilledArea);
}
-void AsyncScrollingCoordinator::reportSynchronousScrollingReasonsChanged(MonotonicTime timestamp, SynchronousScrollingReasons reasons)
+void AsyncScrollingCoordinator::reportSynchronousScrollingReasonsChanged(MonotonicTime timestamp, OptionSet<SynchronousScrollingReason> reasons)
{
if (m_page && m_page->performanceLoggingClient())
- m_page->performanceLoggingClient()->logScrollingEvent(PerformanceLoggingClient::ScrollingEvent::SwitchedScrollingMode, timestamp, reasons);
+ m_page->performanceLoggingClient()->logScrollingEvent(PerformanceLoggingClient::ScrollingEvent::SwitchedScrollingMode, timestamp, reasons.toRaw());
}
} // namespace WebCore
Modified: trunk/Source/WebCore/page/scrolling/AsyncScrollingCoordinator.h (257995 => 257996)
--- trunk/Source/WebCore/page/scrolling/AsyncScrollingCoordinator.h 2020-03-06 14:49:38 UTC (rev 257995)
+++ trunk/Source/WebCore/page/scrolling/AsyncScrollingCoordinator.h 2020-03-06 16:05:53 UTC (rev 257996)
@@ -66,7 +66,7 @@
WEBCORE_EXPORT void updateIsMonitoringWheelEventsForFrameView(const FrameView&) override;
void reportExposedUnfilledArea(MonotonicTime, unsigned unfilledArea);
- void reportSynchronousScrollingReasonsChanged(MonotonicTime, SynchronousScrollingReasons);
+ void reportSynchronousScrollingReasonsChanged(MonotonicTime, OptionSet<SynchronousScrollingReason>);
protected:
WEBCORE_EXPORT AsyncScrollingCoordinator(Page*);
@@ -133,7 +133,7 @@
WEBCORE_EXPORT void reconcileViewportConstrainedLayerPositions(ScrollingNodeID, const LayoutRect& viewportRect, ScrollingLayerPositionAction) override;
WEBCORE_EXPORT void scrollableAreaScrollbarLayerDidChange(ScrollableArea&, ScrollbarOrientation) override;
- WEBCORE_EXPORT void setSynchronousScrollingReasons(FrameView&, SynchronousScrollingReasons) final;
+ WEBCORE_EXPORT void setSynchronousScrollingReasons(FrameView&, OptionSet<SynchronousScrollingReason>) final;
virtual void scheduleTreeStateCommit() = 0;
Modified: trunk/Source/WebCore/page/scrolling/ScrollingCoordinator.cpp (257995 => 257996)
--- trunk/Source/WebCore/page/scrolling/ScrollingCoordinator.cpp 2020-03-06 14:49:38 UTC (rev 257995)
+++ trunk/Source/WebCore/page/scrolling/ScrollingCoordinator.cpp 2020-03-06 16:05:53 UTC (rev 257996)
@@ -327,18 +327,18 @@
return false;
}
-SynchronousScrollingReasons ScrollingCoordinator::synchronousScrollingReasons(const FrameView& frameView) const
+OptionSet<SynchronousScrollingReason> ScrollingCoordinator::synchronousScrollingReasons(const FrameView& frameView) const
{
- SynchronousScrollingReasons synchronousScrollingReasons = (SynchronousScrollingReasons)0;
+ OptionSet<SynchronousScrollingReason> synchronousScrollingReasons;
if (m_forceSynchronousScrollLayerPositionUpdates)
- synchronousScrollingReasons |= ForcedOnMainThread;
+ synchronousScrollingReasons.add(SynchronousScrollingReason::ForcedOnMainThread);
if (frameView.hasSlowRepaintObjects())
- synchronousScrollingReasons |= HasSlowRepaintObjects;
+ synchronousScrollingReasons.add(SynchronousScrollingReason::HasSlowRepaintObjects);
if (hasVisibleSlowRepaintViewportConstrainedObjects(frameView))
- synchronousScrollingReasons |= HasNonLayerViewportConstrainedObjects;
+ synchronousScrollingReasons.add(SynchronousScrollingReason::HasNonLayerViewportConstrainedObjects);
if (frameView.frame().mainFrame().document() && frameView.frame().document()->isImageDocument())
- synchronousScrollingReasons |= IsImageDocument;
+ synchronousScrollingReasons.add(SynchronousScrollingReason::IsImageDocument);
return synchronousScrollingReasons;
}
@@ -371,7 +371,7 @@
bool ScrollingCoordinator::shouldUpdateScrollLayerPositionSynchronously(const FrameView& frameView) const
{
if (&frameView == m_page->mainFrame().view())
- return synchronousScrollingReasons(frameView);
+ return !synchronousScrollingReasons(frameView).isEmpty();
return true;
}
@@ -387,19 +387,19 @@
return String();
}
-String ScrollingCoordinator::synchronousScrollingReasonsAsText(SynchronousScrollingReasons reasons)
+String ScrollingCoordinator::synchronousScrollingReasonsAsText(OptionSet<SynchronousScrollingReason> reasons)
{
StringBuilder stringBuilder;
- if (reasons & ScrollingCoordinator::ForcedOnMainThread)
+ if (reasons & SynchronousScrollingReason::ForcedOnMainThread)
stringBuilder.appendLiteral("Forced on main thread, ");
- if (reasons & ScrollingCoordinator::HasSlowRepaintObjects)
+ if (reasons & SynchronousScrollingReason::HasSlowRepaintObjects)
stringBuilder.appendLiteral("Has slow repaint objects, ");
- if (reasons & ScrollingCoordinator::HasViewportConstrainedObjectsWithoutSupportingFixedLayers)
+ if (reasons & SynchronousScrollingReason::HasViewportConstrainedObjectsWithoutSupportingFixedLayers)
stringBuilder.appendLiteral("Has viewport constrained objects without supporting fixed layers, ");
- if (reasons & ScrollingCoordinator::HasNonLayerViewportConstrainedObjects)
+ if (reasons & SynchronousScrollingReason::HasNonLayerViewportConstrainedObjects)
stringBuilder.appendLiteral("Has non-layer viewport-constrained objects, ");
- if (reasons & ScrollingCoordinator::IsImageDocument)
+ if (reasons & SynchronousScrollingReason::IsImageDocument)
stringBuilder.appendLiteral("Is image document, ");
if (stringBuilder.length())
Modified: trunk/Source/WebCore/page/scrolling/ScrollingCoordinator.h (257995 => 257996)
--- trunk/Source/WebCore/page/scrolling/ScrollingCoordinator.h 2020-03-06 14:49:38 UTC (rev 257995)
+++ trunk/Source/WebCore/page/scrolling/ScrollingCoordinator.h 2020-03-06 16:05:53 UTC (rev 257996)
@@ -168,21 +168,13 @@
// Generated a unique id for scrolling nodes.
ScrollingNodeID uniqueScrollingNodeID();
- enum MainThreadScrollingReasonFlags {
- ForcedOnMainThread = 1 << 0,
- HasSlowRepaintObjects = 1 << 1,
- HasViewportConstrainedObjectsWithoutSupportingFixedLayers = 1 << 2,
- HasNonLayerViewportConstrainedObjects = 1 << 3,
- IsImageDocument = 1 << 4
- };
-
- SynchronousScrollingReasons synchronousScrollingReasons(const FrameView&) const;
+ OptionSet<SynchronousScrollingReason> synchronousScrollingReasons(const FrameView&) const;
bool shouldUpdateScrollLayerPositionSynchronously(const FrameView&) const;
virtual void willDestroyScrollableArea(ScrollableArea&) { }
virtual void scrollableAreaScrollbarLayerDidChange(ScrollableArea&, ScrollbarOrientation) { }
- static String synchronousScrollingReasonsAsText(SynchronousScrollingReasons);
+ static String synchronousScrollingReasonsAsText(OptionSet<SynchronousScrollingReason>);
String synchronousScrollingReasonsAsText() const;
EventTrackingRegions absoluteEventTrackingRegions() const;
@@ -205,7 +197,7 @@
Page* m_page; // FIXME: ideally this would be a reference but it gets nulled on async teardown.
private:
- virtual void setSynchronousScrollingReasons(FrameView&, SynchronousScrollingReasons) { }
+ virtual void setSynchronousScrollingReasons(FrameView&, OptionSet<SynchronousScrollingReason>) { }
virtual bool hasVisibleSlowRepaintViewportConstrainedObjects(const FrameView&) const;
void updateSynchronousScrollingReasons(FrameView&);
Modified: trunk/Source/WebCore/page/scrolling/ScrollingCoordinatorTypes.h (257995 => 257996)
--- trunk/Source/WebCore/page/scrolling/ScrollingCoordinatorTypes.h 2020-03-06 14:49:38 UTC (rev 257995)
+++ trunk/Source/WebCore/page/scrolling/ScrollingCoordinatorTypes.h 2020-03-06 16:05:53 UTC (rev 257996)
@@ -29,7 +29,13 @@
namespace WebCore {
-typedef unsigned SynchronousScrollingReasons;
+enum class SynchronousScrollingReason {
+ ForcedOnMainThread = 1 << 0,
+ HasSlowRepaintObjects = 1 << 1,
+ HasViewportConstrainedObjectsWithoutSupportingFixedLayers = 1 << 2,
+ HasNonLayerViewportConstrainedObjects = 1 << 3,
+ IsImageDocument = 1 << 4
+};
enum class ScrollingNodeType : uint8_t {
MainFrame,
Modified: trunk/Source/WebCore/page/scrolling/ScrollingStateFrameScrollingNode.cpp (257995 => 257996)
--- trunk/Source/WebCore/page/scrolling/ScrollingStateFrameScrollingNode.cpp 2020-03-06 14:49:38 UTC (rev 257995)
+++ trunk/Source/WebCore/page/scrolling/ScrollingStateFrameScrollingNode.cpp 2020-03-06 16:05:53 UTC (rev 257996)
@@ -133,7 +133,7 @@
setPropertyChanged(EventTrackingRegion);
}
-void ScrollingStateFrameScrollingNode::setSynchronousScrollingReasons(SynchronousScrollingReasons reasons)
+void ScrollingStateFrameScrollingNode::setSynchronousScrollingReasons(OptionSet<SynchronousScrollingReason> reasons)
{
if (m_synchronousScrollingReasons == reasons)
return;
@@ -353,7 +353,7 @@
}
}
- if (m_synchronousScrollingReasons)
+ if (!m_synchronousScrollingReasons.isEmpty())
ts.dumpProperty("Scrolling on main thread because:", ScrollingCoordinator::synchronousScrollingReasonsAsText(m_synchronousScrollingReasons));
ts.dumpProperty("behavior for fixed", m_behaviorForFixed);
Modified: trunk/Source/WebCore/page/scrolling/ScrollingStateFrameScrollingNode.h (257995 => 257996)
--- trunk/Source/WebCore/page/scrolling/ScrollingStateFrameScrollingNode.h 2020-03-06 14:49:38 UTC (rev 257995)
+++ trunk/Source/WebCore/page/scrolling/ScrollingStateFrameScrollingNode.h 2020-03-06 16:05:53 UTC (rev 257996)
@@ -75,8 +75,8 @@
const EventTrackingRegions& eventTrackingRegions() const { return m_eventTrackingRegions; }
WEBCORE_EXPORT void setEventTrackingRegions(const EventTrackingRegions&);
- SynchronousScrollingReasons synchronousScrollingReasons() const { return m_synchronousScrollingReasons; }
- WEBCORE_EXPORT void setSynchronousScrollingReasons(SynchronousScrollingReasons);
+ OptionSet<SynchronousScrollingReason> synchronousScrollingReasons() const { return m_synchronousScrollingReasons; }
+ WEBCORE_EXPORT void setSynchronousScrollingReasons(OptionSet<SynchronousScrollingReason>);
ScrollBehaviorForFixedElements scrollBehaviorForFixedElements() const { return m_behaviorForFixed; }
WEBCORE_EXPORT void setScrollBehaviorForFixedElements(ScrollBehaviorForFixedElements);
@@ -164,7 +164,7 @@
float m_topContentInset { 0 };
int m_headerHeight { 0 };
int m_footerHeight { 0 };
- SynchronousScrollingReasons m_synchronousScrollingReasons { 0 };
+ OptionSet<SynchronousScrollingReason> m_synchronousScrollingReasons;
ScrollBehaviorForFixedElements m_behaviorForFixed { StickToDocumentBounds };
bool m_fixedElementsLayoutRelativeToFrame { false };
bool m_visualViewportIsSmallerThanLayoutViewport { false };
Modified: trunk/Source/WebCore/page/scrolling/ScrollingTree.h (257995 => 257996)
--- trunk/Source/WebCore/page/scrolling/ScrollingTree.h 2020-03-06 14:49:38 UTC (rev 257995)
+++ trunk/Source/WebCore/page/scrolling/ScrollingTree.h 2020-03-06 16:05:53 UTC (rev 257996)
@@ -92,7 +92,7 @@
void notifyRelatedNodesAfterScrollPositionChange(ScrollingTreeScrollingNode& changedNode);
- virtual void reportSynchronousScrollingReasonsChanged(MonotonicTime, SynchronousScrollingReasons) { }
+ virtual void reportSynchronousScrollingReasonsChanged(MonotonicTime, OptionSet<SynchronousScrollingReason>) { }
virtual void reportExposedUnfilledArea(MonotonicTime, unsigned /* unfilledArea */) { }
#if PLATFORM(IOS_FAMILY)
Modified: trunk/Source/WebCore/page/scrolling/ScrollingTreeFrameScrollingNode.cpp (257995 => 257996)
--- trunk/Source/WebCore/page/scrolling/ScrollingTreeFrameScrollingNode.cpp 2020-03-06 14:49:38 UTC (rev 257995)
+++ trunk/Source/WebCore/page/scrolling/ScrollingTreeFrameScrollingNode.cpp 2020-03-06 16:05:53 UTC (rev 257996)
@@ -156,7 +156,7 @@
ts.dumpProperty("header height", m_headerHeight);
if (m_footerHeight)
ts.dumpProperty("footer height", m_footerHeight);
- if (m_synchronousScrollingReasons)
+ if (!m_synchronousScrollingReasons.isEmpty())
ts.dumpProperty("synchronous scrolling reasons", ScrollingCoordinator::synchronousScrollingReasonsAsText(m_synchronousScrollingReasons));
ts.dumpProperty("behavior for fixed", m_behaviorForFixed);
Modified: trunk/Source/WebCore/page/scrolling/ScrollingTreeFrameScrollingNode.h (257995 => 257996)
--- trunk/Source/WebCore/page/scrolling/ScrollingTreeFrameScrollingNode.h 2020-03-06 14:49:38 UTC (rev 257995)
+++ trunk/Source/WebCore/page/scrolling/ScrollingTreeFrameScrollingNode.h 2020-03-06 16:05:53 UTC (rev 257996)
@@ -41,8 +41,8 @@
void commitStateBeforeChildren(const ScrollingStateNode&) override;
- SynchronousScrollingReasons synchronousScrollingReasons() const { return m_synchronousScrollingReasons; }
- bool shouldUpdateScrollLayerPositionSynchronously() const { return m_synchronousScrollingReasons; }
+ OptionSet<SynchronousScrollingReason> synchronousScrollingReasons() const { return m_synchronousScrollingReasons; }
+ bool shouldUpdateScrollLayerPositionSynchronously() const { return !m_synchronousScrollingReasons.isEmpty(); }
bool fixedElementsLayoutRelativeToFrame() const { return m_fixedElementsLayoutRelativeToFrame; }
bool visualViewportIsSmallerThanLayoutViewport() const { return m_visualViewportIsSmallerThanLayoutViewport; }
@@ -85,7 +85,7 @@
int m_headerHeight { 0 };
int m_footerHeight { 0 };
- SynchronousScrollingReasons m_synchronousScrollingReasons { 0 };
+ OptionSet<SynchronousScrollingReason> m_synchronousScrollingReasons;
ScrollBehaviorForFixedElements m_behaviorForFixed { StickToDocumentBounds };
bool m_fixedElementsLayoutRelativeToFrame { false };
Modified: trunk/Source/WebCore/page/scrolling/ThreadedScrollingTree.cpp (257995 => 257996)
--- trunk/Source/WebCore/page/scrolling/ThreadedScrollingTree.cpp 2020-03-06 14:49:38 UTC (rev 257995)
+++ trunk/Source/WebCore/page/scrolling/ThreadedScrollingTree.cpp 2020-03-06 16:05:53 UTC (rev 257996)
@@ -127,7 +127,7 @@
});
}
-void ThreadedScrollingTree::reportSynchronousScrollingReasonsChanged(MonotonicTime timestamp, SynchronousScrollingReasons reasons)
+void ThreadedScrollingTree::reportSynchronousScrollingReasonsChanged(MonotonicTime timestamp, OptionSet<SynchronousScrollingReason> reasons)
{
RunLoop::main().dispatch([scrollingCoordinator = m_scrollingCoordinator, timestamp, reasons] {
scrollingCoordinator->reportSynchronousScrollingReasonsChanged(timestamp, reasons);
Modified: trunk/Source/WebCore/page/scrolling/ThreadedScrollingTree.h (257995 => 257996)
--- trunk/Source/WebCore/page/scrolling/ThreadedScrollingTree.h 2020-03-06 14:49:38 UTC (rev 257995)
+++ trunk/Source/WebCore/page/scrolling/ThreadedScrollingTree.h 2020-03-06 16:05:53 UTC (rev 257996)
@@ -75,7 +75,7 @@
#endif
void reportExposedUnfilledArea(MonotonicTime, unsigned unfilledArea) override;
- void reportSynchronousScrollingReasonsChanged(MonotonicTime, SynchronousScrollingReasons) override;
+ void reportSynchronousScrollingReasonsChanged(MonotonicTime, OptionSet<SynchronousScrollingReason>) override;
private:
bool isThreadedScrollingTree() const override { return true; }
Modified: trunk/Source/WebKit/ChangeLog (257995 => 257996)
--- trunk/Source/WebKit/ChangeLog 2020-03-06 14:49:38 UTC (rev 257995)
+++ trunk/Source/WebKit/ChangeLog 2020-03-06 16:05:53 UTC (rev 257996)
@@ -1,3 +1,16 @@
+2020-03-05 Simon Fraser <simon.fra...@apple.com>
+
+ Use an OptionSet<> for SynchronousScrollingReasons
+ https://bugs.webkit.org/show_bug.cgi?id=208697
+
+ Reviewed by Antti Koivisto.
+
+ Convert SynchronousScrollingReasons to an OptionSet<SynchronousScrollingReason>.
+
+ * Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.cpp:
+ (ArgumentCoder<ScrollingStateFrameScrollingNode>::decode):
+ * UIProcess/WebPageProxy.cpp:
+
2020-03-06 Jer Noble <jer.no...@apple.com>
[GPUP] Set the WebProcess's useGPUProcessForMedia setting during the first page load
Modified: trunk/Source/WebKit/Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.cpp (257995 => 257996)
--- trunk/Source/WebKit/Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.cpp 2020-03-06 14:49:38 UTC (rev 257995)
+++ trunk/Source/WebKit/Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.cpp 2020-03-06 16:05:53 UTC (rev 257996)
@@ -295,7 +295,7 @@
SCROLLING_NODE_DECODE(ScrollingStateFrameScrollingNode::FrameScaleFactor, float, setFrameScaleFactor);
SCROLLING_NODE_DECODE(ScrollingStateFrameScrollingNode::EventTrackingRegion, EventTrackingRegions, setEventTrackingRegions);
- SCROLLING_NODE_DECODE(ScrollingStateFrameScrollingNode::ReasonsForSynchronousScrolling, SynchronousScrollingReasons, setSynchronousScrollingReasons);
+ SCROLLING_NODE_DECODE(ScrollingStateFrameScrollingNode::ReasonsForSynchronousScrolling, OptionSet<SynchronousScrollingReason>, setSynchronousScrollingReasons);
SCROLLING_NODE_DECODE_ENUM(ScrollingStateFrameScrollingNode::BehaviorForFixedElements, ScrollBehaviorForFixedElements, setScrollBehaviorForFixedElements);
SCROLLING_NODE_DECODE(ScrollingStateFrameScrollingNode::HeaderHeight, int, setHeaderHeight);
Modified: trunk/Source/WebKit/UIProcess/WebPageProxy.cpp (257995 => 257996)
--- trunk/Source/WebKit/UIProcess/WebPageProxy.cpp 2020-03-06 14:49:38 UTC (rev 257995)
+++ trunk/Source/WebKit/UIProcess/WebPageProxy.cpp 2020-03-06 16:05:53 UTC (rev 257996)
@@ -7147,7 +7147,7 @@
break;
case PerformanceLoggingClient::ScrollingEvent::SwitchedScrollingMode:
if (data)
- WTFLogAlways("SCROLLING: Switching to main-thread scrolling mode. Time: %f Reason(s): %s\n", timestamp.secondsSinceEpoch().value(), PerformanceLoggingClient::synchronousScrollingReasonsAsString(data).utf8().data());
+ WTFLogAlways("SCROLLING: Switching to main-thread scrolling mode. Time: %f Reason(s): %s\n", timestamp.secondsSinceEpoch().value(), PerformanceLoggingClient::synchronousScrollingReasonsAsString(OptionSet<SynchronousScrollingReason>::fromRaw(data)).utf8().data());
else
WTFLogAlways("SCROLLING: Switching to threaded scrolling mode. Time: %f\n", timestamp.secondsSinceEpoch().value());
break;