We currently have three code paths doing decisions on whether a renderer should be created/destroyed: - Node::rendererIsNeeded(RenderStyle*) - decide whether a Node need a renderer based on RenderStyle information (display() != NONE, etc.) - Node::childShouldCreateRenderer(Node*) - decide whether a children of a certain element should get a renderer - RenderObject::isChildAllowed() - checks whether a new renderer can be appended, if not the renderer is destroyed again (see createRendererIfNeeded()) These code paths should ideally be unified.