diff --git a/content/base/src/nsAttrAndChildArray.cpp b/content/base/src/nsAttrAndChildArray.cpp index 4d1883cab0d..115b896cfab 100644 --- a/content/base/src/nsAttrAndChildArray.cpp +++ b/content/base/src/nsAttrAndChildArray.cpp @@ -600,7 +600,7 @@ nsAttrAndChildArray::SetMappedAttrStyleSheet(nsHTMLStyleSheet* aSheet) void nsAttrAndChildArray::WalkMappedAttributeStyleRules(nsRuleWalker* aRuleWalker) { - if (mImpl && mImpl->mMappedAttrs && aRuleWalker) { + if (mImpl && mImpl->mMappedAttrs) { aRuleWalker->Forward(mImpl->mMappedAttrs); } } diff --git a/content/smil/crashtests/555026-1.svg b/content/smil/crashtests/555026-1.svg new file mode 100644 index 00000000000..76b4cf0756d --- /dev/null +++ b/content/smil/crashtests/555026-1.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + diff --git a/content/smil/crashtests/crashtests.list b/content/smil/crashtests/crashtests.list index 5ad441afc73..7a70ea2f94f 100644 --- a/content/smil/crashtests/crashtests.list +++ b/content/smil/crashtests/crashtests.list @@ -9,4 +9,5 @@ load 529387-1.xhtml load 537157-1.svg load 547333-1.svg load 548899-1.svg +load 555026-1.svg load 556841-1.svg diff --git a/content/smil/nsSMILAnimationFunction.cpp b/content/smil/nsSMILAnimationFunction.cpp index b36c321f59b..8cc36ff0d8a 100644 --- a/content/smil/nsSMILAnimationFunction.cpp +++ b/content/smil/nsSMILAnimationFunction.cpp @@ -412,7 +412,8 @@ nsSMILAnimationFunction::InterpolateResult(const nsSMILValueArray& aValues, // Handle bad keytimes (where first != 0 and/or last != 1) // See http://brian.sol1.net/svg/range-for-keytimes for more info. - if (HasAttr(nsGkAtoms::keyTimes)) { + if (HasAttr(nsGkAtoms::keyTimes) && + GetCalcMode() != CALC_PACED) { double first = mKeyTimes[0]; if (first > 0.0 && simpleProgress < first) { if (!IsToAnimation()) @@ -429,20 +430,22 @@ nsSMILAnimationFunction::InterpolateResult(const nsSMILValueArray& aValues, } } - ScaleSimpleProgress(simpleProgress); - if (GetCalcMode() != CALC_DISCRETE) { // Get the normalised progress between adjacent values const nsSMILValue* from = nsnull; const nsSMILValue* to = nsnull; double intervalProgress; if (IsToAnimation()) { - // Note: Don't need to do any special-casing for CALC_PACED here, - // because To-Animation doesn't use a values list, by definition. from = &aBaseValue; to = &aValues[0]; - intervalProgress = simpleProgress; - ScaleIntervalProgress(intervalProgress, 0, 1); + if (GetCalcMode() == CALC_PACED) { + // Note: key[Times/Splines/Points] are ignored for calcMode="paced" + intervalProgress = simpleProgress; + } else { + ScaleSimpleProgress(simpleProgress); + intervalProgress = simpleProgress; + ScaleIntervalProgress(intervalProgress, 0, 1); + } } else { if (GetCalcMode() == CALC_PACED) { rv = ComputePacedPosition(aValues, simpleProgress, @@ -452,6 +455,7 @@ nsSMILAnimationFunction::InterpolateResult(const nsSMILValueArray& aValues, // instead. (as the spec says we should, because our failure was // presumably due to the values being non-additive) } else { // GetCalcMode() == CALC_LINEAR or GetCalcMode() == CALC_SPLINE + ScaleSimpleProgress(simpleProgress); PRUint32 index = (PRUint32)floor(simpleProgress * (aValues.Length() - 1)); from = &aValues[index]; diff --git a/content/smil/test/Makefile.in b/content/smil/test/Makefile.in index 6444a6984f0..1b671277fb7 100644 --- a/content/smil/test/Makefile.in +++ b/content/smil/test/Makefile.in @@ -70,6 +70,7 @@ _TEST_FILES = \ test_smilGetStartTime.xhtml \ test_smilGetSimpleDuration.xhtml \ test_smilKeySplines.xhtml \ + test_smilKeyTimesPacedMode.xhtml \ test_smilSetCurrentTime.xhtml \ test_smilSync.xhtml \ test_smilSyncbaseTarget.xhtml \ diff --git a/content/smil/test/test_smilKeyTimesPacedMode.xhtml b/content/smil/test/test_smilKeyTimesPacedMode.xhtml new file mode 100644 index 00000000000..6c5b14282ad --- /dev/null +++ b/content/smil/test/test_smilKeyTimesPacedMode.xhtml @@ -0,0 +1,124 @@ + + + Tests updated intervals + + + + + +Mozilla Bug 555026 +

+ +
+
+
+ + diff --git a/layout/reftests/bugs/556661-1-ref.html b/layout/reftests/bugs/556661-1-ref.html new file mode 100644 index 00000000000..f960b6c84fb --- /dev/null +++ b/layout/reftests/bugs/556661-1-ref.html @@ -0,0 +1,24 @@ + +Dynamic manipulation of !important + + +
+
+
+
+

+
+
+
+
+

+
+

There should be two rows of four green squares and one solid green + bar above.

+ + diff --git a/layout/reftests/bugs/556661-1.html b/layout/reftests/bugs/556661-1.html new file mode 100644 index 00000000000..1941e0b8765 --- /dev/null +++ b/layout/reftests/bugs/556661-1.html @@ -0,0 +1,63 @@ + +Dynamic manipulation of !important + + + + +
+
+
+
+

+
+
+
+
+

+
+

There should be two rows of four green squares and one solid green + bar above.

+ + diff --git a/layout/reftests/bugs/reftest.list b/layout/reftests/bugs/reftest.list index a1bce194941..5deeb819d07 100644 --- a/layout/reftests/bugs/reftest.list +++ b/layout/reftests/bugs/reftest.list @@ -1419,5 +1419,6 @@ random-if(!haveTestPlugin) == 546071-1.html 546071-1-ref.html == 549184-1.html 549184-1-ref.html == 550716-1.html 550716-1-ref.html == 551463-1.html 551463-1-ref.html -== 552334-1.html 552334-1-ref.html == 551699-1.html 551699-1-ref.html +== 552334-1.html 552334-1-ref.html +== 556661-1.html 556661-1-ref.html diff --git a/layout/reftests/css-visited/white-to-transparent-1-ref.html b/layout/reftests/css-visited/white-to-transparent-1-ref.html new file mode 100644 index 00000000000..9ec44c5cd3e --- /dev/null +++ b/layout/reftests/css-visited/white-to-transparent-1-ref.html @@ -0,0 +1,11 @@ + +Test for privacy restrictions on :visited (Bug 147777) + +unvisited +visited diff --git a/layout/reftests/css-visited/white-to-transparent-1.html b/layout/reftests/css-visited/white-to-transparent-1.html new file mode 100644 index 00000000000..a9ac2695745 --- /dev/null +++ b/layout/reftests/css-visited/white-to-transparent-1.html @@ -0,0 +1,13 @@ + +Test for privacy restrictions on :visited (Bug 147777) + +unvisited +visited diff --git a/layout/style/nsCSSParser.cpp b/layout/style/nsCSSParser.cpp index 1d59799240e..72b8af292f7 100644 --- a/layout/style/nsCSSParser.cpp +++ b/layout/style/nsCSSParser.cpp @@ -403,13 +403,19 @@ protected: // |mTempData| to |mData|. Set |*aChanged| to true if something // changed, but leave it unmodified otherwise. If aMustCallValueAppended // is false, will not call ValueAppended on aDeclaration if the property - // is already set in it. + // is already set in it. If aOverrideImportant is true, new data will + // replace old settings of the same properties, even if the old settings + // are !important and the new data aren't. void TransferTempData(nsCSSDeclaration* aDeclaration, - nsCSSProperty aPropID, PRBool aIsImportant, + nsCSSProperty aPropID, + PRBool aIsImportant, + PRBool aOverrideImportant, PRBool aMustCallValueAppended, PRBool* aChanged); void DoTransferTempData(nsCSSDeclaration* aDeclaration, - nsCSSProperty aPropID, PRBool aIsImportant, + nsCSSProperty aPropID, + PRBool aIsImportant, + PRBool aOverrideImportant, PRBool aMustCallValueAppended, PRBool* aChanged); // Used to do a fast copy of a property value from source location to @@ -1144,7 +1150,8 @@ CSSParserImpl::ParseProperty(const nsCSSProperty aPropID, CopyValue(mTempData.PropertyAt(aPropID), valueSlot, aPropID, aChanged); mTempData.ClearPropertyBit(aPropID); } else { - TransferTempData(aDeclaration, aPropID, aIsImportant, PR_FALSE, aChanged); + TransferTempData(aDeclaration, aPropID, aIsImportant, + PR_TRUE, PR_FALSE, aChanged); } } else { if (parsedOK) { @@ -3983,7 +3990,7 @@ CSSParserImpl::ParseDeclaration(nsCSSDeclaration* aDeclaration, PRBool isImportant = PR_FALSE; if (!GetToken(PR_TRUE)) { // EOF is a perfectly good way to end a declaration and declaration block - TransferTempData(aDeclaration, propID, isImportant, + TransferTempData(aDeclaration, propID, isImportant, PR_FALSE, aMustCallValueAppended, aChanged); return PR_TRUE; } @@ -4016,13 +4023,13 @@ CSSParserImpl::ParseDeclaration(nsCSSDeclaration* aDeclaration, // aCheckForBraces is true). if (!GetToken(PR_TRUE)) { // EOF is a perfectly good way to end a declaration and declaration block - TransferTempData(aDeclaration, propID, isImportant, + TransferTempData(aDeclaration, propID, isImportant, PR_FALSE, aMustCallValueAppended, aChanged); return PR_TRUE; } if (eCSSToken_Symbol == tk->mType) { if (';' == tk->mSymbol) { - TransferTempData(aDeclaration, propID, isImportant, + TransferTempData(aDeclaration, propID, isImportant, PR_FALSE, aMustCallValueAppended, aChanged); return PR_TRUE; } @@ -4030,7 +4037,7 @@ CSSParserImpl::ParseDeclaration(nsCSSDeclaration* aDeclaration, // Unget the '}' so we'll be able to tell that this is the end // of the declaration block when we unwind from here. UngetToken(); - TransferTempData(aDeclaration, propID, isImportant, + TransferTempData(aDeclaration, propID, isImportant, PR_FALSE, aMustCallValueAppended, aChanged); return PR_TRUE; } @@ -4060,17 +4067,19 @@ CSSParserImpl::ClearTempData(nsCSSProperty aPropID) void CSSParserImpl::TransferTempData(nsCSSDeclaration* aDeclaration, - nsCSSProperty aPropID, PRBool aIsImportant, + nsCSSProperty aPropID, + PRBool aIsImportant, + PRBool aOverrideImportant, PRBool aMustCallValueAppended, PRBool* aChanged) { if (nsCSSProps::IsShorthand(aPropID)) { CSSPROPS_FOR_SHORTHAND_SUBPROPERTIES(p, aPropID) { - DoTransferTempData(aDeclaration, *p, aIsImportant, + DoTransferTempData(aDeclaration, *p, aIsImportant, aOverrideImportant, aMustCallValueAppended, aChanged); } } else { - DoTransferTempData(aDeclaration, aPropID, aIsImportant, + DoTransferTempData(aDeclaration, aPropID, aIsImportant, aOverrideImportant, aMustCallValueAppended, aChanged); } mTempData.AssertInitialState(); @@ -4081,7 +4090,9 @@ CSSParserImpl::TransferTempData(nsCSSDeclaration* aDeclaration, // can't think of why). void CSSParserImpl::DoTransferTempData(nsCSSDeclaration* aDeclaration, - nsCSSProperty aPropID, PRBool aIsImportant, + nsCSSProperty aPropID, + PRBool aIsImportant, + PRBool aOverrideImportant, PRBool aMustCallValueAppended, PRBool* aChanged) { @@ -4092,8 +4103,17 @@ CSSParserImpl::DoTransferTempData(nsCSSDeclaration* aDeclaration, mData.SetImportantBit(aPropID); } else { if (mData.HasImportantBit(aPropID)) { - mTempData.ClearProperty(aPropID); - return; + // When parsing a declaration block, an !important declaration + // is not overwritten by an ordinary declaration of the same + // property later in the block. However, CSSOM manipulations + // come through here too, and in that case we do want to + // overwrite the property. + if (!aOverrideImportant) { + mTempData.ClearProperty(aPropID); + return; + } + *aChanged = PR_TRUE; + mData.ClearImportantBit(aPropID); } } diff --git a/layout/style/nsCSSParser.h b/layout/style/nsCSSParser.h index 2f5135d6465..57faea4a33b 100644 --- a/layout/style/nsCSSParser.h +++ b/layout/style/nsCSSParser.h @@ -65,9 +65,9 @@ namespace css { class NS_STACK_CLASS nsCSSParser { public: - NS_HIDDEN nsCSSParser(mozilla::css::Loader* aLoader = nsnull, - nsICSSStyleSheet* aSheet = nsnull); - NS_HIDDEN ~nsCSSParser(); + nsCSSParser(mozilla::css::Loader* aLoader = nsnull, + nsICSSStyleSheet* aSheet = nsnull); + ~nsCSSParser(); static void Shutdown(); @@ -79,24 +79,24 @@ private: public: // If this is false, memory allocation failed in the constructor // and all other methods will crash. - NS_HIDDEN operator bool() const + operator bool() const { return !!mImpl; } // Set a style sheet for the parser to fill in. The style sheet must // implement the nsICSSStyleSheet interface. Null can be passed in to clear // out an existing stylesheet reference. - NS_HIDDEN_(nsresult) SetStyleSheet(nsICSSStyleSheet* aSheet); + nsresult SetStyleSheet(nsICSSStyleSheet* aSheet); // Set whether or not to emulate Nav quirks - NS_HIDDEN_(nsresult) SetQuirkMode(PRBool aQuirkMode); + nsresult SetQuirkMode(PRBool aQuirkMode); #ifdef MOZ_SVG // Set whether or not we are in an SVG element - NS_HIDDEN_(nsresult) SetSVGMode(PRBool aSVGMode); + nsresult SetSVGMode(PRBool aSVGMode); #endif // Set loader to use for child sheets - NS_HIDDEN_(nsresult) SetChildLoader(mozilla::css::Loader* aChildLoader); + nsresult SetChildLoader(mozilla::css::Loader* aChildLoader); /** * Parse aInput into the stylesheet that was previously set by calling @@ -114,45 +114,45 @@ public: * @param aAllowUnsafeRules see aEnableUnsafeRules in * mozilla::css::Loader::LoadSheetSync */ - NS_HIDDEN_(nsresult) Parse(nsIUnicharInputStream* aInput, - nsIURI* aSheetURL, - nsIURI* aBaseURI, - nsIPrincipal* aSheetPrincipal, - PRUint32 aLineNumber, - PRBool aAllowUnsafeRules); + nsresult Parse(nsIUnicharInputStream* aInput, + nsIURI* aSheetURL, + nsIURI* aBaseURI, + nsIPrincipal* aSheetPrincipal, + PRUint32 aLineNumber, + PRBool aAllowUnsafeRules); // Parse HTML style attribute or its equivalent in other markup // languages. aBaseURL is the base url to use for relative links in // the declaration. - NS_HIDDEN_(nsresult) ParseStyleAttribute(const nsAString& aAttributeValue, - nsIURI* aDocURL, - nsIURI* aBaseURL, - nsIPrincipal* aNodePrincipal, - nsICSSStyleRule** aResult); + nsresult ParseStyleAttribute(const nsAString& aAttributeValue, + nsIURI* aDocURL, + nsIURI* aBaseURL, + nsIPrincipal* aNodePrincipal, + nsICSSStyleRule** aResult); - NS_HIDDEN_(nsresult) ParseAndAppendDeclaration(const nsAString& aBuffer, - nsIURI* aSheetURL, - nsIURI* aBaseURL, - nsIPrincipal* aSheetPrincipal, - nsCSSDeclaration* aDeclaration, - PRBool aParseOnlyOneDecl, - PRBool* aChanged, - PRBool aClearOldDecl); + nsresult ParseAndAppendDeclaration(const nsAString& aBuffer, + nsIURI* aSheetURL, + nsIURI* aBaseURL, + nsIPrincipal* aSheetPrincipal, + nsCSSDeclaration* aDeclaration, + PRBool aParseOnlyOneDecl, + PRBool* aChanged, + PRBool aClearOldDecl); - NS_HIDDEN_(nsresult) ParseRule(const nsAString& aRule, - nsIURI* aSheetURL, - nsIURI* aBaseURL, - nsIPrincipal* aSheetPrincipal, - nsCOMArray& aResult); + nsresult ParseRule(const nsAString& aRule, + nsIURI* aSheetURL, + nsIURI* aBaseURL, + nsIPrincipal* aSheetPrincipal, + nsCOMArray& aResult); - NS_HIDDEN_(nsresult) ParseProperty(const nsCSSProperty aPropID, - const nsAString& aPropValue, - nsIURI* aSheetURL, - nsIURI* aBaseURL, - nsIPrincipal* aSheetPrincipal, - nsCSSDeclaration* aDeclaration, - PRBool* aChanged, - PRBool aIsImportant); + nsresult ParseProperty(const nsCSSProperty aPropID, + const nsAString& aPropValue, + nsIURI* aSheetURL, + nsIURI* aBaseURL, + nsIPrincipal* aSheetPrincipal, + nsCSSDeclaration* aDeclaration, + PRBool* aChanged, + PRBool aIsImportant); /** * Parse aBuffer into a media list |aMediaList|, which must be @@ -162,11 +162,11 @@ public: * parentheses and strings more important than commas. |aURL| and * |aLineNumber| are used for error reporting. */ - NS_HIDDEN_(nsresult) ParseMediaList(const nsSubstring& aBuffer, - nsIURI* aURL, - PRUint32 aLineNumber, - nsMediaList* aMediaList, - PRBool aHTMLMode); + nsresult ParseMediaList(const nsSubstring& aBuffer, + nsIURI* aURL, + PRUint32 aLineNumber, + nsMediaList* aMediaList, + PRBool aHTMLMode); /** * Parse aBuffer into a nscolor |aColor|. The alpha component of the @@ -177,19 +177,19 @@ public: * self-contained (i.e. doesn't reference any external style state, * such as "initial" or "inherit"). */ - NS_HIDDEN_(nsresult) ParseColorString(const nsSubstring& aBuffer, - nsIURI* aURL, - PRUint32 aLineNumber, - nscolor* aColor); + nsresult ParseColorString(const nsSubstring& aBuffer, + nsIURI* aURL, + PRUint32 aLineNumber, + nscolor* aColor); /** * Parse aBuffer into a selector list. On success, caller must * delete *aSelectorList when done with it. */ - NS_HIDDEN_(nsresult) ParseSelectorString(const nsSubstring& aSelectorString, - nsIURI* aURL, - PRUint32 aLineNumber, - nsCSSSelectorList** aSelectorList); + nsresult ParseSelectorString(const nsSubstring& aSelectorString, + nsIURI* aURL, + PRUint32 aLineNumber, + nsCSSSelectorList** aSelectorList); protected: // This is a CSSParserImpl*, but if we expose that type name in this diff --git a/layout/style/nsCSSScanner.h b/layout/style/nsCSSScanner.h index 0afacaa2f24..f9dae6f239c 100644 --- a/layout/style/nsCSSScanner.h +++ b/layout/style/nsCSSScanner.h @@ -161,28 +161,27 @@ class nsCSSScanner { #endif #ifdef CSS_REPORT_PARSE_ERRORS - NS_HIDDEN_(void) AddToError(const nsSubstring& aErrorText); - NS_HIDDEN_(void) OutputError(); - NS_HIDDEN_(void) ClearError(); + void AddToError(const nsSubstring& aErrorText); + void OutputError(); + void ClearError(); // aMessage must take no parameters - NS_HIDDEN_(void) ReportUnexpected(const char* aMessage); - NS_HIDDEN_(void) ReportUnexpectedParams(const char* aMessage, - const PRUnichar **aParams, - PRUint32 aParamsLength); + void ReportUnexpected(const char* aMessage); + void ReportUnexpectedParams(const char* aMessage, + const PRUnichar **aParams, + PRUint32 aParamsLength); // aLookingFor is a plain string, not a format string - NS_HIDDEN_(void) ReportUnexpectedEOF(const char* aLookingFor); + void ReportUnexpectedEOF(const char* aLookingFor); // aLookingFor is a single character - NS_HIDDEN_(void) ReportUnexpectedEOF(PRUnichar aLookingFor); + void ReportUnexpectedEOF(PRUnichar aLookingFor); // aMessage must take 1 parameter (for the string representation of the // unexpected token) - NS_HIDDEN_(void) ReportUnexpectedToken(nsCSSToken& tok, - const char *aMessage); + void ReportUnexpectedToken(nsCSSToken& tok, const char *aMessage); // aParams's first entry must be null, and we'll fill in the token - NS_HIDDEN_(void) ReportUnexpectedTokenParams(nsCSSToken& tok, - const char* aMessage, - const PRUnichar **aParams, - PRUint32 aParamsLength); + void ReportUnexpectedTokenParams(nsCSSToken& tok, + const char* aMessage, + const PRUnichar **aParams, + PRUint32 aParamsLength); #endif PRUint32 GetLineNumber() { return mLineNumber; } diff --git a/layout/style/nsCSSStyleSheet.h b/layout/style/nsCSSStyleSheet.h index 995bf31a6c4..6a8f10b96f8 100644 --- a/layout/style/nsCSSStyleSheet.h +++ b/layout/style/nsCSSStyleSheet.h @@ -151,14 +151,14 @@ public: NS_IMETHOD GetStyleSheetAt(PRInt32 aIndex, nsICSSStyleSheet*& aSheet) const; NS_IMETHOD SetURIs(nsIURI* aSheetURI, nsIURI* aOriginalSheetURI, nsIURI* aBaseURI); - virtual NS_HIDDEN_(void) SetPrincipal(nsIPrincipal* aPrincipal); - virtual NS_HIDDEN_(nsIPrincipal*) Principal() const; + virtual void SetPrincipal(nsIPrincipal* aPrincipal); + virtual nsIPrincipal* Principal() const; NS_IMETHOD SetTitle(const nsAString& aTitle); NS_IMETHOD SetMedia(nsMediaList* aMedia); NS_IMETHOD SetOwningNode(nsIDOMNode* aOwningNode); NS_IMETHOD SetOwnerRule(nsICSSImportRule* aOwnerRule); NS_IMETHOD GetOwnerRule(nsICSSImportRule** aOwnerRule); - virtual NS_HIDDEN_(nsXMLNameSpaceMap*) GetNameSpaceMap() const; + virtual nsXMLNameSpaceMap* GetNameSpaceMap() const; NS_IMETHOD Clone(nsICSSStyleSheet* aCloneParent, nsICSSImportRule* aCloneOwnerRule, nsIDocument* aCloneDocument, diff --git a/layout/style/nsCSSValue.h b/layout/style/nsCSSValue.h index 6cc4ac22682..c02c4f6c62c 100644 --- a/layout/style/nsCSSValue.h +++ b/layout/style/nsCSSValue.h @@ -181,18 +181,18 @@ public: NS_ASSERTION(aUnit <= eCSSUnit_RectIsAuto, "not a valueless unit"); } - nsCSSValue(PRInt32 aValue, nsCSSUnit aUnit) NS_HIDDEN; - nsCSSValue(float aValue, nsCSSUnit aUnit) NS_HIDDEN; - nsCSSValue(const nsString& aValue, nsCSSUnit aUnit) NS_HIDDEN; - nsCSSValue(Array* aArray, nsCSSUnit aUnit) NS_HIDDEN; - explicit nsCSSValue(URL* aValue) NS_HIDDEN; - explicit nsCSSValue(Image* aValue) NS_HIDDEN; - explicit nsCSSValue(nsCSSValueGradient* aValue) NS_HIDDEN; - nsCSSValue(const nsCSSValue& aCopy) NS_HIDDEN; + nsCSSValue(PRInt32 aValue, nsCSSUnit aUnit); + nsCSSValue(float aValue, nsCSSUnit aUnit); + nsCSSValue(const nsString& aValue, nsCSSUnit aUnit); + nsCSSValue(Array* aArray, nsCSSUnit aUnit); + explicit nsCSSValue(URL* aValue); + explicit nsCSSValue(Image* aValue); + explicit nsCSSValue(nsCSSValueGradient* aValue); + nsCSSValue(const nsCSSValue& aCopy); ~nsCSSValue() { Reset(); } - NS_HIDDEN_(nsCSSValue&) operator=(const nsCSSValue& aCopy); - NS_HIDDEN_(PRBool) operator==(const nsCSSValue& aOther) const; + nsCSSValue& operator=(const nsCSSValue& aCopy); + PRBool operator==(const nsCSSValue& aOther) const; PRBool operator!=(const nsCSSValue& aOther) const { @@ -310,44 +310,43 @@ public: // Not making this inline because that would force us to include // imgIRequest.h, which leads to REQUIRES hell, since this header is included // all over. - NS_HIDDEN_(imgIRequest*) GetImageValue() const; + imgIRequest* GetImageValue() const; - NS_HIDDEN_(nscoord) GetLengthTwips() const; + nscoord GetLengthTwips() const; - NS_HIDDEN_(void) Reset() // sets to null + void Reset() // sets to null { if (mUnit != eCSSUnit_Null) DoReset(); } private: - NS_HIDDEN_(void) DoReset(); + void DoReset(); public: - NS_HIDDEN_(void) SetIntValue(PRInt32 aValue, nsCSSUnit aUnit); - NS_HIDDEN_(void) SetPercentValue(float aValue); - NS_HIDDEN_(void) SetFloatValue(float aValue, nsCSSUnit aUnit); - NS_HIDDEN_(void) SetStringValue(const nsString& aValue, nsCSSUnit aUnit); - NS_HIDDEN_(void) SetColorValue(nscolor aValue); - NS_HIDDEN_(void) SetArrayValue(nsCSSValue::Array* aArray, nsCSSUnit aUnit); - NS_HIDDEN_(void) SetURLValue(nsCSSValue::URL* aURI); - NS_HIDDEN_(void) SetImageValue(nsCSSValue::Image* aImage); - NS_HIDDEN_(void) SetGradientValue(nsCSSValueGradient* aGradient); - NS_HIDDEN_(void) SetAutoValue(); - NS_HIDDEN_(void) SetInheritValue(); - NS_HIDDEN_(void) SetInitialValue(); - NS_HIDDEN_(void) SetNoneValue(); - NS_HIDDEN_(void) SetAllValue(); - NS_HIDDEN_(void) SetNormalValue(); - NS_HIDDEN_(void) SetSystemFontValue(); - NS_HIDDEN_(void) SetDummyValue(); - NS_HIDDEN_(void) SetDummyInheritValue(); - NS_HIDDEN_(void) StartImageLoad(nsIDocument* aDocument) - const; // Not really const, but pretending + void SetIntValue(PRInt32 aValue, nsCSSUnit aUnit); + void SetPercentValue(float aValue); + void SetFloatValue(float aValue, nsCSSUnit aUnit); + void SetStringValue(const nsString& aValue, nsCSSUnit aUnit); + void SetColorValue(nscolor aValue); + void SetArrayValue(nsCSSValue::Array* aArray, nsCSSUnit aUnit); + void SetURLValue(nsCSSValue::URL* aURI); + void SetImageValue(nsCSSValue::Image* aImage); + void SetGradientValue(nsCSSValueGradient* aGradient); + void SetAutoValue(); + void SetInheritValue(); + void SetInitialValue(); + void SetNoneValue(); + void SetAllValue(); + void SetNormalValue(); + void SetSystemFontValue(); + void SetDummyValue(); + void SetDummyInheritValue(); + void StartImageLoad(nsIDocument* aDocument) const; // Only pretend const // Initializes as a function value with the specified function id. - NS_HIDDEN_(Array*) InitFunction(nsCSSKeyword aFunctionId, PRUint32 aNumArgs); + Array* InitFunction(nsCSSKeyword aFunctionId, PRUint32 aNumArgs); // Checks if this is a function value with the specified function id. - NS_HIDDEN_(PRBool) EqualsFunction(nsCSSKeyword aFunctionId) const; + PRBool EqualsFunction(nsCSSKeyword aFunctionId) const; // Returns an already addrefed buffer. Can return null on allocation // failure. @@ -361,17 +360,17 @@ public: // aString must not be null. // aOriginPrincipal must not be null. URL(nsIURI* aURI, nsStringBuffer* aString, nsIURI* aReferrer, - nsIPrincipal* aOriginPrincipal) NS_HIDDEN; + nsIPrincipal* aOriginPrincipal); - ~URL() NS_HIDDEN; + ~URL(); - NS_HIDDEN_(PRBool) operator==(const URL& aOther) const; + PRBool operator==(const URL& aOther) const; // URIEquals only compares URIs and principals (unlike operator==, which // also compares the original strings). URIEquals also assumes that the // mURI member of both URL objects is non-null. Do NOT call this method // unless you're sure this is the case. - NS_HIDDEN_(PRBool) URIEquals(const URL& aOther) const; + PRBool URIEquals(const URL& aOther) const; nsCOMPtr mURI; // null == invalid URL nsStringBuffer* mString; // Could use nsRefPtr, but it'd add useless @@ -394,8 +393,8 @@ public: // this header is included all over. // aString must not be null. Image(nsIURI* aURI, nsStringBuffer* aString, nsIURI* aReferrer, - nsIPrincipal* aOriginPrincipal, nsIDocument* aDocument) NS_HIDDEN; - ~Image() NS_HIDDEN; + nsIPrincipal* aOriginPrincipal, nsIDocument* aDocument); + ~Image(); // Inherit operator== from nsCSSValue::URL @@ -429,10 +428,10 @@ protected: struct nsCSSValueGradientStop { public: - nsCSSValueGradientStop() NS_HIDDEN; + nsCSSValueGradientStop(); // needed to keep bloat logs happy when we use the nsTArray in nsCSSValueGradient - nsCSSValueGradientStop(const nsCSSValueGradientStop& aOther) NS_HIDDEN; - ~nsCSSValueGradientStop() NS_HIDDEN; + nsCSSValueGradientStop(const nsCSSValueGradientStop& aOther); + ~nsCSSValueGradientStop(); nsCSSValue mLocation; nsCSSValue mColor; @@ -450,8 +449,7 @@ public: }; struct nsCSSValueGradient { - nsCSSValueGradient(PRBool aIsRadial, - PRBool aIsRepeating) NS_HIDDEN; + nsCSSValueGradient(PRBool aIsRadial, PRBool aIsRepeating); // true if gradient is radial, false if it is linear PRPackedBool mIsRadial; diff --git a/layout/style/nsICSSStyleSheet.h b/layout/style/nsICSSStyleSheet.h index 32a33d5761e..0793fb9503e 100644 --- a/layout/style/nsICSSStyleSheet.h +++ b/layout/style/nsICSSStyleSheet.h @@ -93,10 +93,10 @@ public: * This can only be called once with a non-null principal. Calling this with * a null pointer is allowed and is treated as a no-op. */ - virtual NS_HIDDEN_(void) SetPrincipal(nsIPrincipal* aPrincipal) = 0; + virtual void SetPrincipal(nsIPrincipal* aPrincipal) = 0; // Principal() never returns a null pointer. - virtual NS_HIDDEN_(nsIPrincipal*) Principal() const = 0; + virtual nsIPrincipal* Principal() const = 0; NS_IMETHOD SetTitle(const nsAString& aTitle) = 0; NS_IMETHOD SetMedia(nsMediaList* aMedia) = 0; @@ -106,7 +106,7 @@ public: NS_IMETHOD GetOwnerRule(nsICSSImportRule** aOwnerRule) = 0; // get namespace map for sheet - virtual NS_HIDDEN_(nsXMLNameSpaceMap*) GetNameSpaceMap() const = 0; + virtual nsXMLNameSpaceMap* GetNameSpaceMap() const = 0; NS_IMETHOD Clone(nsICSSStyleSheet* aCloneParent, nsICSSImportRule* aCloneOwnerRule, diff --git a/layout/style/nsRuleNode.h b/layout/style/nsRuleNode.h index 8c41298b2ed..4ea97d7ef9a 100644 --- a/layout/style/nsRuleNode.h +++ b/layout/style/nsRuleNode.h @@ -172,7 +172,7 @@ struct nsCachedStyleData return 1 << aSID; } - NS_HIDDEN_(void*) NS_FASTCALL GetStyleData(const nsStyleStructID& aSID) { + void* NS_FASTCALL GetStyleData(const nsStyleStructID& aSID) { // Each struct is stored at this.m##type##Data->m##name##Data where // |type| is either Inherit or Reset, and |name| is the name of the // style struct. The |gInfo| stores the offset of the appropriate @@ -205,18 +205,18 @@ struct nsCachedStyleData // Typesafe and faster versions of the above #define STYLE_STRUCT_INHERITED(name_, checkdata_cb_, ctor_args_) \ - NS_HIDDEN_(nsStyle##name_ *) NS_FASTCALL GetStyle##name_ () { \ + nsStyle##name_ * NS_FASTCALL GetStyle##name_ () { \ return mInheritedData ? mInheritedData->m##name_##Data : nsnull; \ } #define STYLE_STRUCT_RESET(name_, checkdata_cb_, ctor_args_) \ - NS_HIDDEN_(nsStyle##name_ *) NS_FASTCALL GetStyle##name_ () { \ + nsStyle##name_ * NS_FASTCALL GetStyle##name_ () { \ return mResetData ? mResetData->m##name_##Data : nsnull; \ } #include "nsStyleStructList.h" #undef STYLE_STRUCT_RESET #undef STYLE_STRUCT_INHERITED - NS_HIDDEN_(void) Destroy(PRUint32 aBits, nsPresContext* aContext) { + void Destroy(PRUint32 aBits, nsPresContext* aContext) { if (mResetData) mResetData->Destroy(aBits, aContext); if (mInheritedData) @@ -431,149 +431,148 @@ private: public: // Overloaded new operator. Initializes the memory to 0 and relies on an arena // (which comes from the presShell) to perform the allocation. - NS_HIDDEN_(void*) operator new(size_t sz, nsPresContext* aContext) CPP_THROW_NEW; - NS_HIDDEN_(void) Destroy() { DestroyInternal(nsnull); } - static NS_HIDDEN_(nsILanguageAtomService*) gLangService; + void* operator new(size_t sz, nsPresContext* aContext) CPP_THROW_NEW; + void Destroy() { DestroyInternal(nsnull); } + static nsILanguageAtomService* gLangService; // Implemented in nsStyleSet.h, since it needs to know about nsStyleSet. - inline NS_HIDDEN_(void) AddRef(); + inline void AddRef(); // Implemented in nsStyleSet.h, since it needs to know about nsStyleSet. - inline NS_HIDDEN_(void) Release(); + inline void Release(); protected: - NS_HIDDEN_(void) DestroyInternal(nsRuleNode ***aDestroyQueueTail); - NS_HIDDEN_(void) PropagateDependentBit(PRUint32 aBit, - nsRuleNode* aHighestNode); - NS_HIDDEN_(void) PropagateNoneBit(PRUint32 aBit, nsRuleNode* aHighestNode); + void DestroyInternal(nsRuleNode ***aDestroyQueueTail); + void PropagateDependentBit(PRUint32 aBit, nsRuleNode* aHighestNode); + void PropagateNoneBit(PRUint32 aBit, nsRuleNode* aHighestNode); - NS_HIDDEN_(const void*) SetDefaultOnRoot(const nsStyleStructID aSID, - nsStyleContext* aContext); + const void* SetDefaultOnRoot(const nsStyleStructID aSID, + nsStyleContext* aContext); - NS_HIDDEN_(const void*) + const void* WalkRuleTree(const nsStyleStructID aSID, nsStyleContext* aContext, nsRuleData* aRuleData, nsRuleDataStruct* aSpecificData); - NS_HIDDEN_(const void*) + const void* ComputeDisplayData(void* aStartStruct, const nsRuleDataStruct& aData, nsStyleContext* aContext, nsRuleNode* aHighestNode, RuleDetail aRuleDetail, const PRBool aCanStoreInRuleTree); - NS_HIDDEN_(const void*) + const void* ComputeVisibilityData(void* aStartStruct, const nsRuleDataStruct& aData, nsStyleContext* aContext, nsRuleNode* aHighestNode, RuleDetail aRuleDetail, const PRBool aCanStoreInRuleTree); - NS_HIDDEN_(const void*) + const void* ComputeFontData(void* aStartStruct, const nsRuleDataStruct& aData, nsStyleContext* aContext, nsRuleNode* aHighestNode, RuleDetail aRuleDetail, const PRBool aCanStoreInRuleTree); - NS_HIDDEN_(const void*) + const void* ComputeColorData(void* aStartStruct, const nsRuleDataStruct& aData, nsStyleContext* aContext, nsRuleNode* aHighestNode, RuleDetail aRuleDetail, const PRBool aCanStoreInRuleTree); - NS_HIDDEN_(const void*) + const void* ComputeBackgroundData(void* aStartStruct, const nsRuleDataStruct& aData, nsStyleContext* aContext, nsRuleNode* aHighestNode, RuleDetail aRuleDetail, const PRBool aCanStoreInRuleTree); - NS_HIDDEN_(const void*) + const void* ComputeMarginData(void* aStartStruct, const nsRuleDataStruct& aData, nsStyleContext* aContext, nsRuleNode* aHighestNode, RuleDetail aRuleDetail, const PRBool aCanStoreInRuleTree); - NS_HIDDEN_(const void*) + const void* ComputeBorderData(void* aStartStruct, const nsRuleDataStruct& aData, nsStyleContext* aContext, nsRuleNode* aHighestNode, RuleDetail aRuleDetail, const PRBool aCanStoreInRuleTree); - NS_HIDDEN_(const void*) + const void* ComputePaddingData(void* aStartStruct, const nsRuleDataStruct& aData, nsStyleContext* aContext, nsRuleNode* aHighestNode, RuleDetail aRuleDetail, const PRBool aCanStoreInRuleTree); - NS_HIDDEN_(const void*) + const void* ComputeOutlineData(void* aStartStruct, const nsRuleDataStruct& aData, nsStyleContext* aContext, nsRuleNode* aHighestNode, RuleDetail aRuleDetail, const PRBool aCanStoreInRuleTree); - NS_HIDDEN_(const void*) + const void* ComputeListData(void* aStartStruct, const nsRuleDataStruct& aData, nsStyleContext* aContext, nsRuleNode* aHighestNode, RuleDetail aRuleDetail, const PRBool aCanStoreInRuleTree); - NS_HIDDEN_(const void*) + const void* ComputePositionData(void* aStartStruct, const nsRuleDataStruct& aData, nsStyleContext* aContext, nsRuleNode* aHighestNode, RuleDetail aRuleDetail, const PRBool aCanStoreInRuleTree); - NS_HIDDEN_(const void*) + const void* ComputeTableData(void* aStartStruct, const nsRuleDataStruct& aData, nsStyleContext* aContext, nsRuleNode* aHighestNode, RuleDetail aRuleDetail, const PRBool aCanStoreInRuleTree); - NS_HIDDEN_(const void*) + const void* ComputeTableBorderData(void* aStartStruct, const nsRuleDataStruct& aData, nsStyleContext* aContext, nsRuleNode* aHighestNode, RuleDetail aRuleDetail, const PRBool aCanStoreInRuleTree); - NS_HIDDEN_(const void*) + const void* ComputeContentData(void* aStartStruct, const nsRuleDataStruct& aData, nsStyleContext* aContext, nsRuleNode* aHighestNode, RuleDetail aRuleDetail, const PRBool aCanStoreInRuleTree); - NS_HIDDEN_(const void*) + const void* ComputeQuotesData(void* aStartStruct, const nsRuleDataStruct& aData, nsStyleContext* aContext, nsRuleNode* aHighestNode, RuleDetail aRuleDetail, const PRBool aCanStoreInRuleTree); - NS_HIDDEN_(const void*) + const void* ComputeTextData(void* aStartStruct, const nsRuleDataStruct& aData, nsStyleContext* aContext, nsRuleNode* aHighestNode, RuleDetail aRuleDetail, const PRBool aCanStoreInRuleTree); - NS_HIDDEN_(const void*) + const void* ComputeTextResetData(void* aStartStruct, const nsRuleDataStruct& aData, nsStyleContext* aContext, nsRuleNode* aHighestNode, RuleDetail aRuleDetail, const PRBool aCanStoreInRuleTree); - NS_HIDDEN_(const void*) + const void* ComputeUserInterfaceData(void* aStartStruct, const nsRuleDataStruct& aData, nsStyleContext* aContext, @@ -581,35 +580,35 @@ protected: RuleDetail aRuleDetail, const PRBool aCanStoreInRuleTree); - NS_HIDDEN_(const void*) + const void* ComputeUIResetData(void* aStartStruct, const nsRuleDataStruct& aData, nsStyleContext* aContext, nsRuleNode* aHighestNode, RuleDetail aRuleDetail, const PRBool aCanStoreInRuleTree); - NS_HIDDEN_(const void*) + const void* ComputeXULData(void* aStartStruct, const nsRuleDataStruct& aData, nsStyleContext* aContext, nsRuleNode* aHighestNode, RuleDetail aRuleDetail, const PRBool aCanStoreInRuleTree); - NS_HIDDEN_(const void*) + const void* ComputeColumnData(void* aStartStruct, const nsRuleDataStruct& aData, nsStyleContext* aContext, nsRuleNode* aHighestNode, RuleDetail aRuleDetail, const PRBool aCanStoreInRuleTree); - NS_HIDDEN_(const void*) + const void* ComputeSVGData(void* aStartStruct, const nsRuleDataStruct& aData, nsStyleContext* aContext, nsRuleNode* aHighestNode, RuleDetail aRuleDetail, const PRBool aCanStoreInRuleTree); - NS_HIDDEN_(const void*) + const void* ComputeSVGResetData(void* aStartStruct, const nsRuleDataStruct& aData, nsStyleContext* aContext, nsRuleNode* aHighestNode, @@ -617,95 +616,94 @@ protected: const PRBool aCanStoreInRuleTree); // helpers for |ComputeFontData| that need access to |mNoneBits|: - static NS_HIDDEN_(void) SetFontSize(nsPresContext* aPresContext, - const nsRuleDataFont& aFontData, - const nsStyleFont* aFont, - const nsStyleFont* aParentFont, - nscoord* aSize, - const nsFont& aSystemFont, - nscoord aParentSize, - nscoord aScriptLevelAdjustedParentSize, - PRBool aUsedStartStruct, - PRBool aAtRoot, - PRBool& aCanStoreInRuleTree); + static void SetFontSize(nsPresContext* aPresContext, + const nsRuleDataFont& aFontData, + const nsStyleFont* aFont, + const nsStyleFont* aParentFont, + nscoord* aSize, + const nsFont& aSystemFont, + nscoord aParentSize, + nscoord aScriptLevelAdjustedParentSize, + PRBool aUsedStartStruct, + PRBool aAtRoot, + PRBool& aCanStoreInRuleTree); - static NS_HIDDEN_(void) SetFont(nsPresContext* aPresContext, - nsStyleContext* aContext, - nscoord aMinFontSize, - PRUint8 aGenericFontID, - const nsRuleDataFont& aFontData, - const nsStyleFont* aParentFont, - nsStyleFont* aFont, - PRBool aStartStruct, - PRBool& aCanStoreInRuleTree); + static void SetFont(nsPresContext* aPresContext, + nsStyleContext* aContext, + nscoord aMinFontSize, + PRUint8 aGenericFontID, + const nsRuleDataFont& aFontData, + const nsStyleFont* aParentFont, + nsStyleFont* aFont, + PRBool aStartStruct, + PRBool& aCanStoreInRuleTree); - static NS_HIDDEN_(void) SetGenericFont(nsPresContext* aPresContext, - nsStyleContext* aContext, - PRUint8 aGenericFontID, - nscoord aMinFontSize, - nsStyleFont* aFont); + static void SetGenericFont(nsPresContext* aPresContext, + nsStyleContext* aContext, + PRUint8 aGenericFontID, + nscoord aMinFontSize, + nsStyleFont* aFont); - NS_HIDDEN_(void) AdjustLogicalBoxProp(nsStyleContext* aContext, - const nsCSSValue& aLTRSource, - const nsCSSValue& aRTLSource, - const nsCSSValue& aLTRLogicalValue, - const nsCSSValue& aRTLLogicalValue, - PRUint8 aSide, - nsCSSRect& aValueRect, - PRBool& aCanStoreInRuleTree); + void AdjustLogicalBoxProp(nsStyleContext* aContext, + const nsCSSValue& aLTRSource, + const nsCSSValue& aRTLSource, + const nsCSSValue& aLTRLogicalValue, + const nsCSSValue& aRTLLogicalValue, + PRUint8 aSide, + nsCSSRect& aValueRect, + PRBool& aCanStoreInRuleTree); inline RuleDetail CheckSpecifiedProperties(const nsStyleStructID aSID, const nsRuleDataStruct& aRuleDataStruct); - NS_HIDDEN_(const void*) GetParentData(const nsStyleStructID aSID); + const void* GetParentData(const nsStyleStructID aSID); #define STYLE_STRUCT(name_, checkdata_cb_, ctor_args_) \ - NS_HIDDEN_(const nsStyle##name_*) GetParent##name_(); + const nsStyle##name_* GetParent##name_(); #include "nsStyleStructList.h" #undef STYLE_STRUCT - NS_HIDDEN_(const void*) GetDisplayData(nsStyleContext* aContext); - NS_HIDDEN_(const void*) GetVisibilityData(nsStyleContext* aContext); - NS_HIDDEN_(const void*) GetFontData(nsStyleContext* aContext); - NS_HIDDEN_(const void*) GetColorData(nsStyleContext* aContext); - NS_HIDDEN_(const void*) GetBackgroundData(nsStyleContext* aContext); - NS_HIDDEN_(const void*) GetMarginData(nsStyleContext* aContext); - NS_HIDDEN_(const void*) GetBorderData(nsStyleContext* aContext); - NS_HIDDEN_(const void*) GetPaddingData(nsStyleContext* aContext); - NS_HIDDEN_(const void*) GetOutlineData(nsStyleContext* aContext); - NS_HIDDEN_(const void*) GetListData(nsStyleContext* aContext); - NS_HIDDEN_(const void*) GetPositionData(nsStyleContext* aContext); - NS_HIDDEN_(const void*) GetTableData(nsStyleContext* aContext); - NS_HIDDEN_(const void*) GetTableBorderData(nsStyleContext* aContext); + const void* GetDisplayData(nsStyleContext* aContext); + const void* GetVisibilityData(nsStyleContext* aContext); + const void* GetFontData(nsStyleContext* aContext); + const void* GetColorData(nsStyleContext* aContext); + const void* GetBackgroundData(nsStyleContext* aContext); + const void* GetMarginData(nsStyleContext* aContext); + const void* GetBorderData(nsStyleContext* aContext); + const void* GetPaddingData(nsStyleContext* aContext); + const void* GetOutlineData(nsStyleContext* aContext); + const void* GetListData(nsStyleContext* aContext); + const void* GetPositionData(nsStyleContext* aContext); + const void* GetTableData(nsStyleContext* aContext); + const void* GetTableBorderData(nsStyleContext* aContext); - NS_HIDDEN_(const void*) GetContentData(nsStyleContext* aContext); - NS_HIDDEN_(const void*) GetQuotesData(nsStyleContext* aContext); - NS_HIDDEN_(const void*) GetTextData(nsStyleContext* aContext); - NS_HIDDEN_(const void*) GetTextResetData(nsStyleContext* aContext); - NS_HIDDEN_(const void*) GetUserInterfaceData(nsStyleContext* aContext); + const void* GetContentData(nsStyleContext* aContext); + const void* GetQuotesData(nsStyleContext* aContext); + const void* GetTextData(nsStyleContext* aContext); + const void* GetTextResetData(nsStyleContext* aContext); + const void* GetUserInterfaceData(nsStyleContext* aContext); - NS_HIDDEN_(const void*) GetUIResetData(nsStyleContext* aContext); - NS_HIDDEN_(const void*) GetXULData(nsStyleContext* aContext); - NS_HIDDEN_(const void*) GetColumnData(nsStyleContext* aContext); - NS_HIDDEN_(const void*) GetSVGData(nsStyleContext* aContext); - NS_HIDDEN_(const void*) GetSVGResetData(nsStyleContext* aContext); + const void* GetUIResetData(nsStyleContext* aContext); + const void* GetXULData(nsStyleContext* aContext); + const void* GetColumnData(nsStyleContext* aContext); + const void* GetSVGData(nsStyleContext* aContext); + const void* GetSVGResetData(nsStyleContext* aContext); - NS_HIDDEN_(already_AddRefed) - GetShadowData(nsCSSValueList* aList, - nsStyleContext* aContext, - PRBool aIsBoxShadow, - PRBool& inherited); + already_AddRefed + GetShadowData(nsCSSValueList* aList, + nsStyleContext* aContext, + PRBool aIsBoxShadow, + PRBool& inherited); private: nsRuleNode(nsPresContext* aPresContext, nsRuleNode* aParent, - nsIStyleRule* aRule, PRUint8 aLevel, PRBool aIsImportant) - NS_HIDDEN; - ~nsRuleNode() NS_HIDDEN; + nsIStyleRule* aRule, PRUint8 aLevel, PRBool aIsImportant); + ~nsRuleNode(); public: - static NS_HIDDEN_(nsRuleNode*) CreateRootNode(nsPresContext* aPresContext); + static nsRuleNode* CreateRootNode(nsPresContext* aPresContext); // Transition never returns null; on out of memory it'll just return |this|. - NS_HIDDEN_(nsRuleNode*) Transition(nsIStyleRule* aRule, PRUint8 aLevel, - PRPackedBool aIsImportantRule); + nsRuleNode* Transition(nsIStyleRule* aRule, PRUint8 aLevel, + PRPackedBool aIsImportantRule); nsRuleNode* GetParent() const { return mParent; } PRBool IsRoot() const { return mParent == nsnull; } @@ -725,14 +723,13 @@ public: // NOTE: Does not |AddRef|. nsPresContext* GetPresContext() const { return mPresContext; } - NS_HIDDEN_(const void*) GetStyleData(nsStyleStructID aSID, - nsStyleContext* aContext, - PRBool aComputeData); + const void* GetStyleData(nsStyleStructID aSID, + nsStyleContext* aContext, + PRBool aComputeData); #define STYLE_STRUCT(name_, checkdata_cb_, ctor_args_) \ - NS_HIDDEN_(const nsStyle##name_*) \ - GetStyle##name_(nsStyleContext* aContext, \ - PRBool aComputeData); + const nsStyle##name_* GetStyle##name_(nsStyleContext* aContext, \ + PRBool aComputeData); #include "nsStyleStructList.h" #undef STYLE_STRUCT @@ -742,8 +739,8 @@ public: * the children, destroys any that are unmarked, and clears marks, * returning true if the node on which it was called was destroyed. */ - NS_HIDDEN_(void) Mark(); - NS_HIDDEN_(PRBool) Sweep(); + void Mark(); + PRBool Sweep(); static PRBool HasAuthorSpecifiedRules(nsStyleContext* aStyleContext, diff --git a/layout/style/nsStyleContext.cpp b/layout/style/nsStyleContext.cpp index daa85784728..4027ccc0401 100644 --- a/layout/style/nsStyleContext.cpp +++ b/layout/style/nsStyleContext.cpp @@ -753,6 +753,14 @@ nsStyleContext::GetVisitedDependentColor(nsCSSProperty aProperty) /* static */ nscolor nsStyleContext::CombineVisitedColors(nscolor *aColors, PRBool aLinkIsVisited) { + if (NS_GET_A(aColors[1]) == 0) { + // If the style-if-visited is transparent, then just use the + // unvisited style rather than using the (meaningless) color + // components of the visited style along with a potentially + // non-transparent alpha value. + aLinkIsVisited = PR_FALSE; + } + // NOTE: We want this code to have as little timing dependence as // possible on whether this->RelevantLinkVisited() is true. const ColorIndexSet &set = diff --git a/layout/style/nsStyleContext.h b/layout/style/nsStyleContext.h index 625ed15470c..d487c78805e 100644 --- a/layout/style/nsStyleContext.h +++ b/layout/style/nsStyleContext.h @@ -75,11 +75,11 @@ class nsStyleContext public: nsStyleContext(nsStyleContext* aParent, nsIAtom* aPseudoTag, nsCSSPseudoElements::Type aPseudoType, - nsRuleNode* aRuleNode, nsPresContext* aPresContext) NS_HIDDEN; - ~nsStyleContext() NS_HIDDEN; + nsRuleNode* aRuleNode, nsPresContext* aPresContext); + ~nsStyleContext(); - NS_HIDDEN_(void*) operator new(size_t sz, nsPresContext* aPresContext) CPP_THROW_NEW; - NS_HIDDEN_(void) Destroy(); + void* operator new(size_t sz, nsPresContext* aPresContext) CPP_THROW_NEW; + void Destroy(); nsrefcnt AddRef() { if (mRefCnt == PR_UINT32_MAX) { @@ -122,7 +122,7 @@ public: // * !GetStyleIfVisited() == !aRulesIfVisited, and, if they're // non-null, GetStyleIfVisited()->GetRuleNode() == aRulesIfVisited // * RelevantLinkVisited() == aRelevantLinkVisited - NS_HIDDEN_(already_AddRefed) + already_AddRefed FindChildWithRules(const nsIAtom* aPseudoTag, nsRuleNode* aRules, nsRuleNode* aRulesIfVisited, PRBool aRelevantLinkVisited); @@ -197,7 +197,7 @@ public: } // Tell this style context to cache aStruct as the struct for aSID - NS_HIDDEN_(void) SetStyle(nsStyleStructID aSID, void* aStruct); + void SetStyle(nsStyleStructID aSID, void* aStruct); // Setters for inherit structs only, since rulenode only sets those eagerly. #define STYLE_STRUCT_INHERITED(name_, checkdata_cb_, ctor_args_) \ @@ -220,7 +220,7 @@ public: * Mark this style context's rule node (and its ancestors) to prevent * it from being garbage collected. */ - NS_HIDDEN_(void) Mark(); + void Mark(); /* * Get the style data for a style struct. This is the most important @@ -238,7 +238,7 @@ public: * function, bothe because they're easier to read and because they're * faster. */ - NS_HIDDEN_(const void*) NS_FASTCALL GetStyleData(nsStyleStructID aSID); + const void* NS_FASTCALL GetStyleData(nsStyleStructID aSID); /** * Define typesafe getter functions for each style struct by @@ -268,9 +268,9 @@ public: #include "nsStyleStructList.h" #undef STYLE_STRUCT - NS_HIDDEN_(void*) GetUniqueStyleData(const nsStyleStructID& aSID); + void* GetUniqueStyleData(const nsStyleStructID& aSID); - NS_HIDDEN_(nsChangeHint) CalcStyleDifference(nsStyleContext* aOther); + nsChangeHint CalcStyleDifference(nsStyleContext* aOther); /** * Get a color that depends on link-visitedness using this and @@ -283,7 +283,7 @@ public: * Note that if aProperty is eCSSProperty_border_*_color, this * function handles -moz-use-text-color. */ - NS_HIDDEN_(nscolor) GetVisitedDependentColor(nsCSSProperty aProperty); + nscolor GetVisitedDependentColor(nsCSSProperty aProperty); /** * aColors should be a two element array of nscolor in which the first @@ -296,14 +296,14 @@ public: PRBool aLinkIsVisited); #ifdef DEBUG - NS_HIDDEN_(void) List(FILE* out, PRInt32 aIndent); + void List(FILE* out, PRInt32 aIndent); #endif protected: - NS_HIDDEN_(void) AddChild(nsStyleContext* aChild); - NS_HIDDEN_(void) RemoveChild(nsStyleContext* aChild); + void AddChild(nsStyleContext* aChild); + void RemoveChild(nsStyleContext* aChild); - NS_HIDDEN_(void) ApplyStyleFixups(nsPresContext* aPresContext); + void ApplyStyleFixups(nsPresContext* aPresContext); // Helper function that GetStyleData and GetUniqueStyleData use. Only // returns the structs we cache ourselves; never consults the ruletree. @@ -378,7 +378,7 @@ protected: PRUint32 mRefCnt; }; -NS_HIDDEN_(already_AddRefed) +already_AddRefed NS_NewStyleContext(nsStyleContext* aParentContext, nsIAtom* aPseudoTag, nsCSSPseudoElements::Type aPseudoType, diff --git a/layout/style/nsStyleSet.h b/layout/style/nsStyleSet.h index ac3f1e50f84..a9c27ae72a0 100644 --- a/layout/style/nsStyleSet.h +++ b/layout/style/nsStyleSet.h @@ -389,7 +389,7 @@ class nsStyleSet }; inline -NS_HIDDEN_(void) nsRuleNode::AddRef() +void nsRuleNode::AddRef() { if (mRefCnt++ == 0 && !IsRoot()) { mPresContext->StyleSet()->RuleNodeInUse(); @@ -397,7 +397,7 @@ NS_HIDDEN_(void) nsRuleNode::AddRef() } inline -NS_HIDDEN_(void) nsRuleNode::Release() +void nsRuleNode::Release() { if (--mRefCnt == 0 && !IsRoot()) { mPresContext->StyleSet()->RuleNodeUnused(); diff --git a/layout/style/nsTransitionManager.cpp b/layout/style/nsTransitionManager.cpp index 52533b5e77e..1ec2dd34406 100644 --- a/layout/style/nsTransitionManager.cpp +++ b/layout/style/nsTransitionManager.cpp @@ -144,8 +144,7 @@ public: NS_IMETHOD List(FILE* out = stdout, PRInt32 aIndent = 0) const; #endif - NS_HIDDEN_(void) CoverValue(nsCSSProperty aProperty, - nsStyleAnimation::Value &aStartValue) + void CoverValue(nsCSSProperty aProperty, nsStyleAnimation::Value &aStartValue) { CoveredValue v = { aProperty, aStartValue }; mCoveredValues.AppendElement(v); diff --git a/layout/style/test/test_priority_preservation.html b/layout/style/test/test_priority_preservation.html index 406519ae0ce..37bc2ad86dd 100644 --- a/layout/style/test/test_priority_preservation.html +++ b/layout/style/test/test_priority_preservation.html @@ -34,10 +34,10 @@ is(s.getPropertyValue("z-index"), "7", is(s.getPropertyPriority("z-index"), "important", "z-index priority stored"); s.setProperty("z-index", "3", ""); -is(s.getPropertyValue("z-index"), "7", - "z-index not overridden by setting non-important"); -is(s.getPropertyPriority("z-index"), "important", - "z-index priority not overridden by setting non-important"); +is(s.getPropertyValue("z-index"), "3", + "z-index overridden by setting non-important"); +is(s.getPropertyPriority("z-index"), "", + "z-index priority overridden by setting non-important"); is(s.getPropertyValue("text-decoration"), "underline", "text-decoration still stored"); is(s.getPropertyPriority("text-decoration"), "", @@ -47,21 +47,74 @@ is(s.getPropertyValue("text-decoration"), "overline", "text-decoration stored"); is(s.getPropertyPriority("text-decoration"), "", "text-decoration priority stored"); -is(s.getPropertyValue("z-index"), "7", +is(s.getPropertyValue("z-index"), "3", "z-index still stored"); -is(s.getPropertyPriority("z-index"), "important", +is(s.getPropertyPriority("z-index"), "", "z-index priority still stored"); s.setProperty("text-decoration", "line-through", "important"); is(s.getPropertyValue("text-decoration"), "line-through", "text-decoration stored at new priority"); is(s.getPropertyPriority("text-decoration"), "important", "text-decoration priority overridden"); -is(s.getPropertyValue("z-index"), "7", +is(s.getPropertyValue("z-index"), "3", "z-index still stored"); -is(s.getPropertyPriority("z-index"), "important", +is(s.getPropertyPriority("z-index"), "", "z-index priority still stored"); + // also test setting a shorthand +s.setProperty("font", "italic bold 12px/30px serif", "important"); +is(s.getPropertyValue("font-style"), "italic", "font-style stored"); +is(s.getPropertyPriority("font-style"), "important", + "font-style priority stored"); +is(s.getPropertyValue("font-weight"), "bold", "font-weight stored"); +is(s.getPropertyPriority("font-weight"), "important", + "font-weight priority stored"); +is(s.getPropertyValue("font-size"), "12px", "font-size stored"); +is(s.getPropertyPriority("font-size"), "important", + "font-size priority stored"); +is(s.getPropertyValue("line-height"), "30px", "line-height stored"); +is(s.getPropertyPriority("line-height"), "important", + "line-height priority stored"); +is(s.getPropertyValue("font-family"), "serif", "font-family stored"); +is(s.getPropertyPriority("font-family"), "important", + "font-family priority stored"); +is(s.getPropertyValue("text-decoration"), "line-through", + "text-decoration still stored"); +is(s.getPropertyPriority("text-decoration"), "important", + "text-decoration priority still stored"); +is(s.getPropertyValue("z-index"), "3", + "z-index still stored"); +is(s.getPropertyPriority("z-index"), "", + "z-index priority still stored"); + + // and overriding one element of that shorthand with some longhand +s.setProperty("font-style", "normal", ""); + +is(s.getPropertyValue("font-style"), "normal", "font-style overridden"); +is(s.getPropertyPriority("font-style"), "", "font-style priority overridden"); + +is(s.getPropertyValue("font-weight"), "bold", "font-weight unchanged"); +is(s.getPropertyPriority("font-weight"), "important", + "font-weight priority unchanged"); +is(s.getPropertyValue("font-size"), "12px", "font-size unchanged"); +is(s.getPropertyPriority("font-size"), "important", + "font-size priority unchanged"); +is(s.getPropertyValue("line-height"), "30px", "line-height unchanged"); +is(s.getPropertyPriority("line-height"), "important", + "line-height priority unchanged"); +is(s.getPropertyValue("font-family"), "serif", "font-family unchanged"); +is(s.getPropertyPriority("font-family"), "important", + "font-family priority unchanged"); + +is(s.getPropertyValue("text-decoration"), "line-through", + "text-decoration still stored"); +is(s.getPropertyPriority("text-decoration"), "important", + "text-decoration priority still stored"); +is(s.getPropertyValue("z-index"), "3", + "z-index still stored"); +is(s.getPropertyPriority("z-index"), "", + "z-index priority still stored"); diff --git a/layout/style/test/test_visited_reftests.html b/layout/style/test/test_visited_reftests.html index 1fa3a6d19d6..88ca1975777 100644 --- a/layout/style/test/test_visited_reftests.html +++ b/layout/style/test/test_visited_reftests.html @@ -77,6 +77,7 @@ var gTests = [ // FIXME: commented out because dynamic changes on the non-first-line // part of the test don't work right when the link becomes visited. //"== first-line-1.html first-line-1-ref.html", + "== white-to-transparent-1.html white-to-transparent-1-ref.html", ]; // Maintain a reference count of how many things we're waiting for until diff --git a/uriloader/exthandler/mac/nsOSHelperAppService.mm b/uriloader/exthandler/mac/nsOSHelperAppService.mm index 58b5b1c98d5..bf12be86cdf 100644 --- a/uriloader/exthandler/mac/nsOSHelperAppService.mm +++ b/uriloader/exthandler/mac/nsOSHelperAppService.mm @@ -100,26 +100,34 @@ nsOSHelperAppService::~nsOSHelperAppService() nsresult nsOSHelperAppService::OSProtocolHandlerExists(const char * aProtocolScheme, PRBool * aHandlerExists) { + // CFStringCreateWithBytes() can fail even if we're not out of memory -- + // for example if the 'bytes' parameter is something very wierd (like "ÿÿ~" + // aka "\xFF\xFF~"), or possibly if it can't be interpreted as using what's + // specified in the 'encoding' parameter. See bug 548719. CFStringRef schemeString = ::CFStringCreateWithBytes(kCFAllocatorDefault, (const UInt8*)aProtocolScheme, strlen(aProtocolScheme), kCFStringEncodingUTF8, false); - // LSCopyDefaultHandlerForURLScheme() can fail to find the default handler - // for aProtocolScheme when it's never been explicitly set (using - // LSSetDefaultHandlerForURLScheme()). For example, Safari is the default - // handler for the "http" scheme on a newly installed copy of OS X. But - // this (presumably) wasn't done using LSSetDefaultHandlerForURLScheme(), - // so LSCopyDefaultHandlerForURLScheme() will fail to find Safari. To get - // around this we use LSCopyAllHandlersForURLScheme() instead -- which seems - // never to fail. - // http://lists.apple.com/archives/Carbon-dev/2007/May/msg00349.html - // http://www.realsoftware.com/listarchives/realbasic-nug/2008-02/msg00119.html - CFArrayRef handlerArray = ::LSCopyAllHandlersForURLScheme(schemeString); - *aHandlerExists = !!handlerArray; - if (handlerArray) - ::CFRelease(handlerArray); - ::CFRelease(schemeString); + if (schemeString) { + // LSCopyDefaultHandlerForURLScheme() can fail to find the default handler + // for aProtocolScheme when it's never been explicitly set (using + // LSSetDefaultHandlerForURLScheme()). For example, Safari is the default + // handler for the "http" scheme on a newly installed copy of OS X. But + // this (presumably) wasn't done using LSSetDefaultHandlerForURLScheme(), + // so LSCopyDefaultHandlerForURLScheme() will fail to find Safari. To get + // around this we use LSCopyAllHandlersForURLScheme() instead -- which seems + // never to fail. + // http://lists.apple.com/archives/Carbon-dev/2007/May/msg00349.html + // http://www.realsoftware.com/listarchives/realbasic-nug/2008-02/msg00119.html + CFArrayRef handlerArray = ::LSCopyAllHandlersForURLScheme(schemeString); + *aHandlerExists = !!handlerArray; + if (handlerArray) + ::CFRelease(handlerArray); + ::CFRelease(schemeString); + } else { + *aHandlerExists = PR_FALSE; + } return NS_OK; } @@ -270,23 +278,36 @@ nsOSHelperAppService::GetMIMEInfoFromOS(const nsACString& aMIMEType, if (!aMIMEType.IsEmpty()) { CFURLRef appURL = NULL; + // CFStringCreateWithCString() can fail even if we're not out of memory -- + // for example if the 'cStr' parameter is something very wierd (like "ÿÿ~" + // aka "\xFF\xFF~"), or possibly if it can't be interpreted as using what's + // specified in the 'encoding' parameter. See bug 548719. CFStringRef CFType = ::CFStringCreateWithCString(NULL, flatType.get(), kCFStringEncodingUTF8); - err = ::LSCopyApplicationForMIMEType(CFType, kLSRolesAll, &appURL); - if ((err == noErr) && appURL && ::CFURLGetFSRef(appURL, &typeAppFSRef)) { - haveAppForType = PR_TRUE; - PR_LOG(mLog, PR_LOG_DEBUG, ("LSCopyApplicationForMIMEType found a default application\n")); + if (CFType) { + err = ::LSCopyApplicationForMIMEType(CFType, kLSRolesAll, &appURL); + if ((err == noErr) && appURL && ::CFURLGetFSRef(appURL, &typeAppFSRef)) { + haveAppForType = PR_TRUE; + PR_LOG(mLog, PR_LOG_DEBUG, ("LSCopyApplicationForMIMEType found a default application\n")); + } + if (appURL) + ::CFRelease(appURL); + ::CFRelease(CFType); } - if (appURL) - ::CFRelease(appURL); - ::CFRelease(CFType); } if (!aFileExt.IsEmpty()) { + // CFStringCreateWithCString() can fail even if we're not out of memory -- + // for example if the 'cStr' parameter is something very wierd (like "ÿÿ~" + // aka "\xFF\xFF~"), or possibly if it can't be interpreted as using what's + // specified in the 'encoding' parameter. See bug 548719. CFStringRef CFExt = ::CFStringCreateWithCString(NULL, flatExt.get(), kCFStringEncodingUTF8); - err = ::LSGetApplicationForInfo(kLSUnknownType, kLSUnknownCreator, CFExt, - kLSRolesAll, &extAppFSRef, nsnull); - if (err == noErr) { - haveAppForExt = PR_TRUE; - PR_LOG(mLog, PR_LOG_DEBUG, ("LSGetApplicationForInfo found a default application\n")); + if (CFExt) { + err = ::LSGetApplicationForInfo(kLSUnknownType, kLSUnknownCreator, CFExt, + kLSRolesAll, &extAppFSRef, nsnull); + if (err == noErr) { + haveAppForExt = PR_TRUE; + PR_LOG(mLog, PR_LOG_DEBUG, ("LSGetApplicationForInfo found a default application\n")); + } + ::CFRelease(CFExt); } }