mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-06 15:58:39 +09:00
Bug 1332353 - Make it clearer when a stylesheet is really owned by its mDocument
Tag #1375
This commit is contained in:
parent
db34da8e01
commit
5d444ef68a
13 changed files with 83 additions and 38 deletions
|
|
@ -1452,11 +1452,11 @@ nsDocument::~nsDocument()
|
|||
|
||||
// Let the stylesheets know we're going away
|
||||
for (StyleSheet* sheet : mStyleSheets) {
|
||||
sheet->SetOwningDocument(nullptr);
|
||||
sheet->ClearAssociatedDocument();
|
||||
}
|
||||
for (auto& sheets : mAdditionalSheets) {
|
||||
for (StyleSheet* sheet : sheets) {
|
||||
sheet->SetOwningDocument(nullptr);
|
||||
sheet->ClearAssociatedDocument();
|
||||
}
|
||||
}
|
||||
if (mAttrStyleSheet) {
|
||||
|
|
@ -2113,7 +2113,7 @@ nsDocument::RemoveDocStyleSheetsFromStyleSets()
|
|||
{
|
||||
// The stylesheets should forget us
|
||||
for (StyleSheet* sheet : Reversed(mStyleSheets)) {
|
||||
sheet->SetOwningDocument(nullptr);
|
||||
sheet->ClearAssociatedDocument();
|
||||
|
||||
if (sheet->IsApplicable()) {
|
||||
nsCOMPtr<nsIPresShell> shell = GetShell();
|
||||
|
|
@ -2132,7 +2132,7 @@ nsDocument::RemoveStyleSheetsFromStyleSets(
|
|||
{
|
||||
// The stylesheets should forget us
|
||||
for (StyleSheet* sheet : Reversed(aSheets)) {
|
||||
sheet->SetOwningDocument(nullptr);
|
||||
sheet->ClearAssociatedDocument();
|
||||
|
||||
if (sheet->IsApplicable()) {
|
||||
nsCOMPtr<nsIPresShell> shell = GetShell();
|
||||
|
|
@ -4007,7 +4007,7 @@ nsDocument::AddStyleSheet(StyleSheet* aSheet)
|
|||
{
|
||||
NS_PRECONDITION(aSheet, "null arg");
|
||||
mStyleSheets.AppendElement(aSheet);
|
||||
aSheet->SetOwningDocument(this);
|
||||
aSheet->SetAssociatedDocument(this, StyleSheet::OwnedByDocument);
|
||||
|
||||
if (aSheet->IsApplicable()) {
|
||||
AddStyleSheetToStyleSets(aSheet);
|
||||
|
|
@ -4044,7 +4044,7 @@ nsDocument::RemoveStyleSheet(StyleSheet* aSheet)
|
|||
NotifyStyleSheetRemoved(aSheet, true);
|
||||
}
|
||||
|
||||
aSheet->SetOwningDocument(nullptr);
|
||||
aSheet->ClearAssociatedDocument();
|
||||
}
|
||||
|
||||
void
|
||||
|
|
@ -4072,7 +4072,7 @@ nsDocument::UpdateStyleSheets(nsTArray<RefPtr<StyleSheet>>& aOldSheets,
|
|||
StyleSheet* newSheet = aNewSheets[i];
|
||||
if (newSheet) {
|
||||
mStyleSheets.InsertElementAt(oldIndex, newSheet);
|
||||
newSheet->SetOwningDocument(this);
|
||||
newSheet->SetAssociatedDocument(this, StyleSheet::OwnedByDocument);
|
||||
if (newSheet->IsApplicable()) {
|
||||
AddStyleSheetToStyleSets(newSheet);
|
||||
}
|
||||
|
|
@ -4091,7 +4091,7 @@ nsDocument::InsertStyleSheetAt(StyleSheet* aSheet, int32_t aIndex)
|
|||
|
||||
mStyleSheets.InsertElementAt(aIndex, aSheet);
|
||||
|
||||
aSheet->SetOwningDocument(this);
|
||||
aSheet->SetAssociatedDocument(this, StyleSheet::OwnedByDocument);
|
||||
|
||||
if (aSheet->IsApplicable()) {
|
||||
AddStyleSheetToStyleSets(aSheet);
|
||||
|
|
@ -4216,7 +4216,7 @@ nsDocument::LoadAdditionalStyleSheet(additionalSheetType aType,
|
|||
nsresult rv = loader->LoadSheetSync(aSheetURI, parsingMode, true, &sheet);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
sheet->SetOwningDocument(this);
|
||||
sheet->SetAssociatedDocument(this, StyleSheet::OwnedByDocument);
|
||||
MOZ_ASSERT(sheet->IsApplicable());
|
||||
|
||||
return AddAdditionalStyleSheet(aType, sheet);
|
||||
|
|
@ -4274,7 +4274,7 @@ nsDocument::RemoveAdditionalStyleSheet(additionalSheetType aType, nsIURI* aSheet
|
|||
NotifyStyleSheetRemoved(sheetRef, false);
|
||||
EndUpdate(UPDATE_STYLE);
|
||||
|
||||
sheetRef->SetOwningDocument(nullptr);
|
||||
sheetRef->ClearAssociatedDocument();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -12126,7 +12126,7 @@ SizeOfOwnedSheetArrayExcludingThis(const nsTArray<RefPtr<StyleSheet>>& aSheets,
|
|||
size_t n = 0;
|
||||
n += aSheets.ShallowSizeOfExcludingThis(aMallocSizeOf);
|
||||
for (StyleSheet* sheet : aSheets) {
|
||||
if (!sheet->GetOwningDocument()) {
|
||||
if (!sheet->GetAssociatedDocument()) {
|
||||
// Avoid over-reporting shared sheets.
|
||||
continue;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue