Commit Graph

721 Commits

Author SHA1 Message Date
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
Robert O'Callahan
89d50b3d5f Bug 770106. nsDisplayButtonBorderBackground should use the button's border-box for hit-testing, not its visual overflow area. r=mattwoodrow 2012-09-28 23:19:38 +12:00
Matt Woodrow
958ce7d98d Bug 539356 - Part 9c - Remove old invalidation code. r=bz 2012-08-29 17:39:31 +12:00
Matt Woodrow
f4205ce848 Bug 539356 - Part 9b - Add new frame invalidation API. r=roc 2012-08-29 17:39:01 +12:00
Matt Woodrow
cdbc43ed27 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
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
c73c0db2f1 Bug 539356 - Part 9 - Implement DLBI. r=roc,bz,jwatt 2012-08-29 17:38:58 +12:00
Bobby Holley
9f03f90fb7 Bug 792036 - Automated fixups. r=mccr8
find /files/mozilla/build/d/_tests/testing/mochitest/tests/ | egrep "\.(xhtml|html|xml|js)$" | grep -v SimpleTest | grep -vi mochikit | grep -v simpleThread | grep -v test_ipc_messagemanager_blob.html | grep -v "indexedDB/test" | xargs grep -l Components |  xargs grep -L enablePrivilege | perl -pe 's#.*mochitest/tests/##' | xargs perl -p -i.bakkk -e 's/Components\.interfaces(\s|;|\.|\[)/SpecialPowers\.Ci$1/g, s/SpecialPowers\.wrap\(Components\)\.(.)(lasses|tils|nterfaces|esults)/SpecialPowers.C$1/g, s/(?<![\.a-zA-Z])Components/SpecialPowers\.Components/g, s/window\.Components/window\.SpecialPowers\.Components/g'
2012-09-24 14:46:29 +02:00
Ehsan Akhgari
b5c39afb4e Bug 792502 - Kill the FunctionTimer code; r=vlad 2012-09-19 16:59:38 -04:00
Mark Capella
5a5ba0a45c Bug 785091 - Remove nsIEditorObserver, r=ehsan 2012-09-17 11:14:56 -04:00
Peter Van der Beken
71b55b1f68 Fix for bug 788532 (Add the new DOM bindings API to DOM lists). r=bz.
--HG--
extra : rebase_source : 18e21a786b6a9cc2aeada52ba5ca3a2614cb596b
2012-09-05 22:49:53 +02:00
Ms2ger
47a96e8525 Bug 788491 - Remove kSizeNotSet constants; r=roc 2012-09-17 10:37:20 +02:00
Matt Woodrow
891faaf4e5 Bug 788044 - Make transformed frames the reference frame for their display list tree. r=roc 2012-09-16 22:32:59 +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
Andrew Quartey
a925f34f59 Bug 786172 - Fire change event for file dropped on file select box r=mounir 2012-09-14 10:38:04 -04:00
Arnaud Bienner
5e3ccaf633 Bug 790093 - Remove unnecessary const_cast in nsGfxButtonControlFrame.cpp. r=sicking 2012-09-11 11:26:29 +01:00
Bobby Holley
00bcee83e8 Bug 789494 - Rip enablePrivilege out of misbehaving mochitests. r=mccr8 2012-09-11 01:05:10 -07:00
Andrew McCreight
e833ece4f7 Bug 775868, part 1: make tests access DomWinUtils via SpecialPowers. r=smaug 2012-09-10 12:43:45 -07:00
Ryan VanderMeulen
bdca80da9c Backout bug 788914 and bug 789494 because they were backed out on inbound. 2012-09-07 19:40:57 -04:00
Bobby Holley
1743880368 Bug 789494 - Rip enablePrivilege out of misbehaving mochitests. r=mccr8 2012-09-07 11:28:56 -07:00
Mats Palmgren
90308eda3d Bug 783405 - Remember the y-positions used for estimating space above and below for the dropdown. r=smaug,roc 2012-09-06 02:17:57 +02:00
Aryeh Gregor
920c5474b3 Bug 782594 - Use NS_FAILED instead of boolean test (content/, js/xpconnect/, layout/); r=bz 2012-08-07 17:58:47 +03:00
Boris Zbarsky
bdd656ebd3 Bug 782660. Resizing a text control frame with borders should invalidate the borders as needed. r=roc 2012-08-29 01:14:46 -04:00
Boris Zbarsky
8ec001feea Bug 785754. Fix handling of max-height for frame classes that still seem to think that the mComputedMinHeight/mComputedMaxHeight of a reflow state are border-box heights, not content-box heights. r=mats 2012-08-27 15:46:23 -04: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
Charly Molter
db958503bc Bug 776265 - changing the way ComputeHeightValue works to make it work just
like ComputeWidthValue already does. this fixes {min,max}-height + adding
  reftests for {min,max}-{height,width} r=mats
2012-08-08 17:58:26 +02:00
Brian R. Bondy
6ae40bb347 Bug 731307 - Async filepicker test changes. r=roc 2012-08-17 11:35:01 -04:00
Mats Palmgren
6a7102e955 Bug 780661 - Update mDropdownCanGrow also when the position is currently outside viewport to allow a resize later at a different position. Also, don't call PositionFrameView unless the position really changed to avoid infinite number of calls to AbsolutelyPositionDropDown (via nsResizeDropdownAtFinalPosition event from NotifyGeometryChange). r=roc 2012-08-15 04:28:23 +02:00
Ms2ger
3f950b5744 Bug 780387 - Part b: Stop using PRIntn; r=bsmedberg 2012-08-09 09:09:40 +02:00
Ms2ger
c7a5b33778 Bug 716822 - Move attributes and methods on nsIDOMNSEvent to nsIDOMEvent; r=smaug 2012-08-04 09:44:00 +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
Ms2ger
babf67cce2 Bug 716822 - Move attributes and methods on nsIDOMNSEvent to nsIDOMEvent; r=smaug 2012-08-04 09:44:00 +02:00
Cameron McCormack
ba7efb66ff 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
f41c8a5fe8 Bug 655877 - Part 14: Ignore float in SVG text frames. r=roc 2012-08-02 21:38:49 +10:00
Aryeh Gregor
903f6c9c84 Bug 777292 - Convert incorrect conversions to nsresult and fix named constants; r=ehsan 2012-07-27 16:59:29 +03:00
Aryeh Gregor
e806eeab4f Bug 777292 part 2 - Change all nsnull to nullptr 2012-07-30 17:20:58 +03:00
Wes Johnston
9f5ee4bbb4 Bug 773741 - Test using touch events on resizers. r=enn 2012-07-27 15:01:13 -07:00
Elika Etemad
e1c5081ab6 Bug 774835: Refactor nsHTMLReflowState::ApplyMinMaxConstraints to separate behavior of width and height. [r=roc]
--HG--
extra : rebase_source : c6a25e9c19c65d86013ddf8afc15026ca02321c4
2012-07-18 10:26:05 -04:00
Rafael Ávila de Espíndola
4c2f8f408c Bug 774038 - remove unused field. r=roc. 2012-07-15 00:18:01 -04:00
Aryeh Gregor
b0041eadcc Bug 772807 - Clean up editor/ includes with include-what-you-use; r=ehsan 2012-07-13 09:33:42 +03: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
Aryeh Gregor
09a0d8a8a6 Bug 765595 part 2 - De-COMtaminate nsEditor::mTxnMgr; r=ehsan 2012-06-19 16:23:36 +03:00
Ehsan Akhgari
5e6974df88 Backout changeset f568fc280fb0 (bug 539356) because of performance and correctness regressions 2012-07-03 20:24:55 -04:00
David Zbarsky
ae718ee1c0 Bug 763350 - Clean up some includes in content/ and dom/ r=smaug 2012-07-01 16:45:59 -07:00
Matt Woodrow
cbd39105d9 Bug 539356 - Part 9 - Implement DLBI. r=roc,bz,jwatt 2012-06-30 15:06:11 +12:00
Jonathan Watt
6380335603 Bug 767388 - Kill NS_DEBUG. r=bz.
--HG--
extra : rebase_source : d045208a26345712dbb4628c973c616cd9504f28
2012-06-25 20:59:42 +01:00
Charly Molter ext:(%20and%20Alexandre%20Dumont%20%3CAlexandre%20Dumont%20%3E)
f924084c27 Bug 716875 - Make nsTextControlFrame inherits from nsContainerFrame instead of nsStackFrame. r=roc,bz 2012-06-23 13:11:00 +02:00
Mats Palmgren
0cdf1d13a9 Bug 575294 - s/mFocused/sFocused/. part=5/5 r=smaug 2012-06-23 03:13:56 +02:00
Mats Palmgren
e77c8dbeb1 Bug 575294. part=4/5 r=roc 2012-06-23 03:13:56 +02:00