Attempt to fix nebiros bustage by moving style struct access into nsIInspectorCSSUtils

r/a=timeless,jkeiser,#mozilla
bug 147189


git-svn-id: svn://10.0.0.236/trunk@134093 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
caillon%returnzero.com
2002-11-19 07:41:07 +00:00
parent b98bc5743f
commit 8a84ae4c09
7 changed files with 47 additions and 4 deletions

View File

@@ -81,6 +81,11 @@ public:
// Hooks to methods that need layout atoms (static vars in layout)
NS_IMETHOD GetStyleContextForFrame(nsIFrame* aFrame,
nsIStyleContext** aStyleContext) = 0;
// Hooks to ::GetStyleData<T>(nsCOMPtr<nsIStyleContext>, const nsStyleText**)
// and calls nsStyleText->WhiteSpaceIsSignificant();
NS_IMETHOD IsWhiteSpaceSignificant(nsIStyleContext* aStyleContext,
PRBool *aIsSignificant) = 0;
};
#endif /* nsIInspectorCSSUtils_h___ */

View File

@@ -142,3 +142,18 @@ nsInspectorCSSUtils::GetStyleContextForFrame(nsIFrame* aFrame,
}
return NS_OK;
}
NS_IMETHODIMP
nsInspectorCSSUtils::IsWhiteSpaceSignificant(nsIStyleContext* aStyleContext,
PRBool *aIsSignificant)
{
NS_PRECONDITION(aStyleContext, "We'd better have a style context!");
NS_PRECONDITION(aStyleContext, "We'd better have an out pointer!");
const nsStyleText* text = nsnull;
::GetStyleData(aStyleContext, &text);
NS_ASSERTION(text, "Could not get a style struct!");
*aIsSignificant = text->WhiteSpaceIsSignificant();
return NS_OK;
}

View File

@@ -59,6 +59,8 @@ public:
NS_IMETHOD AdjustRectForMargins(nsIFrame* aFrame, nsRect& aRect);
NS_IMETHOD GetStyleContextForFrame(nsIFrame* aFrame,
nsIStyleContext** aStyleContext);
NS_IMETHOD IsWhiteSpaceSignificant(nsIStyleContext* aStyleContext,
PRBool *aIsSignificant);
};
#endif /* nsInspectorCSSUtils_h___ */

View File

@@ -154,11 +154,10 @@ inDOMUtils::IsIgnorableWhitespace(nsIDOMCharacterData *aDataNode,
getter_AddRefs(styleContext));
if (styleContext) {
const nsStyleText* text = nsnull;
::GetStyleData(styleContext, &text);
NS_ASSERTION(text, "Could not get a style struct!");
PRBool significant = PR_FALSE;
mCSSUtils->IsWhiteSpaceSignificant(styleContext, &significant);
*aReturn = !text->WhiteSpaceIsSignificant();
*aReturn = !significant;
}
else {
// No style context. Let's just assume the default value of

View File

@@ -81,6 +81,11 @@ public:
// Hooks to methods that need layout atoms (static vars in layout)
NS_IMETHOD GetStyleContextForFrame(nsIFrame* aFrame,
nsIStyleContext** aStyleContext) = 0;
// Hooks to ::GetStyleData<T>(nsCOMPtr<nsIStyleContext>, const nsStyleText**)
// and calls nsStyleText->WhiteSpaceIsSignificant();
NS_IMETHOD IsWhiteSpaceSignificant(nsIStyleContext* aStyleContext,
PRBool *aIsSignificant) = 0;
};
#endif /* nsIInspectorCSSUtils_h___ */

View File

@@ -142,3 +142,18 @@ nsInspectorCSSUtils::GetStyleContextForFrame(nsIFrame* aFrame,
}
return NS_OK;
}
NS_IMETHODIMP
nsInspectorCSSUtils::IsWhiteSpaceSignificant(nsIStyleContext* aStyleContext,
PRBool *aIsSignificant)
{
NS_PRECONDITION(aStyleContext, "We'd better have a style context!");
NS_PRECONDITION(aStyleContext, "We'd better have an out pointer!");
const nsStyleText* text = nsnull;
::GetStyleData(aStyleContext, &text);
NS_ASSERTION(text, "Could not get a style struct!");
*aIsSignificant = text->WhiteSpaceIsSignificant();
return NS_OK;
}

View File

@@ -59,6 +59,8 @@ public:
NS_IMETHOD AdjustRectForMargins(nsIFrame* aFrame, nsRect& aRect);
NS_IMETHOD GetStyleContextForFrame(nsIFrame* aFrame,
nsIStyleContext** aStyleContext);
NS_IMETHOD IsWhiteSpaceSignificant(nsIStyleContext* aStyleContext,
PRBool *aIsSignificant);
};
#endif /* nsInspectorCSSUtils_h___ */