Title: [92256] trunk/Source/WebCore
Revision
92256
Author
hay...@chromium.org
Date
2011-08-02 20:25:57 -0700 (Tue, 02 Aug 2011)

Log Message

Make EventDispatchMediator RefCounted.
https://bugs.webkit.org/show_bug.cgi?id=65529

Reviewed by Dimitri Glazkov.

Make EventDispatchMediator RefCounted so that it can be enqueued into a
ScopedEventQueue and called later.
A necessary change for ScopedEventQueue should be addressed in another patch.

No changes to functionality so no new tests.

* dom/Event.cpp:
(WebCore::EventDispatchMediator::create):
* dom/Event.h:
* dom/EventDispatcher.cpp:
(WebCore::EventDispatcher::dispatchEvent):
* dom/EventDispatcher.h:
* dom/KeyboardEvent.cpp:
(WebCore::KeyboardEventDispatchMediator::create):
* dom/KeyboardEvent.h:
* dom/MouseEvent.cpp:
(WebCore::MouseEventDispatchMediator::create):
* dom/MouseEvent.h:
* dom/Node.cpp:
(WebCore::Node::dispatchEvent):
(WebCore::Node::dispatchKeyEvent):
(WebCore::Node::dispatchMouseEvent):
(WebCore::Node::dispatchWheelEvent):
* dom/WheelEvent.cpp:
(WebCore::WheelEventDispatchMediator::create):
* dom/WheelEvent.h:

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (92255 => 92256)


--- trunk/Source/WebCore/ChangeLog	2011-08-03 02:52:17 UTC (rev 92255)
+++ trunk/Source/WebCore/ChangeLog	2011-08-03 03:25:57 UTC (rev 92256)
@@ -1,3 +1,37 @@
+2011-08-02  Hayato Ito  <hay...@chromium.org>
+
+        Make EventDispatchMediator RefCounted.
+        https://bugs.webkit.org/show_bug.cgi?id=65529
+
+        Reviewed by Dimitri Glazkov.
+
+        Make EventDispatchMediator RefCounted so that it can be enqueued into a
+        ScopedEventQueue and called later.
+        A necessary change for ScopedEventQueue should be addressed in another patch.
+
+        No changes to functionality so no new tests.
+
+        * dom/Event.cpp:
+        (WebCore::EventDispatchMediator::create):
+        * dom/Event.h:
+        * dom/EventDispatcher.cpp:
+        (WebCore::EventDispatcher::dispatchEvent):
+        * dom/EventDispatcher.h:
+        * dom/KeyboardEvent.cpp:
+        (WebCore::KeyboardEventDispatchMediator::create):
+        * dom/KeyboardEvent.h:
+        * dom/MouseEvent.cpp:
+        (WebCore::MouseEventDispatchMediator::create):
+        * dom/MouseEvent.h:
+        * dom/Node.cpp:
+        (WebCore::Node::dispatchEvent):
+        (WebCore::Node::dispatchKeyEvent):
+        (WebCore::Node::dispatchMouseEvent):
+        (WebCore::Node::dispatchWheelEvent):
+        * dom/WheelEvent.cpp:
+        (WebCore::WheelEventDispatchMediator::create):
+        * dom/WheelEvent.h:
+
 2011-08-02  David Reveman  <reve...@chromium.org>
 
         [Chromium] Use edge-distance method for layer anti-aliasing.

Modified: trunk/Source/WebCore/dom/Event.cpp (92255 => 92256)


--- trunk/Source/WebCore/dom/Event.cpp	2011-08-03 02:52:17 UTC (rev 92255)
+++ trunk/Source/WebCore/dom/Event.cpp	2011-08-03 03:25:57 UTC (rev 92256)
@@ -289,6 +289,11 @@
     m_underlyingEvent = ue;
 }
 
+PassRefPtr<EventDispatchMediator> EventDispatchMediator::create(PassRefPtr<Event> event)
+{
+    return adoptRef(new EventDispatchMediator(event));
+}
+
 EventDispatchMediator::EventDispatchMediator(PassRefPtr<Event> event)
     : m_event(event)
 {

Modified: trunk/Source/WebCore/dom/Event.h (92255 => 92256)


--- trunk/Source/WebCore/dom/Event.h	2011-08-03 02:52:17 UTC (rev 92255)
+++ trunk/Source/WebCore/dom/Event.h	2011-08-03 03:25:57 UTC (rev 92256)
@@ -199,14 +199,15 @@
         RefPtr<Event> m_underlyingEvent;
     };
 
-class EventDispatchMediator {
+class EventDispatchMediator : public RefCounted<Event> {
 public:
-    explicit EventDispatchMediator(PassRefPtr<Event>);
+    static PassRefPtr<EventDispatchMediator> create(PassRefPtr<Event>);
     virtual ~EventDispatchMediator();
 
     virtual bool dispatchEvent(EventDispatcher*) const;
 
 protected:
+    explicit EventDispatchMediator(PassRefPtr<Event>);
     EventDispatchMediator();
 
     Event* event() const;

Modified: trunk/Source/WebCore/dom/EventDispatcher.cpp (92255 => 92256)


--- trunk/Source/WebCore/dom/EventDispatcher.cpp	2011-08-03 02:52:17 UTC (rev 92255)
+++ trunk/Source/WebCore/dom/EventDispatcher.cpp	2011-08-03 03:25:57 UTC (rev 92256)
@@ -46,12 +46,12 @@
 
 static HashSet<Node*>* gNodesDispatchingSimulatedClicks = 0;
 
-bool EventDispatcher::dispatchEvent(Node* node, const EventDispatchMediator& mediator)
+bool EventDispatcher::dispatchEvent(Node* node, PassRefPtr<EventDispatchMediator> mediator)
 {
     ASSERT(!eventDispatchForbidden());
 
     EventDispatcher dispatcher(node);
-    return mediator.dispatchEvent(&dispatcher);
+    return mediator->dispatchEvent(&dispatcher);
 }
 
 static EventTarget* findElementInstance(Node* referenceNode)

Modified: trunk/Source/WebCore/dom/EventDispatcher.h (92255 => 92256)


--- trunk/Source/WebCore/dom/EventDispatcher.h	2011-08-03 02:52:17 UTC (rev 92255)
+++ trunk/Source/WebCore/dom/EventDispatcher.h	2011-08-03 03:25:57 UTC (rev 92256)
@@ -48,8 +48,9 @@
 
 class EventDispatcher {
 public:
-    static bool dispatchEvent(Node*, const EventDispatchMediator&);
+    static bool dispatchEvent(Node*, PassRefPtr<EventDispatchMediator>);
     static void dispatchScopedEvent(Node*, PassRefPtr<Event>);
+    static void dispatchScopedEventDispatchMediator(Node*, PassRefPtr<EventDispatchMediator>);
 
     static void dispatchSimulatedClick(Node*, PassRefPtr<Event> underlyingEvent, bool sendMouseEvents, bool showPressedLook);
 

Modified: trunk/Source/WebCore/dom/KeyboardEvent.cpp (92255 => 92256)


--- trunk/Source/WebCore/dom/KeyboardEvent.cpp	2011-08-03 02:52:17 UTC (rev 92255)
+++ trunk/Source/WebCore/dom/KeyboardEvent.cpp	2011-08-03 03:25:57 UTC (rev 92256)
@@ -159,6 +159,11 @@
     return 0;
 }
 
+PassRefPtr<KeyboardEventDispatchMediator> KeyboardEventDispatchMediator::create(PassRefPtr<KeyboardEvent> event)
+{
+    return adoptRef(new KeyboardEventDispatchMediator(event));
+}
+
 KeyboardEventDispatchMediator::KeyboardEventDispatchMediator(PassRefPtr<KeyboardEvent> event)
     : EventDispatchMediator(event)
 {

Modified: trunk/Source/WebCore/dom/KeyboardEvent.h (92255 => 92256)


--- trunk/Source/WebCore/dom/KeyboardEvent.h	2011-08-03 02:52:17 UTC (rev 92255)
+++ trunk/Source/WebCore/dom/KeyboardEvent.h	2011-08-03 03:25:57 UTC (rev 92256)
@@ -117,9 +117,9 @@
 
 class KeyboardEventDispatchMediator : public EventDispatchMediator {
 public:
+    static PassRefPtr<KeyboardEventDispatchMediator> create(PassRefPtr<KeyboardEvent>);
+private:
     explicit KeyboardEventDispatchMediator(PassRefPtr<KeyboardEvent>);
-
-private:
     virtual bool dispatchEvent(EventDispatcher*) const;
 };
 

Modified: trunk/Source/WebCore/dom/MouseEvent.cpp (92255 => 92256)


--- trunk/Source/WebCore/dom/MouseEvent.cpp	2011-08-03 02:52:17 UTC (rev 92255)
+++ trunk/Source/WebCore/dom/MouseEvent.cpp	2011-08-03 03:25:57 UTC (rev 92256)
@@ -159,6 +159,11 @@
     }
 }
 
+PassRefPtr<MouseEventDispatchMediator> MouseEventDispatchMediator::create(PassRefPtr<MouseEvent> mouseEvent)
+{
+    return adoptRef(new MouseEventDispatchMediator(mouseEvent));
+}
+
 MouseEventDispatchMediator::MouseEventDispatchMediator(PassRefPtr<MouseEvent> mouseEvent)
     : EventDispatchMediator(mouseEvent)
 {

Modified: trunk/Source/WebCore/dom/MouseEvent.h (92255 => 92256)


--- trunk/Source/WebCore/dom/MouseEvent.h	2011-08-03 02:52:17 UTC (rev 92255)
+++ trunk/Source/WebCore/dom/MouseEvent.h	2011-08-03 03:25:57 UTC (rev 92256)
@@ -100,9 +100,10 @@
 
 class MouseEventDispatchMediator : public EventDispatchMediator {
 public:
-    explicit MouseEventDispatchMediator(PassRefPtr<MouseEvent>);
+    static PassRefPtr<MouseEventDispatchMediator> create(PassRefPtr<MouseEvent>);
 
 private:
+    explicit MouseEventDispatchMediator(PassRefPtr<MouseEvent>);
     MouseEvent* event() const;
 
     virtual bool dispatchEvent(EventDispatcher*) const;

Modified: trunk/Source/WebCore/dom/Node.cpp (92255 => 92256)


--- trunk/Source/WebCore/dom/Node.cpp	2011-08-03 02:52:17 UTC (rev 92255)
+++ trunk/Source/WebCore/dom/Node.cpp	2011-08-03 03:25:57 UTC (rev 92256)
@@ -2714,7 +2714,7 @@
 
 bool Node::dispatchEvent(PassRefPtr<Event> event)
 {
-    return EventDispatcher::dispatchEvent(this, EventDispatchMediator(event));
+    return EventDispatcher::dispatchEvent(this, EventDispatchMediator::create(event));
 }
 
 void Node::dispatchSubtreeModifiedEvent()
@@ -2746,13 +2746,13 @@
 
 bool Node::dispatchKeyEvent(const PlatformKeyboardEvent& event)
 {
-    return EventDispatcher::dispatchEvent(this, KeyboardEventDispatchMediator(KeyboardEvent::create(event, document()->defaultView())));
+    return EventDispatcher::dispatchEvent(this, KeyboardEventDispatchMediator::create(KeyboardEvent::create(event, document()->defaultView())));
 }
 
 bool Node::dispatchMouseEvent(const PlatformMouseEvent& event, const AtomicString& eventType,
     int detail, Node* relatedTarget)
 {
-    return EventDispatcher::dispatchEvent(this, MouseEventDispatchMediator(MouseEvent::create(eventType, document()->defaultView(), event, detail, relatedTarget)));
+    return EventDispatcher::dispatchEvent(this, MouseEventDispatchMediator::create(MouseEvent::create(eventType, document()->defaultView(), event, detail, relatedTarget)));
 }
 
 void Node::dispatchSimulatedClick(PassRefPtr<Event> event, bool sendMouseEvents, bool showPressedLook)
@@ -2762,7 +2762,7 @@
 
 bool Node::dispatchWheelEvent(const PlatformWheelEvent& event)
 {
-    return EventDispatcher::dispatchEvent(this, WheelEventDispatchMediator(event, document()->defaultView()));
+    return EventDispatcher::dispatchEvent(this, WheelEventDispatchMediator::create(event, document()->defaultView()));
 }
 
 void Node::dispatchFocusEvent()

Modified: trunk/Source/WebCore/dom/WheelEvent.cpp (92255 => 92256)


--- trunk/Source/WebCore/dom/WheelEvent.cpp	2011-08-03 02:52:17 UTC (rev 92255)
+++ trunk/Source/WebCore/dom/WheelEvent.cpp	2011-08-03 03:25:57 UTC (rev 92256)
@@ -91,6 +91,11 @@
     return event.granularity() == ScrollByPageWheelEvent ? WheelEvent::Page : WheelEvent::Pixel;
 }
 
+PassRefPtr<WheelEventDispatchMediator> WheelEventDispatchMediator::create(const PlatformWheelEvent& event, PassRefPtr<AbstractView> view)
+{
+    return adoptRef(new WheelEventDispatchMediator(event, view));
+}
+
 WheelEventDispatchMediator::WheelEventDispatchMediator(const PlatformWheelEvent& event, PassRefPtr<AbstractView> view)
 {
     if (!(event.deltaX() || event.deltaY()))

Modified: trunk/Source/WebCore/dom/WheelEvent.h (92255 => 92256)


--- trunk/Source/WebCore/dom/WheelEvent.h	2011-08-03 02:52:17 UTC (rev 92255)
+++ trunk/Source/WebCore/dom/WheelEvent.h	2011-08-03 03:25:57 UTC (rev 92256)
@@ -83,9 +83,9 @@
 
 class WheelEventDispatchMediator : public EventDispatchMediator {
 public:
+    static PassRefPtr<WheelEventDispatchMediator> create(const PlatformWheelEvent&, PassRefPtr<AbstractView>);
+private:
     WheelEventDispatchMediator(const PlatformWheelEvent&, PassRefPtr<AbstractView>);
-
-private:
     WheelEvent* event() const;
     virtual bool dispatchEvent(EventDispatcher*) const;
 };
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to