Commit Graph

397 Commits

Author SHA1 Message Date
Kyle Huey
1a68eab98d Bug 783162: Make mapped attributes hold the image alive. r=bz
The nsCSSValue in nsGenericHTMLElement::MapBackgroundInto is a temporary.  This causes a problem after Bug 697230 landed, because the nsCSSValue::Image we put into that value is destroyed once we're done doing style stuff.  Previously the nsImageLoader would grab the request off the nsCSSValue::Image and hold it alive.  Bug 697230 changed the behavior here; now when the nsCSSValue::Image is destroyed it tells the image loader to drop the request.  The result is that all the references to the request are dropped and the frame is never told it has a background.

The solution is to keep the nsCSSValue::Image alive longer.  This patch adds two new types of nsAttrValue.  The first is an nsCSSValue::URL.  A ParseBackgroundAttribute method is added on nsGenericHTMLElement that the relevant elements (body/td/th/table/tr/tbody/thead/tfoot) call that parses background into an nsCSSValue::URL.  The second is an nsCSSValue::Image.  nsGenericHTMLElement::MapBackgroundInto attempts to convert the nsCSSValue::URL into an nsCSSValue::Image by kicking off the image load.  The result is that image loads are only started when the element is actually visible.  This also mirrors the way background-image works.  This also allows us to fix two longstanding bugs in this code.  Since MapBackgroundInto doesn't have a pointer to the actual element, it relied on grabbing the principal of the document.  Now we can grab the principal of the node in ParseBackgroundAttribute.  MapBackgroundInto also has no way to get at the element's base URI (to honor xml:base), which is now possible in ParseBackgroundAttribute.

nsCSSValue::[Image|URL] have also been moved to be mozilla::css::[Image|URL]Value.  nsAttrValue.h is included in external linkage code, so it can't include nsCSSValue.h to get the declarations of nsCSSValue::[Image|URL], and nested classes can't be forward declared.  Moving the classes to a namespace solves the problem.

Finally some old inoperative quirks mode code was removed.  This code has done nothing since Bug 273078 was landed in 2004.
2012-08-24 10:50:49 -07: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
L. David Baron
62da7d5e53 Treat argument of :-moz-locale-dir() case-insensitively. (Bug 741293) r=smontagu 2012-08-20 22:41:47 -07:00
L. David Baron
d9baa3a527 Add missing SkipUntil call in @supports parsing. (Bug 782401) r=heycam
Fixes http://test.csswg.org/source/contributors/opera/submitted/css3-conditional/at-supports-030.html
2012-08-20 19:23:32 -07:00
Aryeh Gregor
0923bf00ef Bug 780618 - Move all error codes to nsError.h; r=ehsan 2012-07-27 17:03:27 +03:00
Simon Montagu
4d946e9779 Bug 562169. Add support for :dir(ltr/rtl) CSS selector, layout/style part, r=bz 2012-08-09 20:37:58 -07:00
Matt Brubeck
3697f5b568 Back out bug 562169 because of Dromaeo DOM regressions
Backed out changeset 841cd6e1e585 (bug 562169)
Backed out changeset e226e413dd27 (bug 562169)
Backed out changeset 9c24b7287c5b (bug 562169)
2012-08-08 08:14:48 -07:00
Simon Montagu
5ccf0feb0f Add support for :dir(ltr/rtl) CSS selector, layout/style part. Bug 562159, r=bz 2012-08-07 21:44:24 -07:00
Simon Montagu
4ae7b52fd9 Implement the new CSS property value unicode-bidi: isolate-override. Bug 774335, r=dbaron 2012-08-07 01:42:46 -07:00
Cameron McCormack
1b89c788a4 Bug 780337 - @supports rule should not parse if property value is empty. r=dbaron 2012-08-04 17:07:03 +10:00
Cameron McCormack
d7f2d311ed Bug 649740 - Implement @supports. r=dbaron,bz 2012-08-02 10:32:12 +10:00
Aryeh Gregor
dbc2cb2b5f Bug 734953 - Restore transform: skew() support; r=dbaron 2012-07-30 16:48:02 +03:00
Aryeh Gregor
e806eeab4f Bug 777292 part 2 - Change all nsnull to nullptr 2012-07-30 17:20:58 +03:00
David Zbarsky
71be33bfa0 Bug 773500 Part 1:Store z-component of transform-origin as 0 rather than null when it is omitted. r=dbaron 2012-07-21 19:48:19 -04:00
L. David Baron
bbbde4afb0 Disable the unitless length quirk inside of calc(). (Bug 774122, patch 3) r=bzbarsky
I noticed this bug because the new assertions in ParseVariant,
introduced in the previous patch, are stricter and would assert without
this fix.
2012-07-16 09:11:33 -04:00
L. David Baron
b0ef978f86 Limit the unitless length quirk to the properties where it's needed, per http://simon.html5.org/specs/quirks-mode#the-unitless-length-quirk . (Bug 774122, patch 2) r=bzbarsky 2012-07-16 09:11:33 -04:00
L. David Baron
cd9afca8b6 Limit the hashless color quirk to the properties where it's needed, per http://simon.html5.org/specs/quirks-mode#the-hashless-hex-color-quirk . (Bug 774122, patch 1) r=bzbarsky
This changes test_property_syntax_errors.html in the following ways:
 (1) removes the "known failures" handling, since there aren't any
 (2) changes it to test syntax errors in both quirks mode and standards
     mode, instead of only in standards mode
 (3) uses a (new) quirks_values mechanism to property_database.js to
     test cases that should be invalid in standards mode but accepted in
     quirks mode
2012-07-16 09:11:33 -04:00
Gavin Sharp
f698d10be2 Backed out changeset ac282e15dc02 (bug 774122) 2012-07-16 01:04:31 -07:00
Gavin Sharp
3050d12ed8 Backed out changeset e3007422b989 (bug 774122) 2012-07-16 01:04:29 -07:00
Gavin Sharp
9fb446b9bb Backed out changeset 64ff8c2d37f9 (bug 774122) 2012-07-16 01:04:27 -07:00
L. David Baron
b6e2f191d0 Disable the unitless length quirk inside of calc(). (Bug 774122, patch 3) r=bzbarsky
I noticed this bug because the new assertions in ParseVariant,
introduced in the previous patch, are stricter and would assert without
this fix.
2012-07-16 01:10:06 -04:00
L. David Baron
60f4694e46 Limit the unitless length quirk to the properties where it's needed, per http://simon.html5.org/specs/quirks-mode#the-unitless-length-quirk . (Bug 774122, patch 2) r=bzbarsky 2012-07-16 01:10:06 -04:00
L. David Baron
dbef7a69c4 Limit the hashless color quirk to the properties where it's needed, per http://simon.html5.org/specs/quirks-mode#the-hashless-hex-color-quirk . (Bug 774122, patch 1) r=bzbarsky
This changes test_property_syntax_errors.html in the following ways:
 (1) removes the "known failures" handling, since there aren't any
 (2) changes it to test syntax errors in both quirks mode and standards
     mode, instead of only in standards mode
 (3) uses a (new) quirks_values mechanism to property_database.js to
     test cases that should be invalid in standards mode but accepted in
     quirks mode
2012-07-16 01:10:06 -04:00
L. David Baron
9296ad61b2 Add VARIANT_NONNEGATIVE_DIMENSION. (Bug 773102, patch 2) r=bzbarsky 2012-07-13 18:01:34 -07:00
L. David Baron
6fbdd2a91a Rename VARIANT_POSITIVE_LENGTH to VARIANT_POSITIVE_DIMENSION since it also applies to times and frequencies. (Bug 773102, patch 1) r=bzbarsky 2012-07-13 18:01:34 -07:00
Ehsan Akhgari
54bba54101 Merge backout 2012-07-13 20:12:21 -04:00
Ehsan Akhgari
dc7695ce0e Backout changeset 4e1480ab5116, changeset 576f7d52de4b, and changeset 2a030d4733a0 (bug 773102) because of test failure 2012-07-13 20:12:02 -04:00
Boris Zbarsky
43d45b95b9 Bug 771594. Allow preference control over what CSS properties we parse. r=dbaron,dholbert 2012-07-13 19:59:05 -04:00
L. David Baron
ebd9a1a4a9 Add VARIANT_NONNEGATIVE_DIMENSION. (Bug 773102, patch 2) r=bzbarsky 2012-07-13 15:06:50 -07:00
L. David Baron
ac37feeb7e Rename VARIANT_POSITIVE_LENGTH to VARIANT_POSITIVE_DIMENSION since it also applies to times and frequencies. (Bug 773102, patch 1) r=bzbarsky 2012-07-13 15:06:50 -07:00
L. David Baron
db939a352b Add support for unprefixed calc(), and prefer serializing to unprefixed form. (Bug 771678) r=bzbarsky
This also converts all of the tests in layout/style/test/ to using
calc(), except that it duplicates all of the valid values and some of
the invalid values for 'width' and '-moz-column-rule-width' (which are
the two properties that intentionally have extensive calc() tests) in
property_database.js.
2012-07-13 15:06:50 -07:00
Aryeh Gregor
b29d7e95d1 Bug 719054 - matrix() and matrix3d() with length units should be parse errors; r=dbaron 2012-02-13 11:29:30 -05:00
Emmanuele Bassi
0eecac73f7 Bug 762302 - Unprefix CSS Animation properties and @keyframes rule and provide temporary aliases for -moz-animation and exposed subproperties. r=dbaron 2012-07-08 21:25:10 -04:00
L. David Baron
1692448626 Implement dppx units [css3-images] for resolution media query. (Bug 741644) r=bzbarsky 2012-07-07 21:41:27 -07:00
Masatoshi Kimura
162441c196 Bug 752187 - Part 9: Implement unprefixed radial-gradient parsing. r=dbaron 2012-07-07 10:27:08 -04:00
Masatoshi Kimura
2ffab37483 Bug 752187 - Part 8: Implement unprefixed linear-gradient parsing. r=dbaron 2012-07-07 10:27:08 -04:00
Masatoshi Kimura
7b6af80799 Bug 752187 - Part 7: Add aIsLegacy parameter to parsing functions. r=dbaron 2012-07-07 10:27:08 -04:00
Masatoshi Kimura
05280fd9ca Bug 752187 - Part 6: Rename mIsToCorner to mIsLegacySyntax. r=dbaron 2012-07-07 10:27:08 -04:00
Masatoshi Kimura
f4ef239cf5 Bug 752187 - Part 5: Remove "to" corner parsing from ParseRadialGradient. r=dbaron 2012-07-07 10:27:08 -04:00
Masatoshi Kimura
55d49c353c Bug 752187 - Part 4: Remove aIsRadial parameter. r=dbaron 2012-07-07 10:27:07 -04:00
Masatoshi Kimura
68ea947bb7 Bug 752187 - Part 3: Separate linear gradient parsing and radial gradient parsing. r=dbaron 2012-07-07 10:27:07 -04:00
Masatoshi Kimura
926b4d2e42 Bug 752187 - Part 2: Separate legacy gradient line parsing. r=dbaron 2012-07-07 10:27:07 -04:00
Masatoshi Kimura
43403583e2 Bug 752187 - Part 1: Separate color stops parsing. r=dbaron 2012-07-07 10:27:07 -04:00
Daniel Holbert
50a133f460 Bug 696253, patch 8: implement parsing/computation for CSS shorthand property 'flex'. r=dbaron 2012-07-06 17:06:23 -07:00
Boris Zbarsky
34edba5d0f Bug 766798. Throw SYNTAX_ERR, not NAMESPACE_ERR, from querySelector(All) on unknown namespaces. r=dbaron 2012-06-22 16:18:50 -04:00
Ms2ger
19f060907a Bug 629882 - Support currentColor in the 2D canvas context; r=dbaron
This changes nsCSSParser::ParseColorString to fill in an nsCSSValue instead
of an nscolor, and exposes nsRuleNode::ComputeColor to turn this nsCSSValue
into an nscolor.

Because gradients can be used with different canvas elements in different
documents, these cannot pass useful values for nsRuleNode::ComputeColor's
aPresContext and aStyleContext arguments. This patch also changes SetColor
to deal with those parameters being null.
2012-06-06 09:36:38 +02:00
Gervase Markham
ca171eec44 Bug 716478 - update licence to MPL 2. 2012-05-21 12:12:37 +01:00
Boris Zbarsky
389a77894c Bug 753397. Add a field to nsCSSPropList for a preference that controls the property. r=dbaron
The actual controlling is not hooked up yet; that will happen in bug 753522 for
the DOM reflections of properties.
2012-05-09 21:29:37 -04:00
Ms2ger
acc12134d8 Bug 745523 - Part a: prepare for unprefixing transforms by removing the prefix from internal APIs; r=dbaron 2012-05-05 11:00:04 +02:00
John Daggett
127ee0627d Bug 718539. Update font-feature-settings to latest spec syntax. r=dbaron 2012-04-26 15:24:26 +09:00