Diff
Modified: trunk/Source/WebKit/ChangeLog (234848 => 234849)
--- trunk/Source/WebKit/ChangeLog 2018-08-14 15:15:07 UTC (rev 234848)
+++ trunk/Source/WebKit/ChangeLog 2018-08-14 16:48:45 UTC (rev 234849)
@@ -1,3 +1,27 @@
+2018-08-14 Antti Koivisto <an...@apple.com>
+
+ RemoteLayerTreeTransaction should use OptionSet for change flags
+ https://bugs.webkit.org/show_bug.cgi?id=188547
+
+ Reviewed by Simon Fraser.
+
+ * Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.mm:
+ (WebKit::RemoteLayerTreePropertyApplier::applyProperties):
+ * Shared/RemoteLayerTree/RemoteLayerTreeTransaction.h:
+ (WebKit::RemoteLayerTreeTransaction::LayerProperties::notePropertiesChanged):
+ (WebKit::RemoteLayerTreeTransaction::LayerProperties::resetChangedProperties):
+
+ Also remove unused everChangedProperties.
+
+ * Shared/RemoteLayerTree/RemoteLayerTreeTransaction.mm:
+ (WebKit::RemoteLayerTreeTransaction::LayerProperties::LayerProperties):
+ (WebKit::RemoteLayerTreeTransaction::LayerProperties::encode const):
+ (WebKit::RemoteLayerTreeTransaction::LayerProperties::decode):
+ * WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.cpp:
+ (WebKit::PlatformCALayerRemote::recursiveBuildTransaction):
+ * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:
+ (WebKit::RemoteLayerTreeDrawingArea::flushLayers):
+
2018-08-13 Wenson Hsieh <wenson_hs...@apple.com>
[WK2] [macOS] Implement a mechanism to test drag and drop
Modified: trunk/Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.mm (234848 => 234849)
--- trunk/Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.mm 2018-08-14 15:15:07 UTC (rev 234848)
+++ trunk/Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.mm 2018-08-14 16:48:45 UTC (rev 234849)
@@ -332,7 +332,7 @@
}
}
- if (properties.changedProperties & (RemoteLayerTreeTransaction::ContentsHiddenChanged | RemoteLayerTreeTransaction::UserInteractionEnabledChanged))
+ if (properties.changedProperties.containsAny({ RemoteLayerTreeTransaction::ContentsHiddenChanged, RemoteLayerTreeTransaction::UserInteractionEnabledChanged }))
view.userInteractionEnabled = !properties.contentsHidden && properties.userInteractionEnabled;
END_BLOCK_OBJC_EXCEPTIONS;
Modified: trunk/Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTreeTransaction.h (234848 => 234849)
--- trunk/Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTreeTransaction.h 2018-08-14 15:15:07 UTC (rev 234848)
+++ trunk/Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTreeTransaction.h 2018-08-14 16:48:45 UTC (rev 234849)
@@ -54,8 +54,7 @@
class RemoteLayerTreeTransaction {
public:
- enum LayerChanges {
- NoChange = 0,
+ enum LayerChange {
NameChanged = 1LLU << 1,
ChildrenChanged = 1LLU << 2,
PositionChanged = 1LLU << 3,
@@ -94,7 +93,6 @@
CustomAppearanceChanged = 1LLU << 36,
UserInteractionEnabledChanged = 1LLU << 37,
};
- typedef uint64_t LayerChange;
struct LayerCreationProperties {
LayerCreationProperties();
@@ -116,19 +114,17 @@
void encode(IPC::Encoder&) const;
static bool decode(IPC::Decoder&, LayerProperties&);
- void notePropertiesChanged(LayerChange changeFlags)
+ void notePropertiesChanged(OptionSet<LayerChange> changeFlags)
{
changedProperties |= changeFlags;
- everChangedProperties |= changeFlags;
}
void resetChangedProperties()
{
- changedProperties = RemoteLayerTreeTransaction::NoChange;
+ changedProperties = { };
}
- LayerChange changedProperties;
- LayerChange everChangedProperties;
+ OptionSet<LayerChange> changedProperties;
String name;
std::unique_ptr<WebCore::TransformationMatrix> transform;
Modified: trunk/Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTreeTransaction.mm (234848 => 234849)
--- trunk/Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTreeTransaction.mm 2018-08-14 15:15:07 UTC (rev 234848)
+++ trunk/Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTreeTransaction.mm 2018-08-14 16:48:45 UTC (rev 234849)
@@ -75,9 +75,7 @@
}
RemoteLayerTreeTransaction::LayerProperties::LayerProperties()
- : changedProperties(NoChange)
- , everChangedProperties(NoChange)
- , anchorPoint(0.5, 0.5, 0)
+ : anchorPoint(0.5, 0.5, 0)
, contentsRect(FloatPoint(), FloatSize(1, 1))
, maskLayerID(0)
, clonedLayerID(0)
@@ -108,7 +106,6 @@
RemoteLayerTreeTransaction::LayerProperties::LayerProperties(const LayerProperties& other)
: changedProperties(other.changedProperties)
- , everChangedProperties(other.everChangedProperties)
, name(other.name)
, children(other.children)
, addedAnimations(other.addedAnimations)
@@ -158,7 +155,7 @@
void RemoteLayerTreeTransaction::LayerProperties::encode(IPC::Encoder& encoder) const
{
- encoder.encodeEnum(changedProperties);
+ encoder.encode(changedProperties);
if (changedProperties & NameChanged)
encoder << name;
@@ -280,7 +277,7 @@
bool RemoteLayerTreeTransaction::LayerProperties::decode(IPC::Decoder& decoder, LayerProperties& result)
{
- if (!decoder.decodeEnum(result.changedProperties))
+ if (!decoder.decode(result.changedProperties))
return false;
if (result.changedProperties & NameChanged) {
Modified: trunk/Source/WebKit/WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.cpp (234848 => 234849)
--- trunk/Source/WebKit/WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.cpp 2018-08-14 15:15:07 UTC (rev 234848)
+++ trunk/Source/WebKit/WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.cpp 2018-08-14 16:48:45 UTC (rev 234849)
@@ -154,7 +154,7 @@
if (m_properties.backingStore && m_properties.backingStoreAttached && m_properties.backingStore->display())
m_properties.notePropertiesChanged(RemoteLayerTreeTransaction::BackingStoreChanged);
- if (m_properties.changedProperties != RemoteLayerTreeTransaction::NoChange) {
+ if (m_properties.changedProperties) {
if (m_properties.changedProperties & RemoteLayerTreeTransaction::ChildrenChanged) {
m_properties.children.resize(m_children.size());
for (size_t i = 0; i < m_children.size(); ++i)
Modified: trunk/Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm (234848 => 234849)
--- trunk/Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm 2018-08-14 15:15:07 UTC (rev 234848)
+++ trunk/Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm 2018-08-14 16:48:45 UTC (rev 234849)
@@ -397,7 +397,7 @@
bool hadAnyChangedBackingStore = false;
Vector<RetainPtr<CGContextRef>> contextsToFlush;
for (auto& layer : layerTransaction.changedLayers()) {
- if (layer->properties().changedProperties & RemoteLayerTreeTransaction::LayerChanges::BackingStoreChanged) {
+ if (layer->properties().changedProperties & RemoteLayerTreeTransaction::BackingStoreChanged) {
hadAnyChangedBackingStore = true;
if (layer->properties().backingStore) {
if (auto contextPendingFlush = layer->properties().backingStore->takeFrontContextPendingFlush())