From 51147256cd2fbb5c02d5698d8ae22addd29212dc Mon Sep 17 00:00:00 2001 From: "nisheeth%netscape.com" Date: Thu, 10 Dec 1998 23:52:46 +0000 Subject: [PATCH] Added a new method, GetStyleHintForAttributeChange() to nsIHTMLContent and implemented it in all the HTML content classes. The method is used by the HTML style sheet to get a style change hint from the content object when an attribute of the content object changes. git-svn-id: svn://10.0.0.236/trunk@16185 18797224-902f-48f8-a5cc-f745e15eee43 --- .../html/content/src/nsGenericHTMLElement.cpp | 50 +++++++++++++++++++ .../html/content/src/nsGenericHTMLElement.h | 18 +++++-- .../html/content/src/nsHTMLAnchorElement.cpp | 10 ++++ .../html/content/src/nsHTMLAppletElement.cpp | 10 ++++ .../html/content/src/nsHTMLAreaElement.cpp | 10 ++++ .../html/content/src/nsHTMLBRElement.cpp | 10 ++++ .../html/content/src/nsHTMLBaseElement.cpp | 10 ++++ .../content/src/nsHTMLBaseFontElement.cpp | 10 ++++ .../html/content/src/nsHTMLBodyElement.cpp | 10 +++- .../html/content/src/nsHTMLButtonElement.cpp | 10 ++++ .../html/content/src/nsHTMLDListElement.cpp | 10 ++++ .../html/content/src/nsHTMLDelElement.cpp | 10 ++++ .../content/src/nsHTMLDirectoryElement.cpp | 10 ++++ .../html/content/src/nsHTMLDivElement.cpp | 10 ++++ .../html/content/src/nsHTMLEmbedElement.cpp | 10 ++++ .../content/src/nsHTMLFieldSetElement.cpp | 10 ++++ .../html/content/src/nsHTMLFontElement.cpp | 10 ++++ .../html/content/src/nsHTMLFormElement.cpp | 9 ++++ .../html/content/src/nsHTMLFrameElement.cpp | 9 ++++ .../content/src/nsHTMLFrameSetElement.cpp | 10 ++++ .../html/content/src/nsHTMLHRElement.cpp | 10 ++++ .../html/content/src/nsHTMLHeadElement.cpp | 10 ++++ .../html/content/src/nsHTMLHeadingElement.cpp | 10 ++++ .../html/content/src/nsHTMLHtmlElement.cpp | 10 ++++ .../html/content/src/nsHTMLIFrameElement.cpp | 10 ++++ .../html/content/src/nsHTMLImageElement.cpp | 9 ++++ .../html/content/src/nsHTMLInputElement.cpp | 10 ++++ .../html/content/src/nsHTMLInsElement.cpp | 10 ++++ .../html/content/src/nsHTMLIsIndexElement.cpp | 10 ++++ .../html/content/src/nsHTMLLIElement.cpp | 10 ++++ .../html/content/src/nsHTMLLabelElement.cpp | 9 ++++ .../html/content/src/nsHTMLLegendElement.cpp | 10 ++++ .../html/content/src/nsHTMLLinkElement.cpp | 10 ++++ .../html/content/src/nsHTMLMapElement.cpp | 10 ++++ .../html/content/src/nsHTMLMenuElement.cpp | 10 ++++ .../html/content/src/nsHTMLMetaElement.cpp | 10 ++++ .../html/content/src/nsHTMLModElement.cpp | 10 ++++ .../html/content/src/nsHTMLOListElement.cpp | 10 ++++ .../html/content/src/nsHTMLObjectElement.cpp | 10 ++++ .../content/src/nsHTMLOptGroupElement.cpp | 10 ++++ .../html/content/src/nsHTMLOptionElement.cpp | 9 ++++ .../content/src/nsHTMLParagraphElement.cpp | 10 ++++ .../html/content/src/nsHTMLParamElement.cpp | 10 ++++ .../html/content/src/nsHTMLPreElement.cpp | 10 ++++ .../html/content/src/nsHTMLQuoteElement.cpp | 10 ++++ .../html/content/src/nsHTMLScriptElement.cpp | 10 ++++ .../html/content/src/nsHTMLSelectElement.cpp | 10 ++++ .../content/src/nsHTMLSharedObjectElement.cpp | 10 ++++ .../html/content/src/nsHTMLSpacerElement.cpp | 10 ++++ .../html/content/src/nsHTMLSpanElement.cpp | 10 ++++ .../html/content/src/nsHTMLStyleElement.cpp | 10 ++++ .../content/src/nsHTMLTableCaptionElement.cpp | 10 ++++ .../content/src/nsHTMLTableCellElement.cpp | 20 ++++++++ .../content/src/nsHTMLTableColElement.cpp | 16 ++++++ .../src/nsHTMLTableColGroupElement.cpp | 16 ++++++ .../html/content/src/nsHTMLTableElement.cpp | 17 ++++++- .../content/src/nsHTMLTableRowElement.cpp | 16 ++++++ .../content/src/nsHTMLTableSectionElement.cpp | 16 ++++++ .../content/src/nsHTMLTextAreaElement.cpp | 9 ++++ .../html/content/src/nsHTMLTitleElement.cpp | 10 ++++ .../html/content/src/nsHTMLUListElement.cpp | 10 ++++ .../html/content/src/nsHTMLWBRElement.cpp | 10 ++++ .../html/content/src/nsGenericDOMDataNode.h | 7 +++ .../html/content/src/nsGenericHTMLElement.cpp | 50 +++++++++++++++++++ .../html/content/src/nsGenericHTMLElement.h | 18 +++++-- .../html/content/src/nsHTMLAnchorElement.cpp | 10 ++++ .../html/content/src/nsHTMLAppletElement.cpp | 10 ++++ .../html/content/src/nsHTMLAreaElement.cpp | 10 ++++ .../html/content/src/nsHTMLBRElement.cpp | 10 ++++ .../html/content/src/nsHTMLBaseElement.cpp | 10 ++++ .../content/src/nsHTMLBaseFontElement.cpp | 10 ++++ .../html/content/src/nsHTMLBodyElement.cpp | 10 +++- .../html/content/src/nsHTMLButtonElement.cpp | 10 ++++ .../html/content/src/nsHTMLDListElement.cpp | 10 ++++ .../html/content/src/nsHTMLDelElement.cpp | 10 ++++ .../content/src/nsHTMLDirectoryElement.cpp | 10 ++++ .../html/content/src/nsHTMLDivElement.cpp | 10 ++++ .../html/content/src/nsHTMLEmbedElement.cpp | 10 ++++ .../content/src/nsHTMLFieldSetElement.cpp | 10 ++++ .../html/content/src/nsHTMLFontElement.cpp | 10 ++++ .../html/content/src/nsHTMLFormElement.cpp | 9 ++++ .../html/content/src/nsHTMLFrameElement.cpp | 9 ++++ .../content/src/nsHTMLFrameSetElement.cpp | 10 ++++ .../html/content/src/nsHTMLHRElement.cpp | 10 ++++ .../html/content/src/nsHTMLHeadElement.cpp | 10 ++++ .../html/content/src/nsHTMLHeadingElement.cpp | 10 ++++ .../html/content/src/nsHTMLHtmlElement.cpp | 10 ++++ .../html/content/src/nsHTMLIFrameElement.cpp | 10 ++++ .../html/content/src/nsHTMLImageElement.cpp | 9 ++++ .../html/content/src/nsHTMLInputElement.cpp | 10 ++++ .../html/content/src/nsHTMLInsElement.cpp | 10 ++++ .../html/content/src/nsHTMLIsIndexElement.cpp | 10 ++++ .../html/content/src/nsHTMLLIElement.cpp | 10 ++++ .../html/content/src/nsHTMLLabelElement.cpp | 9 ++++ .../html/content/src/nsHTMLLayerElement.cpp | 10 ++++ .../html/content/src/nsHTMLLegendElement.cpp | 10 ++++ .../html/content/src/nsHTMLLinkElement.cpp | 10 ++++ .../html/content/src/nsHTMLMapElement.cpp | 10 ++++ .../html/content/src/nsHTMLMenuElement.cpp | 10 ++++ .../html/content/src/nsHTMLMetaElement.cpp | 10 ++++ .../html/content/src/nsHTMLModElement.cpp | 10 ++++ .../html/content/src/nsHTMLOListElement.cpp | 10 ++++ .../html/content/src/nsHTMLObjectElement.cpp | 10 ++++ .../content/src/nsHTMLOptGroupElement.cpp | 10 ++++ .../html/content/src/nsHTMLOptionElement.cpp | 9 ++++ .../content/src/nsHTMLParagraphElement.cpp | 10 ++++ .../html/content/src/nsHTMLParamElement.cpp | 10 ++++ .../html/content/src/nsHTMLPreElement.cpp | 10 ++++ .../html/content/src/nsHTMLQuoteElement.cpp | 10 ++++ .../html/content/src/nsHTMLScriptElement.cpp | 10 ++++ .../html/content/src/nsHTMLSelectElement.cpp | 10 ++++ .../html/content/src/nsHTMLSpacerElement.cpp | 10 ++++ .../html/content/src/nsHTMLSpanElement.cpp | 10 ++++ .../html/content/src/nsHTMLStyleElement.cpp | 10 ++++ .../content/src/nsHTMLTableCaptionElement.cpp | 10 ++++ .../content/src/nsHTMLTableCellElement.cpp | 20 ++++++++ .../content/src/nsHTMLTableColElement.cpp | 16 ++++++ .../src/nsHTMLTableColGroupElement.cpp | 16 ++++++ .../html/content/src/nsHTMLTableElement.cpp | 17 ++++++- .../content/src/nsHTMLTableRowElement.cpp | 16 ++++++ .../content/src/nsHTMLTableSectionElement.cpp | 16 ++++++ .../content/src/nsHTMLTextAreaElement.cpp | 9 ++++ .../html/content/src/nsHTMLTitleElement.cpp | 10 ++++ .../html/content/src/nsHTMLUListElement.cpp | 10 ++++ .../html/content/src/nsHTMLWBRElement.cpp | 10 ++++ 125 files changed, 1403 insertions(+), 10 deletions(-) diff --git a/mozilla/content/html/content/src/nsGenericHTMLElement.cpp b/mozilla/content/html/content/src/nsGenericHTMLElement.cpp index 4d9c45f2fda..4bd0066382e 100644 --- a/mozilla/content/html/content/src/nsGenericHTMLElement.cpp +++ b/mozilla/content/html/content/src/nsGenericHTMLElement.cpp @@ -1704,6 +1704,56 @@ nsGenericHTMLElement::MapBackgroundAttributesInto(nsIHTMLAttributes* aAttributes } } +static PRBool AttributeChangeRequiresRepaint(const nsIAtom* aAttribute) +{ + // these are attributes that always require a restyle and a repaint, but not a reflow + // regardless of the tag they are associated with + return (PRBool) + (aAttribute==nsHTMLAtoms::bgcolor || + aAttribute==nsHTMLAtoms::color); +} + +static PRBool AttributeChangeRequiresReflow(const nsIAtom* aAttribute) +{ + // these are attributes that always require a restyle and reflow + // regardless of the tag they are associated with + return (PRBool) + (aAttribute==nsHTMLAtoms::align || + aAttribute==nsHTMLAtoms::border || + aAttribute==nsHTMLAtoms::cellpadding || + aAttribute==nsHTMLAtoms::cellspacing || + aAttribute==nsHTMLAtoms::ch || + aAttribute==nsHTMLAtoms::choff || + aAttribute==nsHTMLAtoms::colspan || + aAttribute==nsHTMLAtoms::face || + aAttribute==nsHTMLAtoms::frame || + aAttribute==nsHTMLAtoms::height || + aAttribute==nsHTMLAtoms::nowrap || + aAttribute==nsHTMLAtoms::rowspan || + aAttribute==nsHTMLAtoms::rules || + aAttribute==nsHTMLAtoms::span || + aAttribute==nsHTMLAtoms::valign || + aAttribute==nsHTMLAtoms::width); +} + +PRBool +nsGenericHTMLElement::SetStyleHintForCommonAttributes(const nsIContent* aNode, + const nsIAtom* aAttribute, + PRInt32* aHint) +{ + PRBool setHint = PR_TRUE; + if (PR_TRUE == AttributeChangeRequiresReflow(aAttribute)) { + *aHint = NS_STYLE_HINT_REFLOW; + } + else if (PR_TRUE == AttributeChangeRequiresRepaint(aAttribute)) { + *aHint = NS_STYLE_HINT_VISUAL; + } + else { + setHint = PR_FALSE; + } + return setHint; +} + //---------------------------------------------------------------------- nsGenericHTMLLeafElement::nsGenericHTMLLeafElement() diff --git a/mozilla/content/html/content/src/nsGenericHTMLElement.h b/mozilla/content/html/content/src/nsGenericHTMLElement.h index 9efa122c320..bc11e409741 100644 --- a/mozilla/content/html/content/src/nsGenericHTMLElement.h +++ b/mozilla/content/html/content/src/nsGenericHTMLElement.h @@ -211,6 +211,10 @@ public: const nsHTMLValue& aValue, nsString& aResult); + static PRBool SetStyleHintForCommonAttributes(const nsIContent* aNode, + const nsIAtom* aAttribute, + PRInt32* aHint); + nsIHTMLAttributes* mAttributes; }; @@ -439,8 +443,12 @@ public: NS_IMETHOD AttributeToString(nsIAtom* aAttribute, \ nsHTMLValue& aValue, \ nsString& aResult) const; \ - NS_IMETHOD GetAttributeMappingFunction(nsMapAttributesFunc& aMapFunc) const; - + NS_IMETHOD GetAttributeMappingFunction(nsMapAttributesFunc& aMapFunc) const; \ + NS_IMETHOD GetStyleHintForAttributeChange( \ + const nsIContent *aNode, \ + const nsIAtom* aAttribute, \ + PRInt32 *aHint) const; + #define NS_IMPL_IHTMLCONTENT_USING_GENERIC2(_g) \ NS_IMETHOD Compact() { \ return _g.Compact(); \ @@ -487,7 +495,11 @@ public: NS_IMETHOD AttributeToString(nsIAtom* aAttribute, \ nsHTMLValue& aValue, \ nsString& aResult) const; \ - NS_IMETHOD GetAttributeMappingFunction(nsMapAttributesFunc& aMapFunc) const; + NS_IMETHOD GetAttributeMappingFunction(nsMapAttributesFunc& aMapFunc) const; \ + NS_IMETHOD GetStyleHintForAttributeChange( \ + const nsIContent *aNode, \ + const nsIAtom* aAttribute, \ + PRInt32 *aHint) const; /** * This macro implements the portion of query interface that is diff --git a/mozilla/content/html/content/src/nsHTMLAnchorElement.cpp b/mozilla/content/html/content/src/nsHTMLAnchorElement.cpp index 1792a166577..792f687e6ff 100644 --- a/mozilla/content/html/content/src/nsHTMLAnchorElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLAnchorElement.cpp @@ -317,3 +317,13 @@ nsHTMLAnchorElement::HandleDOMEvent(nsIPresContext& aPresContext, } return ret; } + +NS_IMETHODIMP +nsHTMLAnchorElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/content/html/content/src/nsHTMLAppletElement.cpp b/mozilla/content/html/content/src/nsHTMLAppletElement.cpp index 8f0027e92ce..c26629113ee 100644 --- a/mozilla/content/html/content/src/nsHTMLAppletElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLAppletElement.cpp @@ -219,3 +219,13 @@ nsHTMLAppletElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLAppletElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/content/html/content/src/nsHTMLAreaElement.cpp b/mozilla/content/html/content/src/nsHTMLAreaElement.cpp index 2fd08612699..20af92083dd 100644 --- a/mozilla/content/html/content/src/nsHTMLAreaElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLAreaElement.cpp @@ -187,3 +187,13 @@ nsHTMLAreaElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLAreaElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/content/html/content/src/nsHTMLBRElement.cpp b/mozilla/content/html/content/src/nsHTMLBRElement.cpp index 4fbaccfd0a3..646f61e6840 100644 --- a/mozilla/content/html/content/src/nsHTMLBRElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLBRElement.cpp @@ -195,3 +195,13 @@ nsHTMLBRElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLBRElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/content/html/content/src/nsHTMLBaseElement.cpp b/mozilla/content/html/content/src/nsHTMLBaseElement.cpp index 3ab74115ef9..33efdc7495d 100644 --- a/mozilla/content/html/content/src/nsHTMLBaseElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLBaseElement.cpp @@ -169,3 +169,13 @@ nsHTMLBaseElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLBaseElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/content/html/content/src/nsHTMLBaseFontElement.cpp b/mozilla/content/html/content/src/nsHTMLBaseFontElement.cpp index 99104a30726..eee0d2ffcf8 100644 --- a/mozilla/content/html/content/src/nsHTMLBaseFontElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLBaseFontElement.cpp @@ -176,3 +176,13 @@ nsHTMLBaseFontElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLBaseFontElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/content/html/content/src/nsHTMLBodyElement.cpp b/mozilla/content/html/content/src/nsHTMLBodyElement.cpp index 8ee79407724..283e185c5fe 100644 --- a/mozilla/content/html/content/src/nsHTMLBodyElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLBodyElement.cpp @@ -727,4 +727,12 @@ nsHTMLBodyElement::GetInlineStyleRule(nsIStyleRule*& aResult) return NS_OK; } - +NS_IMETHODIMP +nsHTMLBodyElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/content/html/content/src/nsHTMLButtonElement.cpp b/mozilla/content/html/content/src/nsHTMLButtonElement.cpp index cf44d6bcade..0368427d072 100644 --- a/mozilla/content/html/content/src/nsHTMLButtonElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLButtonElement.cpp @@ -416,3 +416,13 @@ nsHTMLButtonElement::SetForm(nsIDOMHTMLFormElement* aForm) } return result; } + +NS_IMETHODIMP +nsHTMLButtonElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/content/html/content/src/nsHTMLDListElement.cpp b/mozilla/content/html/content/src/nsHTMLDListElement.cpp index 4c79197fd13..5c16cd1359f 100644 --- a/mozilla/content/html/content/src/nsHTMLDListElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLDListElement.cpp @@ -182,3 +182,13 @@ nsHTMLDListElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLDListElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/content/html/content/src/nsHTMLDelElement.cpp b/mozilla/content/html/content/src/nsHTMLDelElement.cpp index 14ea29bd667..51ee57e2db6 100644 --- a/mozilla/content/html/content/src/nsHTMLDelElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLDelElement.cpp @@ -172,3 +172,13 @@ nsHTMLDelElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLDelElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/content/html/content/src/nsHTMLDirectoryElement.cpp b/mozilla/content/html/content/src/nsHTMLDirectoryElement.cpp index 89666f7f70d..87c4a044d0a 100644 --- a/mozilla/content/html/content/src/nsHTMLDirectoryElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLDirectoryElement.cpp @@ -208,3 +208,13 @@ nsHTMLDirectoryElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLDirectoryElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/content/html/content/src/nsHTMLDivElement.cpp b/mozilla/content/html/content/src/nsHTMLDivElement.cpp index a6c83cfc6c2..6cd258fdc65 100644 --- a/mozilla/content/html/content/src/nsHTMLDivElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLDivElement.cpp @@ -202,3 +202,13 @@ nsHTMLDivElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLDivElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/content/html/content/src/nsHTMLEmbedElement.cpp b/mozilla/content/html/content/src/nsHTMLEmbedElement.cpp index 3ad2f3319e9..3d62cb64567 100644 --- a/mozilla/content/html/content/src/nsHTMLEmbedElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLEmbedElement.cpp @@ -188,3 +188,13 @@ nsHTMLEmbedElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLEmbedElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/content/html/content/src/nsHTMLFieldSetElement.cpp b/mozilla/content/html/content/src/nsHTMLFieldSetElement.cpp index 047abe1a3eb..feb8be720e2 100644 --- a/mozilla/content/html/content/src/nsHTMLFieldSetElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLFieldSetElement.cpp @@ -266,3 +266,13 @@ nsHTMLFieldSetElement::SetWidget(nsIWidget* aWidget) NS_ASSERTION(0, "Fieldset has no widget"); return NS_FORM_NOTOK; } + +NS_IMETHODIMP +nsHTMLFieldSetElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/content/html/content/src/nsHTMLFontElement.cpp b/mozilla/content/html/content/src/nsHTMLFontElement.cpp index f2b491ec48d..5fd0c92a8d3 100644 --- a/mozilla/content/html/content/src/nsHTMLFontElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLFontElement.cpp @@ -331,3 +331,13 @@ nsHTMLFontElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLFontElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/content/html/content/src/nsHTMLFormElement.cpp b/mozilla/content/html/content/src/nsHTMLFormElement.cpp index acc53baf035..449ca0c3675 100644 --- a/mozilla/content/html/content/src/nsHTMLFormElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLFormElement.cpp @@ -595,3 +595,12 @@ nsFormControlList::NamedItem(const nsString& aName, nsIDOMNode** aReturn) return result; } +NS_IMETHODIMP +nsHTMLFormElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/content/html/content/src/nsHTMLFrameElement.cpp b/mozilla/content/html/content/src/nsHTMLFrameElement.cpp index 115891431a1..f6b72e0f688 100644 --- a/mozilla/content/html/content/src/nsHTMLFrameElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLFrameElement.cpp @@ -222,3 +222,12 @@ nsHTMLFrameElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } +NS_IMETHODIMP +nsHTMLFrameElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/content/html/content/src/nsHTMLFrameSetElement.cpp b/mozilla/content/html/content/src/nsHTMLFrameSetElement.cpp index 8eef2f4052e..06a1a0e5a42 100644 --- a/mozilla/content/html/content/src/nsHTMLFrameSetElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLFrameSetElement.cpp @@ -186,3 +186,13 @@ nsHTMLFrameSetElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLFrameSetElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/content/html/content/src/nsHTMLHRElement.cpp b/mozilla/content/html/content/src/nsHTMLHRElement.cpp index 90537b81251..9994299266d 100644 --- a/mozilla/content/html/content/src/nsHTMLHRElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLHRElement.cpp @@ -256,3 +256,13 @@ nsHTMLHRElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLHRElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/content/html/content/src/nsHTMLHeadElement.cpp b/mozilla/content/html/content/src/nsHTMLHeadElement.cpp index 98882f7d63d..3da9e0212cc 100644 --- a/mozilla/content/html/content/src/nsHTMLHeadElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLHeadElement.cpp @@ -166,3 +166,13 @@ nsHTMLHeadElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLHeadElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/content/html/content/src/nsHTMLHeadingElement.cpp b/mozilla/content/html/content/src/nsHTMLHeadingElement.cpp index 5ccba30680e..2e05fc63da7 100644 --- a/mozilla/content/html/content/src/nsHTMLHeadingElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLHeadingElement.cpp @@ -187,3 +187,13 @@ nsHTMLHeadingElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLHeadingElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/content/html/content/src/nsHTMLHtmlElement.cpp b/mozilla/content/html/content/src/nsHTMLHtmlElement.cpp index 59846bec0e6..2b1d0c433cc 100644 --- a/mozilla/content/html/content/src/nsHTMLHtmlElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLHtmlElement.cpp @@ -175,3 +175,13 @@ nsHTMLHtmlElement::HandleDOMEvent(nsIPresContext& aPresContext, aEventStatus = nsEventStatus_eIgnore; return NS_OK; } + +NS_IMETHODIMP +nsHTMLHtmlElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/content/html/content/src/nsHTMLIFrameElement.cpp b/mozilla/content/html/content/src/nsHTMLIFrameElement.cpp index ffec1781dab..d2208dbb5a6 100644 --- a/mozilla/content/html/content/src/nsHTMLIFrameElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLIFrameElement.cpp @@ -280,3 +280,13 @@ nsHTMLIFrameElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLIFrameElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/content/html/content/src/nsHTMLImageElement.cpp b/mozilla/content/html/content/src/nsHTMLImageElement.cpp index ef558f19d3a..d2bc0f2dcbf 100644 --- a/mozilla/content/html/content/src/nsHTMLImageElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLImageElement.cpp @@ -349,3 +349,12 @@ nsHTMLImageElement::Finalize(JSContext *aContext) mInner.Finalize(aContext); } +NS_IMETHODIMP +nsHTMLImageElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/content/html/content/src/nsHTMLInputElement.cpp b/mozilla/content/html/content/src/nsHTMLInputElement.cpp index 3b739f5e8ef..504f7715eca 100644 --- a/mozilla/content/html/content/src/nsHTMLInputElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLInputElement.cpp @@ -672,3 +672,13 @@ nsHTMLInputElement::SetWidget(nsIWidget* aWidget) } return NS_OK; } + +NS_IMETHODIMP +nsHTMLInputElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/content/html/content/src/nsHTMLInsElement.cpp b/mozilla/content/html/content/src/nsHTMLInsElement.cpp index eebdc0a801a..8c7d9638c63 100644 --- a/mozilla/content/html/content/src/nsHTMLInsElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLInsElement.cpp @@ -172,3 +172,13 @@ nsHTMLInsElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLInsElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/content/html/content/src/nsHTMLIsIndexElement.cpp b/mozilla/content/html/content/src/nsHTMLIsIndexElement.cpp index 40d534029ce..2dad270bee7 100644 --- a/mozilla/content/html/content/src/nsHTMLIsIndexElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLIsIndexElement.cpp @@ -178,3 +178,13 @@ nsHTMLIsIndexElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLIsIndexElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/content/html/content/src/nsHTMLLIElement.cpp b/mozilla/content/html/content/src/nsHTMLLIElement.cpp index 1a0012501ce..06b16561a8b 100644 --- a/mozilla/content/html/content/src/nsHTMLLIElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLLIElement.cpp @@ -206,3 +206,13 @@ nsHTMLLIElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLLIElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/content/html/content/src/nsHTMLLabelElement.cpp b/mozilla/content/html/content/src/nsHTMLLabelElement.cpp index e81933e8e03..eb947829614 100644 --- a/mozilla/content/html/content/src/nsHTMLLabelElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLLabelElement.cpp @@ -270,3 +270,12 @@ nsHTMLLabelElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } +NS_IMETHODIMP +nsHTMLLabelElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/content/html/content/src/nsHTMLLegendElement.cpp b/mozilla/content/html/content/src/nsHTMLLegendElement.cpp index dce5167bc91..95f7c3a48b0 100644 --- a/mozilla/content/html/content/src/nsHTMLLegendElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLLegendElement.cpp @@ -214,3 +214,13 @@ nsHTMLLegendElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLLegendElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/content/html/content/src/nsHTMLLinkElement.cpp b/mozilla/content/html/content/src/nsHTMLLinkElement.cpp index 855af6bf0c2..b5b208f7fe3 100644 --- a/mozilla/content/html/content/src/nsHTMLLinkElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLLinkElement.cpp @@ -190,3 +190,13 @@ nsHTMLLinkElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLLinkElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/content/html/content/src/nsHTMLMapElement.cpp b/mozilla/content/html/content/src/nsHTMLMapElement.cpp index 5b42f5b8466..27d9b826634 100644 --- a/mozilla/content/html/content/src/nsHTMLMapElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLMapElement.cpp @@ -178,3 +178,13 @@ nsHTMLMapElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLMapElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/content/html/content/src/nsHTMLMenuElement.cpp b/mozilla/content/html/content/src/nsHTMLMenuElement.cpp index 478d00ac2a4..061d049cefa 100644 --- a/mozilla/content/html/content/src/nsHTMLMenuElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLMenuElement.cpp @@ -207,3 +207,13 @@ nsHTMLMenuElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLMenuElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/content/html/content/src/nsHTMLMetaElement.cpp b/mozilla/content/html/content/src/nsHTMLMetaElement.cpp index 0a7205eae4c..28cf9f24035 100644 --- a/mozilla/content/html/content/src/nsHTMLMetaElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLMetaElement.cpp @@ -175,3 +175,13 @@ nsHTMLMetaElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLMetaElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/content/html/content/src/nsHTMLModElement.cpp b/mozilla/content/html/content/src/nsHTMLModElement.cpp index e882c10c996..aa629361dee 100644 --- a/mozilla/content/html/content/src/nsHTMLModElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLModElement.cpp @@ -172,3 +172,13 @@ nsHTMLModElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLModElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/content/html/content/src/nsHTMLOListElement.cpp b/mozilla/content/html/content/src/nsHTMLOListElement.cpp index 5f4a5fdb623..57184dc7c5c 100644 --- a/mozilla/content/html/content/src/nsHTMLOListElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLOListElement.cpp @@ -234,3 +234,13 @@ nsHTMLOListElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLOListElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/content/html/content/src/nsHTMLObjectElement.cpp b/mozilla/content/html/content/src/nsHTMLObjectElement.cpp index 8853255ac39..ec1816dfcc7 100644 --- a/mozilla/content/html/content/src/nsHTMLObjectElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLObjectElement.cpp @@ -244,3 +244,13 @@ nsHTMLObjectElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLObjectElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/content/html/content/src/nsHTMLOptGroupElement.cpp b/mozilla/content/html/content/src/nsHTMLOptGroupElement.cpp index c52a662455e..b5761a3ee64 100644 --- a/mozilla/content/html/content/src/nsHTMLOptGroupElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLOptGroupElement.cpp @@ -172,3 +172,13 @@ nsHTMLOptGroupElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLOptGroupElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/content/html/content/src/nsHTMLOptionElement.cpp b/mozilla/content/html/content/src/nsHTMLOptionElement.cpp index b3a1ed1402c..33351765258 100644 --- a/mozilla/content/html/content/src/nsHTMLOptionElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLOptionElement.cpp @@ -265,3 +265,12 @@ nsHTMLOptionElement::GetText(nsString& aText) return result; } +NS_IMETHODIMP +nsHTMLOptionElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/content/html/content/src/nsHTMLParagraphElement.cpp b/mozilla/content/html/content/src/nsHTMLParagraphElement.cpp index 8d6596013a2..0a2c71fed84 100644 --- a/mozilla/content/html/content/src/nsHTMLParagraphElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLParagraphElement.cpp @@ -195,3 +195,13 @@ nsHTMLParagraphElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLParagraphElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/content/html/content/src/nsHTMLParamElement.cpp b/mozilla/content/html/content/src/nsHTMLParamElement.cpp index a67815d68df..005141fffa4 100644 --- a/mozilla/content/html/content/src/nsHTMLParamElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLParamElement.cpp @@ -178,3 +178,13 @@ nsHTMLParamElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLParamElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/content/html/content/src/nsHTMLPreElement.cpp b/mozilla/content/html/content/src/nsHTMLPreElement.cpp index 81d9266d910..d612ab81a50 100644 --- a/mozilla/content/html/content/src/nsHTMLPreElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLPreElement.cpp @@ -223,3 +223,13 @@ nsHTMLPreElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLPreElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/content/html/content/src/nsHTMLQuoteElement.cpp b/mozilla/content/html/content/src/nsHTMLQuoteElement.cpp index aaf400796fc..4d337abdb7b 100644 --- a/mozilla/content/html/content/src/nsHTMLQuoteElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLQuoteElement.cpp @@ -169,3 +169,13 @@ nsHTMLQuoteElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLQuoteElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/content/html/content/src/nsHTMLScriptElement.cpp b/mozilla/content/html/content/src/nsHTMLScriptElement.cpp index 04e0202051a..6ea4bdd85ea 100644 --- a/mozilla/content/html/content/src/nsHTMLScriptElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLScriptElement.cpp @@ -230,3 +230,13 @@ nsHTMLScriptElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLScriptElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/content/html/content/src/nsHTMLSelectElement.cpp b/mozilla/content/html/content/src/nsHTMLSelectElement.cpp index b17091ab603..6f0e1a6b61b 100644 --- a/mozilla/content/html/content/src/nsHTMLSelectElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLSelectElement.cpp @@ -644,3 +644,13 @@ nsOptionList::Clear() } mElements.Clear(); } + +NS_IMETHODIMP +nsHTMLSelectElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/content/html/content/src/nsHTMLSharedObjectElement.cpp b/mozilla/content/html/content/src/nsHTMLSharedObjectElement.cpp index 8853255ac39..ec1816dfcc7 100644 --- a/mozilla/content/html/content/src/nsHTMLSharedObjectElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLSharedObjectElement.cpp @@ -244,3 +244,13 @@ nsHTMLObjectElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLObjectElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/content/html/content/src/nsHTMLSpacerElement.cpp b/mozilla/content/html/content/src/nsHTMLSpacerElement.cpp index 095eecdfcc4..28cd8d05d81 100644 --- a/mozilla/content/html/content/src/nsHTMLSpacerElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLSpacerElement.cpp @@ -218,3 +218,13 @@ nsHTMLSpacerElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLSpacerElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/content/html/content/src/nsHTMLSpanElement.cpp b/mozilla/content/html/content/src/nsHTMLSpanElement.cpp index a1a62dce89e..b040cc82903 100644 --- a/mozilla/content/html/content/src/nsHTMLSpanElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLSpanElement.cpp @@ -155,3 +155,13 @@ nsHTMLSpanElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLSpanElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/content/html/content/src/nsHTMLStyleElement.cpp b/mozilla/content/html/content/src/nsHTMLStyleElement.cpp index d31c7908d73..51b3679ceff 100644 --- a/mozilla/content/html/content/src/nsHTMLStyleElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLStyleElement.cpp @@ -174,3 +174,13 @@ nsHTMLStyleElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLStyleElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/content/html/content/src/nsHTMLTableCaptionElement.cpp b/mozilla/content/html/content/src/nsHTMLTableCaptionElement.cpp index 3aa9720ffbe..9eabe81da2f 100644 --- a/mozilla/content/html/content/src/nsHTMLTableCaptionElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLTableCaptionElement.cpp @@ -212,3 +212,13 @@ nsHTMLTableCaptionElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLTableCaptionElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/content/html/content/src/nsHTMLTableCellElement.cpp b/mozilla/content/html/content/src/nsHTMLTableCellElement.cpp index 327b2689082..62677a84b53 100644 --- a/mozilla/content/html/content/src/nsHTMLTableCellElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLTableCellElement.cpp @@ -409,3 +409,23 @@ nsHTMLTableCellElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLTableCellElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + if (PR_TRUE == nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, + aAttribute, aHint)) { + // Do nothing + } + else if (nsHTMLAtoms::abbr != aAttribute && + nsHTMLAtoms::axis != aAttribute && + nsHTMLAtoms::headers != aAttribute && + nsHTMLAtoms::scope != aAttribute) + { + *aHint = NS_STYLE_HINT_REFLOW; + } + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/content/html/content/src/nsHTMLTableColElement.cpp b/mozilla/content/html/content/src/nsHTMLTableColElement.cpp index 94948fa5644..7f00ce09dbc 100644 --- a/mozilla/content/html/content/src/nsHTMLTableColElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLTableColElement.cpp @@ -314,3 +314,19 @@ NS_METHOD nsHTMLTableColElement::GetSpanValue(PRInt32* aSpan) } return NS_OK; } + +NS_IMETHODIMP +nsHTMLTableColElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + if (PR_TRUE == nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, + aAttribute, aHint)) { + // Do nothing + } + else { + *aHint = NS_STYLE_HINT_REFLOW; + } + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/content/html/content/src/nsHTMLTableColGroupElement.cpp b/mozilla/content/html/content/src/nsHTMLTableColGroupElement.cpp index 4ae97c05906..10a83248059 100644 --- a/mozilla/content/html/content/src/nsHTMLTableColGroupElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLTableColGroupElement.cpp @@ -289,3 +289,19 @@ nsHTMLTableColGroupElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLTableColGroupElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + if (PR_TRUE == nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, + aAttribute, aHint)) { + // Do nothing + } + else { + *aHint = NS_STYLE_HINT_REFLOW; + } + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/content/html/content/src/nsHTMLTableElement.cpp b/mozilla/content/html/content/src/nsHTMLTableElement.cpp index 81fc3931295..0664eaff7a2 100644 --- a/mozilla/content/html/content/src/nsHTMLTableElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLTableElement.cpp @@ -1217,4 +1217,19 @@ nsHTMLTableElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } - +NS_IMETHODIMP +nsHTMLTableElement::GetStyleHintForAttributeChange( + const nsIContent* aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + if (PR_TRUE == nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, + aAttribute, aHint)) { + // Do nothing + } + else if (nsHTMLAtoms::summary != aAttribute) + { + *aHint = NS_STYLE_HINT_REFLOW; + } + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/content/html/content/src/nsHTMLTableRowElement.cpp b/mozilla/content/html/content/src/nsHTMLTableRowElement.cpp index aa4c3ca0e4f..9c1e3e1e139 100644 --- a/mozilla/content/html/content/src/nsHTMLTableRowElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLTableRowElement.cpp @@ -344,3 +344,19 @@ nsHTMLTableRowElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLTableRowElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + if (PR_TRUE == nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, + aAttribute, aHint)) { + // Do nothing + } + else { + *aHint = NS_STYLE_HINT_REFLOW; + } + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/content/html/content/src/nsHTMLTableSectionElement.cpp b/mozilla/content/html/content/src/nsHTMLTableSectionElement.cpp index e8ad6a53b42..d6fabecf80f 100644 --- a/mozilla/content/html/content/src/nsHTMLTableSectionElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLTableSectionElement.cpp @@ -296,3 +296,19 @@ nsHTMLTableSectionElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLTableSectionElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + if (PR_TRUE == nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, + aAttribute, aHint)) { + // Do nothing + } + else { + *aHint = NS_STYLE_HINT_REFLOW; + } + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/content/html/content/src/nsHTMLTextAreaElement.cpp b/mozilla/content/html/content/src/nsHTMLTextAreaElement.cpp index 0978798a8e1..bbd4fab5770 100644 --- a/mozilla/content/html/content/src/nsHTMLTextAreaElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLTextAreaElement.cpp @@ -445,3 +445,12 @@ nsHTMLTextAreaElement::SetForm(nsIDOMHTMLFormElement* aForm) return result; } +NS_IMETHODIMP +nsHTMLTextAreaElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/content/html/content/src/nsHTMLTitleElement.cpp b/mozilla/content/html/content/src/nsHTMLTitleElement.cpp index 2a80181251e..0b61c430761 100644 --- a/mozilla/content/html/content/src/nsHTMLTitleElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLTitleElement.cpp @@ -168,3 +168,13 @@ nsHTMLTitleElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLTitleElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/content/html/content/src/nsHTMLUListElement.cpp b/mozilla/content/html/content/src/nsHTMLUListElement.cpp index 2508683d235..1dc43ac7af0 100644 --- a/mozilla/content/html/content/src/nsHTMLUListElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLUListElement.cpp @@ -212,3 +212,13 @@ nsHTMLUListElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLUListElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/content/html/content/src/nsHTMLWBRElement.cpp b/mozilla/content/html/content/src/nsHTMLWBRElement.cpp index 15cb407f6a0..e6eced971a7 100644 --- a/mozilla/content/html/content/src/nsHTMLWBRElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLWBRElement.cpp @@ -165,3 +165,13 @@ nsHTMLWBRElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLWBRElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/layout/html/content/src/nsGenericDOMDataNode.h b/mozilla/layout/html/content/src/nsGenericDOMDataNode.h index 5e180376e85..f2f0679bc72 100644 --- a/mozilla/layout/html/content/src/nsGenericDOMDataNode.h +++ b/mozilla/layout/html/content/src/nsGenericDOMDataNode.h @@ -519,6 +519,13 @@ struct nsGenericDOMDataNode { GetAttributeMappingFunction(nsMapAttributesFunc& aMapFunc) const { \ aMapFunc = nsGenericDOMDataNode::MapNoAttributes; \ return NS_OK; \ + } \ + NS_IMETHOD GetStyleHintForAttributeChange( \ + const nsIContent *aNode, \ + const nsIAtom* aAttribute, \ + PRInt32 *aHint) const \ + { \ + return NS_OK; \ } /** diff --git a/mozilla/layout/html/content/src/nsGenericHTMLElement.cpp b/mozilla/layout/html/content/src/nsGenericHTMLElement.cpp index 4d9c45f2fda..4bd0066382e 100644 --- a/mozilla/layout/html/content/src/nsGenericHTMLElement.cpp +++ b/mozilla/layout/html/content/src/nsGenericHTMLElement.cpp @@ -1704,6 +1704,56 @@ nsGenericHTMLElement::MapBackgroundAttributesInto(nsIHTMLAttributes* aAttributes } } +static PRBool AttributeChangeRequiresRepaint(const nsIAtom* aAttribute) +{ + // these are attributes that always require a restyle and a repaint, but not a reflow + // regardless of the tag they are associated with + return (PRBool) + (aAttribute==nsHTMLAtoms::bgcolor || + aAttribute==nsHTMLAtoms::color); +} + +static PRBool AttributeChangeRequiresReflow(const nsIAtom* aAttribute) +{ + // these are attributes that always require a restyle and reflow + // regardless of the tag they are associated with + return (PRBool) + (aAttribute==nsHTMLAtoms::align || + aAttribute==nsHTMLAtoms::border || + aAttribute==nsHTMLAtoms::cellpadding || + aAttribute==nsHTMLAtoms::cellspacing || + aAttribute==nsHTMLAtoms::ch || + aAttribute==nsHTMLAtoms::choff || + aAttribute==nsHTMLAtoms::colspan || + aAttribute==nsHTMLAtoms::face || + aAttribute==nsHTMLAtoms::frame || + aAttribute==nsHTMLAtoms::height || + aAttribute==nsHTMLAtoms::nowrap || + aAttribute==nsHTMLAtoms::rowspan || + aAttribute==nsHTMLAtoms::rules || + aAttribute==nsHTMLAtoms::span || + aAttribute==nsHTMLAtoms::valign || + aAttribute==nsHTMLAtoms::width); +} + +PRBool +nsGenericHTMLElement::SetStyleHintForCommonAttributes(const nsIContent* aNode, + const nsIAtom* aAttribute, + PRInt32* aHint) +{ + PRBool setHint = PR_TRUE; + if (PR_TRUE == AttributeChangeRequiresReflow(aAttribute)) { + *aHint = NS_STYLE_HINT_REFLOW; + } + else if (PR_TRUE == AttributeChangeRequiresRepaint(aAttribute)) { + *aHint = NS_STYLE_HINT_VISUAL; + } + else { + setHint = PR_FALSE; + } + return setHint; +} + //---------------------------------------------------------------------- nsGenericHTMLLeafElement::nsGenericHTMLLeafElement() diff --git a/mozilla/layout/html/content/src/nsGenericHTMLElement.h b/mozilla/layout/html/content/src/nsGenericHTMLElement.h index 9efa122c320..bc11e409741 100644 --- a/mozilla/layout/html/content/src/nsGenericHTMLElement.h +++ b/mozilla/layout/html/content/src/nsGenericHTMLElement.h @@ -211,6 +211,10 @@ public: const nsHTMLValue& aValue, nsString& aResult); + static PRBool SetStyleHintForCommonAttributes(const nsIContent* aNode, + const nsIAtom* aAttribute, + PRInt32* aHint); + nsIHTMLAttributes* mAttributes; }; @@ -439,8 +443,12 @@ public: NS_IMETHOD AttributeToString(nsIAtom* aAttribute, \ nsHTMLValue& aValue, \ nsString& aResult) const; \ - NS_IMETHOD GetAttributeMappingFunction(nsMapAttributesFunc& aMapFunc) const; - + NS_IMETHOD GetAttributeMappingFunction(nsMapAttributesFunc& aMapFunc) const; \ + NS_IMETHOD GetStyleHintForAttributeChange( \ + const nsIContent *aNode, \ + const nsIAtom* aAttribute, \ + PRInt32 *aHint) const; + #define NS_IMPL_IHTMLCONTENT_USING_GENERIC2(_g) \ NS_IMETHOD Compact() { \ return _g.Compact(); \ @@ -487,7 +495,11 @@ public: NS_IMETHOD AttributeToString(nsIAtom* aAttribute, \ nsHTMLValue& aValue, \ nsString& aResult) const; \ - NS_IMETHOD GetAttributeMappingFunction(nsMapAttributesFunc& aMapFunc) const; + NS_IMETHOD GetAttributeMappingFunction(nsMapAttributesFunc& aMapFunc) const; \ + NS_IMETHOD GetStyleHintForAttributeChange( \ + const nsIContent *aNode, \ + const nsIAtom* aAttribute, \ + PRInt32 *aHint) const; /** * This macro implements the portion of query interface that is diff --git a/mozilla/layout/html/content/src/nsHTMLAnchorElement.cpp b/mozilla/layout/html/content/src/nsHTMLAnchorElement.cpp index 1792a166577..792f687e6ff 100644 --- a/mozilla/layout/html/content/src/nsHTMLAnchorElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLAnchorElement.cpp @@ -317,3 +317,13 @@ nsHTMLAnchorElement::HandleDOMEvent(nsIPresContext& aPresContext, } return ret; } + +NS_IMETHODIMP +nsHTMLAnchorElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/layout/html/content/src/nsHTMLAppletElement.cpp b/mozilla/layout/html/content/src/nsHTMLAppletElement.cpp index 8f0027e92ce..c26629113ee 100644 --- a/mozilla/layout/html/content/src/nsHTMLAppletElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLAppletElement.cpp @@ -219,3 +219,13 @@ nsHTMLAppletElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLAppletElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/layout/html/content/src/nsHTMLAreaElement.cpp b/mozilla/layout/html/content/src/nsHTMLAreaElement.cpp index 2fd08612699..20af92083dd 100644 --- a/mozilla/layout/html/content/src/nsHTMLAreaElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLAreaElement.cpp @@ -187,3 +187,13 @@ nsHTMLAreaElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLAreaElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/layout/html/content/src/nsHTMLBRElement.cpp b/mozilla/layout/html/content/src/nsHTMLBRElement.cpp index 4fbaccfd0a3..646f61e6840 100644 --- a/mozilla/layout/html/content/src/nsHTMLBRElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLBRElement.cpp @@ -195,3 +195,13 @@ nsHTMLBRElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLBRElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/layout/html/content/src/nsHTMLBaseElement.cpp b/mozilla/layout/html/content/src/nsHTMLBaseElement.cpp index 3ab74115ef9..33efdc7495d 100644 --- a/mozilla/layout/html/content/src/nsHTMLBaseElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLBaseElement.cpp @@ -169,3 +169,13 @@ nsHTMLBaseElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLBaseElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/layout/html/content/src/nsHTMLBaseFontElement.cpp b/mozilla/layout/html/content/src/nsHTMLBaseFontElement.cpp index 99104a30726..eee0d2ffcf8 100644 --- a/mozilla/layout/html/content/src/nsHTMLBaseFontElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLBaseFontElement.cpp @@ -176,3 +176,13 @@ nsHTMLBaseFontElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLBaseFontElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/layout/html/content/src/nsHTMLBodyElement.cpp b/mozilla/layout/html/content/src/nsHTMLBodyElement.cpp index 8ee79407724..283e185c5fe 100644 --- a/mozilla/layout/html/content/src/nsHTMLBodyElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLBodyElement.cpp @@ -727,4 +727,12 @@ nsHTMLBodyElement::GetInlineStyleRule(nsIStyleRule*& aResult) return NS_OK; } - +NS_IMETHODIMP +nsHTMLBodyElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/layout/html/content/src/nsHTMLButtonElement.cpp b/mozilla/layout/html/content/src/nsHTMLButtonElement.cpp index cf44d6bcade..0368427d072 100644 --- a/mozilla/layout/html/content/src/nsHTMLButtonElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLButtonElement.cpp @@ -416,3 +416,13 @@ nsHTMLButtonElement::SetForm(nsIDOMHTMLFormElement* aForm) } return result; } + +NS_IMETHODIMP +nsHTMLButtonElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/layout/html/content/src/nsHTMLDListElement.cpp b/mozilla/layout/html/content/src/nsHTMLDListElement.cpp index 4c79197fd13..5c16cd1359f 100644 --- a/mozilla/layout/html/content/src/nsHTMLDListElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLDListElement.cpp @@ -182,3 +182,13 @@ nsHTMLDListElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLDListElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/layout/html/content/src/nsHTMLDelElement.cpp b/mozilla/layout/html/content/src/nsHTMLDelElement.cpp index 14ea29bd667..51ee57e2db6 100644 --- a/mozilla/layout/html/content/src/nsHTMLDelElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLDelElement.cpp @@ -172,3 +172,13 @@ nsHTMLDelElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLDelElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/layout/html/content/src/nsHTMLDirectoryElement.cpp b/mozilla/layout/html/content/src/nsHTMLDirectoryElement.cpp index 89666f7f70d..87c4a044d0a 100644 --- a/mozilla/layout/html/content/src/nsHTMLDirectoryElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLDirectoryElement.cpp @@ -208,3 +208,13 @@ nsHTMLDirectoryElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLDirectoryElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/layout/html/content/src/nsHTMLDivElement.cpp b/mozilla/layout/html/content/src/nsHTMLDivElement.cpp index a6c83cfc6c2..6cd258fdc65 100644 --- a/mozilla/layout/html/content/src/nsHTMLDivElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLDivElement.cpp @@ -202,3 +202,13 @@ nsHTMLDivElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLDivElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/layout/html/content/src/nsHTMLEmbedElement.cpp b/mozilla/layout/html/content/src/nsHTMLEmbedElement.cpp index 3ad2f3319e9..3d62cb64567 100644 --- a/mozilla/layout/html/content/src/nsHTMLEmbedElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLEmbedElement.cpp @@ -188,3 +188,13 @@ nsHTMLEmbedElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLEmbedElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/layout/html/content/src/nsHTMLFieldSetElement.cpp b/mozilla/layout/html/content/src/nsHTMLFieldSetElement.cpp index 047abe1a3eb..feb8be720e2 100644 --- a/mozilla/layout/html/content/src/nsHTMLFieldSetElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLFieldSetElement.cpp @@ -266,3 +266,13 @@ nsHTMLFieldSetElement::SetWidget(nsIWidget* aWidget) NS_ASSERTION(0, "Fieldset has no widget"); return NS_FORM_NOTOK; } + +NS_IMETHODIMP +nsHTMLFieldSetElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/layout/html/content/src/nsHTMLFontElement.cpp b/mozilla/layout/html/content/src/nsHTMLFontElement.cpp index f2b491ec48d..5fd0c92a8d3 100644 --- a/mozilla/layout/html/content/src/nsHTMLFontElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLFontElement.cpp @@ -331,3 +331,13 @@ nsHTMLFontElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLFontElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/layout/html/content/src/nsHTMLFormElement.cpp b/mozilla/layout/html/content/src/nsHTMLFormElement.cpp index acc53baf035..449ca0c3675 100644 --- a/mozilla/layout/html/content/src/nsHTMLFormElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLFormElement.cpp @@ -595,3 +595,12 @@ nsFormControlList::NamedItem(const nsString& aName, nsIDOMNode** aReturn) return result; } +NS_IMETHODIMP +nsHTMLFormElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/layout/html/content/src/nsHTMLFrameElement.cpp b/mozilla/layout/html/content/src/nsHTMLFrameElement.cpp index 115891431a1..f6b72e0f688 100644 --- a/mozilla/layout/html/content/src/nsHTMLFrameElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLFrameElement.cpp @@ -222,3 +222,12 @@ nsHTMLFrameElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } +NS_IMETHODIMP +nsHTMLFrameElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/layout/html/content/src/nsHTMLFrameSetElement.cpp b/mozilla/layout/html/content/src/nsHTMLFrameSetElement.cpp index 8eef2f4052e..06a1a0e5a42 100644 --- a/mozilla/layout/html/content/src/nsHTMLFrameSetElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLFrameSetElement.cpp @@ -186,3 +186,13 @@ nsHTMLFrameSetElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLFrameSetElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/layout/html/content/src/nsHTMLHRElement.cpp b/mozilla/layout/html/content/src/nsHTMLHRElement.cpp index 90537b81251..9994299266d 100644 --- a/mozilla/layout/html/content/src/nsHTMLHRElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLHRElement.cpp @@ -256,3 +256,13 @@ nsHTMLHRElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLHRElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/layout/html/content/src/nsHTMLHeadElement.cpp b/mozilla/layout/html/content/src/nsHTMLHeadElement.cpp index 98882f7d63d..3da9e0212cc 100644 --- a/mozilla/layout/html/content/src/nsHTMLHeadElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLHeadElement.cpp @@ -166,3 +166,13 @@ nsHTMLHeadElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLHeadElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/layout/html/content/src/nsHTMLHeadingElement.cpp b/mozilla/layout/html/content/src/nsHTMLHeadingElement.cpp index 5ccba30680e..2e05fc63da7 100644 --- a/mozilla/layout/html/content/src/nsHTMLHeadingElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLHeadingElement.cpp @@ -187,3 +187,13 @@ nsHTMLHeadingElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLHeadingElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/layout/html/content/src/nsHTMLHtmlElement.cpp b/mozilla/layout/html/content/src/nsHTMLHtmlElement.cpp index 59846bec0e6..2b1d0c433cc 100644 --- a/mozilla/layout/html/content/src/nsHTMLHtmlElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLHtmlElement.cpp @@ -175,3 +175,13 @@ nsHTMLHtmlElement::HandleDOMEvent(nsIPresContext& aPresContext, aEventStatus = nsEventStatus_eIgnore; return NS_OK; } + +NS_IMETHODIMP +nsHTMLHtmlElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/layout/html/content/src/nsHTMLIFrameElement.cpp b/mozilla/layout/html/content/src/nsHTMLIFrameElement.cpp index ffec1781dab..d2208dbb5a6 100644 --- a/mozilla/layout/html/content/src/nsHTMLIFrameElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLIFrameElement.cpp @@ -280,3 +280,13 @@ nsHTMLIFrameElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLIFrameElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/layout/html/content/src/nsHTMLImageElement.cpp b/mozilla/layout/html/content/src/nsHTMLImageElement.cpp index ef558f19d3a..d2bc0f2dcbf 100644 --- a/mozilla/layout/html/content/src/nsHTMLImageElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLImageElement.cpp @@ -349,3 +349,12 @@ nsHTMLImageElement::Finalize(JSContext *aContext) mInner.Finalize(aContext); } +NS_IMETHODIMP +nsHTMLImageElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/layout/html/content/src/nsHTMLInputElement.cpp b/mozilla/layout/html/content/src/nsHTMLInputElement.cpp index 3b739f5e8ef..504f7715eca 100644 --- a/mozilla/layout/html/content/src/nsHTMLInputElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLInputElement.cpp @@ -672,3 +672,13 @@ nsHTMLInputElement::SetWidget(nsIWidget* aWidget) } return NS_OK; } + +NS_IMETHODIMP +nsHTMLInputElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/layout/html/content/src/nsHTMLInsElement.cpp b/mozilla/layout/html/content/src/nsHTMLInsElement.cpp index eebdc0a801a..8c7d9638c63 100644 --- a/mozilla/layout/html/content/src/nsHTMLInsElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLInsElement.cpp @@ -172,3 +172,13 @@ nsHTMLInsElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLInsElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/layout/html/content/src/nsHTMLIsIndexElement.cpp b/mozilla/layout/html/content/src/nsHTMLIsIndexElement.cpp index 40d534029ce..2dad270bee7 100644 --- a/mozilla/layout/html/content/src/nsHTMLIsIndexElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLIsIndexElement.cpp @@ -178,3 +178,13 @@ nsHTMLIsIndexElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLIsIndexElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/layout/html/content/src/nsHTMLLIElement.cpp b/mozilla/layout/html/content/src/nsHTMLLIElement.cpp index 1a0012501ce..06b16561a8b 100644 --- a/mozilla/layout/html/content/src/nsHTMLLIElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLLIElement.cpp @@ -206,3 +206,13 @@ nsHTMLLIElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLLIElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/layout/html/content/src/nsHTMLLabelElement.cpp b/mozilla/layout/html/content/src/nsHTMLLabelElement.cpp index e81933e8e03..eb947829614 100644 --- a/mozilla/layout/html/content/src/nsHTMLLabelElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLLabelElement.cpp @@ -270,3 +270,12 @@ nsHTMLLabelElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } +NS_IMETHODIMP +nsHTMLLabelElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/layout/html/content/src/nsHTMLLayerElement.cpp b/mozilla/layout/html/content/src/nsHTMLLayerElement.cpp index 48eec44fa94..48e4a555fe8 100644 --- a/mozilla/layout/html/content/src/nsHTMLLayerElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLLayerElement.cpp @@ -285,3 +285,13 @@ nsHTMLLayerElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLLayerElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/layout/html/content/src/nsHTMLLegendElement.cpp b/mozilla/layout/html/content/src/nsHTMLLegendElement.cpp index dce5167bc91..95f7c3a48b0 100644 --- a/mozilla/layout/html/content/src/nsHTMLLegendElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLLegendElement.cpp @@ -214,3 +214,13 @@ nsHTMLLegendElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLLegendElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/layout/html/content/src/nsHTMLLinkElement.cpp b/mozilla/layout/html/content/src/nsHTMLLinkElement.cpp index 855af6bf0c2..b5b208f7fe3 100644 --- a/mozilla/layout/html/content/src/nsHTMLLinkElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLLinkElement.cpp @@ -190,3 +190,13 @@ nsHTMLLinkElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLLinkElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/layout/html/content/src/nsHTMLMapElement.cpp b/mozilla/layout/html/content/src/nsHTMLMapElement.cpp index 5b42f5b8466..27d9b826634 100644 --- a/mozilla/layout/html/content/src/nsHTMLMapElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLMapElement.cpp @@ -178,3 +178,13 @@ nsHTMLMapElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLMapElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/layout/html/content/src/nsHTMLMenuElement.cpp b/mozilla/layout/html/content/src/nsHTMLMenuElement.cpp index 478d00ac2a4..061d049cefa 100644 --- a/mozilla/layout/html/content/src/nsHTMLMenuElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLMenuElement.cpp @@ -207,3 +207,13 @@ nsHTMLMenuElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLMenuElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/layout/html/content/src/nsHTMLMetaElement.cpp b/mozilla/layout/html/content/src/nsHTMLMetaElement.cpp index 0a7205eae4c..28cf9f24035 100644 --- a/mozilla/layout/html/content/src/nsHTMLMetaElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLMetaElement.cpp @@ -175,3 +175,13 @@ nsHTMLMetaElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLMetaElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/layout/html/content/src/nsHTMLModElement.cpp b/mozilla/layout/html/content/src/nsHTMLModElement.cpp index e882c10c996..aa629361dee 100644 --- a/mozilla/layout/html/content/src/nsHTMLModElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLModElement.cpp @@ -172,3 +172,13 @@ nsHTMLModElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLModElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/layout/html/content/src/nsHTMLOListElement.cpp b/mozilla/layout/html/content/src/nsHTMLOListElement.cpp index 5f4a5fdb623..57184dc7c5c 100644 --- a/mozilla/layout/html/content/src/nsHTMLOListElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLOListElement.cpp @@ -234,3 +234,13 @@ nsHTMLOListElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLOListElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/layout/html/content/src/nsHTMLObjectElement.cpp b/mozilla/layout/html/content/src/nsHTMLObjectElement.cpp index 8853255ac39..ec1816dfcc7 100644 --- a/mozilla/layout/html/content/src/nsHTMLObjectElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLObjectElement.cpp @@ -244,3 +244,13 @@ nsHTMLObjectElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLObjectElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/layout/html/content/src/nsHTMLOptGroupElement.cpp b/mozilla/layout/html/content/src/nsHTMLOptGroupElement.cpp index c52a662455e..b5761a3ee64 100644 --- a/mozilla/layout/html/content/src/nsHTMLOptGroupElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLOptGroupElement.cpp @@ -172,3 +172,13 @@ nsHTMLOptGroupElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLOptGroupElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/layout/html/content/src/nsHTMLOptionElement.cpp b/mozilla/layout/html/content/src/nsHTMLOptionElement.cpp index b3a1ed1402c..33351765258 100644 --- a/mozilla/layout/html/content/src/nsHTMLOptionElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLOptionElement.cpp @@ -265,3 +265,12 @@ nsHTMLOptionElement::GetText(nsString& aText) return result; } +NS_IMETHODIMP +nsHTMLOptionElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/layout/html/content/src/nsHTMLParagraphElement.cpp b/mozilla/layout/html/content/src/nsHTMLParagraphElement.cpp index 8d6596013a2..0a2c71fed84 100644 --- a/mozilla/layout/html/content/src/nsHTMLParagraphElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLParagraphElement.cpp @@ -195,3 +195,13 @@ nsHTMLParagraphElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLParagraphElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/layout/html/content/src/nsHTMLParamElement.cpp b/mozilla/layout/html/content/src/nsHTMLParamElement.cpp index a67815d68df..005141fffa4 100644 --- a/mozilla/layout/html/content/src/nsHTMLParamElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLParamElement.cpp @@ -178,3 +178,13 @@ nsHTMLParamElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLParamElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/layout/html/content/src/nsHTMLPreElement.cpp b/mozilla/layout/html/content/src/nsHTMLPreElement.cpp index 81d9266d910..d612ab81a50 100644 --- a/mozilla/layout/html/content/src/nsHTMLPreElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLPreElement.cpp @@ -223,3 +223,13 @@ nsHTMLPreElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLPreElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/layout/html/content/src/nsHTMLQuoteElement.cpp b/mozilla/layout/html/content/src/nsHTMLQuoteElement.cpp index aaf400796fc..4d337abdb7b 100644 --- a/mozilla/layout/html/content/src/nsHTMLQuoteElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLQuoteElement.cpp @@ -169,3 +169,13 @@ nsHTMLQuoteElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLQuoteElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/layout/html/content/src/nsHTMLScriptElement.cpp b/mozilla/layout/html/content/src/nsHTMLScriptElement.cpp index 04e0202051a..6ea4bdd85ea 100644 --- a/mozilla/layout/html/content/src/nsHTMLScriptElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLScriptElement.cpp @@ -230,3 +230,13 @@ nsHTMLScriptElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLScriptElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/layout/html/content/src/nsHTMLSelectElement.cpp b/mozilla/layout/html/content/src/nsHTMLSelectElement.cpp index b17091ab603..6f0e1a6b61b 100644 --- a/mozilla/layout/html/content/src/nsHTMLSelectElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLSelectElement.cpp @@ -644,3 +644,13 @@ nsOptionList::Clear() } mElements.Clear(); } + +NS_IMETHODIMP +nsHTMLSelectElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/layout/html/content/src/nsHTMLSpacerElement.cpp b/mozilla/layout/html/content/src/nsHTMLSpacerElement.cpp index 095eecdfcc4..28cd8d05d81 100644 --- a/mozilla/layout/html/content/src/nsHTMLSpacerElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLSpacerElement.cpp @@ -218,3 +218,13 @@ nsHTMLSpacerElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLSpacerElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/layout/html/content/src/nsHTMLSpanElement.cpp b/mozilla/layout/html/content/src/nsHTMLSpanElement.cpp index a1a62dce89e..b040cc82903 100644 --- a/mozilla/layout/html/content/src/nsHTMLSpanElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLSpanElement.cpp @@ -155,3 +155,13 @@ nsHTMLSpanElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLSpanElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/layout/html/content/src/nsHTMLStyleElement.cpp b/mozilla/layout/html/content/src/nsHTMLStyleElement.cpp index d31c7908d73..51b3679ceff 100644 --- a/mozilla/layout/html/content/src/nsHTMLStyleElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLStyleElement.cpp @@ -174,3 +174,13 @@ nsHTMLStyleElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLStyleElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/layout/html/content/src/nsHTMLTableCaptionElement.cpp b/mozilla/layout/html/content/src/nsHTMLTableCaptionElement.cpp index 3aa9720ffbe..9eabe81da2f 100644 --- a/mozilla/layout/html/content/src/nsHTMLTableCaptionElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLTableCaptionElement.cpp @@ -212,3 +212,13 @@ nsHTMLTableCaptionElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLTableCaptionElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/layout/html/content/src/nsHTMLTableCellElement.cpp b/mozilla/layout/html/content/src/nsHTMLTableCellElement.cpp index 327b2689082..62677a84b53 100644 --- a/mozilla/layout/html/content/src/nsHTMLTableCellElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLTableCellElement.cpp @@ -409,3 +409,23 @@ nsHTMLTableCellElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLTableCellElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + if (PR_TRUE == nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, + aAttribute, aHint)) { + // Do nothing + } + else if (nsHTMLAtoms::abbr != aAttribute && + nsHTMLAtoms::axis != aAttribute && + nsHTMLAtoms::headers != aAttribute && + nsHTMLAtoms::scope != aAttribute) + { + *aHint = NS_STYLE_HINT_REFLOW; + } + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/layout/html/content/src/nsHTMLTableColElement.cpp b/mozilla/layout/html/content/src/nsHTMLTableColElement.cpp index 94948fa5644..7f00ce09dbc 100644 --- a/mozilla/layout/html/content/src/nsHTMLTableColElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLTableColElement.cpp @@ -314,3 +314,19 @@ NS_METHOD nsHTMLTableColElement::GetSpanValue(PRInt32* aSpan) } return NS_OK; } + +NS_IMETHODIMP +nsHTMLTableColElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + if (PR_TRUE == nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, + aAttribute, aHint)) { + // Do nothing + } + else { + *aHint = NS_STYLE_HINT_REFLOW; + } + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/layout/html/content/src/nsHTMLTableColGroupElement.cpp b/mozilla/layout/html/content/src/nsHTMLTableColGroupElement.cpp index 4ae97c05906..10a83248059 100644 --- a/mozilla/layout/html/content/src/nsHTMLTableColGroupElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLTableColGroupElement.cpp @@ -289,3 +289,19 @@ nsHTMLTableColGroupElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLTableColGroupElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + if (PR_TRUE == nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, + aAttribute, aHint)) { + // Do nothing + } + else { + *aHint = NS_STYLE_HINT_REFLOW; + } + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/layout/html/content/src/nsHTMLTableElement.cpp b/mozilla/layout/html/content/src/nsHTMLTableElement.cpp index 81fc3931295..0664eaff7a2 100644 --- a/mozilla/layout/html/content/src/nsHTMLTableElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLTableElement.cpp @@ -1217,4 +1217,19 @@ nsHTMLTableElement::HandleDOMEvent(nsIPresContext& aPresContext, aFlags, aEventStatus); } - +NS_IMETHODIMP +nsHTMLTableElement::GetStyleHintForAttributeChange( + const nsIContent* aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + if (PR_TRUE == nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, + aAttribute, aHint)) { + // Do nothing + } + else if (nsHTMLAtoms::summary != aAttribute) + { + *aHint = NS_STYLE_HINT_REFLOW; + } + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/layout/html/content/src/nsHTMLTableRowElement.cpp b/mozilla/layout/html/content/src/nsHTMLTableRowElement.cpp index aa4c3ca0e4f..9c1e3e1e139 100644 --- a/mozilla/layout/html/content/src/nsHTMLTableRowElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLTableRowElement.cpp @@ -344,3 +344,19 @@ nsHTMLTableRowElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLTableRowElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + if (PR_TRUE == nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, + aAttribute, aHint)) { + // Do nothing + } + else { + *aHint = NS_STYLE_HINT_REFLOW; + } + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/layout/html/content/src/nsHTMLTableSectionElement.cpp b/mozilla/layout/html/content/src/nsHTMLTableSectionElement.cpp index e8ad6a53b42..d6fabecf80f 100644 --- a/mozilla/layout/html/content/src/nsHTMLTableSectionElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLTableSectionElement.cpp @@ -296,3 +296,19 @@ nsHTMLTableSectionElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLTableSectionElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + if (PR_TRUE == nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, + aAttribute, aHint)) { + // Do nothing + } + else { + *aHint = NS_STYLE_HINT_REFLOW; + } + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/layout/html/content/src/nsHTMLTextAreaElement.cpp b/mozilla/layout/html/content/src/nsHTMLTextAreaElement.cpp index 0978798a8e1..bbd4fab5770 100644 --- a/mozilla/layout/html/content/src/nsHTMLTextAreaElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLTextAreaElement.cpp @@ -445,3 +445,12 @@ nsHTMLTextAreaElement::SetForm(nsIDOMHTMLFormElement* aForm) return result; } +NS_IMETHODIMP +nsHTMLTextAreaElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/layout/html/content/src/nsHTMLTitleElement.cpp b/mozilla/layout/html/content/src/nsHTMLTitleElement.cpp index 2a80181251e..0b61c430761 100644 --- a/mozilla/layout/html/content/src/nsHTMLTitleElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLTitleElement.cpp @@ -168,3 +168,13 @@ nsHTMLTitleElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLTitleElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/layout/html/content/src/nsHTMLUListElement.cpp b/mozilla/layout/html/content/src/nsHTMLUListElement.cpp index 2508683d235..1dc43ac7af0 100644 --- a/mozilla/layout/html/content/src/nsHTMLUListElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLUListElement.cpp @@ -212,3 +212,13 @@ nsHTMLUListElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLUListElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file diff --git a/mozilla/layout/html/content/src/nsHTMLWBRElement.cpp b/mozilla/layout/html/content/src/nsHTMLWBRElement.cpp index 15cb407f6a0..e6eced971a7 100644 --- a/mozilla/layout/html/content/src/nsHTMLWBRElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLWBRElement.cpp @@ -165,3 +165,13 @@ nsHTMLWBRElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +NS_IMETHODIMP +nsHTMLWBRElement::GetStyleHintForAttributeChange( + const nsIContent * aNode, + const nsIAtom* aAttribute, + PRInt32 *aHint) const +{ + nsGenericHTMLElement::SetStyleHintForCommonAttributes(aNode, aAttribute, aHint); + return NS_OK; +} \ No newline at end of file