Bug 1457920: Remove ServoStyleSheet usage. r=xidorn

MozReview-Commit-ID: LIBkovuQ6MB
This commit is contained in:
Emilio Cobos Álvarez
2018-04-30 19:23:14 +02:00
parent d79c492759
commit be43ec910e
22 changed files with 126 additions and 127 deletions

View File

@@ -39,7 +39,6 @@ nsChromeRegistry* nsChromeRegistry::gChromeRegistry;
// DO NOT use namespace mozilla; it'll break due to a naming conflict between // DO NOT use namespace mozilla; it'll break due to a naming conflict between
// mozilla::TextRange and a TextRange in OSX headers. // mozilla::TextRange and a TextRange in OSX headers.
using mozilla::ServoStyleSheet;
using mozilla::StyleSheet; using mozilla::StyleSheet;
using mozilla::dom::IsChromeURI; using mozilla::dom::IsChromeURI;
using mozilla::dom::Location; using mozilla::dom::Location;
@@ -404,12 +403,12 @@ nsresult nsChromeRegistry::RefreshWindow(nsPIDOMWindowOuter* aWindow)
nsCOMPtr<nsIPresShell> shell = document->GetShell(); nsCOMPtr<nsIPresShell> shell = document->GetShell();
if (shell) { if (shell) {
// Reload only the chrome URL agent style sheets. // Reload only the chrome URL agent style sheets.
nsTArray<RefPtr<ServoStyleSheet>> agentSheets; nsTArray<RefPtr<StyleSheet>> agentSheets;
rv = shell->GetAgentStyleSheets(agentSheets); rv = shell->GetAgentStyleSheets(agentSheets);
NS_ENSURE_SUCCESS(rv, rv); NS_ENSURE_SUCCESS(rv, rv);
nsTArray<RefPtr<ServoStyleSheet>> newAgentSheets; nsTArray<RefPtr<StyleSheet>> newAgentSheets;
for (ServoStyleSheet* sheet : agentSheets) { for (StyleSheet* sheet : agentSheets) {
nsIURI* uri = sheet->GetSheetURI(); nsIURI* uri = sheet->GetSheetURI();
if (IsChromeURI(uri)) { if (IsChromeURI(uri)) {

View File

@@ -1091,9 +1091,10 @@ nsTreeSanitizer::SanitizeStyleSheet(const nsAString& aOriginal,
bool didSanitize = false; bool didSanitize = false;
// Create a sheet to hold the parsed CSS // Create a sheet to hold the parsed CSS
RefPtr<StyleSheet> sheet = RefPtr<StyleSheet> sheet =
new ServoStyleSheet(mozilla::css::eAuthorSheetFeatures, new StyleSheet(mozilla::css::eAuthorSheetFeatures,
CORS_NONE, aDocument->GetReferrerPolicy(), CORS_NONE,
SRIMetadata()); aDocument->GetReferrerPolicy(),
SRIMetadata());
sheet->SetURIs(aDocument->GetDocumentURI(), nullptr, aBaseURI); sheet->SetURIs(aDocument->GetDocumentURI(), nullptr, aBaseURI);
sheet->SetPrincipal(aDocument->NodePrincipal()); sheet->SetPrincipal(aDocument->NodePrincipal());
sheet->ParseSheetSync( sheet->ParseSheetSync(

View File

@@ -2256,7 +2256,7 @@ nsHTMLDocument::TearingDownEditor()
if (!presShell) if (!presShell)
return; return;
nsTArray<RefPtr<ServoStyleSheet>> agentSheets; nsTArray<RefPtr<StyleSheet>> agentSheets;
presShell->GetAgentStyleSheets(agentSheets); presShell->GetAgentStyleSheets(agentSheets);
auto cache = nsLayoutStylesheetCache::Singleton(); auto cache = nsLayoutStylesheetCache::Singleton();
@@ -2401,7 +2401,7 @@ nsHTMLDocument::EditingStateChanged()
// Before making this window editable, we need to modify UA style sheet // Before making this window editable, we need to modify UA style sheet
// because new style may change whether focused element will be focusable // because new style may change whether focused element will be focusable
// or not. // or not.
nsTArray<RefPtr<ServoStyleSheet>> agentSheets; nsTArray<RefPtr<StyleSheet>> agentSheets;
rv = presShell->GetAgentStyleSheets(agentSheets); rv = presShell->GetAgentStyleSheets(agentSheets);
NS_ENSURE_SUCCESS(rv, rv); NS_ENSURE_SUCCESS(rv, rv);

View File

@@ -8576,7 +8576,7 @@ PresShell::IsVisible()
} }
nsresult nsresult
PresShell::GetAgentStyleSheets(nsTArray<RefPtr<ServoStyleSheet>>& aSheets) PresShell::GetAgentStyleSheets(nsTArray<RefPtr<StyleSheet>>& aSheets)
{ {
aSheets.Clear(); aSheets.Clear();
int32_t sheetCount = mStyleSet->SheetCount(SheetType::Agent); int32_t sheetCount = mStyleSet->SheetCount(SheetType::Agent);
@@ -8586,7 +8586,7 @@ PresShell::GetAgentStyleSheets(nsTArray<RefPtr<ServoStyleSheet>>& aSheets)
} }
for (int32_t i = 0; i < sheetCount; ++i) { for (int32_t i = 0; i < sheetCount; ++i) {
ServoStyleSheet* sheet = mStyleSet->StyleSheetAt(SheetType::Agent, i); StyleSheet* sheet = mStyleSet->StyleSheetAt(SheetType::Agent, i);
aSheets.AppendElement(sheet); aSheets.AppendElement(sheet);
} }
@@ -8594,7 +8594,7 @@ PresShell::GetAgentStyleSheets(nsTArray<RefPtr<ServoStyleSheet>>& aSheets)
} }
nsresult nsresult
PresShell::SetAgentStyleSheets(const nsTArray<RefPtr<ServoStyleSheet>>& aSheets) PresShell::SetAgentStyleSheets(const nsTArray<RefPtr<StyleSheet>>& aSheets)
{ {
return mStyleSet->ReplaceSheets(SheetType::Agent, aSheets); return mStyleSet->ReplaceSheets(SheetType::Agent, aSheets);
} }
@@ -9680,7 +9680,7 @@ CopySheetsIntoClone(ServoStyleSet* aSet, ServoStyleSet* aClone)
{ {
int32_t i, n = aSet->SheetCount(SheetType::Override); int32_t i, n = aSet->SheetCount(SheetType::Override);
for (i = 0; i < n; i++) { for (i = 0; i < n; i++) {
ServoStyleSheet* ss = aSet->StyleSheetAt(SheetType::Override, i); StyleSheet* ss = aSet->StyleSheetAt(SheetType::Override, i);
if (ss) if (ss)
aClone->AppendStyleSheet(SheetType::Override, ss); aClone->AppendStyleSheet(SheetType::Override, ss);
} }
@@ -9697,14 +9697,14 @@ CopySheetsIntoClone(ServoStyleSet* aSet, ServoStyleSet* aClone)
n = aSet->SheetCount(SheetType::User); n = aSet->SheetCount(SheetType::User);
for (i = 0; i < n; i++) { for (i = 0; i < n; i++) {
ServoStyleSheet* ss = aSet->StyleSheetAt(SheetType::User, i); StyleSheet* ss = aSet->StyleSheetAt(SheetType::User, i);
if (ss) if (ss)
aClone->AppendStyleSheet(SheetType::User, ss); aClone->AppendStyleSheet(SheetType::User, ss);
} }
n = aSet->SheetCount(SheetType::Agent); n = aSet->SheetCount(SheetType::Agent);
for (i = 0; i < n; i++) { for (i = 0; i < n; i++) {
ServoStyleSheet* ss = aSet->StyleSheetAt(SheetType::Agent, i); StyleSheet* ss = aSet->StyleSheetAt(SheetType::Agent, i);
if (ss) if (ss)
aClone->AppendStyleSheet(SheetType::Agent, ss); aClone->AppendStyleSheet(SheetType::Agent, ss);
} }

View File

@@ -25,7 +25,7 @@ ServoStyleRuleMap::EnsureTable(ServoStyleSet& aStyleSet)
return; return;
} }
aStyleSet.EnumerateStyleSheetArrays( aStyleSet.EnumerateStyleSheetArrays(
[this](const nsTArray<RefPtr<ServoStyleSheet>>& aArray) { [this](const nsTArray<RefPtr<StyleSheet>>& aArray) {
for (auto& sheet : aArray) { for (auto& sheet : aArray) {
FillTableFromStyleSheet(*sheet); FillTableFromStyleSheet(*sheet);
} }
@@ -55,7 +55,7 @@ ServoStyleRuleMap::EnsureTable(ShadowRoot& aShadowRoot)
} }
void void
ServoStyleRuleMap::SheetAdded(ServoStyleSheet& aStyleSheet) ServoStyleRuleMap::SheetAdded(StyleSheet& aStyleSheet)
{ {
if (!IsEmpty()) { if (!IsEmpty()) {
FillTableFromStyleSheet(aStyleSheet); FillTableFromStyleSheet(aStyleSheet);
@@ -63,7 +63,7 @@ ServoStyleRuleMap::SheetAdded(ServoStyleSheet& aStyleSheet)
} }
void void
ServoStyleRuleMap::SheetRemoved(ServoStyleSheet& aStyleSheet) ServoStyleRuleMap::SheetRemoved(StyleSheet& aStyleSheet)
{ {
// Invalidate all data inside. This isn't strictly necessary since // Invalidate all data inside. This isn't strictly necessary since
// we should always get update from document before new queries come. // we should always get update from document before new queries come.
@@ -75,7 +75,7 @@ ServoStyleRuleMap::SheetRemoved(ServoStyleSheet& aStyleSheet)
} }
void void
ServoStyleRuleMap::RuleAdded(ServoStyleSheet& aStyleSheet, css::Rule& aStyleRule) ServoStyleRuleMap::RuleAdded(StyleSheet& aStyleSheet, css::Rule& aStyleRule)
{ {
if (!IsEmpty()) { if (!IsEmpty()) {
FillTableFromRule(aStyleRule); FillTableFromRule(aStyleRule);
@@ -83,7 +83,7 @@ ServoStyleRuleMap::RuleAdded(ServoStyleSheet& aStyleSheet, css::Rule& aStyleRule
} }
void void
ServoStyleRuleMap::RuleRemoved(ServoStyleSheet& aStyleSheet, ServoStyleRuleMap::RuleRemoved(StyleSheet& aStyleSheet,
css::Rule& aStyleRule) css::Rule& aStyleRule)
{ {
if (IsEmpty()) { if (IsEmpty()) {
@@ -160,7 +160,7 @@ ServoStyleRuleMap::FillTableFromRuleList(ServoCSSRuleList& aRuleList)
} }
void void
ServoStyleRuleMap::FillTableFromStyleSheet(ServoStyleSheet& aSheet) ServoStyleRuleMap::FillTableFromStyleSheet(StyleSheet& aSheet)
{ {
if (aSheet.IsComplete()) { if (aSheet.IsComplete()) {
FillTableFromRuleList(*aSheet.GetCssRulesInternal()); FillTableFromRuleList(*aSheet.GetCssRulesInternal());

View File

@@ -8,7 +8,7 @@
#define mozilla_ServoStyleRuleMap_h #define mozilla_ServoStyleRuleMap_h
#include "mozilla/ServoStyleRule.h" #include "mozilla/ServoStyleRule.h"
#include "mozilla/ServoStyleSheet.h" #include "mozilla/StyleSheet.h"
#include "nsDataHashtable.h" #include "nsDataHashtable.h"
@@ -38,11 +38,11 @@ public:
return mTable.Get(aRawRule); return mTable.Get(aRawRule);
} }
void SheetAdded(ServoStyleSheet&); void SheetAdded(StyleSheet&);
void SheetRemoved(ServoStyleSheet&); void SheetRemoved(StyleSheet&);
void RuleAdded(ServoStyleSheet& aStyleSheet, css::Rule&); void RuleAdded(StyleSheet& aStyleSheet, css::Rule&);
void RuleRemoved(ServoStyleSheet& aStyleSheet, css::Rule&); void RuleRemoved(StyleSheet& aStyleSheet, css::Rule&);
size_t SizeOfIncludingThis(MallocSizeOf aMallocSizeOf) const; size_t SizeOfIncludingThis(MallocSizeOf aMallocSizeOf) const;
@@ -54,9 +54,9 @@ private:
// all stylesheets to fill the table. // all stylesheets to fill the table.
bool IsEmpty() const { return mTable.Count() == 0; } bool IsEmpty() const { return mTable.Count() == 0; }
void FillTableFromRule(css::Rule& aRule); void FillTableFromRule(css::Rule&);
void FillTableFromRuleList(ServoCSSRuleList& aRuleList); void FillTableFromRuleList(ServoCSSRuleList&);
void FillTableFromStyleSheet(ServoStyleSheet& aSheet); void FillTableFromStyleSheet(StyleSheet&);
typedef nsDataHashtable<nsPtrHashKey<const RawServoStyleRule>, typedef nsDataHashtable<nsPtrHashKey<const RawServoStyleRule>,
WeakPtr<ServoStyleRule>> Hashtable; WeakPtr<ServoStyleRule>> Hashtable;

View File

@@ -1110,7 +1110,7 @@ Loader::CreateSheet(nsIURI* aURI,
&sriMetadata); &sriMetadata);
} }
*aSheet = new ServoStyleSheet(aParsingMode, aCORSMode, aReferrerPolicy, sriMetadata); *aSheet = new StyleSheet(aParsingMode, aCORSMode, aReferrerPolicy, sriMetadata);
(*aSheet)->SetURIs(sheetURI, originalURI, baseURI); (*aSheet)->SetURIs(sheetURI, originalURI, baseURI);
} }
@@ -1656,7 +1656,7 @@ Loader::ParseSheet(const nsAString& aUTF16,
} }
nsresult nsresult
Loader::DoParseSheetServo(ServoStyleSheet* aSheet, Loader::DoParseSheetServo(StyleSheet* aSheet,
const nsACString& aBytes, const nsACString& aBytes,
SheetLoadData* aLoadData, SheetLoadData* aLoadData,
bool aAllowAsync, bool aAllowAsync,

View File

@@ -577,7 +577,7 @@ private:
bool aAllowAsync, bool aAllowAsync,
bool& aCompleted); bool& aCompleted);
nsresult DoParseSheetServo(ServoStyleSheet* aSheet, nsresult DoParseSheetServo(StyleSheet* aSheet,
const nsACString& aBytes, const nsACString& aBytes,
SheetLoadData* aLoadData, SheetLoadData* aLoadData,
bool aAllowAsync, bool aAllowAsync,

View File

@@ -458,9 +458,9 @@ Gecko_GetUnvisitedLinkAttrDeclarationBlock(RawGeckoElementBorrowed aElement)
return AsRefRawStrong(sheet->GetServoUnvisitedLinkDecl()); return AsRefRawStrong(sheet->GetServoUnvisitedLinkDecl());
} }
ServoStyleSheet* Gecko_StyleSheet_Clone( StyleSheet* Gecko_StyleSheet_Clone(
const ServoStyleSheet* aSheet, const StyleSheet* aSheet,
const ServoStyleSheet* aNewParentSheet) const StyleSheet* aNewParentSheet)
{ {
MOZ_ASSERT(aSheet); MOZ_ASSERT(aSheet);
MOZ_ASSERT(aSheet->GetParentSheet(), "Should only be used for @import"); MOZ_ASSERT(aSheet->GetParentSheet(), "Should only be used for @import");
@@ -475,21 +475,21 @@ ServoStyleSheet* Gecko_StyleSheet_Clone(
// //
// So we _don't_ update neither the parent pointer of the stylesheet, nor the // So we _don't_ update neither the parent pointer of the stylesheet, nor the
// child list (yet). This is fixed up in that same constructor. // child list (yet). This is fixed up in that same constructor.
return static_cast<ServoStyleSheet*>(newSheet.forget().take()); return static_cast<StyleSheet*>(newSheet.forget().take());
} }
void void
Gecko_StyleSheet_AddRef(const ServoStyleSheet* aSheet) Gecko_StyleSheet_AddRef(const StyleSheet* aSheet)
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
const_cast<ServoStyleSheet*>(aSheet)->AddRef(); const_cast<StyleSheet*>(aSheet)->AddRef();
} }
void void
Gecko_StyleSheet_Release(const ServoStyleSheet* aSheet) Gecko_StyleSheet_Release(const StyleSheet* aSheet)
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
const_cast<ServoStyleSheet*>(aSheet)->Release(); const_cast<StyleSheet*>(aSheet)->Release();
} }
RawServoDeclarationBlockStrongBorrowedOrNull RawServoDeclarationBlockStrongBorrowedOrNull
@@ -2594,9 +2594,9 @@ Gecko_StyleSheet_FinishAsyncParse(SheetLoadDataHolder* aData,
})); }));
} }
static already_AddRefed<ServoStyleSheet> static already_AddRefed<StyleSheet>
LoadImportSheet(css::Loader* aLoader, LoadImportSheet(css::Loader* aLoader,
ServoStyleSheet* aParent, StyleSheet* aParent,
SheetLoadData* aParentLoadData, SheetLoadData* aParentLoadData,
css::LoaderReusableStyleSheets* aReusableSheets, css::LoaderReusableStyleSheets* aReusableSheets,
css::URLValue* aURL, css::URLValue* aURL,
@@ -2625,7 +2625,7 @@ LoadImportSheet(css::Loader* aLoader,
// sheet object per spec, even if its empty. DevTools uses the URI to // sheet object per spec, even if its empty. DevTools uses the URI to
// realize it has hit an import cycle, so we mark it complete to make the // realize it has hit an import cycle, so we mark it complete to make the
// sheet readable from JS. // sheet readable from JS.
RefPtr<ServoStyleSheet> emptySheet = RefPtr<StyleSheet> emptySheet =
aParent->CreateEmptyChildSheet(media.forget()); aParent->CreateEmptyChildSheet(media.forget());
// Make a dummy URI if we don't have one because some methods assume // Make a dummy URI if we don't have one because some methods assume
// non-null URIs. // non-null URIs.
@@ -2639,14 +2639,14 @@ LoadImportSheet(css::Loader* aLoader,
return emptySheet.forget(); return emptySheet.forget();
} }
RefPtr<ServoStyleSheet> sheet = RefPtr<StyleSheet> sheet =
static_cast<ServoStyleSheet*>(aParent->GetFirstChild()); static_cast<StyleSheet*>(aParent->GetFirstChild());
return sheet.forget(); return sheet.forget();
} }
ServoStyleSheet* StyleSheet*
Gecko_LoadStyleSheet(css::Loader* aLoader, Gecko_LoadStyleSheet(css::Loader* aLoader,
ServoStyleSheet* aParent, StyleSheet* aParent,
SheetLoadData* aParentLoadData, SheetLoadData* aParentLoadData,
css::LoaderReusableStyleSheets* aReusableSheets, css::LoaderReusableStyleSheets* aReusableSheets,
ServoBundledURI aServoURL, ServoBundledURI aServoURL,
@@ -2675,7 +2675,7 @@ Gecko_LoadStyleSheetAsync(css::SheetLoadDataHolder* aParentData,
import = Move(importRule)]() mutable { import = Move(importRule)]() mutable {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
SheetLoadData* d = data->get(); SheetLoadData* d = data->get();
RefPtr<ServoStyleSheet> sheet = RefPtr<StyleSheet> sheet =
LoadImportSheet(d->mLoader, d->mSheet, d, nullptr, url, media.forget()); LoadImportSheet(d->mLoader, d->mSheet, d, nullptr, url, media.forget());
Servo_ImportRule_SetSheet(import, sheet); Servo_ImportRule_SetSheet(import, sheet);
})); }));
@@ -2775,12 +2775,12 @@ Gecko_SetJemallocThreadLocalArena(bool enabled)
ErrorReporter* ErrorReporter*
Gecko_CreateCSSErrorReporter(ServoStyleSheet* sheet, Gecko_CreateCSSErrorReporter(StyleSheet* aSheet,
Loader* loader, Loader* aLoader,
nsIURI* uri) nsIURI* aURI)
{ {
MOZ_ASSERT(NS_IsMainThread()); MOZ_ASSERT(NS_IsMainThread());
return new ErrorReporter(sheet, loader, uri); return new ErrorReporter(aSheet, aLoader, aURI);
} }
void void

View File

@@ -219,7 +219,7 @@ whitelist-types = [
"mozilla::SeenPtrs", "mozilla::SeenPtrs",
"mozilla::ServoElementSnapshot.*", "mozilla::ServoElementSnapshot.*",
"mozilla::ComputedStyle", "mozilla::ComputedStyle",
"mozilla::ServoStyleSheet", "mozilla::StyleSheet",
"mozilla::ServoStyleSheetInner", "mozilla::ServoStyleSheetInner",
"mozilla::ServoStyleSetSizes", "mozilla::ServoStyleSetSizes",
"mozilla::ServoTraversalStatistics", "mozilla::ServoTraversalStatistics",

View File

@@ -20,15 +20,15 @@
#include "mozilla/ServoNamespaceRule.h" #include "mozilla/ServoNamespaceRule.h"
#include "mozilla/ServoPageRule.h" #include "mozilla/ServoPageRule.h"
#include "mozilla/ServoStyleRule.h" #include "mozilla/ServoStyleRule.h"
#include "mozilla/ServoStyleSheet.h"
#include "mozilla/ServoSupportsRule.h" #include "mozilla/ServoSupportsRule.h"
#include "mozilla/StyleSheet.h"
using namespace mozilla::dom; using namespace mozilla::dom;
namespace mozilla { namespace mozilla {
ServoCSSRuleList::ServoCSSRuleList(already_AddRefed<ServoCssRules> aRawRules, ServoCSSRuleList::ServoCSSRuleList(already_AddRefed<ServoCssRules> aRawRules,
ServoStyleSheet* aDirectOwnerStyleSheet) StyleSheet* aDirectOwnerStyleSheet)
: mStyleSheet(aDirectOwnerStyleSheet) : mStyleSheet(aDirectOwnerStyleSheet)
, mRawRules(aRawRules) , mRawRules(aRawRules)
{ {

View File

@@ -30,7 +30,7 @@ public:
// is a top level CSSRuleList. If it's owned by a group rule, nullptr. // 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. // If this param is set, the caller doesn't need to call SetStyleSheet.
ServoCSSRuleList(already_AddRefed<ServoCssRules> aRawRules, ServoCSSRuleList(already_AddRefed<ServoCssRules> aRawRules,
ServoStyleSheet* aDirectOwnerStyleSheet); StyleSheet* aDirectOwnerStyleSheet);
css::GroupRule* GetParentRule() const { return mParentRule; } css::GroupRule* GetParentRule() const { return mParentRule; }
void SetParentRule(css::GroupRule* aParentRule); void SetParentRule(css::GroupRule* aParentRule);
void SetStyleSheet(StyleSheet* aSheet); void SetStyleSheet(StyleSheet* aSheet);
@@ -38,7 +38,7 @@ public:
NS_DECL_ISUPPORTS_INHERITED NS_DECL_ISUPPORTS_INHERITED
NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(ServoCSSRuleList, dom::CSSRuleList) NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(ServoCSSRuleList, dom::CSSRuleList)
ServoStyleSheet* GetParentObject() final { return mStyleSheet; } StyleSheet* GetParentObject() final { return mStyleSheet; }
css::Rule* IndexedGetter(uint32_t aIndex, bool& aFound) final; css::Rule* IndexedGetter(uint32_t aIndex, bool& aFound) final;
uint32_t Length() final { return mRules.Length(); } uint32_t Length() final { return mRules.Length(); }
@@ -72,7 +72,7 @@ private:
void DropAllRules(); void DropAllRules();
// mStyleSheet may be nullptr when it drops the reference to us. // mStyleSheet may be nullptr when it drops the reference to us.
ServoStyleSheet* mStyleSheet = nullptr; StyleSheet* mStyleSheet = nullptr;
// mParentRule is nullptr if it isn't a nested rule list. // mParentRule is nullptr if it isn't a nested rule list.
css::GroupRule* mParentRule = nullptr; css::GroupRule* mParentRule = nullptr;
RefPtr<ServoCssRules> mRawRules; RefPtr<ServoCssRules> mRawRules;

View File

@@ -9,18 +9,19 @@
#include "mozilla/ServoImportRule.h" #include "mozilla/ServoImportRule.h"
#include "mozilla/ServoBindings.h" #include "mozilla/ServoBindings.h"
#include "mozilla/ServoStyleSheet.h" #include "mozilla/StyleSheet.h"
namespace mozilla { namespace mozilla {
ServoImportRule::ServoImportRule(RefPtr<RawServoImportRule> aRawRule, ServoImportRule::ServoImportRule(RefPtr<RawServoImportRule> aRawRule,
uint32_t aLine, uint32_t aColumn) uint32_t aLine,
uint32_t aColumn)
: CSSImportRule(aLine, aColumn) : CSSImportRule(aLine, aColumn)
, mRawRule(Move(aRawRule)) , mRawRule(Move(aRawRule))
{ {
const auto* sheet = Servo_ImportRule_GetSheet(mRawRule.get()); const auto* sheet = Servo_ImportRule_GetSheet(mRawRule.get());
MOZ_ASSERT(sheet); MOZ_ASSERT(sheet);
mChildSheet = const_cast<ServoStyleSheet*>(sheet); mChildSheet = const_cast<StyleSheet*>(sheet);
mChildSheet->SetOwnerRule(this); mChildSheet->SetOwnerRule(this);
} }

View File

@@ -39,7 +39,7 @@ public:
} }
} }
} }
void SetStyleSheet(ServoStyleSheet* aSheet) void SetStyleSheet(StyleSheet* aSheet)
{ {
mStyleSheet = aSheet; mStyleSheet = aSheet;
for (css::Rule* rule : mRules) { for (css::Rule* rule : mRules) {
@@ -49,7 +49,7 @@ public:
} }
} }
ServoStyleSheet* GetParentObject() final { return mStyleSheet; } StyleSheet* GetParentObject() final { return mStyleSheet; }
ServoKeyframeRule* GetRule(uint32_t aIndex) { ServoKeyframeRule* GetRule(uint32_t aIndex) {
if (!mRules[aIndex]) { if (!mRules[aIndex]) {
@@ -124,7 +124,7 @@ private:
} }
// may be nullptr when the style sheet drops the reference to us. // may be nullptr when the style sheet drops the reference to us.
ServoStyleSheet* mStyleSheet = nullptr; StyleSheet* mStyleSheet = nullptr;
ServoKeyframesRule* mParentRule = nullptr; ServoKeyframesRule* mParentRule = nullptr;
RefPtr<RawServoKeyframesRule> mRawRule; RefPtr<RawServoKeyframesRule> mRawRule;
nsCOMArray<css::Rule> mRules; nsCOMArray<css::Rule> mRules;

View File

@@ -713,8 +713,7 @@ ServoStyleSet::ResolveXULTreePseudoStyle(dom::Element* aParentElement,
// manage the set of style sheets in the style set // manage the set of style sheets in the style set
nsresult nsresult
ServoStyleSet::AppendStyleSheet(SheetType aType, ServoStyleSet::AppendStyleSheet(SheetType aType, StyleSheet* aSheet)
ServoStyleSheet* aSheet)
{ {
MOZ_ASSERT(aSheet); MOZ_ASSERT(aSheet);
MOZ_ASSERT(aSheet->IsApplicable()); MOZ_ASSERT(aSheet->IsApplicable());
@@ -740,8 +739,7 @@ ServoStyleSet::AppendStyleSheet(SheetType aType,
} }
nsresult nsresult
ServoStyleSet::PrependStyleSheet(SheetType aType, ServoStyleSet::PrependStyleSheet(SheetType aType, StyleSheet* aSheet)
ServoStyleSheet* aSheet)
{ {
MOZ_ASSERT(aSheet); MOZ_ASSERT(aSheet);
MOZ_ASSERT(aSheet->IsApplicable()); MOZ_ASSERT(aSheet->IsApplicable());
@@ -768,8 +766,7 @@ ServoStyleSet::PrependStyleSheet(SheetType aType,
} }
nsresult nsresult
ServoStyleSet::RemoveStyleSheet(SheetType aType, ServoStyleSet::RemoveStyleSheet(SheetType aType, StyleSheet* aSheet)
ServoStyleSheet* aSheet)
{ {
MOZ_ASSERT(aSheet); MOZ_ASSERT(aSheet);
MOZ_ASSERT(IsCSSSheetType(aType)); MOZ_ASSERT(IsCSSSheetType(aType));
@@ -790,7 +787,7 @@ ServoStyleSet::RemoveStyleSheet(SheetType aType,
nsresult nsresult
ServoStyleSet::ReplaceSheets(SheetType aType, ServoStyleSet::ReplaceSheets(SheetType aType,
const nsTArray<RefPtr<ServoStyleSheet>>& aNewSheets) const nsTArray<RefPtr<StyleSheet>>& aNewSheets)
{ {
// Gecko uses a two-dimensional array keyed by sheet type, whereas Servo // Gecko uses a two-dimensional array keyed by sheet type, whereas Servo
// stores a flattened list. This makes ReplaceSheets a pretty clunky thing // stores a flattened list. This makes ReplaceSheets a pretty clunky thing
@@ -825,8 +822,8 @@ ServoStyleSet::ReplaceSheets(SheetType aType,
nsresult nsresult
ServoStyleSet::InsertStyleSheetBefore(SheetType aType, ServoStyleSet::InsertStyleSheetBefore(SheetType aType,
ServoStyleSheet* aNewSheet, StyleSheet* aNewSheet,
ServoStyleSheet* aReferenceSheet) StyleSheet* aReferenceSheet)
{ {
MOZ_ASSERT(aNewSheet); MOZ_ASSERT(aNewSheet);
MOZ_ASSERT(aReferenceSheet); MOZ_ASSERT(aReferenceSheet);
@@ -861,7 +858,7 @@ ServoStyleSet::SheetCount(SheetType aType) const
return mSheets[aType].Length(); return mSheets[aType].Length();
} }
ServoStyleSheet* StyleSheet*
ServoStyleSet::StyleSheetAt(SheetType aType, int32_t aIndex) const ServoStyleSet::StyleSheetAt(SheetType aType, int32_t aIndex) const
{ {
MOZ_ASSERT(IsCSSSheetType(aType)); MOZ_ASSERT(IsCSSSheetType(aType));
@@ -882,14 +879,13 @@ ServoStyleSet::AppendAllNonDocumentAuthorSheets(nsTArray<StyleSheet*>& aArray) c
} }
nsresult nsresult
ServoStyleSet::RemoveDocStyleSheet(ServoStyleSheet* aSheet) ServoStyleSet::RemoveDocStyleSheet(StyleSheet* aSheet)
{ {
return RemoveStyleSheet(SheetType::Doc, aSheet); return RemoveStyleSheet(SheetType::Doc, aSheet);
} }
nsresult nsresult
ServoStyleSet::AddDocStyleSheet(ServoStyleSheet* aSheet, ServoStyleSet::AddDocStyleSheet(StyleSheet* aSheet, nsIDocument* aDocument)
nsIDocument* aDocument)
{ {
MOZ_ASSERT(aSheet->IsApplicable()); MOZ_ASSERT(aSheet->IsApplicable());
MOZ_ASSERT(aSheet->RawContents(), "Raw sheet should be in place by this point."); MOZ_ASSERT(aSheet->RawContents(), "Raw sheet should be in place by this point.");
@@ -903,7 +899,7 @@ ServoStyleSet::AddDocStyleSheet(ServoStyleSheet* aSheet,
if (index < mSheets[SheetType::Doc].Length()) { if (index < mSheets[SheetType::Doc].Length()) {
// This case is insert before. // This case is insert before.
ServoStyleSheet *beforeSheet = mSheets[SheetType::Doc][index]; StyleSheet *beforeSheet = mSheets[SheetType::Doc][index];
InsertSheetOfType(SheetType::Doc, aSheet, beforeSheet); InsertSheetOfType(SheetType::Doc, aSheet, beforeSheet);
if (mRawSet) { if (mRawSet) {
@@ -1141,7 +1137,7 @@ ServoStyleSet::SetStylistXBLStyleSheetsDirty()
} }
void void
ServoStyleSet::RuleAdded(ServoStyleSheet& aSheet, css::Rule& aRule) ServoStyleSet::RuleAdded(StyleSheet& aSheet, css::Rule& aRule)
{ {
if (mStyleRuleMap) { if (mStyleRuleMap) {
mStyleRuleMap->RuleAdded(aSheet, aRule); mStyleRuleMap->RuleAdded(aSheet, aRule);
@@ -1152,7 +1148,7 @@ ServoStyleSet::RuleAdded(ServoStyleSheet& aSheet, css::Rule& aRule)
} }
void void
ServoStyleSet::RuleRemoved(ServoStyleSheet& aSheet, css::Rule& aRule) ServoStyleSet::RuleRemoved(StyleSheet& aSheet, css::Rule& aRule)
{ {
if (mStyleRuleMap) { if (mStyleRuleMap) {
mStyleRuleMap->RuleRemoved(aSheet, aRule); mStyleRuleMap->RuleRemoved(aSheet, aRule);
@@ -1163,7 +1159,7 @@ ServoStyleSet::RuleRemoved(ServoStyleSheet& aSheet, css::Rule& aRule)
} }
void void
ServoStyleSet::RuleChanged(ServoStyleSheet& aSheet, css::Rule* aRule) ServoStyleSet::RuleChanged(StyleSheet& aSheet, css::Rule* aRule)
{ {
// FIXME(emilio): Could be more granular based on aRule. // FIXME(emilio): Could be more granular based on aRule.
MarkOriginsDirty(aSheet.GetOrigin()); MarkOriginsDirty(aSheet.GetOrigin());
@@ -1541,16 +1537,14 @@ ServoStyleSet::ShouldTraverseInParallel() const
} }
void void
ServoStyleSet::PrependSheetOfType(SheetType aType, ServoStyleSet::PrependSheetOfType(SheetType aType, StyleSheet* aSheet)
ServoStyleSheet* aSheet)
{ {
aSheet->AddStyleSet(this); aSheet->AddStyleSet(this);
mSheets[aType].InsertElementAt(0, aSheet); mSheets[aType].InsertElementAt(0, aSheet);
} }
void void
ServoStyleSet::AppendSheetOfType(SheetType aType, ServoStyleSet::AppendSheetOfType(SheetType aType, StyleSheet* aSheet)
ServoStyleSheet* aSheet)
{ {
aSheet->AddStyleSet(this); aSheet->AddStyleSet(this);
mSheets[aType].AppendElement(aSheet); mSheets[aType].AppendElement(aSheet);
@@ -1558,8 +1552,8 @@ ServoStyleSet::AppendSheetOfType(SheetType aType,
void void
ServoStyleSet::InsertSheetOfType(SheetType aType, ServoStyleSet::InsertSheetOfType(SheetType aType,
ServoStyleSheet* aSheet, StyleSheet* aSheet,
ServoStyleSheet* aBeforeSheet) StyleSheet* aBeforeSheet)
{ {
for (uint32_t i = 0; i < mSheets[aType].Length(); ++i) { for (uint32_t i = 0; i < mSheets[aType].Length(); ++i) {
if (mSheets[aType][i] == aBeforeSheet) { if (mSheets[aType][i] == aBeforeSheet) {
@@ -1571,8 +1565,7 @@ ServoStyleSet::InsertSheetOfType(SheetType aType,
} }
void void
ServoStyleSet::RemoveSheetOfType(SheetType aType, ServoStyleSet::RemoveSheetOfType(SheetType aType, StyleSheet* aSheet)
ServoStyleSheet* aSheet)
{ {
for (uint32_t i = 0; i < mSheets[aType].Length(); ++i) { for (uint32_t i = 0; i < mSheets[aType].Length(); ++i) {
if (mSheets[aType][i] == aSheet) { if (mSheets[aType][i] == aSheet) {

View File

@@ -8,7 +8,6 @@
#define mozilla_StyleSheetInlines_h #define mozilla_StyleSheetInlines_h
#include "mozilla/StyleSheetInfo.h" #include "mozilla/StyleSheetInfo.h"
#include "mozilla/ServoStyleSheet.h"
#include "nsINode.h" #include "nsINode.h"
namespace mozilla { namespace mozilla {

View File

@@ -791,8 +791,10 @@ void
nsLayoutStylesheetCache::BuildPreferenceSheet(RefPtr<StyleSheet>* aSheet, nsLayoutStylesheetCache::BuildPreferenceSheet(RefPtr<StyleSheet>* aSheet,
nsPresContext* aPresContext) nsPresContext* aPresContext)
{ {
*aSheet = new ServoStyleSheet(eAgentSheetFeatures, CORS_NONE, *aSheet = new StyleSheet(eAgentSheetFeatures,
mozilla::net::RP_Unset, dom::SRIMetadata()); CORS_NONE,
mozilla::net::RP_Unset,
dom::SRIMetadata());
StyleSheet* sheet = *aSheet; StyleSheet* sheet = *aSheet;

View File

@@ -8,7 +8,7 @@ use atomic_refcell::{AtomicRef, AtomicRefCell, AtomicRefMut};
use context::QuirksMode; use context::QuirksMode;
use dom::TElement; use dom::TElement;
use gecko_bindings::bindings::{self, RawServoStyleSet}; use gecko_bindings::bindings::{self, RawServoStyleSet};
use gecko_bindings::structs::{self, RawGeckoPresContextOwned, ServoStyleSetSizes, ServoStyleSheet}; use gecko_bindings::structs::{self, RawGeckoPresContextOwned, ServoStyleSetSizes, StyleSheet as DomStyleSheet};
use gecko_bindings::structs::{StyleSheetInfo, nsIDocument}; use gecko_bindings::structs::{StyleSheetInfo, nsIDocument};
use gecko_bindings::sugar::ownership::{HasArcFFI, HasBoxFFI, HasFFI, HasSimpleFFI}; use gecko_bindings::sugar::ownership::{HasArcFFI, HasBoxFFI, HasFFI, HasSimpleFFI};
use invalidation::media_queries::{MediaListKey, ToMediaListKey}; use invalidation::media_queries::{MediaListKey, ToMediaListKey};
@@ -23,7 +23,7 @@ use stylist::Stylist;
/// Little wrapper to a Gecko style sheet. /// Little wrapper to a Gecko style sheet.
#[derive(Debug, Eq, PartialEq)] #[derive(Debug, Eq, PartialEq)]
pub struct GeckoStyleSheet(*const ServoStyleSheet); pub struct GeckoStyleSheet(*const DomStyleSheet);
impl ToMediaListKey for ::gecko::data::GeckoStyleSheet { impl ToMediaListKey for ::gecko::data::GeckoStyleSheet {
fn to_media_list_key(&self) -> MediaListKey { fn to_media_list_key(&self) -> MediaListKey {
@@ -33,24 +33,24 @@ impl ToMediaListKey for ::gecko::data::GeckoStyleSheet {
} }
impl GeckoStyleSheet { impl GeckoStyleSheet {
/// Create a `GeckoStyleSheet` from a raw `ServoStyleSheet` pointer. /// Create a `GeckoStyleSheet` from a raw `DomStyleSheet` pointer.
#[inline] #[inline]
pub unsafe fn new(s: *const ServoStyleSheet) -> Self { pub unsafe fn new(s: *const DomStyleSheet) -> Self {
debug_assert!(!s.is_null()); debug_assert!(!s.is_null());
bindings::Gecko_StyleSheet_AddRef(s); bindings::Gecko_StyleSheet_AddRef(s);
Self::from_addrefed(s) Self::from_addrefed(s)
} }
/// Create a `GeckoStyleSheet` from a raw `ServoStyleSheet` pointer that /// Create a `GeckoStyleSheet` from a raw `DomStyleSheet` pointer that
/// already holds a strong reference. /// already holds a strong reference.
#[inline] #[inline]
pub unsafe fn from_addrefed(s: *const ServoStyleSheet) -> Self { pub unsafe fn from_addrefed(s: *const DomStyleSheet) -> Self {
debug_assert!(!s.is_null()); debug_assert!(!s.is_null());
GeckoStyleSheet(s) GeckoStyleSheet(s)
} }
/// Get the raw `ServoStyleSheet` that we're wrapping. /// Get the raw `StyleSheet` that we're wrapping.
pub fn raw(&self) -> &ServoStyleSheet { pub fn raw(&self) -> &DomStyleSheet {
unsafe { &*self.0 } unsafe { &*self.0 }
} }

View File

@@ -237,7 +237,7 @@ pub trait ToCssWithGuard {
#[cfg(feature = "gecko")] #[cfg(feature = "gecko")]
pub struct DeepCloneParams { pub struct DeepCloneParams {
/// The new sheet we're cloning rules into. /// The new sheet we're cloning rules into.
pub reference_sheet: *const ::gecko_bindings::structs::ServoStyleSheet, pub reference_sheet: *const ::gecko_bindings::structs::StyleSheet,
} }
/// Parameters needed for deep clones. /// Parameters needed for deep clones.

View File

@@ -14,7 +14,7 @@ use std::ptr;
use style::error_reporting::{ParseErrorReporter, ContextualParseError}; use style::error_reporting::{ParseErrorReporter, ContextualParseError};
use style::gecko_bindings::bindings::{Gecko_CreateCSSErrorReporter, Gecko_DestroyCSSErrorReporter}; use style::gecko_bindings::bindings::{Gecko_CreateCSSErrorReporter, Gecko_DestroyCSSErrorReporter};
use style::gecko_bindings::bindings::Gecko_ReportUnexpectedCSSError; use style::gecko_bindings::bindings::Gecko_ReportUnexpectedCSSError;
use style::gecko_bindings::structs::{Loader, ServoStyleSheet, nsIURI}; use style::gecko_bindings::structs::{Loader, StyleSheet as DomStyleSheet, nsIURI};
use style::gecko_bindings::structs::ErrorReporter as GeckoErrorReporter; use style::gecko_bindings::structs::ErrorReporter as GeckoErrorReporter;
use style::gecko_bindings::structs::URLExtraData as RawUrlExtraData; use style::gecko_bindings::structs::URLExtraData as RawUrlExtraData;
use style::stylesheets::UrlExtraData; use style::stylesheets::UrlExtraData;
@@ -27,9 +27,11 @@ pub struct ErrorReporter(*mut GeckoErrorReporter);
impl ErrorReporter { impl ErrorReporter {
/// Create a new instance of the Gecko error reporter. /// Create a new instance of the Gecko error reporter.
pub fn new(sheet: *mut ServoStyleSheet, pub fn new(
loader: *mut Loader, sheet: *mut DomStyleSheet,
extra_data: *mut RawUrlExtraData) -> ErrorReporter { loader: *mut Loader,
extra_data: *mut RawUrlExtraData,
) -> Self {
unsafe { unsafe {
let url = extra_data.as_ref() let url = extra_data.as_ref()
.map(|d| d.mBaseURI.raw::<nsIURI>()) .map(|d| d.mBaseURI.raw::<nsIURI>())

View File

@@ -92,7 +92,7 @@ use style::gecko_bindings::structs;
use style::gecko_bindings::structs::{CallerType, CSSPseudoElementType, CompositeOperation}; use style::gecko_bindings::structs::{CallerType, CSSPseudoElementType, CompositeOperation};
use style::gecko_bindings::structs::{Loader, LoaderReusableStyleSheets}; use style::gecko_bindings::structs::{Loader, LoaderReusableStyleSheets};
use style::gecko_bindings::structs::{RawServoStyleRule, ComputedStyleStrong, RustString}; use style::gecko_bindings::structs::{RawServoStyleRule, ComputedStyleStrong, RustString};
use style::gecko_bindings::structs::{ServoStyleSheet, SheetLoadData, SheetLoadDataHolder}; use style::gecko_bindings::structs::{StyleSheet as DomStyleSheet, SheetLoadData, SheetLoadDataHolder};
use style::gecko_bindings::structs::{SheetParsingMode, nsAtom, nsCSSPropertyID}; use style::gecko_bindings::structs::{SheetParsingMode, nsAtom, nsCSSPropertyID};
use style::gecko_bindings::structs::{nsCSSFontDesc, nsCSSCounterDesc}; use style::gecko_bindings::structs::{nsCSSFontDesc, nsCSSCounterDesc};
use style::gecko_bindings::structs::{nsRestyleHint, nsChangeHint, PropertyValuePair}; use style::gecko_bindings::structs::{nsRestyleHint, nsChangeHint, PropertyValuePair};
@@ -1194,7 +1194,7 @@ fn mode_to_origin(mode: SheetParsingMode) -> Origin {
#[no_mangle] #[no_mangle]
pub extern "C" fn Servo_StyleSheet_FromUTF8Bytes( pub extern "C" fn Servo_StyleSheet_FromUTF8Bytes(
loader: *mut Loader, loader: *mut Loader,
stylesheet: *mut ServoStyleSheet, stylesheet: *mut DomStyleSheet,
load_data: *mut SheetLoadData, load_data: *mut SheetLoadData,
bytes: *const nsACString, bytes: *const nsACString,
mode: SheetParsingMode, mode: SheetParsingMode,
@@ -1263,7 +1263,7 @@ pub extern "C" fn Servo_StyleSheet_FromUTF8BytesAsync(
#[no_mangle] #[no_mangle]
pub extern "C" fn Servo_StyleSet_AppendStyleSheet( pub extern "C" fn Servo_StyleSet_AppendStyleSheet(
raw_data: RawServoStyleSetBorrowed, raw_data: RawServoStyleSetBorrowed,
sheet: *const ServoStyleSheet, sheet: *const DomStyleSheet,
) { ) {
let global_style_data = &*GLOBAL_STYLE_DATA; let global_style_data = &*GLOBAL_STYLE_DATA;
let mut data = PerDocumentStyleData::from_ffi(raw_data).borrow_mut(); let mut data = PerDocumentStyleData::from_ffi(raw_data).borrow_mut();
@@ -1288,7 +1288,7 @@ pub extern "C" fn Servo_AuthorStyles_Drop(
#[no_mangle] #[no_mangle]
pub unsafe extern "C" fn Servo_AuthorStyles_AppendStyleSheet( pub unsafe extern "C" fn Servo_AuthorStyles_AppendStyleSheet(
styles: RawServoAuthorStylesBorrowedMut, styles: RawServoAuthorStylesBorrowedMut,
sheet: *const ServoStyleSheet, sheet: *const DomStyleSheet,
) { ) {
let styles = AuthorStyles::<GeckoStyleSheet>::from_ffi_mut(styles); let styles = AuthorStyles::<GeckoStyleSheet>::from_ffi_mut(styles);
@@ -1301,8 +1301,8 @@ pub unsafe extern "C" fn Servo_AuthorStyles_AppendStyleSheet(
#[no_mangle] #[no_mangle]
pub unsafe extern "C" fn Servo_AuthorStyles_InsertStyleSheetBefore( pub unsafe extern "C" fn Servo_AuthorStyles_InsertStyleSheetBefore(
styles: RawServoAuthorStylesBorrowedMut, styles: RawServoAuthorStylesBorrowedMut,
sheet: *const ServoStyleSheet, sheet: *const DomStyleSheet,
before_sheet: *const ServoStyleSheet, before_sheet: *const DomStyleSheet,
) { ) {
let styles = AuthorStyles::<GeckoStyleSheet>::from_ffi_mut(styles); let styles = AuthorStyles::<GeckoStyleSheet>::from_ffi_mut(styles);
@@ -1319,7 +1319,7 @@ pub unsafe extern "C" fn Servo_AuthorStyles_InsertStyleSheetBefore(
#[no_mangle] #[no_mangle]
pub unsafe extern "C" fn Servo_AuthorStyles_RemoveStyleSheet( pub unsafe extern "C" fn Servo_AuthorStyles_RemoveStyleSheet(
styles: RawServoAuthorStylesBorrowedMut, styles: RawServoAuthorStylesBorrowedMut,
sheet: *const ServoStyleSheet, sheet: *const DomStyleSheet,
) { ) {
let styles = AuthorStyles::<GeckoStyleSheet>::from_ffi_mut(styles); let styles = AuthorStyles::<GeckoStyleSheet>::from_ffi_mut(styles);
@@ -1454,7 +1454,7 @@ pub unsafe extern "C" fn Servo_StyleSet_MediumFeaturesChanged(
#[no_mangle] #[no_mangle]
pub extern "C" fn Servo_StyleSet_PrependStyleSheet( pub extern "C" fn Servo_StyleSet_PrependStyleSheet(
raw_data: RawServoStyleSetBorrowed, raw_data: RawServoStyleSetBorrowed,
sheet: *const ServoStyleSheet, sheet: *const DomStyleSheet,
) { ) {
let global_style_data = &*GLOBAL_STYLE_DATA; let global_style_data = &*GLOBAL_STYLE_DATA;
let mut data = PerDocumentStyleData::from_ffi(raw_data).borrow_mut(); let mut data = PerDocumentStyleData::from_ffi(raw_data).borrow_mut();
@@ -1467,8 +1467,8 @@ pub extern "C" fn Servo_StyleSet_PrependStyleSheet(
#[no_mangle] #[no_mangle]
pub extern "C" fn Servo_StyleSet_InsertStyleSheetBefore( pub extern "C" fn Servo_StyleSet_InsertStyleSheetBefore(
raw_data: RawServoStyleSetBorrowed, raw_data: RawServoStyleSetBorrowed,
sheet: *const ServoStyleSheet, sheet: *const DomStyleSheet,
before_sheet: *const ServoStyleSheet before_sheet: *const DomStyleSheet
) { ) {
let global_style_data = &*GLOBAL_STYLE_DATA; let global_style_data = &*GLOBAL_STYLE_DATA;
let mut data = PerDocumentStyleData::from_ffi(raw_data).borrow_mut(); let mut data = PerDocumentStyleData::from_ffi(raw_data).borrow_mut();
@@ -1485,7 +1485,7 @@ pub extern "C" fn Servo_StyleSet_InsertStyleSheetBefore(
#[no_mangle] #[no_mangle]
pub extern "C" fn Servo_StyleSet_RemoveStyleSheet( pub extern "C" fn Servo_StyleSet_RemoveStyleSheet(
raw_data: RawServoStyleSetBorrowed, raw_data: RawServoStyleSetBorrowed,
sheet: *const ServoStyleSheet sheet: *const DomStyleSheet
) { ) {
let global_style_data = &*GLOBAL_STYLE_DATA; let global_style_data = &*GLOBAL_STYLE_DATA;
let mut data = PerDocumentStyleData::from_ffi(raw_data).borrow_mut(); let mut data = PerDocumentStyleData::from_ffi(raw_data).borrow_mut();
@@ -1560,7 +1560,7 @@ pub extern "C" fn Servo_StyleSheet_GetRules(
#[no_mangle] #[no_mangle]
pub extern "C" fn Servo_StyleSheet_Clone( pub extern "C" fn Servo_StyleSheet_Clone(
raw_sheet: RawServoStyleSheetContentsBorrowed, raw_sheet: RawServoStyleSheetContentsBorrowed,
reference_sheet: *const ServoStyleSheet, reference_sheet: *const DomStyleSheet,
) -> RawServoStyleSheetContentsStrong { ) -> RawServoStyleSheetContentsStrong {
use style::shared_lock::{DeepCloneParams, DeepCloneWithLock}; use style::shared_lock::{DeepCloneParams, DeepCloneWithLock};
let global_style_data = &*GLOBAL_STYLE_DATA; let global_style_data = &*GLOBAL_STYLE_DATA;
@@ -1681,7 +1681,7 @@ pub extern "C" fn Servo_CssRules_InsertRule(
index: u32, index: u32,
nested: bool, nested: bool,
loader: *mut Loader, loader: *mut Loader,
gecko_stylesheet: *mut ServoStyleSheet, gecko_stylesheet: *mut DomStyleSheet,
rule_type: *mut u16, rule_type: *mut u16,
) -> nsresult { ) -> nsresult {
let loader = if loader.is_null() { let loader = if loader.is_null() {
@@ -2136,16 +2136,16 @@ pub extern "C" fn Servo_ImportRule_GetHref(rule: RawServoImportRuleBorrowed, res
#[no_mangle] #[no_mangle]
pub extern "C" fn Servo_ImportRule_GetSheet( pub extern "C" fn Servo_ImportRule_GetSheet(
rule: RawServoImportRuleBorrowed, rule: RawServoImportRuleBorrowed,
) -> *const ServoStyleSheet { ) -> *const DomStyleSheet {
read_locked_arc(rule, |rule: &ImportRule| { read_locked_arc(rule, |rule: &ImportRule| {
rule.stylesheet.as_sheet().unwrap().raw() as *const ServoStyleSheet rule.stylesheet.as_sheet().unwrap().raw() as *const DomStyleSheet
}) })
} }
#[no_mangle] #[no_mangle]
pub extern "C" fn Servo_ImportRule_SetSheet( pub extern "C" fn Servo_ImportRule_SetSheet(
rule: RawServoImportRuleBorrowed, rule: RawServoImportRuleBorrowed,
sheet: *mut ServoStyleSheet, sheet: *mut DomStyleSheet,
) { ) {
write_locked_arc(rule, |rule: &mut ImportRule| { write_locked_arc(rule, |rule: &mut ImportRule| {
let sheet = unsafe { GeckoStyleSheet::new(sheet) }; let sheet = unsafe { GeckoStyleSheet::new(sheet) };

View File

@@ -12,7 +12,7 @@ use style::gecko::global_style_data::GLOBAL_STYLE_DATA;
use style::gecko_bindings::bindings; use style::gecko_bindings::bindings;
use style::gecko_bindings::bindings::Gecko_LoadStyleSheet; use style::gecko_bindings::bindings::Gecko_LoadStyleSheet;
use style::gecko_bindings::structs::{Loader, LoaderReusableStyleSheets}; use style::gecko_bindings::structs::{Loader, LoaderReusableStyleSheets};
use style::gecko_bindings::structs::{ServoStyleSheet, SheetLoadData, SheetLoadDataHolder}; use style::gecko_bindings::structs::{StyleSheet as DomStyleSheet, SheetLoadData, SheetLoadDataHolder};
use style::gecko_bindings::structs::URLExtraData; use style::gecko_bindings::structs::URLExtraData;
use style::gecko_bindings::sugar::ownership::FFIArcHelpers; use style::gecko_bindings::sugar::ownership::FFIArcHelpers;
use style::gecko_bindings::sugar::refptr::RefPtr; use style::gecko_bindings::sugar::refptr::RefPtr;
@@ -24,13 +24,15 @@ use style::stylesheets::StylesheetContents;
use style::stylesheets::import_rule::ImportSheet; use style::stylesheets::import_rule::ImportSheet;
use style::values::CssUrl; use style::values::CssUrl;
pub struct StylesheetLoader(*mut Loader, *mut ServoStyleSheet, *mut SheetLoadData, *mut LoaderReusableStyleSheets); pub struct StylesheetLoader(*mut Loader, *mut DomStyleSheet, *mut SheetLoadData, *mut LoaderReusableStyleSheets);
impl StylesheetLoader { impl StylesheetLoader {
pub fn new(loader: *mut Loader, pub fn new(
parent: *mut ServoStyleSheet, loader: *mut Loader,
parent_load_data: *mut SheetLoadData, parent: *mut DomStyleSheet,
reusable_sheets: *mut LoaderReusableStyleSheets) -> Self { parent_load_data: *mut SheetLoadData,
reusable_sheets: *mut LoaderReusableStyleSheets,
) -> Self {
StylesheetLoader(loader, parent, parent_load_data, reusable_sheets) StylesheetLoader(loader, parent, parent_load_data, reusable_sheets)
} }
} }