Title: [161329] trunk/Source/WebKit2
Revision
161329
Author
[email protected]
Date
2014-01-05 20:09:57 -0800 (Sun, 05 Jan 2014)

Log Message

Add encoding of ViewportConstraint and ScrollingParameter types
https://bugs.webkit.org/show_bug.cgi?id=126497

Reviewed by Andreas Kling.

Add encoding/decoding of ScrollableAreaParameters, FixedPositionViewportConstraints
and StickyPositionViewportConstraints.

* Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<WebCore::ScrollableAreaParameters>::encode):
(IPC::ArgumentCoder<WebCore::ScrollableAreaParameters>::decode):
(IPC::ArgumentCoder<WebCore::FixedPositionViewportConstraints>::encode):
(IPC::ArgumentCoder<WebCore::FixedPositionViewportConstraints>::decode):
(IPC::ArgumentCoder<WebCore::StickyPositionViewportConstraints>::encode):
(IPC::ArgumentCoder<WebCore::StickyPositionViewportConstraints>::decode):
* Shared/WebCoreArgumentCoders.h:

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (161328 => 161329)


--- trunk/Source/WebKit2/ChangeLog	2014-01-06 04:09:02 UTC (rev 161328)
+++ trunk/Source/WebKit2/ChangeLog	2014-01-06 04:09:57 UTC (rev 161329)
@@ -1,3 +1,22 @@
+2014-01-04  Simon Fraser  <[email protected]>
+
+        Add encoding of ViewportConstraint and ScrollingParameter types
+        https://bugs.webkit.org/show_bug.cgi?id=126497
+
+        Reviewed by Andreas Kling.
+        
+        Add encoding/decoding of ScrollableAreaParameters, FixedPositionViewportConstraints
+        and StickyPositionViewportConstraints.
+
+        * Shared/WebCoreArgumentCoders.cpp:
+        (IPC::ArgumentCoder<WebCore::ScrollableAreaParameters>::encode):
+        (IPC::ArgumentCoder<WebCore::ScrollableAreaParameters>::decode):
+        (IPC::ArgumentCoder<WebCore::FixedPositionViewportConstraints>::encode):
+        (IPC::ArgumentCoder<WebCore::FixedPositionViewportConstraints>::decode):
+        (IPC::ArgumentCoder<WebCore::StickyPositionViewportConstraints>::encode):
+        (IPC::ArgumentCoder<WebCore::StickyPositionViewportConstraints>::decode):
+        * Shared/WebCoreArgumentCoders.h:
+
 2014-01-05  Simon Fraser  <[email protected]>
 
         Move responsibility for remote layer tree committing to RemoteLayerTreeDrawingArea

Modified: trunk/Source/WebKit2/Shared/WebCoreArgumentCoders.cpp (161328 => 161329)


--- trunk/Source/WebKit2/Shared/WebCoreArgumentCoders.cpp	2014-01-06 04:09:02 UTC (rev 161328)
+++ trunk/Source/WebKit2/Shared/WebCoreArgumentCoders.cpp	2014-01-06 04:09:57 UTC (rev 161329)
@@ -50,6 +50,8 @@
 #include <WebCore/ResourceError.h>
 #include <WebCore/ResourceRequest.h>
 #include <WebCore/ResourceResponse.h>
+#include <WebCore/ScrollingConstraints.h>
+#include <WebCore/ScrollingCoordinator.h>
 #include <WebCore/TextCheckerClient.h>
 #include <WebCore/TransformationMatrix.h>
 #include <WebCore/URL.h>
@@ -1274,6 +1276,158 @@
     return true;
 }
 
+void ArgumentCoder<WebCore::ScrollableAreaParameters>::encode(ArgumentEncoder& encoder, const WebCore::ScrollableAreaParameters& parameters)
+{
+    encoder.encodeEnum(parameters.horizontalScrollElasticity);
+    encoder.encodeEnum(parameters.verticalScrollElasticity);
+
+    encoder.encodeEnum(parameters.horizontalScrollbarMode);
+    encoder.encodeEnum(parameters.verticalScrollbarMode);
+
+    encoder << parameters.hasEnabledHorizontalScrollbar;
+    encoder << parameters.hasEnabledHorizontalScrollbar;
+}
+
+bool ArgumentCoder<WebCore::ScrollableAreaParameters>::decode(ArgumentDecoder& decoder, WebCore::ScrollableAreaParameters& params)
+{
+    if (!decoder.decodeEnum(params.horizontalScrollElasticity))
+        return false;
+    if (!decoder.decodeEnum(params.verticalScrollElasticity))
+        return false;
+
+    if (!decoder.decodeEnum(params.horizontalScrollbarMode))
+        return false;
+    if (!decoder.decodeEnum(params.verticalScrollbarMode))
+        return false;
+
+    if (!decoder.decode(params.hasEnabledHorizontalScrollbar))
+        return false;
+    if (!decoder.decode(params.hasEnabledVerticalScrollbar))
+        return false;
+    
+    return true;
+}
+
+void ArgumentCoder<WebCore::FixedPositionViewportConstraints>::encode(ArgumentEncoder& encoder, const WebCore::FixedPositionViewportConstraints& viewportConstraints)
+{
+    encoder << viewportConstraints.alignmentOffset();
+    encoder << viewportConstraints.anchorEdges();
+
+    encoder << viewportConstraints.viewportRectAtLastLayout();
+    encoder << viewportConstraints.layerPositionAtLastLayout();
+}
+
+bool ArgumentCoder<WebCore::FixedPositionViewportConstraints>::decode(ArgumentDecoder& decoder, WebCore::FixedPositionViewportConstraints& viewportConstraints)
+{
+    FloatSize alignmentOffset;
+    if (!decoder.decode(alignmentOffset))
+        return false;
+    
+    ViewportConstraints::AnchorEdges anchorEdges;
+    if (!decoder.decode(anchorEdges))
+        return false;
+
+    FloatRect viewportRectAtLastLayout;
+    if (!decoder.decode(viewportRectAtLastLayout))
+        return false;
+
+    FloatPoint layerPositionAtLastLayout;
+    if (!decoder.decode(layerPositionAtLastLayout))
+        return false;
+
+    viewportConstraints = WebCore::FixedPositionViewportConstraints();
+    viewportConstraints.setAlignmentOffset(alignmentOffset);
+    viewportConstraints.setAnchorEdges(anchorEdges);
+
+    viewportConstraints.setViewportRectAtLastLayout(viewportRectAtLastLayout);
+    viewportConstraints.setLayerPositionAtLastLayout(layerPositionAtLastLayout);
+    
+    return true;
+}
+
+void ArgumentCoder<WebCore::StickyPositionViewportConstraints>::encode(ArgumentEncoder& encoder, const WebCore::StickyPositionViewportConstraints& viewportConstraints)
+{
+    encoder << viewportConstraints.alignmentOffset();
+    encoder << viewportConstraints.anchorEdges();
+
+    encoder << viewportConstraints.leftOffset();
+    encoder << viewportConstraints.rightOffset();
+    encoder << viewportConstraints.topOffset();
+    encoder << viewportConstraints.bottomOffset();
+
+    encoder << viewportConstraints.constrainingRectAtLastLayout();
+    encoder << viewportConstraints.containingBlockRect();
+    encoder << viewportConstraints.stickyBoxRect();
+
+    encoder << viewportConstraints.stickyOffsetAtLastLayout();
+    encoder << viewportConstraints.layerPositionAtLastLayout();
+}
+
+bool ArgumentCoder<WebCore::StickyPositionViewportConstraints>::decode(ArgumentDecoder& decoder, WebCore::StickyPositionViewportConstraints& viewportConstraints)
+{
+    FloatSize alignmentOffset;
+    if (!decoder.decode(alignmentOffset))
+        return false;
+    
+    ViewportConstraints::AnchorEdges anchorEdges;
+    if (!decoder.decode(anchorEdges))
+        return false;
+    
+    float leftOffset;
+    if (!decoder.decode(leftOffset))
+        return false;
+
+    float rightOffset;
+    if (!decoder.decode(rightOffset))
+        return false;
+
+    float topOffset;
+    if (!decoder.decode(topOffset))
+        return false;
+
+    float bottomOffset;
+    if (!decoder.decode(bottomOffset))
+        return false;
+    
+    FloatRect constrainingRectAtLastLayout;
+    if (!decoder.decode(constrainingRectAtLastLayout))
+        return false;
+
+    FloatRect containingBlockRect;
+    if (!decoder.decode(containingBlockRect))
+        return false;
+
+    FloatRect stickyBoxRect;
+    if (!decoder.decode(stickyBoxRect))
+        return false;
+
+    FloatSize stickyOffsetAtLastLayout;
+    if (!decoder.decode(stickyOffsetAtLastLayout))
+        return false;
+    
+    FloatPoint layerPositionAtLastLayout;
+    if (!decoder.decode(layerPositionAtLastLayout))
+        return false;
+    
+    viewportConstraints = WebCore::StickyPositionViewportConstraints();
+    viewportConstraints.setAlignmentOffset(alignmentOffset);
+    viewportConstraints.setAnchorEdges(anchorEdges);
+
+    viewportConstraints.setLeftOffset(leftOffset);
+    viewportConstraints.setRightOffset(rightOffset);
+    viewportConstraints.setTopOffset(topOffset);
+    viewportConstraints.setBottomOffset(bottomOffset);
+    
+    viewportConstraints.setConstrainingRectAtLastLayout(constrainingRectAtLastLayout);
+    viewportConstraints.setContainingBlockRect(containingBlockRect);
+    viewportConstraints.setStickyBoxRect(stickyBoxRect);
+
+    viewportConstraints.setStickyOffsetAtLastLayout(stickyOffsetAtLastLayout);
+    viewportConstraints.setLayerPositionAtLastLayout(layerPositionAtLastLayout);
+
+    return true;
+}
+
 #if ENABLE(CSS_FILTERS) && !USE(COORDINATED_GRAPHICS)
 static void encodeFilterOperation(ArgumentEncoder& encoder, const FilterOperation& filter)
 {

Modified: trunk/Source/WebKit2/Shared/WebCoreArgumentCoders.h (161328 => 161329)


--- trunk/Source/WebKit2/Shared/WebCoreArgumentCoders.h	2014-01-06 04:09:02 UTC (rev 161328)
+++ trunk/Source/WebKit2/Shared/WebCoreArgumentCoders.h	2014-01-06 04:09:57 UTC (rev 161329)
@@ -41,6 +41,7 @@
 class FloatPoint3D;
 class FloatRect;
 class FloatSize;
+class FixedPositionViewportConstraints;
 class HTTPHeaderMap;
 class IDBKeyPath;
 class IntPoint;
@@ -53,6 +54,7 @@
 class ResourceError;
 class ResourceRequest;
 class ResourceResponse;
+class StickyPositionViewportConstraints;
 class TextCheckingRequestData;
 class TransformationMatrix;
 class UserStyleSheet;
@@ -71,6 +73,7 @@
 struct PasteboardImage;
 struct PasteboardWebContent;
 struct PluginInfo;
+struct ScrollableAreaParameters;
 struct TextCheckingResult;
 struct ViewportAttributes;
 struct WindowFeatures;
@@ -328,6 +331,21 @@
     static bool decode(ArgumentDecoder&, WebCore::UserScript&);
 };
 
+template<> struct ArgumentCoder<WebCore::ScrollableAreaParameters> {
+    static void encode(ArgumentEncoder&, const WebCore::ScrollableAreaParameters&);
+    static bool decode(ArgumentDecoder&, WebCore::ScrollableAreaParameters&);
+};
+
+template<> struct ArgumentCoder<WebCore::FixedPositionViewportConstraints> {
+    static void encode(ArgumentEncoder&, const WebCore::FixedPositionViewportConstraints&);
+    static bool decode(ArgumentDecoder&, WebCore::FixedPositionViewportConstraints&);
+};
+
+template<> struct ArgumentCoder<WebCore::StickyPositionViewportConstraints> {
+    static void encode(ArgumentEncoder&, const WebCore::StickyPositionViewportConstraints&);
+    static bool decode(ArgumentDecoder&, WebCore::StickyPositionViewportConstraints&);
+};
+
 #if ENABLE(CSS_FILTERS) && !USE(COORDINATED_GRAPHICS)
 template<> struct ArgumentCoder<WebCore::FilterOperations> {
     static void encode(ArgumentEncoder&, const WebCore::FilterOperations&);
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to