Commit Graph

50 Commits

Author SHA1 Message Date
David Zbarsky
c596ef885a [Bug 847110] Fix up includes in layout/style r=dbaron 2013-03-02 19:31:48 -05:00
Kyle Huey
1ccfbe810b 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
29ac5c0b8c Bug 773151: Convert nsCAutoString->nsAutoCString CLOSED TREE r=bsmedberg 2012-09-01 22:35:17 -04:00
Ehsan Akhgari
8c296bbcd4 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
fe804d085c [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
57c0ad57fb Bug 777292 part 2 - Change all nsnull to nullptr 2012-07-30 17:20:58 +03:00
Gervase Markham
87620f5676 Bug 716478 - update licence to MPL 2. 2012-05-21 12:12:37 +01:00
Nicholas Nethercote
dd32d38d63 Bug 715453 - Remove computedSize from nsMallocSizeOfFun. r=jlebar,bhackett.
--HG--
extra : rebase_source : a65039a407daab45360a5b375b53cbf1bc05b7f6
2012-01-25 00:52:51 -08:00
Nicholas Nethercote
2a7afd1ec3 Bug 705987 - Use mallocSizeOf in the layout memory reporters. r=khuey,bzbarsky 2011-12-08 21:01:52 -08:00
Matheus Kerschbaum
4813247daf Bug 698630 - Remove --disable-smil build option; r=dholbert 2011-11-05 10:32:52 +00:00
Ehsan Akhgari
2a602a5685 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
d8e503c38b 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
72d7c1f754 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
f720fbc615 Bug 575901 - DeCOMtaminate nsIStyleRuleProcessor method signatures. r=bz 2010-07-18 23:20:40 +02:00
Boris Zbarsky
b8fb52d415 Bug 555627. Make transitions actually work correctly on :before and :after. r=dbaron 2010-06-30 18:54:29 -07:00
Craig Topper
58622d8961 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
9528e9a5c6 Rename nsIStyleSheet::GetApplicable to IsApplicable and GetComplete to IsComplete. (Bug 239008) r=dbaron 2010-05-14 12:05:14 -07:00
Boris Zbarsky
7ef058e29f Bug 565809. Move checking for style attribute changes into the cascade level. r=dbaron 2010-05-14 13:04:51 -04:00
Craig Topper
d02574b6b4 DeCOMtaminate nsIStyleSheet method signatures. (Bug 239008) r=dbaron 2010-05-12 13:18:47 -07:00
Boris Zbarsky
f7d7c95ec6 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
b3de40cc58 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
ee4e0f1e56 Bug 494117 preliminary refactor: Search-and-replace 'ReStyle' with 'Restyle' throughout layout. r=roc 2010-03-31 17:43:32 -07:00
Markus Stange
5fb3e948bb 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
4a997d3554 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
f1f3037861 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
e84b322109 Bug 537139: Prevent SMIL animation from triggering CSS transitions. r=dbaron 2010-03-01 11:31:45 -08:00
L. David Baron
46b22b7ca0 DeCOMify nsHTMLCSSStyleSheet. (Bug 239008) r=bzbarsky 2009-12-31 10:56:33 -05:00
L. David Baron
c8c4296b20 Move class definition of nsHTMLCSSStyleSheet into its own header. (Bug 239008) r=bzbarsky 2009-12-31 10:56:32 -05:00
L. David Baron
7df0e7485a Rename HTMLCSSStyleSheetImpl to nsHTMLCSSStyleSheet. (Bug 239008) r=bzbarsky 2009-12-31 10:56:32 -05:00
Boris Zbarsky
4ecb7006bd Bug 531933. Give HasStateDependentStyle a better signature. r=dbaron 2009-12-11 22:36:34 -08:00
L. David Baron
4ee286e827 Call RuleMatched method on CSS rules when they are matched. (Bug 522595) r=bzbarsky 2009-12-11 08:13:19 -08:00
Boris Zbarsky
4a2975a003 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
5ea79b4acb Bug 525608 part 6. Remove null-checks on RuleProcessorData::mContent. r=dbaron 2009-12-11 02:37:40 -05:00
Boris Zbarsky
6b4f1d994c 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
414b184d55 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
e9f228c7d5 Backing out bug 525608 and bug 525952 2009-12-10 18:28:08 -08:00
Boris Zbarsky
7b8acbcaf3 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
Boris Zbarsky
a784f30c6a Bug 525608 part 6. Remove null-checks on RuleProcessorData::mContent. r=dbaron 2009-12-10 14:36:06 -08:00
Boris Zbarsky
bdb94e5fc6 Bug 525608 part 5. Change anonymous box rule matching to just use a separate hashtable and not ever run SelectorMatches. r=dbaron 2009-12-10 14:36:06 -08:00
Boris Zbarsky
e6128a1572 Bug 525608 part 4. Change pseudo-element probing and resolution to not use EnumerateTagRules. r=dbaron 2009-12-10 14:36:06 -08:00
Boris Zbarsky
9dc3b4cdd3 Bug 523294 part 1. Change the signature of HasAttributeDependentStyle. r=dbaron 2009-12-10 14:36:03 -08:00
Daniel Holbert
12ac4739b6 Bug 474049: (first patch) Add SMILOverrideStyle rule & accessors on nsIContent/nsGenericElement, to store SMIL-animated style values. r=dbaron r=bz 2009-09-02 17:28:37 -07:00
L. David Baron
a24f75b42e Separate RuleProcessorData and derived structs into their own header file to reduce include dependencies. (Bug 435441) r=bzbarsky
--HG--
rename : layout/style/nsIStyleRuleProcessor.h => layout/style/nsRuleProcessorData.h
2009-08-01 08:53:40 -07:00
L. David Baron
a0c80a0fdb Replace mechanism for restricting the properties that apply to :first-line and :first-letter. (Bug 469227) r+sr=bzbarsky 2008-12-12 10:59:03 -08:00
L. David Baron
0734469567 Disable -moz-transform and -moz-transform-origin for :first-line and :first-letter pseudo-elements. (Bug 466845) r+sr=bzbarsky a=blocking1.9.1+ 2008-12-12 10:59:03 -08:00
L. David Baron
17cd72dbc6 Merge Quotes and CounterData storage types into ValuePairList. (Bug 322475) r+sr=bzbarsky 2008-08-04 15:15:11 -07:00
L. David Baron
b2fc2a6576 Implement media queries, part 3: infrastructure for dynamic change handling at the rule processor and style set level. (Bug 156716) r+sr=bzbarsky 2008-07-26 09:14:48 -07:00
L. David Baron
f710c3519e Implement Media Queries, part 2: infrastructure for dynamic change handling at the rule cascade and style sheet level. (Bug 156716) r+sr=bzbarsky 2008-07-26 09:14:48 -07:00
dbaron@dbaron.org
1c49aa6978 Allow MapRuleInfoInto to map data for multiple structs at the same time. b=240117 r+sr=bzbarsky a=roc 2007-10-08 14:58:22 -07:00
hg@mozilla.com
465265d0d4 Free the (distributed) Lizard! Automatic merge from CVS: Module mozilla: tag HG_REPO_INITIAL_IMPORT at 22 Mar 2007 10:30 PDT, 2007-03-22 10:30:00 -07:00