diff --git a/mozilla/content/html/style/src/nsCSSDeclaration.cpp b/mozilla/content/html/style/src/nsCSSDeclaration.cpp
index 6bd2bf672fe..fc7941fc3fd 100644
--- a/mozilla/content/html/style/src/nsCSSDeclaration.cpp
+++ b/mozilla/content/html/style/src/nsCSSDeclaration.cpp
@@ -597,30 +597,32 @@ public:
NS_DECL_ISUPPORTS
- nsresult GetData(const nsID& aSID, nsCSSStruct** aData);
- nsresult EnsureData(const nsID& aSID, nsCSSStruct** aData);
+ NS_IMETHOD GetData(const nsID& aSID, nsCSSStruct** aData);
+ NS_IMETHOD EnsureData(const nsID& aSID, nsCSSStruct** aData);
- nsresult AppendValue(PRInt32 aProperty, const nsCSSValue& aValue);
- nsresult SetValueImportant(PRInt32 aProperty);
- nsresult AppendComment(const nsString& aComment);
+ NS_IMETHOD AppendValue(PRInt32 aProperty, const nsCSSValue& aValue);
+ NS_IMETHOD SetValueImportant(PRInt32 aProperty);
+ NS_IMETHOD AppendComment(const nsString& aComment);
- nsresult GetValue(PRInt32 aProperty, nsCSSValue& aValue);
- nsresult GetValue(PRInt32 aProperty, nsString& aValue);
- nsresult GetValue(const nsString& aProperty, nsString& aValue);
+ NS_IMETHOD GetValue(PRInt32 aProperty, nsCSSValue& aValue);
+ NS_IMETHOD GetValue(PRInt32 aProperty, nsString& aValue);
+ NS_IMETHOD GetValue(const nsString& aProperty, nsString& aValue);
- nsresult GetImportantValues(nsICSSDeclaration*& aResult);
- nsresult GetValueIsImportant(PRInt32 aProperty, PRBool& aIsImportant);
- nsresult GetValueIsImportant(const nsString& aProperty, PRBool& aIsImportant);
+ NS_IMETHOD GetImportantValues(nsICSSDeclaration*& aResult);
+ NS_IMETHOD GetValueIsImportant(PRInt32 aProperty, PRBool& aIsImportant);
+ NS_IMETHOD GetValueIsImportant(const nsString& aProperty, PRBool& aIsImportant);
PRBool AppendValueToString(PRInt32 aProperty, nsString& aResult);
PRBool AppendValueToString(PRInt32 aProperty, const nsCSSValue& aValue, nsString& aResult);
- virtual nsresult ToString(nsString& aString);
+ NS_IMETHOD ToString(nsString& aString);
void List(FILE* out = stdout, PRInt32 aIndent = 0) const;
- nsresult Count(PRUint32* aCount);
- nsresult GetNthProperty(PRUint32 aIndex, nsString& aReturn);
+ NS_IMETHOD Count(PRUint32* aCount);
+ NS_IMETHOD GetNthProperty(PRUint32 aIndex, nsString& aReturn);
+
+ NS_IMETHOD GetStyleImpact(PRInt32* aHint) const;
private:
CSSDeclarationImpl(const CSSDeclarationImpl& aCopy);
@@ -706,7 +708,8 @@ NS_IMPL_ISUPPORTS(CSSDeclarationImpl, kICSSDeclarationIID);
#define CSS_IF_GET_ELSE(sid,ptr,result) \
if (sid.Equals(kCSS##ptr##SID)) { *result = m##ptr; } else
-nsresult CSSDeclarationImpl::GetData(const nsID& aSID, nsCSSStruct** aDataPtr)
+NS_IMETHODIMP
+CSSDeclarationImpl::GetData(const nsID& aSID, nsCSSStruct** aDataPtr)
{
if (nsnull == aDataPtr) {
return NS_ERROR_NULL_POINTER;
@@ -735,7 +738,8 @@ nsresult CSSDeclarationImpl::GetData(const nsID& aSID, nsCSSStruct** aDataPtr)
*result = m##ptr; \
} else
-nsresult CSSDeclarationImpl::EnsureData(const nsID& aSID, nsCSSStruct** aDataPtr)
+NS_IMETHODIMP
+CSSDeclarationImpl::EnsureData(const nsID& aSID, nsCSSStruct** aDataPtr)
{
if (nsnull == aDataPtr) {
return NS_ERROR_NULL_POINTER;
@@ -788,7 +792,8 @@ nsresult CSSDeclarationImpl::EnsureData(const nsID& aSID, nsCSSStruct** aDataPtr
} \
else
-nsresult CSSDeclarationImpl::AppendValue(PRInt32 aProperty, const nsCSSValue& aValue)
+NS_IMETHODIMP
+CSSDeclarationImpl::AppendValue(PRInt32 aProperty, const nsCSSValue& aValue)
{
nsresult result = NS_OK;
@@ -1270,7 +1275,8 @@ nsresult CSSDeclarationImpl::AppendValue(PRInt32 aProperty, const nsCSSValue& aV
#define CSS_CASE_IMPORTANT(prop,data) \
case prop: mImportant->data = data; data.Reset(); break
-nsresult CSSDeclarationImpl::SetValueImportant(PRInt32 aProperty)
+NS_IMETHODIMP
+CSSDeclarationImpl::SetValueImportant(PRInt32 aProperty)
{
nsresult result = NS_OK;
@@ -1901,7 +1907,8 @@ nsresult CSSDeclarationImpl::SetValueImportant(PRInt32 aProperty)
return result;
}
-nsresult CSSDeclarationImpl::AppendComment(const nsString& aComment)
+NS_IMETHODIMP
+CSSDeclarationImpl::AppendComment(const nsString& aComment)
{
nsresult result = NS_ERROR_OUT_OF_MEMORY;
@@ -1919,7 +1926,8 @@ nsresult CSSDeclarationImpl::AppendComment(const nsString& aComment)
return result;
}
-nsresult CSSDeclarationImpl::GetValue(PRInt32 aProperty, nsCSSValue& aValue)
+NS_IMETHODIMP
+CSSDeclarationImpl::GetValue(PRInt32 aProperty, nsCSSValue& aValue)
{
nsresult result = NS_OK;
@@ -2410,7 +2418,8 @@ nsresult CSSDeclarationImpl::GetValue(PRInt32 aProperty, nsCSSValue& aValue)
}
-nsresult CSSDeclarationImpl::GetValue(const nsString& aProperty, nsString& aValue)
+NS_IMETHODIMP
+CSSDeclarationImpl::GetValue(const nsString& aProperty, nsString& aValue)
{
char prop[50];
aProperty.ToCString(prop, sizeof(prop));
@@ -2573,7 +2582,8 @@ PRBool CSSDeclarationImpl::AppendValueToString(PRInt32 aProperty, const nsCSSVal
(eCSSUnit_Null != strct->rect->mBottom.GetUnit()) && \
(eCSSUnit_Null != strct->rect->mLeft.GetUnit()))
-nsresult CSSDeclarationImpl::GetValue(PRInt32 aProperty, nsString& aValue)
+NS_IMETHODIMP
+CSSDeclarationImpl::GetValue(PRInt32 aProperty, nsString& aValue)
{
PRBool isImportant = PR_FALSE;
GetValueIsImportant(aProperty, isImportant);
@@ -2837,7 +2847,8 @@ nsresult CSSDeclarationImpl::GetValue(PRInt32 aProperty, nsString& aValue)
return NS_OK;
}
-nsresult CSSDeclarationImpl::GetImportantValues(nsICSSDeclaration*& aResult)
+NS_IMETHODIMP
+CSSDeclarationImpl::GetImportantValues(nsICSSDeclaration*& aResult)
{
if (nsnull != mImportant) {
aResult = mImportant;
@@ -2849,8 +2860,9 @@ nsresult CSSDeclarationImpl::GetImportantValues(nsICSSDeclaration*& aResult)
return NS_OK;
}
-nsresult CSSDeclarationImpl::GetValueIsImportant(const nsString& aProperty,
- PRBool& aIsImportant)
+NS_IMETHODIMP
+CSSDeclarationImpl::GetValueIsImportant(const nsString& aProperty,
+ PRBool& aIsImportant)
{
char prop[50];
aProperty.ToCString(prop, sizeof(prop));
@@ -2858,8 +2870,9 @@ nsresult CSSDeclarationImpl::GetValueIsImportant(const nsString& aProperty,
return GetValueIsImportant(propID, aIsImportant);
}
-nsresult CSSDeclarationImpl::GetValueIsImportant(PRInt32 aProperty,
- PRBool& aIsImportant)
+NS_IMETHODIMP
+CSSDeclarationImpl::GetValueIsImportant(PRInt32 aProperty,
+ PRBool& aIsImportant)
{
nsCSSValue val;
@@ -2879,7 +2892,8 @@ nsresult CSSDeclarationImpl::GetValueIsImportant(PRInt32 aProperty,
return NS_OK;
}
-nsresult CSSDeclarationImpl::ToString(nsString& aString)
+NS_IMETHODIMP
+CSSDeclarationImpl::ToString(nsString& aString)
{
if (nsnull != mOrder) {
PRInt32 count = mOrder->Count();
@@ -2959,7 +2973,7 @@ void CSSDeclarationImpl::List(FILE* out, PRInt32 aIndent) const
}
}
-nsresult
+NS_IMETHODIMP
CSSDeclarationImpl::Count(PRUint32* aCount)
{
if (nsnull != mOrder) {
@@ -2972,7 +2986,7 @@ CSSDeclarationImpl::Count(PRUint32* aCount)
return NS_OK;
}
-nsresult
+NS_IMETHODIMP
CSSDeclarationImpl::GetNthProperty(PRUint32 aIndex, nsString& aReturn)
{
aReturn.SetLength(0);
@@ -2986,6 +3000,30 @@ CSSDeclarationImpl::GetNthProperty(PRUint32 aIndex, nsString& aReturn)
return NS_OK;
}
+NS_IMETHODIMP
+CSSDeclarationImpl::GetStyleImpact(PRInt32* aHint) const
+{
+ NS_ASSERTION(nsnull != aHint, "null pointer");
+ if (nsnull == aHint) {
+ return NS_ERROR_NULL_POINTER;
+ }
+ PRInt32 hint = NS_STYLE_HINT_UNKNOWN;
+ if (nsnull != mOrder) {
+ PRInt32 count = mOrder->Count();
+ PRInt32 index;
+ for (index = 0; index < count; index++) {
+ PRInt32 property = (PRInt32)mOrder->ElementAt(index);
+ if (0 <= property) {
+ if (hint < nsCSSProps::kHintTable[property]) {
+ hint = nsCSSProps::kHintTable[property];
+ }
+ }
+ }
+ }
+ *aHint = hint;
+ return NS_OK;
+}
+
NS_HTML nsresult
NS_NewCSSDeclaration(nsICSSDeclaration** aInstancePtrResult)
diff --git a/mozilla/content/html/style/src/nsCSSStruct.cpp b/mozilla/content/html/style/src/nsCSSStruct.cpp
index 6bd2bf672fe..fc7941fc3fd 100644
--- a/mozilla/content/html/style/src/nsCSSStruct.cpp
+++ b/mozilla/content/html/style/src/nsCSSStruct.cpp
@@ -597,30 +597,32 @@ public:
NS_DECL_ISUPPORTS
- nsresult GetData(const nsID& aSID, nsCSSStruct** aData);
- nsresult EnsureData(const nsID& aSID, nsCSSStruct** aData);
+ NS_IMETHOD GetData(const nsID& aSID, nsCSSStruct** aData);
+ NS_IMETHOD EnsureData(const nsID& aSID, nsCSSStruct** aData);
- nsresult AppendValue(PRInt32 aProperty, const nsCSSValue& aValue);
- nsresult SetValueImportant(PRInt32 aProperty);
- nsresult AppendComment(const nsString& aComment);
+ NS_IMETHOD AppendValue(PRInt32 aProperty, const nsCSSValue& aValue);
+ NS_IMETHOD SetValueImportant(PRInt32 aProperty);
+ NS_IMETHOD AppendComment(const nsString& aComment);
- nsresult GetValue(PRInt32 aProperty, nsCSSValue& aValue);
- nsresult GetValue(PRInt32 aProperty, nsString& aValue);
- nsresult GetValue(const nsString& aProperty, nsString& aValue);
+ NS_IMETHOD GetValue(PRInt32 aProperty, nsCSSValue& aValue);
+ NS_IMETHOD GetValue(PRInt32 aProperty, nsString& aValue);
+ NS_IMETHOD GetValue(const nsString& aProperty, nsString& aValue);
- nsresult GetImportantValues(nsICSSDeclaration*& aResult);
- nsresult GetValueIsImportant(PRInt32 aProperty, PRBool& aIsImportant);
- nsresult GetValueIsImportant(const nsString& aProperty, PRBool& aIsImportant);
+ NS_IMETHOD GetImportantValues(nsICSSDeclaration*& aResult);
+ NS_IMETHOD GetValueIsImportant(PRInt32 aProperty, PRBool& aIsImportant);
+ NS_IMETHOD GetValueIsImportant(const nsString& aProperty, PRBool& aIsImportant);
PRBool AppendValueToString(PRInt32 aProperty, nsString& aResult);
PRBool AppendValueToString(PRInt32 aProperty, const nsCSSValue& aValue, nsString& aResult);
- virtual nsresult ToString(nsString& aString);
+ NS_IMETHOD ToString(nsString& aString);
void List(FILE* out = stdout, PRInt32 aIndent = 0) const;
- nsresult Count(PRUint32* aCount);
- nsresult GetNthProperty(PRUint32 aIndex, nsString& aReturn);
+ NS_IMETHOD Count(PRUint32* aCount);
+ NS_IMETHOD GetNthProperty(PRUint32 aIndex, nsString& aReturn);
+
+ NS_IMETHOD GetStyleImpact(PRInt32* aHint) const;
private:
CSSDeclarationImpl(const CSSDeclarationImpl& aCopy);
@@ -706,7 +708,8 @@ NS_IMPL_ISUPPORTS(CSSDeclarationImpl, kICSSDeclarationIID);
#define CSS_IF_GET_ELSE(sid,ptr,result) \
if (sid.Equals(kCSS##ptr##SID)) { *result = m##ptr; } else
-nsresult CSSDeclarationImpl::GetData(const nsID& aSID, nsCSSStruct** aDataPtr)
+NS_IMETHODIMP
+CSSDeclarationImpl::GetData(const nsID& aSID, nsCSSStruct** aDataPtr)
{
if (nsnull == aDataPtr) {
return NS_ERROR_NULL_POINTER;
@@ -735,7 +738,8 @@ nsresult CSSDeclarationImpl::GetData(const nsID& aSID, nsCSSStruct** aDataPtr)
*result = m##ptr; \
} else
-nsresult CSSDeclarationImpl::EnsureData(const nsID& aSID, nsCSSStruct** aDataPtr)
+NS_IMETHODIMP
+CSSDeclarationImpl::EnsureData(const nsID& aSID, nsCSSStruct** aDataPtr)
{
if (nsnull == aDataPtr) {
return NS_ERROR_NULL_POINTER;
@@ -788,7 +792,8 @@ nsresult CSSDeclarationImpl::EnsureData(const nsID& aSID, nsCSSStruct** aDataPtr
} \
else
-nsresult CSSDeclarationImpl::AppendValue(PRInt32 aProperty, const nsCSSValue& aValue)
+NS_IMETHODIMP
+CSSDeclarationImpl::AppendValue(PRInt32 aProperty, const nsCSSValue& aValue)
{
nsresult result = NS_OK;
@@ -1270,7 +1275,8 @@ nsresult CSSDeclarationImpl::AppendValue(PRInt32 aProperty, const nsCSSValue& aV
#define CSS_CASE_IMPORTANT(prop,data) \
case prop: mImportant->data = data; data.Reset(); break
-nsresult CSSDeclarationImpl::SetValueImportant(PRInt32 aProperty)
+NS_IMETHODIMP
+CSSDeclarationImpl::SetValueImportant(PRInt32 aProperty)
{
nsresult result = NS_OK;
@@ -1901,7 +1907,8 @@ nsresult CSSDeclarationImpl::SetValueImportant(PRInt32 aProperty)
return result;
}
-nsresult CSSDeclarationImpl::AppendComment(const nsString& aComment)
+NS_IMETHODIMP
+CSSDeclarationImpl::AppendComment(const nsString& aComment)
{
nsresult result = NS_ERROR_OUT_OF_MEMORY;
@@ -1919,7 +1926,8 @@ nsresult CSSDeclarationImpl::AppendComment(const nsString& aComment)
return result;
}
-nsresult CSSDeclarationImpl::GetValue(PRInt32 aProperty, nsCSSValue& aValue)
+NS_IMETHODIMP
+CSSDeclarationImpl::GetValue(PRInt32 aProperty, nsCSSValue& aValue)
{
nsresult result = NS_OK;
@@ -2410,7 +2418,8 @@ nsresult CSSDeclarationImpl::GetValue(PRInt32 aProperty, nsCSSValue& aValue)
}
-nsresult CSSDeclarationImpl::GetValue(const nsString& aProperty, nsString& aValue)
+NS_IMETHODIMP
+CSSDeclarationImpl::GetValue(const nsString& aProperty, nsString& aValue)
{
char prop[50];
aProperty.ToCString(prop, sizeof(prop));
@@ -2573,7 +2582,8 @@ PRBool CSSDeclarationImpl::AppendValueToString(PRInt32 aProperty, const nsCSSVal
(eCSSUnit_Null != strct->rect->mBottom.GetUnit()) && \
(eCSSUnit_Null != strct->rect->mLeft.GetUnit()))
-nsresult CSSDeclarationImpl::GetValue(PRInt32 aProperty, nsString& aValue)
+NS_IMETHODIMP
+CSSDeclarationImpl::GetValue(PRInt32 aProperty, nsString& aValue)
{
PRBool isImportant = PR_FALSE;
GetValueIsImportant(aProperty, isImportant);
@@ -2837,7 +2847,8 @@ nsresult CSSDeclarationImpl::GetValue(PRInt32 aProperty, nsString& aValue)
return NS_OK;
}
-nsresult CSSDeclarationImpl::GetImportantValues(nsICSSDeclaration*& aResult)
+NS_IMETHODIMP
+CSSDeclarationImpl::GetImportantValues(nsICSSDeclaration*& aResult)
{
if (nsnull != mImportant) {
aResult = mImportant;
@@ -2849,8 +2860,9 @@ nsresult CSSDeclarationImpl::GetImportantValues(nsICSSDeclaration*& aResult)
return NS_OK;
}
-nsresult CSSDeclarationImpl::GetValueIsImportant(const nsString& aProperty,
- PRBool& aIsImportant)
+NS_IMETHODIMP
+CSSDeclarationImpl::GetValueIsImportant(const nsString& aProperty,
+ PRBool& aIsImportant)
{
char prop[50];
aProperty.ToCString(prop, sizeof(prop));
@@ -2858,8 +2870,9 @@ nsresult CSSDeclarationImpl::GetValueIsImportant(const nsString& aProperty,
return GetValueIsImportant(propID, aIsImportant);
}
-nsresult CSSDeclarationImpl::GetValueIsImportant(PRInt32 aProperty,
- PRBool& aIsImportant)
+NS_IMETHODIMP
+CSSDeclarationImpl::GetValueIsImportant(PRInt32 aProperty,
+ PRBool& aIsImportant)
{
nsCSSValue val;
@@ -2879,7 +2892,8 @@ nsresult CSSDeclarationImpl::GetValueIsImportant(PRInt32 aProperty,
return NS_OK;
}
-nsresult CSSDeclarationImpl::ToString(nsString& aString)
+NS_IMETHODIMP
+CSSDeclarationImpl::ToString(nsString& aString)
{
if (nsnull != mOrder) {
PRInt32 count = mOrder->Count();
@@ -2959,7 +2973,7 @@ void CSSDeclarationImpl::List(FILE* out, PRInt32 aIndent) const
}
}
-nsresult
+NS_IMETHODIMP
CSSDeclarationImpl::Count(PRUint32* aCount)
{
if (nsnull != mOrder) {
@@ -2972,7 +2986,7 @@ CSSDeclarationImpl::Count(PRUint32* aCount)
return NS_OK;
}
-nsresult
+NS_IMETHODIMP
CSSDeclarationImpl::GetNthProperty(PRUint32 aIndex, nsString& aReturn)
{
aReturn.SetLength(0);
@@ -2986,6 +3000,30 @@ CSSDeclarationImpl::GetNthProperty(PRUint32 aIndex, nsString& aReturn)
return NS_OK;
}
+NS_IMETHODIMP
+CSSDeclarationImpl::GetStyleImpact(PRInt32* aHint) const
+{
+ NS_ASSERTION(nsnull != aHint, "null pointer");
+ if (nsnull == aHint) {
+ return NS_ERROR_NULL_POINTER;
+ }
+ PRInt32 hint = NS_STYLE_HINT_UNKNOWN;
+ if (nsnull != mOrder) {
+ PRInt32 count = mOrder->Count();
+ PRInt32 index;
+ for (index = 0; index < count; index++) {
+ PRInt32 property = (PRInt32)mOrder->ElementAt(index);
+ if (0 <= property) {
+ if (hint < nsCSSProps::kHintTable[property]) {
+ hint = nsCSSProps::kHintTable[property];
+ }
+ }
+ }
+ }
+ *aHint = hint;
+ return NS_OK;
+}
+
NS_HTML nsresult
NS_NewCSSDeclaration(nsICSSDeclaration** aInstancePtrResult)
diff --git a/mozilla/content/html/style/src/nsICSSDeclaration.h b/mozilla/content/html/style/src/nsICSSDeclaration.h
index 19cb1b6a387..0390575a476 100644
--- a/mozilla/content/html/style/src/nsICSSDeclaration.h
+++ b/mozilla/content/html/style/src/nsICSSDeclaration.h
@@ -315,27 +315,29 @@ struct nsCSSAural : public nsCSSStruct { // NEW
class nsICSSDeclaration : public nsISupports {
public:
- virtual nsresult GetData(const nsID& aIID, nsCSSStruct** aData) = 0;
- virtual nsresult EnsureData(const nsID& aSID, nsCSSStruct** aData) = 0;
+ NS_IMETHOD GetData(const nsID& aIID, nsCSSStruct** aData) = 0;
+ NS_IMETHOD EnsureData(const nsID& aSID, nsCSSStruct** aData) = 0;
- virtual nsresult AppendValue(PRInt32 aProperty, const nsCSSValue& aValue) = 0;
- virtual nsresult SetValueImportant(PRInt32 aProperty) = 0;
- virtual nsresult AppendComment(const nsString& aComment) = 0;
+ NS_IMETHOD AppendValue(PRInt32 aProperty, const nsCSSValue& aValue) = 0;
+ NS_IMETHOD SetValueImportant(PRInt32 aProperty) = 0;
+ NS_IMETHOD AppendComment(const nsString& aComment) = 0;
// XXX make nscolor a struct to avoid type conflicts
- virtual nsresult GetValue(PRInt32 aProperty, nsCSSValue& aValue) = 0;
+ NS_IMETHOD GetValue(PRInt32 aProperty, nsCSSValue& aValue) = 0;
- virtual nsresult GetValue(PRInt32 aProperty, nsString& aValue) = 0;
- virtual nsresult GetValue(const nsString& aProperty, nsString& aValue) = 0;
+ NS_IMETHOD GetValue(PRInt32 aProperty, nsString& aValue) = 0;
+ NS_IMETHOD GetValue(const nsString& aProperty, nsString& aValue) = 0;
- virtual nsresult GetImportantValues(nsICSSDeclaration*& aResult) = 0;
- virtual nsresult GetValueIsImportant(PRInt32 aProperty, PRBool& aIsImportant) = 0;
- virtual nsresult GetValueIsImportant(const nsString& aProperty, PRBool& aIsImportant) = 0;
+ NS_IMETHOD GetImportantValues(nsICSSDeclaration*& aResult) = 0;
+ NS_IMETHOD GetValueIsImportant(PRInt32 aProperty, PRBool& aIsImportant) = 0;
+ NS_IMETHOD GetValueIsImportant(const nsString& aProperty, PRBool& aIsImportant) = 0;
- virtual nsresult Count(PRUint32* aCount) = 0;
- virtual nsresult GetNthProperty(PRUint32 aIndex, nsString& aReturn) = 0;
+ NS_IMETHOD Count(PRUint32* aCount) = 0;
+ NS_IMETHOD GetNthProperty(PRUint32 aIndex, nsString& aReturn) = 0;
- virtual nsresult ToString(nsString& aString) = 0;
+ NS_IMETHOD GetStyleImpact(PRInt32* aHint) const = 0;
+
+ NS_IMETHOD ToString(nsString& aString) = 0;
virtual void List(FILE* out = stdout, PRInt32 aIndent = 0) const = 0;
};
diff --git a/mozilla/layout/html/style/src/nsCSSDeclaration.cpp b/mozilla/layout/html/style/src/nsCSSDeclaration.cpp
index 6bd2bf672fe..fc7941fc3fd 100644
--- a/mozilla/layout/html/style/src/nsCSSDeclaration.cpp
+++ b/mozilla/layout/html/style/src/nsCSSDeclaration.cpp
@@ -597,30 +597,32 @@ public:
NS_DECL_ISUPPORTS
- nsresult GetData(const nsID& aSID, nsCSSStruct** aData);
- nsresult EnsureData(const nsID& aSID, nsCSSStruct** aData);
+ NS_IMETHOD GetData(const nsID& aSID, nsCSSStruct** aData);
+ NS_IMETHOD EnsureData(const nsID& aSID, nsCSSStruct** aData);
- nsresult AppendValue(PRInt32 aProperty, const nsCSSValue& aValue);
- nsresult SetValueImportant(PRInt32 aProperty);
- nsresult AppendComment(const nsString& aComment);
+ NS_IMETHOD AppendValue(PRInt32 aProperty, const nsCSSValue& aValue);
+ NS_IMETHOD SetValueImportant(PRInt32 aProperty);
+ NS_IMETHOD AppendComment(const nsString& aComment);
- nsresult GetValue(PRInt32 aProperty, nsCSSValue& aValue);
- nsresult GetValue(PRInt32 aProperty, nsString& aValue);
- nsresult GetValue(const nsString& aProperty, nsString& aValue);
+ NS_IMETHOD GetValue(PRInt32 aProperty, nsCSSValue& aValue);
+ NS_IMETHOD GetValue(PRInt32 aProperty, nsString& aValue);
+ NS_IMETHOD GetValue(const nsString& aProperty, nsString& aValue);
- nsresult GetImportantValues(nsICSSDeclaration*& aResult);
- nsresult GetValueIsImportant(PRInt32 aProperty, PRBool& aIsImportant);
- nsresult GetValueIsImportant(const nsString& aProperty, PRBool& aIsImportant);
+ NS_IMETHOD GetImportantValues(nsICSSDeclaration*& aResult);
+ NS_IMETHOD GetValueIsImportant(PRInt32 aProperty, PRBool& aIsImportant);
+ NS_IMETHOD GetValueIsImportant(const nsString& aProperty, PRBool& aIsImportant);
PRBool AppendValueToString(PRInt32 aProperty, nsString& aResult);
PRBool AppendValueToString(PRInt32 aProperty, const nsCSSValue& aValue, nsString& aResult);
- virtual nsresult ToString(nsString& aString);
+ NS_IMETHOD ToString(nsString& aString);
void List(FILE* out = stdout, PRInt32 aIndent = 0) const;
- nsresult Count(PRUint32* aCount);
- nsresult GetNthProperty(PRUint32 aIndex, nsString& aReturn);
+ NS_IMETHOD Count(PRUint32* aCount);
+ NS_IMETHOD GetNthProperty(PRUint32 aIndex, nsString& aReturn);
+
+ NS_IMETHOD GetStyleImpact(PRInt32* aHint) const;
private:
CSSDeclarationImpl(const CSSDeclarationImpl& aCopy);
@@ -706,7 +708,8 @@ NS_IMPL_ISUPPORTS(CSSDeclarationImpl, kICSSDeclarationIID);
#define CSS_IF_GET_ELSE(sid,ptr,result) \
if (sid.Equals(kCSS##ptr##SID)) { *result = m##ptr; } else
-nsresult CSSDeclarationImpl::GetData(const nsID& aSID, nsCSSStruct** aDataPtr)
+NS_IMETHODIMP
+CSSDeclarationImpl::GetData(const nsID& aSID, nsCSSStruct** aDataPtr)
{
if (nsnull == aDataPtr) {
return NS_ERROR_NULL_POINTER;
@@ -735,7 +738,8 @@ nsresult CSSDeclarationImpl::GetData(const nsID& aSID, nsCSSStruct** aDataPtr)
*result = m##ptr; \
} else
-nsresult CSSDeclarationImpl::EnsureData(const nsID& aSID, nsCSSStruct** aDataPtr)
+NS_IMETHODIMP
+CSSDeclarationImpl::EnsureData(const nsID& aSID, nsCSSStruct** aDataPtr)
{
if (nsnull == aDataPtr) {
return NS_ERROR_NULL_POINTER;
@@ -788,7 +792,8 @@ nsresult CSSDeclarationImpl::EnsureData(const nsID& aSID, nsCSSStruct** aDataPtr
} \
else
-nsresult CSSDeclarationImpl::AppendValue(PRInt32 aProperty, const nsCSSValue& aValue)
+NS_IMETHODIMP
+CSSDeclarationImpl::AppendValue(PRInt32 aProperty, const nsCSSValue& aValue)
{
nsresult result = NS_OK;
@@ -1270,7 +1275,8 @@ nsresult CSSDeclarationImpl::AppendValue(PRInt32 aProperty, const nsCSSValue& aV
#define CSS_CASE_IMPORTANT(prop,data) \
case prop: mImportant->data = data; data.Reset(); break
-nsresult CSSDeclarationImpl::SetValueImportant(PRInt32 aProperty)
+NS_IMETHODIMP
+CSSDeclarationImpl::SetValueImportant(PRInt32 aProperty)
{
nsresult result = NS_OK;
@@ -1901,7 +1907,8 @@ nsresult CSSDeclarationImpl::SetValueImportant(PRInt32 aProperty)
return result;
}
-nsresult CSSDeclarationImpl::AppendComment(const nsString& aComment)
+NS_IMETHODIMP
+CSSDeclarationImpl::AppendComment(const nsString& aComment)
{
nsresult result = NS_ERROR_OUT_OF_MEMORY;
@@ -1919,7 +1926,8 @@ nsresult CSSDeclarationImpl::AppendComment(const nsString& aComment)
return result;
}
-nsresult CSSDeclarationImpl::GetValue(PRInt32 aProperty, nsCSSValue& aValue)
+NS_IMETHODIMP
+CSSDeclarationImpl::GetValue(PRInt32 aProperty, nsCSSValue& aValue)
{
nsresult result = NS_OK;
@@ -2410,7 +2418,8 @@ nsresult CSSDeclarationImpl::GetValue(PRInt32 aProperty, nsCSSValue& aValue)
}
-nsresult CSSDeclarationImpl::GetValue(const nsString& aProperty, nsString& aValue)
+NS_IMETHODIMP
+CSSDeclarationImpl::GetValue(const nsString& aProperty, nsString& aValue)
{
char prop[50];
aProperty.ToCString(prop, sizeof(prop));
@@ -2573,7 +2582,8 @@ PRBool CSSDeclarationImpl::AppendValueToString(PRInt32 aProperty, const nsCSSVal
(eCSSUnit_Null != strct->rect->mBottom.GetUnit()) && \
(eCSSUnit_Null != strct->rect->mLeft.GetUnit()))
-nsresult CSSDeclarationImpl::GetValue(PRInt32 aProperty, nsString& aValue)
+NS_IMETHODIMP
+CSSDeclarationImpl::GetValue(PRInt32 aProperty, nsString& aValue)
{
PRBool isImportant = PR_FALSE;
GetValueIsImportant(aProperty, isImportant);
@@ -2837,7 +2847,8 @@ nsresult CSSDeclarationImpl::GetValue(PRInt32 aProperty, nsString& aValue)
return NS_OK;
}
-nsresult CSSDeclarationImpl::GetImportantValues(nsICSSDeclaration*& aResult)
+NS_IMETHODIMP
+CSSDeclarationImpl::GetImportantValues(nsICSSDeclaration*& aResult)
{
if (nsnull != mImportant) {
aResult = mImportant;
@@ -2849,8 +2860,9 @@ nsresult CSSDeclarationImpl::GetImportantValues(nsICSSDeclaration*& aResult)
return NS_OK;
}
-nsresult CSSDeclarationImpl::GetValueIsImportant(const nsString& aProperty,
- PRBool& aIsImportant)
+NS_IMETHODIMP
+CSSDeclarationImpl::GetValueIsImportant(const nsString& aProperty,
+ PRBool& aIsImportant)
{
char prop[50];
aProperty.ToCString(prop, sizeof(prop));
@@ -2858,8 +2870,9 @@ nsresult CSSDeclarationImpl::GetValueIsImportant(const nsString& aProperty,
return GetValueIsImportant(propID, aIsImportant);
}
-nsresult CSSDeclarationImpl::GetValueIsImportant(PRInt32 aProperty,
- PRBool& aIsImportant)
+NS_IMETHODIMP
+CSSDeclarationImpl::GetValueIsImportant(PRInt32 aProperty,
+ PRBool& aIsImportant)
{
nsCSSValue val;
@@ -2879,7 +2892,8 @@ nsresult CSSDeclarationImpl::GetValueIsImportant(PRInt32 aProperty,
return NS_OK;
}
-nsresult CSSDeclarationImpl::ToString(nsString& aString)
+NS_IMETHODIMP
+CSSDeclarationImpl::ToString(nsString& aString)
{
if (nsnull != mOrder) {
PRInt32 count = mOrder->Count();
@@ -2959,7 +2973,7 @@ void CSSDeclarationImpl::List(FILE* out, PRInt32 aIndent) const
}
}
-nsresult
+NS_IMETHODIMP
CSSDeclarationImpl::Count(PRUint32* aCount)
{
if (nsnull != mOrder) {
@@ -2972,7 +2986,7 @@ CSSDeclarationImpl::Count(PRUint32* aCount)
return NS_OK;
}
-nsresult
+NS_IMETHODIMP
CSSDeclarationImpl::GetNthProperty(PRUint32 aIndex, nsString& aReturn)
{
aReturn.SetLength(0);
@@ -2986,6 +3000,30 @@ CSSDeclarationImpl::GetNthProperty(PRUint32 aIndex, nsString& aReturn)
return NS_OK;
}
+NS_IMETHODIMP
+CSSDeclarationImpl::GetStyleImpact(PRInt32* aHint) const
+{
+ NS_ASSERTION(nsnull != aHint, "null pointer");
+ if (nsnull == aHint) {
+ return NS_ERROR_NULL_POINTER;
+ }
+ PRInt32 hint = NS_STYLE_HINT_UNKNOWN;
+ if (nsnull != mOrder) {
+ PRInt32 count = mOrder->Count();
+ PRInt32 index;
+ for (index = 0; index < count; index++) {
+ PRInt32 property = (PRInt32)mOrder->ElementAt(index);
+ if (0 <= property) {
+ if (hint < nsCSSProps::kHintTable[property]) {
+ hint = nsCSSProps::kHintTable[property];
+ }
+ }
+ }
+ }
+ *aHint = hint;
+ return NS_OK;
+}
+
NS_HTML nsresult
NS_NewCSSDeclaration(nsICSSDeclaration** aInstancePtrResult)
diff --git a/mozilla/layout/html/style/src/nsICSSDeclaration.h b/mozilla/layout/html/style/src/nsICSSDeclaration.h
index 19cb1b6a387..0390575a476 100644
--- a/mozilla/layout/html/style/src/nsICSSDeclaration.h
+++ b/mozilla/layout/html/style/src/nsICSSDeclaration.h
@@ -315,27 +315,29 @@ struct nsCSSAural : public nsCSSStruct { // NEW
class nsICSSDeclaration : public nsISupports {
public:
- virtual nsresult GetData(const nsID& aIID, nsCSSStruct** aData) = 0;
- virtual nsresult EnsureData(const nsID& aSID, nsCSSStruct** aData) = 0;
+ NS_IMETHOD GetData(const nsID& aIID, nsCSSStruct** aData) = 0;
+ NS_IMETHOD EnsureData(const nsID& aSID, nsCSSStruct** aData) = 0;
- virtual nsresult AppendValue(PRInt32 aProperty, const nsCSSValue& aValue) = 0;
- virtual nsresult SetValueImportant(PRInt32 aProperty) = 0;
- virtual nsresult AppendComment(const nsString& aComment) = 0;
+ NS_IMETHOD AppendValue(PRInt32 aProperty, const nsCSSValue& aValue) = 0;
+ NS_IMETHOD SetValueImportant(PRInt32 aProperty) = 0;
+ NS_IMETHOD AppendComment(const nsString& aComment) = 0;
// XXX make nscolor a struct to avoid type conflicts
- virtual nsresult GetValue(PRInt32 aProperty, nsCSSValue& aValue) = 0;
+ NS_IMETHOD GetValue(PRInt32 aProperty, nsCSSValue& aValue) = 0;
- virtual nsresult GetValue(PRInt32 aProperty, nsString& aValue) = 0;
- virtual nsresult GetValue(const nsString& aProperty, nsString& aValue) = 0;
+ NS_IMETHOD GetValue(PRInt32 aProperty, nsString& aValue) = 0;
+ NS_IMETHOD GetValue(const nsString& aProperty, nsString& aValue) = 0;
- virtual nsresult GetImportantValues(nsICSSDeclaration*& aResult) = 0;
- virtual nsresult GetValueIsImportant(PRInt32 aProperty, PRBool& aIsImportant) = 0;
- virtual nsresult GetValueIsImportant(const nsString& aProperty, PRBool& aIsImportant) = 0;
+ NS_IMETHOD GetImportantValues(nsICSSDeclaration*& aResult) = 0;
+ NS_IMETHOD GetValueIsImportant(PRInt32 aProperty, PRBool& aIsImportant) = 0;
+ NS_IMETHOD GetValueIsImportant(const nsString& aProperty, PRBool& aIsImportant) = 0;
- virtual nsresult Count(PRUint32* aCount) = 0;
- virtual nsresult GetNthProperty(PRUint32 aIndex, nsString& aReturn) = 0;
+ NS_IMETHOD Count(PRUint32* aCount) = 0;
+ NS_IMETHOD GetNthProperty(PRUint32 aIndex, nsString& aReturn) = 0;
- virtual nsresult ToString(nsString& aString) = 0;
+ NS_IMETHOD GetStyleImpact(PRInt32* aHint) const = 0;
+
+ NS_IMETHOD ToString(nsString& aString) = 0;
virtual void List(FILE* out = stdout, PRInt32 aIndent = 0) const = 0;
};
diff --git a/mozilla/layout/style/nsCSSDeclaration.cpp b/mozilla/layout/style/nsCSSDeclaration.cpp
index 6bd2bf672fe..fc7941fc3fd 100644
--- a/mozilla/layout/style/nsCSSDeclaration.cpp
+++ b/mozilla/layout/style/nsCSSDeclaration.cpp
@@ -597,30 +597,32 @@ public:
NS_DECL_ISUPPORTS
- nsresult GetData(const nsID& aSID, nsCSSStruct** aData);
- nsresult EnsureData(const nsID& aSID, nsCSSStruct** aData);
+ NS_IMETHOD GetData(const nsID& aSID, nsCSSStruct** aData);
+ NS_IMETHOD EnsureData(const nsID& aSID, nsCSSStruct** aData);
- nsresult AppendValue(PRInt32 aProperty, const nsCSSValue& aValue);
- nsresult SetValueImportant(PRInt32 aProperty);
- nsresult AppendComment(const nsString& aComment);
+ NS_IMETHOD AppendValue(PRInt32 aProperty, const nsCSSValue& aValue);
+ NS_IMETHOD SetValueImportant(PRInt32 aProperty);
+ NS_IMETHOD AppendComment(const nsString& aComment);
- nsresult GetValue(PRInt32 aProperty, nsCSSValue& aValue);
- nsresult GetValue(PRInt32 aProperty, nsString& aValue);
- nsresult GetValue(const nsString& aProperty, nsString& aValue);
+ NS_IMETHOD GetValue(PRInt32 aProperty, nsCSSValue& aValue);
+ NS_IMETHOD GetValue(PRInt32 aProperty, nsString& aValue);
+ NS_IMETHOD GetValue(const nsString& aProperty, nsString& aValue);
- nsresult GetImportantValues(nsICSSDeclaration*& aResult);
- nsresult GetValueIsImportant(PRInt32 aProperty, PRBool& aIsImportant);
- nsresult GetValueIsImportant(const nsString& aProperty, PRBool& aIsImportant);
+ NS_IMETHOD GetImportantValues(nsICSSDeclaration*& aResult);
+ NS_IMETHOD GetValueIsImportant(PRInt32 aProperty, PRBool& aIsImportant);
+ NS_IMETHOD GetValueIsImportant(const nsString& aProperty, PRBool& aIsImportant);
PRBool AppendValueToString(PRInt32 aProperty, nsString& aResult);
PRBool AppendValueToString(PRInt32 aProperty, const nsCSSValue& aValue, nsString& aResult);
- virtual nsresult ToString(nsString& aString);
+ NS_IMETHOD ToString(nsString& aString);
void List(FILE* out = stdout, PRInt32 aIndent = 0) const;
- nsresult Count(PRUint32* aCount);
- nsresult GetNthProperty(PRUint32 aIndex, nsString& aReturn);
+ NS_IMETHOD Count(PRUint32* aCount);
+ NS_IMETHOD GetNthProperty(PRUint32 aIndex, nsString& aReturn);
+
+ NS_IMETHOD GetStyleImpact(PRInt32* aHint) const;
private:
CSSDeclarationImpl(const CSSDeclarationImpl& aCopy);
@@ -706,7 +708,8 @@ NS_IMPL_ISUPPORTS(CSSDeclarationImpl, kICSSDeclarationIID);
#define CSS_IF_GET_ELSE(sid,ptr,result) \
if (sid.Equals(kCSS##ptr##SID)) { *result = m##ptr; } else
-nsresult CSSDeclarationImpl::GetData(const nsID& aSID, nsCSSStruct** aDataPtr)
+NS_IMETHODIMP
+CSSDeclarationImpl::GetData(const nsID& aSID, nsCSSStruct** aDataPtr)
{
if (nsnull == aDataPtr) {
return NS_ERROR_NULL_POINTER;
@@ -735,7 +738,8 @@ nsresult CSSDeclarationImpl::GetData(const nsID& aSID, nsCSSStruct** aDataPtr)
*result = m##ptr; \
} else
-nsresult CSSDeclarationImpl::EnsureData(const nsID& aSID, nsCSSStruct** aDataPtr)
+NS_IMETHODIMP
+CSSDeclarationImpl::EnsureData(const nsID& aSID, nsCSSStruct** aDataPtr)
{
if (nsnull == aDataPtr) {
return NS_ERROR_NULL_POINTER;
@@ -788,7 +792,8 @@ nsresult CSSDeclarationImpl::EnsureData(const nsID& aSID, nsCSSStruct** aDataPtr
} \
else
-nsresult CSSDeclarationImpl::AppendValue(PRInt32 aProperty, const nsCSSValue& aValue)
+NS_IMETHODIMP
+CSSDeclarationImpl::AppendValue(PRInt32 aProperty, const nsCSSValue& aValue)
{
nsresult result = NS_OK;
@@ -1270,7 +1275,8 @@ nsresult CSSDeclarationImpl::AppendValue(PRInt32 aProperty, const nsCSSValue& aV
#define CSS_CASE_IMPORTANT(prop,data) \
case prop: mImportant->data = data; data.Reset(); break
-nsresult CSSDeclarationImpl::SetValueImportant(PRInt32 aProperty)
+NS_IMETHODIMP
+CSSDeclarationImpl::SetValueImportant(PRInt32 aProperty)
{
nsresult result = NS_OK;
@@ -1901,7 +1907,8 @@ nsresult CSSDeclarationImpl::SetValueImportant(PRInt32 aProperty)
return result;
}
-nsresult CSSDeclarationImpl::AppendComment(const nsString& aComment)
+NS_IMETHODIMP
+CSSDeclarationImpl::AppendComment(const nsString& aComment)
{
nsresult result = NS_ERROR_OUT_OF_MEMORY;
@@ -1919,7 +1926,8 @@ nsresult CSSDeclarationImpl::AppendComment(const nsString& aComment)
return result;
}
-nsresult CSSDeclarationImpl::GetValue(PRInt32 aProperty, nsCSSValue& aValue)
+NS_IMETHODIMP
+CSSDeclarationImpl::GetValue(PRInt32 aProperty, nsCSSValue& aValue)
{
nsresult result = NS_OK;
@@ -2410,7 +2418,8 @@ nsresult CSSDeclarationImpl::GetValue(PRInt32 aProperty, nsCSSValue& aValue)
}
-nsresult CSSDeclarationImpl::GetValue(const nsString& aProperty, nsString& aValue)
+NS_IMETHODIMP
+CSSDeclarationImpl::GetValue(const nsString& aProperty, nsString& aValue)
{
char prop[50];
aProperty.ToCString(prop, sizeof(prop));
@@ -2573,7 +2582,8 @@ PRBool CSSDeclarationImpl::AppendValueToString(PRInt32 aProperty, const nsCSSVal
(eCSSUnit_Null != strct->rect->mBottom.GetUnit()) && \
(eCSSUnit_Null != strct->rect->mLeft.GetUnit()))
-nsresult CSSDeclarationImpl::GetValue(PRInt32 aProperty, nsString& aValue)
+NS_IMETHODIMP
+CSSDeclarationImpl::GetValue(PRInt32 aProperty, nsString& aValue)
{
PRBool isImportant = PR_FALSE;
GetValueIsImportant(aProperty, isImportant);
@@ -2837,7 +2847,8 @@ nsresult CSSDeclarationImpl::GetValue(PRInt32 aProperty, nsString& aValue)
return NS_OK;
}
-nsresult CSSDeclarationImpl::GetImportantValues(nsICSSDeclaration*& aResult)
+NS_IMETHODIMP
+CSSDeclarationImpl::GetImportantValues(nsICSSDeclaration*& aResult)
{
if (nsnull != mImportant) {
aResult = mImportant;
@@ -2849,8 +2860,9 @@ nsresult CSSDeclarationImpl::GetImportantValues(nsICSSDeclaration*& aResult)
return NS_OK;
}
-nsresult CSSDeclarationImpl::GetValueIsImportant(const nsString& aProperty,
- PRBool& aIsImportant)
+NS_IMETHODIMP
+CSSDeclarationImpl::GetValueIsImportant(const nsString& aProperty,
+ PRBool& aIsImportant)
{
char prop[50];
aProperty.ToCString(prop, sizeof(prop));
@@ -2858,8 +2870,9 @@ nsresult CSSDeclarationImpl::GetValueIsImportant(const nsString& aProperty,
return GetValueIsImportant(propID, aIsImportant);
}
-nsresult CSSDeclarationImpl::GetValueIsImportant(PRInt32 aProperty,
- PRBool& aIsImportant)
+NS_IMETHODIMP
+CSSDeclarationImpl::GetValueIsImportant(PRInt32 aProperty,
+ PRBool& aIsImportant)
{
nsCSSValue val;
@@ -2879,7 +2892,8 @@ nsresult CSSDeclarationImpl::GetValueIsImportant(PRInt32 aProperty,
return NS_OK;
}
-nsresult CSSDeclarationImpl::ToString(nsString& aString)
+NS_IMETHODIMP
+CSSDeclarationImpl::ToString(nsString& aString)
{
if (nsnull != mOrder) {
PRInt32 count = mOrder->Count();
@@ -2959,7 +2973,7 @@ void CSSDeclarationImpl::List(FILE* out, PRInt32 aIndent) const
}
}
-nsresult
+NS_IMETHODIMP
CSSDeclarationImpl::Count(PRUint32* aCount)
{
if (nsnull != mOrder) {
@@ -2972,7 +2986,7 @@ CSSDeclarationImpl::Count(PRUint32* aCount)
return NS_OK;
}
-nsresult
+NS_IMETHODIMP
CSSDeclarationImpl::GetNthProperty(PRUint32 aIndex, nsString& aReturn)
{
aReturn.SetLength(0);
@@ -2986,6 +3000,30 @@ CSSDeclarationImpl::GetNthProperty(PRUint32 aIndex, nsString& aReturn)
return NS_OK;
}
+NS_IMETHODIMP
+CSSDeclarationImpl::GetStyleImpact(PRInt32* aHint) const
+{
+ NS_ASSERTION(nsnull != aHint, "null pointer");
+ if (nsnull == aHint) {
+ return NS_ERROR_NULL_POINTER;
+ }
+ PRInt32 hint = NS_STYLE_HINT_UNKNOWN;
+ if (nsnull != mOrder) {
+ PRInt32 count = mOrder->Count();
+ PRInt32 index;
+ for (index = 0; index < count; index++) {
+ PRInt32 property = (PRInt32)mOrder->ElementAt(index);
+ if (0 <= property) {
+ if (hint < nsCSSProps::kHintTable[property]) {
+ hint = nsCSSProps::kHintTable[property];
+ }
+ }
+ }
+ }
+ *aHint = hint;
+ return NS_OK;
+}
+
NS_HTML nsresult
NS_NewCSSDeclaration(nsICSSDeclaration** aInstancePtrResult)
diff --git a/mozilla/layout/style/nsCSSStruct.cpp b/mozilla/layout/style/nsCSSStruct.cpp
index 6bd2bf672fe..fc7941fc3fd 100644
--- a/mozilla/layout/style/nsCSSStruct.cpp
+++ b/mozilla/layout/style/nsCSSStruct.cpp
@@ -597,30 +597,32 @@ public:
NS_DECL_ISUPPORTS
- nsresult GetData(const nsID& aSID, nsCSSStruct** aData);
- nsresult EnsureData(const nsID& aSID, nsCSSStruct** aData);
+ NS_IMETHOD GetData(const nsID& aSID, nsCSSStruct** aData);
+ NS_IMETHOD EnsureData(const nsID& aSID, nsCSSStruct** aData);
- nsresult AppendValue(PRInt32 aProperty, const nsCSSValue& aValue);
- nsresult SetValueImportant(PRInt32 aProperty);
- nsresult AppendComment(const nsString& aComment);
+ NS_IMETHOD AppendValue(PRInt32 aProperty, const nsCSSValue& aValue);
+ NS_IMETHOD SetValueImportant(PRInt32 aProperty);
+ NS_IMETHOD AppendComment(const nsString& aComment);
- nsresult GetValue(PRInt32 aProperty, nsCSSValue& aValue);
- nsresult GetValue(PRInt32 aProperty, nsString& aValue);
- nsresult GetValue(const nsString& aProperty, nsString& aValue);
+ NS_IMETHOD GetValue(PRInt32 aProperty, nsCSSValue& aValue);
+ NS_IMETHOD GetValue(PRInt32 aProperty, nsString& aValue);
+ NS_IMETHOD GetValue(const nsString& aProperty, nsString& aValue);
- nsresult GetImportantValues(nsICSSDeclaration*& aResult);
- nsresult GetValueIsImportant(PRInt32 aProperty, PRBool& aIsImportant);
- nsresult GetValueIsImportant(const nsString& aProperty, PRBool& aIsImportant);
+ NS_IMETHOD GetImportantValues(nsICSSDeclaration*& aResult);
+ NS_IMETHOD GetValueIsImportant(PRInt32 aProperty, PRBool& aIsImportant);
+ NS_IMETHOD GetValueIsImportant(const nsString& aProperty, PRBool& aIsImportant);
PRBool AppendValueToString(PRInt32 aProperty, nsString& aResult);
PRBool AppendValueToString(PRInt32 aProperty, const nsCSSValue& aValue, nsString& aResult);
- virtual nsresult ToString(nsString& aString);
+ NS_IMETHOD ToString(nsString& aString);
void List(FILE* out = stdout, PRInt32 aIndent = 0) const;
- nsresult Count(PRUint32* aCount);
- nsresult GetNthProperty(PRUint32 aIndex, nsString& aReturn);
+ NS_IMETHOD Count(PRUint32* aCount);
+ NS_IMETHOD GetNthProperty(PRUint32 aIndex, nsString& aReturn);
+
+ NS_IMETHOD GetStyleImpact(PRInt32* aHint) const;
private:
CSSDeclarationImpl(const CSSDeclarationImpl& aCopy);
@@ -706,7 +708,8 @@ NS_IMPL_ISUPPORTS(CSSDeclarationImpl, kICSSDeclarationIID);
#define CSS_IF_GET_ELSE(sid,ptr,result) \
if (sid.Equals(kCSS##ptr##SID)) { *result = m##ptr; } else
-nsresult CSSDeclarationImpl::GetData(const nsID& aSID, nsCSSStruct** aDataPtr)
+NS_IMETHODIMP
+CSSDeclarationImpl::GetData(const nsID& aSID, nsCSSStruct** aDataPtr)
{
if (nsnull == aDataPtr) {
return NS_ERROR_NULL_POINTER;
@@ -735,7 +738,8 @@ nsresult CSSDeclarationImpl::GetData(const nsID& aSID, nsCSSStruct** aDataPtr)
*result = m##ptr; \
} else
-nsresult CSSDeclarationImpl::EnsureData(const nsID& aSID, nsCSSStruct** aDataPtr)
+NS_IMETHODIMP
+CSSDeclarationImpl::EnsureData(const nsID& aSID, nsCSSStruct** aDataPtr)
{
if (nsnull == aDataPtr) {
return NS_ERROR_NULL_POINTER;
@@ -788,7 +792,8 @@ nsresult CSSDeclarationImpl::EnsureData(const nsID& aSID, nsCSSStruct** aDataPtr
} \
else
-nsresult CSSDeclarationImpl::AppendValue(PRInt32 aProperty, const nsCSSValue& aValue)
+NS_IMETHODIMP
+CSSDeclarationImpl::AppendValue(PRInt32 aProperty, const nsCSSValue& aValue)
{
nsresult result = NS_OK;
@@ -1270,7 +1275,8 @@ nsresult CSSDeclarationImpl::AppendValue(PRInt32 aProperty, const nsCSSValue& aV
#define CSS_CASE_IMPORTANT(prop,data) \
case prop: mImportant->data = data; data.Reset(); break
-nsresult CSSDeclarationImpl::SetValueImportant(PRInt32 aProperty)
+NS_IMETHODIMP
+CSSDeclarationImpl::SetValueImportant(PRInt32 aProperty)
{
nsresult result = NS_OK;
@@ -1901,7 +1907,8 @@ nsresult CSSDeclarationImpl::SetValueImportant(PRInt32 aProperty)
return result;
}
-nsresult CSSDeclarationImpl::AppendComment(const nsString& aComment)
+NS_IMETHODIMP
+CSSDeclarationImpl::AppendComment(const nsString& aComment)
{
nsresult result = NS_ERROR_OUT_OF_MEMORY;
@@ -1919,7 +1926,8 @@ nsresult CSSDeclarationImpl::AppendComment(const nsString& aComment)
return result;
}
-nsresult CSSDeclarationImpl::GetValue(PRInt32 aProperty, nsCSSValue& aValue)
+NS_IMETHODIMP
+CSSDeclarationImpl::GetValue(PRInt32 aProperty, nsCSSValue& aValue)
{
nsresult result = NS_OK;
@@ -2410,7 +2418,8 @@ nsresult CSSDeclarationImpl::GetValue(PRInt32 aProperty, nsCSSValue& aValue)
}
-nsresult CSSDeclarationImpl::GetValue(const nsString& aProperty, nsString& aValue)
+NS_IMETHODIMP
+CSSDeclarationImpl::GetValue(const nsString& aProperty, nsString& aValue)
{
char prop[50];
aProperty.ToCString(prop, sizeof(prop));
@@ -2573,7 +2582,8 @@ PRBool CSSDeclarationImpl::AppendValueToString(PRInt32 aProperty, const nsCSSVal
(eCSSUnit_Null != strct->rect->mBottom.GetUnit()) && \
(eCSSUnit_Null != strct->rect->mLeft.GetUnit()))
-nsresult CSSDeclarationImpl::GetValue(PRInt32 aProperty, nsString& aValue)
+NS_IMETHODIMP
+CSSDeclarationImpl::GetValue(PRInt32 aProperty, nsString& aValue)
{
PRBool isImportant = PR_FALSE;
GetValueIsImportant(aProperty, isImportant);
@@ -2837,7 +2847,8 @@ nsresult CSSDeclarationImpl::GetValue(PRInt32 aProperty, nsString& aValue)
return NS_OK;
}
-nsresult CSSDeclarationImpl::GetImportantValues(nsICSSDeclaration*& aResult)
+NS_IMETHODIMP
+CSSDeclarationImpl::GetImportantValues(nsICSSDeclaration*& aResult)
{
if (nsnull != mImportant) {
aResult = mImportant;
@@ -2849,8 +2860,9 @@ nsresult CSSDeclarationImpl::GetImportantValues(nsICSSDeclaration*& aResult)
return NS_OK;
}
-nsresult CSSDeclarationImpl::GetValueIsImportant(const nsString& aProperty,
- PRBool& aIsImportant)
+NS_IMETHODIMP
+CSSDeclarationImpl::GetValueIsImportant(const nsString& aProperty,
+ PRBool& aIsImportant)
{
char prop[50];
aProperty.ToCString(prop, sizeof(prop));
@@ -2858,8 +2870,9 @@ nsresult CSSDeclarationImpl::GetValueIsImportant(const nsString& aProperty,
return GetValueIsImportant(propID, aIsImportant);
}
-nsresult CSSDeclarationImpl::GetValueIsImportant(PRInt32 aProperty,
- PRBool& aIsImportant)
+NS_IMETHODIMP
+CSSDeclarationImpl::GetValueIsImportant(PRInt32 aProperty,
+ PRBool& aIsImportant)
{
nsCSSValue val;
@@ -2879,7 +2892,8 @@ nsresult CSSDeclarationImpl::GetValueIsImportant(PRInt32 aProperty,
return NS_OK;
}
-nsresult CSSDeclarationImpl::ToString(nsString& aString)
+NS_IMETHODIMP
+CSSDeclarationImpl::ToString(nsString& aString)
{
if (nsnull != mOrder) {
PRInt32 count = mOrder->Count();
@@ -2959,7 +2973,7 @@ void CSSDeclarationImpl::List(FILE* out, PRInt32 aIndent) const
}
}
-nsresult
+NS_IMETHODIMP
CSSDeclarationImpl::Count(PRUint32* aCount)
{
if (nsnull != mOrder) {
@@ -2972,7 +2986,7 @@ CSSDeclarationImpl::Count(PRUint32* aCount)
return NS_OK;
}
-nsresult
+NS_IMETHODIMP
CSSDeclarationImpl::GetNthProperty(PRUint32 aIndex, nsString& aReturn)
{
aReturn.SetLength(0);
@@ -2986,6 +3000,30 @@ CSSDeclarationImpl::GetNthProperty(PRUint32 aIndex, nsString& aReturn)
return NS_OK;
}
+NS_IMETHODIMP
+CSSDeclarationImpl::GetStyleImpact(PRInt32* aHint) const
+{
+ NS_ASSERTION(nsnull != aHint, "null pointer");
+ if (nsnull == aHint) {
+ return NS_ERROR_NULL_POINTER;
+ }
+ PRInt32 hint = NS_STYLE_HINT_UNKNOWN;
+ if (nsnull != mOrder) {
+ PRInt32 count = mOrder->Count();
+ PRInt32 index;
+ for (index = 0; index < count; index++) {
+ PRInt32 property = (PRInt32)mOrder->ElementAt(index);
+ if (0 <= property) {
+ if (hint < nsCSSProps::kHintTable[property]) {
+ hint = nsCSSProps::kHintTable[property];
+ }
+ }
+ }
+ }
+ *aHint = hint;
+ return NS_OK;
+}
+
NS_HTML nsresult
NS_NewCSSDeclaration(nsICSSDeclaration** aInstancePtrResult)