bool StyleSheetContents::wrapperDeleteRule(unsigned index) { ASSERT(m_isMutable); SECURITY_DCHECK(index < ruleCount()); if (index < m_importRules.size()) { m_importRules[index]->clearParentStyleSheet(); if (m_importRules[index]->isFontFaceRule()) notifyRemoveFontFaceRule(toStyleRuleFontFace(m_importRules[index].get())); m_importRules.remove(index); return true; } index -= m_importRules.size(); if (index < m_namespaceRules.size()) { if (!m_childRules.isEmpty()) return false; m_namespaceRules.remove(index); return true; } index -= m_namespaceRules.size(); if (m_childRules[index]->isFontFaceRule()) notifyRemoveFontFaceRule(toStyleRuleFontFace(m_childRules[index].get())); m_childRules.remove(index); return true; }
void StyleSheetContents::wrapperDeleteRule(unsigned index) { ASSERT(m_isMutable); ASSERT_WITH_SECURITY_IMPLICATION(index < ruleCount()); unsigned childVectorIndex = index; if (hasCharsetRule()) { if (childVectorIndex == 0) { clearCharsetRule(); return; } --childVectorIndex; } if (childVectorIndex < m_importRules.size()) { m_importRules[childVectorIndex]->clearParentStyleSheet(); if (m_importRules[childVectorIndex]->isFontFaceRule()) notifyRemoveFontFaceRule(toStyleRuleFontFace(m_importRules[childVectorIndex].get())); m_importRules.remove(childVectorIndex); return; } childVectorIndex -= m_importRules.size(); if (m_childRules[childVectorIndex]->isFontFaceRule()) notifyRemoveFontFaceRule(toStyleRuleFontFace(m_childRules[childVectorIndex].get())); m_childRules.remove(childVectorIndex); }