From 8a84ae4c09d17d0e9c569ce09e87deadb3d086ff Mon Sep 17 00:00:00 2001 From: "caillon%returnzero.com" Date: Tue, 19 Nov 2002 07:41:07 +0000 Subject: [PATCH] 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 --- .../content/html/style/src/nsIInspectorCSSUtils.h | 5 +++++ .../html/style/src/nsInspectorCSSUtils.cpp | 15 +++++++++++++++ .../content/html/style/src/nsInspectorCSSUtils.h | 2 ++ .../extensions/inspector/base/src/inDOMUtils.cpp | 7 +++---- mozilla/layout/style/nsIInspectorCSSUtils.h | 5 +++++ mozilla/layout/style/nsInspectorCSSUtils.cpp | 15 +++++++++++++++ mozilla/layout/style/nsInspectorCSSUtils.h | 2 ++ 7 files changed, 47 insertions(+), 4 deletions(-) diff --git a/mozilla/content/html/style/src/nsIInspectorCSSUtils.h b/mozilla/content/html/style/src/nsIInspectorCSSUtils.h index ced92b64dc9..878d5181b0d 100644 --- a/mozilla/content/html/style/src/nsIInspectorCSSUtils.h +++ b/mozilla/content/html/style/src/nsIInspectorCSSUtils.h @@ -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(nsCOMPtr, const nsStyleText**) + // and calls nsStyleText->WhiteSpaceIsSignificant(); + NS_IMETHOD IsWhiteSpaceSignificant(nsIStyleContext* aStyleContext, + PRBool *aIsSignificant) = 0; }; #endif /* nsIInspectorCSSUtils_h___ */ diff --git a/mozilla/content/html/style/src/nsInspectorCSSUtils.cpp b/mozilla/content/html/style/src/nsInspectorCSSUtils.cpp index 9a142a40ebb..5bd2c7002f7 100644 --- a/mozilla/content/html/style/src/nsInspectorCSSUtils.cpp +++ b/mozilla/content/html/style/src/nsInspectorCSSUtils.cpp @@ -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; +} diff --git a/mozilla/content/html/style/src/nsInspectorCSSUtils.h b/mozilla/content/html/style/src/nsInspectorCSSUtils.h index cb1762cf618..cd62b5e09db 100644 --- a/mozilla/content/html/style/src/nsInspectorCSSUtils.h +++ b/mozilla/content/html/style/src/nsInspectorCSSUtils.h @@ -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___ */ diff --git a/mozilla/extensions/inspector/base/src/inDOMUtils.cpp b/mozilla/extensions/inspector/base/src/inDOMUtils.cpp index d13d55520e0..a0f74f117bd 100644 --- a/mozilla/extensions/inspector/base/src/inDOMUtils.cpp +++ b/mozilla/extensions/inspector/base/src/inDOMUtils.cpp @@ -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 diff --git a/mozilla/layout/style/nsIInspectorCSSUtils.h b/mozilla/layout/style/nsIInspectorCSSUtils.h index ced92b64dc9..878d5181b0d 100644 --- a/mozilla/layout/style/nsIInspectorCSSUtils.h +++ b/mozilla/layout/style/nsIInspectorCSSUtils.h @@ -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(nsCOMPtr, const nsStyleText**) + // and calls nsStyleText->WhiteSpaceIsSignificant(); + NS_IMETHOD IsWhiteSpaceSignificant(nsIStyleContext* aStyleContext, + PRBool *aIsSignificant) = 0; }; #endif /* nsIInspectorCSSUtils_h___ */ diff --git a/mozilla/layout/style/nsInspectorCSSUtils.cpp b/mozilla/layout/style/nsInspectorCSSUtils.cpp index 9a142a40ebb..5bd2c7002f7 100644 --- a/mozilla/layout/style/nsInspectorCSSUtils.cpp +++ b/mozilla/layout/style/nsInspectorCSSUtils.cpp @@ -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; +} diff --git a/mozilla/layout/style/nsInspectorCSSUtils.h b/mozilla/layout/style/nsInspectorCSSUtils.h index cb1762cf618..cd62b5e09db 100644 --- a/mozilla/layout/style/nsInspectorCSSUtils.h +++ b/mozilla/layout/style/nsInspectorCSSUtils.h @@ -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___ */