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