Add fields to nsCSSPropList.h for style struct offset and animation type. (Bug 504652) r=bzbarsky
authorL. David Baron <dbaron@dbaron.org>
Fri, 11 Sep 2009 06:46:36 -0400
changeset 32394 d1b659f7db49191f59723ddb69354cd49dae29cb
parent 32393 c309a7438041438d0db702f24062196c80691046
child 32395 a4990b27b9357b268b732e4b96cf57ace8c00442
push idunknown
push userunknown
push dateunknown
reviewersbzbarsky
bugs504652
milestone1.9.3a1pre
Add fields to nsCSSPropList.h for style struct offset and animation type. (Bug 504652) r=bzbarsky
layout/style/nsCSSDataBlock.cpp
layout/style/nsCSSPropList.h
layout/style/nsCSSProperty.h
layout/style/nsCSSProps.cpp
layout/style/nsCSSProps.h
layout/style/nsDOMCSSDeclaration.cpp
layout/style/nsRuleNode.cpp
layout/style/test/ListCSSProperties.cpp
--- a/layout/style/nsCSSDataBlock.cpp
+++ b/layout/style/nsCSSDataBlock.cpp
@@ -567,17 +567,17 @@ nsCSSExpandedDataBlock::~nsCSSExpandedDa
 }
 
 const nsCSSExpandedDataBlock::PropertyOffsetInfo
 nsCSSExpandedDataBlock::kOffsetTable[eCSSProperty_COUNT_no_shorthands] = {
     #define CSS_PROP_BACKENDONLY(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_) \
         { offsetof(nsCSSExpandedDataBlock, m##datastruct_.member_),           \
           size_t(-1),                                                         \
           size_t(-1) },
-    #define CSS_PROP(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, stylestruct_) \
+    #define CSS_PROP(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, stylestruct_, stylestructoffset_, animtype_) \
         { offsetof(nsCSSExpandedDataBlock, m##datastruct_.member_),           \
           offsetof(nsRuleData, m##datastruct_##Data),                         \
           offsetof(nsRuleData##datastruct_, member_) },
     #include "nsCSSPropList.h"
     #undef CSS_PROP
     #undef CSS_PROP_BACKENDONLY
 };
 
--- a/layout/style/nsCSSPropList.h
+++ b/layout/style/nsCSSPropList.h
@@ -46,17 +46,17 @@
 
   This file contains the list of all parsed CSS properties.  It is
   designed to be used as inline input through the magic of C
   preprocessing.  All entries must be enclosed in the appropriate
   CSS_PROP_* macro which will have cruel and unusual things done to it.
   It is recommended (but not strictly necessary) to keep all entries in
   alphabetical order.
 
-  The arguments to CSS_PROP_* are:
+  The arguments to CSS_PROP and CSS_PROP_* are:
 
   1. 'name' entries represent a CSS property name and *must* use only
   lowercase characters.
 
   2. 'id' should be the same as 'name' except that all hyphens ('-')
   in 'name' are converted to underscores ('_') in 'id'. This lets us
   do nice things with the macros without having to copy/convert strings
   at runtime.  These are the names used for the enum values of the
@@ -75,175 +75,182 @@
 
   7. 'type' gives the |nsCSSType| of the data in the nsRuleData struct
   and in the nsCSSDeclaration backend.
 
   8. 'kwtable', which is either nsnull or the name of the appropriate
   keyword table member of class nsCSSProps, for use in
   nsCSSProps::LookupPropertyValue.
 
-  CSS_PROP_SHORTHAND only takes 1-4.
+  9. 'stylestruct_' [used only for CSS_PROP, not CSS_PROP_*] gives the
+  name of the style struct.  Can be used to make nsStyle##stylestruct_
+  and eStyleStruct_##stylestruct_
 
-  CSS_PROP, which callers can define to get all the CSS_PROP_* macros
-  except CSS_PROP_SHORTHAND, also takes a ninth argument:
+  10. 'stylestructoffset_' [not used for CSS_PROP_BACKENDONLY] gives the
+  result of offsetof(nsStyle*, member).  Ignored (and generally
+  CSS_PROP_NO_OFFSET, or -1) for properties whose animtype_ is
+  eStyleAnimType_None.
 
-  9. 'stylestruct_', the name of the style struct.  Can be used to make
-  nsStyle##stylestruct_ and eStyleStruct_##stylestruct_
+  11. 'animtype_' [not used for CSS_PROP_BACKENDONLY] gives the
+  animation type (see nsStyleAnimType) of this property.
+
+  CSS_PROP_SHORTHAND only takes 1-4.
 
  ******/
 
 
 /*************************************************************************/
 
 
 // All includers must explicitly define CSS_PROP_SHORTHAND if they
 // want it.
 #ifndef CSS_PROP_SHORTHAND
 #define CSS_PROP_SHORTHAND(name_, id_, method_, flags_) /* nothing */
 #define DEFINED_CSS_PROP_SHORTHAND
 #endif
 
+#define CSS_PROP_NO_OFFSET (-1)
 
 // Callers may define CSS_PROP_LIST_EXCLUDE_INTERNAL if they want to
 // exclude internal properties that are not represented in the DOM (only
 // the DOM style code defines this).
 
 // A caller who wants all the properties can define the |CSS_PROP|
 // macro.
 #ifdef CSS_PROP
 
 #define USED_CSS_PROP
-#define CSS_PROP_FONT(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_) CSS_PROP(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, Font)
-#define CSS_PROP_COLOR(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_) CSS_PROP(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, Color)
-#define CSS_PROP_BACKGROUND(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_) CSS_PROP(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, Background)
-#define CSS_PROP_LIST(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_) CSS_PROP(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, List)
-#define CSS_PROP_POSITION(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_) CSS_PROP(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, Position)
-#define CSS_PROP_TEXT(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_) CSS_PROP(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, Text)
-#define CSS_PROP_TEXTRESET(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_) CSS_PROP(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, TextReset)
-#define CSS_PROP_DISPLAY(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_) CSS_PROP(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, Display)
-#define CSS_PROP_VISIBILITY(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_) CSS_PROP(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, Visibility)
-#define CSS_PROP_CONTENT(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_) CSS_PROP(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, Content)
-#define CSS_PROP_QUOTES(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_) CSS_PROP(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, Quotes)
-#define CSS_PROP_USERINTERFACE(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_) CSS_PROP(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, UserInterface)
-#define CSS_PROP_UIRESET(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_) CSS_PROP(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, UIReset)
-#define CSS_PROP_TABLE(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_) CSS_PROP(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, Table)
-#define CSS_PROP_TABLEBORDER(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_) CSS_PROP(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, TableBorder)
-#define CSS_PROP_MARGIN(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_) CSS_PROP(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, Margin)
-#define CSS_PROP_PADDING(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_) CSS_PROP(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, Padding)
-#define CSS_PROP_BORDER(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_) CSS_PROP(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, Border)
-#define CSS_PROP_OUTLINE(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_) CSS_PROP(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, Outline)
-#define CSS_PROP_XUL(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_) CSS_PROP(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, XUL)
-#define CSS_PROP_COLUMN(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_) CSS_PROP(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, Column)
-#define CSS_PROP_SVG(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_) CSS_PROP(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, SVG)
-#define CSS_PROP_SVGRESET(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_) CSS_PROP(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, SVGReset)
+#define CSS_PROP_FONT(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, stylestructoffset_, animtype_) CSS_PROP(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, Font, stylestructoffset_, animtype_)
+#define CSS_PROP_COLOR(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, stylestructoffset_, animtype_) CSS_PROP(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, Color, stylestructoffset_, animtype_)
+#define CSS_PROP_BACKGROUND(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, stylestructoffset_, animtype_) CSS_PROP(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, Background, stylestructoffset_, animtype_)
+#define CSS_PROP_LIST(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, stylestructoffset_, animtype_) CSS_PROP(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, List, stylestructoffset_, animtype_)
+#define CSS_PROP_POSITION(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, stylestructoffset_, animtype_) CSS_PROP(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, Position, stylestructoffset_, animtype_)
+#define CSS_PROP_TEXT(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, stylestructoffset_, animtype_) CSS_PROP(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, Text, stylestructoffset_, animtype_)
+#define CSS_PROP_TEXTRESET(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, stylestructoffset_, animtype_) CSS_PROP(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, TextReset, stylestructoffset_, animtype_)
+#define CSS_PROP_DISPLAY(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, stylestructoffset_, animtype_) CSS_PROP(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, Display, stylestructoffset_, animtype_)
+#define CSS_PROP_VISIBILITY(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, stylestructoffset_, animtype_) CSS_PROP(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, Visibility, stylestructoffset_, animtype_)
+#define CSS_PROP_CONTENT(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, stylestructoffset_, animtype_) CSS_PROP(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, Content, stylestructoffset_, animtype_)
+#define CSS_PROP_QUOTES(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, stylestructoffset_, animtype_) CSS_PROP(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, Quotes, stylestructoffset_, animtype_)
+#define CSS_PROP_USERINTERFACE(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, stylestructoffset_, animtype_) CSS_PROP(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, UserInterface, stylestructoffset_, animtype_)
+#define CSS_PROP_UIRESET(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, stylestructoffset_, animtype_) CSS_PROP(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, UIReset, stylestructoffset_, animtype_)
+#define CSS_PROP_TABLE(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, stylestructoffset_, animtype_) CSS_PROP(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, Table, stylestructoffset_, animtype_)
+#define CSS_PROP_TABLEBORDER(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, stylestructoffset_, animtype_) CSS_PROP(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, TableBorder, stylestructoffset_, animtype_)
+#define CSS_PROP_MARGIN(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, stylestructoffset_, animtype_) CSS_PROP(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, Margin, stylestructoffset_, animtype_)
+#define CSS_PROP_PADDING(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, stylestructoffset_, animtype_) CSS_PROP(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, Padding, stylestructoffset_, animtype_)
+#define CSS_PROP_BORDER(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, stylestructoffset_, animtype_) CSS_PROP(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, Border, stylestructoffset_, animtype_)
+#define CSS_PROP_OUTLINE(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, stylestructoffset_, animtype_) CSS_PROP(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, Outline, stylestructoffset_, animtype_)
+#define CSS_PROP_XUL(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, stylestructoffset_, animtype_) CSS_PROP(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, XUL, stylestructoffset_, animtype_)
+#define CSS_PROP_COLUMN(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, stylestructoffset_, animtype_) CSS_PROP(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, Column, stylestructoffset_, animtype_)
+#define CSS_PROP_SVG(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, stylestructoffset_, animtype_) CSS_PROP(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, SVG, stylestructoffset_, animtype_)
+#define CSS_PROP_SVGRESET(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, stylestructoffset_, animtype_) CSS_PROP(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, SVGReset, stylestructoffset_, animtype_)
 
 // For properties that are stored in the CSS backend but are not
 // computed.  An includer may define this in addition to CSS_PROP, but
 // otherwise we treat it as the same.
 #ifndef CSS_PROP_BACKENDONLY
-#define CSS_PROP_BACKENDONLY(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_) CSS_PROP(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, BackendOnly)
+#define CSS_PROP_BACKENDONLY(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_) CSS_PROP(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, BackendOnly, CSS_PROP_NO_OFFSET, eStyleAnimType_None)
 #define DEFINED_CSS_PROP_BACKENDONLY
 #endif
 
 #else /* !defined(CSS_PROP) */
 
 // An includer who does not define CSS_PROP can define any or all of the
 // per-struct macros that are equivalent to it, and the rest will be
 // ignored.
 
 #ifndef CSS_PROP_FONT
-#define CSS_PROP_FONT(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_) /* nothing */
+#define CSS_PROP_FONT(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, stylestructoffset_, animtype_) /* nothing */
 #define DEFINED_CSS_PROP_FONT
 #endif
 #ifndef CSS_PROP_COLOR
-#define CSS_PROP_COLOR(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_) /* nothing */
+#define CSS_PROP_COLOR(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, stylestructoffset_, animtype_) /* nothing */
 #define DEFINED_CSS_PROP_COLOR
 #endif
 #ifndef CSS_PROP_BACKGROUND
-#define CSS_PROP_BACKGROUND(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_) /* nothing */
+#define CSS_PROP_BACKGROUND(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, stylestructoffset_, animtype_) /* nothing */
 #define DEFINED_CSS_PROP_BACKGROUND
 #endif
 #ifndef CSS_PROP_LIST
-#define CSS_PROP_LIST(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_) /* nothing */
+#define CSS_PROP_LIST(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, stylestructoffset_, animtype_) /* nothing */
 #define DEFINED_CSS_PROP_LIST
 #endif
 #ifndef CSS_PROP_POSITION
-#define CSS_PROP_POSITION(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_) /* nothing */
+#define CSS_PROP_POSITION(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, stylestructoffset_, animtype_) /* nothing */
 #define DEFINED_CSS_PROP_POSITION
 #endif
 #ifndef CSS_PROP_TEXT
-#define CSS_PROP_TEXT(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_) /* nothing */
+#define CSS_PROP_TEXT(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, stylestructoffset_, animtype_) /* nothing */
 #define DEFINED_CSS_PROP_TEXT
 #endif
 #ifndef CSS_PROP_TEXTRESET
-#define CSS_PROP_TEXTRESET(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_) /* nothing */
+#define CSS_PROP_TEXTRESET(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, stylestructoffset_, animtype_) /* nothing */
 #define DEFINED_CSS_PROP_TEXTRESET
 #endif
 #ifndef CSS_PROP_DISPLAY
-#define CSS_PROP_DISPLAY(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_) /* nothing */
+#define CSS_PROP_DISPLAY(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, stylestructoffset_, animtype_) /* nothing */
 #define DEFINED_CSS_PROP_DISPLAY
 #endif
 #ifndef CSS_PROP_VISIBILITY
-#define CSS_PROP_VISIBILITY(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_) /* nothing */
+#define CSS_PROP_VISIBILITY(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, stylestructoffset_, animtype_) /* nothing */
 #define DEFINED_CSS_PROP_VISIBILITY
 #endif
 #ifndef CSS_PROP_CONTENT
-#define CSS_PROP_CONTENT(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_) /* nothing */
+#define CSS_PROP_CONTENT(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, stylestructoffset_, animtype_) /* nothing */
 #define DEFINED_CSS_PROP_CONTENT
 #endif
 #ifndef CSS_PROP_QUOTES
-#define CSS_PROP_QUOTES(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_) /* nothing */
+#define CSS_PROP_QUOTES(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, stylestructoffset_, animtype_) /* nothing */
 #define DEFINED_CSS_PROP_QUOTES
 #endif
 #ifndef CSS_PROP_USERINTERFACE
-#define CSS_PROP_USERINTERFACE(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_) /* nothing */
+#define CSS_PROP_USERINTERFACE(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, stylestructoffset_, animtype_) /* nothing */
 #define DEFINED_CSS_PROP_USERINTERFACE
 #endif
 #ifndef CSS_PROP_UIRESET
-#define CSS_PROP_UIRESET(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_) /* nothing */
+#define CSS_PROP_UIRESET(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, stylestructoffset_, animtype_) /* nothing */
 #define DEFINED_CSS_PROP_UIRESET
 #endif
 #ifndef CSS_PROP_TABLE
-#define CSS_PROP_TABLE(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_) /* nothing */
+#define CSS_PROP_TABLE(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, stylestructoffset_, animtype_) /* nothing */
 #define DEFINED_CSS_PROP_TABLE
 #endif
 #ifndef CSS_PROP_TABLEBORDER
-#define CSS_PROP_TABLEBORDER(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_) /* nothing */
+#define CSS_PROP_TABLEBORDER(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, stylestructoffset_, animtype_) /* nothing */
 #define DEFINED_CSS_PROP_TABLEBORDER
 #endif
 #ifndef CSS_PROP_MARGIN
-#define CSS_PROP_MARGIN(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_) /* nothing */
+#define CSS_PROP_MARGIN(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, stylestructoffset_, animtype_) /* nothing */
 #define DEFINED_CSS_PROP_MARGIN
 #endif
 #ifndef CSS_PROP_PADDING
-#define CSS_PROP_PADDING(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_) /* nothing */
+#define CSS_PROP_PADDING(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, stylestructoffset_, animtype_) /* nothing */
 #define DEFINED_CSS_PROP_PADDING
 #endif
 #ifndef CSS_PROP_BORDER
-#define CSS_PROP_BORDER(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_) /* nothing */
+#define CSS_PROP_BORDER(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, stylestructoffset_, animtype_) /* nothing */
 #define DEFINED_CSS_PROP_BORDER
 #endif
 #ifndef CSS_PROP_OUTLINE
-#define CSS_PROP_OUTLINE(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_) /* nothing */
+#define CSS_PROP_OUTLINE(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, stylestructoffset_, animtype_) /* nothing */
 #define DEFINED_CSS_PROP_OUTLINE
 #endif
 #ifndef CSS_PROP_XUL
-#define CSS_PROP_XUL(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_) /* nothing */
+#define CSS_PROP_XUL(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, stylestructoffset_, animtype_) /* nothing */
 #define DEFINED_CSS_PROP_XUL
 #endif
 #ifndef CSS_PROP_COLUMN
-#define CSS_PROP_COLUMN(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_) /* nothing */
+#define CSS_PROP_COLUMN(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, stylestructoffset_, animtype_) /* nothing */
 #define DEFINED_CSS_PROP_COLUMN
 #endif
 #ifndef CSS_PROP_SVG
-#define CSS_PROP_SVG(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_) /* nothing */
+#define CSS_PROP_SVG(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, stylestructoffset_, animtype_) /* nothing */
 #define DEFINED_CSS_PROP_SVG
 #endif
 #ifndef CSS_PROP_SVGRESET
-#define CSS_PROP_SVGRESET(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_) /* nothing */
+#define CSS_PROP_SVGRESET(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, stylestructoffset_, animtype_) /* nothing */
 #define DEFINED_CSS_PROP_SVGRESET
 #endif
 
 #ifndef CSS_PROP_BACKENDONLY
 #define CSS_PROP_BACKENDONLY(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_) /* nothing */
 #define DEFINED_CSS_PROP_BACKENDONLY
 #endif
 
@@ -286,109 +293,129 @@
 CSS_PROP_DISPLAY(
     -moz-appearance,
     appearance,
     MozAppearance,
     0,
     Display,
     mAppearance,
     eCSSType_Value,
-    kAppearanceKTable)
+    kAppearanceKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_SHORTHAND(
     -moz-border-radius,
     _moz_border_radius,
     MozBorderRadius,
     0)
 CSS_PROP_BORDER(
     -moz-border-radius-topleft,
     _moz_border_radius_topLeft,
     MozBorderRadiusTopleft,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER,
     Margin,
     mBorderRadius.mTopLeft,
     eCSSType_ValuePair,
-    nsnull)
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_BORDER(
     -moz-border-radius-topright,
     _moz_border_radius_topRight,
     MozBorderRadiusTopright,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER,
     Margin,
     mBorderRadius.mTopRight,
     eCSSType_ValuePair,
-    nsnull)
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_BORDER(
     -moz-border-radius-bottomright,
     _moz_border_radius_bottomRight,
     MozBorderRadiusBottomright,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER,
     Margin,
     mBorderRadius.mBottomRight,
     eCSSType_ValuePair,
-    nsnull)
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_BORDER(
     -moz-border-radius-bottomleft,
     _moz_border_radius_bottomLeft,
     MozBorderRadiusBottomleft,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER,
     Margin,
     mBorderRadius.mBottomLeft,
     eCSSType_ValuePair,
-    nsnull)
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_SHORTHAND(
     -moz-outline-radius,
     _moz_outline_radius,
     MozOutlineRadius,
     0)
 CSS_PROP_OUTLINE(
     -moz-outline-radius-topleft,
     _moz_outline_radius_topLeft,
     MozOutlineRadiusTopleft,
     0,
     Margin,
     mOutlineRadius.mTopLeft,
     eCSSType_ValuePair,
-    nsnull)
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_OUTLINE(
     -moz-outline-radius-topright,
     _moz_outline_radius_topRight,
     MozOutlineRadiusTopright,
     0,
     Margin,
     mOutlineRadius.mTopRight,
     eCSSType_ValuePair,
-    nsnull)
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_OUTLINE(
     -moz-outline-radius-bottomright,
     _moz_outline_radius_bottomRight,
     MozOutlineRadiusBottomright,
     0,
     Margin,
     mOutlineRadius.mBottomRight,
     eCSSType_ValuePair,
-    nsnull)
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_OUTLINE(
     -moz-outline-radius-bottomleft,
     _moz_outline_radius_bottomLeft,
     MozOutlineRadiusBottomleft,
     0,
     Margin,
     mOutlineRadius.mBottomLeft,
     eCSSType_ValuePair,
-    nsnull)
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 #ifndef CSS_PROP_LIST_EXCLUDE_INTERNAL
 CSS_PROP_FONT(
     -x-system-font,
     _x_system_font,
     X,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE,
     Font,
     mSystemFont,
     eCSSType_Value,
-    kFontKTable)
+    kFontKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 #endif
 CSS_PROP_BACKENDONLY(
     azimuth,
     azimuth,
     Azimuth,
     0,
     Aural,
     mAzimuth,
@@ -403,106 +430,126 @@ CSS_PROP_BACKGROUND(
     background-attachment,
     background_attachment,
     BackgroundAttachment,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
         CSS_PROPERTY_VALUE_LIST_USES_COMMAS,
     Color,
     mBackAttachment,
     eCSSType_ValueList,
-    kBackgroundAttachmentKTable)
+    kBackgroundAttachmentKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_BACKGROUND(
     -moz-background-clip,
     _moz_background_clip,
     MozBackgroundClip,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
         CSS_PROPERTY_VALUE_LIST_USES_COMMAS,
     Color,
     mBackClip,
     eCSSType_ValueList,
-    kBackgroundClipKTable)
+    kBackgroundClipKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_BACKGROUND(
     background-color,
     background_color,
     BackgroundColor,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
         CSS_PROPERTY_IGNORED_WHEN_COLORS_DISABLED,
     Color,
     mBackColor,
     eCSSType_Value,
-    nsnull)
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_BACKGROUND(
     background-image,
     background_image,
     BackgroundImage,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
         CSS_PROPERTY_VALUE_LIST_USES_COMMAS |
         CSS_PROPERTY_IGNORED_WHEN_COLORS_DISABLED,
     Color,
     mBackImage,
     eCSSType_ValueList,
-    nsnull)
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_BACKGROUND(
     -moz-background-inline-policy,
     _moz_background_inline_policy,
     MozBackgroundInlinePolicy,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE,
     Color,
     mBackInlinePolicy,
     eCSSType_Value,
-    kBackgroundInlinePolicyKTable)
+    kBackgroundInlinePolicyKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_BACKGROUND(
     -moz-background-origin,
     _moz_background_origin,
     MozBackgroundOrigin,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
         CSS_PROPERTY_VALUE_LIST_USES_COMMAS,
     Color,
     mBackOrigin,
     eCSSType_ValueList,
-    kBackgroundOriginKTable)
+    kBackgroundOriginKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_BACKGROUND(
     background-position,
     background_position,
     BackgroundPosition,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
         CSS_PROPERTY_VALUE_LIST_USES_COMMAS,
     Color,
     mBackPosition,
     eCSSType_ValuePairList,
-    kBackgroundPositionKTable)
+    kBackgroundPositionKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_BACKGROUND(
     background-repeat,
     background_repeat,
     BackgroundRepeat,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
         CSS_PROPERTY_VALUE_LIST_USES_COMMAS,
     Color,
     mBackRepeat,
     eCSSType_ValueList,
-    kBackgroundRepeatKTable)
+    kBackgroundRepeatKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_BACKGROUND(
     -moz-background-size,
     _moz_background_size,
     MozBackgroundSize,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
         CSS_PROPERTY_VALUE_LIST_USES_COMMAS,
     Color,
     mBackSize,
     eCSSType_ValuePairList,
-    kBackgroundSizeKTable)
+    kBackgroundSizeKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_DISPLAY(
     -moz-binding,
     binding,
     MozBinding,
     0,
     Display,
     mBinding,
     eCSSType_Value,
-    nsnull) // XXX bug 3935
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None) // XXX bug 3935
 CSS_PROP_SHORTHAND(
     border,
     border,
     Border,
     0)
 CSS_PROP_SHORTHAND(
     border-bottom,
     border_bottom,
@@ -512,54 +559,64 @@ CSS_PROP_BORDER(
     border-bottom-color,
     border_bottom_color,
     BorderBottomColor,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
         CSS_PROPERTY_IGNORED_WHEN_COLORS_DISABLED,
     Margin,
     mBorderColor.mBottom,
     eCSSType_Value,
-    kBorderColorKTable)
+    kBorderColorKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_BORDER(
     -moz-border-bottom-colors,
     border_bottom_colors,
     MozBorderBottomColors,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
         CSS_PROPERTY_IGNORED_WHEN_COLORS_DISABLED,
     Margin,
     mBorderColors.mBottom,
     eCSSType_ValueList,
-    nsnull)
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_BORDER(
     border-bottom-style,
     border_bottom_style,
     BorderBottomStyle,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER,
     Margin,
     mBorderStyle.mBottom,
     eCSSType_Value,
-    kBorderStyleKTable)  // on/off will need reflow
+    kBorderStyleKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)  // on/off will need reflow
 CSS_PROP_BORDER(
     border-bottom-width,
     border_bottom_width,
     BorderBottomWidth,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER,
     Margin,
     mBorderWidth.mBottom,
     eCSSType_Value,
-    kBorderWidthKTable)
+    kBorderWidthKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_TABLEBORDER(
     border-collapse,
     border_collapse,
     BorderCollapse,
     0,
     Table,
     mBorderCollapse,
     eCSSType_Value,
-    kBorderCollapseKTable)
+    kBorderCollapseKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_SHORTHAND(
     border-color,
     border_color,
     BorderColor,
     0)
 CSS_PROP_SHORTHAND(
     -moz-border-end,
     border_end,
@@ -574,59 +631,67 @@ CSS_PROP_SHORTHAND(
 CSS_PROP_BORDER(
     border-end-color-value,
     border_end_color_value,
     X,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER,
     Margin,
     mBorderEndColor,
     eCSSType_Value,
-    kBorderColorKTable)
+    kBorderColorKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 #endif
 CSS_PROP_SHORTHAND(
     -moz-border-end-style,
     border_end_style,
     MozBorderEndStyle,
     0)
 #ifndef CSS_PROP_LIST_EXCLUDE_INTERNAL
 CSS_PROP_BORDER(
     border-end-style-value,
     border_end_style_value,
     X,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER,
     Margin,
     mBorderEndStyle,
     eCSSType_Value,
-    kBorderStyleKTable)
+    kBorderStyleKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 #endif
 CSS_PROP_SHORTHAND(
     -moz-border-end-width,
     border_end_width,
     MozBorderEndWidth,
     0)
 #ifndef CSS_PROP_LIST_EXCLUDE_INTERNAL
 CSS_PROP_BORDER(
     border-end-width-value,
     border_end_width_value,
     X,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER,
     Margin,
     mBorderEndWidth,
     eCSSType_Value,
-    kBorderWidthKTable)
+    kBorderWidthKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 #endif
 CSS_PROP_BORDER(
     -moz-border-image,
     border_image,
     MozBorderImage,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER,
     Margin,
     mBorderImage,
     eCSSType_Value,
-    kBorderImageKTable)
+    kBorderImageKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_SHORTHAND(
     border-left,
     border_left,
     BorderLeft,
     0)
 CSS_PROP_SHORTHAND(
     border-left-color,
     border_left_color,
@@ -637,121 +702,141 @@ CSS_PROP_BORDER(
     border-left-color-value,
     border_left_color_value,
     X,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
         CSS_PROPERTY_IGNORED_WHEN_COLORS_DISABLED,
     Margin,
     mBorderColor.mLeft,
     eCSSType_Value,
-    kBorderColorKTable)
+    kBorderColorKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_BORDER(
     border-left-color-ltr-source,
     border_left_color_ltr_source,
     X,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
         CSS_PROPERTY_DIRECTIONAL_SOURCE |
         CSS_PROPERTY_IGNORED_WHEN_COLORS_DISABLED,
     Margin,
     mBorderLeftColorLTRSource,
     eCSSType_Value,
-    kBoxPropSourceKTable)
+    kBoxPropSourceKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_BORDER(
     border-left-color-rtl-source,
     border_left_color_rtl_source,
     X,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
         CSS_PROPERTY_DIRECTIONAL_SOURCE |
         CSS_PROPERTY_IGNORED_WHEN_COLORS_DISABLED,
     Margin,
     mBorderLeftColorRTLSource,
     eCSSType_Value,
-    kBoxPropSourceKTable)
+    kBoxPropSourceKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 #endif
 CSS_PROP_BORDER(
     -moz-border-left-colors,
     border_left_colors,
     MozBorderLeftColors,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
         CSS_PROPERTY_IGNORED_WHEN_COLORS_DISABLED,
     Margin,
     mBorderColors.mLeft,
     eCSSType_ValueList,
-    nsnull)
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_SHORTHAND(
     border-left-style,
     border_left_style,
     BorderLeftStyle,
     0) // on/off will need reflow
 #ifndef CSS_PROP_LIST_EXCLUDE_INTERNAL
 CSS_PROP_BORDER(
     border-left-style-value,
     border_left_style_value,
     X,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER,
     Margin,
     mBorderStyle.mLeft,
     eCSSType_Value,
-    kBorderStyleKTable)
+    kBorderStyleKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_BORDER(
     border-left-style-ltr-source,
     border_left_style_ltr_source,
     X,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
         CSS_PROPERTY_DIRECTIONAL_SOURCE,
     Margin,
     mBorderLeftStyleLTRSource,
     eCSSType_Value,
-    kBoxPropSourceKTable)
+    kBoxPropSourceKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_BORDER(
     border-left-style-rtl-source,
     border_left_style_rtl_source,
     X,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
         CSS_PROPERTY_DIRECTIONAL_SOURCE,
     Margin,
     mBorderLeftStyleRTLSource,
     eCSSType_Value,
-    kBoxPropSourceKTable)
+    kBoxPropSourceKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 #endif
 CSS_PROP_SHORTHAND(
     border-left-width,
     border_left_width,
     BorderLeftWidth,
     0)
 #ifndef CSS_PROP_LIST_EXCLUDE_INTERNAL
 CSS_PROP_BORDER(
     border-left-width-value,
     border_left_width_value,
     X,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER,
     Margin,
     mBorderWidth.mLeft,
     eCSSType_Value,
-    kBorderWidthKTable)
+    kBorderWidthKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_BORDER(
     border-left-width-ltr-source,
     border_left_width_ltr_source,
     X,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
         CSS_PROPERTY_DIRECTIONAL_SOURCE,
     Margin,
     mBorderLeftWidthLTRSource,
     eCSSType_Value,
-    kBoxPropSourceKTable)
+    kBoxPropSourceKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_BORDER(
     border-left-width-rtl-source,
     border_left_width_rtl_source,
     X,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
         CSS_PROPERTY_DIRECTIONAL_SOURCE,
     Margin,
     mBorderLeftWidthRTLSource,
     eCSSType_Value,
-    kBoxPropSourceKTable)
+    kBoxPropSourceKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 #endif
 CSS_PROP_SHORTHAND(
     border-right,
     border_right,
     BorderRight,
     0)
 CSS_PROP_SHORTHAND(
     border-right-color,
@@ -763,131 +848,153 @@ CSS_PROP_BORDER(
     border-right-color-value,
     border_right_color_value,
     X,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
         CSS_PROPERTY_IGNORED_WHEN_COLORS_DISABLED,
     Margin,
     mBorderColor.mRight,
     eCSSType_Value,
-    kBorderColorKTable)
+    kBorderColorKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_BORDER(
     border-right-color-ltr-source,
     border_right_color_ltr_source,
     X,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
         CSS_PROPERTY_DIRECTIONAL_SOURCE |
         CSS_PROPERTY_IGNORED_WHEN_COLORS_DISABLED,
     Margin,
     mBorderRightColorLTRSource,
     eCSSType_Value,
-    kBoxPropSourceKTable)
+    kBoxPropSourceKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_BORDER(
     border-right-color-rtl-source,
     border_right_color_rtl_source,
     X,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
         CSS_PROPERTY_DIRECTIONAL_SOURCE |
         CSS_PROPERTY_IGNORED_WHEN_COLORS_DISABLED,
     Margin,
     mBorderRightColorRTLSource,
     eCSSType_Value,
-    kBoxPropSourceKTable)
+    kBoxPropSourceKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 #endif
 CSS_PROP_BORDER(
     -moz-border-right-colors,
     border_right_colors,
     MozBorderRightColors,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
         CSS_PROPERTY_IGNORED_WHEN_COLORS_DISABLED,
     Margin,
     mBorderColors.mRight,
     eCSSType_ValueList,
-    nsnull)
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_SHORTHAND(
     border-right-style,
     border_right_style,
     BorderRightStyle,
     0) // on/off will need reflow
 #ifndef CSS_PROP_LIST_EXCLUDE_INTERNAL
 CSS_PROP_BORDER(
     border-right-style-value,
     border_right_style_value,
     X,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER,
     Margin,
     mBorderStyle.mRight,
     eCSSType_Value,
-    kBorderStyleKTable)
+    kBorderStyleKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_BORDER(
     border-right-style-ltr-source,
     border_right_style_ltr_source,
     X,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
         CSS_PROPERTY_DIRECTIONAL_SOURCE,
     Margin,
     mBorderRightStyleLTRSource,
     eCSSType_Value,
-    kBoxPropSourceKTable)
+    kBoxPropSourceKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_BORDER(
     border-right-style-rtl-source,
     border_right_style_rtl_source,
     X,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
         CSS_PROPERTY_DIRECTIONAL_SOURCE,
     Margin,
     mBorderRightStyleRTLSource,
     eCSSType_Value,
-    kBoxPropSourceKTable)
+    kBoxPropSourceKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 #endif
 CSS_PROP_SHORTHAND(
     border-right-width,
     border_right_width,
     BorderRightWidth,
     0)
 #ifndef CSS_PROP_LIST_EXCLUDE_INTERNAL
 CSS_PROP_BORDER(
     border-right-width-value,
     border_right_width_value,
     X,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER,
     Margin,
     mBorderWidth.mRight,
     eCSSType_Value,
-    kBorderWidthKTable)
+    kBorderWidthKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_BORDER(
     border-right-width-ltr-source,
     border_right_width_ltr_source,
     X,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
         CSS_PROPERTY_DIRECTIONAL_SOURCE,
     Margin,
     mBorderRightWidthLTRSource,
     eCSSType_Value,
-    kBoxPropSourceKTable)
+    kBoxPropSourceKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_BORDER(
     border-right-width-rtl-source,
     border_right_width_rtl_source,
     X,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
         CSS_PROPERTY_DIRECTIONAL_SOURCE,
     Margin,
     mBorderRightWidthRTLSource,
     eCSSType_Value,
-    kBoxPropSourceKTable)
+    kBoxPropSourceKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 #endif
 CSS_PROP_TABLEBORDER(
     border-spacing,
     border_spacing,
     BorderSpacing,
     0,
     Table,
     mBorderSpacing,
     eCSSType_ValuePair,
-    nsnull) // XXX bug 3935
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None) // XXX bug 3935
 CSS_PROP_SHORTHAND(
     -moz-border-start,
     border_start,
     MozBorderStart,
     0)
 CSS_PROP_SHORTHAND(
     -moz-border-start-color,
     border_start_color,
@@ -897,49 +1004,55 @@ CSS_PROP_SHORTHAND(
 CSS_PROP_BORDER(
     border-start-color-value,
     border_start_color_value,
     X,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER,
     Margin,
     mBorderStartColor,
     eCSSType_Value,
-    kBorderColorKTable)
+    kBorderColorKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 #endif
 CSS_PROP_SHORTHAND(
     -moz-border-start-style,
     border_start_style,
     MozBorderStartStyle,
     0)
 #ifndef CSS_PROP_LIST_EXCLUDE_INTERNAL
 CSS_PROP_BORDER(
     border-start-style-value,
     border_start_style_value,
     X,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER,
     Margin,
     mBorderStartStyle,
     eCSSType_Value,
-    kBorderStyleKTable)
+    kBorderStyleKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 #endif
 CSS_PROP_SHORTHAND(
     -moz-border-start-width,
     border_start_width,
     MozBorderStartWidth,
     0)
 #ifndef CSS_PROP_LIST_EXCLUDE_INTERNAL
 CSS_PROP_BORDER(
     border-start-width-value,
     border_start_width_value,
     X,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER,
     Margin,
     mBorderStartWidth,
     eCSSType_Value,
-    kBorderWidthKTable)
+    kBorderWidthKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 #endif
 CSS_PROP_SHORTHAND(
     border-style,
     border_style,
     BorderStyle,
     0)  // on/off will need reflow
 CSS_PROP_SHORTHAND(
     border-top,
@@ -950,202 +1063,242 @@ CSS_PROP_BORDER(
     border-top-color,
     border_top_color,
     BorderTopColor,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
         CSS_PROPERTY_IGNORED_WHEN_COLORS_DISABLED,
     Margin,
     mBorderColor.mTop,
     eCSSType_Value,
-    kBorderColorKTable)
+    kBorderColorKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_BORDER(
     -moz-border-top-colors,
     border_top_colors,
     MozBorderTopColors,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
         CSS_PROPERTY_IGNORED_WHEN_COLORS_DISABLED,
     Margin,
     mBorderColors.mTop,
     eCSSType_ValueList,
-    nsnull)
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_BORDER(
     border-top-style,
     border_top_style,
     BorderTopStyle,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER,
     Margin,
     mBorderStyle.mTop,
     eCSSType_Value,
-    kBorderStyleKTable)  // on/off will need reflow
+    kBorderStyleKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)  // on/off will need reflow
 CSS_PROP_BORDER(
     border-top-width,
     border_top_width,
     BorderTopWidth,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER,
     Margin,
     mBorderWidth.mTop,
     eCSSType_Value,
-    kBorderWidthKTable)
+    kBorderWidthKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_SHORTHAND(
     border-width,
     border_width,
     BorderWidth,
     0)
 CSS_PROP_POSITION(
     bottom,
     bottom,
     Bottom,
     0,
     Position,
     mOffset.mBottom,
     eCSSType_Value,
-    nsnull)
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_BORDER(
     -moz-box-shadow,
     box_shadow,
     MozBoxShadow,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
         CSS_PROPERTY_VALUE_LIST_USES_COMMAS |
         CSS_PROPERTY_IGNORED_WHEN_COLORS_DISABLED,
     Margin,
     mBoxShadow,
     eCSSType_ValueList,
-    kBoxShadowTypeKTable)
+    kBoxShadowTypeKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_POSITION(
     -moz-box-sizing,
     box_sizing,
     MozBoxSizing,
     0,
     Position,
     mBoxSizing,
     eCSSType_Value,
-    kBoxSizingKTable) // XXX bug 3935
+    kBoxSizingKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None) // XXX bug 3935
 CSS_PROP_TABLEBORDER(
     caption-side,
     caption_side,
     CaptionSide,
     0,
     Table,
     mCaptionSide,
     eCSSType_Value,
-    kCaptionSideKTable)
+    kCaptionSideKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_DISPLAY(
     clear,
     clear,
     Clear,
     0,
     Display,
     mClear,
     eCSSType_Value,
-    kClearKTable)
+    kClearKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_DISPLAY(
     clip,
     clip,
     Clip,
     0,
     Display,
     mClip,
     eCSSType_Rect,
-    nsnull)
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_COLOR(
     color,
     color,
     Color,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
         CSS_PROPERTY_IGNORED_WHEN_COLORS_DISABLED,
     Color,
     mColor,
     eCSSType_Value,
-    nsnull)
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_COLUMN(
     -moz-column-count,
     _moz_column_count,
     MozColumnCount,
     0,
     Column,
     mColumnCount,
     eCSSType_Value,
-    nsnull)
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_COLUMN(
     -moz-column-width,
     _moz_column_width,
     MozColumnWidth,
     0,
     Column,
     mColumnWidth,
     eCSSType_Value,
-    nsnull)
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_COLUMN(
     -moz-column-gap,
     _moz_column_gap,
     MozColumnGap,
     0,
     Column,
     mColumnGap,
     eCSSType_Value,
-    nsnull)
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_SHORTHAND(
     -moz-column-rule,
     _moz_column_rule,
     MozColumnRule,
     0)
 CSS_PROP_COLUMN(
     -moz-column-rule-color,
     _moz_column_rule_color,
     MozColumnRuleColor,
     CSS_PROPERTY_IGNORED_WHEN_COLORS_DISABLED,
     Column,
     mColumnRuleColor,
     eCSSType_Value,
-    nsnull)
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_COLUMN(
     -moz-column-rule-style,
     _moz_column_rule_style,
     MozColumnRuleStyle,
     0,
     Column,
     mColumnRuleStyle,
     eCSSType_Value,
-    kBorderStyleKTable)
+    kBorderStyleKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_COLUMN(
     -moz-column-rule-width,
     _moz_column_rule_width,
     MozColumnRuleWidth,
     0,
     Column,
     mColumnRuleWidth,
     eCSSType_Value,
-    kBorderWidthKTable)
+    kBorderWidthKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_CONTENT(
     content,
     content,
     Content,
     0,
     Content,
     mContent,
     eCSSType_ValueList,
-    kContentKTable)
+    kContentKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_CONTENT(
     counter-increment,
     counter_increment,
     CounterIncrement,
     0,
     Content,
     mCounterIncrement,
     eCSSType_ValuePairList,
-    nsnull) // XXX bug 137285
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None) // XXX bug 137285
 CSS_PROP_CONTENT(
     counter-reset,
     counter_reset,
     CounterReset,
     0,
     Content,
     mCounterReset,
     eCSSType_ValuePairList,
-    nsnull) // XXX bug 137285
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None) // XXX bug 137285
 CSS_PROP_SHORTHAND(
     cue,
     cue,
     Cue,
     0)
 CSS_PROP_BACKENDONLY(
     cue-after,
     cue_after,
@@ -1167,35 +1320,41 @@ CSS_PROP_BACKENDONLY(
 CSS_PROP_USERINTERFACE(
     cursor,
     cursor,
     Cursor,
     CSS_PROPERTY_VALUE_LIST_USES_COMMAS,
     UserInterface,
     mCursor,
     eCSSType_ValueList,
-    kCursorKTable)
+    kCursorKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_VISIBILITY(
     direction,
     direction,
     Direction,
     0,
     Display,
     mDirection,
     eCSSType_Value,
-    kDirectionKTable)
+    kDirectionKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_DISPLAY(
     display,
     display,
     Display,
     0,
     Display,
     mDisplay,
     eCSSType_Value,
-    kDisplayKTable)
+    kDisplayKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_BACKENDONLY(
     elevation,
     elevation,
     Elevation,
     0,
     Aural,
     mElevation,
     eCSSType_Value,
@@ -1203,334 +1362,396 @@ CSS_PROP_BACKENDONLY(
 CSS_PROP_TABLEBORDER(
     empty-cells,
     empty_cells,
     EmptyCells,
     0,
     Table,
     mEmptyCells,
     eCSSType_Value,
-    kEmptyCellsKTable)
+    kEmptyCellsKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_DISPLAY(
     float,
     float,
     CssFloat,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER,
     Display,
     mFloat,
     eCSSType_Value,
-    kFloatKTable)
+    kFloatKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_BORDER(
     -moz-float-edge,
     float_edge,
     MozFloatEdge,
     0,
     Margin,
     mFloatEdge,
     eCSSType_Value,
-    kFloatEdgeKTable) // XXX bug 3935
+    kFloatEdgeKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None) // XXX bug 3935
 CSS_PROP_SHORTHAND(
     font,
     font,
     Font,
     0)
 CSS_PROP_FONT(
     font-family,
     font_family,
     FontFamily,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE,
     Font,
     mFamily,
     eCSSType_Value,
-    nsnull)
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_FONT(
     font-size,
     font_size,
     FontSize,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE,
     Font,
     mSize,
     eCSSType_Value,
-    kFontSizeKTable)
+    kFontSizeKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_FONT(
     font-size-adjust,
     font_size_adjust,
     FontSizeAdjust,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE,
     Font,
     mSizeAdjust,
     eCSSType_Value,
-    nsnull)
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_FONT(
     font-stretch,
     font_stretch,
     FontStretch,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE,
     Font,
     mStretch,
     eCSSType_Value,
-    kFontStretchKTable)
+    kFontStretchKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_FONT(
     font-style,
     font_style,
     FontStyle,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE,
     Font,
     mStyle,
     eCSSType_Value,
-    kFontStyleKTable)
+    kFontStyleKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_FONT(
     font-variant,
     font_variant,
     FontVariant,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE,
     Font,
     mVariant,
     eCSSType_Value,
-    kFontVariantKTable)
+    kFontVariantKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_FONT(
     font-weight,
     font_weight,
     FontWeight,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE,
     Font,
     mWeight,
     eCSSType_Value,
-    kFontWeightKTable)
+    kFontWeightKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_UIRESET(
     -moz-force-broken-image-icon,
     force_broken_image_icon,
     MozForceBrokenImageIcon,
     0,
     UserInterface,
     mForceBrokenImageIcon,
     eCSSType_Value,
-    nsnull) // bug 58646
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None) // bug 58646
 CSS_PROP_POSITION(
     height,
     height,
     Height,
     0,
     Position,
     mHeight,
     eCSSType_Value,
-    nsnull)
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_LIST(
     -moz-image-region,
     image_region,
     MozImageRegion,
     0,
     List,
     mImageRegion,
     eCSSType_Rect,
-    nsnull)
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_UIRESET(
     ime-mode,
     ime_mode,
     ImeMode,
     0,
     UserInterface,
     mIMEMode,
     eCSSType_Value,
-    kIMEModeKTable)
+    kIMEModeKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_POSITION(
     left,
     left,
     Left,
     0,
     Position,
     mOffset.mLeft,
     eCSSType_Value,
-    nsnull)
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_TEXT(
     letter-spacing,
     letter_spacing,
     LetterSpacing,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE,
     Text,
     mLetterSpacing,
     eCSSType_Value,
-    nsnull)
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_TEXT(
     line-height,
     line_height,
     LineHeight,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE,
     Text,
     mLineHeight,
     eCSSType_Value,
-    kLineHeightKTable)
+    kLineHeightKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_SHORTHAND(
     list-style,
     list_style,
     ListStyle,
     0)
 CSS_PROP_LIST(
     list-style-image,
     list_style_image,
     ListStyleImage,
     0,
     List,
     mImage,
     eCSSType_Value,
-    nsnull)
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_LIST(
     list-style-position,
     list_style_position,
     ListStylePosition,
     0,
     List,
     mPosition,
     eCSSType_Value,
-    kListStylePositionKTable)
+    kListStylePositionKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_LIST(
     list-style-type,
     list_style_type,
     ListStyleType,
     0,
     List,
     mType,
     eCSSType_Value,
-    kListStyleKTable)
+    kListStyleKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_SHORTHAND(
     margin,
     margin,
     Margin,
     0)
 CSS_PROP_MARGIN(
     margin-bottom,
     margin_bottom,
     MarginBottom,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER,
     Margin,
     mMargin.mBottom,
     eCSSType_Value,
-    nsnull)
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_SHORTHAND(
     -moz-margin-end,
     margin_end,
     MozMarginEnd,
     0)
 #ifndef CSS_PROP_LIST_EXCLUDE_INTERNAL
 CSS_PROP_MARGIN(
     margin-end-value,
     margin_end_value,
     X,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER,
     Margin,
     mMarginEnd,
     eCSSType_Value,
-    nsnull)
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 #endif
 CSS_PROP_SHORTHAND(
     margin-left,
     margin_left,
     MarginLeft,
     0)
 #ifndef CSS_PROP_LIST_EXCLUDE_INTERNAL
 CSS_PROP_MARGIN(
     margin-left-value,
     margin_left_value,
     X,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER,
     Margin,
     mMargin.mLeft,
     eCSSType_Value,
-    nsnull)
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_MARGIN(
     margin-left-ltr-source,
     margin_left_ltr_source,
     X,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
         CSS_PROPERTY_DIRECTIONAL_SOURCE,
     Margin,
     mMarginLeftLTRSource,
     eCSSType_Value,
-    kBoxPropSourceKTable)
+    kBoxPropSourceKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_MARGIN(
     margin-left-rtl-source,
     margin_left_rtl_source,
     X,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
         CSS_PROPERTY_DIRECTIONAL_SOURCE,
     Margin,
     mMarginLeftRTLSource,
     eCSSType_Value,
-    kBoxPropSourceKTable)
+    kBoxPropSourceKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 #endif
 CSS_PROP_SHORTHAND(
     margin-right,
     margin_right,
     MarginRight,
     0)
 #ifndef CSS_PROP_LIST_EXCLUDE_INTERNAL
 CSS_PROP_MARGIN(
     margin-right-value,
     margin_right_value,
     X,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER,
     Margin,
     mMargin.mRight,
     eCSSType_Value,
-    nsnull)
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_MARGIN(
     margin-right-ltr-source,
     margin_right_ltr_source,
     X,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
         CSS_PROPERTY_DIRECTIONAL_SOURCE,
     Margin,
     mMarginRightLTRSource,
     eCSSType_Value,
-    kBoxPropSourceKTable)
+    kBoxPropSourceKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_MARGIN(
     margin-right-rtl-source,
     margin_right_rtl_source,
     X,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
         CSS_PROPERTY_DIRECTIONAL_SOURCE,
     Margin,
     mMarginRightRTLSource,
     eCSSType_Value,
-    kBoxPropSourceKTable)
+    kBoxPropSourceKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 #endif
 CSS_PROP_SHORTHAND(
     -moz-margin-start,
     margin_start,
     MozMarginStart,
     0)
 #ifndef CSS_PROP_LIST_EXCLUDE_INTERNAL
 CSS_PROP_MARGIN(
     margin-start-value,
     margin_start_value,
     X,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER,
     Margin,
     mMarginStart,
     eCSSType_Value,
-    nsnull)
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 #endif
 CSS_PROP_MARGIN(
     margin-top,
     margin_top,
     MarginTop,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER,
     Margin,
     mMargin.mTop,
     eCSSType_Value,
-    nsnull)
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_CONTENT(
     marker-offset,
     marker_offset,
     MarkerOffset,
     0,
     Content,
     mMarkerOffset,
     eCSSType_Value,
-    nsnull)
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_BACKENDONLY(
     marks,
     marks,
     Marks,
     0,
     Page,
     mMarks,
     eCSSType_Value,
@@ -1538,53 +1759,63 @@ CSS_PROP_BACKENDONLY(
 CSS_PROP_POSITION(
     max-height,
     max_height,
     MaxHeight,
     0,
     Position,
     mMaxHeight,
     eCSSType_Value,
-    nsnull)
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_POSITION(
     max-width,
     max_width,
     MaxWidth,
     0,
     Position,
     mMaxWidth,
     eCSSType_Value,
-    kWidthKTable)
+    kWidthKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_POSITION(
     min-height,
     min_height,
     MinHeight,
     0,
     Position,
     mMinHeight,
     eCSSType_Value,
-    nsnull)
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_POSITION(
     min-width,
     min_width,
     MinWidth,
     0,
     Position,
     mMinWidth,
     eCSSType_Value,
-    kWidthKTable)
+    kWidthKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_DISPLAY(
     opacity,
     opacity,
     Opacity,
     0,
     Display,
     mOpacity,
     eCSSType_Value,
-    nsnull) // XXX bug 3935
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None) // XXX bug 3935
 CSS_PROP_BACKENDONLY(
     orphans,
     orphans,
     Orphans,
     0,
     Breaks,
     mOrphans,
     eCSSType_Value,
@@ -1597,194 +1828,226 @@ CSS_PROP_SHORTHAND(
 CSS_PROP_OUTLINE(
     outline-color,
     outline_color,
     OutlineColor,
     CSS_PROPERTY_IGNORED_WHEN_COLORS_DISABLED,
     Margin,
     mOutlineColor,
     eCSSType_Value,
-    kOutlineColorKTable)
+    kOutlineColorKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_OUTLINE(
     outline-style,
     outline_style,
     OutlineStyle,
     0,
     Margin,
     mOutlineStyle,
     eCSSType_Value,
-    kBorderStyleKTable)
+    kBorderStyleKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_OUTLINE(
     outline-width,
     outline_width,
     OutlineWidth,
     0,
     Margin,
     mOutlineWidth,
     eCSSType_Value,
-    kBorderWidthKTable)
+    kBorderWidthKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_OUTLINE(
     outline-offset,
     outline_offset,
     OutlineOffset,
     0,
     Margin,
     mOutlineOffset,
     eCSSType_Value,
-    nsnull)
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_SHORTHAND(
     overflow,
     overflow,
     Overflow,
     0)
 CSS_PROP_DISPLAY(
     overflow-x,
     overflow_x,
     OverflowX,
     0,
     Display,
     mOverflowX,
     eCSSType_Value,
-    kOverflowSubKTable)
+    kOverflowSubKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_DISPLAY(
     overflow-y,
     overflow_y,
     OverflowY,
     0,
     Display,
     mOverflowY,
     eCSSType_Value,
-    kOverflowSubKTable)
+    kOverflowSubKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_SHORTHAND(
     padding,
     padding,
     Padding,
     0)
 CSS_PROP_PADDING(
     padding-bottom,
     padding_bottom,
     PaddingBottom,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER,
     Margin,
     mPadding.mBottom,
     eCSSType_Value,
-    nsnull)
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_SHORTHAND(
     -moz-padding-end,
     padding_end,
     MozPaddingEnd,
     0)
 #ifndef CSS_PROP_LIST_EXCLUDE_INTERNAL
 CSS_PROP_PADDING(
     padding-end-value,
     padding_end_value,
     X,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER,
     Margin,
     mPaddingEnd,
     eCSSType_Value,
-    nsnull)
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 #endif
 CSS_PROP_SHORTHAND(
     padding-left,
     padding_left,
     PaddingLeft,
     0)
 #ifndef CSS_PROP_LIST_EXCLUDE_INTERNAL
 CSS_PROP_PADDING(
     padding-left-value,
     padding_left_value,
     X,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER,
     Margin,
     mPadding.mLeft,
     eCSSType_Value,
-    nsnull)
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_PADDING(
     padding-left-ltr-source,
     padding_left_ltr_source,
     X,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
         CSS_PROPERTY_DIRECTIONAL_SOURCE,
     Margin,
     mPaddingLeftLTRSource,
     eCSSType_Value,
-    kBoxPropSourceKTable)
+    kBoxPropSourceKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_PADDING(
     padding-left-rtl-source,
     padding_left_rtl_source,
     X,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
         CSS_PROPERTY_DIRECTIONAL_SOURCE,
     Margin,
     mPaddingLeftRTLSource,
     eCSSType_Value,
-    kBoxPropSourceKTable)
+    kBoxPropSourceKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 #endif
 CSS_PROP_SHORTHAND(
     padding-right,
     padding_right,
     PaddingRight,
     0)
 #ifndef CSS_PROP_LIST_EXCLUDE_INTERNAL
 CSS_PROP_PADDING(
     padding-right-value,
     padding_right_value,
     X,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER,
     Margin,
     mPadding.mRight,
     eCSSType_Value,
-    nsnull)
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_PADDING(
     padding-right-ltr-source,
     padding_right_ltr_source,
     X,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
         CSS_PROPERTY_DIRECTIONAL_SOURCE,
     Margin,
     mPaddingRightLTRSource,
     eCSSType_Value,
-    kBoxPropSourceKTable)
+    kBoxPropSourceKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_PADDING(
     padding-right-rtl-source,
     padding_right_rtl_source,
     X,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
         CSS_PROPERTY_DIRECTIONAL_SOURCE,
     Margin,
     mPaddingRightRTLSource,
     eCSSType_Value,
-    kBoxPropSourceKTable)
+    kBoxPropSourceKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 #endif
 CSS_PROP_SHORTHAND(
     -moz-padding-start,
     padding_start,
     MozPaddingStart,
     0)
 #ifndef CSS_PROP_LIST_EXCLUDE_INTERNAL
 CSS_PROP_PADDING(
     padding-start-value,
     padding_start_value,
     X,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER,
     Margin,
     mPaddingStart,
     eCSSType_Value,
-    nsnull)
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 #endif
 CSS_PROP_PADDING(
     padding-top,
     padding_top,
     PaddingTop,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER,
     Margin,
     mPadding.mTop,
     eCSSType_Value,
-    nsnull)
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_BACKENDONLY(
     page,
     page,
     Page,
     0,
     Breaks,
     mPage,
     eCSSType_Value,
@@ -1792,26 +2055,30 @@ CSS_PROP_BACKENDONLY(
 CSS_PROP_DISPLAY(
     page-break-after,
     page_break_after,
     PageBreakAfter,
     0,
     Display,
     mBreakAfter,
     eCSSType_Value,
-    kPageBreakKTable) // temp fix for bug 24000
+    kPageBreakKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None) // temp fix for bug 24000
 CSS_PROP_DISPLAY(
     page-break-before,
     page_break_before,
     PageBreakBefore,
     0,
     Display,
     mBreakBefore,
     eCSSType_Value,
-    kPageBreakKTable) // temp fix for bug 24000
+    kPageBreakKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None) // temp fix for bug 24000
 CSS_PROP_BACKENDONLY(
     page-break-inside,
     page_break_inside,
     PageBreakInside,
     0,
     Breaks,
     mPageBreakInside,
     eCSSType_Value,
@@ -1860,35 +2127,41 @@ CSS_PROP_BACKENDONLY(
 CSS_PROP_VISIBILITY(
     pointer-events,
     pointer_events,
     PointerEvents,
     0,
     Display,
     mPointerEvents,
     eCSSType_Value,
-    kPointerEventsKTable)
+    kPointerEventsKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_DISPLAY(
     position,
     position,
     Position,
     0,
     Display,
     mPosition,
     eCSSType_Value,
-    kPositionKTable)
+    kPositionKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_QUOTES(
     quotes,
     quotes,
     Quotes,
     0,
     Content,
     mQuotes,
     eCSSType_ValuePairList,
-    nsnull)
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_BACKENDONLY(
     richness,
     richness,
     Richness,
     0,
     Aural,
     mRichness,
     eCSSType_Value,
@@ -1896,17 +2169,19 @@ CSS_PROP_BACKENDONLY(
 CSS_PROP_POSITION(
     right,
     right,
     Right,
     0,
     Position,
     mOffset.mRight,
     eCSSType_Value,
-    nsnull)
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_BACKENDONLY(
     size,
     size,
     Size,
     0,
     Page,
     mSize,
     eCSSType_ValuePair,
@@ -1968,198 +2243,238 @@ CSS_PROP_BACKENDONLY(
 CSS_PROP_TABLE(
     table-layout,
     table_layout,
     TableLayout,
     0,
     Table,
     mLayout,
     eCSSType_Value,
-    kTableLayoutKTable)
+    kTableLayoutKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_TEXT(
     text-align,
     text_align,
     TextAlign,
     0,
     Text,
     mTextAlign,
     eCSSType_Value,
-    kTextAlignKTable)
+    kTextAlignKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_TEXTRESET(
     text-decoration,
     text_decoration,
     TextDecoration,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE,
     Text,
     mDecoration,
     eCSSType_Value,
-    kTextDecorationKTable)
+    kTextDecorationKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_TEXT(
     text-indent,
     text_indent,
     TextIndent,
     0,
     Text,
     mTextIndent,
     eCSSType_Value,
-    nsnull)
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_TEXT(
     text-shadow,
     text_shadow,
     TextShadow,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
         CSS_PROPERTY_VALUE_LIST_USES_COMMAS |
         CSS_PROPERTY_IGNORED_WHEN_COLORS_DISABLED,
     Text,
     mTextShadow,
     eCSSType_ValueList,
-    nsnull)
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_TEXT(
     text-transform,
     text_transform,
     TextTransform,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE,
     Text,
     mTextTransform,
     eCSSType_Value,
-    kTextTransformKTable)
+    kTextTransformKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_DISPLAY(
     -moz-transform,
     _moz_transform,
     MozTransform,
     0,
     Display,
     mTransform,
     eCSSType_ValueList,
-    kDisplayKTable)
+    kDisplayKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_DISPLAY(
     -moz-transform-origin,
     _moz_transform_origin,
     MozTransformOrigin,
     0,
     Display,
     mTransformOrigin,
     eCSSType_ValuePair,
-    kBackgroundPositionKTable)
+    kBackgroundPositionKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_POSITION(
     top,
     top,
     Top,
     0,
     Position,
     mOffset.mTop,
     eCSSType_Value,
-    nsnull)
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_SHORTHAND(
     -moz-transition,
     transition,
     MozTransition,
     0)
 CSS_PROP_DISPLAY(
     -moz-transition-delay,
     transition_delay,
     MozTransitionDelay,
     CSS_PROPERTY_VALUE_LIST_USES_COMMAS,
     Display,
     mTransitionDelay,
     eCSSType_ValueList,
-    nsnull)
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_DISPLAY(
     -moz-transition-duration,
     transition_duration,
     MozTransitionDuration,
     CSS_PROPERTY_VALUE_LIST_USES_COMMAS,
     Display,
     mTransitionDuration,
     eCSSType_ValueList,
-    nsnull)
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_DISPLAY(
     -moz-transition-property,
     transition_property,
     MozTransitionProperty,
     CSS_PROPERTY_VALUE_LIST_USES_COMMAS,
     Display,
     mTransitionProperty,
     eCSSType_ValueList /* list of CSS properties that have transitions ? */,
-    nsnull)
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_DISPLAY(
     -moz-transition-timing-function,
     transition_timing_function,
     MozTransitionTimingFunction,
     CSS_PROPERTY_VALUE_LIST_USES_COMMAS,
     Display,
     mTransitionTimingFunction,
     eCSSType_ValueList,
-    kTransitionTimingFunctionKTable)
+    kTransitionTimingFunctionKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_TEXTRESET(
     unicode-bidi,
     unicode_bidi,
     UnicodeBidi,
     0,
     Text,
     mUnicodeBidi,
     eCSSType_Value,
-    kUnicodeBidiKTable)
+    kUnicodeBidiKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_USERINTERFACE(
     -moz-user-focus,
     user_focus,
     MozUserFocus,
     0,
     UserInterface,
     mUserFocus,
     eCSSType_Value,
-    kUserFocusKTable) // XXX bug 3935
+    kUserFocusKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None) // XXX bug 3935
 CSS_PROP_USERINTERFACE(
     -moz-user-input,
     user_input,
     MozUserInput,
     0,
     UserInterface,
     mUserInput,
     eCSSType_Value,
-    kUserInputKTable) // XXX ??? // XXX bug 3935
+    kUserInputKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None) // XXX ??? // XXX bug 3935
 CSS_PROP_USERINTERFACE(
     -moz-user-modify,
     user_modify,
     MozUserModify,
     0,
     UserInterface,
     mUserModify,
     eCSSType_Value,
-    kUserModifyKTable) // XXX bug 3935
+    kUserModifyKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None) // XXX bug 3935
 CSS_PROP_UIRESET(
     -moz-user-select,
     user_select,
     MozUserSelect,
     0,
     UserInterface,
     mUserSelect,
     eCSSType_Value,
-    kUserSelectKTable) // XXX bug 3935
+    kUserSelectKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None) // XXX bug 3935
 // NOTE: vertical-align is only supposed to apply to :first-letter when
 // 'float' is 'none', but we don't worry about that since it has no
 // effect otherwise
 CSS_PROP_TEXTRESET(
     vertical-align,
     vertical_align,
     VerticalAlign,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE,
     Text,
     mVerticalAlign,
     eCSSType_Value,
-    kVerticalAlignKTable)
+    kVerticalAlignKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_VISIBILITY(
     visibility,
     visibility,
     Visibility,
     0,
     Display,
     mVisibility,
     eCSSType_Value,
-    kVisibilityKTable)  // reflow for collapse
+    kVisibilityKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)  // reflow for collapse
 CSS_PROP_BACKENDONLY(
     voice-family,
     voice_family,
     VoiceFamily,
     0,
     Aural,
     mVoiceFamily,
     eCSSType_Value,
@@ -2176,17 +2491,19 @@ CSS_PROP_BACKENDONLY(
 CSS_PROP_TEXT(
     white-space,
     white_space,
     WhiteSpace,
     0,
     Text,
     mWhiteSpace,
     eCSSType_Value,
-    kWhitespaceKTable)
+    kWhitespaceKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_BACKENDONLY(
     widows,
     widows,
     Widows,
     0,
     Breaks,
     mWidows,
     eCSSType_Value,
@@ -2194,429 +2511,519 @@ CSS_PROP_BACKENDONLY(
 CSS_PROP_POSITION(
     width,
     width,
     Width,
     0,
     Position,
     mWidth,
     eCSSType_Value,
-    kWidthKTable)
+    kWidthKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_UIRESET(
     -moz-window-shadow,
     _moz_window_shadow,
     MozWindowShadow,
     0,
     UserInterface,
     mWindowShadow,
     eCSSType_Value,
-    kWindowShadowKTable)
+    kWindowShadowKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_TEXT(
     word-spacing,
     word_spacing,
     WordSpacing,
     CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE,
     Text,
     mWordSpacing,
     eCSSType_Value,
-    nsnull)
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_TEXT(
     word-wrap,
     word_wrap,
     WordWrap,
     0,
     Text,
     mWordWrap,
     eCSSType_Value,
-    kWordwrapKTable)
+    kWordwrapKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_POSITION(
     z-index,
     z_index,
     ZIndex,
     0,
     Position,
     mZIndex,
     eCSSType_Value,
-    nsnull)
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 
 CSS_PROP_XUL(
     -moz-box-align,
     box_align,
     MozBoxAlign,
     0,
     XUL,
     mBoxAlign,
     eCSSType_Value,
-    kBoxAlignKTable) // XXX bug 3935
+    kBoxAlignKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None) // XXX bug 3935
 CSS_PROP_XUL(
     -moz-box-direction,
     box_direction,
     MozBoxDirection,
     0,
     XUL,
     mBoxDirection,
     eCSSType_Value,
-    kBoxDirectionKTable) // XXX bug 3935
+    kBoxDirectionKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None) // XXX bug 3935
 CSS_PROP_XUL(
     -moz-box-flex,
     box_flex,
     MozBoxFlex,
     0,
     XUL,
     mBoxFlex,
     eCSSType_Value,
-    nsnull) // XXX bug 3935
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None) // XXX bug 3935
 CSS_PROP_XUL(
     -moz-box-orient,
     box_orient,
     MozBoxOrient,
     0,
     XUL,
     mBoxOrient,
     eCSSType_Value,
-    kBoxOrientKTable) // XXX bug 3935
+    kBoxOrientKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None) // XXX bug 3935
 CSS_PROP_XUL(
     -moz-box-pack,
     box_pack,
     MozBoxPack,
     0,
     XUL,
     mBoxPack,
     eCSSType_Value,
-    kBoxPackKTable) // XXX bug 3935
+    kBoxPackKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None) // XXX bug 3935
 CSS_PROP_XUL(
     -moz-box-ordinal-group,
     box_ordinal_group,
     MozBoxOrdinalGroup,
     0,
     XUL,
     mBoxOrdinal,
     eCSSType_Value,
-    nsnull)
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_XUL(
     -moz-stack-sizing,
     stack_sizing,
     MozStackSizing,
     0,
     XUL,
     mStackSizing,
     eCSSType_Value,
-    kStackSizingKTable)
+    kStackSizingKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 
 #ifdef MOZ_MATHML
 #ifndef CSS_PROP_LIST_EXCLUDE_INTERNAL
 CSS_PROP_FONT(
     -moz-script-level,
     script_level,
     ScriptLevel,
     0,
     Font,
     mScriptLevel,
     eCSSType_Value,
-    nsnull)
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_FONT(
     -moz-script-size-multiplier,
     script_size_multiplier,
     ScriptSizeMultiplier,
     0,
     Font,
     mScriptSizeMultiplier,
     eCSSType_Value,
-    nsnull)
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_FONT(
     -moz-script-min-size,
     script_min_size,
     ScriptMinSize,
     0,
     Font,
     mScriptMinSize,
     eCSSType_Value,
-    nsnull)
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 #endif
 #endif
 
 #ifdef MOZ_SVG
 // XXX treat SVG's CSS Properties as internal for now.
 // Do we want to create an nsIDOMSVGCSS2Properties interface?
 #ifndef CSS_PROP_LIST_EXCLUDE_INTERNAL
 CSS_PROP_SVGRESET(
     clip-path,
     clip_path,
     ClipPath,
     0,
     SVG,
     mClipPath,
     eCSSType_Value,
-    nsnull)
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_SVG(
     clip-rule,
     clip_rule,
     ClipRule,
     0,
     SVG,
     mClipRule,
     eCSSType_Value,
-    kFillRuleKTable)
+    kFillRuleKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_SVG(
     color-interpolation,
     color_interpolation,
     ColorInterpolation,
     0,
     SVG,
     mColorInterpolation,
     eCSSType_Value,
-    kColorInterpolationKTable)
+    kColorInterpolationKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_SVG(
     color-interpolation-filters,
     color_interpolation_filters,
     ColorInterpolationFilters,
     0,
     SVG,
     mColorInterpolationFilters,
     eCSSType_Value,
-    kColorInterpolationKTable)
+    kColorInterpolationKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_SVGRESET(
     dominant-baseline,
     dominant_baseline,
     DominantBaseline,
     0,
     SVG,
     mDominantBaseline,
     eCSSType_Value,
-    kDominantBaselineKTable)
+    kDominantBaselineKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_SVG(
     fill,
     fill,
     Fill,
     0,
     SVG,
     mFill,
     eCSSType_ValuePair,
-    nsnull)
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_SVG(
     fill-opacity,
     fill_opacity,
     FillOpacity,
     0,
     SVG,
     mFillOpacity,
     eCSSType_Value,
-    nsnull)
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_SVG(
     fill-rule,
     fill_rule,
     FillRule,
     0,
     SVG,
     mFillRule,
     eCSSType_Value,
-    kFillRuleKTable)
+    kFillRuleKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_SVGRESET(
     filter,
     filter,
     Filter,
     0,
     SVG,
     mFilter,
     eCSSType_Value,
-    nsnull)
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_SVGRESET(
     flood-color,
     flood_color,
     FloodColor,
     0,
     SVG,
     mFloodColor,
     eCSSType_Value,
-    nsnull)
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_SVGRESET(
     flood-opacity,
     flood_opacity,
     FloodOpacity,
     0,
     SVG,
     mFloodOpacity,
     eCSSType_Value,
-    nsnull)
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_SVG(
     image-rendering,
     image_rendering,
     ImageRendering,
     0,
     SVG,
     mImageRendering,
     eCSSType_Value,
-    kImageRenderingKTable)
+    kImageRenderingKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_SVGRESET(
     lighting-color,
     lighting_color,
     LightingColor,
     0,
     SVG,
     mLightingColor,
     eCSSType_Value,
-    nsnull)
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_SHORTHAND(
     marker,
     marker,
     Marker,
     0)
 CSS_PROP_SVG(
     marker-end,
     marker_end,
     MarkerEnd,
     0,
     SVG,
     mMarkerEnd,
     eCSSType_Value,
-    nsnull)
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_SVG(
     marker-mid,
     marker_mid,
     MarkerMid,
     0,
     SVG,
     mMarkerMid,
     eCSSType_Value,
-    nsnull)
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_SVG(
     marker-start,
     marker_start,
     MarkerStart,
     0,
     SVG,
     mMarkerStart,
     eCSSType_Value,
-    nsnull)
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_SVGRESET(
     mask,
     mask,
     Mask,
     0,
     SVG,
     mMask,
     eCSSType_Value,
-    nsnull)
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_SVG(
     shape-rendering,
     shape_rendering,
     ShapeRendering,
     0,
     SVG,
     mShapeRendering,
     eCSSType_Value,
-    kShapeRenderingKTable)
+    kShapeRenderingKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_SVGRESET(
     stop-color,
     stop_color,
     StopColor,
     0,
     SVG,
     mStopColor,
     eCSSType_Value,
-    nsnull)
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_SVGRESET(
     stop-opacity,
     stop_opacity,
     StopOpacity,
     0,
     SVG,
     mStopOpacity,
     eCSSType_Value,
-    nsnull)
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_SVG(
     stroke,
     stroke,
     Stroke,
     0,
     SVG,
     mStroke,
     eCSSType_ValuePair,
-    nsnull)
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_SVG(
     stroke-dasharray,
     stroke_dasharray,
     StrokeDasharray,
     CSS_PROPERTY_VALUE_LIST_USES_COMMAS,
     SVG,
     mStrokeDasharray,
     eCSSType_ValueList,
-    nsnull)
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_SVG(
     stroke-dashoffset,
     stroke_dashoffset,
     StrokeDashoffset,
     0,
     SVG,
     mStrokeDashoffset,
     eCSSType_Value,
-    nsnull)
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_SVG(
     stroke-linecap,
     stroke_linecap,
     StrokeLinecap,
     0,
     SVG,
     mStrokeLinecap,
     eCSSType_Value,
-    kStrokeLinecapKTable)
+    kStrokeLinecapKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_SVG(
     stroke-linejoin,
     stroke_linejoin,
     StrokeLinejoin,
     0,
     SVG,
     mStrokeLinejoin,
     eCSSType_Value,
-    kStrokeLinejoinKTable)
+    kStrokeLinejoinKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_SVG(
     stroke-miterlimit,
     stroke_miterlimit,
     StrokeMiterlimit,
     0,
     SVG,
     mStrokeMiterlimit,
     eCSSType_Value,
-    nsnull)
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_SVG(
     stroke-opacity,
     stroke_opacity,
     StrokeOpacity,
     0,
     SVG,
     mStrokeOpacity,
     eCSSType_Value,
-    nsnull)
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_SVG(
     stroke-width,
     stroke_width,
     StrokeWidth,
     0,
     SVG,
     mStrokeWidth,
     eCSSType_Value,
-    nsnull)
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_SVG(
     text-anchor,
     text_anchor,
     TextAnchor,
     0,
     SVG,
     mTextAnchor,
     eCSSType_Value,
-    kTextAnchorKTable)
+    kTextAnchorKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_SVG(
     text-rendering,
     text_rendering,
     TextRendering,
     0,
     SVG,
     mTextRendering,
     eCSSType_Value,
-    kTextRenderingKTable)
+    kTextRenderingKTable,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 #endif /* !defined (CSS_PROP_LIST_EXCLUDE_INTERNAL) */
 #endif
 
 // Callers that want information on the properties that are in
 // the style structs but not in the nsCSS* structs should define
 // |CSS_PROP_INCLUDE_NOT_CSS|.  (Some of these are also in nsRuleData*,
 // and a distinction might be needed at some point.)
 // The first 3 parameters don't matter, but some compilers don't like
@@ -2625,53 +3032,63 @@ CSS_PROP_SVG(
 CSS_PROP_VISIBILITY(
     X,
     X,
     X,
     0,
     Display,
     mLang,
     eCSSType_Value,
-    nsnull)
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_TABLE(
     X,
     X,
     X,
     0,
     Table,
     mFrame,
     eCSSType_Value,
-    nsnull)
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_TABLE(
     X,
     X,
     X,
     0,
     Table,
     mRules,
     eCSSType_Value,
-    nsnull)
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_TABLE(
     X,
     X,
     X,
     0,
     Table,
     mCols,
     eCSSType_Value,
-    nsnull)
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 CSS_PROP_TABLE(
     X,
     X,
     X,
     0,
     Table,
     mSpan,
     eCSSType_Value,
-    nsnull)
+    nsnull,
+    CSS_PROP_NO_OFFSET,
+    eStyleAnimType_None)
 #endif /* defined(CSS_PROP_INCLUDE_NOT_CSS) */
 
 #ifdef USED_CSS_PROP
 
 #undef USED_CSS_PROP
 #undef CSS_PROP_FONT
 #undef CSS_PROP_COLOR
 #undef CSS_PROP_BACKGROUND
--- a/layout/style/nsCSSProperty.h
+++ b/layout/style/nsCSSProperty.h
@@ -46,17 +46,17 @@
    enum values are "eCSSProperty_foo" (where foo is the property)
 
    To change the list of properties, see nsCSSPropList.h
 
  */
 enum nsCSSProperty {
   eCSSProperty_UNKNOWN = -1,
 
-  #define CSS_PROP(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, stylestruct_) eCSSProperty_##id_,
+  #define CSS_PROP(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, stylestruct_, stylestructoffset_, animtype_) eCSSProperty_##id_,
   #include "nsCSSPropList.h"
   #undef CSS_PROP
 
   eCSSProperty_COUNT_no_shorthands,
   // Make the count continue where it left off:
   eCSSProperty_COUNT_DUMMY = eCSSProperty_COUNT_no_shorthands - 1,
 
   #define CSS_PROP_SHORTHAND(name_, id_, method_, flags_) eCSSProperty_##id_,
--- a/layout/style/nsCSSProps.cpp
+++ b/layout/style/nsCSSProps.cpp
@@ -54,17 +54,17 @@
 #include "nsReadableUtils.h"
 #include "nsStaticNameTable.h"
 
 // required to make the symbol external, so that TestCSSPropertyLookup.cpp can link with it
 extern const char* const kCSSRawProperties[];
 
 // define an array of all CSS properties
 const char* const kCSSRawProperties[] = {
-#define CSS_PROP(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, stylestruct_) #name_,
+#define CSS_PROP(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, stylestruct_, stylestructoffset_, animtype_) #name_,
 #include "nsCSSPropList.h"
 #undef CSS_PROP
 #define CSS_PROP_SHORTHAND(name_, id_, method_, flags_) #name_,
 #include "nsCSSPropList.h"
 #undef CSS_PROP_SHORTHAND
 };
 
 
@@ -1375,17 +1375,17 @@ nsCSSProps::ValueToKeyword(PRInt32 aValu
     return sNullStr;
   } else {
     return nsCSSKeywords::GetStringValue(keyword);
   }
 }
 
 /* static */ const PRInt32* const
 nsCSSProps::kKeywordTableTable[eCSSProperty_COUNT_no_shorthands] = {
-  #define CSS_PROP(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, stylestruct_) kwtable_,
+  #define CSS_PROP(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, stylestruct_, stylestructoffset_, animtype_) kwtable_,
   #include "nsCSSPropList.h"
   #undef CSS_PROP
 };
 
 const nsAFlatCString& 
 nsCSSProps::LookupPropertyValue(nsCSSProperty aProp, PRInt32 aValue)
 {
   NS_ASSERTION(aProp >= 0 && aProp < eCSSProperty_COUNT, "property out of range");
@@ -1415,39 +1415,55 @@ PRBool nsCSSProps::GetColorName(PRInt32 
     nsCSSKeywords::ReleaseTable();
     rv = PR_TRUE;
   }
   return rv;
 }
 
 // define array of all CSS property types
 const nsCSSType nsCSSProps::kTypeTable[eCSSProperty_COUNT_no_shorthands] = {
-    #define CSS_PROP(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, stylestruct_) type_,
+    #define CSS_PROP(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, stylestruct_, stylestructoffset_, animtype_) type_,
     #include "nsCSSPropList.h"
     #undef CSS_PROP
 };
 
 const nsStyleStructID nsCSSProps::kSIDTable[eCSSProperty_COUNT_no_shorthands] = {
     // Note that this uses the special BackendOnly style struct ID
     // (which does need to be valid for storing in the
     // nsCSSCompressedDataBlock::mStyleBits bitfield).
-    #define CSS_PROP(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, stylestruct_) eStyleStruct_##stylestruct_,
+    #define CSS_PROP(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, stylestruct_, stylestructoffset_, animtype_) eStyleStruct_##stylestruct_,
 
     #include "nsCSSPropList.h"
 
     #undef CSS_PROP
 };
 
+const nsStyleAnimType
+nsCSSProps::kAnimTypeTable[eCSSProperty_COUNT_no_shorthands] = {
+#define CSS_PROP(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, stylestruct_, stylestructoffset_, animtype_) \
+  animtype_,
+#include "nsCSSPropList.h"
+#undef CSS_PROP
+};
+
+const ptrdiff_t
+nsCSSProps::kStyleStructOffsetTable[eCSSProperty_COUNT_no_shorthands] = {
+#define CSS_PROP(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, stylestruct_, stylestructoffset_, animtype_) \
+  stylestructoffset_,
+#include "nsCSSPropList.h"
+#undef CSS_PROP
+};
+
 const PRUint32 nsCSSProps::kFlagsTable[eCSSProperty_COUNT] = {
-    #define CSS_PROP(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, stylestruct_) flags_,
-    #include "nsCSSPropList.h"
-    #undef CSS_PROP
-    #define CSS_PROP_SHORTHAND(name_, id_, method_, flags_) flags_,
-    #include "nsCSSPropList.h"
-    #undef CSS_PROP_SHORTHAND
+#define CSS_PROP(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, stylestruct_, stylestructoffset_, animtype_) flags_,
+#include "nsCSSPropList.h"
+#undef CSS_PROP
+#define CSS_PROP_SHORTHAND(name_, id_, method_, flags_) flags_,
+#include "nsCSSPropList.h"
+#undef CSS_PROP_SHORTHAND
 };
 
 static const nsCSSProperty gMozBorderRadiusSubpropTable[] = {
   // Code relies on these being in topleft-topright-bottomright-bottomleft
   // order.
   eCSSProperty__moz_border_radius_topLeft,
   eCSSProperty__moz_border_radius_topRight,
   eCSSProperty__moz_border_radius_bottomRight,
@@ -1888,12 +1904,12 @@ static const nsCSSProperty gMarkerSubpro
   eCSSProperty_marker_mid,
   eCSSProperty_marker_end,
   eCSSProperty_UNKNOWN
 };
 #endif
 
 const nsCSSProperty *const
 nsCSSProps::kSubpropertyTable[eCSSProperty_COUNT - eCSSProperty_COUNT_no_shorthands] = {
-    #define CSS_PROP_SHORTHAND(name_, id_, method_, flags_) g##method_##SubpropTable,
-    #include "nsCSSPropList.h"
-    #undef CSS_PROP_SHORTHAND
+#define CSS_PROP_SHORTHAND(name_, id_, method_, flags_) g##method_##SubpropTable,
+#include "nsCSSPropList.h"
+#undef CSS_PROP_SHORTHAND
 };
--- a/layout/style/nsCSSProps.h
+++ b/layout/style/nsCSSProps.h
@@ -60,16 +60,23 @@
 #define CSS_PROPERTY_APPLIES_TO_FIRST_LETTER      (1<<2)
 #define CSS_PROPERTY_APPLIES_TO_FIRST_LINE        (1<<3)
 #define CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE \
   (CSS_PROPERTY_APPLIES_TO_FIRST_LETTER | CSS_PROPERTY_APPLIES_TO_FIRST_LINE)
 // Note that 'background-color' is ignored differently from the other
 // properties that have this set, but that's just special-cased.
 #define CSS_PROPERTY_IGNORED_WHEN_COLORS_DISABLED (1<<4)
 
+/**
+ * Types of animatable values.
+ */
+enum nsStyleAnimType {
+  eStyleAnimType_None /* property not animatable */
+};
+
 class nsCSSProps {
 public:
   static void AddRefTable(void);
   static void ReleaseTable(void);
 
   // Given a property string, return the enum value
   static nsCSSProperty LookupProperty(const nsAString& aProperty);
   static nsCSSProperty LookupProperty(const nsACString& aProperty);
@@ -104,16 +111,19 @@ public:
   // Return |eCSSKeyword_UNKNOWN| if not found.
   static nsCSSKeyword ValueToKeywordEnum(PRInt32 aValue, const PRInt32 aTable[]);
   // Ditto but as a string, return "" when not found.
   static const nsAFlatCString& ValueToKeyword(PRInt32 aValue, const PRInt32 aTable[]);
 
   static const nsCSSType       kTypeTable[eCSSProperty_COUNT_no_shorthands];
   static const nsStyleStructID kSIDTable[eCSSProperty_COUNT_no_shorthands];
   static const PRInt32* const  kKeywordTableTable[eCSSProperty_COUNT_no_shorthands];
+  static const nsStyleAnimType kAnimTypeTable[eCSSProperty_COUNT_no_shorthands];
+  static const ptrdiff_t
+    kStyleStructOffsetTable[eCSSProperty_COUNT_no_shorthands];
 
 private:
   static const PRUint32        kFlagsTable[eCSSProperty_COUNT];
 
 public:
   static inline PRBool PropHasFlags(nsCSSProperty aProperty, PRUint32 aFlags)
   {
     NS_ASSERTION(0 <= aProperty && aProperty < eCSSProperty_COUNT,
--- a/layout/style/nsDOMCSSDeclaration.cpp
+++ b/layout/style/nsDOMCSSDeclaration.cpp
@@ -375,37 +375,37 @@ NS_IMETHODIMP
 CSS2PropertiesTearoff::QueryInterface(REFNSIID aIID, void** aInstancePtr)
 {
   return mOuter->QueryInterface(aIID, aInstancePtr);
 }
 
 // nsIDOMCSS2Properties
 // nsIDOMNSCSS2Properties
 
-#define CSS_PROP(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, stylestruct_) \
+#define CSS_PROP(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, stylestruct_, stylestructoffset_, animtype_) \
   NS_IMETHODIMP                                                              \
   CSS2PropertiesTearoff::Get##method_(nsAString& aValue)                     \
   {                                                                          \
     return mOuter->GetPropertyValue(eCSSProperty_##id_, aValue);             \
   }                                                                          \
                                                                              \
   NS_IMETHODIMP                                                              \
   CSS2PropertiesTearoff::Set##method_(const nsAString& aValue)               \
   {                                                                          \
     return mOuter->SetPropertyValue(eCSSProperty_##id_, aValue);             \
   }
 
 #define CSS_PROP_LIST_EXCLUDE_INTERNAL
 #define CSS_PROP_SHORTHAND(name_, id_, method_, flags_) \
-  CSS_PROP(name_, id_, method_, flags_, X, X, X, X, X)
+  CSS_PROP(name_, id_, method_, flags_, X, X, X, X, X, X, X)
 #include "nsCSSPropList.h"
 
 // Aliases
-CSS_PROP(X, opacity, MozOpacity, 0, X, X, X, X, X)
-CSS_PROP(X, outline, MozOutline, 0, X, X, X, X, X)
-CSS_PROP(X, outline_color, MozOutlineColor, 0, X, X, X, X, X)
-CSS_PROP(X, outline_style, MozOutlineStyle, 0, X, X, X, X, X)
-CSS_PROP(X, outline_width, MozOutlineWidth, 0, X, X, X, X, X)
-CSS_PROP(X, outline_offset, MozOutlineOffset, 0, X, X, X, X, X)
+CSS_PROP(X, opacity, MozOpacity, 0, X, X, X, X, X, X, X)
+CSS_PROP(X, outline, MozOutline, 0, X, X, X, X, X, X, X)
+CSS_PROP(X, outline_color, MozOutlineColor, 0, X, X, X, X, X, X, X)
+CSS_PROP(X, outline_style, MozOutlineStyle, 0, X, X, X, X, X, X, X)
+CSS_PROP(X, outline_width, MozOutlineWidth, 0, X, X, X, X, X, X, X)
+CSS_PROP(X, outline_offset, MozOutlineOffset, 0, X, X, X, X, X, X, X)
 
 #undef CSS_PROP_SHORTHAND
 #undef CSS_PROP_LIST_EXCLUDE_INTERNAL
 #undef CSS_PROP
--- a/layout/style/nsRuleNode.cpp
+++ b/layout/style/nsRuleNode.cpp
@@ -1151,17 +1151,17 @@ CheckTextCallback(const nsRuleDataStruct
 
   return aResult;
 }
 
 // for nsCSSPropList.h, so we get information on things in the style
 // structs but not nsCSS*
 #define CSS_PROP_INCLUDE_NOT_CSS
 
-#define CHECK_DATA_FOR_PROPERTY(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_) \
+#define CHECK_DATA_FOR_PROPERTY(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, stylestructoffset_, animtype_) \
   { offsetof(nsRuleData##datastruct_, member_), type_, flags_ },
 
 static const PropertyCheckData FontCheckProperties[] = {
 #define CSS_PROP_FONT CHECK_DATA_FOR_PROPERTY
 #include "nsCSSPropList.h"
 #undef CSS_PROP_FONT
 };
 
--- a/layout/style/test/ListCSSProperties.cpp
+++ b/layout/style/test/ListCSSProperties.cpp
@@ -43,34 +43,34 @@
 
 struct PropertyInfo {
     const char *propName;
     const char *domName;
 };
 
 const PropertyInfo gLonghandProperties[] = {
 
-#define CSS_PROP(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, stylestruct_) \
+#define CSS_PROP(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, stylestruct_, stylestructoffset_, animtype_) \
     { #name_, #method_ },
 
 #include "nsCSSPropList.h"
 
 #undef CSS_PROP
 
 };
 
 /*
  * These are the properties for which domName in the above list should
  * be used.  They're in the same order as the above list, with some
  * items skipped.
  */
 const char* gLonghandPropertiesWithDOMProp[] = {
 
 #define CSS_PROP_LIST_EXCLUDE_INTERNAL
-#define CSS_PROP(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, stylestruct_) \
+#define CSS_PROP(name_, id_, method_, flags_, datastruct_, member_, type_, kwtable_, stylestruct_, stylestructoffset_, animtype_) \
     #name_,
 
 #include "nsCSSPropList.h"
 
 #undef CSS_PROP
 #undef CSS_PROP_LIST_EXCLUDE_INTERNAL
 
 };