Diff
Modified: trunk/Source/WebKit2/ChangeLog (160507 => 160508)
--- trunk/Source/WebKit2/ChangeLog 2013-12-12 22:55:22 UTC (rev 160507)
+++ trunk/Source/WebKit2/ChangeLog 2013-12-12 23:12:38 UTC (rev 160508)
@@ -1,5 +1,26 @@
2013-12-12 Anders Carlsson <[email protected]>
+ WebPageProxy should be a MessageSender
+ https://bugs.webkit.org/show_bug.cgi?id=125654
+
+ Reviewed by Sam Weinig.
+
+ * Platform/CoreIPC/MessageSender.cpp:
+ (CoreIPC::MessageSender::sendMessage):
+ * Platform/CoreIPC/MessageSender.h:
+ (CoreIPC::MessageSender::send):
+ * Shared/ChildProcessProxy.h:
+ * Shared/WebConnection.cpp:
+ (WebKit::WebConnection::postMessage):
+ * UIProcess/WebPageProxy.cpp:
+ (WebKit::WebPageProxy::initializeWebPage):
+ (WebKit::WebPageProxy::sendMessage):
+ (WebKit::WebPageProxy::messageSenderConnection):
+ (WebKit::WebPageProxy::messageSenderDestinationID):
+ * UIProcess/WebPageProxy.h:
+
+2013-12-12 Anders Carlsson <[email protected]>
+
Clean up dictionary handling a little
https://bugs.webkit.org/show_bug.cgi?id=125644
Modified: trunk/Source/WebKit2/Platform/CoreIPC/MessageSender.cpp (160507 => 160508)
--- trunk/Source/WebKit2/Platform/CoreIPC/MessageSender.cpp 2013-12-12 22:55:22 UTC (rev 160507)
+++ trunk/Source/WebKit2/Platform/CoreIPC/MessageSender.cpp 2013-12-12 23:12:38 UTC (rev 160508)
@@ -32,11 +32,11 @@
{
}
-bool MessageSender::sendMessage(std::unique_ptr<MessageEncoder> encoder)
+bool MessageSender::sendMessage(std::unique_ptr<MessageEncoder> encoder, unsigned messageSendFlags)
{
ASSERT(messageSenderConnection());
- return messageSenderConnection()->sendMessage(std::move(encoder));
+ return messageSenderConnection()->sendMessage(std::move(encoder), messageSendFlags);
}
} // namespace CoreIPC
Modified: trunk/Source/WebKit2/Platform/CoreIPC/MessageSender.h (160507 => 160508)
--- trunk/Source/WebKit2/Platform/CoreIPC/MessageSender.h 2013-12-12 22:55:22 UTC (rev 160507)
+++ trunk/Source/WebKit2/Platform/CoreIPC/MessageSender.h 2013-12-12 23:12:38 UTC (rev 160508)
@@ -37,17 +37,17 @@
template<typename U> bool send(const U& message)
{
- return send(message, messageSenderDestinationID());
+ return send(message, messageSenderDestinationID(), 0);
}
- template<typename U> bool send(const U& message, uint64_t destinationID)
+ template<typename U> bool send(const U& message, uint64_t destinationID, unsigned messageSendFlags = 0)
{
static_assert(!U::isSync, "Message is sync!");
auto encoder = std::make_unique<MessageEncoder>(U::receiverName(), U::name(), destinationID);
encoder->encode(message.arguments());
- return sendMessage(std::move(encoder));
+ return sendMessage(std::move(encoder), messageSendFlags);
}
template<typename T>
@@ -66,7 +66,7 @@
return messageSenderConnection()->sendSync(std::move(message), std::move(reply), destinationID, timeout, syncSendFlags);
}
- bool sendMessage(std::unique_ptr<MessageEncoder>);
+ virtual bool sendMessage(std::unique_ptr<MessageEncoder>, unsigned messageSendFlags);
private:
virtual Connection* messageSenderConnection() = 0;
Modified: trunk/Source/WebKit2/Shared/ChildProcessProxy.h (160507 => 160508)
--- trunk/Source/WebKit2/Shared/ChildProcessProxy.h 2013-12-12 22:55:22 UTC (rev 160507)
+++ trunk/Source/WebKit2/Shared/ChildProcessProxy.h 2013-12-12 23:12:38 UTC (rev 160508)
@@ -66,6 +66,8 @@
PlatformProcessIdentifier processIdentifier() const { return m_processLauncher->processIdentifier(); }
+ bool sendMessage(std::unique_ptr<CoreIPC::MessageEncoder>, unsigned messageSendFlags);
+
protected:
void clearConnection();
void abortProcessLaunchIfNeeded();
@@ -81,8 +83,6 @@
virtual void connectionWillOpen(CoreIPC::Connection*);
virtual void connectionWillClose(CoreIPC::Connection*);
- bool sendMessage(std::unique_ptr<CoreIPC::MessageEncoder>, unsigned messageSendFlags);
-
Vector<std::pair<std::unique_ptr<CoreIPC::MessageEncoder>, unsigned>> m_pendingMessages;
RefPtr<ProcessLauncher> m_processLauncher;
RefPtr<CoreIPC::Connection> m_connection;
Modified: trunk/Source/WebKit2/Shared/WebConnection.cpp (160507 => 160508)
--- trunk/Source/WebKit2/Shared/WebConnection.cpp 2013-12-12 22:55:22 UTC (rev 160507)
+++ trunk/Source/WebKit2/Shared/WebConnection.cpp 2013-12-12 23:12:38 UTC (rev 160508)
@@ -55,7 +55,7 @@
encoder->encode(messageName);
encodeMessageBody(*encoder, messageBody);
- sendMessage(std::move(encoder));
+ sendMessage(std::move(encoder), 0);
}
void WebConnection::didClose()
Modified: trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp (160507 => 160508)
--- trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp 2013-12-12 22:55:22 UTC (rev 160507)
+++ trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp 2013-12-12 23:12:38 UTC (rev 160508)
@@ -525,13 +525,13 @@
process().send(Messages::WebProcess::CreateWebPage(m_pageID, m_creationParameters), 0);
#if ENABLE(PAGE_VISIBILITY_API)
- process().send(Messages::WebPage::SetVisibilityState(m_visibilityState, /* isInitialState */ true), m_pageID);
+ send(Messages::WebPage::SetVisibilityState(m_visibilityState, /* isInitialState */ true));
#elif ENABLE(HIDDEN_PAGE_DOM_TIMER_THROTTLING)
- process().send(Messages::WebPage::SetVisibilityState(isViewVisible() ? PageVisibilityStateVisible : PageVisibilityStateHidden, /* isInitialState */ true), m_pageID);
+ send(Messages::WebPage::SetVisibilityState(isViewVisible() ? PageVisibilityStateVisible : PageVisibilityStateHidden, /* isInitialState */ true));
#endif
#if PLATFORM(MAC)
- process().send(Messages::WebPage::SetSmartInsertDeleteEnabled(m_isSmartInsertDeleteEnabled), m_pageID);
+ send(Messages::WebPage::SetSmartInsertDeleteEnabled(m_isSmartInsertDeleteEnabled));
#endif
}
@@ -3092,6 +3092,21 @@
m_findClient.didFailToFindString(this, string);
}
+bool WebPageProxy::sendMessage(std::unique_ptr<CoreIPC::MessageEncoder> encoder, unsigned messageSendFlags)
+{
+ return m_process->sendMessage(std::move(encoder), messageSendFlags);
+}
+
+CoreIPC::Connection* WebPageProxy::messageSenderConnection()
+{
+ return m_process->connection();
+}
+
+uint64_t WebPageProxy::messageSenderDestinationID()
+{
+ return m_pageID;
+}
+
void WebPageProxy::valueChangedForPopupMenu(WebPopupMenuProxy*, int32_t newSelectedIndex)
{
m_process->send(Messages::WebPage::DidChangeSelectedIndexForActivePopupMenu(newSelectedIndex), m_pageID);
Modified: trunk/Source/WebKit2/UIProcess/WebPageProxy.h (160507 => 160508)
--- trunk/Source/WebKit2/UIProcess/WebPageProxy.h 2013-12-12 22:55:22 UTC (rev 160507)
+++ trunk/Source/WebKit2/UIProcess/WebPageProxy.h 2013-12-12 23:12:38 UTC (rev 160508)
@@ -34,6 +34,7 @@
#include "EditorState.h"
#include "GeolocationPermissionRequestManagerProxy.h"
#include "LayerTreeContext.h"
+#include "MessageSender.h"
#include "NotificationPermissionRequestManagerProxy.h"
#include "PageLoadState.h"
#include "PlatformProcessIdentifier.h"
@@ -313,13 +314,13 @@
};
#endif
-class WebPageProxy
- : public API::ObjectImpl<API::Object::Type::Page>
+class WebPageProxy : public API::ObjectImpl<API::Object::Type::Page>
#if ENABLE(INPUT_TYPE_COLOR)
, public WebColorPicker::Client
#endif
, public WebPopupMenuProxy::Client
- , public CoreIPC::MessageReceiver {
+ , public CoreIPC::MessageReceiver
+ , public CoreIPC::MessageSender {
public:
static PassRefPtr<WebPageProxy> create(PageClient&, WebProcessProxy&, WebPageGroup&, uint64_t pageID);
@@ -863,6 +864,11 @@
virtual void didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageDecoder&) OVERRIDE;
virtual void didReceiveSyncMessage(CoreIPC::Connection*, CoreIPC::MessageDecoder&, std::unique_ptr<CoreIPC::MessageEncoder>&) OVERRIDE;
+ // CoreIPC::MessageSender
+ virtual bool sendMessage(std::unique_ptr<CoreIPC::MessageEncoder>, unsigned messageSendFlags) OVERRIDE;
+ virtual CoreIPC::Connection* messageSenderConnection() OVERRIDE;
+ virtual uint64_t messageSenderDestinationID() OVERRIDE;
+
// WebPopupMenuProxy::Client
virtual void valueChangedForPopupMenu(WebPopupMenuProxy*, int32_t newSelectedIndex);
virtual void setTextFromItemForPopupMenu(WebPopupMenuProxy*, int32_t index);