Commit Graph

8593 Commits

Author SHA1 Message Date
Daniel Holbert
06b33bf856 Bug 799199: Use IndentBy() instead of looped "fputs" in nsHTMLFramesetBlankFrame's and nsLineBox's List() methods. r=bz 2012-10-08 13:06:04 -07:00
Daniel Holbert
3f348ab8ad Bug 799196: Update signature for nsHTMLFramesetBlankFrame::List(). r=bz 2012-10-08 12:58:54 -07:00
Ed Morley
42c894c446 Bug 752786 - Disable one part of test_bug469613.xul for too many intermittent failures 2012-10-08 14:10:54 +01:00
Masayuki Nakano
7718f4b75d Bug 795785 part.2 Scroll editor when caret is moved even if it's specified overflow: hidden; r=smaug 2012-10-08 03:45:51 +09:00
Masayuki Nakano
985cc75710 Bug 795785 part.1 Editor should scroll the selection into view after edit even when the editor is specified overflow: hidden; r=ehsan,smaug, sr=smaug 2012-10-08 03:45:51 +09:00
Andrew Quartey
58aa97ec8b Bug 792581 - part 12: Replace LL_DIV with division operator. r=ehsan 2012-10-05 01:05:28 -04:00
Andrew Quartey
6a3e28f73b Bug 792581 - part 10: Replace LL_SUB macro with mathematical minus operator. r=ehsan 2012-10-05 01:05:27 -04:00
Robert O'Callahan
fc36d68166 Bug 794709. Don't bother trying to compute an intelligent dirty rect when building display lists for nsSimplePageSequence and nsPageContentFrame children; it's nontrivial due to the transforms they introduce, and it doesn't matter anyway. r=mattwoodrow
--HG--
extra : rebase_source : 6e51ff9514f66e24765bae74a6348afc65367d76
2012-10-05 15:29:56 +13:00
Nathan Froyd
4519571cb1 Bug 796129 - remove prtypes #includes in layout/ 2012-10-01 17:12:57 -04:00
Ed Morley
1c8a7ade37 Backout a5c50066ecbb (bug 787947), ee9f796b8416 (bug 794709) for crashtest/reftest assertions 2012-10-04 13:15:00 +01:00
Robert O'Callahan
35db8fe81d Bug 794709. Don't bother trying to compute an intelligent dirty rect when building display lists for nsSimplePageSequence and nsPageContentFrame children; it's nontrivial due to the transforms they introduce, and it doesn't matter anyway. r=mattwoodrow 2012-10-04 23:02:17 +13:00
Chris Jones
d069aa6366 Bug 790505, part 4: If we're just updating the transform of a prerendered layer, then schedule an empty transaction to skip unnecessary display-list overhead. r=mattwoodrow,roc 2012-10-02 22:55:52 -07:00
Chris Jones
bae3518548 Bug 790505, part 2: Add a GetLayerTransformForFrame() helper for computing a frame's layer transform outside a proper transaction, and mark frames that have been fully prerendered. r=roc 2012-10-02 22:55:50 -07:00
Ryan VanderMeulen
657d66adaf Backout 0cd12dcf7f8f, 5ff5e81e6de6, and 0ae09da96f63 (bug 740580) due to bug 797391. 2012-10-03 22:13:14 -04:00
Chris Jones
38cde694be Back out bug 790505 for leaking 2012-10-03 00:21:08 -07:00
Chris Jones
3d0d3d6cab Bug 790505, part 4: If we're just updating the transform of a prerendered layer, then schedule an empty transaction to skip unnecessary display-list overhead. r=roc 2012-10-02 22:55:52 -07:00
Chris Jones
6f9a885d04 Bug 790505, part 3: Add a GetLayerTransformForFrame() helper for computing a frame's layer transform outside a proper transaction, and mark frames that have been fully prerendered. r=roc 2012-10-02 22:55:50 -07:00
Brendan Dahl
45e10cee30 Bug 789507 - Add watchdog for mozPrintCallbacks. r=smaug 2012-10-02 10:42:21 -07:00
Anthony Jones
fadf9023d4 Bug 740580 - Add Azure support to nsCanvasFrame. r=roc 2012-10-02 22:09:12 -04:00
Steven Michaud
144130a844 Bug 785667 - Make plugins work with HiDPI mode on the Mac. r=bgirard 2012-10-02 14:48:05 -05:00
Matt Woodrow
c398cd266e Bug 795796 - Fix empty transactions. r=cjones 2012-10-01 17:29:02 +13: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
Mounir Lamouri
38529e6433 Merge m-i inm-c. 2012-09-30 13:19:15 +01:00
Daniel Holbert
8d95ac617b Bug 666041 patch 8: Add special handling for "min-width: auto" value on flex items. r=dbaron 2012-09-29 23:38:46 -07:00
Daniel Holbert
e71e5f4161 Bug 666041 patch 7: implementation of flex container class for CSS3 flexbox. r=dbaron 2012-09-29 23:38:46 -07:00
Daniel Holbert
8f5c5c9f3f Bug 666041 patch 6.5: Add flag to nsHTMLReflowState & ComputeSize for measuring auto height. r=dbaron 2012-09-29 23:38:46 -07:00
Matt Woodrow
930cae2bd2 Bug 795611 - Call virtual InvalidateFrame from InvalidateFrameSubtree since nsTable*Frame overloads it. r=cjones 2012-09-30 19:20:25 +13:00
Matt Woodrow
6f574cafa6 Bug 795576 - Correctly add the NS_FRAME_UPDATE_LAYER_TREE when invalidating inside a popup. r=cjones 2012-09-30 19:20:24 +13:00
Scott Johnson
5c7b6d0bc2 Bug 795313: Modify order of conditionals in UpdateFontInflationDataWidthFor() for performance enhancements. [r=dbaron] 2012-09-28 14:38:33 -05:00
Isaac Aggrey
481e7dfb0b Bug 791906: Replace NSPR integer limit constants with stdint ones; r=ehsan 2012-09-28 01:57:33 -05:00
Ed Morley
aed12527c9 Bug 752786 - Disable one part of test_bug469613.xul on OS X 10.8 for too many intermittent failures 2012-09-28 15:45:29 +01:00
Robert O'Callahan
6c9ec69e94 Bug 539356. Make PruneDisplayListForExtraPage prune print preview properly. r=mattwoodrow
PruneDisplayListForExtraPage wasn't pruning properly in print preview. It
was pruning to the RootReferenceFrame, which is per-page when printing normally,
but is the ancestor of all pages in print preview, so it wasn't doing anything in
print preview.
So, pass in the nsPageFrame we want to prune to. This prevents bogus
entirely-clipped-out display items appearing in the display list for the page.
2012-09-28 23:19:39 +12:00
Matt Woodrow
638b4002cb Bug 781053 - Part 2 - Trigger empty transactions when an animated image in an ImageLayer changes frame. r=roc 2012-09-25 08:31:30 +12:00
Matt Woodrow
17610240f2 Bug 781053 - Part 1 - Allow conversion of nsImageBoxFrame to an ImageLayer. r=roc 2012-09-25 08:29:14 +12:00
Matt Woodrow
a382cc1373 Bug 539356 - Avoid some causes of unnecessary painting. r=roc 2012-09-26 11:59:56 +12:00
Matt Woodrow
30f635b6f8 Bug 539356 - Correctly invalidate SVG observers. r=roc 2012-08-29 17:49:16 +12:00
Matt Woodrow
5b90207e93 Bug 539356 - Make the table code use rect invalidation to avoid over invalidation. r=roc 2012-08-29 17:48:45 +12:00
Matt Woodrow
daef8103fd Bug 539356 - Add an option for frames to invalid just a rect instead of the frame bounds. r=roc 2012-08-29 17:48:45 +12:00
Robert O'Callahan
030510fcb8 Bug 770058. InvalidateFrame doesn't need flags, we can just avoid calling ScheduleRepaint if we find any ancestor frame with a descendant that needs invalidation. r=mattwoodrow 2012-08-29 17:48:44 +12:00
Matt Woodrow
26e7634f2d Bug 769922 - Implement nsDisplayAltFeedback, since it can draw outside of the frame's overflow rect. r=roc 2012-08-29 17:48:44 +12:00
Matt Woodrow
d5505976c0 Bug 539356 - Part 27 - Make nsImageFrame's overflow include the AltFeedback image if it will use one. r=roc 2012-08-29 17:48:44 +12:00
Matt Woodrow
16e9c4f1eb Bug 539356 - Part 26 - Send invalidations for hidden documents. r=roc 2012-08-29 17:48:44 +12:00
Matt Woodrow
5542e52aa1 Bug 539356 - Part 18 - Mark frames with only invalid children as an optimization to use when invalidating further frames. r=roc 2012-08-29 17:48:43 +12:00
Matt Woodrow
b542e0240d Bug 539356 - Part 11 - Reimplement empty transactions. r=roc 2012-08-29 17:48:15 +12:00
Matt Woodrow
7507512379 Bug 539356 - Part 10 - Test changes required for DLBI. r=roc
* * *
[mq]: test-fixes
2012-08-29 17:48:13 +12:00
Matt Woodrow
5730a3f4b2 Bug 539356 - Part 9f - Compute the invalid area of the layer tree and pass this to the widget. r=roc 2012-08-29 17:47:18 +12:00
Matt Woodrow
c36e8e6c82 Bug 539356 - Part 9e - FrameLayerBuilder changes for display list invalidation. r=roc
* * *
imported patch move-by-correctly
2012-08-29 17:47:15 +12:00
Matt Woodrow
cee1aa3599 Bug 539356 - Part 9c - Remove old invalidation code. r=bz 2012-08-29 17:39:31 +12:00
Matt Woodrow
2d57efa896 Bug 539356 - Part 9b - Add new frame invalidation API. r=roc 2012-08-29 17:39:01 +12:00
Matt Woodrow
a67ae37664 Bug 539356 - Part 9a - Add new display list invalidation API to nsDisplayItem and implement it. r=roc 2012-08-29 17:39:01 +12:00