Граф коммитов

278 Коммитов

Автор SHA1 Сообщение Дата
Daniel Holbert 3f348ab8ad Bug 799196: Update signature for nsHTMLFramesetBlankFrame::List(). r=bz 2012-10-08 12:58:54 -07: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
Isaac Aggrey 481e7dfb0b Bug 791906: Replace NSPR integer limit constants with stdint ones; r=ehsan 2012-09-28 01:57:33 -05: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
Ms2ger 75ab7efb95 Bug 780387 - Part b: Stop using PRIntn; r=bsmedberg 2012-08-09 09:09:40 +02:00
Cameron McCormack 5e22f14219 Bug 655877 - Part 15: Don't treat SVG text frames as being positioned. r=roc 2012-08-02 21:38:50 +10:00
Cameron McCormack d7e9a93257 Bug 655877 - Part 14: Ignore float in SVG text frames. r=roc 2012-08-02 21:38:49 +10: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
Nathan Froyd 68a79f10ae Bug 731615 - Eliminate duplicate headers in layout. rs=smontagu 2012-02-29 10:57:47 -05:00
Markus Stange 5d6bf29b6f Bug 598482 part 7 - Remove NS_VMREFRESH_* flags. NS_VMREFRESH_NO_SYNC is now the unchangable default. r=roc 2011-12-23 22:52:22 -05:00
Mats Palmgren 78d0f2c7ca Bug 515530 - Remove nsHTMLContainerFrame. r=roc 2011-12-27 21:18:48 +01:00
Phil Ringnalda 2e8e3cc006 Back out 1ac4cb2e7c32 to c631f9c3e9a9 (bug 598482) for Android reftest failures 2011-12-23 22:21:58 -08:00
Markus Stange 87e56d30a9 Bug 598482 part 7 - Remove NS_VMREFRESH_* flags. NS_VMREFRESH_NO_SYNC is now the unchangable default. r=roc 2011-12-23 22:52:22 -05: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
Atul Aggarwal 55091f006e Bug 653295 - Fixing warning of comparision between signed and unsigned integer expressions in nsFrameSetFrame.cpp. r=bz 2011-09-26 01:47:43 +05:30
Masayuki Nakano 6c3d3da0c3 Bug 669028 part.13 layout should use mozilla::LookAndFeel rather than nsILookAndFeel r=roc 2011-09-09 11:27:13 +09:00
Mats Palmgren f1c56f2e22 Bug 653649 - New way of getting child lists from frames. (part 4/5) r=roc
Remove the nsIAtom* child list names and use child list ID enum instead.
2011-08-24 22:54:30 +02:00
Sebastian Kromp 5df1ec26bf Bug 578564. Remove nsIFrameSetElement and just use nsHTMLFrameSetElement instead. r=bzbarsky
--HG--
rename : content/html/content/public/nsIFrameSetElement.h => content/html/content/src/nsHTMLFrameSetElement.h
2011-06-08 12:04:10 -07:00
Masayuki Nakano 4a5030c91a Bug 660121 Remove all pref related methods from nsContentUtils r=roc 2011-05-29 08:42:57 +09:00
Masayuki Nakano caee4cc73f Bug 659533 Replace nsContentUtils::GetBoolPref() with Preferences::GetBool() r=roc 2011-05-25 15:31:59 +09:00
Jan Küchler c510bc3046 Bug 266236 part 3: Mechanical rename of nsIRenderingContext and nsThebesRenderingContext to nsRenderingContext. Mechanical substitution of nsRefPtr<nsRenderingContext> for nsCOMPtr<nsRenderingContext>.
--HG--
rename : gfx/src/nsThebesRenderingContext.cpp => gfx/src/nsRenderingContext.cpp
extra : rebase_source : 34884bfcafd885feaf73300bc7246cd192062a48
2011-04-07 18:04:40 -07:00
Jan Küchler ebb2f0c7ec Bug 266236 part 1: Preliminary API cleanup on nsIRenderingContext.
--HG--
extra : rebase_source : a21ffad484f47103e403b8316eae5fdfd815c2cb
2011-04-07 18:04:39 -07:00
Ms2ger 4b1168a59f Bug 637864 - Give nsIViewManager::GetRootView a sane signature; r=bz 2011-03-29 22:24:54 -04:00
Boris Zbarsky c79bd4569e Bug 621841. Clear restyle flags in frameset kids when we process them. r=dbaron 2011-03-04 10:27:02 -05:00
Ehsan Akhgari 9fcbeaa4c7 Bug 579767 - Frame borders are sometimes not redrawn correctly after dragging them or resizing the window; r,a=roc 2011-01-26 00:41:52 -05:00
Chris Double 1c3dccdfaa Bug 623998 - Reduce frameset size limit - r=roc a=blocking2.0:final 2011-01-25 14:38:07 +13:00
L. David Baron 5a012f3090 Fix miscellaneous reflow methods to use new overflow area APIs. (Bug 542595, patch 19) r=roc a2.0=blocking2.0:beta8 2010-10-06 21:25:46 -07:00
Ms2ger 70a57ce50d Bug 562698 - Part c: Pass Elements to AttributeWillChange; r=bzbarsky, a=dbaron 2010-08-24 09:06:20 +02:00
Ms2ger 007a644125 Bug 562698 - Part b: Pass Elements to nsNodeUtils::AttributeChanged; r=bzbarsky, a=dbaron 2010-08-24 09:06:07 +02:00
Robert O'Callahan 7be62af7f1 Bug 584282. Use nsDisplayItem::ToReferenceFrame() instead of calling nsDisplayListBuilder::ToReferenceFrame, wherever possible. r=tnikkel,a=dbaron
--HG--
extra : rebase_source : 730ba8640cb37bd8484ff069b5d6fd46d9bc3e84
2010-08-13 22:01:58 +12:00
Robert O'Callahan 33a0aec926 Bug 584282. Add nsDisplayItem::mToReferenceFrame and initialize it in the constructor. r=tnikkel,a=dbaron
--HG--
extra : rebase_source : 496cbde7c495eb8872c3d0ffc0ca4c57c2a6a777
2010-08-13 22:01:13 +12:00
Michael Ventnor 56ba116210 Bug 564991. Part 3: Create unique nsDisplayItem types for every single display item. r=tnikkel 2010-07-16 09:07:49 +12:00
Timothy Nikkel cd6a9cc251 Bug 564368. Clear lazy frame construction bits when constructing framesets. r=bzbarsky 2010-05-11 19:30:42 -05:00
Timothy Nikkel 7ba76a2011 back out e40cbab6a972 (Bug 564705) 590da60fd253 (Bug 507628 and bug 507991) b166415b8c3f (Bug 564368) 0dac5d3eeb97 (Bug 564063) 116e56d84770 (Bug 563407) c51c93f5240f (Bug 536495) for some orange 2010-05-11 22:01:08 -05:00
Timothy Nikkel f2f4be1345 Bug 564368. Clear lazy frame construction bits when constructing framesets. r=bzbarsky 2010-05-11 19:30:42 -05:00
Boris Zbarsky d136b98028 Bug 562688 part 11. Eliminate eELEMENT usage in layout/generic. r=dbaron 2010-04-30 09:12:06 -04:00
Felipe Gomes e4fb76d330 Bug 489127 - nodesFromRect required for better usability on mobile devices (part 1+2) [r=roc] 2010-04-07 20:31:26 -04:00
Ehren Metcalfe a791e19cc4 Bug 556446: Remove dead code in layout. r=roc,bz 2010-04-03 07:36:19 -04:00
Robert O'Callahan cff7965f83 Bug 526394. Part 15: Convert various random chunks of layout code. r=mats 2009-09-03 16:26:00 +12:00
Boris Zbarsky b0ba4290ce Bug 500882 part 2. Switch setting of primary frames to the new API; switch nsFrameManager::GetPrimaryFrameFor to the new API; remove resulting gobs of dead code. r=roc 2009-12-24 16:20:05 -05:00
Boris Zbarsky 5132d64872 Bug 525608 part 3. Change all style set consumers that ask for a pseudo style context to indicate what they're actually asking for (pseudo-element, anonymous box, or xul tree thing). r=dbaron 2009-12-11 02:37:40 -05:00
Boris Zbarsky c1d4ecaf51 Bug 525608 part 1. Introduce an enum for keeping track of pseudo-elements. 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 6eb3c28de7 Bug 525608 part 3. Change all style set consumers that ask for a pseudo style context to indicate what they're actually asking for (pseudo-element, anonymous box, or xul tree thing). r=dbaron 2009-12-10 14:36:05 -08:00
Boris Zbarsky 8616f91258 Bug 525608 part 1. Introduce an enum for keeping track of pseudo-elements. r=dbaron 2009-12-10 14:36:04 -08:00
Boris Zbarsky b694bf4f11 Bug 523294 part 3. Get rid of the now-unused aStateMask argument to AttributeChanged. r=dbaron 2009-12-10 14:36:04 -08:00
Robert O'Callahan c2f7a1e950 Bug 513082. Instead of passing aDirtyRect to nsDisplayItem::Paint, have nsDisplayList::OptimizeVisibility (renamed to ComputeVisibility) compute the intersection of the visible region with the bounds of each display item and store the result in the item's mVisibleRect. This lets us do less work to paint display items which have a small intersection with the visible region but a large intersection with the bounding-box of the visible region. r=dbaron
--HG--
extra : rebase_source : 76db4b87ef9e5a6e9de7677edc08c26e2cbc462e
2009-09-07 12:35:14 +12:00
David Zbarsky 3d96b7b4a7 Bug 488249. Replace IsNodeOfType(eHTML) checks with namespace checks. r+sr=jst 2009-08-24 16:02:07 -04:00