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
Randell Jesup
65539ef89c
Bug 773151: Convert nsCAutoString->nsAutoCString CLOSED TREE r=bsmedberg
2012-09-01 22:35:17 -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
Jan Varga
c1666d90e8
Bug 779684 - Move FrameIteratorFlags to nsFrameIterator class. r=roc
2012-08-06 20:27:04 -04:00
David Zbarsky
dca3fd6326
Bug 779684: Create a stack-based nsFrameIterator class out of nsIFrameTraversal and nsIFrameEnumerator r=roc
...
--HG--
rename : layout/base/nsFrameTraversal.cpp => layout/base/nsFrameIterator.cpp
rename : layout/base/nsFrameTraversal.h => layout/base/nsFrameIterator.h
2012-08-05 23:00:55 -04:00
Neil Deakin
e508ec64c1
Bug 777339, Use prlogging for focus instead of enabling a define, allowing for easier enabling of focus logging, r=smaug
2012-07-30 20:43:28 -04:00
Aryeh Gregor
c81630fddb
Bug 777292 - Convert incorrect conversions to nsresult and fix named constants; r=ehsan
2012-07-27 16:59:29 +03:00
Aryeh Gregor
d0ad5a7d0c
Bug 777292 part 2 - Change all nsnull to nullptr
2012-07-30 17:20:58 +03:00
Tim Taubert
2598776223
Bug 771555 - Revert setting DEBUG_FOCUS to avoid spamming the console; rs=jdm,unfocused
2012-07-11 11:12:44 +02:00
Michael Ratcliffe
43ee872060
Bug 771555 - GCLI needs a addon, resize, restart, cookie and pagemanip commands; r=dcamp,jwalker
2012-07-10 17:53:04 +01:00
David Zbarsky
d2ee12f6f9
Bug 763350 - Clean up some includes in content/ and dom/ r=smaug
2012-07-01 16:45:59 -07:00
Chris Jones
4670001039
Bug 761927: Fix focus for <iframe mozbrowser remote>. r=jlebar,Enn
2012-06-22 18:27:30 -07:00
Mats Palmgren
add9e224d4
Bug 575294, bug 760946. part=1/5 r=enndeakin,smaug
2012-06-23 03:13:56 +02:00
Andrew McCreight
64edc63a64
Bug 750820 - make oldFocusedContent an nsCOMPtr in nsGlobalWindow::PageHidden. r=bz
2012-05-18 15:19:34 -07:00
Aryeh Gregor
7737d5d63f
Bug 762862 - Rename nsTypedSelection to mozilla::Selection; r=ehsan
...
--HG--
rename : layout/generic/nsTypedSelection.h => layout/generic/Selection.h
2012-06-08 17:20:55 +03:00
Ms2ger
02a7eb4e87
Bug 760156 - Cleanup LOCAL_INCLUDES in content/media/; r=sicking
...
This patch makes it possible to include nsGenericHTMLElement.h without adding
to LOCAL_INCLUDES.
2012-06-06 09:40:02 +02:00
Mats Palmgren
f8e32e8cae
Back out bug 575294, bug 726264. (cset 1727de7d26ec, 6bcea3a628d8, 011c1c8e9cc7, 0be261a5042b, d51338c5cd0c)
2012-06-03 18:05:00 +02:00
Mats Palmgren
42ce41b167
Bug 575294. part=1/4 r=enndeakin
2012-06-02 01:41:54 +02:00
Neil Rashbrook
5552ba932a
Bug 626441 Moving the caret should not look for panels r=Enn
2012-05-30 08:39:17 +01:00
Gervase Markham
82ff7027aa
Bug 716478 - update licence to MPL 2.
2012-05-21 12:12:37 +01:00
Trevor Saunders
bfcb62b32b
bug 693933 - make nsFrameSelection::GetSelection() return nsTypedSelection* r=smaug
2012-04-06 17:54:38 -04:00
Adam Dane [:hobophobe]
a4e77c0d40
Bug 720126 - Update scroll API to use ScrollAxis parameters (where and when). r=roc
2012-03-19 21:09:50 -05:00
Tim Taubert
05ac8de7e4
Bug 731726 - Moving the parentNode of a focused DOM node does not remove the node's focus ring; r=Enn
2012-03-05 20:59:50 +01:00
Neil Deakin
463ad224a7
Bug 653230, add panels with focusable elements into the document tab navigation order, r=smaug
2012-02-23 16:02:33 -05:00
Neil Deakin
56733ed31b
Bug 670317, add a focus manager flag to restrict tab navigation to the same frame, r=smaug
2012-02-13 14:24:28 -05:00
Ms2ger
fa49b00e76
Bug 718504 - Remove some GetChildAt callers; r=smaug
2012-01-25 08:50:07 +01:00
Olli Pettay
3065412dbd
Bug 704583 - Add testing mode to FocusManager, p=enn,smaug r=smaug,enn
2012-01-13 14:42:18 +02:00
Neil Rashbrook
27f9d856f2
Bug 669026 Fix caret movement when contenteditable areas are present r=ehsan
2011-12-24 00:11:30 +00:00
Chris Pearce
7f4921dbd7
Bug 706672 - Revoke DOM full-screen when windowed plugin focused on non-MacOSX systems, and deny requests for full-screen from non-focused-tab documents. r=smaug
2011-12-16 10:42:36 +13:00
Masayuki Nakano
97702be0bf
Bug 685395 part.3 Rename SetInputMode()/GetInputMode() to SetInputContext()/GetInputContext() and make SetInputContext() take the reason by a separated argument r=roc, sr=matspal
2011-11-27 20:51:52 +09:00
Masayuki Nakano
cbcebd2356
Bug 685395 part.2 Move IMEContext to mozilla::widget::InputContext r=roc
2011-11-27 20:51:52 +09:00
Eitan Isaacson
5256c20b37
Bug 700741 - Add and implement nsIFocusManager.elementIsFocusable r=Enn
2011-11-10 08:20:47 -08:00
Timothy Nikkel
f10d3e436c
Bug 658005. Part 2. Add a frame visibility API that takes into account everything we need, and use it. r=roc
2011-10-26 18:57:55 -05:00
Olli Pettay
4533393482
Bug 695758 - Don't limit E10s event/focus handling to xul:browser, but allow also xul:iframe, r=felipe
2011-10-20 15:11:31 +03:00
Olli Pettay
2c2da3099f
Bug 682420 - Rename nsINode::GetOwnerDoc to nsINode::OwnerDoc, part 1, r=jst
...
--HG--
extra : rebase_source : baf1a25cdea68d499a7673fdf96e27b5a12dc83c
2011-10-18 13:53:36 +03: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
Yazen Ghannam
3ab154a129
Bug 677085 - Merge "nsIDOMNSHTMLFrameElement" into "nsIDOMHTMLFrameElement"; r=bz
2011-10-15 09:34:31 +02: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
Alexander Surkov
85f57ffd5d
Bug 673958 - rework accessible focus handling, r=enndeaking, marcoz, tbsaunde, matspal, f=marcoz
...
--HG--
rename : accessible/tests/mochitest/test_aria_activedescendant.html => accessible/tests/mochitest/events/test_focus_aria_activedescendant.html
rename : accessible/tests/mochitest/events/test_focus.html => accessible/tests/mochitest/events/test_focus_dialog.html
rename : accessible/tests/mochitest/events/test_focusdoc.html => accessible/tests/mochitest/events/test_focus_doc.html
rename : accessible/tests/mochitest/events/test_focus.xul => accessible/tests/mochitest/events/test_focus_general.xul
rename : accessible/tests/mochitest/states/test_comboboxes.xul => accessible/tests/mochitest/states/test_expandable.xul
rename : accessible/tests/mochitest/test_nsIAccessible_selects.html => accessible/tests/mochitest/states/test_selects.html
2011-09-28 10:46:11 +09:00
Masayuki Nakano
6dbdf2a345
Bug 669028 part.8 dom should use mozilla::LookAndFeel rather than nsILookAndFeel r=enndeakin
2011-09-09 11:27:12 +09:00
Ehsan Akhgari
523ebb7851
Bug 677661 - Remove nsTPtrArray and add a SafeElementAt(index_type) API to nsTArray when it's instantiated with a pointer type; r=sicking
2011-08-10 01:36:00 -04:00
Felipe Gomes
cd0044077e
Bug 583976. Part 1 - Add focus manager support for focus activation/deactivation in remote content. r=enn,smaug
2011-06-17 17:08:32 -07:00
Jonas Sicking
07c1f0b90f
Bug 658714 Part 5: Search'n'replace nsPIDOMEventTarget to nsIDOMEventTarget. r=smaug
2011-06-23 19:18:00 -07:00
Olli Pettay
aa731ac235
Bug 664438 - Don't keep DelayedBlurFocusEvents alive after xpcom-shutdown, e=enndeakin
...
--HG--
extra : rebase_source : 0925e4bb6d640e26d40f00ebe5c7f2c849a03e71
2011-06-18 12:12:13 +03:00
Jonas Sicking
fd28a5666a
Bug 659539 Part 4: Use nsINode::NodeType where possible. r=bz
2011-06-14 00:56:50 -07:00
Jonas Sicking
9bf170cc97
Bug 659053 Part 2: Implement a faster non-recursive Node.isEqualNode directly on nsINode. r=peterv
2011-06-14 00:56:48 -07:00
Boris Zbarsky
227db86144
Bug 598833 part 5. Store focus and focusring state directly on elements. r=smaug,enn
2011-05-31 21:46:56 -04:00
Boris Zbarsky
b26e5d06c1
Bug 657353 part 2. Switch content state updates away from calling Begin/EndUpdate. r=sicking
2011-05-31 17:38:25 -04:00
Ms2ger
1d927b646a
Bug 659743 - Part b: Remove nsImageMapUtils; r=smaug
2011-05-30 13:00:00 +02:00
Masayuki Nakano
0ca0078601
Bug 659913 part.3 Use AddObservers and RemoveObservers if the caller uses these methods of Preferences two or more times r=roc
2011-05-29 08:39:27 +09:00