Changeset 72783 in webkit


Ignore:
Timestamp:
Nov 28, 2010 10:45:38 PM (13 years ago)
Author:
Dimitri Glazkov
Message:

2010-11-28 Dimitri Glazkov <Dimitri Glazkov>

Reviewed by Darin Adler.

Default event handlers should also be using event retargeting.
https://bugs.webkit.org/show_bug.cgi?id=49986

  • fast/events/shadow-boundary-crossing-2.html: Added a test.
  • fast/events/shadow-boundary-crossing-2-expected.txt: Modified expectations to include new test.

2010-11-28 Dimitri Glazkov <Dimitri Glazkov>

Reviewed by Darin Adler.

Default event handlers should also be using event retargeting.
https://bugs.webkit.org/show_bug.cgi?id=49986

Test: fast/events/shadow-boundary-crossing-2.html

  • dom/EventContext.cpp: (WebCore::EventContext::defaultEventHandler): Added.
  • dom/EventContext.h: Added decl.
  • dom/Node.cpp: (WebCore::Node::dispatchGenericEvent): Changed to use event retargeting for

default event handlers.

Location:
trunk
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r72782 r72783  
     12010-11-28  Dimitri Glazkov  <dglazkov@chromium.org>
     2
     3        Reviewed by Darin Adler.
     4
     5        Default event handlers should also be using event retargeting.
     6        https://bugs.webkit.org/show_bug.cgi?id=49986
     7
     8        * fast/events/shadow-boundary-crossing-2.html: Added a test.
     9        * fast/events/shadow-boundary-crossing-2-expected.txt: Modified expectations to include new test.
     10
    1112010-11-23  MORITA Hajime  <morrita@google.com>
    212
  • trunk/LayoutTests/fast/events/shadow-boundary-crossing-2-expected.txt

    r71934 r72783  
    44
    55Mutation events should not propagate out of the shadow DOM: PASS
     6Events for default event handler should also be retargeted: PASS
    67Other events should be retargeted: PASS
    78After event dispatch, the event object should not reveal shadow DOM: PASS
  • trunk/LayoutTests/fast/events/shadow-boundary-crossing-2.html

    r71934 r72783  
    3636        log('Mutation events should not propagate out of the shadow DOM', !mutationEventFired);
    3737        textarea.parentNode.removeChild(textarea);
     38    },
     39    defaultEventRetargeting: function()
     40    {
     41        var count = 0;
     42        var label = document.body.appendChild(document.createElement('label'));
     43        var searchInput = label.appendChild(document.createElement('input'));
     44        searchInput.setAttribute('type', 'search');
     45        searchInput.setAttribute('id', 'baz');
     46        label.setAttribute('for', 'baz');
     47        searchInput.addEventListener('click', function(e)
     48        {
     49            count++;
     50        }, false);
     51        clickOn(searchInput);
     52        log("Events for default event handler should also be retargeted", count == 1);
     53        label.parentNode.removeChild(label);
    3854    },
    3955    eventInProgress: function()
  • trunk/WebCore/ChangeLog

    r72782 r72783  
     12010-11-28  Dimitri Glazkov  <dglazkov@chromium.org>
     2
     3        Reviewed by Darin Adler.
     4
     5        Default event handlers should also be using event retargeting.
     6        https://bugs.webkit.org/show_bug.cgi?id=49986
     7
     8        Test: fast/events/shadow-boundary-crossing-2.html
     9
     10        * dom/EventContext.cpp:
     11        (WebCore::EventContext::defaultEventHandler): Added.
     12        * dom/EventContext.h: Added decl.
     13        * dom/Node.cpp:
     14        (WebCore::Node::dispatchGenericEvent): Changed to use event retargeting for
     15            default event handlers.
     16
    1172010-11-23  MORITA Hajime  <morrita@google.com>
    218
  • trunk/WebCore/dom/EventContext.cpp

    r71934 r72783  
    4242}
    4343
     44void EventContext::defaultEventHandler(Event* event) const
     45{
     46    event->setTarget(m_target.get());
     47    event->setCurrentTarget(m_currentTarget.get());
     48    m_node->defaultEventHandler(event);
     49}
     50
    4451void EventContext::handleLocalEvents(Event* event) const
    4552{
  • trunk/WebCore/dom/EventContext.h

    r71934 r72783  
    4343    Node* node() const;
    4444    EventTarget* target() const;
     45    void defaultEventHandler(Event*) const;
    4546    void handleLocalEvents(Event*) const;
    4647
  • trunk/WebCore/dom/Node.cpp

    r71934 r72783  
    26352635            size_t size = ancestors.size();
    26362636            for (size_t i = 0; i < size; ++i) {
    2637                 ancestors[i].node()->defaultEventHandler(event.get());
     2637                ancestors[i].defaultEventHandler(event.get());
    26382638                ASSERT(!event->defaultPrevented());
    26392639                if (event->defaultHandled())
Note: See TracChangeset for help on using the changeset viewer.