Title: [237298] trunk/Source/WebKit
- Revision
- 237298
- Author
- [email protected]
- Date
- 2018-10-19 13:18:28 -0700 (Fri, 19 Oct 2018)
Log Message
Update and add python tests after r237294
https://bugs.webkit.org/show_bug.cgi?id=190746
* Scripts/Makefile: Added to help updating expectations.
* Scripts/webkit/LegacyMessageReceiver-expected.cpp:
* Scripts/webkit/MessageReceiverSuperclass-expected.cpp:
(Messages::WebPage::TestAsyncMessage::callReply):
(Messages::WebPage::TestAsyncMessage::cancelReply):
(Messages::WebPage::TestAsyncMessage::send):
(WebKit::WebPage::didReceiveMessage):
* Scripts/webkit/MessagesSuperclass-expected.h:
(Messages::WebPage::TestAsyncMessage::receiverName):
(Messages::WebPage::TestAsyncMessage::name):
(Messages::WebPage::TestAsyncMessage::asyncMessageReplyName):
(Messages::WebPage::TestAsyncMessage::TestAsyncMessage):
(Messages::WebPage::TestAsyncMessage::arguments const):
* Scripts/webkit/test-superclass-messages.in:
Adding the extra newline made python tests fail.
I also added more tests for the new functionality introduced in r237924.
Modified Paths
Added Paths
Diff
Modified: trunk/Source/WebKit/ChangeLog (237297 => 237298)
--- trunk/Source/WebKit/ChangeLog 2018-10-19 20:03:54 UTC (rev 237297)
+++ trunk/Source/WebKit/ChangeLog 2018-10-19 20:18:28 UTC (rev 237298)
@@ -1,5 +1,27 @@
2018-10-19 Alex Christensen <[email protected]>
+ Update and add python tests after r237294
+ https://bugs.webkit.org/show_bug.cgi?id=190746
+
+ * Scripts/Makefile: Added to help updating expectations.
+ * Scripts/webkit/LegacyMessageReceiver-expected.cpp:
+ * Scripts/webkit/MessageReceiverSuperclass-expected.cpp:
+ (Messages::WebPage::TestAsyncMessage::callReply):
+ (Messages::WebPage::TestAsyncMessage::cancelReply):
+ (Messages::WebPage::TestAsyncMessage::send):
+ (WebKit::WebPage::didReceiveMessage):
+ * Scripts/webkit/MessagesSuperclass-expected.h:
+ (Messages::WebPage::TestAsyncMessage::receiverName):
+ (Messages::WebPage::TestAsyncMessage::name):
+ (Messages::WebPage::TestAsyncMessage::asyncMessageReplyName):
+ (Messages::WebPage::TestAsyncMessage::TestAsyncMessage):
+ (Messages::WebPage::TestAsyncMessage::arguments const):
+ * Scripts/webkit/test-superclass-messages.in:
+ Adding the extra newline made python tests fail.
+ I also added more tests for the new functionality introduced in r237924.
+
+2018-10-19 Alex Christensen <[email protected]>
+
Introduce CompletionHandler-based Async IPC messages with replies
https://bugs.webkit.org/show_bug.cgi?id=190746
Added: trunk/Source/WebKit/Scripts/Makefile (0 => 237298)
--- trunk/Source/WebKit/Scripts/Makefile (rev 0)
+++ trunk/Source/WebKit/Scripts/Makefile 2018-10-19 20:18:28 UTC (rev 237298)
@@ -0,0 +1,6 @@
+all:
+ python ./generate-messages-header.py webkit/test-superclass-messages.in > webkit/MessagesSuperclass-expected.h
+ python ./generate-messages-header.py webkit/test-legacy-messages.in > webkit/LegacyMessages-expected.h
+ python ./generate-message-receiver.py webkit/test-superclass-messages.in > webkit/MessageReceiverSuperclass-expected.cpp
+ python ./generate-message-receiver.py webkit/test-legacy-messages.in > webkit/LegacyMessageReceiver-expected.cpp
+
Modified: trunk/Source/WebKit/Scripts/webkit/LegacyMessageReceiver-expected.cpp (237297 => 237298)
--- trunk/Source/WebKit/Scripts/webkit/LegacyMessageReceiver-expected.cpp 2018-10-19 20:03:54 UTC (rev 237297)
+++ trunk/Source/WebKit/Scripts/webkit/LegacyMessageReceiver-expected.cpp 2018-10-19 20:18:28 UTC (rev 237298)
@@ -197,4 +197,5 @@
} // namespace WebKit
+
#endif // (ENABLE(WEBKIT2) && (NESTED_MASTER_CONDITION || MASTER_OR && MASTER_AND))
Modified: trunk/Source/WebKit/Scripts/webkit/MessageReceiverSuperclass-expected.cpp (237297 => 237298)
--- trunk/Source/WebKit/Scripts/webkit/MessageReceiverSuperclass-expected.cpp 2018-10-19 20:03:54 UTC (rev 237297)
+++ trunk/Source/WebKit/Scripts/webkit/MessageReceiverSuperclass-expected.cpp 2018-10-19 20:18:28 UTC (rev 237298)
@@ -29,9 +29,46 @@
#include "ArgumentCoders.h"
#include "Decoder.h"
#include "HandleMessage.h"
+#if ENABLE(TEST_FEATURE)
+#include "TestTwoStateEnum.h"
+#endif
#include "WebPageMessages.h"
#include <wtf/text/WTFString.h>
+namespace Messages {
+
+namespace WebPage {
+
+#if ENABLE(TEST_FEATURE)
+
+void TestAsyncMessage::callReply(IPC::Decoder& decoder, CompletionHandler<void(uint64_t&&)>&& completionHandler)
+{
+ std::optional<uint64_t> result;
+ decoder >> result;
+ if (!result) {
+ ASSERT_NOT_REACHED();
+ return;
+ }
+ completionHandler(WTFMove(*result));
+}
+
+void TestAsyncMessage::cancelReply(CompletionHandler<void(uint64_t&&)>&& completionHandler)
+{
+ completionHandler({ });
+}
+
+void TestAsyncMessage::send(std::unique_ptr<IPC::Encoder>&& encoder, IPC::Connection& connection, uint64_t result)
+{
+ *encoder << result;
+ connection.sendSyncReply(WTFMove(encoder));
+}
+
+#endif
+
+} // namespace WebPage
+
+} // namespace Messages
+
namespace WebKit {
void WebPage::didReceiveMessage(IPC::Connection& connection, IPC::Decoder& decoder)
@@ -40,7 +77,14 @@
IPC::handleMessage<Messages::WebPage::LoadURL>(decoder, this, &WebPage::loadURL);
return;
}
+#if ENABLE(TEST_FEATURE)
+ if (decoder.messageName() == Messages::WebPage::TestAsyncMessage::name()) {
+ IPC::handleMessageAsync<Messages::WebPage::TestAsyncMessage>(connection, decoder, this, &WebPage::testAsyncMessage);
+ return;
+ }
+#endif
WebPageBase::didReceiveMessage(connection, decoder);
}
} // namespace WebKit
+
Modified: trunk/Source/WebKit/Scripts/webkit/MessagesSuperclass-expected.h (237297 => 237298)
--- trunk/Source/WebKit/Scripts/webkit/MessagesSuperclass-expected.h 2018-10-19 20:03:54 UTC (rev 237297)
+++ trunk/Source/WebKit/Scripts/webkit/MessagesSuperclass-expected.h 2018-10-19 20:18:28 UTC (rev 237298)
@@ -28,6 +28,9 @@
#include <wtf/Forward.h>
#include <wtf/text/WTFString.h>
+namespace WebKit {
+ enum class TestTwoStateEnum : bool;
+}
namespace Messages {
namespace WebPage {
@@ -59,5 +62,35 @@
Arguments m_arguments;
};
+#if ENABLE(TEST_FEATURE)
+class TestAsyncMessage {
+public:
+ typedef std::tuple<WebKit::TestTwoStateEnum> Arguments;
+
+ static IPC::StringReference receiverName() { return messageReceiverName(); }
+ static IPC::StringReference name() { return IPC::StringReference("TestAsyncMessage"); }
+ static const bool isSync = false;
+
+ static void callReply(IPC::Decoder&, CompletionHandler<void(uint64_t&&)>&&);
+ static void cancelReply(CompletionHandler<void(uint64_t&&)>&&);
+ static IPC::StringReference asyncMessageReplyName() { return { "TestAsyncMessageReply" }; }
+ using AsyncReply = CompletionHandler<void(uint64_t result)>;
+ static void send(std::unique_ptr<IPC::Encoder>&&, IPC::Connection&, uint64_t result);
+ typedef std::tuple<uint64_t&> Reply;
+ explicit TestAsyncMessage(WebKit::TestTwoStateEnum twoStateEnum)
+ : m_arguments(twoStateEnum)
+ {
+ }
+
+ const Arguments& arguments() const
+ {
+ return m_arguments;
+ }
+
+private:
+ Arguments m_arguments;
+};
+#endif
+
} // namespace WebPage
} // namespace Messages
Modified: trunk/Source/WebKit/Scripts/webkit/test-superclass-messages.in (237297 => 237298)
--- trunk/Source/WebKit/Scripts/webkit/test-superclass-messages.in 2018-10-19 20:03:54 UTC (rev 237297)
+++ trunk/Source/WebKit/Scripts/webkit/test-superclass-messages.in 2018-10-19 20:18:28 UTC (rev 237298)
@@ -22,4 +22,7 @@
messages -> WebPage : WebPageBase {
LoadURL(String url)
+#if ENABLE(TEST_FEATURE)
+ TestAsyncMessage(enum:bool WebKit::TestTwoStateEnum twoStateEnum) -> (uint64_t result) Async
+#endif
}
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes