Bug 1369903 Part 3: Ensure that Loader enables all cloned stylesheets, and checks modified state of all stylesheets, regardless of backend.
MozReview-Commit-ID: EEnFeaw2r0u
--- a/layout/style/Loader.cpp
+++ b/layout/style/Loader.cpp
@@ -1407,20 +1407,20 @@ Loader::InsertChildSheet(StyleSheet* aSh
ImportRule* aGeckoParentRule,
const RawServoStyleSheet* aServoChildSheet)
{
LOG(("css::Loader::InsertChildSheet"));
MOZ_ASSERT(aSheet, "Nothing to insert");
MOZ_ASSERT(aParentSheet, "Need a parent to insert into");
MOZ_ASSERT_IF(aSheet->IsGecko(), aGeckoParentRule && !aServoChildSheet);
MOZ_ASSERT_IF(aSheet->IsServo(), aServoChildSheet && !aGeckoParentRule);
+ // child sheets should always start out enabled, even if they got
+ // cloned off of top-level sheets which were disabled
+ aSheet->SetEnabled(true);
if (aSheet->IsGecko()) {
- // child sheets should always start out enabled, even if they got
- // cloned off of top-level sheets which were disabled
- aSheet->AsGecko()->SetEnabled(true);
aGeckoParentRule->SetSheet(aSheet->AsGecko()); // This sets the ownerRule on the sheet
} else {
if (!aSheet->AsServo()->RawSheet()) {
aSheet->AsServo()->SetSheetForImport(aServoChildSheet);
}
}
aParentSheet->PrependStyleSheet(aSheet);
@@ -1895,18 +1895,17 @@ Loader::DoSheetComplete(SheetLoadData* a
// Go through and deal with the whole linked list.
SheetLoadData* data = aLoadData;
while (data) {
if (!data->mSheetAlreadyComplete) {
// If mSheetAlreadyComplete, then the sheet could well be modified between
// when we posted the async call to SheetComplete and now, since the sheet
// was page-accessible during that whole time.
- MOZ_ASSERT(!(data->mSheet->IsGecko() &&
- data->mSheet->AsGecko()->IsModified()),
+ MOZ_ASSERT(!data->mSheet->IsModified(),
"should not get marked modified during parsing");
data->mSheet->SetComplete();
data->ScheduleLoadEventIfNeeded(aStatus);
}
if (data->mMustNotify && (data->mObserver || !mObservers.IsEmpty())) {
// Don't notify here so we don't trigger script. Remember the
// info we need to notify, then do it later when it's safe.
aDatasToNotify.AppendElement(data);