Title: [170210] trunk/Source/WebKit2
Revision
170210
Author
[email protected]
Date
2014-06-20 14:55:19 -0700 (Fri, 20 Jun 2014)

Log Message

Add ArgumentEncoder support to PageState and friends
https://bugs.webkit.org/show_bug.cgi?id=134128

Reviewed by Andreas Kling.

Change the classes to structs, get rid of the constructors/destructors
and add encode member functions.

* Shared/SessionState.cpp:
(WebKit::HTTPBody::Element::encode):
(WebKit::HTTPBody::encode):
(WebKit::FrameState::encode):
(WebKit::PageState::encode):
(WebKit::HTTPBody::Element::Element): Deleted.
(WebKit::HTTPBody::Element::~Element): Deleted.
(WebKit::FrameState::FrameState): Deleted.
(WebKit::FrameState::~FrameState): Deleted.
(WebKit::PageState::PageState): Deleted.
(WebKit::PageState::~PageState): Deleted.
* Shared/SessionState.h:
(WebKit::HTTPBody::Element::type): Deleted.

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (170209 => 170210)


--- trunk/Source/WebKit2/ChangeLog	2014-06-20 21:36:36 UTC (rev 170209)
+++ trunk/Source/WebKit2/ChangeLog	2014-06-20 21:55:19 UTC (rev 170210)
@@ -1,5 +1,29 @@
 2014-06-20  Anders Carlsson  <[email protected]>
 
+        Add ArgumentEncoder support to PageState and friends
+        https://bugs.webkit.org/show_bug.cgi?id=134128
+
+        Reviewed by Andreas Kling.
+
+        Change the classes to structs, get rid of the constructors/destructors
+        and add encode member functions.
+
+        * Shared/SessionState.cpp:
+        (WebKit::HTTPBody::Element::encode):
+        (WebKit::HTTPBody::encode):
+        (WebKit::FrameState::encode):
+        (WebKit::PageState::encode):
+        (WebKit::HTTPBody::Element::Element): Deleted.
+        (WebKit::HTTPBody::Element::~Element): Deleted.
+        (WebKit::FrameState::FrameState): Deleted.
+        (WebKit::FrameState::~FrameState): Deleted.
+        (WebKit::PageState::PageState): Deleted.
+        (WebKit::PageState::~PageState): Deleted.
+        * Shared/SessionState.h:
+        (WebKit::HTTPBody::Element::type): Deleted.
+
+2014-06-20  Anders Carlsson  <[email protected]>
+
         Add encoding and decoding support for WTF::Optional
         https://bugs.webkit.org/show_bug.cgi?id=134125
 

Modified: trunk/Source/WebKit2/Shared/SessionState.cpp (170209 => 170210)


--- trunk/Source/WebKit2/Shared/SessionState.cpp	2014-06-20 21:36:36 UTC (rev 170209)
+++ trunk/Source/WebKit2/Shared/SessionState.cpp	2014-06-20 21:55:19 UTC (rev 170210)
@@ -26,31 +26,51 @@
 #include "config.h"
 #include "SessionState.h"
 
+#include "ArgumentCoders.h"
+
 namespace WebKit {
 
-HTTPBody::Element::Element()
-    : m_type(Type::Data)
+void HTTPBody::Element::encode(IPC::ArgumentEncoder& encoder) const
 {
+    encoder.encodeEnum(type);
+    encoder << data;
+    encoder << filePath;
+    encoder << fileStart;
+    encoder << fileLength;
+    encoder << expectedFileModificationTime;
+    encoder << blobURLString;
 }
 
-HTTPBody::Element::~Element()
+void HTTPBody::encode(IPC::ArgumentEncoder& encoder) const
 {
+    encoder << contentType;
+    encoder << elements;
 }
 
-FrameState::FrameState()
+void FrameState::encode(IPC::ArgumentEncoder& encoder) const
 {
-}
+    encoder << urlString;
+    encoder << originalURLString;
+    encoder << referrer;
+    encoder << target;
 
-FrameState::~FrameState()
-{
-}
+    encoder << documentState;
+    encoder << stateObjectData;
 
-PageState::PageState()
-{
+    encoder << documentSequenceNumber;
+    encoder << itemSequenceNumber;
+
+    encoder << scrollPoint;
+    encoder << pageScaleFactor;
+
+    encoder << httpBody;
+
+    encoder << children;
 }
 
-PageState::~PageState()
+void PageState::encode(IPC::ArgumentEncoder& encoder) const
 {
+    encoder << mainFrameState;
 }
 
 } // namespace WebKit

Modified: trunk/Source/WebKit2/Shared/SessionState.h (170209 => 170210)


--- trunk/Source/WebKit2/Shared/SessionState.h	2014-06-20 21:36:36 UTC (rev 170209)
+++ trunk/Source/WebKit2/Shared/SessionState.h	2014-06-20 21:55:19 UTC (rev 170210)
@@ -26,51 +26,75 @@
 #ifndef SessionState_h
 #define SessionState_h
 
+#include <WebCore/IntPoint.h>
+#include <wtf/Optional.h>
 #include <wtf/Vector.h>
 #include <wtf/text/WTFString.h>
 
+namespace IPC {
+class ArgumentDecoder;
+class ArgumentEncoder;
+}
+
 namespace WebKit {
 
-class HTTPBody {
-public:
-    class Element {
-    public:
+struct HTTPBody {
+    struct Element {
+        void encode(IPC::ArgumentEncoder&) const;
+
         enum class Type {
             Data,
             File,
             Blob,
         };
 
-        Element();
-        ~Element();
+        Type type = Type::Data;
 
-        Type type() const { return m_type; }
+        // Data.
+        Vector<char> data;
 
-    private:
-        Type m_type;
+        // File.
+        String filePath;
+        int64_t fileStart;
+        Optional<int64_t> fileLength;
+        Optional<double> expectedFileModificationTime;
+
+        // Blob.
+        String blobURLString;
     };
 
-private:
-    String m_contentType;
-    Vector<Element> m_elements;
+    void encode(IPC::ArgumentEncoder&) const;
+
+    String contentType;
+    Vector<Element> elements;
 };
 
-class FrameState {
-public:
-    FrameState();
-    ~FrameState();
+struct FrameState {
+    void encode(IPC::ArgumentEncoder&) const;
 
-private:
-    Vector<FrameState> m_children;
-    HTTPBody m_httpBody;
+    String urlString;
+    String originalURLString;
+    String referrer;
+    String target;
+
+    Vector<String> documentState;
+    Vector<uint8_t> stateObjectData;
+
+    int64_t documentSequenceNumber;
+    int64_t itemSequenceNumber;
+
+    WebCore::IntPoint scrollPoint;
+    float pageScaleFactor;
+
+    Optional<HTTPBody> httpBody;
+
+    Vector<FrameState> children;
 };
 
-class PageState {
-public:
-    PageState();
-    ~PageState();
+struct PageState {
+    void encode(IPC::ArgumentEncoder&) const;
 
-    FrameState m_mainFrameState;
+    FrameState mainFrameState;
 };
 
 } // namespace WebKit
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to