RESOLVED FIXED 64249
Implement proper handling of focusin/focusout events in regard to shadow DOM boundaries.
https://bugs.webkit.org/show_bug.cgi?id=64249
Summary Implement proper handling of focusin/focusout events in regard to shadow DOM ...
Hayato Ito
Reported 2011-07-10 21:19:11 PDT
Implement proper handling of focusin/focusout events in regard to shadow DOM boundaries.
Attachments
wip (33.00 KB, patch)
2011-08-02 01:44 PDT, Hayato Ito
no flags
introduce FocusIn/FocusOutEventDispatchMediator (17.81 KB, patch)
2011-08-12 00:58 PDT, Hayato Ito
dglazkov: review+
Hayato Ito
Comment 1 2011-08-02 01:44:55 PDT
Hayato Ito
Comment 2 2011-08-02 01:58:43 PDT
The patch is not ready for review. I am going to break this patch into several patches as follows: 1). At first, make EventDispatchMediator RefCountable object. 2). Second, update ScopedEventQueue so that it can queue EventDispatchMediator. 3). Next, fix a small bug for EventDispatcher::dispatchEvent. 4). At last, introduce FocusInEventDispatchMediator / FocusOutEventDispatchMediator.
Hayato Ito
Comment 3 2011-08-12 00:58:41 PDT
Created attachment 103750 [details] introduce FocusIn/FocusOutEventDispatchMediator
Hayato Ito
Comment 4 2011-08-12 01:01:19 PDT
All separated patches have been landed. The patch is ready for a review.
Dimitri Glazkov (Google)
Comment 5 2011-08-12 10:22:37 PDT
Comment on attachment 103750 [details] introduce FocusIn/FocusOutEventDispatchMediator View in context: https://bugs.webkit.org/attachment.cgi?id=103750&action=review > Source/WebCore/dom/Event.h:249 > +class FocusInEventDispatchMediator : public EventDispatchMediator { > +public: > + static PassRefPtr<FocusInEventDispatchMediator> create(PassRefPtr<Event>, PassRefPtr<Node> oldFocusedNode); > +private: > + explicit FocusInEventDispatchMediator(PassRefPtr<Event>, PassRefPtr<Node> oldFocusedNode); > + virtual bool dispatchEvent(EventDispatcher*) const; > + RefPtr<Node> m_oldFocusedNode; > +}; > + > +class FocusOutEventDispatchMediator : public EventDispatchMediator { > +public: > + static PassRefPtr<FocusOutEventDispatchMediator> create(PassRefPtr<Event>, PassRefPtr<Node> newFocusedNode); > +private: > + explicit FocusOutEventDispatchMediator(PassRefPtr<Event>, PassRefPtr<Node> newFocusedNode); > + virtual bool dispatchEvent(EventDispatcher*) const; > + RefPtr<Node> m_newFocusedNode; > +}; Should these go into UIEvent.h/cpp? > Source/WebCore/dom/Node.cpp:2826 > + dispatchDOMActivateEvent(detail, event); Nice!
Hayato Ito
Comment 6 2011-08-15 03:57:49 PDT
Thank you for the review. (In reply to comment #5) > (From update of attachment 103750 [details]) > View in context: https://bugs.webkit.org/attachment.cgi?id=103750&action=review > Should these go into UIEvent.h/cpp? Sure. After moving that, I'll land this patch.
Hayato Ito
Comment 7 2011-08-15 04:02:31 PDT
Note You need to log in before you can comment on or make changes to this bug.