Commit Graph

62 Commits

Author SHA1 Message Date
David Zbarsky
3dbafb9767 Bug 846908 - Move functions from nsISMILAnimationElement to SVGAnimationElement r=birtles 2013-03-18 23:18:45 -04:00
Mats Palmgren
d5826be6d7 Bug 786533 - Replace NS_MIN/NS_MAX with std::min/std::max and #include <algorithm> where needed. r=ehsan 2013-01-15 13:22:03 +01: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
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
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
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
Brian Birtles
c289211542 Bug 755603 - Remove broken frozen to-animation behavior; r=dholbert 2012-05-21 08:48:38 +09: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
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
Brian Birtles
c3e2428129 Bug 728758 - Detect animations removed from top of compositor stack and recomposite; r=dholbert 2012-02-24 09:45:40 +09:00
Jonathan Watt
5f19b9b508 Bug 726582 - Prevent nsSMILCSSProperty::ValueFromString from reading uninitialized out-param aPreventCachingOfSandwich. r=dholbert.
--HG--
extra : rebase_source : 1a766e42f4b3f323fcf5d4de4d3ba96be1ec8b15
2012-02-13 18:24:51 +00:00
Daniel Holbert
d08be04b58 Bug 699325: Make calcMode="paced" smil animation fall back to calcMode="discrete" when its values have 0 distance between them. r=birtles 2011-11-04 00:21:58 -07: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
Brian Birtles
a819b6b88c Bug 682184 part 2 - Add nsSMILTimeValue::IsResolved; r=dholbert 2011-09-07 09:20:40 +09:00
Brian Birtles
08eeeda336 Bug 682184 part 1 - Rename nsSMILTimeValue::IsResolved to IsDefinite; r=dholbert 2011-09-07 09:20:40 +09:00
Ehsan Akhgari
78f4e1ccb9 Revert to 176fae7de173 which was fine.
Sorry for breaking the history, won't trust TBPL, ever again. :(
2011-09-02 09:15:54 -04:00
Ehsan Akhgari
a171549936 Revert to changeset e6fc4594c22e which was the last one to get a green Win7 tp run 2011-09-02 09:03:08 -04:00
Brian Birtles
4471d78fff Bug 681645 - SMIL: accommodate floating-point errors in discrete animations; r=dholbert 2011-09-02 08:13:45 +09:00
Daniel Holbert
56f8c6a91d Bug 678822: Skip call to nsSMILAnimationFunction::GetAccumulate() if we've had parse errors. r=birtles 2011-08-15 17:58:52 -07:00
Cameron McCormack
c0000045de Bug 651036 - SMIL: Make discrete to-animations behave consistently with discrete from-to animations r=dholbert 2011-04-20 14:05:29 +12:00
Daniel Holbert
e8961b4743 Bug 617817: Don't automatically recompose <set> & indefinite-duration animations, since we know they always have the same effect. r=birtles a=roc 2010-12-10 10:33:13 -08:00
timeless@mozdev.org
2e15d9fa67 Bug 577905 mark DEBUG only variables as ifdef DEBUG in svg
r=dholbert a=roc

--HG--
extra : rebase_source : 1ff1359b298ffc5f273f3d0448e0e676d0d95069
2010-07-11 15:30:35 +03:00
Brian Birtles
ecbab21a00 Bug 614879 - SVG SMIL: Fix indefinite to-animation; r=dholbert, a=roc
--HG--
extra : rebase_source : 9abf06da6a8e24f814623c370e66d77ec467c0e6
2010-12-05 13:13:31 +00:00
Brian Birtles
c15a012ecd Bug 611927 - SVG SMIL: Fix assertion when attempting to add to NULL base value; r=dholbert; a=roc 2010-11-24 08:31:17 +09:00
Brian Birtles
896e0f43f0 Bug 603917 - SVG SMIL: Allow some forms of animation even if base value is not animatable; r=dholbert; a=blocking-2.0 2010-11-10 08:21:04 +09:00
Brian Birtles
deb48ddddd Bug 557885 - SVG SMIL: Support keyTimes for calcMode=discrete; r=dholbert; a=blocking-betaN 2010-09-18 12:46:48 +09:00
Brian Birtles
36e7527d9a Bug 544855 - Make discrete to-animation only visit to value, r=dholbert, a=blocking-betaN+ 2010-08-18 19:20:24 +09:00
Brian Birtles
7581213bbc Bug 485157: SMIL event timing, part 4 refactor nsIContent usage to use mozilla::dom::Element instead, r=dholbert, sr=roc, a=roc 2010-08-18 19:20:24 +09:00
Felipe CorrĂȘa da Silva Sanches
57a4d6e3e9 Bug 554704: Rename "aCanCache" param (for nsISMILAttr::ValueFromString), r=dholbert, r=jwatt 2010-06-23 17:30:55 -07:00
Daniel Holbert
c240503b49 Bug 436418, patch F: SVG/SMIL animateMotion - add support for keyPoints attribute. r=roc 2010-04-28 16:00:54 -07:00
Daniel Holbert
49730afb12 Bug 436418, patch E: SVG/SMIL animateMotion - add support for <animateMotion> element and its core logic. r=roc 2010-04-28 16:00:54 -07:00
Daniel Holbert
499364814d Bug 436418, patch C3: SVG/SMIL animateMotion - add "TreatSingleValueAsStatic" helper method, to assist nsSMILAnimationFunction subclasses in customizing animation behavior. r=roc 2010-04-28 16:00:53 -07:00
Daniel Holbert
02cf40a28a Bug 436418, patch C2: SVG/SMIL animateMotion - move nsSMILAnimationFunction error-flag-handling code from a macro to a method. r=roc 2010-04-28 16:00:53 -07:00
Daniel Holbert
522a227913 Bug 555026: In SMIL animation, ignore keyTimes attr when in paced calcMode. r=roc 2010-04-06 14:39:29 -07:00
Daniel Holbert
349c8a3d2a Bug 556841: In paced-calcMode SMIL animation, don't bother computing distance in trivial 2-values case. r=roc 2010-04-05 09:59:42 -07:00
Daniel Holbert
8a432e2ae4 Bug 554687 patch 2: Use nsSMILValue::Swap instead of operator= where appropriate. r=roc 2010-03-26 12:24:07 -07:00
Daniel Holbert
f5b5986626 Backed out changeset 1bcf725bb32f due to PR_STATIC_ASSERT failure on ppc 2010-03-25 09:21:10 -07:00
Daniel Holbert
7a1b4bf825 Bug 554687 patch 2: Use nsSMILValue::Swap instead of operator= where appropriate. r=roc 2010-03-25 09:02:03 -07:00
Saint Wesonga
f78442c0ad Bug 523417 - "warning: invoking macro NS_ENSURE_SUCCESS argument 2: empty macro arguments are undefined in ISO C90 and ISO C++98" in DOM worker code. r=jst 2010-02-22 18:41:21 +01:00
Daniel Holbert
9123e91013 Bug 533291 Patch E: Add another outparam to nsISMILAttr::ValueFromString, to let us know whether we can re-use the parsed result in the future. r=roc 2010-02-20 13:13:11 -08:00
Daniel Holbert
abcd247e08 Bug 533291 Patch D: Cache base value with each SMIL compositor, since we need to recompose when base value changes. r=roc 2010-02-20 13:13:11 -08:00
Daniel Holbert
6512adf203 Bug 533291 Patch C: When an inactive nsSMILAnimationFunction has changed, force its target to recompose during that sample. r=roc 2010-02-20 13:13:11 -08:00
Daniel Holbert
c85d4fe6db Bug 533291 Patch B: Add method nsSMILAnimationFunction::UpdateCachedTarget, to tell when an animation function's target has changed. r=roc 2010-02-20 13:13:11 -08:00
Daniel Holbert
07c873628f Bug 542731: Add 'explicit' label to all single-arg constructors in SMIL code. r=roc 2010-02-11 11:40:50 -08:00
Jae-Seong Lee-Russo
513e9cf886 Bug 517553: Remove '=='/'!=' 'PR_FALSE'/'PR_TRUE' 2010-02-07 10:52:43 -05:00
Daniel Holbert
86c7eaa0cd Bug 542731: SMIL misc code cleanup: remove trailing '.' from warning messages, to prevent the '.:' in output like 'ASSERTION: blah blah.: /path/to/file:NN'. (no changes outside of assertion/warning message text) 2010-01-28 01:50:30 -08:00
Brian Birtles
d7a66e59c4 Bug 474743 Patch D: Implement syncbase logic. r=dholbert sr=roc 2010-01-12 12:00:49 -08:00