Skip to content
  • ap@apple.com's avatar
    Reviewed by Geoffrey Garen. · 7ac88d0b
    ap@apple.com authored
            https://bugs.webkit.org/show_bug.cgi?id=49762
            Stylesheet wrappers are not GC protected
    
            Tests: fast/dom/StyleSheet/gc-inline-style-cssvalues.html
                   fast/dom/StyleSheet/gc-styleheet-wrapper.xhtml
    
            * Android.jscbindings.mk:
            * CMakeLists.txt:
            * GNUmakefile.am:
            * WebCore.gypi:
            * WebCore.pro:
            * WebCore.vcproj/WebCore.vcproj:
            Added the new custom bindings files.
    
            * WebCore.xcodeproj/project.pbxproj: Added the new custom bindings files. Also, added some
            existing headers.
    
            * bindings/js/JSDOMBinding.cpp: (WebCore::isObservableThroughDOM): If a node has a stylesheet
            with a wrapper, it may be the only thing having the stylesheet's wrapper alive, so its own
            wrapper has to stay alive, too.
            While at it, also fixed the same issue with inline style declarations.
            Also, added a FIXME comment about one with attribute nodes. We implement a less conservative
            approach for nodes, so perhaps fixing this is not as easy as removing a hasCustomProperties()
            check.
    
            * bindings/js/JSHTMLLinkElementCustom.cpp: Added.
            (WebCore::JSHTMLLinkElement::markChildren):
            * bindings/js/JSHTMLStyleElementCustom.cpp: Added.
            (WebCore::JSHTMLStyleElement::markChildren):
            * bindings/js/JSProcessingInstructionCustom.cpp: Added.
            (WebCore::JSProcessingInstruction::markChildren):
            Mark stylesheets owned by these nodes. As always in markChildren() functions, we do it
            conservatively, without checking whether the stylesheet or any of its children have custom
            properties.
    
            * dom/ProcessingInstruction.idl:
            * html/HTMLLinkElement.idl:
            * html/HTMLStyleElement.idl:
            These have custom mark functions now.
    
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@72344 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    7ac88d0b