mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-06 15:58:39 +09:00
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.
This commit is contained in:
parent
bae3220dd5
commit
0f56697eb9
15 changed files with 283 additions and 171 deletions
|
|
@ -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<nsIEditor> 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<JSObject*> aGivenProto) override;
|
||||
|
||||
RefPtr<BodyRule> mContentStyleRule;
|
||||
|
||||
private:
|
||||
static void MapAttributesIntoRule(const nsMappedAttributes* aAttributes,
|
||||
nsRuleData* aData);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue