зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1352968 part 5 - Add a param to ctor of ServoCSSRuleList for top level list. r=heycam
@import rules can only exist in top level rule lists, and we need the stylesheet to construct the import rules. MozReview-Commit-ID: APCyGW8re8f --HG-- extra : source : b9b78672249f390d56d71fa46dfa4b4cd49ef182
This commit is contained in:
Родитель
1b312ca843
Коммит
a17c79bc30
|
@ -79,7 +79,7 @@ struct GeckoGroupRuleRules
|
|||
struct ServoGroupRuleRules
|
||||
{
|
||||
explicit ServoGroupRuleRules(already_AddRefed<ServoCssRules> aRawRules)
|
||||
: mRuleList(new ServoCSSRuleList(Move(aRawRules))) {}
|
||||
: mRuleList(new ServoCSSRuleList(Move(aRawRules), nullptr)) {}
|
||||
ServoGroupRuleRules(ServoGroupRuleRules&& aOther)
|
||||
: mRuleList(Move(aOther.mRuleList)) {}
|
||||
ServoGroupRuleRules(const ServoGroupRuleRules& aCopy) {
|
||||
|
|
|
@ -22,8 +22,10 @@
|
|||
|
||||
namespace mozilla {
|
||||
|
||||
ServoCSSRuleList::ServoCSSRuleList(already_AddRefed<ServoCssRules> aRawRules)
|
||||
: mRawRules(aRawRules)
|
||||
ServoCSSRuleList::ServoCSSRuleList(already_AddRefed<ServoCssRules> aRawRules,
|
||||
ServoStyleSheet* aDirectOwnerStyleSheet)
|
||||
: mStyleSheet(aDirectOwnerStyleSheet)
|
||||
, mRawRules(aRawRules)
|
||||
{
|
||||
Servo_CssRules_ListTypes(mRawRules, &mRules);
|
||||
// XXX We may want to eagerly create object for import rule, so that
|
||||
|
|
|
@ -25,7 +25,12 @@ class Rule;
|
|||
class ServoCSSRuleList final : public dom::CSSRuleList
|
||||
{
|
||||
public:
|
||||
explicit ServoCSSRuleList(already_AddRefed<ServoCssRules> aRawRules);
|
||||
// @param aDirectOwnerStyleSheet should be set to the owner stylesheet
|
||||
// if this rule list is owned directly by a stylesheet, which means it
|
||||
// is a top level CSSRuleList. If it's owned by a group rule, nullptr.
|
||||
// If this param is set, the caller doesn't need to call SetStyleSheet.
|
||||
ServoCSSRuleList(already_AddRefed<ServoCssRules> aRawRules,
|
||||
ServoStyleSheet* aDirectOwnerStyleSheet);
|
||||
css::GroupRule* GetParentRule() const { return mParentRule; }
|
||||
void SetParentRule(css::GroupRule* aParentRule);
|
||||
void SetStyleSheet(StyleSheet* aSheet);
|
||||
|
|
|
@ -221,8 +221,7 @@ ServoStyleSheet::GetCssRulesInternal(ErrorResult& aRv)
|
|||
RefPtr<ServoCssRules> rawRules =
|
||||
Servo_StyleSheet_GetRules(Inner()->mSheet).Consume();
|
||||
MOZ_ASSERT(rawRules);
|
||||
mRuleList = new ServoCSSRuleList(rawRules.forget());
|
||||
mRuleList->SetStyleSheet(this);
|
||||
mRuleList = new ServoCSSRuleList(rawRules.forget(), this);
|
||||
}
|
||||
return mRuleList;
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче