Commit Graph

168 Commits

Author SHA1 Message Date
L. David Baron
9e7caa1603 Bug 1075137 patch 4 - Convert callers from IsProcessingRestyles/IsProcessingAnimationStyleChange to SkipAnimationRules/PostAnimationRestyles. r=birtles 2014-10-02 21:53:24 -07:00
L. David Baron
916454e5cd Bug 977991 patch 6 - Use the faster eRestyle_StyleAttribute path for style attribute changes. r=birtles 2014-09-13 06:17:37 -07:00
L. David Baron
9fc7885297 Bug 977991 patch 1 - Expose variant of RulesMatching on nsHTMLCSSStyleSheet that is less work to call. r=birtles
This allows nsStyleSet::RuleNodeWithReplacement to call it without
constructing an entire (and unnecessary) ElementRuleProcessorData, which
will happen in patch 3.
2014-09-13 06:17:36 -07:00
Jonathan Watt
cf11dda286 Bug 1016345 - Add memory reporting for nsHTMLCSSStyleSheet's nsDataHashtable's buffer and the buffers of its nsString keys. r=dbaron 2014-06-22 23:02:05 +01:00
Birunthan Mohanathas
5f1fde8824 Bug 900908 - Part 3: Change uses of numbered macros in nsIClassInfoImpl.h/nsISupportsImpl.h to the variadic variants. r=froydnj 2014-04-27 03:06:00 -04:00
Cameron McCormack
5bbc325e7f Bug 922669 - Part 7: Add nsStyleSet::HasStateDependentStyle and nsCSSRuleProcessor:HasStateDependentStyle overrides that work on pseudo-elements. r=bz 2013-11-28 17:46:39 +11:00
Ehsan Akhgari
35ff0cae16 Bug 938123 - Build layout/style in unified mode; r=roc 2013-11-14 21:42:57 -05:00
Arnaud Bienner
574b47d090 Bug 875275 part 1: Implement layout support for <input type="color">. r=dbaron,dholbert 2013-07-10 00:25:27 +02:00
Ehsan Akhgari
6ada2899b2 Bug 916610 - Minimize the #includes in layout/style; r=roc 2013-09-15 21:06:52 -04:00
Robert O'Callahan
03e7828db2 Bug 910989. Remove nsTHashtable::Init, fallible allocation, and MT hashtables. r=ehsan,bsmedberg
--HG--
extra : rebase_source : 0787130b1814c74bfb38dc178de94022f0b2e64e
2013-09-02 20:41:57 +12:00
Catalin Iacob
6f4758d23e Bug 798914 (part 5) - Use newly introduced mozilla::MallocSizeOf instead of nsMallocSizeOfFun. r=njn.
--HG--
extra : rebase_source : fc472490dd978d165f02f77ed37f07aed6e5bb61
2013-06-23 14:03:39 +02:00
L. David Baron
d8bcb54fbd Bug 882573 patch 4: Make nsHTMLStyleSheet and nsHTMLCSSStyleSheet stop implementing nsIStyleSheet. r=heycam
Note that this removes the Reset method and the mURL and mDocument
members (and arguments to set them) from nsHTMLCSSStyleSheet.

On the other hand, from nsHTMLStyleSheet it only removes mURL (and
equivalent arguments), and nsHTMLStyleSheet keeps the SetOwningDocument
method that was previously part of nsIStyleSheet (but no longer virtual).
2013-06-13 22:34:37 -07:00
Ms2ger
195ed27f94 Bug 868729 - Remove nsHTMLCSSStyleSheet::Init; r=bz 2013-05-05 09:03:20 +02:00
David Zbarsky
3250bd906e [Bug 847110] Fix up includes in layout/style r=dbaron 2013-03-02 19:31:48 -05:00
Kyle Huey
43e58e33c8 Bug 760331: Coalesce data for inline style across nodes. r=bz
This patch enables sharing of an nsAttrValue's MiscContainer between nodes for style rules.  MiscContainers of type eCSSStyleRule are now refcounted (with some clever struct packing to ensure that the amount of memory allocated for MiscContainer remains unchanged on 32 and 64 bit).  This infrastructure can be used to share most MiscContainer types in the future if we find advantages to sharing other types than just eCSSStyleRuley.  A cache mapping strings to MiscContainers has been added to nsHTMLCSSStyleSheet.  MiscContainers can be shared between nsAttrValues when one nsAttrValue is SetTo another nsAttrValue or when there is a cache hit in this cache.  This patch also adds the ability to tell a style rule that it belongs to an nsHTMLCSSStyleSheet, with appropriate accessor functions to separate that from the existing case of belonging to an nsCSSStyleSheet.

The primary use case is to reduce memory use for pages that have lots of inline style attributes with the same value.  This can happen easily with large pages that are automatically generated.  An (admittedly pathological) testcase in Bug 686975 sees over 250 MB of memory savings with this change.  Reusing the same MiscContainer for multiple nodes saves the overhead of maintaining separate copies of the string containing the serialized value of the style attribute and of creating separate style rules for each node.  Eliminating duplicate style rules enables further savings in layout through style context sharing.  The testcase sees the amount of memory used by style contexts go from over 250 MB to 10 KB.

Because the cache is based on the text value of the style attribute, it will not handle attributes that have different text values but are parsed into identical style rules.  We also do not attempt to share MiscContainers when the node's base URI differs from the document URI.  The effect of these limitations is expected to be low.
2012-09-30 09:40:24 -07:00
Randell Jesup
65539ef89c Bug 773151: Convert nsCAutoString->nsAutoCString CLOSED TREE r=bsmedberg 2012-09-01 22:35:17 -04:00
Ehsan Akhgari
e368dc9c85 Bug 579517 - Part 1: Automated conversion of NSPR numeric types to stdint types in Gecko; r=bsmedberg
This patch was generated by a script.  Here's the source of the script for
future reference:

function convert() {
echo "Converting $1 to $2..."
find . ! -wholename "*nsprpub*" \
       ! -wholename "*security/nss*" \
       ! -wholename "*/.hg*" \
       ! -wholename "obj-ff-dbg*" \
       ! -name nsXPCOMCID.h \
       ! -name prtypes.h \
         -type f \
      \( -iname "*.cpp" \
         -o -iname "*.h" \
         -o -iname "*.c" \
         -o -iname "*.cc" \
         -o -iname "*.idl" \
         -o -iname "*.ipdl" \
         -o -iname "*.ipdlh" \
         -o -iname "*.mm" \) | \
    xargs -n 1 sed -i -e "s/\b$1\b/$2/g"
}

convert PRInt8 int8_t
convert PRUint8 uint8_t
convert PRInt16 int16_t
convert PRUint16 uint16_t
convert PRInt32 int32_t
convert PRUint32 uint32_t
convert PRInt64 int64_t
convert PRUint64 uint64_t

convert PRIntn int
convert PRUintn unsigned

convert PRSize size_t

convert PROffset32 int32_t
convert PROffset64 int64_t

convert PRPtrdiff ptrdiff_t

convert PRFloat64 double
2012-08-22 11:56:38 -04:00
David Zbarsky
03039446fa [Bug 780428] Don't include nsIFrame.h in places where it's not necessary r=roc 2012-08-05 23:00:56 -04:00
Aryeh Gregor
d0ad5a7d0c Bug 777292 part 2 - Change all nsnull to nullptr 2012-07-30 17:20:58 +03:00
Gervase Markham
82ff7027aa Bug 716478 - update licence to MPL 2. 2012-05-21 12:12:37 +01:00
Nicholas Nethercote
7559a70a04 Bug 715453 - Remove computedSize from nsMallocSizeOfFun. r=jlebar,bhackett.
--HG--
extra : rebase_source : a65039a407daab45360a5b375b53cbf1bc05b7f6
2012-01-25 00:52:51 -08:00
Nicholas Nethercote
8ea852b335 Bug 705987 - Use mallocSizeOf in the layout memory reporters. r=khuey,bzbarsky 2011-12-08 21:01:52 -08:00
Matheus Kerschbaum
8a393f7f40 Bug 698630 - Remove --disable-smil build option; r=dholbert 2011-11-05 10:32:52 +00:00
Ehsan Akhgari
92064e6d3f Bug 690892 - Replace PR_TRUE/PR_FALSE with true/false on mozilla-central; rs=dbaron
Landing on a CLOSED TREE
2011-10-17 10:59:28 -04:00
Michael Wu
d2b70213ac Bug 675553 - Switch from PRBool to bool on a CLOSED TREE , r=bsmedberg,khuey,bz,cjones
--HG--
rename : tools/trace-malloc/bloatblame.c => tools/trace-malloc/bloatblame.cpp
2011-09-28 23:19:26 -07:00
Craig Topper
678b9c7c11 Bug 576831 part 4. Remove nsICSSStyleRule and use mozilla::css::StyleRule instead. r=bzbarsky
--HG--
rename : layout/style/nsCSSStyleRule.cpp => layout/style/StyleRule.cpp
rename : layout/style/nsICSSStyleRule.h => layout/style/StyleRule.h
2011-03-10 21:48:57 -05:00
Craig Topper
7bc0610614 Bug 575901 - DeCOMtaminate nsIStyleRuleProcessor method signatures. r=bz 2010-07-18 23:20:40 +02:00
Boris Zbarsky
7be35161f4 Bug 555627. Make transitions actually work correctly on :before and :after. r=dbaron 2010-06-30 18:54:29 -07:00
Craig Topper
94829365f8 Change some nsIStyleSheet methods from returning AddRef-ed to un-AddRef-ed pointers, and some other cleanup. (Bug 239008) r=dbaron 2010-05-17 21:00:39 -07:00
Craig Topper
29a342cd5f Rename nsIStyleSheet::GetApplicable to IsApplicable and GetComplete to IsComplete. (Bug 239008) r=dbaron 2010-05-14 12:05:14 -07:00
Boris Zbarsky
8cae712aa8 Bug 565809. Move checking for style attribute changes into the cascade level. r=dbaron 2010-05-14 13:04:51 -04:00
Craig Topper
bd3c6ba927 DeCOMtaminate nsIStyleSheet method signatures. (Bug 239008) r=dbaron 2010-05-12 13:18:47 -07:00
Boris Zbarsky
fb534f9674 Bug 562971. Include Element.h as mozilla/dom/Element.h and don't use 'using namespace' quite as much. r=jst 2010-05-05 14:18:05 -04:00
Boris Zbarsky
3f7bc45256 Bug 562688 part 14. Eliminate eELEMENT usage in the rule processor; switch to Element as we can. r=dbaron 2010-04-30 09:12:06 -04:00
Zack Weinberg
8a8adc758b Bug 494117 preliminary refactor: Search-and-replace 'ReStyle' with 'Restyle' throughout layout. r=roc 2010-03-31 17:43:32 -07:00
Markus Stange
00fbecd8b0 Bug 508482 - Window activation status should be a pseudoclass (:-moz-window-inactive) instead of an attribute. r=dbaron, r+sr=jst 2010-03-17 18:10:57 +01:00
Markus Stange
d0207d99c6 Backed out changeset e17c076aceea, bug 508482 (:-moz-window-inactive pseudoclass) because of test_righttoleft.xul test failures. 2010-03-17 20:03:53 +01:00
Markus Stange
4a7a64bc2e Bug 508482 - Window activation status should be a pseudoclass (:-moz-window-inactive) instead of an attribute. r=dbaron, r+sr=jst 2010-03-17 18:10:57 +01:00
Daniel Holbert
8c6b3bae0c Bug 537139: Prevent SMIL animation from triggering CSS transitions. r=dbaron 2010-03-01 11:31:45 -08:00
L. David Baron
722b8f18b0 DeCOMify nsHTMLCSSStyleSheet. (Bug 239008) r=bzbarsky 2009-12-31 10:56:33 -05:00
L. David Baron
abee66d3a1 Move class definition of nsHTMLCSSStyleSheet into its own header. (Bug 239008) r=bzbarsky 2009-12-31 10:56:32 -05:00
L. David Baron
d06d58b7f5 Rename HTMLCSSStyleSheetImpl to nsHTMLCSSStyleSheet. (Bug 239008) r=bzbarsky 2009-12-31 10:56:32 -05:00
Boris Zbarsky
dbe398c5f7 Bug 531933. Give HasStateDependentStyle a better signature. r=dbaron 2009-12-11 22:36:34 -08:00
L. David Baron
10f147165d Call RuleMatched method on CSS rules when they are matched. (Bug 522595) r=bzbarsky 2009-12-11 08:13:19 -08:00
Boris Zbarsky
e6b913a5da Bug 525608 part 7. Make tree pseudos use a separate hashtable instead of riding along on the rulehash. r=dbaron 2009-12-11 02:37:40 -05:00
Boris Zbarsky
43f303198b Bug 525608 part 6. Remove null-checks on RuleProcessorData::mContent. r=dbaron 2009-12-11 02:37:40 -05:00
Boris Zbarsky
a94a034494 Bug 525608 part 5. Change anonymous box rule matching to just use a separate hashtable and not ever run SelectorMatches. r=dbaron 2009-12-11 02:37:40 -05:00
Boris Zbarsky
430b782ab4 Bug 525608 part 4. Change pseudo-element probing and resolution to not use EnumerateTagRules. r=dbaron 2009-12-11 02:37:40 -05:00
Boris Zbarsky
8202b90f61 Backing out bug 525608 and bug 525952 2009-12-10 18:28:08 -08:00
Boris Zbarsky
88d6042335 Bug 525608 part 7. Make tree pseudos use a separate hashtable instead of riding along on the rulehash. r=dbaron 2009-12-10 14:36:06 -08:00