author | Thaddee Tyl <thaddee.tyl@gmail.com> |
Wed, 05 Sep 2012 19:10:55 -0400 | |
changeset 104363 | c6768c151b64763a0fdf87b2105b27bcc99d7709 |
parent 104362 | 1cc49d5dcff4faaca357226dcfcfb6da56ac0bef |
child 104364 | 72c85979e852baa371bb8a79920e55a1f33b7679 |
push id | 23417 |
push user | ryanvm@gmail.com |
push date | Thu, 06 Sep 2012 02:27:31 +0000 |
treeherder | mozilla-central@501f4e46a88c [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | bz |
bugs | 781032 |
milestone | 18.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
layout/style/nsCSSParser.cpp | file | annotate | diff | comparison | revisions | |
layout/style/nsCSSStyleSheet.cpp | file | annotate | diff | comparison | revisions |
--- a/layout/style/nsCSSParser.cpp +++ b/layout/style/nsCSSParser.cpp @@ -786,16 +786,18 @@ CSSParserImpl::SetStyleSheet(nsCSSStyleS // Switch to using the new sheet, if any mGroupStack.Clear(); mSheet = aSheet; if (mSheet) { mNameSpaceMap = mSheet->GetNameSpaceMap(); } else { mNameSpaceMap = nullptr; } + } else if (mSheet) { + mNameSpaceMap = mSheet->GetNameSpaceMap(); } return NS_OK; } nsresult CSSParserImpl::SetQuirkMode(bool aQuirkMode) {
--- a/layout/style/nsCSSStyleSheet.cpp +++ b/layout/style/nsCSSStyleSheet.cpp @@ -2129,18 +2129,16 @@ nsCSSStyleSheet::ParseSheet(const nsAStr nsRefPtr<css::Loader> loader; if (mDocument) { loader = mDocument->CSSLoader(); NS_ASSERTION(loader, "Document with no CSS loader!"); } else { loader = new css::Loader(); } - nsCSSParser parser(loader, this); - mozAutoDocUpdate updateBatch(mDocument, UPDATE_STYLE, true); nsresult rv = WillDirty(); NS_ENSURE_SUCCESS(rv, rv); // detach existing rules (including child sheets via import rules) int ruleCount; while ((ruleCount = mInner->mOrderedRules.Count()) != 0) { @@ -2158,16 +2156,18 @@ nsCSSStyleSheet::ParseSheet(const nsAStr child->mParent = nullptr; child->mDocument = nullptr; } mInner->mFirstChild = nullptr; mInner->mNameSpaceMap = nullptr; // allow unsafe rules if the style sheet's principal is the system principal bool allowUnsafeRules = nsContentUtils::IsSystemPrincipal(mInner->mPrincipal); + + nsCSSParser parser(loader, this); rv = parser.ParseSheet(aInput, mInner->mSheetURI, mInner->mBaseURI, mInner->mPrincipal, 1, allowUnsafeRules); DidDirty(); // we are always 'dirty' here since we always remove rules first NS_ENSURE_SUCCESS(rv, rv); // notify document of all new rules if (mDocument) { for (int32_t index = 0; index < mInner->mOrderedRules.Count(); ++index) {