Commit Graph

2580 Commits

Author SHA1 Message Date
Daniel Holbert
d7b7c299ff 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
dcaf8c3429 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
d70685476e [Bug 799407] Fix build warnings in layout r=roc 2012-10-10 01:00:05 -04:00
Nicholas Nethercote
55a51f2401 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
7d556d0048 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
b8b844950a 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
0120d2ee48 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
090f4863f4 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
bd0d1f6c0a 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
fb8c5e5cd5 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
5375444878 Bug 796129 - remove prtypes #includes in layout/ 2012-10-01 17:12:57 -04:00
Yu-Sian (Thomasy) Liu
58bc1b7fb5 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
f495c06658 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
db07ae0eca 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
ed479625af 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
ab95313c1f Merge m-c to inbound. 2012-10-03 18:19:17 -04:00
Zack Weinberg
11614caa8b Merge revert of diagnostic round 2 for bug 536603. DONTBUILD 2012-10-03 09:01:01 -04:00
Nathan Froyd
47c3eda791 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
1c3ec77888 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
03416aed4f 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
5d0ab6fa28 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
65c7ca9722 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
b050f5df50 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
230a3c567d Another round of diagnostics for bug 536603. 2012-10-02 09:50:19 -04:00
Zack Weinberg
782bddc8ac Revert previous set of diagnostics for bug 536603. 2012-10-02 09:14:58 -04:00
Timothy Nikkel
e597215240 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
1ccfbe810b 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
6649dbc51c 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
9edb0fa952 Bug 666041 patch 7: implementation of flex container class for CSS3 flexbox. r=dbaron 2012-09-29 23:38:46 -07:00
Simon Montagu
2b02131b60 Add vendor prefix to :dir selector. Bug 562169, r=dbaron 2012-09-29 13:41:10 -07:00
Jonathan Kew
4ae1951644 bug 674373 pt 6 - support HiDPI display in Cocoa widget code. r=roc,smichaud 2012-09-29 12:36:09 +01:00
Jonathan Kew
a85e67486b 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
336fd34232 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
9bd985c476 Backout ec0dcd401a3f (bug 786108) for crashes 2012-09-28 22:04:56 +01:00
Seth Fowler
e97e0bcb99 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
0cc4b12d36 Bug 791906: Replace NSPR integer limit constants with stdint ones; r=ehsan 2012-09-28 01:57:33 -05:00
Matt Woodrow
1d675c61d6 Bug 539356 - Part 9c - Remove old invalidation code. r=bz 2012-08-29 17:39:31 +12:00
Ed Morley
5a3b322459 Revert mozilla-inbound to e4dd1fa6d222 for crashes and test failures on a CLOSED TREE 2012-09-27 16:34:46 +01:00
Matt Woodrow
49d4c24594 Bug 539356 - Part 9 - Implement DLBI. r=roc,bz,jwatt 2012-08-29 17:38:58 +12:00
Kyle Huey
42a911c533 Bug 793554: Devirtualize mozilla::css::Loader::[AddRef|Release] r=dbaron 2012-09-24 07:29:24 -07:00
Zack Weinberg
852269eeb1 Diagnostic instrumentation for bug 536603. 2012-09-23 11:18:10 -04:00
Robert O'Callahan
fc3689264b 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
70ba385729 Bug 792502 - Kill the FunctionTimer code; r=vlad 2012-09-19 16:59:38 -04:00
Ehsan Akhgari
c147ce1e22 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
7ac7df5687 Fix assertion failure causing orange. (Bug 774169) 2012-09-18 12:51:47 -07:00
L. David Baron
2e0fbb1b1f 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
233751c6ae 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
cfc2ee3220 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
2dd8e1ccad 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
d9211fb04f Remove aPresContext parameter to nsStyleContext constructor and document parameters to constructor. (Bug 791416) r=bzbarsky 2012-09-18 11:37:13 -07:00