Diff
Modified: trunk/Source/WebKit2/ChangeLog (142777 => 142778)
--- trunk/Source/WebKit2/ChangeLog 2013-02-13 20:52:05 UTC (rev 142777)
+++ trunk/Source/WebKit2/ChangeLog 2013-02-13 20:58:15 UTC (rev 142778)
@@ -1,3 +1,28 @@
+2013-02-13 Anders Carlsson <[email protected]>
+
+ EventDispatcher should be a WorkQueueMessageReceiver
+ https://bugs.webkit.org/show_bug.cgi?id=109736
+
+ Reviewed by Andreas Kling.
+
+ * WebProcess/WebPage/EventDispatcher.cpp:
+ (WebKit::EventDispatcher::create):
+ (WebKit):
+ (WebKit::EventDispatcher::EventDispatcher):
+ (WebKit::EventDispatcher::initializeConnection):
+ (WebKit::EventDispatcher::wheelEvent):
+ (WebKit::EventDispatcher::gestureEvent):
+ * WebProcess/WebPage/EventDispatcher.h:
+ (EventDispatcher):
+ * WebProcess/WebPage/EventDispatcher.messages.in:
+ * WebProcess/WebProcess.cpp:
+ (WebKit::WebProcess::WebProcess):
+ (WebKit::WebProcess::initializeConnection):
+ * WebProcess/WebProcess.h:
+ (WebKit):
+ (WebKit::WebProcess::eventDispatcher):
+ (WebProcess):
+
2013-02-13 Christophe Dumez <[email protected]>
Unreviewed build fix after r142768.
Modified: trunk/Source/WebKit2/WebProcess/WebPage/EventDispatcher.cpp (142777 => 142778)
--- trunk/Source/WebKit2/WebProcess/WebPage/EventDispatcher.cpp 2013-02-13 20:52:05 UTC (rev 142777)
+++ trunk/Source/WebKit2/WebProcess/WebPage/EventDispatcher.cpp 2013-02-13 20:58:15 UTC (rev 142778)
@@ -46,7 +46,13 @@
namespace WebKit {
+PassRefPtr<EventDispatcher> EventDispatcher::create()
+{
+ return adoptRef(new EventDispatcher);
+}
+
EventDispatcher::EventDispatcher()
+ : m_queue(WorkQueue::create("com.apple.WebKit.EventDispatcher"))
{
}
@@ -75,23 +81,11 @@
void EventDispatcher::initializeConnection(CoreIPC::Connection* connection)
{
- connection->addQueueClient(this);
+ connection->addWorkQueueMessageReceiver(Messages::EventDispatcher::messageReceiverName(), m_queue.get(), this);
}
-void EventDispatcher::didReceiveMessageOnConnectionWorkQueue(CoreIPC::Connection* connection, OwnPtr<CoreIPC::MessageDecoder>& decoder)
+void EventDispatcher::wheelEvent(uint64_t pageID, const WebWheelEvent& wheelEvent, bool canGoBack, bool canGoForward)
{
- if (decoder->messageReceiverName() == Messages::EventDispatcher::messageReceiverName()) {
- didReceiveEventDispatcherMessageOnConnectionWorkQueue(connection, decoder);
- return;
- }
-}
-
-void EventDispatcher::didCloseOnConnectionWorkQueue(CoreIPC::Connection*)
-{
-}
-
-void EventDispatcher::wheelEvent(CoreIPC::Connection*, uint64_t pageID, const WebWheelEvent& wheelEvent, bool canGoBack, bool canGoForward)
-{
#if ENABLE(THREADED_SCROLLING)
MutexLocker locker(m_scrollingTreesMutex);
if (ScrollingTree* scrollingTree = m_scrollingTrees.get(pageID).get()) {
@@ -119,7 +113,7 @@
}
#if ENABLE(GESTURE_EVENTS)
-void EventDispatcher::gestureEvent(CoreIPC::Connection*, uint64_t pageID, const WebGestureEvent& gestureEvent)
+void EventDispatcher::gestureEvent(uint64_t pageID, const WebGestureEvent& gestureEvent)
{
RunLoop::main()->dispatch(bind(&EventDispatcher::dispatchGestureEvent, this, pageID, gestureEvent));
}
Modified: trunk/Source/WebKit2/WebProcess/WebPage/EventDispatcher.h (142777 => 142778)
--- trunk/Source/WebKit2/WebProcess/WebPage/EventDispatcher.h 2013-02-13 20:52:05 UTC (rev 142777)
+++ trunk/Source/WebKit2/WebProcess/WebPage/EventDispatcher.h 2013-02-13 20:58:15 UTC (rev 142778)
@@ -46,11 +46,9 @@
class WebGestureEvent;
#endif
-class EventDispatcher : private CoreIPC::Connection::QueueClient {
- WTF_MAKE_NONCOPYABLE(EventDispatcher);
-
+class EventDispatcher : public CoreIPC::Connection::WorkQueueMessageReceiver {
public:
- EventDispatcher();
+ static PassRefPtr<EventDispatcher> create();
~EventDispatcher();
#if ENABLE(THREADED_SCROLLING)
@@ -61,17 +59,15 @@
void initializeConnection(CoreIPC::Connection*);
private:
- // CoreIPC::Connection::QueueClient
- virtual void didReceiveMessageOnConnectionWorkQueue(CoreIPC::Connection*, OwnPtr<CoreIPC::MessageDecoder>&) OVERRIDE;
- virtual void didCloseOnConnectionWorkQueue(CoreIPC::Connection*) OVERRIDE;
+ EventDispatcher();
- // Implemented in generated EventDispatcherMessageReceiver.cpp
- void didReceiveEventDispatcherMessageOnConnectionWorkQueue(CoreIPC::Connection*, OwnPtr<CoreIPC::MessageDecoder>&);
+ // CoreIPC::Connection::WorkQueueMessageReceiver.
+ virtual void didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageDecoder&) OVERRIDE;
// Message handlers
- void wheelEvent(CoreIPC::Connection*, uint64_t pageID, const WebWheelEvent&, bool canGoBack, bool canGoForward);
+ void wheelEvent(uint64_t pageID, const WebWheelEvent&, bool canGoBack, bool canGoForward);
#if ENABLE(GESTURE_EVENTS)
- void gestureEvent(CoreIPC::Connection*, uint64_t pageID, const WebGestureEvent&);
+ void gestureEvent(uint64_t pageID, const WebGestureEvent&);
#endif
// This is called on the main thread.
@@ -83,6 +79,7 @@
#if ENABLE(THREADED_SCROLLING)
void sendDidReceiveEvent(uint64_t pageID, const WebEvent&, bool didHandleEvent);
+ RefPtr<WorkQueue> m_queue;
Mutex m_scrollingTreesMutex;
HashMap<uint64_t, RefPtr<WebCore::ScrollingTree> > m_scrollingTrees;
#endif
Modified: trunk/Source/WebKit2/WebProcess/WebPage/EventDispatcher.messages.in (142777 => 142778)
--- trunk/Source/WebKit2/WebProcess/WebPage/EventDispatcher.messages.in 2013-02-13 20:52:05 UTC (rev 142777)
+++ trunk/Source/WebKit2/WebProcess/WebPage/EventDispatcher.messages.in 2013-02-13 20:58:15 UTC (rev 142778)
@@ -20,11 +20,11 @@
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-messages -> EventDispatcher LegacyReceiver {
- WheelEvent(uint64_t pageID, WebKit::WebWheelEvent event, bool canGoBack, bool canGoForward) DispatchOnConnectionQueue
+messages -> EventDispatcher {
+ WheelEvent(uint64_t pageID, WebKit::WebWheelEvent event, bool canGoBack, bool canGoForward)
#if ENABLE(GESTURE_EVENTS)
- GestureEvent(uint64_t pageID, WebKit::WebGestureEvent event) DispatchOnConnectionQueue
+ GestureEvent(uint64_t pageID, WebKit::WebGestureEvent event)
#endif
}
Modified: trunk/Source/WebKit2/WebProcess/WebProcess.cpp (142777 => 142778)
--- trunk/Source/WebKit2/WebProcess/WebProcess.cpp 2013-02-13 20:52:05 UTC (rev 142777)
+++ trunk/Source/WebKit2/WebProcess/WebProcess.cpp 2013-02-13 20:58:15 UTC (rev 142778)
@@ -27,6 +27,7 @@
#include "WebProcess.h"
#include "AuthenticationManager.h"
+#include "EventDispatcher.h"
#include "InjectedBundle.h"
#include "InjectedBundleUserMessageCoders.h"
#include "Logging.h"
@@ -137,7 +138,8 @@
}
WebProcess::WebProcess()
- : m_inDidClose(false)
+ : m_eventDispatcher(EventDispatcher::create())
+ , m_inDidClose(false)
, m_shouldTrackVisitedLinks(true)
, m_hasSetCacheModel(false)
, m_cacheModel(CacheModelDocumentViewer)
@@ -208,7 +210,7 @@
connection->setShouldExitOnSyncMessageSendFailure(true);
- m_eventDispatcher.initializeConnection(connection);
+ m_eventDispatcher->initializeConnection(connection);
#if ENABLE(PLUGIN_PROCESS)
m_pluginProcessConnectionManager->initializeConnection(connection);
Modified: trunk/Source/WebKit2/WebProcess/WebProcess.h (142777 => 142778)
--- trunk/Source/WebKit2/WebProcess/WebProcess.h 2013-02-13 20:52:05 UTC (rev 142777)
+++ trunk/Source/WebKit2/WebProcess/WebProcess.h 2013-02-13 20:58:15 UTC (rev 142778)
@@ -29,7 +29,6 @@
#include "CacheModel.h"
#include "ChildProcess.h"
#include "DownloadManager.h"
-#include "EventDispatcher.h"
#include "ResourceCachesToClear.h"
#include "SandboxExtension.h"
#include "SharedMemory.h"
@@ -72,6 +71,7 @@
namespace WebKit {
class DownloadManager;
+class EventDispatcher;
class InjectedBundle;
class PluginProcessConnectionManager;
class WebConnectionToUIProcess;
@@ -165,7 +165,7 @@
PluginProcessConnectionManager& pluginProcessConnectionManager();
#endif
- EventDispatcher& eventDispatcher() { return m_eventDispatcher; }
+ EventDispatcher& eventDispatcher() { return *m_eventDispatcher; }
#if ENABLE(NETWORK_PROCESS)
NetworkProcessConnection* networkConnection();
@@ -270,7 +270,7 @@
HashMap<uint64_t, RefPtr<WebPageGroupProxy> > m_pageGroupMap;
RefPtr<InjectedBundle> m_injectedBundle;
- EventDispatcher m_eventDispatcher;
+ RefPtr<EventDispatcher> m_eventDispatcher;
bool m_inDidClose;