Commit Graph

2597 Commits

Author SHA1 Message Date
Seth Fowler
f07bf4e48c Bug 503720: Implement vw/vh/vmin/vmax. r=dbaron 2012-10-19 16:21:06 -07:00
Peter Van der Beken
57adeb4354 Fix for bug 773780 (Add API for new DOM bindings for Node). r=bz.
--HG--
extra : rebase_source : 5dd51c4ad5274da9235c8c341b0531f234e95a91
2012-10-09 14:31:24 +02:00
Boris Zbarsky
709a7af847 Bug 799796. Do memory reporting for stylesheets that only the CSS loader might know about. r=dbaron,njn 2012-10-17 17:01:56 -04:00
Boris Zbarsky
611fe536d0 Bug 800983. Expose a getter for default computed style. r=dbaron
An alternative implementation strategy is to add "default-only"
versions of ResolveStyleFor and ResolvePseudoElementStyle and then
modify FileRules to support those, or use a cut-down custom version of
FileRules for them.  That would be faster, but more complicated on the
style set side.  We can always make that switch if we need to, I guess.
2012-10-17 17:01:56 -04:00
Boris Zbarsky
194968b6cb Bug 795520. Don't fail to return a computed CSS declaration just because the style change that will give us a presshell has not been processed yet. r=dbaron
Another, more risky, option would be to always return a declaration
from getComputedStyle, even if we have no presshell, then just throw
(after flushing, as needed) if people try to get style info for it
just like we already do for declarations whose document loses a
presshell.  This might cause compat issues on sites that can deal with
null but not exceptions, though.  :(
2012-10-17 17:01:56 -04:00
Emmanuele Bassi
98dfc6ddf1 Bug 784467 - Switch computed style's url(invalid-url:) to [css3-values]'s url(about:invalid). r=dbaron 2012-10-17 15:33:57 -04:00
Gabor Krizsanits
6403599b60 Bug 676054: part3: nsStyleSheetService::GetInstance. r=bz 2012-10-16 21:45:56 +02:00
Gabor Krizsanits
bda3f0bb14 Bug 676054 - part2: Provide AUTHOR_SHEET type for registering with nsIStyleSheetService. r=bz 2012-10-16 21:45:50 +02:00
Emmanuele Bassi
13034b2dd7 Bug 784466 - [css3-animations] Drop declarations in keyframe rules that have !important. r=dbaron 2012-10-16 09:21:35 -07:00
Daniel Holbert
93791d3f3b Bug 801098: Unprefix flexbox properties & keywords (still preffed off by default). r=dbaron 2012-10-15 12:42:43 -07:00
Nicholas Nethercote
16bd3d758f Bug 800187 (part 1) - Add memory reporter for the nsStyleSheetService. r=bz.
--HG--
extra : rebase_source : fc5c04daa0fd919f11470b090e38e9e8a5f19db6
2012-10-11 21:05:38 -07:00
Jeff Muizelaar
1f76f70875 Bug 799335. Rename nsStyleImage::RequestDecode to StartDecoding. r=dholbert
Now that RequestDecode call StartDecoding this make more sense.

--HG--
extra : rebase_source : ded757b8c90cbc4e5d221c79d2704105e1051183
2012-10-12 16:04:03 -04:00
Josh Matthews
80112a2809 Bug 505385 - Part 18: Reduce number of notifications - START_REQUEST/START_CONTAINER -> SIZE_AVAILABLE, remove START_DECODE and START_FRAME. Rename remaining ones for clarity. r=joe 2012-10-12 12:11:23 -04:00
Josh Matthews
2c57ae944e Bug 505385 - Part 11: Create a new imgINotificationObserver interface to replace all uses of imgIContainerObserver and imgIDecoderObserver outside of image/. r=joe 2012-10-12 12:11:22 -04:00
Josh Matthews
08a5eceeeb Back out bug 585385 for build bustage. 2012-10-11 21:58:24 -04:00
Josh Matthews
ae359191a3 Bug 505385 - Part 18: Reduce number of notifications - START_REQUEST/START_CONTAINER -> SIZE_AVAILABLE, remove START_DECODE and START_FRAME. Rename remaining ones for clarity. r=joe 2012-10-11 21:34:24 -04:00
Josh Matthews
f3459980ad Bug 505385 - Part 11: Create a new imgINotificationObserver interface to replace all uses of imgIContainerObserver and imgIDecoderObserver outside of image/. r=joe 2012-10-11 21:34:23 -04:00
Daniel Holbert
857659da08 Bug 799775 part 2: Add decl to inherit "-moz-order" on table outer frames in ua.css. r=dbaron
--HG--
rename : layout/style/test/file_flexbox_order.html => layout/style/test/file_flexbox_order_table.html
rename : layout/style/test/test_flexbox_order.html => layout/style/test/test_flexbox_order_table.html
2012-10-11 14:33:24 -07:00
Daniel Holbert
e474f16541 Bug 799775 part 1: General mochitest for 'order' property reordering items in a flex container. rs=dbaron 2012-10-11 14:33:24 -07:00
David Zbarsky
307c734c43 [Bug 799407] Fix build warnings in layout r=roc 2012-10-10 01:00:05 -04:00
Nicholas Nethercote
d89f667caf Bug 768901 - Don't double-count shared nsCSSStyleSheetInners. r=bz.
--HG--
extra : rebase_source : f8ba1cce0b4b12915bc5faf2f9edfd56a5305178
2012-10-09 20:03:18 -07:00
Jeff Walden
c8bc078730 Eliminate a few nullptr-to-bool conversions to avoid a clang warning (which we upgrade to error) in some clang revs. No bug, r=sparky
--HG--
extra : rebase_source : 6b45c8e1dd07449a5ebc34704c19e05fe155f628
2012-10-09 16:14:42 -07:00
Boris Zbarsky
e192ce8c57 Bug 795221 part 4. Hook up <link> elements to cycle collect their stylesheet. r=smaug
--HG--
rename : content/html/content/crashtests/795221-1.html => content/html/content/crashtests/795221-3.html
2012-10-07 22:39:09 -04:00
Boris Zbarsky
529cae9883 Bug 795221 part 3. Implement cycle collection for GroupRule objects. r=smaug,dbaron
--HG--
rename : content/html/content/crashtests/795221-1.html => content/html/content/crashtests/795221-2.html
2012-10-07 22:39:09 -04:00
Boris Zbarsky
1aa9d15695 Bug 795221 part 1. Implement cycle collection for nsCSSStyleSheet objects, so we don't leak through them. r=smaug,dbaron
Each nsCSSStyleSheet has a pointer to a nsCSSStyleSheetInner.  The
nsCSSStyleSheetInner is shared across multiple stylesheets, in
general.  The nsCSSStyleSheetInner owns the rules and the child
stylesheets.

What this means is that a given rule object is effectively owned by
multiple sheets.  However, cycles can only form through rule objects
that have been JS-wrapped, and if we're JS-wrapping a rule object that
means we have ensured that it's owned by only one stylesheet.
Therefore, we only traverse and unlink mInner if it's uniquely owned
by our sheet.

Similarly, if our child sheets or any of their rules have been
JS-wrapped, that means that we must have an mInner that we own
outright.
2012-10-07 22:39:08 -04:00
Ed Morley
cc9e8c3305 Bug 795393 - Remove instances of "ifneq (mobile,$(MOZ_BUILD_APP))" since they're now always true; r=ted 2012-10-06 16:46:09 +01:00
Jeff Muizelaar
fa081a82fc Bug 792199. Only decode visible images immediately when switching to a tab. r=joe
This creates a new method 'StartDecoding' which does a RequestDecode and some
decoding of the image.

--HG--
extra : rebase_source : 89c1c2f40e3dfb6e025939ebf3257f81ce429501
2012-10-04 16:02:15 -04:00
Nathan Froyd
e888ba80f4 Bug 796129 - remove prtypes #includes in layout/ 2012-10-01 17:12:57 -04:00
Yu-Sian (Thomasy) Liu
49b91a54ac Bug 594935: Add calc to parser, do calc in PaintGradient and add stop point to HasCalc(). r=bz 2012-10-03 22:31:56 -07:00
Daniel Holbert
30e8481488 Bug 797601 part 2: Tweak flexbox mochitests to run in an iframe and have their parent-document set the pref before loading them. r=bz
--HG--
rename : layout/style/test/test_flexbox_align_self_auto.html => layout/style/test/file_flexbox_align_self_auto.html
rename : layout/style/test/test_flexbox_flex_grow_and_shrink.html => layout/style/test/file_flexbox_flex_grow_and_shrink.html
rename : layout/style/test/test_flexbox_flex_shorthand.html => layout/style/test/file_flexbox_flex_shorthand.html
rename : layout/style/test/test_flexbox_layout.html => layout/style/test/file_flexbox_layout.html
2012-10-03 18:44:15 -07:00
Daniel Holbert
3443e1f06d Bug 797601 part 1: Add flexbox properties to mochitest files property_database.js and test_transitions_per_property.html IFF pref is enabled. r=bz 2012-10-03 18:44:11 -07:00
Seth Fowler
9da16cb6df 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-10-03 15:28:57 -07:00
Ryan VanderMeulen
325089208a Merge m-c to inbound. 2012-10-03 18:19:17 -04:00
Zack Weinberg
baa7b0e11d Merge revert of diagnostic round 2 for bug 536603. DONTBUILD 2012-10-03 09:01:01 -04:00
Nathan Froyd
ec0cae57b0 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
Daniel Holbert
b3c5efa43b Bug 796212 part 2: Make pref "layout.css.flexbox.enabled" control whether -moz-flex and -moz-inline-flex are recognized as valid values for "display" property. r=bz 2012-10-02 22:04:50 -07:00
Daniel Holbert
6ed459f16a Bug 796212 part 1: Guard CSS3 flexbox properties behind about:config pref "layout.css.flexbox.enabled". r=bz 2012-10-02 22:04:50 -07:00
Ehsan Akhgari
bdd40e5c18 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
45f0148efe 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
d907487021 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
2140205477 Another round of diagnostics for bug 536603. 2012-10-02 09:50:19 -04:00
Zack Weinberg
5537312b3d Revert previous set of diagnostics for bug 536603. 2012-10-02 09:14:58 -04:00
Timothy Nikkel
95c3e37053 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
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
Daniel Holbert
4d32a021d6 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
bd68c21394 Bug 666041 patch 7: implementation of flex container class for CSS3 flexbox. r=dbaron 2012-09-29 23:38:46 -07:00
Simon Montagu
a6d148a96d Add vendor prefix to :dir selector. Bug 562169, r=dbaron 2012-09-29 13:41:10 -07:00
Jonathan Kew
2cf5d23c2c bug 674373 pt 6 - support HiDPI display in Cocoa widget code. r=roc,smichaud 2012-09-29 12:36:09 +01:00
Jonathan Kew
e18b10e5fb 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
2c2d5f0ecf 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