Changeset 142719 in webkit


Ignore:
Timestamp:
Feb 12, 2013 10:09:16 PM (11 years ago)
Author:
hayato@chromium.org
Message:

Use FocusEvent.relatedTarget in {FocusIn,FocusOut,Focus,Blur}EventDispatchMediator.
https://bugs.webkit.org/show_bug.cgi?id=109650

Reviewed by Dimitri Glazkov.

Set FocusEvent.relatedTarget in its constructor so that each
EventDispatchMediator can use FocusEvent.relatedTarget rather than
its redundant m_{old,new}FocusedNode member variable.

I've also removed FIXME comments, mentioning bug 109261, since I
can not reproduce the issue.

No new tests. No change in functionality.

  • dom/FocusEvent.cpp:

(WebCore::FocusEventDispatchMediator::create):
(WebCore::FocusEventDispatchMediator::FocusEventDispatchMediator):
(WebCore::FocusEventDispatchMediator::dispatchEvent):
(WebCore::BlurEventDispatchMediator::create):
(WebCore::BlurEventDispatchMediator::BlurEventDispatchMediator):
(WebCore::BlurEventDispatchMediator::dispatchEvent):
(WebCore::FocusInEventDispatchMediator::create):
(WebCore::FocusInEventDispatchMediator::FocusInEventDispatchMediator):
(WebCore::FocusInEventDispatchMediator::dispatchEvent):
(WebCore::FocusOutEventDispatchMediator::create):
(WebCore::FocusOutEventDispatchMediator::FocusOutEventDispatchMediator):
(WebCore::FocusOutEventDispatchMediator::dispatchEvent):

  • dom/FocusEvent.h:

(FocusEventDispatchMediator):
(BlurEventDispatchMediator):
(FocusInEventDispatchMediator):
(FocusOutEventDispatchMediator):

  • dom/Node.cpp:

(WebCore::Node::dispatchFocusInEvent):
(WebCore::Node::dispatchFocusOutEvent):
(WebCore::Node::dispatchFocusEvent):
(WebCore::Node::dispatchBlurEvent):

Location:
trunk/Source/WebCore
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r142717 r142719  
     12013-02-12  Hayato Ito  <hayato@chromium.org>
     2
     3        Use FocusEvent.relatedTarget in {FocusIn,FocusOut,Focus,Blur}EventDispatchMediator.
     4        https://bugs.webkit.org/show_bug.cgi?id=109650
     5
     6        Reviewed by Dimitri Glazkov.
     7
     8        Set FocusEvent.relatedTarget in its constructor so that each
     9        EventDispatchMediator can use FocusEvent.relatedTarget rather than
     10        its redundant m_{old,new}FocusedNode member variable.
     11
     12        I've also removed FIXME comments, mentioning bug 109261, since I
     13        can not reproduce the issue.
     14
     15        No new tests. No change in functionality.
     16
     17        * dom/FocusEvent.cpp:
     18        (WebCore::FocusEventDispatchMediator::create):
     19        (WebCore::FocusEventDispatchMediator::FocusEventDispatchMediator):
     20        (WebCore::FocusEventDispatchMediator::dispatchEvent):
     21        (WebCore::BlurEventDispatchMediator::create):
     22        (WebCore::BlurEventDispatchMediator::BlurEventDispatchMediator):
     23        (WebCore::BlurEventDispatchMediator::dispatchEvent):
     24        (WebCore::FocusInEventDispatchMediator::create):
     25        (WebCore::FocusInEventDispatchMediator::FocusInEventDispatchMediator):
     26        (WebCore::FocusInEventDispatchMediator::dispatchEvent):
     27        (WebCore::FocusOutEventDispatchMediator::create):
     28        (WebCore::FocusOutEventDispatchMediator::FocusOutEventDispatchMediator):
     29        (WebCore::FocusOutEventDispatchMediator::dispatchEvent):
     30        * dom/FocusEvent.h:
     31        (FocusEventDispatchMediator):
     32        (BlurEventDispatchMediator):
     33        (FocusInEventDispatchMediator):
     34        (FocusOutEventDispatchMediator):
     35        * dom/Node.cpp:
     36        (WebCore::Node::dispatchFocusInEvent):
     37        (WebCore::Node::dispatchFocusOutEvent):
     38        (WebCore::Node::dispatchFocusEvent):
     39        (WebCore::Node::dispatchBlurEvent):
     40
    1412013-02-12  Takashi Sakamoto  <tasak@google.com>
    242
  • trunk/Source/WebCore/dom/FocusEvent.cpp

    r142713 r142719  
    6565}
    6666
    67 PassRefPtr<FocusEventDispatchMediator> FocusEventDispatchMediator::create(PassRefPtr<FocusEvent> focusEvent, PassRefPtr<Node> oldFocusedNode)
     67PassRefPtr<FocusEventDispatchMediator> FocusEventDispatchMediator::create(PassRefPtr<FocusEvent> focusEvent)
    6868{
    69     return adoptRef(new FocusEventDispatchMediator(focusEvent, oldFocusedNode));
     69    return adoptRef(new FocusEventDispatchMediator(focusEvent));
    7070}
    7171
    72 FocusEventDispatchMediator::FocusEventDispatchMediator(PassRefPtr<FocusEvent> focusEvent, PassRefPtr<Node> oldFocusedNode)
     72FocusEventDispatchMediator::FocusEventDispatchMediator(PassRefPtr<FocusEvent> focusEvent)
    7373    : EventDispatchMediator(focusEvent)
    74     , m_oldFocusedNode(oldFocusedNode)
    7574{
    7675}
     
    7877bool FocusEventDispatchMediator::dispatchEvent(EventDispatcher* dispatcher) const
    7978{
    80     dispatcher->adjustRelatedTarget(event(), m_oldFocusedNode);
     79    dispatcher->adjustRelatedTarget(event(), event()->relatedTarget());
    8180    return EventDispatchMediator::dispatchEvent(dispatcher);
    8281}
    8382
    84 PassRefPtr<BlurEventDispatchMediator> BlurEventDispatchMediator::create(PassRefPtr<FocusEvent> focusEvent, PassRefPtr<Node> newFocusedNode)
     83PassRefPtr<BlurEventDispatchMediator> BlurEventDispatchMediator::create(PassRefPtr<FocusEvent> focusEvent)
    8584{
    86     return adoptRef(new BlurEventDispatchMediator(focusEvent, newFocusedNode));
     85    return adoptRef(new BlurEventDispatchMediator(focusEvent));
    8786}
    8887
    89 BlurEventDispatchMediator::BlurEventDispatchMediator(PassRefPtr<FocusEvent> focusEvent, PassRefPtr<Node> newFocusedNode)
     88BlurEventDispatchMediator::BlurEventDispatchMediator(PassRefPtr<FocusEvent> focusEvent)
    9089    : EventDispatchMediator(focusEvent)
    91     , m_newFocusedNode(newFocusedNode)
    9290{
    9391}
     
    9593bool BlurEventDispatchMediator::dispatchEvent(EventDispatcher* dispatcher) const
    9694{
    97     dispatcher->adjustRelatedTarget(event(), m_newFocusedNode);
     95    dispatcher->adjustRelatedTarget(event(), event()->relatedTarget());
    9896    return EventDispatchMediator::dispatchEvent(dispatcher);
    9997}
    10098
    101 PassRefPtr<FocusInEventDispatchMediator> FocusInEventDispatchMediator::create(PassRefPtr<FocusEvent> focusEvent, PassRefPtr<Node> oldFocusedNode)
     99PassRefPtr<FocusInEventDispatchMediator> FocusInEventDispatchMediator::create(PassRefPtr<FocusEvent> focusEvent)
    102100{
    103     return adoptRef(new FocusInEventDispatchMediator(focusEvent, oldFocusedNode));
     101    return adoptRef(new FocusInEventDispatchMediator(focusEvent));
    104102}
    105103
    106 FocusInEventDispatchMediator::FocusInEventDispatchMediator(PassRefPtr<FocusEvent> focusEvent, PassRefPtr<Node> oldFocusedNode)
     104FocusInEventDispatchMediator::FocusInEventDispatchMediator(PassRefPtr<FocusEvent> focusEvent)
    107105    : EventDispatchMediator(focusEvent)
    108     , m_oldFocusedNode(oldFocusedNode)
    109106{
    110107}
     
    112109bool FocusInEventDispatchMediator::dispatchEvent(EventDispatcher* dispatcher) const
    113110{
    114     dispatcher->adjustRelatedTarget(event(), m_oldFocusedNode);
     111    dispatcher->adjustRelatedTarget(event(), event()->relatedTarget());
    115112    return EventDispatchMediator::dispatchEvent(dispatcher);
    116113}
    117114
    118 PassRefPtr<FocusOutEventDispatchMediator> FocusOutEventDispatchMediator::create(PassRefPtr<FocusEvent> focusEvent, PassRefPtr<Node> newFocusedNode)
     115PassRefPtr<FocusOutEventDispatchMediator> FocusOutEventDispatchMediator::create(PassRefPtr<FocusEvent> focusEvent)
    119116{
    120     return adoptRef(new FocusOutEventDispatchMediator(focusEvent, newFocusedNode));
     117    return adoptRef(new FocusOutEventDispatchMediator(focusEvent));
    121118}
    122119
    123 FocusOutEventDispatchMediator::FocusOutEventDispatchMediator(PassRefPtr<FocusEvent> focusEvent, PassRefPtr<Node> newFocusedNode)
     120FocusOutEventDispatchMediator::FocusOutEventDispatchMediator(PassRefPtr<FocusEvent> focusEvent)
    124121    : EventDispatchMediator(focusEvent)
    125     , m_newFocusedNode(newFocusedNode)
    126122{
    127123}
     
    129125bool FocusOutEventDispatchMediator::dispatchEvent(EventDispatcher* dispatcher) const
    130126{
    131     dispatcher->adjustRelatedTarget(event(), m_newFocusedNode);
     127    dispatcher->adjustRelatedTarget(event(), event()->relatedTarget());
    132128    return EventDispatchMediator::dispatchEvent(dispatcher);
    133129}
  • trunk/Source/WebCore/dom/FocusEvent.h

    r142713 r142719  
    7979class FocusEventDispatchMediator : public EventDispatchMediator {
    8080public:
    81     static PassRefPtr<FocusEventDispatchMediator> create(PassRefPtr<FocusEvent>, PassRefPtr<Node> oldFocusedNode);
     81    static PassRefPtr<FocusEventDispatchMediator> create(PassRefPtr<FocusEvent>);
    8282private:
    83     FocusEventDispatchMediator(PassRefPtr<FocusEvent>, PassRefPtr<Node> oldFocusedNode);
     83    explicit FocusEventDispatchMediator(PassRefPtr<FocusEvent>);
    8484    FocusEvent* event() const { return static_cast<FocusEvent*>(EventDispatchMediator::event()); }
    8585    virtual bool dispatchEvent(EventDispatcher*) const OVERRIDE;
    86     RefPtr<Node> m_oldFocusedNode;
    8786};
    8887
    8988class BlurEventDispatchMediator : public EventDispatchMediator {
    9089public:
    91     static PassRefPtr<BlurEventDispatchMediator> create(PassRefPtr<FocusEvent>, PassRefPtr<Node> newFocusedNode);
     90    static PassRefPtr<BlurEventDispatchMediator> create(PassRefPtr<FocusEvent>);
    9291private:
    93     BlurEventDispatchMediator(PassRefPtr<FocusEvent>, PassRefPtr<Node> newFocusedNode);
     92    explicit BlurEventDispatchMediator(PassRefPtr<FocusEvent>);
    9493    FocusEvent* event() const { return static_cast<FocusEvent*>(EventDispatchMediator::event()); }
    9594    virtual bool dispatchEvent(EventDispatcher*) const OVERRIDE;
    96     RefPtr<Node> m_newFocusedNode;
    9795};
    9896
    9997class FocusInEventDispatchMediator : public EventDispatchMediator {
    10098public:
    101     static PassRefPtr<FocusInEventDispatchMediator> create(PassRefPtr<FocusEvent>, PassRefPtr<Node> oldFocusedNode);
     99    static PassRefPtr<FocusInEventDispatchMediator> create(PassRefPtr<FocusEvent>);
    102100private:
    103     FocusInEventDispatchMediator(PassRefPtr<FocusEvent>, PassRefPtr<Node> oldFocusedNode);
     101    explicit FocusInEventDispatchMediator(PassRefPtr<FocusEvent>);
    104102    FocusEvent* event() const { return static_cast<FocusEvent*>(EventDispatchMediator::event()); }
    105103    virtual bool dispatchEvent(EventDispatcher*) const OVERRIDE;
    106     RefPtr<Node> m_oldFocusedNode;
    107104};
    108105
    109106class FocusOutEventDispatchMediator : public EventDispatchMediator {
    110107public:
    111     static PassRefPtr<FocusOutEventDispatchMediator> create(PassRefPtr<FocusEvent>, PassRefPtr<Node> newFocusedNode);
     108    static PassRefPtr<FocusOutEventDispatchMediator> create(PassRefPtr<FocusEvent>);
    112109private:
    113     FocusOutEventDispatchMediator(PassRefPtr<FocusEvent>, PassRefPtr<Node> newFocusedNode);
     110    explicit FocusOutEventDispatchMediator(PassRefPtr<FocusEvent>);
    114111    FocusEvent* event() const { return static_cast<FocusEvent*>(EventDispatchMediator::event()); }
    115112    virtual bool dispatchEvent(EventDispatcher*) const OVERRIDE;
    116     RefPtr<Node> m_newFocusedNode;
    117113};
    118114
  • trunk/Source/WebCore/dom/Node.cpp

    r142500 r142719  
    23422342    ASSERT(!NoEventDispatchAssertion::isEventDispatchForbidden());
    23432343    ASSERT(eventType == eventNames().focusinEvent || eventType == eventNames().DOMFocusInEvent);
    2344     // FIXME: We should pass oldFocusedNode to FocusEvent::create() and
    2345     // remove oldFocusedNode from FocusInEventDispatchMediator::create().
    2346     // See https://bugs.webkit.org/show_bug.cgi?id=109261
    2347     dispatchScopedEventDispatchMediator(FocusInEventDispatchMediator::create(FocusEvent::create(eventType, true, false, document()->defaultView(), 0, 0), oldFocusedNode));
     2344    dispatchScopedEventDispatchMediator(FocusInEventDispatchMediator::create(FocusEvent::create(eventType, true, false, document()->defaultView(), 0, oldFocusedNode)));
    23482345}
    23492346
     
    23522349    ASSERT(!NoEventDispatchAssertion::isEventDispatchForbidden());
    23532350    ASSERT(eventType == eventNames().focusoutEvent || eventType == eventNames().DOMFocusOutEvent);
    2354     // FIXME: We should pass newFocusedNode to FocusEvent::create() and
    2355     // remove newFocusedNode from FocusOutEventDispatchMediator::create().
    2356     // See https://bugs.webkit.org/show_bug.cgi?id=109261
    2357     dispatchScopedEventDispatchMediator(FocusOutEventDispatchMediator::create(FocusEvent::create(eventType, true, false, document()->defaultView(), 0, 0), newFocusedNode));
     2351    dispatchScopedEventDispatchMediator(FocusOutEventDispatchMediator::create(FocusEvent::create(eventType, true, false, document()->defaultView(), 0, newFocusedNode)));
    23582352}
    23592353
     
    24142408        document()->page()->chrome()->client()->elementDidFocus(this);
    24152409
    2416     // FIXME: We should pass oldFocusedNode to FocusEvent::create() and
    2417     // remove oldFocusedNode from FocusEventDispatchMediator::create().
    2418     // See https://bugs.webkit.org/show_bug.cgi?id=109261
    2419     RefPtr<FocusEvent> event = FocusEvent::create(eventNames().focusEvent, false, false, document()->defaultView(), 0, 0);
    2420     EventDispatcher::dispatchEvent(this, FocusEventDispatchMediator::create(event.release(), oldFocusedNode));
     2410    RefPtr<FocusEvent> event = FocusEvent::create(eventNames().focusEvent, false, false, document()->defaultView(), 0, oldFocusedNode);
     2411    EventDispatcher::dispatchEvent(this, FocusEventDispatchMediator::create(event.release()));
    24212412}
    24222413
     
    24262417        document()->page()->chrome()->client()->elementDidBlur(this);
    24272418
    2428     // FIXME: We should pass newFocusedNode to FocusEvent::create() and
    2429     // remove newFocusedNode from BlurEventDispatchMediator::create().
    2430     // See https://bugs.webkit.org/show_bug.cgi?id=109261
    2431     RefPtr<FocusEvent> event = FocusEvent::create(eventNames().blurEvent, false, false, document()->defaultView(), 0, 0);
    2432     EventDispatcher::dispatchEvent(this, BlurEventDispatchMediator::create(event.release(), newFocusedNode));
     2419    RefPtr<FocusEvent> event = FocusEvent::create(eventNames().blurEvent, false, false, document()->defaultView(), 0, newFocusedNode);
     2420    EventDispatcher::dispatchEvent(this, BlurEventDispatchMediator::create(event.release()));
    24332421}
    24342422
Note: See TracChangeset for help on using the changeset viewer.