-
bdakin authored
Rolling back in. I made a silly mistake in XMLTokenizer that caused this patch to crash SVG tests. It's fixed now! Refactor of change for <rdar://problem/5404899> REGRESSION: Mail crash in WebCore::FontFallbackList::fontDataAt() after dragging image into text multiple times The original fix that I made last night prevents the pending style sheet count from being incremented until the element is in the document. This fix prevents the style sheet from loading at all until it is in the document. Here is the fix. * dom/StyleElement.cpp: (WebCore::StyleElement::insertedIntoDocument): Call process. (WebCore::StyleElement::removedFromDocument): This can be reverted to its original state before my patch last night. (WebCore::StyleElement::process): childrenChanged is now called process. Return early if your not in the document. (WebCore::StyleElement::createSheet): Revert change from last night. The inDocument check is now in caller childrenChanged. * dom/StyleElement.h: insertedIntoDocument() must now accept an element in addition to a document. This is an optimization to prevent calling updateStyleSelector() too frequently. * dom/XMLTokenizer.cpp: (WebCore::XMLTokenizer::startElementNs): * html/HTMLStyleElement.cpp: (WebCore::HTMLStyleElement::HTMLStyleElement): (WebCore::HTMLStyleElement::finishedParsing): (WebCore::HTMLStyleElement::insertedIntoDocument): (WebCore::HTMLStyleElement::childrenChanged): (WebCore::HTMLStyleElement::sheetLoaded): * html/HTMLStyleElement.h: * ksvg2/svg/SVGStyleElement.cpp: (WebCore::SVGStyleElement::SVGStyleElement): (WebCore::SVGStyleElement::finishedParsing): (WebCore::SVGStyleElement::insertedIntoDocument): (WebCore::SVGStyleElement::childrenChanged): (WebCore::SVGStyleElement::sheetLoaded): * ksvg2/svg/SVGStyleElement.h: (WebCore::SVGStyleElement::setCreatedByParser): This is a name change. Document::stylesheetLoaded() is now Document::removePendingSheet() * dom/Document.cpp: (WebCore::Document::removePendingSheet): * dom/Document.h: * dom/ProcessingInstruction.cpp: (WebCore::ProcessingInstruction::sheetLoaded): * html/HTMLLinkElement.cpp: (WebCore::HTMLLinkElement::~HTMLLinkElement): (WebCore::HTMLLinkElement::setDisabledState): (WebCore::HTMLLinkElement::process): (WebCore::HTMLLinkElement::sheetLoaded): * page/Frame.cpp: (WebCore::UserStyleSheetLoader::~UserStyleSheetLoader): (WebCore::UserStyleSheetLoader::setCSSStyleSheet): This is another name change. closeRenderer() is now finishedParsing() * dom/Node.h: (WebCore::Node::finishedParsing): * dom/XMLTokenizer.cpp: (WebCore::XMLTokenizer::endElementNs): (WebCore::): * html/HTMLAppletElement.cpp: (WebCore::HTMLAppletElement::finishedParsing): * html/HTMLAppletElement.h: * html/HTMLGenericFormElement.cpp: (WebCore::HTMLFormControlElementWithState::finishedParsing): * html/HTMLGenericFormElement.h: * html/HTMLObjectElement.cpp: (WebCore::HTMLObjectElement::finishedParsing): * html/HTMLObjectElement.h: * html/HTMLParser.cpp: (WebCore::HTMLParser::insertNode): (WebCore::HTMLParser::popOneBlockCommon): * html/HTMLScriptElement.cpp: (WebCore::HTMLScriptElement::finishedParsing): * html/HTMLScriptElement.h: (WebCore::HTMLStyleElement::setCreatedByParser): * ksvg2/svg/SVGAnimationElement.cpp: (WebCore::SVGAnimationElement::finishedParsing): * ksvg2/svg/SVGAnimationElement.h: * ksvg2/svg/SVGElement.cpp: (WebCore::SVGElement::finishedParsing): * ksvg2/svg/SVGElement.h: git-svn-id: http://svn.webkit.org/repository/webkit/trunk@25098 268f45cc-cd09-0410-ab3c-d52691b4dbfc
5422d6d5