CSSStyleRule::~CSSStyleRule() { if (m_propertiesCSSOMWrapper) m_propertiesCSSOMWrapper->clearParentRule(); if (hasCachedSelectorText()) { selectorTextCache().remove(this); setHasCachedSelectorText(false); } }
CSSStyleRule::~CSSStyleRule() { #if !ENABLE(OILPAN) if (m_propertiesCSSOMWrapper) m_propertiesCSSOMWrapper->clearParentRule(); #endif if (hasCachedSelectorText()) { selectorTextCache().remove(this); setHasCachedSelectorText(false); } }
String CSSStyleRule::selectorText() const { if (hasCachedSelectorText()) { ASSERT(selectorTextCache().contains(this)); return selectorTextCache().get(this); } ASSERT(!selectorTextCache().contains(this)); String text = generateSelectorText(); selectorTextCache().set(this, text); setHasCachedSelectorText(true); return text; }
void CSSStyleRule::setSelectorText(const String& selectorText) { CSSParserContext context(parserContext(), 0); CSSSelectorList selectorList = CSSParser::parseSelector(context, parentStyleSheet() ? parentStyleSheet()->contents() : nullptr, selectorText); if (!selectorList.isValid()) return; CSSStyleSheet::RuleMutationScope mutationScope(this); m_styleRule->wrapperAdoptSelectorList(std::move(selectorList)); if (hasCachedSelectorText()) { selectorTextCache().remove(this); setHasCachedSelectorText(false); } }
void CSSStyleRule::setSelectorText(const String& selectorText) { CSSParser p(parserContext()); CSSSelectorList selectorList; p.parseSelector(selectorText, selectorList); if (!selectorList.isValid()) return; CSSStyleSheet::RuleMutationScope mutationScope(this); m_styleRule->wrapperAdoptSelectorList(selectorList); if (hasCachedSelectorText()) { selectorTextCache().remove(this); setHasCachedSelectorText(false); } }
void CSSStyleRule::setSelectorText(const String& selectorText) { CSSParser p(parserContext()); CSSSelectorList selectorList; p.parseSelector(selectorText, selectorList); if (!selectorList.isValid()) return; // NOTE: The selector list has to fit into RuleData. <http://webkit.org/b/118369> if (selectorList.componentCount() > RuleData::maximumSelectorComponentCount) return; CSSStyleSheet::RuleMutationScope mutationScope(this); m_styleRule->wrapperAdoptSelectorList(selectorList); if (hasCachedSelectorText()) { selectorTextCache().remove(this); setHasCachedSelectorText(false); } }