mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-08-21 03:43:16 +09:00
Issue #2828 - Part 4: Move cache key storage to ResolvedRuleCascades
This commit is contained in:
parent
03f29e75ec
commit
aab9cdf9bd
3 changed files with 32 additions and 24 deletions
|
|
@ -335,7 +335,7 @@ nsCSSRuleProcessor::MediumFeaturesChanged(nsPresContext* aPresContext)
|
|||
// order hasn't changed). Other cases will do a restyle anyway, so
|
||||
// we shouldn't need to worry about posting a second.
|
||||
return !mRuleCascades || // all sheets gone, but we had sheets before
|
||||
mRuleCascades->mUnlayered->mCacheKey != *previousCacheKey;
|
||||
mRuleCascades->mCacheKey != *previousCacheKey;
|
||||
}
|
||||
|
||||
return false;
|
||||
|
|
@ -361,11 +361,11 @@ nsCSSRuleProcessor::CloneMQCacheKey()
|
|||
return UniquePtr<nsMediaQueryResultCacheKey>();
|
||||
}
|
||||
|
||||
if (!c->mUnlayered->mCacheKey.HasFeatureConditions()) {
|
||||
if (!c->mCacheKey.HasFeatureConditions()) {
|
||||
return UniquePtr<nsMediaQueryResultCacheKey>();
|
||||
}
|
||||
|
||||
return MakeUnique<nsMediaQueryResultCacheKey>(c->mUnlayered->mCacheKey);
|
||||
return MakeUnique<nsMediaQueryResultCacheKey>(c->mCacheKey);
|
||||
}
|
||||
|
||||
/* virtual */ size_t
|
||||
|
|
@ -608,7 +608,7 @@ CascadeRuleEnumFunc(css::Rule* aRule, void* aData)
|
|||
css::Rule::SUPPORTS_RULE == type) {
|
||||
css::GroupRule* groupRule = static_cast<css::GroupRule*>(aRule);
|
||||
const bool use = groupRule->UseForPresentation(layer->mPresContext,
|
||||
layer->mData->mCacheKey);
|
||||
layer->mCacheKey);
|
||||
if (use || layer->mMustGatherDocumentRules) {
|
||||
if (!groupRule->EnumerateRulesForwards(
|
||||
use ? CascadeRuleEnumFunc : GatherDocRuleEnumFunc, aData)) {
|
||||
|
|
@ -633,7 +633,7 @@ CascadeRuleEnumFunc(css::Rule* aRule, void* aData)
|
|||
? layer->CreateAnonymousChildLayer()
|
||||
: layer->CreateNamedChildLayer(path);
|
||||
const bool use = layerRule->UseForPresentation(layer->mPresContext,
|
||||
layer->mData->mCacheKey);
|
||||
layer->mCacheKey);
|
||||
if (use || layer->mMustGatherDocumentRules) {
|
||||
if (!layerRule->EnumerateRulesForwards(
|
||||
use ? CascadeRuleEnumFunc : GatherDocRuleEnumFunc, targetLayer)) {
|
||||
|
|
@ -698,7 +698,7 @@ nsCSSRuleProcessor::CascadeSheet(CSSStyleSheet* aSheet, CascadeEnumData* aLayer)
|
|||
{
|
||||
if (aSheet->IsApplicable() &&
|
||||
aSheet->UseForPresentation(aLayer->mPresContext,
|
||||
aLayer->mData->mCacheKey) &&
|
||||
aLayer->mCacheKey) &&
|
||||
aSheet->mInner) {
|
||||
CSSStyleSheet* child = aSheet->mInner->mFirstChild;
|
||||
while (child) {
|
||||
|
|
@ -744,7 +744,7 @@ nsCSSRuleProcessor::RefreshRuleCascade(nsPresContext* aPresContext)
|
|||
for (ResolvedRuleCascades** cascadep = &mRuleCascades, *cascade;
|
||||
(cascade = *cascadep);
|
||||
cascadep = &cascade->mNext) {
|
||||
if (cascade->mUnlayered->mCacheKey.Matches(aPresContext)) {
|
||||
if (cascade->mCacheKey.Matches(aPresContext)) {
|
||||
// Ensure that the current one is always mRuleCascades.
|
||||
*cascadep = cascade->mNext;
|
||||
cascade->mNext = mRuleCascades;
|
||||
|
|
@ -760,14 +760,15 @@ nsCSSRuleProcessor::RefreshRuleCascade(nsPresContext* aPresContext)
|
|||
mPreviousCacheKey = nullptr;
|
||||
|
||||
if (mSheets.Length() != 0) {
|
||||
nsAutoPtr<ResolvedRuleCascades> resolvedCascade =
|
||||
new ResolvedRuleCascades();
|
||||
nsAutoPtr<ResolvedRuleCascades> resolvedCascade(
|
||||
new ResolvedRuleCascades(aPresContext->Medium()));
|
||||
CascadeEnumData unlayered(aPresContext,
|
||||
resolvedCascade,
|
||||
mDocumentRules,
|
||||
mDocumentCacheKey,
|
||||
mSheetType,
|
||||
mMustGatherDocumentRules);
|
||||
mMustGatherDocumentRules,
|
||||
resolvedCascade->mCacheKey);
|
||||
if (unlayered.mData) {
|
||||
for (uint32_t i = 0; i < mSheets.Length(); ++i) {
|
||||
if (!CascadeSheet(mSheets.ElementAt(i), &unlayered)) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue