Skip to content
  • morrita@google.com's avatar
    ShadowRoot.getElementById() returns removed node. · 1613ae76
    morrita@google.com authored
    https://bugs.webkit.org/show_bug.cgi?id=62184
    
    Source/WebCore:
    
    Deregitration of m_elementsById map is done at Element::removedFrom()
    But the tree scope of the removed node is already reset from a shadow root
    to a document.
    
    This change lookup the old shadow root through its parent node and
    deregitrater the node against it.
    
    Reviewed by Dimitri Glazkov.
    
    Test: fast/dom/shadow/get-element-by-id-in-shadow-mutation.html
    
    * dom/Element.cpp:
    (WebCore::treeScopeOfParent):
    (WebCore):
    (WebCore::Element::removedFrom):
    * dom/Element.h:
    (Element):
    (WebCore::Element::updateId):
    (WebCore):
    
    LayoutTests:
    
    Reviewed by Dimitri Glazkov.
    
    * fast/dom/shadow/get-element-by-id-in-shadow-mutation-expected.txt: Added.
    * fast/dom/shadow/get-element-by-id-in-shadow-mutation.html: Added.
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@118804 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    1613ae76