Commit Graph

252 Commits

Author SHA1 Message Date
Josh Matthews
c8eb573b6f Bug 505385 - Part 18: Reduce number of notifications - START_REQUEST/START_CONTAINER -> SIZE_AVAILABLE, remove START_DECODE and START_FRAME. Rename remaining ones for clarity. r=joe 2012-10-12 12:11:23 -04:00
Josh Matthews
b84562cef3 Bug 505385 - Part 11: Create a new imgINotificationObserver interface to replace all uses of imgIContainerObserver and imgIDecoderObserver outside of image/. r=joe 2012-10-12 12:11:22 -04:00
Josh Matthews
138935b14a Back out bug 585385 for build bustage. 2012-10-11 21:58:24 -04:00
Josh Matthews
fcd1ce5c84 Bug 505385 - Part 18: Reduce number of notifications - START_REQUEST/START_CONTAINER -> SIZE_AVAILABLE, remove START_DECODE and START_FRAME. Rename remaining ones for clarity. r=joe 2012-10-11 21:34:24 -04:00
Josh Matthews
abbb0715c2 Bug 505385 - Part 11: Create a new imgINotificationObserver interface to replace all uses of imgIContainerObserver and imgIDecoderObserver outside of image/. r=joe 2012-10-11 21:34:23 -04: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
Matt Woodrow
cee1aa3599 Bug 539356 - Part 9c - Remove old invalidation code. r=bz 2012-08-29 17:39:31 +12:00
Ed Morley
aba3a8f5ef Revert mozilla-inbound to e4dd1fa6d222 for crashes and test failures on a CLOSED TREE 2012-09-27 16:34:46 +01:00
Matt Woodrow
4d096475d2 Bug 539356 - Part 9 - Implement DLBI. r=roc,bz,jwatt 2012-08-29 17:38:58 +12:00
Boris Zbarsky
942cc93041 Bug 601912. Implement <ol reversed>. r=dholbert 2012-09-07 22:30:24 -04: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
Aryeh Gregor
d0ad5a7d0c Bug 777292 part 2 - Change all nsnull to nullptr 2012-07-30 17:20:58 +03:00
Aryeh Gregor
65eef91085 Bug 626472 part 1 - Define nsnull as nullptr where available; r=ehsan 2012-07-20 14:16:17 +03:00
Ehsan Akhgari
cf18ee9122 Backout changeset f568fc280fb0 (bug 539356) because of performance and correctness regressions 2012-07-03 20:24:55 -04:00
David Zbarsky
d2ee12f6f9 Bug 763350 - Clean up some includes in content/ and dom/ r=smaug 2012-07-01 16:45:59 -07:00
Matt Woodrow
31125260ee Bug 539356 - Part 9 - Implement DLBI. r=roc,bz,jwatt 2012-06-30 15:06:11 +12:00
Jonathan Watt
970e60a384 Bug 767388 - Kill NS_DEBUG. r=bz.
--HG--
extra : rebase_source : d045208a26345712dbb4628c973c616cd9504f28
2012-06-25 20:59:42 +01:00
Daniel Holbert
2c15ef58b3 Bug 766783: Remove unneeded member variable nsBulletFrame::mComputedSize. r=mats 2012-06-21 12:58:28 -07:00
Ed Morley
83427f0fe0 Merge mozilla-central to mozilla-inbound 2012-05-21 13:19:38 +01:00
Gervase Markham
82ff7027aa Bug 716478 - update licence to MPL 2. 2012-05-21 12:12:37 +01:00
L. David Baron
6b3b8f9533 Remove width determination parameters from font inflation methods. (Bug 747720, patch 5) r=roc
These are no longer needed since we're getting the width from the
nsFontInflationData.
2012-05-20 22:18:28 -07:00
Robert O'Callahan
7c34e38876 Bug 733607. Restructure logic to compute snapped bounds of display items in layer coordinates. Moves responsibility for computing snapped bounds from within the display items to callers of GetBounds/GetOpaqueRegion. r=tnikkel
Previously we snapped the results of nsDisplayItem::GetBounds and
nsDisplayItem::GetOpaqueRegion internally. By tracking which display items were
inside transforms, we disabled snapping quite conservatively whenever an ancestor
had a transform, which is undesirable.

With this patch, we don't snap inside GetBounds or GetOpaqueRegion, but just return
a boolean flag indicating whether the item will draw with snapping or not. This flag
is conservative so that "true" means we will snap (if the graphics context has a transform
that allows snapping), but "false" means we might or might not snap (so it's always safe
to return false).

FrameLayerBuilder takes over responsibility for snapping item bounds. When it converts
display item bounds to layer pixel coordinates, it checks the snap flag returned from
the display item and checks whether the transform when we draw into the layer will be
a known scale (the ContainerParameters scale factors) plus integer translation. If both
are true, we snap the item bounds when converting to layer pixel coordinates. With
this approach, we can snap item bounds even when the items have ancestors with active
transforms.
2012-04-10 23:24:18 +12:00
L. David Baron
94eb7fc6c5 Switch nsLayoutUtils inflation methods to the new setup with state on the pres context. (Bug 706609, patch 5) r=roc
This is the third of three patches to rework the way we handle getting
the font inflation container and width data during reflow, which are
needed so that we can sometimes honor inflation during intrinsic width
calculation (which we need to do to make some form controls inflate
correctly).
2012-01-24 17:21:29 -08:00
Kyle Huey
d382eb7335 Bug 714752: Make imgIContainerObserver::FrameChanged take an imgIRequest*. r=joe sr=roc 2012-01-06 07:32:38 -05:00
Mats Palmgren
78d0f2c7ca Bug 515530 - Remove nsHTMLContainerFrame. r=roc 2011-12-27 21:18:48 +01:00
Ms2ger
7d201023b3 Bug 709509 - Remove manual refcounting and QIing from nsBulletFrame::DidSetStyleContext; r=dbaron 2011-12-24 09:28:23 +01:00
L. David Baron
d765f6035f Apply font size inflation to list bullets. (Bug 627842, patch 13) r=roc
Note that this doesn't do anything about the indentation of the list, so
for large inflation there may end up being overlap as a result.
2011-11-23 18:48:23 -08:00
Scott Johnson
a5309bb458 Bug 666446, Part 6/10 - Change nsBulletFrame to utilize refresh driver-based animations for performance improvements. [r=roc] 2011-11-09 13:39:16 -08:00
Justin Lebar
81c40942af Back out bug 666446 due to Talos regression. 2011-11-02 20:11:01 -04:00
Scott Johnson
9e3df1a897 Bug 666446, Part 6/10 - Change nsBulletFrame to utilize refresh driver-based animations for performance improvements. [r=roc] 2011-11-01 11:06:53 -04:00
Timothy Nikkel
5fd981457f Bug 694213. Make various display items return bounds in the correct coordinate space. r=roc 2011-10-21 12:45:32 -05:00
Timothy Nikkel
f92f70e856 Backout 18f70ede04b0 (bug 694213). 2011-10-20 20:59:47 -05:00
Timothy Nikkel
b6640cbaf7 Bug 694213. Make various display items return bounds in the correct coordinate space. r=roc 2011-10-20 12:44:28 -05:00
Timothy Nikkel
677526acd7 Backout 8db8c9ce92c5 (bug 694213). 2011-10-18 00:41:10 -05:00
Timothy Nikkel
3b73722e00 Bug 694213. Make various display items return bounds in the correct coordinate space. r=roc 2011-10-17 19:56:03 -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
Scott Johnson
af599f0659 Backout cset 6cd4f2d8c2f9 from bug 666446 while we sort out regressions 2011-10-07 00:25:11 -07:00
Scott Johnson
5e210060ef Bug 666446, Part 6/18 - Change nsBulletFrame to utilize refresh driver-based animations for performance improvements. [r=roc] 2011-10-03 13:39:05 -07: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
Mats Palmgren
f70d28ee47 Bug 663375 - When text color is darkened, darken text-decoration color too. r=dbaron 2011-08-09 17:14:36 +02:00
L. David Baron
2dd9a8ab37 Remove NS_STYLE_LIST_STYLE_OLD_* constants to fix computed list-style-type style resulting from type attribute on lists. (Bug 665857) r=bzbarsky 2011-06-29 14:39:21 -07:00
Robert O'Callahan
ca5e5d48e9 Bug 641426. Part 3.5: Remove usage of nsMargin::TopLeft and nsMargin::IsZero. r=dbaron 2011-04-19 15:07:22 +12:00
Zack Weinberg
ef90e52c10 Bug 174055, part 6: eliminate pointless nsresult return values. 2011-04-07 21:18:43 -07:00
Zack Weinberg
5731d401c8 Bug 174055, part 5: prune unused and unimplemented methods. 2011-04-07 20:07:27 -07:00
Zack Weinberg
b6b73ad75a Bug 174055, part 4: mechanical fixups outside gfx. 2011-04-07 18:05:49 -07:00
Zack Weinberg
9f143f420f Bug 174055, part 1: minimize inclusion of nsI(Thebes)FontMetrics.h. 2011-04-07 18:04:41 -07: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
Alexander Surkov
0ba17ebe91 Bug 629114 - crash on add comment link in review board [@ nsBulletFrame::GetListItemText ] [@ nsBulletFrame::GetListItemText(nsStyleList const&, nsString&) ], r=davidb, marcoz, sr=bz, a=blocking2.x+ 2011-03-28 22:59:54 +09:00
Robert O'Callahan
f38f22f331 Bug 602757. Part 5: Change HasText to GetComponentAlphaBounds. r=tnikkel,sr=dbaron,a=blocking 2011-01-03 14:48:09 +13:00