From 0f56697eb9deaf89e106e618a317edbda55c216c Mon Sep 17 00:00:00 2001 From: Moonchild Date: Fri, 7 Jan 2022 20:09:13 +0000 Subject: [PATCH] Issue #3049 - Undo Stylo nonsense that breaks body and frame margins. This restores support for using HTML tag styling of margins on the body. Reftests post bug still pass for dynamic changes, so does the newly-added test for body margins and frames that tests the old styling method. This also removes the reftest list for stylo testing for obvious reasons. --- dom/base/nsAttrAndChildArray.cpp | 13 +- dom/base/nsAttrAndChildArray.h | 6 +- dom/base/nsFrameLoader.cpp | 3 - dom/base/nsMappedAttributes.cpp | 12 +- dom/html/HTMLBodyElement.cpp | 238 +++++++++++++++--- dom/html/HTMLBodyElement.h | 38 ++- dom/html/HTMLTableCellElement.cpp | 14 +- dom/html/HTMLTableCellElement.h | 2 - dom/html/HTMLTableElement.cpp | 27 +- dom/html/HTMLTableElement.h | 4 + dom/html/reftests/reftest-stylo.list | 73 ------ dom/html/test/body-margin-test/child.html | 4 + dom/html/test/body-margin-test/fruit.jpg | Bin 0 -> 79942 bytes dom/html/test/body-margin-test/test-body.html | 9 + .../test/body-margin-test/test-frame.html | 11 + 15 files changed, 283 insertions(+), 171 deletions(-) delete mode 100644 dom/html/reftests/reftest-stylo.list create mode 100644 dom/html/test/body-margin-test/child.html create mode 100644 dom/html/test/body-margin-test/fruit.jpg create mode 100644 dom/html/test/body-margin-test/test-body.html create mode 100644 dom/html/test/body-margin-test/test-frame.html diff --git a/dom/base/nsAttrAndChildArray.cpp b/dom/base/nsAttrAndChildArray.cpp index 7ec5cebf01..23b0bf7e95 100644 --- a/dom/base/nsAttrAndChildArray.cpp +++ b/dom/base/nsAttrAndChildArray.cpp @@ -718,19 +718,10 @@ nsAttrAndChildArray::MappedAttrCount() const return mImpl && mImpl->mMappedAttrs ? (uint32_t)mImpl->mMappedAttrs->Count() : 0; } -nsresult -nsAttrAndChildArray::ForceMapped(nsMappedAttributeElement* aContent, nsIDocument* aDocument) -{ - nsHTMLStyleSheet* sheet = aDocument->GetAttributeStyleSheet(); - RefPtr mapped = GetModifiableMapped(aContent, sheet, false, 0); - return MakeMappedUnique(mapped); -} - nsMappedAttributes* nsAttrAndChildArray::GetModifiableMapped(nsMappedAttributeElement* aContent, nsHTMLStyleSheet* aSheet, - bool aWillAddAttr, - int32_t aAttrCount) + bool aWillAddAttr) { if (mImpl && mImpl->mMappedAttrs) { return mImpl->mMappedAttrs->Clone(aWillAddAttr); @@ -740,7 +731,7 @@ nsAttrAndChildArray::GetModifiableMapped(nsMappedAttributeElement* aContent, nsMapRuleToAttributesFunc mapRuleFunc = aContent->GetAttributeMappingFunction(); - return new (aAttrCount) nsMappedAttributes(aSheet, mapRuleFunc); + return new nsMappedAttributes(aSheet, mapRuleFunc); } nsresult diff --git a/dom/base/nsAttrAndChildArray.h b/dom/base/nsAttrAndChildArray.h index af12fba47b..0a6db7a5f3 100644 --- a/dom/base/nsAttrAndChildArray.h +++ b/dom/base/nsAttrAndChildArray.h @@ -144,9 +144,6 @@ public: return MappedAttrCount(); } - // Force this to have mapped attributes, even if those attributes are empty. - nsresult ForceMapped(nsMappedAttributeElement* aContent, nsIDocument* aDocument); - private: nsAttrAndChildArray(const nsAttrAndChildArray& aOther) = delete; nsAttrAndChildArray& operator=(const nsAttrAndChildArray& aOther) = delete; @@ -160,8 +157,7 @@ private: nsMappedAttributes* GetModifiableMapped(nsMappedAttributeElement* aContent, nsHTMLStyleSheet* aSheet, - bool aWillAddAttr, - int32_t aAttrCount = 1); + bool aWillAddAttr); nsresult MakeMappedUnique(nsMappedAttributes* aAttributes); uint32_t AttrSlotsSize() const diff --git a/dom/base/nsFrameLoader.cpp b/dom/base/nsFrameLoader.cpp index b4397d0630..645a392594 100644 --- a/dom/base/nsFrameLoader.cpp +++ b/dom/base/nsFrameLoader.cpp @@ -56,7 +56,6 @@ #include "nsGlobalWindow.h" #include "nsPIWindowRoot.h" #include "nsLayoutUtils.h" -#include "nsMappedAttributes.h" #include "nsView.h" #include "GroupedSHistory.h" #include "PartialSHistory.h" @@ -936,8 +935,6 @@ nsFrameLoader::MarginsChanged(uint32_t aMarginWidth, RefPtr presContext; mDocShell->GetPresContext(getter_AddRefs(presContext)); if (presContext) - // rebuild, because now the same nsMappedAttributes* will produce - // a different style presContext->RebuildAllStyleData(nsChangeHint(0), eRestyle_Subtree); } diff --git a/dom/base/nsMappedAttributes.cpp b/dom/base/nsMappedAttributes.cpp index 825409adc4..949297c489 100644 --- a/dom/base/nsMappedAttributes.cpp +++ b/dom/base/nsMappedAttributes.cpp @@ -61,17 +61,11 @@ nsMappedAttributes::Clone(bool aWillAddAttr) void* nsMappedAttributes::operator new(size_t aSize, uint32_t aAttrCount) CPP_THROW_NEW { - size_t size = aSize + aAttrCount * sizeof(InternalAttr); + NS_ASSERTION(aAttrCount > 0, "zero-attribute nsMappedAttributes requested"); // aSize will include the mAttrs buffer so subtract that. - // We don't want to under-allocate, however, so do not subtract - // if we have zero attributes. The zero attribute case only happens - // for 's mapped attributes - if (aAttrCount != 0) { - size -= sizeof(void*[1]); - } - - void* newAttrs = ::operator new(size); + void* newAttrs = ::operator new(aSize - sizeof(void*[1]) + + aAttrCount * sizeof(InternalAttr)); #ifdef DEBUG static_cast(newAttrs)->mBufferSize = aAttrCount; diff --git a/dom/html/HTMLBodyElement.cpp b/dom/html/HTMLBodyElement.cpp index d030b69d7b..a91dccfb50 100644 --- a/dom/html/HTMLBodyElement.cpp +++ b/dom/html/HTMLBodyElement.cpp @@ -27,8 +27,180 @@ namespace dom { //---------------------------------------------------------------------- +BodyRule::BodyRule(HTMLBodyElement* aPart) + : mPart(aPart) +{ +} + +BodyRule::~BodyRule() +{ +} + +NS_IMPL_ISUPPORTS(BodyRule, nsIStyleRule) + +/* virtual */ void +BodyRule::MapRuleInfoInto(nsRuleData* aData) +{ + if (!(aData->mSIDs & NS_STYLE_INHERIT_BIT(Margin)) || !mPart) + return; // We only care about margins. + + int32_t bodyMarginWidth = -1; + int32_t bodyMarginHeight = -1; + int32_t bodyTopMargin = -1; + int32_t bodyBottomMargin = -1; + int32_t bodyLeftMargin = -1; + int32_t bodyRightMargin = -1; + + // check the mode (fortunately, the ruleData has a presContext for us to use!) + NS_ASSERTION(aData->mPresContext, "null presContext in ruleNode was unexpected"); + nsCompatibility mode = aData->mPresContext->CompatibilityMode(); + + + const nsAttrValue* value; + if (mPart->GetAttrCount() > 0) { + // if marginwidth/marginheight are set, reflect them as 'margin' + value = mPart->GetParsedAttr(nsGkAtoms::marginwidth); + if (value && value->Type() == nsAttrValue::eInteger) { + bodyMarginWidth = value->GetIntegerValue(); + if (bodyMarginWidth < 0) bodyMarginWidth = 0; + nsCSSValue* marginLeft = aData->ValueForMarginLeft(); + if (marginLeft->GetUnit() == eCSSUnit_Null) + marginLeft->SetFloatValue((float)bodyMarginWidth, eCSSUnit_Pixel); + nsCSSValue* marginRight = aData->ValueForMarginRight(); + if (marginRight->GetUnit() == eCSSUnit_Null) + marginRight->SetFloatValue((float)bodyMarginWidth, eCSSUnit_Pixel); + } + + value = mPart->GetParsedAttr(nsGkAtoms::marginheight); + if (value && value->Type() == nsAttrValue::eInteger) { + bodyMarginHeight = value->GetIntegerValue(); + if (bodyMarginHeight < 0) bodyMarginHeight = 0; + nsCSSValue* marginTop = aData->ValueForMarginTop(); + if (marginTop->GetUnit() == eCSSUnit_Null) + marginTop->SetFloatValue((float)bodyMarginHeight, eCSSUnit_Pixel); + nsCSSValue* marginBottom = aData->ValueForMarginBottom(); + if (marginBottom->GetUnit() == eCSSUnit_Null) + marginBottom->SetFloatValue((float)bodyMarginHeight, eCSSUnit_Pixel); + } + + // topmargin (IE-attribute) + value = mPart->GetParsedAttr(nsGkAtoms::topmargin); + if (value && value->Type() == nsAttrValue::eInteger) { + bodyTopMargin = value->GetIntegerValue(); + if (bodyTopMargin < 0) bodyTopMargin = 0; + nsCSSValue* marginTop = aData->ValueForMarginTop(); + if (marginTop->GetUnit() == eCSSUnit_Null) + marginTop->SetFloatValue((float)bodyTopMargin, eCSSUnit_Pixel); + } + + // bottommargin (IE-attribute) + value = mPart->GetParsedAttr(nsGkAtoms::bottommargin); + if (value && value->Type() == nsAttrValue::eInteger) { + bodyBottomMargin = value->GetIntegerValue(); + if (bodyBottomMargin < 0) bodyBottomMargin = 0; + nsCSSValue* marginBottom = aData->ValueForMarginBottom(); + if (marginBottom->GetUnit() == eCSSUnit_Null) + marginBottom->SetFloatValue((float)bodyBottomMargin, eCSSUnit_Pixel); + } + + // leftmargin (IE-attribute) + value = mPart->GetParsedAttr(nsGkAtoms::leftmargin); + if (value && value->Type() == nsAttrValue::eInteger) { + bodyLeftMargin = value->GetIntegerValue(); + if (bodyLeftMargin < 0) bodyLeftMargin = 0; + nsCSSValue* marginLeft = aData->ValueForMarginLeft(); + if (marginLeft->GetUnit() == eCSSUnit_Null) + marginLeft->SetFloatValue((float)bodyLeftMargin, eCSSUnit_Pixel); + } + + // rightmargin (IE-attribute) + value = mPart->GetParsedAttr(nsGkAtoms::rightmargin); + if (value && value->Type() == nsAttrValue::eInteger) { + bodyRightMargin = value->GetIntegerValue(); + if (bodyRightMargin < 0) bodyRightMargin = 0; + nsCSSValue* marginRight = aData->ValueForMarginRight(); + if (marginRight->GetUnit() == eCSSUnit_Null) + marginRight->SetFloatValue((float)bodyRightMargin, eCSSUnit_Pixel); + } + + } + + // if marginwidth or marginheight is set in the and not set in the + // reflect them as margin in the + if (bodyMarginWidth == -1 || bodyMarginHeight == -1) { + nsCOMPtr docShell(aData->mPresContext->GetDocShell()); + if (docShell) { + nscoord frameMarginWidth=-1; // default value + nscoord frameMarginHeight=-1; // default value + docShell->GetMarginWidth(&frameMarginWidth); // -1 indicates not set + docShell->GetMarginHeight(&frameMarginHeight); + if ((frameMarginWidth >= 0) && (bodyMarginWidth == -1)) { // set in & not in + if (eCompatibility_NavQuirks == mode) { + if ((bodyMarginHeight == -1) && (0 > frameMarginHeight)) // nav quirk + frameMarginHeight = 0; + } + } + if ((frameMarginHeight >= 0) && (bodyMarginHeight == -1)) { // set in & not in + if (eCompatibility_NavQuirks == mode) { + if ((bodyMarginWidth == -1) && (0 > frameMarginWidth)) // nav quirk + frameMarginWidth = 0; + } + } + + if ((bodyMarginWidth == -1) && (frameMarginWidth >= 0)) { + nsCSSValue* marginLeft = aData->ValueForMarginLeft(); + if (marginLeft->GetUnit() == eCSSUnit_Null) + marginLeft->SetFloatValue((float)frameMarginWidth, eCSSUnit_Pixel); + nsCSSValue* marginRight = aData->ValueForMarginRight(); + if (marginRight->GetUnit() == eCSSUnit_Null) + marginRight->SetFloatValue((float)frameMarginWidth, eCSSUnit_Pixel); + } + + if ((bodyMarginHeight == -1) && (frameMarginHeight >= 0)) { + nsCSSValue* marginTop = aData->ValueForMarginTop(); + if (marginTop->GetUnit() == eCSSUnit_Null) + marginTop->SetFloatValue((float)frameMarginHeight, eCSSUnit_Pixel); + nsCSSValue* marginBottom = aData->ValueForMarginBottom(); + if (marginBottom->GetUnit() == eCSSUnit_Null) + marginBottom->SetFloatValue((float)frameMarginHeight, eCSSUnit_Pixel); + } + } + } +} + +/* virtual */ bool +BodyRule::MightMapInheritedStyleData() +{ + return false; +} + +/* virtual */ bool +BodyRule::GetDiscretelyAnimatedCSSValue(nsCSSPropertyID aProperty, + nsCSSValue* aValue) +{ + MOZ_ASSERT(false, "GetDiscretelyAnimatedCSSValue is not implemented yet"); + return false; +} + +#ifdef DEBUG +/* virtual */ void +BodyRule::List(FILE* out, int32_t aIndent) const +{ + nsAutoCString indent; + for (int32_t index = aIndent; --index >= 0; ) { + indent.AppendLiteral(" "); + } + fprintf_stderr(out, "%s[body rule] {}\n", indent.get()); +} +#endif + +//---------------------------------------------------------------------- + HTMLBodyElement::~HTMLBodyElement() { + if (mContentStyleRule) { + mContentStyleRule->mPart = nullptr; + } } JSObject* @@ -175,6 +347,17 @@ HTMLBodyElement::ParseAttribute(int32_t aNamespaceID, aResult); } +void +HTMLBodyElement::UnbindFromTree(bool aDeep, bool aNullParent) +{ + if (mContentStyleRule) { + mContentStyleRule->mPart = nullptr; + mContentStyleRule = nullptr; + } + + nsGenericHTMLElement::UnbindFromTree(aDeep, aNullParent); +} + void HTMLBodyElement::MapAttributesIntoRule(const nsMappedAttributes* aAttributes, nsRuleData* aData) @@ -230,6 +413,22 @@ HTMLBodyElement::GetAttributeMappingFunction() const return &MapAttributesIntoRule; } +NS_IMETHODIMP +HTMLBodyElement::WalkContentStyleRules(nsRuleWalker* aRuleWalker) +{ + nsGenericHTMLElement::WalkContentStyleRules(aRuleWalker); + + if (!mContentStyleRule && IsInUncomposedDoc()) { + // XXXbz should this use OwnerDoc() or GetComposedDoc()? + // sXBL/XBL2 issue! + mContentStyleRule = new BodyRule(this); + } + if (aRuleWalker && mContentStyleRule) { + aRuleWalker->Forward(mContentStyleRule); + } + return NS_OK; +} + NS_IMETHODIMP_(bool) HTMLBodyElement::IsAttributeMapped(const nsIAtom* aAttribute) const { @@ -238,12 +437,12 @@ HTMLBodyElement::IsAttributeMapped(const nsIAtom* aAttribute) const { &nsGkAtoms::vlink }, { &nsGkAtoms::alink }, { &nsGkAtoms::text }, + // These aren't mapped through attribute mapping, but they are + // mapped through a style rule, so it is attribute dependent style. + // XXXldb But we don't actually replace the body rule when we have + // dynamic changes... { &nsGkAtoms::marginwidth }, { &nsGkAtoms::marginheight }, - { &nsGkAtoms::topmargin }, - { &nsGkAtoms::rightmargin }, - { &nsGkAtoms::bottommargin }, - { &nsGkAtoms::leftmargin }, { nullptr }, }; @@ -292,37 +491,6 @@ HTMLBodyElement::IsEventAttributeName(nsIAtom *aName) EventNameType_HTMLBodyOrFramesetOnly); } -nsresult -HTMLBodyElement::BindToTree(nsIDocument* aDocument, nsIContent* aParent, - nsIContent* aBindingParent, - bool aCompileEventHandlers) -{ - nsresult rv = nsGenericHTMLElement::BindToTree(aDocument, aParent, - aBindingParent, - aCompileEventHandlers); - NS_ENSURE_SUCCESS(rv, rv); - return mAttrsAndChildren.ForceMapped(this, OwnerDoc()); -} - -nsresult -HTMLBodyElement::AfterSetAttr(int32_t aNameSpaceID, nsIAtom* aName, - const nsAttrValue* aValue, - const nsAttrValue* aOldValue, bool aNotify) -{ - nsresult rv = nsGenericHTMLElement::AfterSetAttr(aNameSpaceID, - aName, aValue, aOldValue, - aNotify); - NS_ENSURE_SUCCESS(rv, rv); - // if the last mapped attribute was removed, don't clear the - // nsMappedAttributes, our style can still depend on the containing frame element - if (!aValue && IsAttributeMapped(aName)) { - nsresult rv = mAttrsAndChildren.ForceMapped(this, OwnerDoc()); - NS_ENSURE_SUCCESS(rv, rv); - } - - return NS_OK; -} - #define EVENT(name_, id_, type_, struct_) /* nothing; handled by the superclass */ // nsGenericHTMLElement::GetOnError returns // already_AddRefed while other getters return diff --git a/dom/html/HTMLBodyElement.h b/dom/html/HTMLBodyElement.h index c637731a02..858bc691a9 100644 --- a/dom/html/HTMLBodyElement.h +++ b/dom/html/HTMLBodyElement.h @@ -14,6 +14,28 @@ namespace mozilla { namespace dom { class OnBeforeUnloadEventHandlerNonNull; +class HTMLBodyElement; + +class BodyRule: public nsIStyleRule +{ + virtual ~BodyRule(); + +public: + explicit BodyRule(HTMLBodyElement* aPart); + + NS_DECL_ISUPPORTS + + // nsIStyleRule interface + virtual void MapRuleInfoInto(nsRuleData* aRuleData) override; + virtual bool MightMapInheritedStyleData() override; + virtual bool GetDiscretelyAnimatedCSSValue(nsCSSPropertyID aProperty, + nsCSSValue* aValue) override; +#ifdef DEBUG + virtual void List(FILE* out = stdout, int32_t aIndent = 0) const override; +#endif + + HTMLBodyElement* mPart; // not ref-counted, cleared by content +}; class HTMLBodyElement final : public nsGenericHTMLElement, public nsIDOMHTMLBodyElement @@ -102,29 +124,23 @@ public: nsIAtom* aAttribute, const nsAString& aValue, nsAttrValue& aResult) override; + virtual void UnbindFromTree(bool aDeep = true, + bool aNullParent = true) override; virtual nsMapRuleToAttributesFunc GetAttributeMappingFunction() const override; + NS_IMETHOD WalkContentStyleRules(nsRuleWalker* aRuleWalker) override; NS_IMETHOD_(bool) IsAttributeMapped(const nsIAtom* aAttribute) const override; virtual already_AddRefed GetAssociatedEditor() override; virtual nsresult Clone(mozilla::dom::NodeInfo *aNodeInfo, nsINode **aResult) const override; virtual bool IsEventAttributeName(nsIAtom* aName) override; - virtual nsresult BindToTree(nsIDocument* aDocument, nsIContent* aParent, - nsIContent* aBindingParent, - bool aCompileEventHandlers) override; - /** - * Called when an attribute has just been changed - */ - virtual nsresult AfterSetAttr(int32_t aNameSpaceID, nsIAtom* aName, - const nsAttrValue* aValue, - const nsAttrValue* aOldValue, - bool aNotify) override; - protected: virtual ~HTMLBodyElement(); virtual JSObject* WrapNode(JSContext *aCx, JS::Handle aGivenProto) override; + RefPtr mContentStyleRule; + private: static void MapAttributesIntoRule(const nsMappedAttributes* aAttributes, nsRuleData* aData); diff --git a/dom/html/HTMLTableCellElement.cpp b/dom/html/HTMLTableCellElement.cpp index 2c795d2d49..41e202e8a5 100644 --- a/dom/html/HTMLTableCellElement.cpp +++ b/dom/html/HTMLTableCellElement.cpp @@ -106,7 +106,9 @@ HTMLTableCellElement::WalkContentStyleRules(nsRuleWalker* aRuleWalker) nsresult rv = nsGenericHTMLElement::WalkContentStyleRules(aRuleWalker); NS_ENSURE_SUCCESS(rv, rv); - if (nsMappedAttributes* tableInheritedAttributes = GetMappedAttributesInheritedFromTable()) { + if (HTMLTableElement* table = GetTable()) { + nsMappedAttributes* tableInheritedAttributes = + table->GetAttributesMappedForCell(); if (tableInheritedAttributes) { aRuleWalker->Forward(tableInheritedAttributes); } @@ -114,16 +116,6 @@ HTMLTableCellElement::WalkContentStyleRules(nsRuleWalker* aRuleWalker) return NS_OK; } -nsMappedAttributes* -HTMLTableCellElement::GetMappedAttributesInheritedFromTable() const -{ - if (HTMLTableElement* table = GetTable()) { - return table->GetAttributesMappedForCell(); - } - - return nullptr; -} - NS_IMETHODIMP HTMLTableCellElement::SetAbbr(const nsAString& aAbbr) { diff --git a/dom/html/HTMLTableCellElement.h b/dom/html/HTMLTableCellElement.h index 10af61fc25..59634840e8 100644 --- a/dom/html/HTMLTableCellElement.h +++ b/dom/html/HTMLTableCellElement.h @@ -147,8 +147,6 @@ public: virtual nsMapRuleToAttributesFunc GetAttributeMappingFunction() const override; NS_IMETHOD WalkContentStyleRules(nsRuleWalker* aRuleWalker) override; NS_IMETHOD_(bool) IsAttributeMapped(const nsIAtom* aAttribute) const override; - // Get mapped attributes of ancestor table, if any - nsMappedAttributes* GetMappedAttributesInheritedFromTable() const; virtual nsresult Clone(mozilla::dom::NodeInfo *aNodeInfo, nsINode **aResult) const override; diff --git a/dom/html/HTMLTableElement.cpp b/dom/html/HTMLTableElement.cpp index c33d8de772..a2a6937432 100644 --- a/dom/html/HTMLTableElement.cpp +++ b/dom/html/HTMLTableElement.cpp @@ -321,7 +321,7 @@ TableRowsCollection::ParentDestroyed() HTMLTableElement::HTMLTableElement(already_AddRefed& aNodeInfo) : nsGenericHTMLElement(aNodeInfo), - mTableInheritedAttributes(nullptr) + mTableInheritedAttributes(TABLE_ATTRS_DIRTY) { SetHasWeirdParserInsertionMode(); } @@ -911,15 +911,20 @@ MapInheritedTableAttributesIntoRule(const nsMappedAttributes* aAttributes, nsMappedAttributes* HTMLTableElement::GetAttributesMappedForCell() { - return mTableInheritedAttributes; + if (mTableInheritedAttributes) { + if (mTableInheritedAttributes == TABLE_ATTRS_DIRTY) + BuildInheritedAttributes(); + if (mTableInheritedAttributes != TABLE_ATTRS_DIRTY) + return mTableInheritedAttributes; + } + return nullptr; } void HTMLTableElement::BuildInheritedAttributes() { - NS_ASSERTION(!mTableInheritedAttributes, + NS_ASSERTION(mTableInheritedAttributes == TABLE_ATTRS_DIRTY, "potential leak, plus waste of work"); - MOZ_ASSERT(NS_IsMainThread()); nsIDocument *document = GetComposedDoc(); nsHTMLStyleSheet* sheet = document ? document->GetAttributeStyleSheet() : nullptr; @@ -956,7 +961,10 @@ HTMLTableElement::BuildInheritedAttributes() void HTMLTableElement::ReleaseInheritedAttributes() { - NS_IF_RELEASE(mTableInheritedAttributes); + if (mTableInheritedAttributes && + mTableInheritedAttributes != TABLE_ATTRS_DIRTY) + NS_RELEASE(mTableInheritedAttributes); + mTableInheritedAttributes = TABLE_ATTRS_DIRTY; } nsresult @@ -965,12 +973,9 @@ HTMLTableElement::BindToTree(nsIDocument* aDocument, nsIContent* aParent, bool aCompileEventHandlers) { ReleaseInheritedAttributes(); - nsresult rv = nsGenericHTMLElement::BindToTree(aDocument, aParent, - aBindingParent, - aCompileEventHandlers); - NS_ENSURE_SUCCESS(rv, rv); - BuildInheritedAttributes(); - return NS_OK; + return nsGenericHTMLElement::BindToTree(aDocument, aParent, + aBindingParent, + aCompileEventHandlers); } void diff --git a/dom/html/HTMLTableElement.h b/dom/html/HTMLTableElement.h index 00faab0ec0..57bf8705e7 100644 --- a/dom/html/HTMLTableElement.h +++ b/dom/html/HTMLTableElement.h @@ -13,6 +13,8 @@ namespace mozilla { namespace dom { +#define TABLE_ATTRS_DIRTY ((nsMappedAttributes*)0x1) + class TableRowsCollection; class HTMLTableElement final : public nsGenericHTMLElement @@ -219,6 +221,8 @@ protected: RefPtr mTBodies; RefPtr mRows; + // Sentinel value of TABLE_ATTRS_DIRTY indicates that this is dirty and needs + // to be recalculated. nsMappedAttributes *mTableInheritedAttributes; void BuildInheritedAttributes(); void ReleaseInheritedAttributes(); diff --git a/dom/html/reftests/reftest-stylo.list b/dom/html/reftests/reftest-stylo.list deleted file mode 100644 index 570c073587..0000000000 --- a/dom/html/reftests/reftest-stylo.list +++ /dev/null @@ -1,73 +0,0 @@ -# DO NOT EDIT! This is a auto-generated temporary list for Stylo testing -# autofocus attribute (we can't test with mochitests) -# many stylo intermittents in files below -# include autofocus/reftest-stylo.list -# include toblob-todataurl/reftest-stylo.list - -skip-if(B2G) == 41464-1a.html 41464-1a.html -skip-if(B2G) == 41464-1b.html 41464-1b.html -== 52019-1.html 52019-1.html -== 82711-1.html 82711-1.html -== 82711-2.html 82711-2.html -== 82711-1-ref.html 82711-1-ref.html -random == 468263-1a.html 468263-1a.html -random == 468263-1b.html 468263-1b.html -random == 468263-1c.html 468263-1c.html -random == 468263-1d.html 468263-1d.html -random == 468263-2.html 468263-2.html -random == 468263-2.html 468263-2.html -== 484200-1.html 484200-1.html -== 485377.html 485377.html -== 557840.html 557840.html -== 560059-video-dimensions.html 560059-video-dimensions.html -== 573322-quirks.html 573322-quirks.html -== 573322-no-quirks.html 573322-no-quirks.html -# == 596455-1a.html 596455-1a.html -== 596455-1b.html 596455-1b.html -== 596455-2a.html 596455-2a.html -== 596455-2b.html 596455-2b.html -== 610935.html 610935.html -== 649134-1.html 649134-1.html -skip-if(Android||B2G) == 649134-2.html 649134-2.html - -== bug448564-1_malformed.html bug448564-1_malformed.html -== bug448564-1_malformed.html bug448564-1_malformed.html - -== bug448564-4a.html bug448564-4a.html -== bug502168-1_malformed.html bug502168-1_malformed.html - -random == responsive-image-load-shortcircuit.html responsive-image-load-shortcircuit.html - -# Test that image documents taken into account CSS properties like -# image-orientation when determining the size of the image. -# (Fuzzy necessary due to pixel-wise comparison of different JPEGs. -# The vast majority of the fuzziness comes from Linux and WinXP.) -skip == bug917595-iframe-1.html bug917595-iframe-1.html -skip == bug917595-exif-rotated.jpg bug917595-exif-rotated.jpg -# bug 1060869 -# Bug 1150490 disabling on Mulet as on B2G - -# Test support for SVG-as-image in elements. -== bug1106522-1.html bug1106522-1.html -== bug1106522-2.html bug1106522-2.html - -== href-attr-change-restyles.html href-attr-change-restyles.html -== figure.html figure.html -== pre-1.html pre-1.html -== table-border-1.html table-border-1.html -== table-border-2.html table-border-2.html -== table-border-2.html table-border-2.html - -# Test imageset is using permissions.default.image -pref(permissions.default.image,1) HTTP == bug1196784-with-srcset.html bug1196784-with-srcset.html -pref(permissions.default.image,2) HTTP == bug1196784-with-srcset.html bug1196784-with-srcset.html - -# Test video with rotation information can be rotated. -== bug1228601-video-rotation-90.html bug1228601-video-rotation-90.html - -# Test that dynamically setting body margin attributes updates style appropriately -== body-topmargin-dynamic.html body-topmargin-dynamic.html - -# Test that dynamically removing a nonmargin mapped attribute does not -# destroy margins inherited from the frame. -== body-frame-margin-remove-other-pres-hint.html body-frame-margin-remove-other-pres-hint.html diff --git a/dom/html/test/body-margin-test/child.html b/dom/html/test/body-margin-test/child.html new file mode 100644 index 0000000000..d740fb058a --- /dev/null +++ b/dom/html/test/body-margin-test/child.html @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/dom/html/test/body-margin-test/fruit.jpg b/dom/html/test/body-margin-test/fruit.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d43db35e18537d32c3a4f9d731caa428d9612c49 GIT binary patch literal 79942 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 + + + + + + + \ No newline at end of file diff --git a/dom/html/test/body-margin-test/test-frame.html b/dom/html/test/body-margin-test/test-frame.html new file mode 100644 index 0000000000..0c246188a4 --- /dev/null +++ b/dom/html/test/body-margin-test/test-frame.html @@ -0,0 +1,11 @@ + + + + iframe now showing margin/padding in pale moon + + + + +