Changeset 68923 in webkit


Ignore:
Timestamp:
Oct 1, 2010 1:50:41 PM (14 years ago)
Author:
enrica@apple.com
Message:

DOMFocusIn/DOMFocusOut return focusin/focusout Event.type
https://bugs.webkit.org/show_bug.cgi?id=42580
<rdar://problem/8107311>

Reviewed by Darin Adler.

WebCore:

This change removes the aliased type machinery from the Event class.
We now fire the event with the new name and the oldname.

Tests: Modified fast/events/focusinout.html to check the event
type.

  • dom/Document.cpp:

(WebCore::Document::setFocusedNode):

  • dom/Event.cpp: Removed aliasedType and hasAliasedType.
  • dom/Event.h: Removed aliasedType and hasAliasedType.
  • dom/EventTarget.cpp:

(WebCore::EventTarget::fireEventListeners): Removed aliasedType related code.

LayoutTests:

  • fast/events/focusinout.html: Modified to check the event type.
Location:
trunk
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r68921 r68923  
     12010-10-01  Enrica Casucci  <enrica@apple.com>
     2
     3        Reviewed by Darin Adler.
     4
     5        DOMFocusIn/DOMFocusOut return focusin/focusout Event.type
     6        https://bugs.webkit.org/show_bug.cgi?id=42580
     7        <rdar://problem/8107311>
     8       
     9        * fast/events/focusinout.html: Modified to check the event type.
     10
    1112010-10-01  Adam Roben  <aroben@apple.com>
    212
  • trunk/LayoutTests/fast/events/focusinout.html

    r56402 r68923  
    1010}
    1111
     12function writeFailed(id, reason)
     13{
     14    document.getElementById(id).innerHTML = "FAIL: " + reason;
     15}
     16
    1217function focusHandler(event)
    1318{
    14     writePass('result1');
     19    if (event.type == "focusin")
     20        writePass('result1');
     21    else
     22        writeFailed('result1', "Wrong event type");
    1523}
    1624
    1725function blurHandler(event)
    1826{
    19     writePass('result2');
     27    if (event.type == "focusout")
     28        writePass('result2');
     29    else
     30        writeFailed('result2', "Wrong event type");
    2031}
    2132
    2233function focusHandlerTwo(event)
    2334{
    24     writePass('result3');
     35    if (event.type == "DOMFocusIn")
     36        writePass('result3');
     37    else
     38        writeFailed('result3', "Wrong event type");
    2539}
    2640
    2741function blurHandlerTwo(event)
    2842{
    29     writePass('result4');
     43    if (event.type == "DOMFocusOut")
     44        writePass('result4');
     45    else
     46        writeFailed('result4', "Wrong event type");
    3047}
    3148</script>
  • trunk/WebCore/ChangeLog

    r68917 r68923  
     12010-10-01  Enrica Casucci  <enrica@apple.com>
     2
     3        Reviewed by Darin Adler.
     4
     5        DOMFocusIn/DOMFocusOut return focusin/focusout Event.type
     6        https://bugs.webkit.org/show_bug.cgi?id=42580
     7        <rdar://problem/8107311>
     8       
     9        This change removes the aliased type machinery from the Event class.
     10        We now fire the event with the new name and the oldname.
     11       
     12        Tests: Modified fast/events/focusinout.html to check the event
     13        type.
     14
     15        * dom/Document.cpp:
     16        (WebCore::Document::setFocusedNode):
     17        * dom/Event.cpp: Removed aliasedType and hasAliasedType.
     18        * dom/Event.h: Removed aliasedType and hasAliasedType.
     19        * dom/EventTarget.cpp:
     20        (WebCore::EventTarget::fireEventListeners): Removed aliasedType related code.
     21
    1222010-10-01  David Hyatt  <hyatt@apple.com>
    223
  • trunk/WebCore/dom/Document.cpp

    r68854 r68923  
    31063106       
    31073107        oldFocusedNode->dispatchUIEvent(eventNames().focusoutEvent, 0, 0); // DOM level 3 name for the bubbling blur event.
     3108        // FIXME: We should remove firing DOMFocusOutEvent event when we are sure no content depends
     3109        // on it, probably when <rdar://problem/8503958> is resolved.
     3110        oldFocusedNode->dispatchUIEvent(eventNames().DOMFocusOutEvent, 0, 0); // DOM level 2 name for compatibility.
    31083111
    31093112        if (m_focusedNode) {
     
    31463149
    31473150        m_focusedNode->dispatchUIEvent(eventNames().focusinEvent, 0, 0); // DOM level 3 bubbling focus event.
     3151        // FIXME: We should remove firing DOMFocusInEvent event when we are sure no content depends
     3152        // on it, probably when <rdar://problem/8503958> is resolved.
     3153        m_focusedNode->dispatchUIEvent(eventNames().DOMFocusInEvent, 0, 0); // DOM level 2 for compatibility.
    31483154
    31493155        if (m_focusedNode != newFocusedNode) {
  • trunk/WebCore/dom/Event.cpp

    r67898 r68923  
    283283}
    284284
    285 const AtomicString& Event::aliasedType() const
    286 {
    287     if (type() == eventNames().focusinEvent)
    288         return eventNames().DOMFocusInEvent;
    289     if (type() == eventNames().focusoutEvent)
    290         return eventNames().DOMFocusOutEvent;
    291     if (type() == eventNames().DOMFocusInEvent)
    292         return eventNames().focusinEvent;
    293     if (type() == eventNames().DOMFocusOutEvent)
    294         return eventNames().focusoutEvent;
    295    
    296     ASSERT_NOT_REACHED();
    297     return type();
    298 }
    299 
    300 bool Event::hasAliasedType() const
    301 {
    302     return type() == eventNames().focusinEvent || type() == eventNames().focusoutEvent ||
    303            type() == eventNames().DOMFocusInEvent || type() == eventNames().DOMFocusOutEvent;
    304 }
    305 
    306285} // namespace WebCore
  • trunk/WebCore/dom/Event.h

    r67898 r68923  
    7777        const AtomicString& type() const { return m_type; }
    7878       
    79         const AtomicString& aliasedType() const;
    80         bool hasAliasedType() const;
    81 
    8279        EventTarget* target() const { return m_target.get(); }
    8380        void setTarget(PassRefPtr<EventTarget>);
  • trunk/WebCore/dom/EventTarget.cpp

    r67614 r68923  
    300300        fireEventListeners(event, d, *result->second);
    301301   
    302     // Alias DOMFocusIn/DOMFocusOut to focusin/focusout (and vice versa). Just consider them to be the
    303     // same event (triggering one another's handlers).  This mechanism allows us to deprecate or change event
    304     // names in the future and still make them be interoperable.
    305     if (event->hasAliasedType() && !event->immediatePropagationStopped()) {
    306         EventListenerMap::iterator result = d->eventListenerMap.find(event->aliasedType());
    307         if (result != d->eventListenerMap.end())
    308             fireEventListeners(event, d, *result->second);
    309     }
    310302    return !event->defaultPrevented();
    311303}
Note: See TracChangeset for help on using the changeset viewer.