-
tkent@chromium.org authored
Reviewed by Dimitri Glazkov. Let shadow DOM have a list of nodes at the top level of a shadow. https://bugs.webkit.org/show_bug.cgi?id=57813 * fast/dom/HTMLKeygenElement/keygen-expected.txt: shadow DOM changed * fast/dom/HTMLKeygenElement/keygen.html: added assertion on shadow 2011-04-07 Dominic Cooney <dominicc@google.com> Reviewed by Dimitri Glazkov. Let shadow DOM have a list of nodes at the top level of a shadow. https://bugs.webkit.org/show_bug.cgi?id=57813 Adds ShadowRoot, a list of nodes, to be a parent for top-level shadow children. Forwards rendering through the root and into the host's renderer. Covered by existing tests of elements that use this style of shadow. * Android.mk: add ShadowRoot.h/cpp * CMakeLists.txt: * GNUmakefile.am: * WebCore.exp.in: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::initForStyleResolve): proxy style to host * dom/ContainerNode.cpp: parent nodes that are shadow roots are alive (WebCore::ContainerNode::insertBefore): (WebCore::ContainerNode::replaceChild): (WebCore::ContainerNode::removeChild): (WebCore::ContainerNode::appendChild): * dom/DocumentFragment.cpp: (WebCore::DocumentFragment::DocumentFragment): * dom/DocumentFragment.h: * dom/Element.cpp: (WebCore::Element::recalcStyle): look through ShadowRoots for host's style (WebCore::Element::shadowRoot): should be const (WebCore::Element::ensureShadowRoot): simpler than setShadowRoot * dom/Element.h: * dom/ElementRareData.h: * dom/Node.cpp: (WebCore::Node::parentNodeForRenderingAndStyle): indirection so ShadowRoot can forward to the host's renderer (WebCore::Node::createRendererAndStyle): (WebCore::Node::createRendererIfNeeded): * dom/Node.h: (WebCore::Node::isShadowBoundary): temporary, to differentiate old- and new-style, until all roots are ShadowRoot instances * dom/ShadowRoot.cpp: Added. (WebCore::ShadowRoot::ShadowRoot): (WebCore::ShadowRoot::recalcStyle): forward recalc to children * dom/ShadowRoot.h: Added. (WebCore::ShadowRoot::isShadowBoundary): (WebCore::ShadowRoot::create): * html/HTMLKeygenElement.cpp: use ensureShadowRoot (WebCore::HTMLKeygenElement::HTMLKeygenElement): (WebCore::HTMLKeygenElement::parseMappedAttribute): (WebCore::HTMLKeygenElement::appendFormData): (WebCore::HTMLKeygenElement::reset): (WebCore::HTMLKeygenElement::shadowSelect): * html/HTMLKeygenElement.h: * html/HTMLMeterElement.cpp: use ensureShadowRoot (WebCore::HTMLMeterElement::createShadowSubtree): * html/HTMLProgressElement.cpp: use ensureShadowRoot (WebCore::HTMLProgressElement::createShadowSubtree): * html/InputType.cpp: use ensureShadowRoot (WebCore::InputType::destroyShadowSubtree): * html/RangeInputType.cpp: use ensureShadowRoot (WebCore::RangeInputType::handleMouseDownEvent): (WebCore::RangeInputType::createShadowSubtree): (WebCore::RangeInputType::valueChanged): (WebCore::RangeInputType::shadowSliderThumb): * html/RangeInputType.h: * html/ValidationMessage.cpp: use ensureShadowRoot (WebCore::ValidationMessage::buildBubbleTree): (WebCore::ValidationMessage::deleteBubbleTree): * html/shadow/SliderThumbElement.cpp: (WebCore::SliderThumbElement::setPositionFromPoint): (WebCore::SliderThumbElement::hostInput): * html/shadow/SliderThumbElement.h: * rendering/MediaControlElements.cpp: use ensureShadowRoot (WebCore::MediaControlInputElement::attach): (WebCore::MediaControlInputElement::updateStyle): * rendering/RenderSlider.cpp: use ensureShadowRoot (WebCore::RenderSlider::thumbRect): (WebCore::RenderSlider::layout): (WebCore::RenderSlider::shadowSliderThumb): (WebCore::RenderSlider::inDragMode): * rendering/RenderSlider.h: 2011-04-07 Dominic Cooney <dominicc@google.com> Reviewed by Dimitri Glazkov. Let shadow DOM have a list of nodes at the top level of a shadow. https://bugs.webkit.org/show_bug.cgi?id=57813 * src/WebElement.cpp: (WebKit::WebElement::shadowRoot): shadow roots are ContainerNodes now git-svn-id: http://svn.webkit.org/repository/webkit/trunk@83256 268f45cc-cd09-0410-ab3c-d52691b4dbfc
553b1729