Commit Graph

351 Commits

Author SHA1 Message Date
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
Isaac Aggrey
a53c93b026 Bug 795351: Replace LL_MAXINT, LL_MININT, LL_MAXUINT with stdint versions; r=ehsan 2012-09-28 14:55:23 -05:00
Isaac Aggrey
0cc4b12d36 Bug 791906: Replace NSPR integer limit constants with stdint ones; r=ehsan 2012-09-28 01:57:33 -05:00
Isaac Aggrey
84680bfb39 Bug 789847 - Remove PR_CALLBACK usage from tree 2012-09-25 11:18:38 -05:00
Rafael Ávila de Espíndola
d1faececd2 Bug 790285 - avoid nullptr -> false conversions. r=ehsan. 2012-09-11 14:00:37 -04:00
Boris Zbarsky
a562efcb37 Bug 767931. Make drawWindow and asyncDrawXULElement ChromeOnly. r=roc 2012-09-07 01:29:47 -04:00
Daniel Holbert
b537d68146 Bug 786111: Prevent recursive calls to nsSMILAnimationController::DoSample(). r=birtles sr=roc 2012-08-28 22:32:56 -07:00
Daniel Holbert
f462257c18 Bug 786503: mark nsSMILInstanceTime::mVisited as mutable. r=birtles 2012-08-28 22:27:53 -07:00
Ehsan Akhgari
2962d2eed1 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
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
Aryeh Gregor
982100775b Bug 780618 - Move all error codes to nsError.h; r=ehsan 2012-07-27 17:03:27 +03:00
Aryeh Gregor
5662d18449 Bug 780469 - Reduce unnecessary includes in some content/ header files; r=bz 2012-08-06 15:02:08 +03:00
Mike Hommey
c1b35e7b2a Bug 774032 bonus - Use @DEPTH@ and @relativesrcdir@ in Makefile.in. r=ted 2012-08-04 20:26:44 +02:00
Aryeh Gregor
afc1681fc9 Bug 563659 part 3 - Make Element inherit from FragmentOrElement; r=bz 2012-06-27 16:01:55 +03:00
David Zbarsky
bde306fdca 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
a4d33f44cf 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
57c0ad57fb Bug 777292 part 2 - Change all nsnull to nullptr 2012-07-30 17:20:58 +03:00
David Zbarsky
c76cb082e0 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
0981437de6 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
bb16aa6296 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
091f852d76 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
730141f891 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
4a5b32fae2 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
3d174435dd Bug 768756 part 2 - Make nsComputedDOMStyle Init infallible and merge into constructor; r=bz 2012-07-06 15:28:33 +03:00
Ed Morley
ab974a862e Backout 6ceeca8b4b73 (bug 772332), ce5629b973e4, 1dcff1db63b4, 108d06ef7755 & 7bf6519b3f43 (bug 768756) for bustage 2012-07-15 11:42:31 +01:00
Aryeh Gregor
7391815705 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
1cfc592a31 Bug 774028 - Fix variable declaration. r=dholbert. 2012-07-15 00:12:53 -04:00
Boris Zbarsky
0c79c85561 Bug 771594. Allow preference control over what CSS properties we parse. r=dbaron,dholbert 2012-07-13 19:59:05 -04:00
Nathan Froyd
5b30baa4c3 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
cd3c58ee76 Bug 763350 - Clean up some includes in content/ and dom/ r=smaug 2012-07-01 16:45:59 -07:00
Robert Longson
25acc20312 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
b74e4a29db Revert c39d36167b99 due to a horribly munged backout. 2012-06-10 19:44:50 -04:00
Ryan VanderMeulen
061d4c2616 Backout the bug 754202 backout due to orange. 2012-06-10 19:37:47 -04:00
Jignesh Kakadiya
05c4596cae Bug 744157 - Return nsICSSDeclaration from Element::GetSMILOverrideStyle 2012-06-09 15:19:25 -07:00
Robert Longson
4bbc072620 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
917037a94e Bug 752902 - Call Unlink before clearing time value specs; r=dholbert 2012-05-23 08:21:23 +09:00
Gervase Markham
87620f5676 Bug 716478 - update licence to MPL 2. 2012-05-21 12:12:37 +01:00
Brian Birtles
c289211542 Bug 755603 - Remove broken frozen to-animation behavior; r=dholbert 2012-05-21 08:48:38 +09:00
Robert Longson
b2c0e30df6 Bug 528332 - Implement non-scaling-stroke vector-effect. Part 2 - SVG changes r=dholbert 2012-05-18 09:34:25 +01:00
Brian Birtles
47fd1d9ffb 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
b9f83ac5c5 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
c01fe05c99 Bug 720103 - Add test for create-delete cycles; r=dholbert 2012-05-16 14:30:45 +09:00
Olli Pettay
f6017848af Bug 751286 - eventPhase NONE constant, r=sicking 2012-05-03 13:59:51 +03:00
Masatoshi Kimura
f17f15dabb Bug 745498 - Add testcases for DOM4 exception types. r=sicking 2012-04-26 09:42:26 -07:00
Nicholas Nethercote
ba5600fd65 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
616b0f275a merge 2012-03-21 21:48:40 -07:00
Nicholas Nethercote
256772d52e Backed out changeset 0124795a8cbb (bug 711895) due to i10n build bustage. r=me. 2012-03-21 21:46:27 -07:00
Nicholas Nethercote
1859bc3ea6 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
6fee80611d 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
ec2d4903e9 Bug 723534 - Remove dead default cases. r=ehsan. 2012-02-24 08:36:53 -05:00