Kyle Huey
e5eb83ac5a
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
1572061ab5
Bug 539356 - Make the table code use rect invalidation to avoid over invalidation. r=roc
2012-08-29 17:48:45 +12:00
Robert O'Callahan
0cff39f9ec
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
958ce7d98d
Bug 539356 - Part 9c - Remove old invalidation code. r=bz
2012-08-29 17:39:31 +12:00
Ed Morley
c863356300
Revert mozilla-inbound to e4dd1fa6d222 for crashes and test failures on a CLOSED TREE
2012-09-27 16:34:46 +01:00
Matt Woodrow
e3ab671352
Bug 539356 - Make the table code use rect invalidation to avoid over invalidation. r=roc
2012-08-29 17:48:45 +12:00
Robert O'Callahan
797525b693
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
c73c0db2f1
Bug 539356 - Part 9 - Implement DLBI. r=roc,bz,jwatt
2012-08-29 17:38:58 +12:00
Arnaud Sourioux
815396c1bb
Bug 733186: Annotate ~1000 methods with MOZ_OVERRIDE in /layout r=dholbert r=dbaron
2012-09-14 09:10:08 -07:00
Chris Lord
6b2dc34a0b
Bug 786502 - Separate background layers into separate items. r=roc
...
Separate out background layers into separate display-list items, so that
backgrounds that are a mix of fixed and non-fixed layers will be treated
individually.
2012-09-13 11:34:23 +01:00
Ehsan Akhgari
c87c3701f1
Bug 788014 - Part 2: Reduce the inclusion of prtypes.h in the tree to help using stdint types; r=jrmuizel
...
--HG--
extra : rebase_source : 66b3b6b9858fb032bebcc070347f781bdf61770c
2012-09-06 17:54:59 -04:00
L. David Baron
d069ca43c9
Change some uses of nsChangeHint_ReflowFrame to check nsChangeHint_NeedReflow. (Bug 789592, patch 1) r=bzbarsky
2012-09-07 15:57:06 -07:00
L. David Baron
97226255be
Distribute the width of column-spanning cells to columns with nothing in them, like we do for final table widths. (Bug 734569) r=dholbert
2012-09-07 15:57:06 -07:00
Ehsan Akhgari
0fd9123eac
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
Kyle Huey
fa127e8648
Merge m-c to b-s.
2012-08-15 06:25:20 -07:00
Kyle Huey
3e8f37baab
Bug 697230: Part 0 - Make table frame classes call into their superclass in DidSetStyleContext. r=bz
2012-08-13 14:13:34 -07:00
Aryeh Gregor
0923bf00ef
Bug 780618 - Move all error codes to nsError.h; r=ehsan
2012-07-27 17:03:27 +03:00
Ms2ger
3f950b5744
Bug 780387 - Part b: Stop using PRIntn; r=bsmedberg
2012-08-09 09:09:40 +02:00
David Zbarsky
d50e4a7565
[Bug 780428] Don't include nsIFrame.h in places where it's not necessary r=roc
2012-08-05 23:00:56 -04:00
Tal Aloni
68530a5b53
Bug 778413 - Fix table cell automatic width calculation when using box-sizing:border-box. r=dbaron
2012-08-03 09:05:01 +02:00
Mike Hommey
6173fa297f
Bug 774032 bonus - Use @DEPTH@ and @relativesrcdir@ in Makefile.in. r=ted
2012-08-04 20:26:44 +02:00
Ed Morley
bba173e66e
Revert inbound to 3d5d1daa2505 to stop OS X M5 failures (backout not clean/could have been a bad merge) on a CLOSED TREE
2012-08-04 18:05:15 +01:00
Tal Aloni
b2c4ba86ad
Bug 778413 - Fix table cell automatic width calculation when using box-sizing:border-box. r=dbaron
2012-08-03 09:05:01 +02:00
Cameron McCormack
f41c8a5fe8
Bug 655877 - Part 14: Ignore float in SVG text frames. r=roc
2012-08-02 21:38:49 +10:00
Aryeh Gregor
c31bbdf30a
Bug 777292 - Return -1 from nsTableRowGroupFrame::FindLineContaining on null param; r=roc
2012-07-27 17:03:25 +03:00
Aryeh Gregor
e806eeab4f
Bug 777292 part 2 - Change all nsnull to nullptr
2012-07-30 17:20:58 +03:00
Rafael Ávila de Espíndola
9115f02bb5
Bug 774040 - remove unused field. r=roc.
2012-07-15 00:20:24 -04:00
Tal Aloni
196d5ba025
Bug 338554 - Honor -moz-box-sizing on table cells in standards mode (we ignore it in quirks mode). r=dbaron
2012-07-12 19:28:52 -04:00
Nathan Froyd
a7eb97f896
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
Ehsan Akhgari
5e6974df88
Backout changeset f568fc280fb0 (bug 539356) because of performance and correctness regressions
2012-07-03 20:24:55 -04:00
Ehsan Akhgari
5681317888
Backout changeset 071d6332729b (bug 770058 part 1) because DLBI is being backed out
2012-07-03 19:38:00 -04:00
Robert O'Callahan
16e3ef3b5f
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-07-03 14:24:14 +12:00
Tal Aloni
c2e7a66cfa
Bug 248239 - Change standards mode height calculations for table cells to use content-box sizing rather than border-box sizing by default (and to honor -moz-box-sizing, which we do not do in quirks mode). Also remove -moz-box-sizing: border-box from default style for caption element (all modes). r=dbaron
2012-06-30 12:01:31 -04:00
Matt Woodrow
cbd39105d9
Bug 539356 - Part 9 - Implement DLBI. r=roc,bz,jwatt
2012-06-30 15:06:11 +12:00
L. David Baron
58798efed4
Backout changeset 1e2b9cdc486b (Bug 248239) due to failure of tests/MochiKit-1.4.2/tests/test_MochiKit-Style.html .
2012-06-26 18:16:09 -07:00
Tal Aloni
bded505e94
Change standards mode height calculations for table cells to use content-box sizing rather than border-box sizing by default (and to honor -moz-box-sizing, which we do not do in quirks mode). Also remove -moz-box-sizing: border-box from default style for caption element (all modes). (Bug 248239) r=dbaron
2012-06-26 16:24:23 -07:00
Jonathan Watt
6380335603
Bug 767388 - Kill NS_DEBUG. r=bz.
...
--HG--
extra : rebase_source : d045208a26345712dbb4628c973c616cd9504f28
2012-06-25 20:59:42 +01:00
Mats Palmgren
37fd0ed7aa
Bug 759249. r=bz
2012-06-01 21:56:33 +02:00
Mats Palmgren
28ae1b8cb6
Bug 759249. r=bz
2012-06-01 21:56:33 +02:00
L. David Baron
06fa5d4558
Rename nsStyleBorder::GetActualBorderWidth to GetComputedBorderWidth. (Bug 713643, patch 4) r=bzbarsky
2012-05-30 22:19:49 -07:00
L. David Baron
09d883079b
Remove nsStyleBorder::GetActualBorder, since it now does the same thing as nsStyleBorder::GetComputedBorder. (Bug 713643, patch 3) r=bzbarsky
2012-05-30 22:19:49 -07:00
Trevor Saunders
3b1f9183dc
bug 759033 - nsAccessible -> Accessible and nsAccessibleWrap -> AccessibleWrap r=surkov
...
--HG--
rename : accessible/src/atk/nsAccessibleWrap.cpp => accessible/src/atk/AccessibleWrap.cpp
rename : accessible/src/atk/nsAccessibleWrap.h => accessible/src/atk/AccessibleWrap.h
rename : accessible/src/base/nsAccessible.cpp => accessible/src/generic/Accessible.cpp
rename : accessible/src/base/nsAccessible.h => accessible/src/generic/Accessible.h
rename : accessible/src/mac/nsAccessibleWrap.h => accessible/src/mac/AccessibleWrap.h
rename : accessible/src/mac/nsAccessibleWrap.mm => accessible/src/mac/AccessibleWrap.mm
rename : accessible/src/msaa/nsAccessibleWrap.cpp => accessible/src/msaa/AccessibleWrap.cpp
rename : accessible/src/msaa/nsAccessibleWrap.h => accessible/src/msaa/AccessibleWrap.h
rename : accessible/src/other/nsAccessibleWrap.cpp => accessible/src/other/AccessibleWrap.cpp
rename : accessible/src/other/nsAccessibleWrap.h => accessible/src/other/AccessibleWrap.h
2012-05-28 21:18:45 -04:00
Ed Morley
c5acb642c1
Merge mozilla-central to mozilla-inbound
2012-05-21 13:19:38 +01:00
Gervase Markham
ca171eec44
Bug 716478 - update licence to MPL 2.
2012-05-21 12:12:37 +01:00
L. David Baron
88a762e752
Replace AutoMaybeNullInflationContainer with AutoMaybeDisableInflationForShrinkWrap since the concept of the pres context's current inflation container will be going away. (Bug 747720, patch 2) r=roc
2012-05-20 22:18:27 -07:00
Benjamin Smedberg
4f91700da9
Bug 734847 part 2 - treewide changes resulting from the default-infallibility of hashtables; either remove useless result checks, or use the fallible version of APIs, depending on context, r=jlebar
...
--HG--
extra : rebase_source : 844b008c5167e6ca39a7ba9eeec8b30672938704
2012-05-18 13:30:49 -04:00
Mats Palmgren
f86f27bb38
Bug 751227 - Remove nsPresShell::mStackArena, make it a separate stack class. r=roc
2012-05-04 02:14:02 +02:00
Michał Frontczak
7b3289d675
Bug 727722 - Create an accessible for HTML table row by frame, r=tbsaunde, roc, surkov
2012-04-25 12:06:21 +09:00
Robert O'Callahan
dcc4fc6d0f
Bug 735898. Part 7: Remove expensive nsIFrame::HasBorder checks, just check style instead. r=dbaron,a=blocking-fennec
2012-04-18 17:14:31 +12:00
L. David Baron
8c67e2ae8b
Add a font inflation data structure per block formatting context. (Bug 706193, patch 2) r=roc
...
This structure is per block formatting context because we have to make a
single inflation decision for things like consecutive runs of paragraphs
of text. Inflating some paragraphs and not others (within the same
sequence of adjacent paragraphs) based on the amount of text in each one
would be disastrous. Otherwise it's ideal for the units to be as small
as possible as long as they merge such sequences; therefore this uses a
definition corresponding to CSS's idea of elements that establish new
block formatting contexts.
2012-04-16 15:32:12 -07:00