Commit Graph

351 Commits

Author SHA1 Message Date
Kyle Huey
e5eb83ac5a 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
Isaac Aggrey
e496b51126 Bug 795351: Replace LL_MAXINT, LL_MININT, LL_MAXUINT with stdint versions; r=ehsan 2012-09-28 14:55:23 -05:00
Isaac Aggrey
997db4d142 Bug 791906: Replace NSPR integer limit constants with stdint ones; r=ehsan 2012-09-28 01:57:33 -05:00
Isaac Aggrey
b33410feb2 Bug 789847 - Remove PR_CALLBACK usage from tree 2012-09-25 11:18:38 -05:00
Rafael Ávila de Espíndola
3e32891034 Bug 790285 - avoid nullptr -> false conversions. r=ehsan. 2012-09-11 14:00:37 -04:00
Boris Zbarsky
06092f65fb Bug 767931. Make drawWindow and asyncDrawXULElement ChromeOnly. r=roc 2012-09-07 01:29:47 -04:00
Daniel Holbert
43ad921ae7 Bug 786111: Prevent recursive calls to nsSMILAnimationController::DoSample(). r=birtles sr=roc 2012-08-28 22:32:56 -07:00
Daniel Holbert
f830e7c269 Bug 786503: mark nsSMILInstanceTime::mVisited as mutable. r=birtles 2012-08-28 22:27:53 -07:00
Ehsan Akhgari
5b76a146bc Bug 579517 - Part 5: Add missing StandardInteger.h #includes where needed; r=bsmedberg
Landing on a CLOSED TREE
2012-08-08 17:08:17 -04:00
Ehsan Akhgari
0fd9123eac 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
Aryeh Gregor
0923bf00ef Bug 780618 - Move all error codes to nsError.h; r=ehsan 2012-07-27 17:03:27 +03:00
Aryeh Gregor
f41637535d Bug 780469 - Reduce unnecessary includes in some content/ header files; r=bz 2012-08-06 15:02:08 +03:00
Mike Hommey
6173fa297f Bug 774032 bonus - Use @DEPTH@ and @relativesrcdir@ in Makefile.in. r=ted 2012-08-04 20:26:44 +02:00
Aryeh Gregor
c29a19dfd3 Bug 563659 part 3 - Make Element inherit from FragmentOrElement; r=bz 2012-06-27 16:01:55 +03:00
David Zbarsky
f386a1e940 Bug 755084 Part 2: Perform CSS animations of transform and opacity on the compositor r=roc, dbaron 2012-07-31 10:28:21 -07:00
Mark Finkle
70a01196ec Backout 169ff207ed19, a34baed70c1b, f9ccdd490bd7, 39550ed860e6, 2194a2dd66b2, 908eb2e26843, a76e0a267f26 due to mobile viewport bustage (bug 778580) 2012-07-30 14:36:12 -04:00
Aryeh Gregor
e806eeab4f Bug 777292 part 2 - Change all nsnull to nullptr 2012-07-30 17:20:58 +03:00
David Zbarsky
5a900008c4 Bug 755084 Part 2: Perform CSS animations of transform and opacity on the compositor r=roc, dbaron 2012-07-27 13:23:44 -07:00
Ed Morley
be8bf4beae Backout 1244b8a8e57a (bug 755084), 32d16d0f87c9 (bug 706179), 8548e016d4a9 (bug 768440), 697f5b87eae9 (bug 768440), 808fc2bd4e8c (bug 755084), 54b1484cd125 (bug 755084), 876726b632c0 (bug 706179) for xul android R3 failures 2012-07-25 16:37:04 +01:00
David Zbarsky
0fe356e5ed Bug 755084 Part 2: Perform CSS animations of transform and opacity on the compositor r=roc, dbaron 2012-07-25 01:48:09 -07:00
Matt Brubeck
2e41f92cb5 Back out f4f5189b1d0c, 3b4f0606c547, b8a5a1ab8a5f, 5078933d6954, 7e0260c45de9 (bug 768440, bug 755084, bug 706179) because of reftest failures 2012-07-23 20:25:51 -07:00
David Zbarsky
5deebe2e9b Bug 755084 Part 2: Perform CSS animations of transform and opacity on the compositor r=roc, dbaron 2012-07-23 17:34:46 -07:00
Joshua Cranmer
4ad48824ad Bug 702877 - Replace NS_OVERRIDE with MOZ_OVERRIDE. r=ehsan
--HG--
extra : rebase_source : 1843575683c3897f96f3966cbce26140ff1a7d90
2012-07-06 13:15:45 -05:00
Aryeh Gregor
7070a755d7 Bug 768756 part 2 - Make nsComputedDOMStyle Init infallible and merge into constructor; r=bz 2012-07-06 15:28:33 +03:00
Ed Morley
53c5da4c5a Backout 6ceeca8b4b73 (bug 772332), ce5629b973e4, 1dcff1db63b4, 108d06ef7755 & 7bf6519b3f43 (bug 768756) for bustage 2012-07-15 11:42:31 +01:00
Aryeh Gregor
336965c636 Bug 768756 part 2 - Make nsComputedDOMStyle Init infallible and merge into constructor; r=bz 2012-07-06 15:28:33 +03:00
Rafael Ávila de Espíndola
b0ea6e34bb Bug 774028 - Fix variable declaration. r=dholbert. 2012-07-15 00:12:53 -04:00
Boris Zbarsky
43d45b95b9 Bug 771594. Allow preference control over what CSS properties we parse. r=dbaron,dholbert 2012-07-13 19:59:05 -04:00
Nathan Froyd
a7eb97f896 Bug 370750 - consolidate mochitest files installation; r=glandium
With assistance on the patch from Ms2ger, Waldo, and Mossop.
2012-07-03 16:49:02 -04:00
David Zbarsky
ae718ee1c0 Bug 763350 - Clean up some includes in content/ and dom/ r=smaug 2012-07-01 16:45:59 -07:00
Robert Longson
03cb3b88c4 Bug 764851 - Fix animations of the width/height of an outer SVG element. r=jwatt 2012-06-16 16:47:40 +01:00
Ryan VanderMeulen
891e38e528 Revert c39d36167b99 due to a horribly munged backout. 2012-06-10 19:44:50 -04:00
Ryan VanderMeulen
f497d31a0a Backout the bug 754202 backout due to orange. 2012-06-10 19:37:47 -04:00
Jignesh Kakadiya
5f54555c47 Bug 744157 - Return nsICSSDeclaration from Element::GetSMILOverrideStyle 2012-06-09 15:19:25 -07:00
Robert Longson
e7baf0d054 Bug 758505, Part 3: Avoid unnecessary invalidations on repeated calls to set the same animated value (for SMIL animations of CSS, mapped attrs, and motion). r=dholbert 2012-06-01 16:53:57 -07:00
Brian Birtles
8ed82c9ac8 Bug 752902 - Call Unlink before clearing time value specs; r=dholbert 2012-05-23 08:21:23 +09:00
Gervase Markham
ca171eec44 Bug 716478 - update licence to MPL 2. 2012-05-21 12:12:37 +01:00
Brian Birtles
16a3758fcf Bug 755603 - Remove broken frozen to-animation behavior; r=dholbert 2012-05-21 08:48:38 +09:00
Robert Longson
38cb4c47d9 Bug 528332 - Implement non-scaling-stroke vector-effect. Part 2 - SVG changes r=dholbert 2012-05-18 09:34:25 +01:00
Brian Birtles
00d56427e2 Bug 512525 - Implement SVG Fragment Identifier parsing and animation hyperlinking - Part 3 additional hyperlinking tests. r=dholbert 2012-05-17 11:05:12 +01:00
Brian Birtles
cef9ecb825 Bug 512525 - Implement SVG Fragment Identifier parsing and animation hyperlinking - Part 1 infrastructure to support hyperlinking. r=dholbert 2012-05-17 10:56:57 +01:00
Brian Birtles
fd70aed2fb Bug 720103 - Add test for create-delete cycles; r=dholbert 2012-05-16 14:30:45 +09:00
Olli Pettay
90367bb4e7 Bug 751286 - eventPhase NONE constant, r=sicking 2012-05-03 13:59:51 +03:00
Masatoshi Kimura
95f8a3cace Bug 745498 - Add testcases for DOM4 exception types. r=sicking 2012-04-26 09:42:26 -07:00
Nicholas Nethercote
85b9728d6c Bug 711895 - Tweak the warning options used for GCC builds (3rd attempt). r=waldo,derf,khuey,mhommey.
--HG--
extra : rebase_source : 20540c9b838ee3be6cb0847c1b90fdc3bd44059d
2012-03-21 22:21:16 -07:00
Nicholas Nethercote
6ae6850783 merge 2012-03-21 21:48:40 -07:00
Nicholas Nethercote
c4ee2f9bdc Backed out changeset 0124795a8cbb (bug 711895) due to i10n build bustage. r=me. 2012-03-21 21:46:27 -07:00
Nicholas Nethercote
5524d35c04 Bug 711895 - Tweak the warning options used for GCC builds (2nd attempt). r=waldo,derf,khuey,mhommey,jwatt. 2012-03-15 19:40:00 -07:00
Mats Palmgren
234949ebc1 Bug 735943 - Don't crash if nsSMILAnimationController::FlushResampleRequests destroyed the pres shell. r=bz 2012-03-20 19:02:38 +01:00
Rafael Ávila de Espíndola
8db92c8db2 Bug 723534 - Remove dead default cases. r=ehsan. 2012-02-24 08:36:53 -05:00