Commit Graph

5201 Commits

Author SHA1 Message Date
Ehsan Akhgari
bd2885b68c Backout changeset 9e38c5518605, fc59bd8d49ba, d0ba1abde985, and acf91f25f228 (bugs 796119, 796279, and 797106) because of broken reftests on 64-bit platforms 2012-10-02 23:16:36 -04:00
Nathan Froyd
d229c75d1c Bug 796279 - remove remaining PR_MAX instances from the tree; r=ehsan
We can't use NS_MAX or std::max because we lack uniform constexpr
support across our supported compilers.  But we can do a simple inline
max ourselves.
2012-10-01 20:38:21 -04:00
Ehsan Akhgari
ec1aa47e36 Bug 793880 - Fix the assertion in nsCSSSelector::SetPseudoType to shut up the compiler warning; r=dholbert
--HG--
extra : rebase_source : 058dcc17c37915fa9937f7eafb1b3a93b78384f2
2012-10-02 15:50:50 -04:00
Zack Weinberg
a1114e2edb Another round of diagnostics for bug 536603. 2012-10-02 09:50:19 -04:00
Zack Weinberg
fcb7c926ea Revert previous set of diagnostics for bug 536603. 2012-10-02 09:14:58 -04:00
Timothy Nikkel
2020d1d523 Bug 784591. Add an optional argument to the unlock image api on documents so that we can request that the image be discarded only in some situations. r=khuey 2012-10-01 12:53:57 -05: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
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
Simon Montagu
13c3b3bdbc Add vendor prefix to :dir selector. Bug 562169, r=dbaron 2012-09-29 13:41:10 -07:00
Jonathan Kew
d4ed66097a bug 674373 pt 6 - support HiDPI display in Cocoa widget code. r=roc,smichaud 2012-09-29 12:36:09 +01:00
Jonathan Kew
7c72bd5ca4 bug 674373 pt 5 - provide a fullZoom API in nsIDOMWindowUtils, and use this rather than inferring zoom from CSS to device pixel ratio. r=roc 2012-09-29 12:35:19 +01:00
Jonathan Kew
ed41d7aef7 bug 674373 pt 4 - pass device-to-CSS pixel ratio to LookAndFeel code when requesting a font style. r=roc 2012-09-29 12:35:08 +01:00
Ed Morley
d3c2c6f0a2 Backout ec0dcd401a3f (bug 786108) for crashes 2012-09-28 22:04:56 +01:00
Seth Fowler
c8791ccf26 Bug 786108 - Cache UTF-16 version of URI to prevent repeated conversions in the CSS scanner, and free the cache after a short time. r=bz 2012-09-28 09:56:47 -07:00
Isaac Aggrey
481e7dfb0b Bug 791906: Replace NSPR integer limit constants with stdint ones; r=ehsan 2012-09-28 01:57:33 -05: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
Kyle Huey
65bdaea268 Bug 793554: Devirtualize mozilla::css::Loader::[AddRef|Release] r=dbaron 2012-09-24 07:29:24 -07:00
Zack Weinberg
0e4d900c9d Diagnostic instrumentation for bug 536603. 2012-09-23 11:18:10 -04:00
Robert O'Callahan
f745e28a4c Bug 772726. Part 13: Fix handling of transforms in gfxTextObjectPaint. r=eflores,jwatt
gfxTextObjectPaint::GetFillPattern/GetStrokePattern should take the destination's CTM
as a parameter in order to set up the pattern matrix correctly, since the pattern matrix
is combined with the CTM by cairo/Thebes --- but we want the pattern rendering to be
independendt of the CTM, instead depending only on the TM set up when we initialized
the gfxTextObjectPaint.
We make SVGTextObjectPaint store matrices that map device space to pattern space.
2012-09-12 17:13:12 +12:00
Ehsan Akhgari
8cc30b88b2 Bug 792502 - Kill the FunctionTimer code; r=vlad 2012-09-19 16:59:38 -04:00
Ehsan Akhgari
43a4fb885a Bug 788275 - Part 0: Make nsCORSListenerProxy's constructor not cause the object to be destroyed before it is constructed; r=bzbarsky
That is always a nice property to have!
2012-09-18 22:16:23 -04:00
L. David Baron
5ece48d32a Fix assertion failure causing orange. (Bug 774169) 2012-09-18 12:51:47 -07:00
L. David Baron
550706a221 Bug 774169, patch 4: Revert bug 719054 for prefixed -moz-transform but leave it for unprefixed transform. r=bzbarsky 2012-09-18 11:37:14 -07:00
L. David Baron
c3051f8b6a Bug 774169, patch 3: Treat -moz-transform as a shorthand rather than an alias so the parsing function can know whether it is parsing a prefixed transform. r=bzbarsky 2012-09-18 11:37:14 -07:00
L. David Baron
aa7554cffd Bug 774169, patch 2: Add property_database.js entries for property aliases. r=bzbarsky
This adds entries for property aliases as though they are shorthands.
This fits with the CSS working group's recent resolution to describe
aliases as shorthands, recorded in
http://lists.w3.org/Archives/Public/www-style/2012Aug/0770.html .

The property_database.js entries themselves are copied from the
non-alias entries for the properties, with these changes:
 (1) The property name is changed to the prefixed form
 (2) The domProp entry is changed to the prefixed form
 (3) Adding alias_for entries for each property.
 (4) When type is CSS_TYPE_LONGHAND in the target of the alias, type for
     the alias is CSS_TYPE_SHORTHAND_AND_LONGHAND and a subproperties
     entry is added with the target of the alias.

There are also some indentation fixes to the copied entries in
property_database.js (made before they were copied, and thus affecting
the original as well).
2012-09-18 11:37:14 -07:00
L. David Baron
3dbdd53759 Bug 774169, patch 1: Make the property_database.js-based tests call getComputedStyle() for all properties that are expected to have longhand behavior. r=bzbarsky
This currently only affects the testing of overflow, but it will also
affect -moz-transform (and any other aliases implemented the same way)
after the later patches in this bug.

This special-cases text-decoration because text-decoration: inherit causes
the color to inherit in a way that we can't serialize the result (since
it's no longer "foreground").  (This isn't great; we might want to
consider fixing it somehow.)
2012-09-18 11:37:14 -07:00
L. David Baron
7204dd91a1 Remove aPresContext parameter to nsStyleContext constructor and document parameters to constructor. (Bug 791416) r=bzbarsky 2012-09-18 11:37:13 -07:00
David Zbarsky
ee2c50e32a Fix typo in comment, no bug, r=me 2012-09-18 14:01:03 -04:00
Anthony Ricaud
156073c088 Bug 570326 - Add support for background-size in background shorthand property. r=dbaron 2012-09-16 20:20:15 -04:00
L. David Baron
f91cf8d1d2 Add more profile labels for the separate parts of restyle processing. (Bug 790379) rs=cjones 2012-09-14 14:12:34 -07:00
Arnaud Sourioux
a84a1b22ad Bug 733186: Annotate ~1000 methods with MOZ_OVERRIDE in /layout r=dholbert r=dbaron 2012-09-14 09:10:08 -07:00
Chris Lord
0f17d35c1d 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
Daniel Holbert
e3a493c406 Bug 666041 patch 4.5: Add support for custom flex container sizes to test_flexbox_layout.html, and give it some testcases that exercise our float-accumulation-error-handling code. r=dbaron (DONTBUILD because this test is currently disabled on trunk) 2012-09-11 18:07:49 -07:00
Mats Palmgren
6eaf6d0d2b Bug 788836 - Simplify @-keyword parsing by letting ParseAtKeyword deal with everthing after the @. Make it pass the first char to GatherIdent so that it returns false for a bad escape sequence at the start. r=dbaron 2012-09-12 00:20:52 +02:00
Boris Zbarsky
b97e3a8dcd Bug 787554. Don't prefix WebIDL getters names with a Get if they look like simple member access on the C++ side. r=peterv 2012-09-11 20:08:24 +01:00
Gabor Krizsanits
281bb59626 Bug 737003 - Offer a way to apply user agent stylesheet on a given document; r=bz 2012-09-11 13:51:10 +02:00
Daniel Holbert
1dc8cb22b6 Bug 789382: Change nsIScriptError methods init() and initWithWindowID() to take nsAString, rather than wchar / PRUnichar*. r=bz sr=bsmedberg 2012-09-09 16:29:12 -07:00
Chris Pearce
b902066d4c Bug 779286 - Allow document.documentElement to still be scrollable when made fullscreen. r=roc 2012-09-10 10:10:00 +12:00
L. David Baron
77cd0aa639 Rename nsChangeHint_ReflowFrame to nsChangeHint_AllReflowHints to make it clearer that it's the one that contains multiple bits. (Bug 789592, patch 2) r=bzbarsky 2012-09-07 15:57:06 -07:00
L. David Baron
bee6952552 Change some uses of nsChangeHint_ReflowFrame to check nsChangeHint_NeedReflow. (Bug 789592, patch 1) r=bzbarsky 2012-09-07 15:57:06 -07:00
Boris Zbarsky
bd17d79bab Bug 786946. Don't propagate text-decoration to <select> by default. r=dbaron
--HG--
rename : layout/reftests/text-decoration/underline-button-1-ref.html => layout/reftests/text-decoration/underline-select-1-ref.html
rename : layout/reftests/text-decoration/underline-button-1.html => layout/reftests/text-decoration/underline-select-1.html
rename : layout/reftests/text-decoration/underline-button-1-ref.html => layout/reftests/text-decoration/underline-select-2-ref.html
rename : layout/reftests/text-decoration/underline-button-1.html => layout/reftests/text-decoration/underline-select-2.html
2012-09-07 10:51:34 -04:00
L. David Baron
81693a03dd Remove ForceCompare methods from style structs. (Bug 779968, patch 7) r=bzbarsky 2012-09-07 10:13:36 -07:00
L. David Baron
9ae6c3259d Make nsStyleContext::CalcStyleDifference force comparison based on the parent's hint instead of the style struct ForceCompare methods. (Bug 779968, patch 6, the main patch) r=bzbarsky
This propagates the non-inherited (in the nsChangeHint sense, not the
CSS inheritance sense) parts of the parent's change hint through
ReResolveStyleContext so that we can use them in
nsStyleContext::CalcDifference.  In the cases where we don't know the
parent's hint, we assume the worst, that all the non-inherited hints
were present in the parent's style change.

This should be a significant performance improvement handling simple
style changes (such as a style attribute change setting a non-inherited
property) on elements with large numbers of descendants that have data
in ForceCompare structs that can't be stored in the rule tree (for
example, margins or widths in em or rem units).
2012-09-07 10:13:36 -07:00
L. David Baron
2b664f79ba Refix bug 731521 in the new setup for forcing comparison in nsStyleContext::CalcDifference, since we can no longer rely on nsStyleBorder::ForceCompare. (Bug 779968, patch 5) r=bzbarsky 2012-09-07 10:13:36 -07:00
L. David Baron
5b62990545 Abstract nsChangeHint_NonInherited_Hints into a function so that it accurately reports the reflow cases to all callers. (Bug 779968, patch 4) r=bzbarsky
This is in preparation for adding an additional caller.

nsChangeHint_NonInherited_Hints will be reintroduced in patch 6, but as
the maximum set of such hints rather than the minimal set, and with the
less confusing name nsChangeHint_Hints_NotHandledForDescendants.
2012-09-07 10:13:36 -07:00
L. David Baron
c596be2ae1 Remove maxHint from nsStyleContext::CalcStyleDifference. (Bug 779968, patch 3) r=bzbarsky 2012-09-07 10:13:36 -07:00
L. David Baron
4846e76d8e Use nsStyleStruct MaxDifference methods instead of maxHint for hint handling in nsStyleContext::CalcStyleDifference. (Bug 779968, patch 2) r=bzbarsky 2012-09-07 10:13:36 -07:00