nsCSSPropList.h 129 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682
  1. /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
  2. /* This Source Code Form is subject to the terms of the Mozilla Public
  3. * License, v. 2.0. If a copy of the MPL was not distributed with this
  4. * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
  5. /*
  6. * a list of all CSS properties with considerable data about them, for
  7. * preprocessing
  8. */
  9. /******
  10. This file contains the list of all parsed CSS properties. It is
  11. designed to be used as inline input through the magic of C
  12. preprocessing. All entries must be enclosed in the appropriate
  13. CSS_PROP_* macro which will have cruel and unusual things done to it.
  14. It is recommended (but not strictly necessary) to keep all entries in
  15. alphabetical order.
  16. The arguments to CSS_PROP, CSS_PROP_LOGICAL and CSS_PROP_* are:
  17. -. 'name' entries represent a CSS property name and *must* use only
  18. lowercase characters.
  19. -. 'id' should be the same as 'name' except that all hyphens ('-')
  20. in 'name' are converted to underscores ('_') in 'id'. For properties
  21. on a standards track, any '-moz-' prefix is removed in 'id'. This
  22. lets us do nice things with the macros without having to copy/convert
  23. strings at runtime. These are the names used for the enum values of
  24. the nsCSSPropertyID enumeration defined in nsCSSProps.h.
  25. -. 'method' is designed to be as input for CSS2Properties and similar
  26. callers. It must always be the same as 'name' except it must use
  27. InterCaps and all hyphens ('-') must be removed. Callers using this
  28. parameter must also define the CSS_PROP_PUBLIC_OR_PRIVATE(publicname_,
  29. privatename_) macro to yield either publicname_ or privatename_.
  30. The names differ in that publicname_ has Moz prefixes where they are
  31. used, and also in CssFloat vs. Float. The caller's choice depends on
  32. whether the use is for internal use such as eCSSProperty_* or
  33. nsRuleData::ValueFor* or external use such as exposing DOM properties.
  34. -. 'flags', a bitfield containing CSS_PROPERTY_* flags.
  35. -. 'pref' is the name of a pref that controls whether the property
  36. is enabled. The property is enabled if 'pref' is an empty string,
  37. or if the boolean property whose name is 'pref' is set to true.
  38. -. 'parsevariant', to be passed to ParseVariant in the parser.
  39. -. 'kwtable', which is either nullptr or the name of the appropriate
  40. keyword table member of class nsCSSProps, for use in
  41. nsCSSProps::LookupPropertyValue.
  42. -. 'group_' [used only for CSS_PROP_LOGICAL] is the name of
  43. the logical property group that contains the physical properties
  44. that can be set by this logical property. The name must be one
  45. from nsCSSPropLogicalGroupList.h. For example, this would be
  46. 'BorderColor' for 'border-block-start-color'.
  47. -. 'stylestruct_' [used only for CSS_PROP and CSS_PROP_LOGICAL, not
  48. CSS_PROP_*] gives the name of the style struct. Can be used to make
  49. nsStyle##stylestruct_ and eStyleStruct_##stylestruct_
  50. -. 'stylestructoffset_' gives the result of offsetof(nsStyle*,
  51. member). Ignored (and generally CSS_PROP_NO_OFFSET, or -1) for
  52. properties whose animtype_ is eStyleAnimType_None.
  53. -. 'animtype_' gives the animation type (see nsStyleAnimType) of this
  54. property.
  55. CSS_PROP_SHORTHAND only takes 1-5.
  56. CSS_PROP_LOGICAL should be used instead of CSS_PROP_struct when
  57. defining logical properties (which also must be defined with the
  58. CSS_PROPERTY_LOGICAL flag). Logical shorthand properties should still
  59. be defined with CSS_PROP_SHORTHAND.
  60. ******/
  61. /*************************************************************************/
  62. // All includers must explicitly define CSS_PROP_SHORTHAND if they
  63. // want it.
  64. #ifndef CSS_PROP_SHORTHAND
  65. #define CSS_PROP_SHORTHAND(name_, id_, method_, flags_, pref_) /* nothing */
  66. #define DEFINED_CSS_PROP_SHORTHAND
  67. #endif
  68. #define CSS_PROP_DOMPROP_PREFIXED(name_) \
  69. CSS_PROP_PUBLIC_OR_PRIVATE(Moz ## name_, name_)
  70. #define CSS_PROP_NO_OFFSET (-1)
  71. // Callers may define CSS_PROP_LIST_EXCLUDE_INTERNAL if they want to
  72. // exclude internal properties that are not represented in the DOM (only
  73. // the DOM style code defines this). All properties defined in an
  74. // #ifndef CSS_PROP_LIST_EXCLUDE_INTERNAL section must have the
  75. // CSS_PROPERTY_INTERNAL flag set.
  76. // When capturing all properties by defining CSS_PROP, callers must also
  77. // define one of the following three macros:
  78. //
  79. // CSS_PROP_LIST_EXCLUDE_LOGICAL
  80. // Does not include logical properties (defined with CSS_PROP_LOGICAL,
  81. // such as margin-inline-start) when capturing properties to CSS_PROP.
  82. //
  83. // CSS_PROP_LIST_INCLUDE_LOGICAL
  84. // Does include logical properties when capturing properties to
  85. // CSS_PROP.
  86. //
  87. // CSS_PROP_LOGICAL
  88. // Captures logical properties separately to CSS_PROP_LOGICAL.
  89. //
  90. // (CSS_PROP_LIST_EXCLUDE_LOGICAL is used for example to ensure
  91. // gPropertyCountInStruct and gPropertyIndexInStruct do not allocate any
  92. // storage to logical properties, since the result of the cascade, stored
  93. // in an nsRuleData, does not need to store both logical and physical
  94. // property values.)
  95. // Callers may also define CSS_PROP_LIST_ONLY_COMPONENTS_OF_ALL_SHORTHAND
  96. // to exclude properties that are not considered to be components of the 'all'
  97. // shorthand property. Currently this excludes 'direction' and 'unicode-bidi',
  98. // as required by the CSS Cascading and Inheritance specification, and any
  99. // internal properties that cannot be changed by using CSS syntax. For example,
  100. // the internal '-moz-system-font' property is not excluded, as it is set by the
  101. // 'font' shorthand, while '-x-lang' is excluded as there is no way to set this
  102. // internal property from a style sheet.
  103. // A caller who wants all the properties can define the |CSS_PROP|
  104. // macro.
  105. #ifdef CSS_PROP
  106. #define USED_CSS_PROP
  107. #define CSS_PROP_FONT(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) CSS_PROP(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, Font, stylestructoffset_, animtype_)
  108. #define CSS_PROP_COLOR(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) CSS_PROP(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, Color, stylestructoffset_, animtype_)
  109. #define CSS_PROP_BACKGROUND(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) CSS_PROP(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, Background, stylestructoffset_, animtype_)
  110. #define CSS_PROP_LIST(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) CSS_PROP(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, List, stylestructoffset_, animtype_)
  111. #define CSS_PROP_POSITION(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) CSS_PROP(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, Position, stylestructoffset_, animtype_)
  112. #define CSS_PROP_TEXT(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) CSS_PROP(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, Text, stylestructoffset_, animtype_)
  113. #define CSS_PROP_TEXTRESET(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) CSS_PROP(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, TextReset, stylestructoffset_, animtype_)
  114. #define CSS_PROP_DISPLAY(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) CSS_PROP(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, Display, stylestructoffset_, animtype_)
  115. #define CSS_PROP_VISIBILITY(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) CSS_PROP(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, Visibility, stylestructoffset_, animtype_)
  116. #define CSS_PROP_CONTENT(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) CSS_PROP(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, Content, stylestructoffset_, animtype_)
  117. #define CSS_PROP_USERINTERFACE(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) CSS_PROP(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, UserInterface, stylestructoffset_, animtype_)
  118. #define CSS_PROP_UIRESET(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) CSS_PROP(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, UIReset, stylestructoffset_, animtype_)
  119. #define CSS_PROP_TABLE(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) CSS_PROP(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, Table, stylestructoffset_, animtype_)
  120. #define CSS_PROP_TABLEBORDER(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) CSS_PROP(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, TableBorder, stylestructoffset_, animtype_)
  121. #define CSS_PROP_MARGIN(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) CSS_PROP(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, Margin, stylestructoffset_, animtype_)
  122. #define CSS_PROP_PADDING(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) CSS_PROP(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, Padding, stylestructoffset_, animtype_)
  123. #define CSS_PROP_BORDER(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) CSS_PROP(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, Border, stylestructoffset_, animtype_)
  124. #define CSS_PROP_OUTLINE(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) CSS_PROP(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, Outline, stylestructoffset_, animtype_)
  125. #define CSS_PROP_XUL(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) CSS_PROP(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, XUL, stylestructoffset_, animtype_)
  126. #define CSS_PROP_COLUMN(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) CSS_PROP(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, Column, stylestructoffset_, animtype_)
  127. #define CSS_PROP_SVG(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) CSS_PROP(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, SVG, stylestructoffset_, animtype_)
  128. #define CSS_PROP_SVGRESET(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) CSS_PROP(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, SVGReset, stylestructoffset_, animtype_)
  129. #define CSS_PROP_VARIABLES(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) CSS_PROP(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, Variables, stylestructoffset_, animtype_)
  130. #define CSS_PROP_EFFECTS(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) CSS_PROP(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, Effects, stylestructoffset_, animtype_)
  131. // And similarly for logical properties. An includer can define
  132. // CSS_PROP_LOGICAL to capture all logical properties, but otherwise they
  133. // are included in CSS_PROP (as long as CSS_PROP_LIST_INCLUDE_LOGICAL is
  134. // defined).
  135. #if defined(CSS_PROP_LOGICAL) && defined(CSS_PROP_LIST_EXCLUDE_LOGICAL) || defined(CSS_PROP_LOGICAL) && defined(CSS_PROP_LIST_INCLUDE_LOGICAL) || defined(CSS_PROP_LIST_EXCLUDE_LOGICAL) && defined(CSS_PROP_LIST_INCLUDE_LOGICAL)
  136. #error Do not define more than one of CSS_PROP_LOGICAL, CSS_PROP_LIST_EXCLUDE_LOGICAL and CSS_PROP_LIST_INCLUDE_LOGICAL when capturing properties using CSS_PROP.
  137. #endif
  138. #ifndef CSS_PROP_LOGICAL
  139. #ifdef CSS_PROP_LIST_INCLUDE_LOGICAL
  140. #define CSS_PROP_LOGICAL(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, group_, struct_, stylestructoffset_, animtype_) CSS_PROP(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, struct_, stylestructoffset_, animtype_)
  141. #else
  142. #ifndef CSS_PROP_LIST_EXCLUDE_LOGICAL
  143. #error Must define exactly one of CSS_PROP_LOGICAL, CSS_PROP_LIST_EXCLUDE_LOGICAL and CSS_PROP_LIST_INCLUDE_LOGICAL when capturing properties using CSS_PROP.
  144. #endif
  145. #define CSS_PROP_LOGICAL(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, group_, struct_, stylestructoffset_, animtype_) /* nothing */
  146. #endif
  147. #define DEFINED_CSS_PROP_LOGICAL
  148. #endif
  149. #else /* !defined(CSS_PROP) */
  150. // An includer who does not define CSS_PROP can define any or all of the
  151. // per-struct macros that are equivalent to it, and the rest will be
  152. // ignored.
  153. #if defined(CSS_PROP_LIST_EXCLUDE_LOGICAL) || defined(CSS_PROP_LIST_INCLUDE_LOGICAL)
  154. #error Do not define CSS_PROP_LIST_EXCLUDE_LOGICAL or CSS_PROP_LIST_INCLUDE_LOGICAL when not capturing properties using CSS_PROP.
  155. #endif
  156. #ifndef CSS_PROP_FONT
  157. #define CSS_PROP_FONT(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) /* nothing */
  158. #define DEFINED_CSS_PROP_FONT
  159. #endif
  160. #ifndef CSS_PROP_COLOR
  161. #define CSS_PROP_COLOR(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) /* nothing */
  162. #define DEFINED_CSS_PROP_COLOR
  163. #endif
  164. #ifndef CSS_PROP_BACKGROUND
  165. #define CSS_PROP_BACKGROUND(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) /* nothing */
  166. #define DEFINED_CSS_PROP_BACKGROUND
  167. #endif
  168. #ifndef CSS_PROP_LIST
  169. #define CSS_PROP_LIST(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) /* nothing */
  170. #define DEFINED_CSS_PROP_LIST
  171. #endif
  172. #ifndef CSS_PROP_POSITION
  173. #define CSS_PROP_POSITION(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) /* nothing */
  174. #define DEFINED_CSS_PROP_POSITION
  175. #endif
  176. #ifndef CSS_PROP_TEXT
  177. #define CSS_PROP_TEXT(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) /* nothing */
  178. #define DEFINED_CSS_PROP_TEXT
  179. #endif
  180. #ifndef CSS_PROP_TEXTRESET
  181. #define CSS_PROP_TEXTRESET(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) /* nothing */
  182. #define DEFINED_CSS_PROP_TEXTRESET
  183. #endif
  184. #ifndef CSS_PROP_DISPLAY
  185. #define CSS_PROP_DISPLAY(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) /* nothing */
  186. #define DEFINED_CSS_PROP_DISPLAY
  187. #endif
  188. #ifndef CSS_PROP_VISIBILITY
  189. #define CSS_PROP_VISIBILITY(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) /* nothing */
  190. #define DEFINED_CSS_PROP_VISIBILITY
  191. #endif
  192. #ifndef CSS_PROP_CONTENT
  193. #define CSS_PROP_CONTENT(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) /* nothing */
  194. #define DEFINED_CSS_PROP_CONTENT
  195. #endif
  196. #ifndef CSS_PROP_USERINTERFACE
  197. #define CSS_PROP_USERINTERFACE(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) /* nothing */
  198. #define DEFINED_CSS_PROP_USERINTERFACE
  199. #endif
  200. #ifndef CSS_PROP_UIRESET
  201. #define CSS_PROP_UIRESET(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) /* nothing */
  202. #define DEFINED_CSS_PROP_UIRESET
  203. #endif
  204. #ifndef CSS_PROP_TABLE
  205. #define CSS_PROP_TABLE(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) /* nothing */
  206. #define DEFINED_CSS_PROP_TABLE
  207. #endif
  208. #ifndef CSS_PROP_TABLEBORDER
  209. #define CSS_PROP_TABLEBORDER(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) /* nothing */
  210. #define DEFINED_CSS_PROP_TABLEBORDER
  211. #endif
  212. #ifndef CSS_PROP_MARGIN
  213. #define CSS_PROP_MARGIN(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) /* nothing */
  214. #define DEFINED_CSS_PROP_MARGIN
  215. #endif
  216. #ifndef CSS_PROP_PADDING
  217. #define CSS_PROP_PADDING(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) /* nothing */
  218. #define DEFINED_CSS_PROP_PADDING
  219. #endif
  220. #ifndef CSS_PROP_BORDER
  221. #define CSS_PROP_BORDER(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) /* nothing */
  222. #define DEFINED_CSS_PROP_BORDER
  223. #endif
  224. #ifndef CSS_PROP_OUTLINE
  225. #define CSS_PROP_OUTLINE(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) /* nothing */
  226. #define DEFINED_CSS_PROP_OUTLINE
  227. #endif
  228. #ifndef CSS_PROP_XUL
  229. #define CSS_PROP_XUL(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) /* nothing */
  230. #define DEFINED_CSS_PROP_XUL
  231. #endif
  232. #ifndef CSS_PROP_COLUMN
  233. #define CSS_PROP_COLUMN(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) /* nothing */
  234. #define DEFINED_CSS_PROP_COLUMN
  235. #endif
  236. #ifndef CSS_PROP_SVG
  237. #define CSS_PROP_SVG(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) /* nothing */
  238. #define DEFINED_CSS_PROP_SVG
  239. #endif
  240. #ifndef CSS_PROP_SVGRESET
  241. #define CSS_PROP_SVGRESET(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) /* nothing */
  242. #define DEFINED_CSS_PROP_SVGRESET
  243. #endif
  244. #ifndef CSS_PROP_VARIABLES
  245. #define CSS_PROP_VARIABLES(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) /* nothing */
  246. #define DEFINED_CSS_PROP_VARIABLES
  247. #endif
  248. #ifndef CSS_PROP_EFFECTS
  249. #define CSS_PROP_EFFECTS(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, stylestructoffset_, animtype_) /* nothing */
  250. #define DEFINED_CSS_PROP_EFFECTS
  251. #endif
  252. #ifndef CSS_PROP_LOGICAL
  253. #define CSS_PROP_LOGICAL(name_, id_, method_, flags_, pref_, parsevariant_, kwtable_, group_, struct_, stylestructoffset_, animtype_) /* nothing */
  254. #define DEFINED_CSS_PROP_LOGICAL
  255. #endif
  256. #endif /* !defined(CSS_PROP) */
  257. /*************************************************************************/
  258. // For notes XXX bug 3935 below, the names being parsed do not correspond
  259. // to the constants used internally. It would be nice to bring the
  260. // constants into line sometime.
  261. // The parser will refuse to parse properties marked with -x-.
  262. // Those marked XXX bug 48973 are CSS2 properties that we support
  263. // differently from the spec for UI requirements. If we ever
  264. // support them correctly the old constants need to be renamed and
  265. // new ones should be entered.
  266. // CSS2.1 section 5.12.1 says that the properties that apply to
  267. // :first-line are: font properties, color properties, background
  268. // properties, 'word-spacing', 'letter-spacing', 'text-decoration',
  269. // 'vertical-align', 'text-transform', and 'line-height'.
  270. //
  271. // We also allow 'text-shadow', which was listed in CSS2 (where the
  272. // property existed).
  273. // CSS2.1 section 5.12.2 says that the properties that apply to
  274. // :first-letter are: font properties, 'text-decoration',
  275. // 'text-transform', 'letter-spacing', 'word-spacing' (when
  276. // appropriate), 'line-height', 'float', 'vertical-align' (only if
  277. // 'float' is 'none'), margin properties, padding properties, border
  278. // properties, 'color', and background properties. We also allow
  279. // 'text-shadow' (see above) and 'box-shadow' (which is like the
  280. // border properties).
  281. // Please keep these sorted by property name, ignoring any "-moz-",
  282. // "-webkit-" or "-x-" prefix.
  283. CSS_PROP_POSITION(
  284. align-content,
  285. align_content,
  286. AlignContent,
  287. CSS_PROPERTY_PARSE_FUNCTION,
  288. "",
  289. VARIANT_HK,
  290. kAutoCompletionAlignJustifyContent,
  291. CSS_PROP_NO_OFFSET,
  292. eStyleAnimType_Discrete)
  293. CSS_PROP_POSITION(
  294. align-items,
  295. align_items,
  296. AlignItems,
  297. CSS_PROPERTY_PARSE_FUNCTION,
  298. "",
  299. VARIANT_HK,
  300. kAutoCompletionAlignItems,
  301. CSS_PROP_NO_OFFSET,
  302. eStyleAnimType_Discrete)
  303. CSS_PROP_POSITION(
  304. align-self,
  305. align_self,
  306. AlignSelf,
  307. CSS_PROPERTY_PARSE_FUNCTION,
  308. "",
  309. VARIANT_HK,
  310. kAutoCompletionAlignJustifySelf,
  311. CSS_PROP_NO_OFFSET,
  312. eStyleAnimType_Discrete)
  313. CSS_PROP_SHORTHAND(
  314. all,
  315. all,
  316. All,
  317. CSS_PROPERTY_PARSE_FUNCTION,
  318. "layout.css.all-shorthand.enabled")
  319. CSS_PROP_SHORTHAND(
  320. animation,
  321. animation,
  322. Animation,
  323. CSS_PROPERTY_PARSE_FUNCTION,
  324. "")
  325. CSS_PROP_DISPLAY(
  326. animation-delay,
  327. animation_delay,
  328. AnimationDelay,
  329. CSS_PROPERTY_PARSE_VALUE_LIST |
  330. CSS_PROPERTY_VALUE_LIST_USES_COMMAS,
  331. "",
  332. VARIANT_TIME, // used by list parsing
  333. nullptr,
  334. CSS_PROP_NO_OFFSET,
  335. eStyleAnimType_None)
  336. CSS_PROP_DISPLAY(
  337. animation-direction,
  338. animation_direction,
  339. AnimationDirection,
  340. CSS_PROPERTY_PARSE_VALUE_LIST |
  341. CSS_PROPERTY_VALUE_LIST_USES_COMMAS,
  342. "",
  343. VARIANT_KEYWORD, // used by list parsing
  344. kAnimationDirectionKTable,
  345. CSS_PROP_NO_OFFSET,
  346. eStyleAnimType_None)
  347. CSS_PROP_DISPLAY(
  348. animation-duration,
  349. animation_duration,
  350. AnimationDuration,
  351. CSS_PROPERTY_PARSE_VALUE_LIST |
  352. CSS_PROPERTY_VALUE_LIST_USES_COMMAS,
  353. "",
  354. VARIANT_TIME | VARIANT_NONNEGATIVE_DIMENSION, // used by list parsing
  355. nullptr,
  356. CSS_PROP_NO_OFFSET,
  357. eStyleAnimType_None)
  358. CSS_PROP_DISPLAY(
  359. animation-fill-mode,
  360. animation_fill_mode,
  361. AnimationFillMode,
  362. CSS_PROPERTY_PARSE_VALUE_LIST |
  363. CSS_PROPERTY_VALUE_LIST_USES_COMMAS,
  364. "",
  365. VARIANT_KEYWORD, // used by list parsing
  366. kAnimationFillModeKTable,
  367. CSS_PROP_NO_OFFSET,
  368. eStyleAnimType_None)
  369. CSS_PROP_DISPLAY(
  370. animation-iteration-count,
  371. animation_iteration_count,
  372. AnimationIterationCount,
  373. CSS_PROPERTY_PARSE_VALUE_LIST |
  374. // nonnegative per
  375. // http://lists.w3.org/Archives/Public/www-style/2011Mar/0355.html
  376. CSS_PROPERTY_VALUE_NONNEGATIVE |
  377. CSS_PROPERTY_VALUE_LIST_USES_COMMAS,
  378. "",
  379. VARIANT_KEYWORD | VARIANT_NUMBER, // used by list parsing
  380. kAnimationIterationCountKTable,
  381. CSS_PROP_NO_OFFSET,
  382. eStyleAnimType_None)
  383. CSS_PROP_DISPLAY(
  384. animation-name,
  385. animation_name,
  386. AnimationName,
  387. CSS_PROPERTY_PARSE_VALUE_LIST |
  388. CSS_PROPERTY_VALUE_LIST_USES_COMMAS,
  389. "",
  390. // FIXME: The spec should say something about 'inherit' and 'initial'
  391. // not being allowed.
  392. VARIANT_NONE | VARIANT_IDENTIFIER_NO_INHERIT, // used by list parsing
  393. nullptr,
  394. CSS_PROP_NO_OFFSET,
  395. eStyleAnimType_None)
  396. CSS_PROP_DISPLAY(
  397. animation-play-state,
  398. animation_play_state,
  399. AnimationPlayState,
  400. CSS_PROPERTY_PARSE_VALUE_LIST |
  401. CSS_PROPERTY_VALUE_LIST_USES_COMMAS,
  402. "",
  403. VARIANT_KEYWORD, // used by list parsing
  404. kAnimationPlayStateKTable,
  405. CSS_PROP_NO_OFFSET,
  406. eStyleAnimType_None)
  407. CSS_PROP_DISPLAY(
  408. animation-timing-function,
  409. animation_timing_function,
  410. AnimationTimingFunction,
  411. CSS_PROPERTY_PARSE_VALUE_LIST |
  412. CSS_PROPERTY_VALUE_LIST_USES_COMMAS,
  413. "",
  414. VARIANT_KEYWORD | VARIANT_TIMING_FUNCTION, // used by list parsing
  415. kTransitionTimingFunctionKTable,
  416. CSS_PROP_NO_OFFSET,
  417. eStyleAnimType_None)
  418. CSS_PROP_DISPLAY(
  419. -moz-appearance,
  420. appearance,
  421. CSS_PROP_DOMPROP_PREFIXED(Appearance),
  422. CSS_PROPERTY_PARSE_VALUE,
  423. "",
  424. VARIANT_HK,
  425. kAppearanceKTable,
  426. CSS_PROP_NO_OFFSET,
  427. eStyleAnimType_Discrete)
  428. #ifndef CSS_PROP_LIST_EXCLUDE_INTERNAL
  429. CSS_PROP_POSITION(
  430. aspect-ratio,
  431. aspect_ratio,
  432. AspectRatio,
  433. CSS_PROPERTY_INTERNAL |
  434. CSS_PROPERTY_PARSE_INACCESSIBLE,
  435. "",
  436. VARIANT_NUMBER,
  437. nullptr,
  438. offsetof(nsStylePosition, mAspectRatio),
  439. eStyleAnimType_None)
  440. #endif // CSS_PROP_LIST_EXCLUDE_INTERNAL
  441. CSS_PROP_DISPLAY(
  442. backface-visibility,
  443. backface_visibility,
  444. BackfaceVisibility,
  445. CSS_PROPERTY_PARSE_VALUE,
  446. "",
  447. VARIANT_HK,
  448. kBackfaceVisibilityKTable,
  449. offsetof(nsStyleDisplay, mBackfaceVisibility),
  450. eStyleAnimType_Discrete)
  451. CSS_PROP_SHORTHAND(
  452. background,
  453. background,
  454. Background,
  455. CSS_PROPERTY_PARSE_FUNCTION,
  456. "")
  457. CSS_PROP_BACKGROUND(
  458. background-attachment,
  459. background_attachment,
  460. BackgroundAttachment,
  461. CSS_PROPERTY_PARSE_VALUE_LIST |
  462. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
  463. CSS_PROPERTY_APPLIES_TO_PLACEHOLDER |
  464. CSS_PROPERTY_VALUE_LIST_USES_COMMAS,
  465. "",
  466. VARIANT_KEYWORD, // used by list parsing
  467. kImageLayerAttachmentKTable,
  468. CSS_PROP_NO_OFFSET,
  469. eStyleAnimType_Discrete)
  470. CSS_PROP_BACKGROUND(
  471. background-blend-mode,
  472. background_blend_mode,
  473. BackgroundBlendMode,
  474. CSS_PROPERTY_PARSE_VALUE_LIST |
  475. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
  476. CSS_PROPERTY_APPLIES_TO_PLACEHOLDER |
  477. CSS_PROPERTY_VALUE_LIST_USES_COMMAS,
  478. "layout.css.background-blend-mode.enabled",
  479. VARIANT_KEYWORD, // used by list parsing
  480. kBlendModeKTable,
  481. CSS_PROP_NO_OFFSET,
  482. eStyleAnimType_Discrete)
  483. CSS_PROP_BACKGROUND(
  484. background-clip,
  485. background_clip,
  486. BackgroundClip,
  487. CSS_PROPERTY_PARSE_VALUE_LIST |
  488. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
  489. CSS_PROPERTY_APPLIES_TO_PLACEHOLDER |
  490. CSS_PROPERTY_VALUE_LIST_USES_COMMAS,
  491. "",
  492. VARIANT_KEYWORD, // used by list parsing
  493. kBackgroundClipKTable,
  494. CSS_PROP_NO_OFFSET,
  495. eStyleAnimType_Discrete)
  496. CSS_PROP_BACKGROUND(
  497. background-color,
  498. background_color,
  499. BackgroundColor,
  500. CSS_PROPERTY_PARSE_VALUE |
  501. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
  502. CSS_PROPERTY_APPLIES_TO_PLACEHOLDER |
  503. CSS_PROPERTY_IGNORED_WHEN_COLORS_DISABLED |
  504. CSS_PROPERTY_HASHLESS_COLOR_QUIRK,
  505. "",
  506. VARIANT_HC,
  507. nullptr,
  508. offsetof(nsStyleBackground, mBackgroundColor),
  509. eStyleAnimType_Color)
  510. CSS_PROP_BACKGROUND(
  511. background-image,
  512. background_image,
  513. BackgroundImage,
  514. CSS_PROPERTY_PARSE_VALUE_LIST |
  515. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
  516. CSS_PROPERTY_APPLIES_TO_PLACEHOLDER |
  517. CSS_PROPERTY_VALUE_LIST_USES_COMMAS |
  518. CSS_PROPERTY_IGNORED_WHEN_COLORS_DISABLED |
  519. CSS_PROPERTY_START_IMAGE_LOADS,
  520. "",
  521. VARIANT_IMAGE, // used by list parsing
  522. nullptr,
  523. CSS_PROP_NO_OFFSET,
  524. eStyleAnimType_Discrete)
  525. CSS_PROP_BACKGROUND(
  526. background-origin,
  527. background_origin,
  528. BackgroundOrigin,
  529. CSS_PROPERTY_PARSE_VALUE_LIST |
  530. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
  531. CSS_PROPERTY_APPLIES_TO_PLACEHOLDER |
  532. CSS_PROPERTY_VALUE_LIST_USES_COMMAS,
  533. "",
  534. VARIANT_KEYWORD, // used by list parsing
  535. kBackgroundOriginKTable,
  536. CSS_PROP_NO_OFFSET,
  537. eStyleAnimType_Discrete)
  538. CSS_PROP_SHORTHAND(
  539. background-position,
  540. background_position,
  541. BackgroundPosition,
  542. CSS_PROPERTY_PARSE_FUNCTION |
  543. CSS_PROPERTY_UNITLESS_LENGTH_QUIRK,
  544. "")
  545. CSS_PROP_BACKGROUND(
  546. background-position-x,
  547. background_position_x,
  548. BackgroundPositionX,
  549. CSS_PROPERTY_PARSE_FUNCTION |
  550. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
  551. CSS_PROPERTY_APPLIES_TO_PLACEHOLDER |
  552. CSS_PROPERTY_VALUE_LIST_USES_COMMAS |
  553. CSS_PROPERTY_STORES_CALC,
  554. "",
  555. 0,
  556. kImageLayerPositionKTable,
  557. CSS_PROP_NO_OFFSET,
  558. eStyleAnimType_Custom)
  559. CSS_PROP_BACKGROUND(
  560. background-position-y,
  561. background_position_y,
  562. BackgroundPositionY,
  563. CSS_PROPERTY_PARSE_FUNCTION |
  564. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
  565. CSS_PROPERTY_APPLIES_TO_PLACEHOLDER |
  566. CSS_PROPERTY_VALUE_LIST_USES_COMMAS |
  567. CSS_PROPERTY_STORES_CALC,
  568. "",
  569. 0,
  570. kImageLayerPositionKTable,
  571. CSS_PROP_NO_OFFSET,
  572. eStyleAnimType_Custom)
  573. CSS_PROP_BACKGROUND(
  574. background-repeat,
  575. background_repeat,
  576. BackgroundRepeat,
  577. CSS_PROPERTY_PARSE_FUNCTION |
  578. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
  579. CSS_PROPERTY_APPLIES_TO_PLACEHOLDER |
  580. CSS_PROPERTY_VALUE_LIST_USES_COMMAS,
  581. "",
  582. VARIANT_KEYWORD, // used by list parsing
  583. kImageLayerRepeatKTable,
  584. CSS_PROP_NO_OFFSET,
  585. eStyleAnimType_Discrete)
  586. CSS_PROP_BACKGROUND(
  587. background-size,
  588. background_size,
  589. BackgroundSize,
  590. CSS_PROPERTY_PARSE_FUNCTION |
  591. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
  592. CSS_PROPERTY_APPLIES_TO_PLACEHOLDER |
  593. CSS_PROPERTY_VALUE_LIST_USES_COMMAS |
  594. CSS_PROPERTY_VALUE_NONNEGATIVE |
  595. CSS_PROPERTY_STORES_CALC,
  596. "",
  597. 0,
  598. kImageLayerSizeKTable,
  599. CSS_PROP_NO_OFFSET,
  600. eStyleAnimType_Custom)
  601. CSS_PROP_DISPLAY(
  602. -moz-binding,
  603. binding,
  604. CSS_PROP_DOMPROP_PREFIXED(Binding),
  605. CSS_PROPERTY_PARSE_VALUE,
  606. "",
  607. VARIANT_HUO,
  608. nullptr,
  609. CSS_PROP_NO_OFFSET,
  610. eStyleAnimType_None) // XXX bug 3935
  611. CSS_PROP_LOGICAL(
  612. block-size,
  613. block_size,
  614. BlockSize,
  615. CSS_PROPERTY_PARSE_VALUE |
  616. CSS_PROPERTY_VALUE_NONNEGATIVE |
  617. CSS_PROPERTY_STORES_CALC |
  618. CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH |
  619. CSS_PROPERTY_LOGICAL |
  620. CSS_PROPERTY_LOGICAL_AXIS |
  621. CSS_PROPERTY_LOGICAL_BLOCK_AXIS,
  622. "",
  623. VARIANT_AHLP | VARIANT_CALC,
  624. nullptr,
  625. Size,
  626. Position,
  627. CSS_PROP_NO_OFFSET,
  628. eStyleAnimType_None)
  629. CSS_PROP_SHORTHAND(
  630. border,
  631. border,
  632. Border,
  633. CSS_PROPERTY_PARSE_FUNCTION,
  634. "")
  635. CSS_PROP_SHORTHAND(
  636. border-block-end,
  637. border_block_end,
  638. BorderBlockEnd,
  639. CSS_PROPERTY_PARSE_FUNCTION,
  640. "")
  641. CSS_PROP_LOGICAL(
  642. border-block-end-color,
  643. border_block_end_color,
  644. BorderBlockEndColor,
  645. CSS_PROPERTY_PARSE_VALUE |
  646. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
  647. CSS_PROPERTY_LOGICAL |
  648. CSS_PROPERTY_LOGICAL_BLOCK_AXIS |
  649. CSS_PROPERTY_LOGICAL_END_EDGE,
  650. "",
  651. VARIANT_HC,
  652. nullptr,
  653. BorderColor,
  654. Border,
  655. CSS_PROP_NO_OFFSET,
  656. eStyleAnimType_None)
  657. CSS_PROP_LOGICAL(
  658. border-block-end-style,
  659. border_block_end_style,
  660. BorderBlockEndStyle,
  661. CSS_PROPERTY_PARSE_VALUE |
  662. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
  663. CSS_PROPERTY_LOGICAL |
  664. CSS_PROPERTY_LOGICAL_BLOCK_AXIS |
  665. CSS_PROPERTY_LOGICAL_END_EDGE,
  666. "",
  667. VARIANT_HK,
  668. kBorderStyleKTable,
  669. BorderStyle,
  670. Border,
  671. CSS_PROP_NO_OFFSET,
  672. eStyleAnimType_None)
  673. CSS_PROP_LOGICAL(
  674. border-block-end-width,
  675. border_block_end_width,
  676. BorderBlockEndWidth,
  677. CSS_PROPERTY_PARSE_VALUE |
  678. CSS_PROPERTY_VALUE_NONNEGATIVE |
  679. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
  680. CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH |
  681. CSS_PROPERTY_LOGICAL |
  682. CSS_PROPERTY_LOGICAL_BLOCK_AXIS |
  683. CSS_PROPERTY_LOGICAL_END_EDGE,
  684. "",
  685. VARIANT_HKL | VARIANT_CALC,
  686. kBorderWidthKTable,
  687. BorderWidth,
  688. Border,
  689. CSS_PROP_NO_OFFSET,
  690. eStyleAnimType_None)
  691. CSS_PROP_SHORTHAND(
  692. border-block-start,
  693. border_block_start,
  694. BorderBlockStart,
  695. CSS_PROPERTY_PARSE_FUNCTION,
  696. "")
  697. CSS_PROP_LOGICAL(
  698. border-block-start-color,
  699. border_block_start_color,
  700. BorderBlockStartColor,
  701. CSS_PROPERTY_PARSE_VALUE |
  702. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
  703. CSS_PROPERTY_LOGICAL |
  704. CSS_PROPERTY_LOGICAL_BLOCK_AXIS,
  705. "",
  706. VARIANT_HC,
  707. nullptr,
  708. BorderColor,
  709. Border,
  710. CSS_PROP_NO_OFFSET,
  711. eStyleAnimType_None)
  712. CSS_PROP_LOGICAL(
  713. border-block-start-style,
  714. border_block_start_style,
  715. BorderBlockStartStyle,
  716. CSS_PROPERTY_PARSE_VALUE |
  717. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
  718. CSS_PROPERTY_LOGICAL |
  719. CSS_PROPERTY_LOGICAL_BLOCK_AXIS,
  720. "",
  721. VARIANT_HK,
  722. kBorderStyleKTable,
  723. BorderStyle,
  724. Border,
  725. CSS_PROP_NO_OFFSET,
  726. eStyleAnimType_None)
  727. CSS_PROP_LOGICAL(
  728. border-block-start-width,
  729. border_block_start_width,
  730. BorderBlockStartWidth,
  731. CSS_PROPERTY_PARSE_VALUE |
  732. CSS_PROPERTY_VALUE_NONNEGATIVE |
  733. CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH |
  734. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
  735. CSS_PROPERTY_LOGICAL |
  736. CSS_PROPERTY_LOGICAL_BLOCK_AXIS,
  737. "",
  738. VARIANT_HKL | VARIANT_CALC,
  739. kBorderWidthKTable,
  740. BorderWidth,
  741. Border,
  742. CSS_PROP_NO_OFFSET,
  743. eStyleAnimType_None)
  744. CSS_PROP_SHORTHAND(
  745. border-bottom,
  746. border_bottom,
  747. BorderBottom,
  748. CSS_PROPERTY_PARSE_FUNCTION,
  749. "")
  750. CSS_PROP_BORDER(
  751. border-bottom-color,
  752. border_bottom_color,
  753. BorderBottomColor,
  754. CSS_PROPERTY_PARSE_VALUE |
  755. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
  756. CSS_PROPERTY_IGNORED_WHEN_COLORS_DISABLED |
  757. CSS_PROPERTY_HASHLESS_COLOR_QUIRK,
  758. "",
  759. VARIANT_HC,
  760. nullptr,
  761. offsetof(nsStyleBorder, mBorderBottomColor),
  762. eStyleAnimType_ComplexColor)
  763. CSS_PROP_BORDER(
  764. -moz-border-bottom-colors,
  765. border_bottom_colors,
  766. CSS_PROP_DOMPROP_PREFIXED(BorderBottomColors),
  767. CSS_PROPERTY_PARSE_FUNCTION |
  768. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
  769. CSS_PROPERTY_IGNORED_WHEN_COLORS_DISABLED,
  770. "",
  771. 0,
  772. nullptr,
  773. CSS_PROP_NO_OFFSET,
  774. eStyleAnimType_Discrete)
  775. CSS_PROP_BORDER(
  776. border-bottom-left-radius,
  777. border_bottom_left_radius,
  778. BorderBottomLeftRadius,
  779. CSS_PROPERTY_PARSE_FUNCTION |
  780. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
  781. CSS_PROPERTY_VALUE_NONNEGATIVE |
  782. CSS_PROPERTY_STORES_CALC,
  783. "",
  784. 0,
  785. nullptr,
  786. offsetof(nsStyleBorder, mBorderRadius),
  787. eStyleAnimType_Corner_BottomLeft)
  788. CSS_PROP_BORDER(
  789. border-bottom-right-radius,
  790. border_bottom_right_radius,
  791. BorderBottomRightRadius,
  792. CSS_PROPERTY_PARSE_FUNCTION |
  793. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
  794. CSS_PROPERTY_VALUE_NONNEGATIVE |
  795. CSS_PROPERTY_STORES_CALC,
  796. "",
  797. 0,
  798. nullptr,
  799. offsetof(nsStyleBorder, mBorderRadius),
  800. eStyleAnimType_Corner_BottomRight)
  801. CSS_PROP_BORDER(
  802. border-bottom-style,
  803. border_bottom_style,
  804. BorderBottomStyle,
  805. CSS_PROPERTY_PARSE_VALUE |
  806. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER,
  807. "",
  808. VARIANT_HK,
  809. kBorderStyleKTable,
  810. CSS_PROP_NO_OFFSET,
  811. eStyleAnimType_Discrete) // on/off will need reflow
  812. CSS_PROP_BORDER(
  813. border-bottom-width,
  814. border_bottom_width,
  815. BorderBottomWidth,
  816. CSS_PROPERTY_PARSE_VALUE |
  817. CSS_PROPERTY_VALUE_NONNEGATIVE |
  818. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
  819. CSS_PROPERTY_UNITLESS_LENGTH_QUIRK |
  820. CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH,
  821. "",
  822. VARIANT_HKL | VARIANT_CALC,
  823. kBorderWidthKTable,
  824. CSS_PROP_NO_OFFSET,
  825. eStyleAnimType_Custom)
  826. CSS_PROP_TABLEBORDER(
  827. border-collapse,
  828. border_collapse,
  829. BorderCollapse,
  830. CSS_PROPERTY_PARSE_VALUE,
  831. "",
  832. VARIANT_HK,
  833. kBorderCollapseKTable,
  834. CSS_PROP_NO_OFFSET,
  835. eStyleAnimType_Discrete)
  836. CSS_PROP_SHORTHAND(
  837. border-color,
  838. border_color,
  839. BorderColor,
  840. CSS_PROPERTY_PARSE_FUNCTION |
  841. CSS_PROPERTY_HASHLESS_COLOR_QUIRK,
  842. "")
  843. CSS_PROP_SHORTHAND(
  844. border-image,
  845. border_image,
  846. BorderImage,
  847. CSS_PROPERTY_PARSE_FUNCTION,
  848. "")
  849. CSS_PROP_BORDER(
  850. border-image-outset,
  851. border_image_outset,
  852. BorderImageOutset,
  853. CSS_PROPERTY_PARSE_FUNCTION |
  854. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER,
  855. "",
  856. 0,
  857. nullptr,
  858. CSS_PROP_NO_OFFSET,
  859. eStyleAnimType_Discrete)
  860. CSS_PROP_BORDER(
  861. border-image-repeat,
  862. border_image_repeat,
  863. BorderImageRepeat,
  864. CSS_PROPERTY_PARSE_FUNCTION |
  865. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER,
  866. "",
  867. 0,
  868. kBorderImageRepeatKTable,
  869. CSS_PROP_NO_OFFSET,
  870. eStyleAnimType_Discrete)
  871. CSS_PROP_BORDER(
  872. border-image-slice,
  873. border_image_slice,
  874. BorderImageSlice,
  875. CSS_PROPERTY_PARSE_FUNCTION |
  876. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER,
  877. "",
  878. 0,
  879. kBorderImageSliceKTable,
  880. CSS_PROP_NO_OFFSET,
  881. eStyleAnimType_Discrete)
  882. CSS_PROP_BORDER(
  883. border-image-source,
  884. border_image_source,
  885. BorderImageSource,
  886. CSS_PROPERTY_PARSE_VALUE |
  887. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
  888. CSS_PROPERTY_START_IMAGE_LOADS,
  889. "",
  890. VARIANT_IMAGE | VARIANT_INHERIT,
  891. nullptr,
  892. CSS_PROP_NO_OFFSET,
  893. eStyleAnimType_Discrete)
  894. CSS_PROP_BORDER(
  895. border-image-width,
  896. border_image_width,
  897. BorderImageWidth,
  898. CSS_PROPERTY_PARSE_FUNCTION |
  899. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER,
  900. "",
  901. 0,
  902. nullptr,
  903. CSS_PROP_NO_OFFSET,
  904. eStyleAnimType_Discrete)
  905. CSS_PROP_SHORTHAND(
  906. border-inline-end,
  907. border_inline_end,
  908. BorderInlineEnd,
  909. CSS_PROPERTY_PARSE_FUNCTION,
  910. "")
  911. CSS_PROP_LOGICAL(
  912. border-inline-end-color,
  913. border_inline_end_color,
  914. BorderInlineEndColor,
  915. CSS_PROPERTY_PARSE_VALUE |
  916. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
  917. CSS_PROPERTY_LOGICAL |
  918. CSS_PROPERTY_LOGICAL_END_EDGE,
  919. "",
  920. VARIANT_HC,
  921. nullptr,
  922. BorderColor,
  923. Border,
  924. CSS_PROP_NO_OFFSET,
  925. eStyleAnimType_None)
  926. CSS_PROP_LOGICAL(
  927. border-inline-end-style,
  928. border_inline_end_style,
  929. BorderInlineEndStyle,
  930. CSS_PROPERTY_PARSE_VALUE |
  931. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
  932. CSS_PROPERTY_LOGICAL |
  933. CSS_PROPERTY_LOGICAL_END_EDGE,
  934. "",
  935. VARIANT_HK,
  936. kBorderStyleKTable,
  937. BorderStyle,
  938. Border,
  939. CSS_PROP_NO_OFFSET,
  940. eStyleAnimType_None)
  941. CSS_PROP_LOGICAL(
  942. border-inline-end-width,
  943. border_inline_end_width,
  944. BorderInlineEndWidth,
  945. CSS_PROPERTY_PARSE_VALUE |
  946. CSS_PROPERTY_VALUE_NONNEGATIVE |
  947. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
  948. CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH |
  949. CSS_PROPERTY_LOGICAL |
  950. CSS_PROPERTY_LOGICAL_END_EDGE,
  951. "",
  952. VARIANT_HKL | VARIANT_CALC,
  953. kBorderWidthKTable,
  954. BorderWidth,
  955. Border,
  956. CSS_PROP_NO_OFFSET,
  957. eStyleAnimType_None)
  958. CSS_PROP_SHORTHAND(
  959. border-inline-start,
  960. border_inline_start,
  961. BorderInlineStart,
  962. CSS_PROPERTY_PARSE_FUNCTION,
  963. "")
  964. CSS_PROP_LOGICAL(
  965. border-inline-start-color,
  966. border_inline_start_color,
  967. BorderInlineStartColor,
  968. CSS_PROPERTY_PARSE_VALUE |
  969. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
  970. CSS_PROPERTY_LOGICAL,
  971. "",
  972. VARIANT_HC,
  973. nullptr,
  974. BorderColor,
  975. Border,
  976. CSS_PROP_NO_OFFSET,
  977. eStyleAnimType_None)
  978. CSS_PROP_LOGICAL(
  979. border-inline-start-style,
  980. border_inline_start_style,
  981. BorderInlineStartStyle,
  982. CSS_PROPERTY_PARSE_VALUE |
  983. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
  984. CSS_PROPERTY_LOGICAL,
  985. "",
  986. VARIANT_HK,
  987. kBorderStyleKTable,
  988. BorderStyle,
  989. Border,
  990. CSS_PROP_NO_OFFSET,
  991. eStyleAnimType_None)
  992. CSS_PROP_LOGICAL(
  993. border-inline-start-width,
  994. border_inline_start_width,
  995. BorderInlineStartWidth,
  996. CSS_PROPERTY_PARSE_VALUE |
  997. CSS_PROPERTY_VALUE_NONNEGATIVE |
  998. CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH |
  999. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
  1000. CSS_PROPERTY_LOGICAL,
  1001. "",
  1002. VARIANT_HKL | VARIANT_CALC,
  1003. kBorderWidthKTable,
  1004. BorderWidth,
  1005. Border,
  1006. CSS_PROP_NO_OFFSET,
  1007. eStyleAnimType_None)
  1008. CSS_PROP_SHORTHAND(
  1009. border-left,
  1010. border_left,
  1011. BorderLeft,
  1012. CSS_PROPERTY_PARSE_FUNCTION,
  1013. "")
  1014. CSS_PROP_BORDER(
  1015. border-left-color,
  1016. border_left_color,
  1017. BorderLeftColor,
  1018. CSS_PROPERTY_PARSE_VALUE |
  1019. CSS_PROPERTY_HASHLESS_COLOR_QUIRK |
  1020. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
  1021. CSS_PROPERTY_IGNORED_WHEN_COLORS_DISABLED,
  1022. "",
  1023. VARIANT_HC,
  1024. nullptr,
  1025. offsetof(nsStyleBorder, mBorderLeftColor),
  1026. eStyleAnimType_ComplexColor)
  1027. CSS_PROP_BORDER(
  1028. -moz-border-left-colors,
  1029. border_left_colors,
  1030. CSS_PROP_DOMPROP_PREFIXED(BorderLeftColors),
  1031. CSS_PROPERTY_PARSE_FUNCTION |
  1032. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
  1033. CSS_PROPERTY_IGNORED_WHEN_COLORS_DISABLED,
  1034. "",
  1035. 0,
  1036. nullptr,
  1037. CSS_PROP_NO_OFFSET,
  1038. eStyleAnimType_Discrete)
  1039. CSS_PROP_BORDER(
  1040. border-left-style,
  1041. border_left_style,
  1042. BorderLeftStyle,
  1043. CSS_PROPERTY_PARSE_VALUE |
  1044. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER,
  1045. "",
  1046. VARIANT_HK,
  1047. kBorderStyleKTable,
  1048. CSS_PROP_NO_OFFSET,
  1049. eStyleAnimType_Discrete)
  1050. CSS_PROP_BORDER(
  1051. border-left-width,
  1052. border_left_width,
  1053. BorderLeftWidth,
  1054. CSS_PROPERTY_PARSE_VALUE |
  1055. CSS_PROPERTY_UNITLESS_LENGTH_QUIRK |
  1056. CSS_PROPERTY_VALUE_NONNEGATIVE |
  1057. CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH |
  1058. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER,
  1059. "",
  1060. VARIANT_HKL | VARIANT_CALC,
  1061. kBorderWidthKTable,
  1062. CSS_PROP_NO_OFFSET,
  1063. eStyleAnimType_Custom)
  1064. CSS_PROP_SHORTHAND(
  1065. border-radius,
  1066. border_radius,
  1067. BorderRadius,
  1068. CSS_PROPERTY_PARSE_FUNCTION,
  1069. "")
  1070. CSS_PROP_SHORTHAND(
  1071. border-right,
  1072. border_right,
  1073. BorderRight,
  1074. CSS_PROPERTY_PARSE_FUNCTION,
  1075. "")
  1076. CSS_PROP_BORDER(
  1077. border-right-color,
  1078. border_right_color,
  1079. BorderRightColor,
  1080. CSS_PROPERTY_PARSE_VALUE |
  1081. CSS_PROPERTY_HASHLESS_COLOR_QUIRK |
  1082. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
  1083. CSS_PROPERTY_IGNORED_WHEN_COLORS_DISABLED,
  1084. "",
  1085. VARIANT_HC,
  1086. nullptr,
  1087. offsetof(nsStyleBorder, mBorderRightColor),
  1088. eStyleAnimType_ComplexColor)
  1089. CSS_PROP_BORDER(
  1090. -moz-border-right-colors,
  1091. border_right_colors,
  1092. CSS_PROP_DOMPROP_PREFIXED(BorderRightColors),
  1093. CSS_PROPERTY_PARSE_FUNCTION |
  1094. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
  1095. CSS_PROPERTY_IGNORED_WHEN_COLORS_DISABLED,
  1096. "",
  1097. 0,
  1098. nullptr,
  1099. CSS_PROP_NO_OFFSET,
  1100. eStyleAnimType_Discrete)
  1101. CSS_PROP_BORDER(
  1102. border-right-style,
  1103. border_right_style,
  1104. BorderRightStyle,
  1105. CSS_PROPERTY_PARSE_VALUE |
  1106. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER,
  1107. "",
  1108. VARIANT_HK,
  1109. kBorderStyleKTable,
  1110. CSS_PROP_NO_OFFSET,
  1111. eStyleAnimType_Discrete)
  1112. CSS_PROP_BORDER(
  1113. border-right-width,
  1114. border_right_width,
  1115. BorderRightWidth,
  1116. CSS_PROPERTY_PARSE_VALUE |
  1117. CSS_PROPERTY_VALUE_NONNEGATIVE |
  1118. CSS_PROPERTY_UNITLESS_LENGTH_QUIRK |
  1119. CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH |
  1120. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER,
  1121. "",
  1122. VARIANT_HKL | VARIANT_CALC,
  1123. kBorderWidthKTable,
  1124. CSS_PROP_NO_OFFSET,
  1125. eStyleAnimType_Custom)
  1126. CSS_PROP_TABLEBORDER(
  1127. border-spacing,
  1128. border_spacing,
  1129. BorderSpacing,
  1130. CSS_PROPERTY_PARSE_FUNCTION |
  1131. CSS_PROPERTY_UNITLESS_LENGTH_QUIRK |
  1132. CSS_PROPERTY_VALUE_NONNEGATIVE,
  1133. "",
  1134. 0,
  1135. nullptr,
  1136. CSS_PROP_NO_OFFSET,
  1137. eStyleAnimType_Custom)
  1138. CSS_PROP_SHORTHAND(
  1139. border-style,
  1140. border_style,
  1141. BorderStyle,
  1142. CSS_PROPERTY_PARSE_FUNCTION,
  1143. "") // on/off will need reflow
  1144. CSS_PROP_SHORTHAND(
  1145. border-top,
  1146. border_top,
  1147. BorderTop,
  1148. CSS_PROPERTY_PARSE_FUNCTION,
  1149. "")
  1150. CSS_PROP_BORDER(
  1151. border-top-color,
  1152. border_top_color,
  1153. BorderTopColor,
  1154. CSS_PROPERTY_PARSE_VALUE |
  1155. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
  1156. CSS_PROPERTY_IGNORED_WHEN_COLORS_DISABLED |
  1157. CSS_PROPERTY_HASHLESS_COLOR_QUIRK,
  1158. "",
  1159. VARIANT_HC,
  1160. nullptr,
  1161. offsetof(nsStyleBorder, mBorderTopColor),
  1162. eStyleAnimType_ComplexColor)
  1163. CSS_PROP_BORDER(
  1164. -moz-border-top-colors,
  1165. border_top_colors,
  1166. CSS_PROP_DOMPROP_PREFIXED(BorderTopColors),
  1167. CSS_PROPERTY_PARSE_FUNCTION |
  1168. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
  1169. CSS_PROPERTY_IGNORED_WHEN_COLORS_DISABLED,
  1170. "",
  1171. 0,
  1172. nullptr,
  1173. CSS_PROP_NO_OFFSET,
  1174. eStyleAnimType_Discrete)
  1175. CSS_PROP_BORDER(
  1176. border-top-left-radius,
  1177. border_top_left_radius,
  1178. BorderTopLeftRadius,
  1179. CSS_PROPERTY_PARSE_FUNCTION |
  1180. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
  1181. CSS_PROPERTY_VALUE_NONNEGATIVE |
  1182. CSS_PROPERTY_STORES_CALC,
  1183. "",
  1184. 0,
  1185. nullptr,
  1186. offsetof(nsStyleBorder, mBorderRadius),
  1187. eStyleAnimType_Corner_TopLeft)
  1188. CSS_PROP_BORDER(
  1189. border-top-right-radius,
  1190. border_top_right_radius,
  1191. BorderTopRightRadius,
  1192. CSS_PROPERTY_PARSE_FUNCTION |
  1193. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
  1194. CSS_PROPERTY_VALUE_NONNEGATIVE |
  1195. CSS_PROPERTY_STORES_CALC,
  1196. "",
  1197. 0,
  1198. nullptr,
  1199. offsetof(nsStyleBorder, mBorderRadius),
  1200. eStyleAnimType_Corner_TopRight)
  1201. CSS_PROP_BORDER(
  1202. border-top-style,
  1203. border_top_style,
  1204. BorderTopStyle,
  1205. CSS_PROPERTY_PARSE_VALUE |
  1206. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER,
  1207. "",
  1208. VARIANT_HK,
  1209. kBorderStyleKTable,
  1210. CSS_PROP_NO_OFFSET,
  1211. eStyleAnimType_Discrete) // on/off will need reflow
  1212. CSS_PROP_BORDER(
  1213. border-top-width,
  1214. border_top_width,
  1215. BorderTopWidth,
  1216. CSS_PROPERTY_PARSE_VALUE |
  1217. CSS_PROPERTY_VALUE_NONNEGATIVE |
  1218. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
  1219. CSS_PROPERTY_UNITLESS_LENGTH_QUIRK |
  1220. CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH,
  1221. "",
  1222. VARIANT_HKL | VARIANT_CALC,
  1223. kBorderWidthKTable,
  1224. CSS_PROP_NO_OFFSET,
  1225. eStyleAnimType_Custom)
  1226. CSS_PROP_SHORTHAND(
  1227. border-width,
  1228. border_width,
  1229. BorderWidth,
  1230. CSS_PROPERTY_PARSE_FUNCTION |
  1231. CSS_PROPERTY_UNITLESS_LENGTH_QUIRK,
  1232. "")
  1233. CSS_PROP_POSITION(
  1234. bottom,
  1235. bottom,
  1236. Bottom,
  1237. CSS_PROPERTY_PARSE_VALUE |
  1238. CSS_PROPERTY_STORES_CALC |
  1239. CSS_PROPERTY_UNITLESS_LENGTH_QUIRK |
  1240. CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH,
  1241. "",
  1242. VARIANT_AHLP | VARIANT_CALC,
  1243. nullptr,
  1244. offsetof(nsStylePosition, mOffset),
  1245. eStyleAnimType_Sides_Bottom)
  1246. CSS_PROP_XUL(
  1247. -moz-box-align,
  1248. box_align,
  1249. CSS_PROP_DOMPROP_PREFIXED(BoxAlign),
  1250. CSS_PROPERTY_PARSE_VALUE,
  1251. "",
  1252. VARIANT_HK,
  1253. kBoxAlignKTable,
  1254. CSS_PROP_NO_OFFSET,
  1255. eStyleAnimType_Discrete) // XXX bug 3935
  1256. CSS_PROP_BORDER(
  1257. box-decoration-break,
  1258. box_decoration_break,
  1259. BoxDecorationBreak,
  1260. CSS_PROPERTY_PARSE_VALUE,
  1261. "layout.css.box-decoration-break.enabled",
  1262. VARIANT_HK,
  1263. kBoxDecorationBreakKTable,
  1264. CSS_PROP_NO_OFFSET,
  1265. eStyleAnimType_Discrete)
  1266. CSS_PROP_XUL(
  1267. -moz-box-direction,
  1268. box_direction,
  1269. CSS_PROP_DOMPROP_PREFIXED(BoxDirection),
  1270. CSS_PROPERTY_PARSE_VALUE,
  1271. "",
  1272. VARIANT_HK,
  1273. kBoxDirectionKTable,
  1274. CSS_PROP_NO_OFFSET,
  1275. eStyleAnimType_Discrete) // XXX bug 3935
  1276. CSS_PROP_XUL(
  1277. -moz-box-flex,
  1278. box_flex,
  1279. CSS_PROP_DOMPROP_PREFIXED(BoxFlex),
  1280. CSS_PROPERTY_PARSE_VALUE |
  1281. CSS_PROPERTY_VALUE_NONNEGATIVE,
  1282. "",
  1283. VARIANT_HN,
  1284. nullptr,
  1285. offsetof(nsStyleXUL, mBoxFlex),
  1286. eStyleAnimType_float) // XXX bug 3935
  1287. CSS_PROP_XUL(
  1288. -moz-box-ordinal-group,
  1289. box_ordinal_group,
  1290. CSS_PROP_DOMPROP_PREFIXED(BoxOrdinalGroup),
  1291. CSS_PROPERTY_PARSE_VALUE |
  1292. CSS_PROPERTY_VALUE_NONNEGATIVE,
  1293. "",
  1294. VARIANT_HI,
  1295. nullptr,
  1296. CSS_PROP_NO_OFFSET,
  1297. eStyleAnimType_Discrete)
  1298. CSS_PROP_XUL(
  1299. -moz-box-orient,
  1300. box_orient,
  1301. CSS_PROP_DOMPROP_PREFIXED(BoxOrient),
  1302. CSS_PROPERTY_PARSE_VALUE,
  1303. "",
  1304. VARIANT_HK,
  1305. kBoxOrientKTable,
  1306. CSS_PROP_NO_OFFSET,
  1307. eStyleAnimType_Discrete) // XXX bug 3935
  1308. CSS_PROP_XUL(
  1309. -moz-box-pack,
  1310. box_pack,
  1311. CSS_PROP_DOMPROP_PREFIXED(BoxPack),
  1312. CSS_PROPERTY_PARSE_VALUE,
  1313. "",
  1314. VARIANT_HK,
  1315. kBoxPackKTable,
  1316. CSS_PROP_NO_OFFSET,
  1317. eStyleAnimType_Discrete) // XXX bug 3935
  1318. CSS_PROP_EFFECTS(
  1319. box-shadow,
  1320. box_shadow,
  1321. BoxShadow,
  1322. CSS_PROPERTY_PARSE_FUNCTION |
  1323. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
  1324. CSS_PROPERTY_VALUE_LIST_USES_COMMAS |
  1325. CSS_PROPERTY_IGNORED_WHEN_COLORS_DISABLED,
  1326. // NOTE: some components must be nonnegative
  1327. "",
  1328. 0,
  1329. kBoxShadowTypeKTable,
  1330. offsetof(nsStyleEffects, mBoxShadow),
  1331. eStyleAnimType_Shadow)
  1332. CSS_PROP_POSITION(
  1333. box-sizing,
  1334. box_sizing,
  1335. BoxSizing,
  1336. CSS_PROPERTY_PARSE_VALUE,
  1337. "",
  1338. VARIANT_HK,
  1339. kBoxSizingKTable,
  1340. CSS_PROP_NO_OFFSET,
  1341. eStyleAnimType_Discrete)
  1342. CSS_PROP_TABLEBORDER(
  1343. caption-side,
  1344. caption_side,
  1345. CaptionSide,
  1346. CSS_PROPERTY_PARSE_VALUE,
  1347. "",
  1348. VARIANT_HK,
  1349. kCaptionSideKTable,
  1350. CSS_PROP_NO_OFFSET,
  1351. eStyleAnimType_Discrete)
  1352. CSS_PROP_USERINTERFACE(
  1353. caret-color,
  1354. caret_color,
  1355. CaretColor,
  1356. CSS_PROPERTY_PARSE_VALUE |
  1357. CSS_PROPERTY_IGNORED_WHEN_COLORS_DISABLED,
  1358. "",
  1359. VARIANT_AUTO | VARIANT_HC,
  1360. nullptr,
  1361. offsetof(nsStyleUserInterface, mCaretColor),
  1362. eStyleAnimType_ComplexColor)
  1363. CSS_PROP_DISPLAY(
  1364. clear,
  1365. clear,
  1366. Clear,
  1367. CSS_PROPERTY_PARSE_VALUE,
  1368. "",
  1369. VARIANT_HK,
  1370. kClearKTable,
  1371. CSS_PROP_NO_OFFSET,
  1372. eStyleAnimType_Discrete)
  1373. CSS_PROP_EFFECTS(
  1374. clip,
  1375. clip,
  1376. Clip,
  1377. CSS_PROPERTY_PARSE_FUNCTION |
  1378. CSS_PROPERTY_UNITLESS_LENGTH_QUIRK,
  1379. "",
  1380. 0,
  1381. nullptr,
  1382. offsetof(nsStyleEffects, mClip),
  1383. eStyleAnimType_Custom)
  1384. CSS_PROP_SVGRESET(
  1385. clip-path,
  1386. clip_path,
  1387. ClipPath,
  1388. CSS_PROPERTY_PARSE_VALUE |
  1389. CSS_PROPERTY_VALUE_PARSER_FUNCTION |
  1390. CSS_PROPERTY_CREATES_STACKING_CONTEXT |
  1391. CSS_PROPERTY_STORES_CALC,
  1392. "",
  1393. 0,
  1394. nullptr,
  1395. CSS_PROP_NO_OFFSET,
  1396. eStyleAnimType_Custom)
  1397. CSS_PROP_SVG(
  1398. clip-rule,
  1399. clip_rule,
  1400. ClipRule,
  1401. CSS_PROPERTY_PARSE_VALUE,
  1402. "",
  1403. VARIANT_HK,
  1404. kFillRuleKTable,
  1405. CSS_PROP_NO_OFFSET,
  1406. eStyleAnimType_Discrete)
  1407. CSS_PROP_COLOR(
  1408. color,
  1409. color,
  1410. Color,
  1411. CSS_PROPERTY_PARSE_VALUE |
  1412. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
  1413. CSS_PROPERTY_APPLIES_TO_PLACEHOLDER |
  1414. CSS_PROPERTY_IGNORED_WHEN_COLORS_DISABLED |
  1415. CSS_PROPERTY_HASHLESS_COLOR_QUIRK,
  1416. "",
  1417. VARIANT_HC,
  1418. nullptr,
  1419. offsetof(nsStyleColor, mColor),
  1420. eStyleAnimType_Color)
  1421. CSS_PROP_VISIBILITY(
  1422. color-adjust,
  1423. color_adjust,
  1424. ColorAdjust,
  1425. CSS_PROPERTY_PARSE_VALUE,
  1426. "layout.css.color-adjust.enabled",
  1427. VARIANT_HK,
  1428. kColorAdjustKTable,
  1429. CSS_PROP_NO_OFFSET,
  1430. eStyleAnimType_Discrete)
  1431. CSS_PROP_SVG(
  1432. color-interpolation,
  1433. color_interpolation,
  1434. ColorInterpolation,
  1435. CSS_PROPERTY_PARSE_VALUE,
  1436. "",
  1437. VARIANT_HK,
  1438. kColorInterpolationKTable,
  1439. CSS_PROP_NO_OFFSET,
  1440. eStyleAnimType_Discrete)
  1441. CSS_PROP_SVG(
  1442. color-interpolation-filters,
  1443. color_interpolation_filters,
  1444. ColorInterpolationFilters,
  1445. CSS_PROPERTY_PARSE_VALUE,
  1446. "",
  1447. VARIANT_HK,
  1448. kColorInterpolationKTable,
  1449. CSS_PROP_NO_OFFSET,
  1450. eStyleAnimType_Discrete)
  1451. CSS_PROP_COLUMN(
  1452. column-count,
  1453. column_count,
  1454. ColumnCount,
  1455. CSS_PROPERTY_PARSE_VALUE |
  1456. // Need to reject 0 in addition to negatives. If we accept 0, we
  1457. // need to change NS_STYLE_COLUMN_COUNT_AUTO to something else.
  1458. CSS_PROPERTY_VALUE_AT_LEAST_ONE,
  1459. "",
  1460. VARIANT_AHI,
  1461. nullptr,
  1462. offsetof(nsStyleColumn, mColumnCount),
  1463. eStyleAnimType_Custom)
  1464. CSS_PROP_COLUMN(
  1465. column-fill,
  1466. column_fill,
  1467. ColumnFill,
  1468. CSS_PROPERTY_PARSE_VALUE,
  1469. "",
  1470. VARIANT_HK,
  1471. kColumnFillKTable,
  1472. CSS_PROP_NO_OFFSET,
  1473. eStyleAnimType_Discrete)
  1474. CSS_PROP_COLUMN(
  1475. column-gap,
  1476. column_gap,
  1477. ColumnGap,
  1478. CSS_PROPERTY_PARSE_VALUE |
  1479. CSS_PROPERTY_VALUE_NONNEGATIVE,
  1480. "",
  1481. VARIANT_HLP | VARIANT_NORMAL | VARIANT_CALC,
  1482. nullptr,
  1483. offsetof(nsStyleColumn, mColumnGap),
  1484. eStyleAnimType_Coord)
  1485. CSS_PROP_SHORTHAND(
  1486. column-rule,
  1487. column_rule,
  1488. ColumnRule,
  1489. CSS_PROPERTY_PARSE_FUNCTION,
  1490. "")
  1491. CSS_PROP_COLUMN(
  1492. column-rule-color,
  1493. column_rule_color,
  1494. ColumnRuleColor,
  1495. CSS_PROPERTY_PARSE_VALUE |
  1496. CSS_PROPERTY_IGNORED_WHEN_COLORS_DISABLED,
  1497. "",
  1498. VARIANT_HC,
  1499. nullptr,
  1500. offsetof(nsStyleColumn, mColumnRuleColor),
  1501. eStyleAnimType_ComplexColor)
  1502. CSS_PROP_COLUMN(
  1503. column-rule-style,
  1504. column_rule_style,
  1505. ColumnRuleStyle,
  1506. CSS_PROPERTY_PARSE_VALUE,
  1507. "",
  1508. VARIANT_HK,
  1509. kBorderStyleKTable,
  1510. CSS_PROP_NO_OFFSET,
  1511. eStyleAnimType_Discrete)
  1512. CSS_PROP_COLUMN(
  1513. column-rule-width,
  1514. column_rule_width,
  1515. ColumnRuleWidth,
  1516. CSS_PROPERTY_PARSE_VALUE |
  1517. CSS_PROPERTY_VALUE_NONNEGATIVE,
  1518. "",
  1519. VARIANT_HKL | VARIANT_CALC,
  1520. kBorderWidthKTable,
  1521. CSS_PROP_NO_OFFSET,
  1522. eStyleAnimType_Custom)
  1523. CSS_PROP_COLUMN(
  1524. column-width,
  1525. column_width,
  1526. ColumnWidth,
  1527. CSS_PROPERTY_PARSE_VALUE |
  1528. CSS_PROPERTY_VALUE_NONNEGATIVE,
  1529. "",
  1530. VARIANT_AHL | VARIANT_CALC,
  1531. nullptr,
  1532. offsetof(nsStyleColumn, mColumnWidth),
  1533. eStyleAnimType_Coord)
  1534. CSS_PROP_SHORTHAND(
  1535. columns,
  1536. columns,
  1537. Columns,
  1538. CSS_PROPERTY_PARSE_FUNCTION,
  1539. "")
  1540. CSS_PROP_DISPLAY(
  1541. contain,
  1542. contain,
  1543. Contain,
  1544. CSS_PROPERTY_PARSE_VALUE |
  1545. CSS_PROPERTY_VALUE_PARSER_FUNCTION |
  1546. CSS_PROPERTY_FIXPOS_CB,
  1547. "layout.css.contain.enabled",
  1548. // Does not affect parsing, but is needed for tab completion in devtools:
  1549. VARIANT_HK | VARIANT_NONE,
  1550. kContainKTable,
  1551. CSS_PROP_NO_OFFSET,
  1552. eStyleAnimType_Discrete)
  1553. CSS_PROP_CONTENT(
  1554. content,
  1555. content,
  1556. Content,
  1557. CSS_PROPERTY_PARSE_FUNCTION |
  1558. CSS_PROPERTY_START_IMAGE_LOADS,
  1559. "",
  1560. 0,
  1561. kContentKTable,
  1562. CSS_PROP_NO_OFFSET,
  1563. eStyleAnimType_Discrete)
  1564. #ifndef CSS_PROP_LIST_EXCLUDE_INTERNAL
  1565. CSS_PROP_TEXT(
  1566. -moz-control-character-visibility,
  1567. _moz_control_character_visibility,
  1568. CSS_PROP_DOMPROP_PREFIXED(ControlCharacterVisibility),
  1569. CSS_PROPERTY_INTERNAL |
  1570. CSS_PROPERTY_PARSE_VALUE,
  1571. "",
  1572. VARIANT_HK,
  1573. kControlCharacterVisibilityKTable,
  1574. CSS_PROP_NO_OFFSET,
  1575. eStyleAnimType_None)
  1576. #endif // CSS_PROP_LIST_EXCLUDE_INTERNAL
  1577. CSS_PROP_CONTENT(
  1578. counter-increment,
  1579. counter_increment,
  1580. CounterIncrement,
  1581. CSS_PROPERTY_PARSE_FUNCTION,
  1582. "",
  1583. 0,
  1584. nullptr,
  1585. CSS_PROP_NO_OFFSET,
  1586. eStyleAnimType_Discrete) // XXX bug 137285
  1587. CSS_PROP_CONTENT(
  1588. counter-reset,
  1589. counter_reset,
  1590. CounterReset,
  1591. CSS_PROPERTY_PARSE_FUNCTION,
  1592. "",
  1593. 0,
  1594. nullptr,
  1595. CSS_PROP_NO_OFFSET,
  1596. eStyleAnimType_Discrete) // XXX bug 137285
  1597. CSS_PROP_USERINTERFACE(
  1598. cursor,
  1599. cursor,
  1600. Cursor,
  1601. CSS_PROPERTY_PARSE_FUNCTION |
  1602. CSS_PROPERTY_VALUE_LIST_USES_COMMAS |
  1603. CSS_PROPERTY_START_IMAGE_LOADS |
  1604. CSS_PROPERTY_IMAGE_IS_IN_ARRAY_0,
  1605. "",
  1606. 0,
  1607. kCursorKTable,
  1608. CSS_PROP_NO_OFFSET,
  1609. eStyleAnimType_Discrete)
  1610. #ifndef CSS_PROP_LIST_ONLY_COMPONENTS_OF_ALL_SHORTHAND
  1611. CSS_PROP_VISIBILITY(
  1612. direction,
  1613. direction,
  1614. Direction,
  1615. CSS_PROPERTY_PARSE_VALUE,
  1616. "",
  1617. VARIANT_HK,
  1618. kDirectionKTable,
  1619. CSS_PROP_NO_OFFSET,
  1620. eStyleAnimType_Discrete)
  1621. #endif // !defined(CSS_PROP_LIST_ONLY_COMPONENTS_OF_ALL_SHORTHAND)
  1622. CSS_PROP_DISPLAY(
  1623. display,
  1624. display,
  1625. Display,
  1626. CSS_PROPERTY_PARSE_VALUE |
  1627. // This is allowed because we need to make the placeholder
  1628. // pseudo-element an inline-block in the UA stylesheet. It is a block
  1629. // by default.
  1630. CSS_PROPERTY_APPLIES_TO_PLACEHOLDER,
  1631. "",
  1632. VARIANT_HK,
  1633. kDisplayKTable,
  1634. offsetof(nsStyleDisplay, mDisplay),
  1635. eStyleAnimType_None)
  1636. CSS_PROP_SVGRESET(
  1637. dominant-baseline,
  1638. dominant_baseline,
  1639. DominantBaseline,
  1640. CSS_PROPERTY_PARSE_VALUE,
  1641. "",
  1642. VARIANT_HK,
  1643. kDominantBaselineKTable,
  1644. CSS_PROP_NO_OFFSET,
  1645. eStyleAnimType_Discrete)
  1646. CSS_PROP_TABLEBORDER(
  1647. empty-cells,
  1648. empty_cells,
  1649. EmptyCells,
  1650. CSS_PROPERTY_PARSE_VALUE,
  1651. "",
  1652. VARIANT_HK,
  1653. kEmptyCellsKTable,
  1654. CSS_PROP_NO_OFFSET,
  1655. eStyleAnimType_Discrete)
  1656. CSS_PROP_SVG(
  1657. fill,
  1658. fill,
  1659. Fill,
  1660. CSS_PROPERTY_PARSE_FUNCTION,
  1661. "",
  1662. 0,
  1663. kContextPatternKTable,
  1664. offsetof(nsStyleSVG, mFill),
  1665. eStyleAnimType_PaintServer)
  1666. CSS_PROP_SVG(
  1667. fill-opacity,
  1668. fill_opacity,
  1669. FillOpacity,
  1670. CSS_PROPERTY_PARSE_VALUE,
  1671. "",
  1672. VARIANT_INHERIT | VARIANT_OPACITY | VARIANT_OPENTYPE_SVG_KEYWORD,
  1673. kContextOpacityKTable,
  1674. offsetof(nsStyleSVG, mFillOpacity),
  1675. eStyleAnimType_float)
  1676. CSS_PROP_SVG(
  1677. fill-rule,
  1678. fill_rule,
  1679. FillRule,
  1680. CSS_PROPERTY_PARSE_VALUE,
  1681. "",
  1682. VARIANT_HK,
  1683. kFillRuleKTable,
  1684. CSS_PROP_NO_OFFSET,
  1685. eStyleAnimType_Discrete)
  1686. CSS_PROP_EFFECTS(
  1687. filter,
  1688. filter,
  1689. Filter,
  1690. CSS_PROPERTY_PARSE_FUNCTION |
  1691. CSS_PROPERTY_CREATES_STACKING_CONTEXT |
  1692. CSS_PROPERTY_FIXPOS_CB,
  1693. "",
  1694. 0,
  1695. nullptr,
  1696. CSS_PROP_NO_OFFSET,
  1697. eStyleAnimType_Custom)
  1698. CSS_PROP_SHORTHAND(
  1699. flex,
  1700. flex,
  1701. Flex,
  1702. CSS_PROPERTY_PARSE_FUNCTION,
  1703. "")
  1704. CSS_PROP_POSITION(
  1705. flex-basis,
  1706. flex_basis,
  1707. FlexBasis,
  1708. CSS_PROPERTY_PARSE_VALUE |
  1709. CSS_PROPERTY_VALUE_NONNEGATIVE |
  1710. CSS_PROPERTY_STORES_CALC,
  1711. "",
  1712. // NOTE: The parsing implementation for the 'flex' shorthand property has
  1713. // its own code to parse each subproperty. It does not depend on the
  1714. // longhand parsing defined here.
  1715. VARIANT_AHKLP | VARIANT_CALC,
  1716. kWidthKTable,
  1717. offsetof(nsStylePosition, mFlexBasis),
  1718. eStyleAnimType_Coord)
  1719. CSS_PROP_POSITION(
  1720. flex-direction,
  1721. flex_direction,
  1722. FlexDirection,
  1723. CSS_PROPERTY_PARSE_VALUE,
  1724. "",
  1725. VARIANT_HK,
  1726. kFlexDirectionKTable,
  1727. CSS_PROP_NO_OFFSET,
  1728. eStyleAnimType_Discrete)
  1729. CSS_PROP_SHORTHAND(
  1730. flex-flow,
  1731. flex_flow,
  1732. FlexFlow,
  1733. CSS_PROPERTY_PARSE_FUNCTION,
  1734. "")
  1735. CSS_PROP_POSITION(
  1736. flex-grow,
  1737. flex_grow,
  1738. FlexGrow,
  1739. CSS_PROPERTY_PARSE_VALUE |
  1740. CSS_PROPERTY_VALUE_NONNEGATIVE,
  1741. "",
  1742. // NOTE: The parsing implementation for the 'flex' shorthand property has
  1743. // its own code to parse each subproperty. It does not depend on the
  1744. // longhand parsing defined here.
  1745. VARIANT_HN,
  1746. nullptr,
  1747. offsetof(nsStylePosition, mFlexGrow),
  1748. eStyleAnimType_float)
  1749. CSS_PROP_POSITION(
  1750. flex-shrink,
  1751. flex_shrink,
  1752. FlexShrink,
  1753. CSS_PROPERTY_PARSE_VALUE |
  1754. CSS_PROPERTY_VALUE_NONNEGATIVE,
  1755. "",
  1756. // NOTE: The parsing implementation for the 'flex' shorthand property has
  1757. // its own code to parse each subproperty. It does not depend on the
  1758. // longhand parsing defined here.
  1759. VARIANT_HN,
  1760. nullptr,
  1761. offsetof(nsStylePosition, mFlexShrink),
  1762. eStyleAnimType_float)
  1763. CSS_PROP_POSITION(
  1764. flex-wrap,
  1765. flex_wrap,
  1766. FlexWrap,
  1767. CSS_PROPERTY_PARSE_VALUE,
  1768. "",
  1769. VARIANT_HK,
  1770. kFlexWrapKTable,
  1771. CSS_PROP_NO_OFFSET,
  1772. eStyleAnimType_Discrete)
  1773. CSS_PROP_DISPLAY(
  1774. float,
  1775. float_,
  1776. CSS_PROP_PUBLIC_OR_PRIVATE(CssFloat, Float),
  1777. CSS_PROPERTY_PARSE_VALUE |
  1778. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER,
  1779. "",
  1780. VARIANT_HK,
  1781. kFloatKTable,
  1782. CSS_PROP_NO_OFFSET,
  1783. eStyleAnimType_Discrete)
  1784. CSS_PROP_BORDER(
  1785. -moz-float-edge,
  1786. float_edge,
  1787. CSS_PROP_DOMPROP_PREFIXED(FloatEdge),
  1788. CSS_PROPERTY_PARSE_VALUE,
  1789. "",
  1790. VARIANT_HK,
  1791. kFloatEdgeKTable,
  1792. CSS_PROP_NO_OFFSET,
  1793. eStyleAnimType_Discrete) // XXX bug 3935
  1794. CSS_PROP_SVGRESET(
  1795. flood-color,
  1796. flood_color,
  1797. FloodColor,
  1798. CSS_PROPERTY_PARSE_VALUE,
  1799. "",
  1800. VARIANT_HC,
  1801. nullptr,
  1802. offsetof(nsStyleSVGReset, mFloodColor),
  1803. eStyleAnimType_Color)
  1804. CSS_PROP_SVGRESET(
  1805. flood-opacity,
  1806. flood_opacity,
  1807. FloodOpacity,
  1808. CSS_PROPERTY_PARSE_VALUE,
  1809. "",
  1810. VARIANT_INHERIT | VARIANT_OPACITY,
  1811. nullptr,
  1812. offsetof(nsStyleSVGReset, mFloodOpacity),
  1813. eStyleAnimType_float)
  1814. CSS_PROP_SHORTHAND(
  1815. font,
  1816. font,
  1817. Font,
  1818. CSS_PROPERTY_PARSE_FUNCTION,
  1819. "")
  1820. CSS_PROP_FONT(
  1821. font-family,
  1822. font_family,
  1823. FontFamily,
  1824. CSS_PROPERTY_PARSE_VALUE |
  1825. CSS_PROPERTY_VALUE_PARSER_FUNCTION |
  1826. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
  1827. CSS_PROPERTY_APPLIES_TO_PLACEHOLDER,
  1828. "",
  1829. 0,
  1830. nullptr,
  1831. CSS_PROP_NO_OFFSET,
  1832. eStyleAnimType_Discrete)
  1833. CSS_PROP_FONT(
  1834. font-feature-settings,
  1835. font_feature_settings,
  1836. FontFeatureSettings,
  1837. CSS_PROPERTY_PARSE_VALUE |
  1838. CSS_PROPERTY_VALUE_PARSER_FUNCTION |
  1839. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
  1840. CSS_PROPERTY_APPLIES_TO_PLACEHOLDER,
  1841. "",
  1842. 0,
  1843. nullptr,
  1844. CSS_PROP_NO_OFFSET,
  1845. eStyleAnimType_Discrete)
  1846. CSS_PROP_FONT(
  1847. font-kerning,
  1848. font_kerning,
  1849. FontKerning,
  1850. CSS_PROPERTY_PARSE_VALUE |
  1851. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
  1852. CSS_PROPERTY_APPLIES_TO_PLACEHOLDER,
  1853. "",
  1854. VARIANT_HK,
  1855. kFontKerningKTable,
  1856. CSS_PROP_NO_OFFSET,
  1857. eStyleAnimType_Discrete)
  1858. CSS_PROP_FONT(
  1859. font-language-override,
  1860. font_language_override,
  1861. FontLanguageOverride,
  1862. CSS_PROPERTY_PARSE_VALUE |
  1863. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
  1864. CSS_PROPERTY_APPLIES_TO_PLACEHOLDER,
  1865. "",
  1866. VARIANT_NORMAL | VARIANT_INHERIT | VARIANT_STRING,
  1867. nullptr,
  1868. CSS_PROP_NO_OFFSET,
  1869. eStyleAnimType_Discrete)
  1870. CSS_PROP_FONT(
  1871. font-size,
  1872. font_size,
  1873. FontSize,
  1874. CSS_PROPERTY_PARSE_VALUE |
  1875. CSS_PROPERTY_VALUE_NONNEGATIVE |
  1876. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
  1877. CSS_PROPERTY_APPLIES_TO_PLACEHOLDER |
  1878. CSS_PROPERTY_UNITLESS_LENGTH_QUIRK,
  1879. "",
  1880. VARIANT_HKLP | VARIANT_SYSFONT | VARIANT_CALC,
  1881. kFontSizeKTable,
  1882. // Note that mSize is the correct place for *reading* the computed value,
  1883. // but setting it requires setting mFont.size as well.
  1884. offsetof(nsStyleFont, mSize),
  1885. eStyleAnimType_nscoord)
  1886. CSS_PROP_FONT(
  1887. font-size-adjust,
  1888. font_size_adjust,
  1889. FontSizeAdjust,
  1890. CSS_PROPERTY_PARSE_VALUE |
  1891. CSS_PROPERTY_VALUE_NONNEGATIVE |
  1892. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
  1893. CSS_PROPERTY_APPLIES_TO_PLACEHOLDER,
  1894. "",
  1895. VARIANT_HON | VARIANT_SYSFONT,
  1896. nullptr,
  1897. offsetof(nsStyleFont, mFont.sizeAdjust),
  1898. eStyleAnimType_float)
  1899. CSS_PROP_FONT(
  1900. font-stretch,
  1901. font_stretch,
  1902. FontStretch,
  1903. CSS_PROPERTY_PARSE_VALUE |
  1904. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
  1905. CSS_PROPERTY_APPLIES_TO_PLACEHOLDER,
  1906. "",
  1907. VARIANT_HK | VARIANT_SYSFONT,
  1908. kFontStretchKTable,
  1909. offsetof(nsStyleFont, mFont.stretch),
  1910. eStyleAnimType_Custom)
  1911. CSS_PROP_FONT(
  1912. font-style,
  1913. font_style,
  1914. FontStyle,
  1915. CSS_PROPERTY_PARSE_VALUE |
  1916. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
  1917. CSS_PROPERTY_APPLIES_TO_PLACEHOLDER,
  1918. "",
  1919. VARIANT_HK | VARIANT_SYSFONT,
  1920. kFontStyleKTable,
  1921. CSS_PROP_NO_OFFSET,
  1922. eStyleAnimType_Discrete)
  1923. CSS_PROP_FONT(
  1924. font-synthesis,
  1925. font_synthesis,
  1926. FontSynthesis,
  1927. CSS_PROPERTY_PARSE_VALUE |
  1928. CSS_PROPERTY_VALUE_PARSER_FUNCTION |
  1929. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
  1930. CSS_PROPERTY_APPLIES_TO_PLACEHOLDER,
  1931. "",
  1932. 0,
  1933. kFontSynthesisKTable,
  1934. CSS_PROP_NO_OFFSET,
  1935. eStyleAnimType_Discrete)
  1936. CSS_PROP_SHORTHAND(
  1937. font-variant,
  1938. font_variant,
  1939. FontVariant,
  1940. CSS_PROPERTY_PARSE_FUNCTION,
  1941. "")
  1942. CSS_PROP_FONT(
  1943. font-variant-alternates,
  1944. font_variant_alternates,
  1945. FontVariantAlternates,
  1946. CSS_PROPERTY_PARSE_VALUE |
  1947. CSS_PROPERTY_VALUE_PARSER_FUNCTION |
  1948. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
  1949. CSS_PROPERTY_APPLIES_TO_PLACEHOLDER,
  1950. "",
  1951. 0,
  1952. kFontVariantAlternatesKTable,
  1953. CSS_PROP_NO_OFFSET,
  1954. eStyleAnimType_Discrete)
  1955. CSS_PROP_FONT(
  1956. font-variant-caps,
  1957. font_variant_caps,
  1958. FontVariantCaps,
  1959. CSS_PROPERTY_PARSE_VALUE |
  1960. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
  1961. CSS_PROPERTY_APPLIES_TO_PLACEHOLDER,
  1962. "",
  1963. VARIANT_HMK,
  1964. kFontVariantCapsKTable,
  1965. CSS_PROP_NO_OFFSET,
  1966. eStyleAnimType_Discrete)
  1967. CSS_PROP_FONT(
  1968. font-variant-east-asian,
  1969. font_variant_east_asian,
  1970. FontVariantEastAsian,
  1971. CSS_PROPERTY_PARSE_VALUE |
  1972. CSS_PROPERTY_VALUE_PARSER_FUNCTION |
  1973. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
  1974. CSS_PROPERTY_APPLIES_TO_PLACEHOLDER,
  1975. "",
  1976. 0,
  1977. kFontVariantEastAsianKTable,
  1978. CSS_PROP_NO_OFFSET,
  1979. eStyleAnimType_Discrete)
  1980. CSS_PROP_FONT(
  1981. font-variant-ligatures,
  1982. font_variant_ligatures,
  1983. FontVariantLigatures,
  1984. CSS_PROPERTY_PARSE_VALUE |
  1985. CSS_PROPERTY_VALUE_PARSER_FUNCTION |
  1986. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
  1987. CSS_PROPERTY_APPLIES_TO_PLACEHOLDER,
  1988. "",
  1989. 0,
  1990. kFontVariantLigaturesKTable,
  1991. CSS_PROP_NO_OFFSET,
  1992. eStyleAnimType_Discrete)
  1993. CSS_PROP_FONT(
  1994. font-variant-numeric,
  1995. font_variant_numeric,
  1996. FontVariantNumeric,
  1997. CSS_PROPERTY_PARSE_VALUE |
  1998. CSS_PROPERTY_VALUE_PARSER_FUNCTION |
  1999. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
  2000. CSS_PROPERTY_APPLIES_TO_PLACEHOLDER,
  2001. "",
  2002. 0,
  2003. kFontVariantNumericKTable,
  2004. CSS_PROP_NO_OFFSET,
  2005. eStyleAnimType_Discrete)
  2006. CSS_PROP_FONT(
  2007. font-variant-position,
  2008. font_variant_position,
  2009. FontVariantPosition,
  2010. CSS_PROPERTY_PARSE_VALUE |
  2011. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
  2012. CSS_PROPERTY_APPLIES_TO_PLACEHOLDER,
  2013. "",
  2014. VARIANT_HMK,
  2015. kFontVariantPositionKTable,
  2016. CSS_PROP_NO_OFFSET,
  2017. eStyleAnimType_Discrete)
  2018. CSS_PROP_FONT(
  2019. font-variation-settings,
  2020. font_variation_settings,
  2021. FontVariationSettings,
  2022. CSS_PROPERTY_PARSE_VALUE |
  2023. CSS_PROPERTY_VALUE_PARSER_FUNCTION |
  2024. CSS_PROPERTY_VALUE_LIST_USES_COMMAS |
  2025. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
  2026. CSS_PROPERTY_APPLIES_TO_PLACEHOLDER,
  2027. "layout.css.font-variations.stub",
  2028. 0,
  2029. nullptr,
  2030. CSS_PROP_NO_OFFSET,
  2031. eStyleAnimType_Discrete)
  2032. CSS_PROP_FONT(
  2033. font-weight,
  2034. font_weight,
  2035. FontWeight,
  2036. CSS_PROPERTY_PARSE_VALUE |
  2037. CSS_PROPERTY_VALUE_PARSER_FUNCTION |
  2038. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
  2039. CSS_PROPERTY_APPLIES_TO_PLACEHOLDER,
  2040. // NOTE: This property has range restrictions on interpolation!
  2041. "",
  2042. 0,
  2043. kFontWeightKTable,
  2044. offsetof(nsStyleFont, mFont.weight),
  2045. eStyleAnimType_Custom)
  2046. CSS_PROP_UIRESET(
  2047. -moz-force-broken-image-icon,
  2048. force_broken_image_icon,
  2049. CSS_PROP_DOMPROP_PREFIXED(ForceBrokenImageIcon),
  2050. CSS_PROPERTY_PARSE_VALUE |
  2051. CSS_PROPERTY_VALUE_NONNEGATIVE,
  2052. "",
  2053. VARIANT_HI,
  2054. nullptr,
  2055. CSS_PROP_NO_OFFSET,
  2056. eStyleAnimType_Discrete) // bug 58646
  2057. CSS_PROP_SHORTHAND(
  2058. grid,
  2059. grid,
  2060. Grid,
  2061. CSS_PROPERTY_PARSE_FUNCTION,
  2062. "layout.css.grid.enabled")
  2063. CSS_PROP_SHORTHAND(
  2064. grid-area,
  2065. grid_area,
  2066. GridArea,
  2067. CSS_PROPERTY_PARSE_FUNCTION,
  2068. "layout.css.grid.enabled")
  2069. CSS_PROP_POSITION(
  2070. grid-auto-columns,
  2071. grid_auto_columns,
  2072. GridAutoColumns,
  2073. CSS_PROPERTY_PARSE_FUNCTION |
  2074. CSS_PROPERTY_STORES_CALC |
  2075. CSS_PROPERTY_ENABLED_IN_UA_SHEETS,
  2076. "layout.css.grid.enabled",
  2077. 0,
  2078. kGridTrackBreadthKTable,
  2079. CSS_PROP_NO_OFFSET,
  2080. eStyleAnimType_Discrete)
  2081. CSS_PROP_POSITION(
  2082. grid-auto-flow,
  2083. grid_auto_flow,
  2084. GridAutoFlow,
  2085. CSS_PROPERTY_PARSE_FUNCTION |
  2086. CSS_PROPERTY_ENABLED_IN_UA_SHEETS,
  2087. "layout.css.grid.enabled",
  2088. 0,
  2089. kGridAutoFlowKTable,
  2090. CSS_PROP_NO_OFFSET,
  2091. eStyleAnimType_Discrete)
  2092. CSS_PROP_POSITION(
  2093. grid-auto-rows,
  2094. grid_auto_rows,
  2095. GridAutoRows,
  2096. CSS_PROPERTY_PARSE_FUNCTION |
  2097. CSS_PROPERTY_STORES_CALC |
  2098. CSS_PROPERTY_ENABLED_IN_UA_SHEETS,
  2099. "layout.css.grid.enabled",
  2100. 0,
  2101. kGridTrackBreadthKTable,
  2102. CSS_PROP_NO_OFFSET,
  2103. eStyleAnimType_Discrete)
  2104. CSS_PROP_SHORTHAND(
  2105. grid-column,
  2106. grid_column,
  2107. GridColumn,
  2108. CSS_PROPERTY_PARSE_FUNCTION,
  2109. "layout.css.grid.enabled")
  2110. CSS_PROP_POSITION(
  2111. grid-column-end,
  2112. grid_column_end,
  2113. GridColumnEnd,
  2114. CSS_PROPERTY_PARSE_FUNCTION,
  2115. "layout.css.grid.enabled",
  2116. 0,
  2117. nullptr,
  2118. CSS_PROP_NO_OFFSET,
  2119. eStyleAnimType_Discrete)
  2120. CSS_PROP_POSITION(
  2121. grid-column-gap,
  2122. grid_column_gap,
  2123. GridColumnGap,
  2124. CSS_PROPERTY_PARSE_VALUE |
  2125. CSS_PROPERTY_VALUE_NONNEGATIVE |
  2126. CSS_PROPERTY_ENABLED_IN_UA_SHEETS,
  2127. "layout.css.grid.enabled",
  2128. VARIANT_HLP | VARIANT_CALC,
  2129. nullptr,
  2130. offsetof(nsStylePosition, mGridColumnGap),
  2131. eStyleAnimType_Coord)
  2132. CSS_PROP_POSITION(
  2133. grid-column-start,
  2134. grid_column_start,
  2135. GridColumnStart,
  2136. CSS_PROPERTY_PARSE_FUNCTION,
  2137. "layout.css.grid.enabled",
  2138. 0,
  2139. nullptr,
  2140. CSS_PROP_NO_OFFSET,
  2141. eStyleAnimType_Discrete)
  2142. CSS_PROP_SHORTHAND(
  2143. grid-gap,
  2144. grid_gap,
  2145. GridGap,
  2146. CSS_PROPERTY_PARSE_FUNCTION,
  2147. "layout.css.grid.enabled")
  2148. CSS_PROP_SHORTHAND(
  2149. grid-row,
  2150. grid_row,
  2151. GridRow,
  2152. CSS_PROPERTY_PARSE_FUNCTION,
  2153. "layout.css.grid.enabled")
  2154. CSS_PROP_POSITION(
  2155. grid-row-end,
  2156. grid_row_end,
  2157. GridRowEnd,
  2158. CSS_PROPERTY_PARSE_FUNCTION,
  2159. "layout.css.grid.enabled",
  2160. 0,
  2161. nullptr,
  2162. CSS_PROP_NO_OFFSET,
  2163. eStyleAnimType_Discrete)
  2164. CSS_PROP_POSITION(
  2165. grid-row-gap,
  2166. grid_row_gap,
  2167. GridRowGap,
  2168. CSS_PROPERTY_PARSE_VALUE |
  2169. CSS_PROPERTY_VALUE_NONNEGATIVE |
  2170. CSS_PROPERTY_ENABLED_IN_UA_SHEETS,
  2171. "layout.css.grid.enabled",
  2172. VARIANT_HLP | VARIANT_CALC,
  2173. nullptr,
  2174. offsetof(nsStylePosition, mGridRowGap),
  2175. eStyleAnimType_Coord)
  2176. CSS_PROP_POSITION(
  2177. grid-row-start,
  2178. grid_row_start,
  2179. GridRowStart,
  2180. CSS_PROPERTY_PARSE_FUNCTION,
  2181. "layout.css.grid.enabled",
  2182. 0,
  2183. nullptr,
  2184. CSS_PROP_NO_OFFSET,
  2185. eStyleAnimType_Discrete)
  2186. CSS_PROP_SHORTHAND(
  2187. grid-template,
  2188. grid_template,
  2189. GridTemplate,
  2190. CSS_PROPERTY_PARSE_FUNCTION,
  2191. "layout.css.grid.enabled")
  2192. CSS_PROP_POSITION(
  2193. grid-template-areas,
  2194. grid_template_areas,
  2195. GridTemplateAreas,
  2196. CSS_PROPERTY_PARSE_FUNCTION |
  2197. CSS_PROPERTY_ENABLED_IN_UA_SHEETS,
  2198. "layout.css.grid.enabled",
  2199. 0,
  2200. nullptr,
  2201. CSS_PROP_NO_OFFSET,
  2202. eStyleAnimType_Discrete)
  2203. CSS_PROP_POSITION(
  2204. grid-template-columns,
  2205. grid_template_columns,
  2206. GridTemplateColumns,
  2207. CSS_PROPERTY_PARSE_FUNCTION |
  2208. CSS_PROPERTY_STORES_CALC |
  2209. CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH |
  2210. CSS_PROPERTY_ENABLED_IN_UA_SHEETS,
  2211. "layout.css.grid.enabled",
  2212. 0,
  2213. kGridTrackBreadthKTable,
  2214. CSS_PROP_NO_OFFSET,
  2215. eStyleAnimType_Discrete)
  2216. CSS_PROP_POSITION(
  2217. grid-template-rows,
  2218. grid_template_rows,
  2219. GridTemplateRows,
  2220. CSS_PROPERTY_PARSE_FUNCTION |
  2221. CSS_PROPERTY_STORES_CALC |
  2222. CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH |
  2223. CSS_PROPERTY_ENABLED_IN_UA_SHEETS,
  2224. "layout.css.grid.enabled",
  2225. 0,
  2226. kGridTrackBreadthKTable,
  2227. CSS_PROP_NO_OFFSET,
  2228. eStyleAnimType_Discrete)
  2229. CSS_PROP_POSITION(
  2230. height,
  2231. height,
  2232. Height,
  2233. CSS_PROPERTY_PARSE_VALUE |
  2234. CSS_PROPERTY_VALUE_NONNEGATIVE |
  2235. CSS_PROPERTY_STORES_CALC |
  2236. CSS_PROPERTY_UNITLESS_LENGTH_QUIRK |
  2237. CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH,
  2238. "",
  2239. VARIANT_AHKLP | VARIANT_CALC,
  2240. kWidthKTable,
  2241. offsetof(nsStylePosition, mHeight),
  2242. eStyleAnimType_Coord)
  2243. CSS_PROP_TEXT(
  2244. hyphens,
  2245. hyphens,
  2246. Hyphens,
  2247. CSS_PROPERTY_PARSE_VALUE,
  2248. "",
  2249. VARIANT_HK,
  2250. kHyphensKTable,
  2251. CSS_PROP_NO_OFFSET,
  2252. eStyleAnimType_Discrete)
  2253. CSS_PROP_TEXTRESET(
  2254. initial-letter,
  2255. initial_letter,
  2256. InitialLetter,
  2257. CSS_PROPERTY_PARSE_FUNCTION |
  2258. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER,
  2259. "layout.css.initial-letter.enabled",
  2260. 0,
  2261. nullptr,
  2262. CSS_PROP_NO_OFFSET,
  2263. eStyleAnimType_Discrete)
  2264. CSS_PROP_VISIBILITY(
  2265. image-orientation,
  2266. image_orientation,
  2267. ImageOrientation,
  2268. CSS_PROPERTY_PARSE_VALUE |
  2269. CSS_PROPERTY_VALUE_PARSER_FUNCTION,
  2270. "layout.css.image-orientation.enabled",
  2271. 0,
  2272. kImageOrientationKTable,
  2273. offsetof(nsStyleVisibility, mImageOrientation),
  2274. eStyleAnimType_Discrete)
  2275. CSS_PROP_LIST(
  2276. -moz-image-region,
  2277. image_region,
  2278. CSS_PROP_DOMPROP_PREFIXED(ImageRegion),
  2279. CSS_PROPERTY_PARSE_FUNCTION,
  2280. "",
  2281. 0,
  2282. nullptr,
  2283. offsetof(nsStyleList, mImageRegion),
  2284. eStyleAnimType_Custom)
  2285. CSS_PROP_VISIBILITY(
  2286. image-rendering,
  2287. image_rendering,
  2288. ImageRendering,
  2289. CSS_PROPERTY_PARSE_VALUE,
  2290. "",
  2291. VARIANT_HK,
  2292. kImageRenderingKTable,
  2293. CSS_PROP_NO_OFFSET,
  2294. eStyleAnimType_Discrete)
  2295. CSS_PROP_UIRESET(
  2296. ime-mode,
  2297. ime_mode,
  2298. ImeMode,
  2299. CSS_PROPERTY_PARSE_VALUE,
  2300. "",
  2301. VARIANT_HK,
  2302. kIMEModeKTable,
  2303. CSS_PROP_NO_OFFSET,
  2304. eStyleAnimType_Discrete)
  2305. CSS_PROP_LOGICAL(
  2306. inline-size,
  2307. inline_size,
  2308. InlineSize,
  2309. CSS_PROPERTY_PARSE_VALUE |
  2310. CSS_PROPERTY_VALUE_NONNEGATIVE |
  2311. CSS_PROPERTY_STORES_CALC |
  2312. CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH |
  2313. CSS_PROPERTY_LOGICAL |
  2314. CSS_PROPERTY_LOGICAL_AXIS,
  2315. "",
  2316. VARIANT_AHKLP | VARIANT_CALC,
  2317. kWidthKTable,
  2318. Size,
  2319. Position,
  2320. CSS_PROP_NO_OFFSET,
  2321. eStyleAnimType_None)
  2322. CSS_PROP_DISPLAY(
  2323. isolation,
  2324. isolation,
  2325. Isolation,
  2326. CSS_PROPERTY_PARSE_VALUE |
  2327. CSS_PROPERTY_CREATES_STACKING_CONTEXT,
  2328. "layout.css.isolation.enabled",
  2329. VARIANT_HK,
  2330. kIsolationKTable,
  2331. CSS_PROP_NO_OFFSET,
  2332. eStyleAnimType_Discrete)
  2333. CSS_PROP_POSITION(
  2334. justify-content,
  2335. justify_content,
  2336. JustifyContent,
  2337. CSS_PROPERTY_PARSE_FUNCTION,
  2338. "",
  2339. VARIANT_HK,
  2340. kAutoCompletionAlignJustifyContent,
  2341. CSS_PROP_NO_OFFSET,
  2342. eStyleAnimType_Discrete)
  2343. CSS_PROP_POSITION(
  2344. justify-items,
  2345. justify_items,
  2346. JustifyItems,
  2347. CSS_PROPERTY_PARSE_FUNCTION,
  2348. "",
  2349. VARIANT_HK,
  2350. // for auto-completion we use same values as justify-self:
  2351. kAutoCompletionAlignJustifySelf,
  2352. CSS_PROP_NO_OFFSET,
  2353. eStyleAnimType_Discrete)
  2354. CSS_PROP_POSITION(
  2355. justify-self,
  2356. justify_self,
  2357. JustifySelf,
  2358. CSS_PROPERTY_PARSE_FUNCTION,
  2359. "",
  2360. VARIANT_HK,
  2361. kAutoCompletionAlignJustifySelf,
  2362. CSS_PROP_NO_OFFSET,
  2363. eStyleAnimType_Discrete)
  2364. #ifndef CSS_PROP_LIST_ONLY_COMPONENTS_OF_ALL_SHORTHAND
  2365. #ifndef CSS_PROP_LIST_EXCLUDE_INTERNAL
  2366. CSS_PROP_FONT(
  2367. -x-lang,
  2368. _x_lang,
  2369. Lang,
  2370. CSS_PROPERTY_INTERNAL |
  2371. CSS_PROPERTY_PARSE_INACCESSIBLE,
  2372. "",
  2373. 0,
  2374. nullptr,
  2375. CSS_PROP_NO_OFFSET,
  2376. eStyleAnimType_None)
  2377. #endif // CSS_PROP_LIST_EXCLUDE_INTERNAL
  2378. #endif // CSS_PROP_LIST_ONLY_COMPONENTS_OF_ALL_SHORTHAND
  2379. CSS_PROP_POSITION(
  2380. left,
  2381. left,
  2382. Left,
  2383. CSS_PROPERTY_PARSE_VALUE |
  2384. CSS_PROPERTY_STORES_CALC |
  2385. CSS_PROPERTY_UNITLESS_LENGTH_QUIRK |
  2386. CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH,
  2387. "",
  2388. VARIANT_AHLP | VARIANT_CALC,
  2389. nullptr,
  2390. offsetof(nsStylePosition, mOffset),
  2391. eStyleAnimType_Sides_Left)
  2392. CSS_PROP_TEXT(
  2393. letter-spacing,
  2394. letter_spacing,
  2395. LetterSpacing,
  2396. CSS_PROPERTY_PARSE_VALUE |
  2397. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
  2398. CSS_PROPERTY_APPLIES_TO_PLACEHOLDER |
  2399. CSS_PROPERTY_UNITLESS_LENGTH_QUIRK,
  2400. "",
  2401. VARIANT_HL | VARIANT_NORMAL | VARIANT_CALC,
  2402. nullptr,
  2403. offsetof(nsStyleText, mLetterSpacing),
  2404. eStyleAnimType_Coord)
  2405. CSS_PROP_SVGRESET(
  2406. lighting-color,
  2407. lighting_color,
  2408. LightingColor,
  2409. CSS_PROPERTY_PARSE_VALUE,
  2410. "",
  2411. VARIANT_HC,
  2412. nullptr,
  2413. offsetof(nsStyleSVGReset, mLightingColor),
  2414. eStyleAnimType_Color)
  2415. CSS_PROP_TEXT(
  2416. line-height,
  2417. line_height,
  2418. LineHeight,
  2419. CSS_PROPERTY_PARSE_VALUE |
  2420. CSS_PROPERTY_VALUE_NONNEGATIVE |
  2421. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
  2422. CSS_PROPERTY_APPLIES_TO_PLACEHOLDER |
  2423. CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH,
  2424. "",
  2425. VARIANT_HLPN | VARIANT_KEYWORD | VARIANT_NORMAL | VARIANT_SYSFONT | VARIANT_CALC,
  2426. kLineHeightKTable,
  2427. offsetof(nsStyleText, mLineHeight),
  2428. eStyleAnimType_Coord)
  2429. CSS_PROP_SHORTHAND(
  2430. list-style,
  2431. list_style,
  2432. ListStyle,
  2433. CSS_PROPERTY_PARSE_FUNCTION,
  2434. "")
  2435. CSS_PROP_LIST(
  2436. list-style-image,
  2437. list_style_image,
  2438. ListStyleImage,
  2439. CSS_PROPERTY_PARSE_VALUE |
  2440. CSS_PROPERTY_START_IMAGE_LOADS,
  2441. "",
  2442. VARIANT_HUO,
  2443. nullptr,
  2444. CSS_PROP_NO_OFFSET,
  2445. eStyleAnimType_Discrete)
  2446. CSS_PROP_LIST(
  2447. list-style-position,
  2448. list_style_position,
  2449. ListStylePosition,
  2450. CSS_PROPERTY_PARSE_VALUE,
  2451. "",
  2452. VARIANT_HK,
  2453. kListStylePositionKTable,
  2454. CSS_PROP_NO_OFFSET,
  2455. eStyleAnimType_Discrete)
  2456. CSS_PROP_LIST(
  2457. list-style-type,
  2458. list_style_type,
  2459. ListStyleType,
  2460. CSS_PROPERTY_PARSE_VALUE |
  2461. CSS_PROPERTY_VALUE_PARSER_FUNCTION,
  2462. "",
  2463. 0,
  2464. nullptr,
  2465. CSS_PROP_NO_OFFSET,
  2466. eStyleAnimType_Discrete)
  2467. CSS_PROP_SHORTHAND(
  2468. margin,
  2469. margin,
  2470. Margin,
  2471. CSS_PROPERTY_PARSE_FUNCTION |
  2472. CSS_PROPERTY_UNITLESS_LENGTH_QUIRK |
  2473. CSS_PROPERTY_APPLIES_TO_PAGE_RULE,
  2474. "")
  2475. CSS_PROP_LOGICAL(
  2476. margin-block-end,
  2477. margin_block_end,
  2478. MarginBlockEnd,
  2479. CSS_PROPERTY_PARSE_VALUE |
  2480. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
  2481. CSS_PROPERTY_STORES_CALC |
  2482. CSS_PROPERTY_APPLIES_TO_PAGE_RULE |
  2483. CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH |
  2484. CSS_PROPERTY_LOGICAL |
  2485. CSS_PROPERTY_LOGICAL_BLOCK_AXIS |
  2486. CSS_PROPERTY_LOGICAL_END_EDGE,
  2487. "",
  2488. VARIANT_AHLP | VARIANT_CALC,
  2489. nullptr,
  2490. Margin,
  2491. Margin,
  2492. CSS_PROP_NO_OFFSET,
  2493. eStyleAnimType_None)
  2494. CSS_PROP_LOGICAL(
  2495. margin-block-start,
  2496. margin_block_start,
  2497. MarginBlockStart,
  2498. CSS_PROPERTY_PARSE_VALUE |
  2499. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
  2500. CSS_PROPERTY_STORES_CALC |
  2501. CSS_PROPERTY_APPLIES_TO_PAGE_RULE |
  2502. CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH |
  2503. CSS_PROPERTY_LOGICAL |
  2504. CSS_PROPERTY_LOGICAL_BLOCK_AXIS,
  2505. "",
  2506. VARIANT_AHLP | VARIANT_CALC,
  2507. nullptr,
  2508. Margin,
  2509. Margin,
  2510. CSS_PROP_NO_OFFSET,
  2511. eStyleAnimType_None)
  2512. CSS_PROP_MARGIN(
  2513. margin-bottom,
  2514. margin_bottom,
  2515. MarginBottom,
  2516. CSS_PROPERTY_PARSE_VALUE |
  2517. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
  2518. CSS_PROPERTY_STORES_CALC |
  2519. CSS_PROPERTY_UNITLESS_LENGTH_QUIRK |
  2520. CSS_PROPERTY_APPLIES_TO_PAGE_RULE |
  2521. CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH,
  2522. "",
  2523. VARIANT_AHLP | VARIANT_CALC,
  2524. nullptr,
  2525. offsetof(nsStyleMargin, mMargin),
  2526. eStyleAnimType_Sides_Bottom)
  2527. CSS_PROP_LOGICAL(
  2528. margin-inline-end,
  2529. margin_inline_end,
  2530. MarginInlineEnd,
  2531. CSS_PROPERTY_PARSE_VALUE |
  2532. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
  2533. CSS_PROPERTY_STORES_CALC |
  2534. CSS_PROPERTY_APPLIES_TO_PAGE_RULE |
  2535. CSS_PROPERTY_LOGICAL |
  2536. CSS_PROPERTY_LOGICAL_END_EDGE,
  2537. "",
  2538. VARIANT_AHLP | VARIANT_CALC,
  2539. nullptr,
  2540. Margin,
  2541. Margin,
  2542. CSS_PROP_NO_OFFSET,
  2543. eStyleAnimType_None)
  2544. CSS_PROP_LOGICAL(
  2545. margin-inline-start,
  2546. margin_inline_start,
  2547. MarginInlineStart,
  2548. CSS_PROPERTY_PARSE_VALUE |
  2549. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
  2550. CSS_PROPERTY_STORES_CALC |
  2551. CSS_PROPERTY_APPLIES_TO_PAGE_RULE |
  2552. CSS_PROPERTY_LOGICAL,
  2553. "",
  2554. VARIANT_AHLP | VARIANT_CALC,
  2555. nullptr,
  2556. Margin,
  2557. Margin,
  2558. CSS_PROP_NO_OFFSET,
  2559. eStyleAnimType_None)
  2560. CSS_PROP_MARGIN(
  2561. margin-left,
  2562. margin_left,
  2563. MarginLeft,
  2564. CSS_PROPERTY_PARSE_VALUE |
  2565. CSS_PROPERTY_UNITLESS_LENGTH_QUIRK |
  2566. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
  2567. CSS_PROPERTY_STORES_CALC |
  2568. CSS_PROPERTY_APPLIES_TO_PAGE_RULE |
  2569. CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH,
  2570. "",
  2571. VARIANT_AHLP | VARIANT_CALC,
  2572. nullptr,
  2573. offsetof(nsStyleMargin, mMargin),
  2574. eStyleAnimType_Sides_Left)
  2575. CSS_PROP_MARGIN(
  2576. margin-right,
  2577. margin_right,
  2578. MarginRight,
  2579. CSS_PROPERTY_PARSE_VALUE |
  2580. CSS_PROPERTY_UNITLESS_LENGTH_QUIRK |
  2581. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
  2582. CSS_PROPERTY_STORES_CALC |
  2583. CSS_PROPERTY_APPLIES_TO_PAGE_RULE |
  2584. CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH,
  2585. "",
  2586. VARIANT_AHLP | VARIANT_CALC,
  2587. nullptr,
  2588. offsetof(nsStyleMargin, mMargin),
  2589. eStyleAnimType_Sides_Right)
  2590. CSS_PROP_MARGIN(
  2591. margin-top,
  2592. margin_top,
  2593. MarginTop,
  2594. CSS_PROPERTY_PARSE_VALUE |
  2595. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
  2596. CSS_PROPERTY_STORES_CALC |
  2597. CSS_PROPERTY_UNITLESS_LENGTH_QUIRK |
  2598. CSS_PROPERTY_APPLIES_TO_PAGE_RULE |
  2599. CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH,
  2600. "",
  2601. VARIANT_AHLP | VARIANT_CALC,
  2602. nullptr,
  2603. offsetof(nsStyleMargin, mMargin),
  2604. eStyleAnimType_Sides_Top)
  2605. CSS_PROP_SHORTHAND(
  2606. marker,
  2607. marker,
  2608. Marker,
  2609. CSS_PROPERTY_PARSE_FUNCTION,
  2610. "")
  2611. CSS_PROP_SVG(
  2612. marker-end,
  2613. marker_end,
  2614. MarkerEnd,
  2615. CSS_PROPERTY_PARSE_VALUE,
  2616. "",
  2617. VARIANT_HUO,
  2618. nullptr,
  2619. CSS_PROP_NO_OFFSET,
  2620. eStyleAnimType_Discrete)
  2621. CSS_PROP_SVG(
  2622. marker-mid,
  2623. marker_mid,
  2624. MarkerMid,
  2625. CSS_PROPERTY_PARSE_VALUE,
  2626. "",
  2627. VARIANT_HUO,
  2628. nullptr,
  2629. CSS_PROP_NO_OFFSET,
  2630. eStyleAnimType_Discrete)
  2631. CSS_PROP_SVG(
  2632. marker-start,
  2633. marker_start,
  2634. MarkerStart,
  2635. CSS_PROPERTY_PARSE_VALUE,
  2636. "",
  2637. VARIANT_HUO,
  2638. nullptr,
  2639. CSS_PROP_NO_OFFSET,
  2640. eStyleAnimType_Discrete)
  2641. CSS_PROP_SHORTHAND(
  2642. mask,
  2643. mask,
  2644. Mask,
  2645. CSS_PROPERTY_PARSE_FUNCTION,
  2646. "")
  2647. CSS_PROP_SVGRESET(
  2648. mask-clip,
  2649. mask_clip,
  2650. MaskClip,
  2651. CSS_PROPERTY_PARSE_VALUE_LIST |
  2652. CSS_PROPERTY_VALUE_LIST_USES_COMMAS,
  2653. "",
  2654. VARIANT_KEYWORD, // used by list parsing
  2655. kMaskClipKTable,
  2656. CSS_PROP_NO_OFFSET,
  2657. eStyleAnimType_Discrete)
  2658. CSS_PROP_SVGRESET(
  2659. mask-composite,
  2660. mask_composite,
  2661. MaskComposite,
  2662. CSS_PROPERTY_PARSE_VALUE_LIST |
  2663. CSS_PROPERTY_VALUE_LIST_USES_COMMAS,
  2664. "",
  2665. VARIANT_KEYWORD, // used by list parsing
  2666. kImageLayerCompositeKTable,
  2667. CSS_PROP_NO_OFFSET,
  2668. eStyleAnimType_Discrete)
  2669. CSS_PROP_SVGRESET(
  2670. mask-image,
  2671. mask_image,
  2672. MaskImage,
  2673. CSS_PROPERTY_PARSE_VALUE_LIST |
  2674. CSS_PROPERTY_CREATES_STACKING_CONTEXT |
  2675. CSS_PROPERTY_VALUE_LIST_USES_COMMAS |
  2676. CSS_PROPERTY_START_IMAGE_LOADS,
  2677. "",
  2678. VARIANT_IMAGE, // used by list parsing
  2679. nullptr,
  2680. CSS_PROP_NO_OFFSET,
  2681. eStyleAnimType_Discrete)
  2682. CSS_PROP_SVGRESET(
  2683. mask-mode,
  2684. mask_mode,
  2685. MaskMode,
  2686. CSS_PROPERTY_PARSE_VALUE_LIST |
  2687. CSS_PROPERTY_VALUE_LIST_USES_COMMAS,
  2688. "",
  2689. VARIANT_KEYWORD, // used by list parsing
  2690. kImageLayerModeKTable,
  2691. CSS_PROP_NO_OFFSET,
  2692. eStyleAnimType_Discrete)
  2693. CSS_PROP_SVGRESET(
  2694. mask-origin,
  2695. mask_origin,
  2696. MaskOrigin,
  2697. CSS_PROPERTY_PARSE_VALUE_LIST |
  2698. CSS_PROPERTY_VALUE_LIST_USES_COMMAS,
  2699. "",
  2700. VARIANT_KEYWORD, // used by list parsing
  2701. kMaskOriginKTable,
  2702. CSS_PROP_NO_OFFSET,
  2703. eStyleAnimType_Discrete)
  2704. CSS_PROP_SHORTHAND(
  2705. mask-position,
  2706. mask_position,
  2707. MaskPosition,
  2708. CSS_PROPERTY_PARSE_FUNCTION |
  2709. CSS_PROPERTY_UNITLESS_LENGTH_QUIRK,
  2710. "")
  2711. CSS_PROP_SVGRESET(
  2712. mask-position-x,
  2713. mask_position_x,
  2714. MaskPositionX,
  2715. CSS_PROPERTY_PARSE_FUNCTION |
  2716. CSS_PROPERTY_VALUE_LIST_USES_COMMAS |
  2717. CSS_PROPERTY_STORES_CALC,
  2718. "",
  2719. 0,
  2720. kImageLayerPositionKTable,
  2721. CSS_PROP_NO_OFFSET,
  2722. eStyleAnimType_Custom)
  2723. CSS_PROP_SVGRESET(
  2724. mask-position-y,
  2725. mask_position_y,
  2726. MaskPositionY,
  2727. CSS_PROPERTY_PARSE_FUNCTION |
  2728. CSS_PROPERTY_VALUE_LIST_USES_COMMAS |
  2729. CSS_PROPERTY_STORES_CALC,
  2730. "",
  2731. 0,
  2732. kImageLayerPositionKTable,
  2733. CSS_PROP_NO_OFFSET,
  2734. eStyleAnimType_Custom)
  2735. CSS_PROP_SVGRESET(
  2736. mask-repeat,
  2737. mask_repeat,
  2738. MaskRepeat,
  2739. CSS_PROPERTY_PARSE_FUNCTION |
  2740. CSS_PROPERTY_VALUE_LIST_USES_COMMAS,
  2741. "",
  2742. VARIANT_KEYWORD, // used by list parsing
  2743. kImageLayerRepeatKTable,
  2744. CSS_PROP_NO_OFFSET,
  2745. eStyleAnimType_Discrete)
  2746. CSS_PROP_SVGRESET(
  2747. mask-size,
  2748. mask_size,
  2749. MaskSize,
  2750. CSS_PROPERTY_PARSE_FUNCTION |
  2751. CSS_PROPERTY_VALUE_LIST_USES_COMMAS |
  2752. CSS_PROPERTY_VALUE_NONNEGATIVE |
  2753. CSS_PROPERTY_STORES_CALC,
  2754. "",
  2755. 0,
  2756. kImageLayerSizeKTable,
  2757. CSS_PROP_NO_OFFSET,
  2758. eStyleAnimType_Custom)
  2759. CSS_PROP_SVGRESET(
  2760. mask-type,
  2761. mask_type,
  2762. MaskType,
  2763. CSS_PROPERTY_PARSE_VALUE,
  2764. "",
  2765. VARIANT_HK,
  2766. kMaskTypeKTable,
  2767. CSS_PROP_NO_OFFSET,
  2768. eStyleAnimType_Discrete)
  2769. #ifndef CSS_PROP_LIST_ONLY_COMPONENTS_OF_ALL_SHORTHAND
  2770. #ifndef CSS_PROP_LIST_EXCLUDE_INTERNAL
  2771. CSS_PROP_FONT(
  2772. -moz-math-display,
  2773. math_display,
  2774. MathDisplay,
  2775. CSS_PROPERTY_INTERNAL |
  2776. CSS_PROPERTY_ENABLED_IN_UA_SHEETS |
  2777. CSS_PROPERTY_PARSE_VALUE,
  2778. "",
  2779. VARIANT_HK,
  2780. kMathDisplayKTable,
  2781. CSS_PROP_NO_OFFSET,
  2782. eStyleAnimType_None)
  2783. CSS_PROP_FONT(
  2784. -moz-math-variant,
  2785. math_variant,
  2786. MathVariant,
  2787. CSS_PROPERTY_INTERNAL |
  2788. CSS_PROPERTY_PARSE_INACCESSIBLE,
  2789. "",
  2790. VARIANT_HK,
  2791. kMathVariantKTable,
  2792. CSS_PROP_NO_OFFSET,
  2793. eStyleAnimType_None)
  2794. #endif // CSS_PROP_LIST_EXCLUDE_INTERNAL
  2795. #endif // CSS_PROP_LIST_ONLY_COMPONENTS_OF_ALL_SHORTHAND
  2796. CSS_PROP_LOGICAL(
  2797. max-block-size,
  2798. max_block_size,
  2799. MaxBlockSize,
  2800. CSS_PROPERTY_PARSE_VALUE |
  2801. CSS_PROPERTY_VALUE_NONNEGATIVE |
  2802. CSS_PROPERTY_STORES_CALC |
  2803. CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH |
  2804. CSS_PROPERTY_LOGICAL |
  2805. CSS_PROPERTY_LOGICAL_AXIS |
  2806. CSS_PROPERTY_LOGICAL_BLOCK_AXIS,
  2807. "",
  2808. VARIANT_HLPO | VARIANT_CALC,
  2809. nullptr,
  2810. MaxSize,
  2811. Position,
  2812. CSS_PROP_NO_OFFSET,
  2813. eStyleAnimType_None)
  2814. CSS_PROP_POSITION(
  2815. max-height,
  2816. max_height,
  2817. MaxHeight,
  2818. CSS_PROPERTY_PARSE_VALUE |
  2819. CSS_PROPERTY_VALUE_NONNEGATIVE |
  2820. CSS_PROPERTY_STORES_CALC |
  2821. CSS_PROPERTY_UNITLESS_LENGTH_QUIRK,
  2822. "",
  2823. VARIANT_HKLPO | VARIANT_CALC,
  2824. kWidthKTable,
  2825. offsetof(nsStylePosition, mMaxHeight),
  2826. eStyleAnimType_Coord)
  2827. CSS_PROP_LOGICAL(
  2828. max-inline-size,
  2829. max_inline_size,
  2830. MaxInlineSize,
  2831. CSS_PROPERTY_PARSE_VALUE |
  2832. CSS_PROPERTY_VALUE_NONNEGATIVE |
  2833. CSS_PROPERTY_STORES_CALC |
  2834. CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH |
  2835. CSS_PROPERTY_LOGICAL |
  2836. CSS_PROPERTY_LOGICAL_AXIS,
  2837. "",
  2838. VARIANT_HKLPO | VARIANT_CALC,
  2839. kWidthKTable,
  2840. MaxSize,
  2841. Position,
  2842. CSS_PROP_NO_OFFSET,
  2843. eStyleAnimType_None)
  2844. CSS_PROP_POSITION(
  2845. max-width,
  2846. max_width,
  2847. MaxWidth,
  2848. CSS_PROPERTY_PARSE_VALUE |
  2849. CSS_PROPERTY_VALUE_NONNEGATIVE |
  2850. CSS_PROPERTY_STORES_CALC |
  2851. CSS_PROPERTY_UNITLESS_LENGTH_QUIRK,
  2852. "",
  2853. VARIANT_HKLPO | VARIANT_CALC,
  2854. kWidthKTable,
  2855. offsetof(nsStylePosition, mMaxWidth),
  2856. eStyleAnimType_Coord)
  2857. CSS_PROP_LOGICAL(
  2858. min-block-size,
  2859. min_block_size,
  2860. MinBlockSize,
  2861. CSS_PROPERTY_PARSE_VALUE |
  2862. CSS_PROPERTY_VALUE_NONNEGATIVE |
  2863. CSS_PROPERTY_STORES_CALC |
  2864. CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH |
  2865. CSS_PROPERTY_LOGICAL |
  2866. CSS_PROPERTY_LOGICAL_AXIS |
  2867. CSS_PROPERTY_LOGICAL_BLOCK_AXIS,
  2868. "",
  2869. VARIANT_AHLP | VARIANT_CALC,
  2870. nullptr,
  2871. MinSize,
  2872. Position,
  2873. CSS_PROP_NO_OFFSET,
  2874. eStyleAnimType_None)
  2875. #ifndef CSS_PROP_LIST_EXCLUDE_INTERNAL
  2876. CSS_PROP_FONT(
  2877. -moz-min-font-size-ratio,
  2878. _moz_min_font_size_ratio,
  2879. CSS_PROP_DOMPROP_PREFIXED(MinFontSizeRatio),
  2880. CSS_PROPERTY_INTERNAL |
  2881. CSS_PROPERTY_PARSE_VALUE |
  2882. CSS_PROPERTY_ENABLED_IN_UA_SHEETS,
  2883. "",
  2884. VARIANT_INHERIT | VARIANT_PERCENT,
  2885. nullptr,
  2886. offsetof(nsStyleFont, mMinFontSizeRatio),
  2887. eStyleAnimType_None)
  2888. #endif // CSS_PROP_LIST_EXCLUDE_INTERNAL
  2889. CSS_PROP_POSITION(
  2890. min-height,
  2891. min_height,
  2892. MinHeight,
  2893. CSS_PROPERTY_PARSE_VALUE |
  2894. CSS_PROPERTY_VALUE_NONNEGATIVE |
  2895. CSS_PROPERTY_STORES_CALC |
  2896. CSS_PROPERTY_UNITLESS_LENGTH_QUIRK,
  2897. "",
  2898. VARIANT_AHKLP | VARIANT_CALC,
  2899. kWidthKTable,
  2900. offsetof(nsStylePosition, mMinHeight),
  2901. eStyleAnimType_Coord)
  2902. CSS_PROP_LOGICAL(
  2903. min-inline-size,
  2904. min_inline_size,
  2905. MinInlineSize,
  2906. CSS_PROPERTY_PARSE_VALUE |
  2907. CSS_PROPERTY_VALUE_NONNEGATIVE |
  2908. CSS_PROPERTY_STORES_CALC |
  2909. CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH |
  2910. CSS_PROPERTY_LOGICAL |
  2911. CSS_PROPERTY_LOGICAL_AXIS,
  2912. "",
  2913. VARIANT_AHKLP | VARIANT_CALC,
  2914. kWidthKTable,
  2915. MinSize,
  2916. Position,
  2917. CSS_PROP_NO_OFFSET,
  2918. eStyleAnimType_None)
  2919. CSS_PROP_POSITION(
  2920. min-width,
  2921. min_width,
  2922. MinWidth,
  2923. CSS_PROPERTY_PARSE_VALUE |
  2924. CSS_PROPERTY_VALUE_NONNEGATIVE |
  2925. CSS_PROPERTY_STORES_CALC |
  2926. CSS_PROPERTY_UNITLESS_LENGTH_QUIRK,
  2927. "",
  2928. VARIANT_AHKLP | VARIANT_CALC,
  2929. kWidthKTable,
  2930. offsetof(nsStylePosition, mMinWidth),
  2931. eStyleAnimType_Coord)
  2932. CSS_PROP_EFFECTS(
  2933. mix-blend-mode,
  2934. mix_blend_mode,
  2935. MixBlendMode,
  2936. CSS_PROPERTY_PARSE_VALUE |
  2937. CSS_PROPERTY_CREATES_STACKING_CONTEXT,
  2938. "layout.css.mix-blend-mode.enabled",
  2939. VARIANT_HK,
  2940. kBlendModeKTable,
  2941. CSS_PROP_NO_OFFSET,
  2942. eStyleAnimType_Discrete)
  2943. CSS_PROP_POSITION(
  2944. object-fit,
  2945. object_fit,
  2946. ObjectFit,
  2947. CSS_PROPERTY_PARSE_VALUE |
  2948. CSS_PROPERTY_ENABLED_IN_UA_SHEETS,
  2949. "layout.css.object-fit-and-position.enabled",
  2950. VARIANT_HK,
  2951. kObjectFitKTable,
  2952. CSS_PROP_NO_OFFSET,
  2953. eStyleAnimType_Discrete)
  2954. CSS_PROP_POSITION(
  2955. object-position,
  2956. object_position,
  2957. ObjectPosition,
  2958. CSS_PROPERTY_PARSE_FUNCTION |
  2959. CSS_PROPERTY_STORES_CALC |
  2960. CSS_PROPERTY_ENABLED_IN_UA_SHEETS,
  2961. "layout.css.object-fit-and-position.enabled",
  2962. 0,
  2963. kImageLayerPositionKTable,
  2964. offsetof(nsStylePosition, mObjectPosition),
  2965. eStyleAnimType_Custom)
  2966. CSS_PROP_LOGICAL(
  2967. offset-block-end,
  2968. offset_block_end,
  2969. OffsetBlockEnd,
  2970. CSS_PROPERTY_PARSE_VALUE |
  2971. CSS_PROPERTY_STORES_CALC |
  2972. CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH |
  2973. CSS_PROPERTY_LOGICAL |
  2974. CSS_PROPERTY_LOGICAL_BLOCK_AXIS |
  2975. CSS_PROPERTY_LOGICAL_END_EDGE,
  2976. "",
  2977. VARIANT_AHLP | VARIANT_CALC,
  2978. nullptr,
  2979. Offset,
  2980. Position,
  2981. CSS_PROP_NO_OFFSET,
  2982. eStyleAnimType_None)
  2983. CSS_PROP_LOGICAL(
  2984. offset-block-start,
  2985. offset_block_start,
  2986. OffsetBlockStart,
  2987. CSS_PROPERTY_PARSE_VALUE |
  2988. CSS_PROPERTY_STORES_CALC |
  2989. CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH |
  2990. CSS_PROPERTY_LOGICAL |
  2991. CSS_PROPERTY_LOGICAL_BLOCK_AXIS,
  2992. "",
  2993. VARIANT_AHLP | VARIANT_CALC,
  2994. nullptr,
  2995. Offset,
  2996. Position,
  2997. CSS_PROP_NO_OFFSET,
  2998. eStyleAnimType_None)
  2999. CSS_PROP_LOGICAL(
  3000. offset-inline-end,
  3001. offset_inline_end,
  3002. OffsetInlineEnd,
  3003. CSS_PROPERTY_PARSE_VALUE |
  3004. CSS_PROPERTY_STORES_CALC |
  3005. CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH |
  3006. CSS_PROPERTY_LOGICAL |
  3007. CSS_PROPERTY_LOGICAL_END_EDGE,
  3008. "",
  3009. VARIANT_AHLP | VARIANT_CALC,
  3010. nullptr,
  3011. Offset,
  3012. Position,
  3013. CSS_PROP_NO_OFFSET,
  3014. eStyleAnimType_None)
  3015. CSS_PROP_LOGICAL(
  3016. offset-inline-start,
  3017. offset_inline_start,
  3018. OffsetInlineStart,
  3019. CSS_PROPERTY_PARSE_VALUE |
  3020. CSS_PROPERTY_STORES_CALC |
  3021. CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH |
  3022. CSS_PROPERTY_LOGICAL,
  3023. "",
  3024. VARIANT_AHLP | VARIANT_CALC,
  3025. nullptr,
  3026. Offset,
  3027. Position,
  3028. CSS_PROP_NO_OFFSET,
  3029. eStyleAnimType_None)
  3030. CSS_PROP_EFFECTS(
  3031. opacity,
  3032. opacity,
  3033. Opacity,
  3034. CSS_PROPERTY_PARSE_VALUE |
  3035. CSS_PROPERTY_APPLIES_TO_PLACEHOLDER |
  3036. CSS_PROPERTY_CAN_ANIMATE_ON_COMPOSITOR |
  3037. CSS_PROPERTY_CREATES_STACKING_CONTEXT,
  3038. "",
  3039. VARIANT_INHERIT | VARIANT_OPACITY,
  3040. nullptr,
  3041. offsetof(nsStyleEffects, mOpacity),
  3042. eStyleAnimType_float)
  3043. CSS_PROP_POSITION(
  3044. order,
  3045. order,
  3046. Order,
  3047. CSS_PROPERTY_PARSE_VALUE,
  3048. "",
  3049. VARIANT_HI,
  3050. nullptr,
  3051. offsetof(nsStylePosition, mOrder),
  3052. eStyleAnimType_Custom) // <integer>
  3053. CSS_PROP_DISPLAY(
  3054. -moz-orient,
  3055. orient,
  3056. CSS_PROP_DOMPROP_PREFIXED(Orient),
  3057. CSS_PROPERTY_PARSE_VALUE,
  3058. "",
  3059. VARIANT_HK,
  3060. kOrientKTable,
  3061. CSS_PROP_NO_OFFSET,
  3062. eStyleAnimType_Discrete)
  3063. CSS_PROP_FONT(
  3064. -moz-osx-font-smoothing,
  3065. osx_font_smoothing,
  3066. CSS_PROP_DOMPROP_PREFIXED(OsxFontSmoothing),
  3067. CSS_PROPERTY_PARSE_VALUE |
  3068. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
  3069. CSS_PROPERTY_APPLIES_TO_PLACEHOLDER,
  3070. "layout.css.osx-font-smoothing.enabled",
  3071. VARIANT_HK,
  3072. kFontSmoothingKTable,
  3073. CSS_PROP_NO_OFFSET,
  3074. eStyleAnimType_Discrete)
  3075. CSS_PROP_SHORTHAND(
  3076. outline,
  3077. outline,
  3078. Outline,
  3079. CSS_PROPERTY_PARSE_FUNCTION,
  3080. "")
  3081. CSS_PROP_OUTLINE(
  3082. outline-color,
  3083. outline_color,
  3084. OutlineColor,
  3085. CSS_PROPERTY_PARSE_VALUE |
  3086. CSS_PROPERTY_IGNORED_WHEN_COLORS_DISABLED,
  3087. "",
  3088. VARIANT_HC,
  3089. nullptr,
  3090. offsetof(nsStyleOutline, mOutlineColor),
  3091. eStyleAnimType_ComplexColor)
  3092. CSS_PROP_OUTLINE(
  3093. outline-offset,
  3094. outline_offset,
  3095. OutlineOffset,
  3096. CSS_PROPERTY_PARSE_VALUE,
  3097. "",
  3098. VARIANT_HL | VARIANT_CALC,
  3099. nullptr,
  3100. offsetof(nsStyleOutline, mOutlineOffset),
  3101. eStyleAnimType_nscoord)
  3102. CSS_PROP_SHORTHAND(
  3103. -moz-outline-radius,
  3104. _moz_outline_radius,
  3105. CSS_PROP_DOMPROP_PREFIXED(OutlineRadius),
  3106. CSS_PROPERTY_PARSE_FUNCTION,
  3107. "")
  3108. CSS_PROP_OUTLINE(
  3109. -moz-outline-radius-bottomleft,
  3110. _moz_outline_radius_bottomLeft,
  3111. CSS_PROP_DOMPROP_PREFIXED(OutlineRadiusBottomleft),
  3112. CSS_PROPERTY_PARSE_FUNCTION |
  3113. CSS_PROPERTY_VALUE_NONNEGATIVE |
  3114. CSS_PROPERTY_STORES_CALC,
  3115. "",
  3116. 0,
  3117. nullptr,
  3118. offsetof(nsStyleOutline, mOutlineRadius),
  3119. eStyleAnimType_Corner_BottomLeft)
  3120. CSS_PROP_OUTLINE(
  3121. -moz-outline-radius-bottomright,
  3122. _moz_outline_radius_bottomRight,
  3123. CSS_PROP_DOMPROP_PREFIXED(OutlineRadiusBottomright),
  3124. CSS_PROPERTY_PARSE_FUNCTION |
  3125. CSS_PROPERTY_VALUE_NONNEGATIVE |
  3126. CSS_PROPERTY_STORES_CALC,
  3127. "",
  3128. 0,
  3129. nullptr,
  3130. offsetof(nsStyleOutline, mOutlineRadius),
  3131. eStyleAnimType_Corner_BottomRight)
  3132. CSS_PROP_OUTLINE(
  3133. -moz-outline-radius-topleft,
  3134. _moz_outline_radius_topLeft,
  3135. CSS_PROP_DOMPROP_PREFIXED(OutlineRadiusTopleft),
  3136. CSS_PROPERTY_PARSE_FUNCTION |
  3137. CSS_PROPERTY_VALUE_NONNEGATIVE |
  3138. CSS_PROPERTY_STORES_CALC,
  3139. "",
  3140. 0,
  3141. nullptr,
  3142. offsetof(nsStyleOutline, mOutlineRadius),
  3143. eStyleAnimType_Corner_TopLeft)
  3144. CSS_PROP_OUTLINE(
  3145. -moz-outline-radius-topright,
  3146. _moz_outline_radius_topRight,
  3147. CSS_PROP_DOMPROP_PREFIXED(OutlineRadiusTopright),
  3148. CSS_PROPERTY_PARSE_FUNCTION |
  3149. CSS_PROPERTY_VALUE_NONNEGATIVE |
  3150. CSS_PROPERTY_STORES_CALC,
  3151. "",
  3152. 0,
  3153. nullptr,
  3154. offsetof(nsStyleOutline, mOutlineRadius),
  3155. eStyleAnimType_Corner_TopRight)
  3156. CSS_PROP_OUTLINE(
  3157. outline-style,
  3158. outline_style,
  3159. OutlineStyle,
  3160. CSS_PROPERTY_PARSE_VALUE,
  3161. "",
  3162. VARIANT_HK,
  3163. kOutlineStyleKTable,
  3164. CSS_PROP_NO_OFFSET,
  3165. eStyleAnimType_Discrete)
  3166. CSS_PROP_OUTLINE(
  3167. outline-width,
  3168. outline_width,
  3169. OutlineWidth,
  3170. CSS_PROPERTY_PARSE_VALUE |
  3171. CSS_PROPERTY_VALUE_NONNEGATIVE,
  3172. "",
  3173. VARIANT_HKL | VARIANT_CALC,
  3174. kBorderWidthKTable,
  3175. offsetof(nsStyleOutline, mOutlineWidth),
  3176. eStyleAnimType_Coord)
  3177. CSS_PROP_SHORTHAND(
  3178. overflow,
  3179. overflow,
  3180. Overflow,
  3181. CSS_PROPERTY_PARSE_FUNCTION,
  3182. "")
  3183. CSS_PROP_DISPLAY(
  3184. overflow-clip-box,
  3185. overflow_clip_box,
  3186. OverflowClipBox,
  3187. CSS_PROPERTY_PARSE_VALUE |
  3188. CSS_PROPERTY_ENABLED_IN_UA_SHEETS |
  3189. CSS_PROPERTY_APPLIES_TO_PLACEHOLDER,
  3190. "layout.css.overflow-clip-box.enabled",
  3191. VARIANT_HK,
  3192. kOverflowClipBoxKTable,
  3193. CSS_PROP_NO_OFFSET,
  3194. eStyleAnimType_Discrete)
  3195. CSS_PROP_DISPLAY(
  3196. overflow-x,
  3197. overflow_x,
  3198. OverflowX,
  3199. CSS_PROPERTY_PARSE_VALUE |
  3200. // This is required by the UA stylesheet and can't be overridden.
  3201. CSS_PROPERTY_APPLIES_TO_PLACEHOLDER,
  3202. "",
  3203. VARIANT_HK,
  3204. kOverflowSubKTable,
  3205. CSS_PROP_NO_OFFSET,
  3206. eStyleAnimType_Discrete)
  3207. CSS_PROP_DISPLAY(
  3208. overflow-y,
  3209. overflow_y,
  3210. OverflowY,
  3211. CSS_PROPERTY_PARSE_VALUE |
  3212. // This is required by the UA stylesheet and can't be overridden.
  3213. CSS_PROPERTY_APPLIES_TO_PLACEHOLDER,
  3214. "",
  3215. VARIANT_HK,
  3216. kOverflowSubKTable,
  3217. CSS_PROP_NO_OFFSET,
  3218. eStyleAnimType_Discrete)
  3219. CSS_PROP_SHORTHAND(
  3220. padding,
  3221. padding,
  3222. Padding,
  3223. CSS_PROPERTY_PARSE_FUNCTION |
  3224. CSS_PROPERTY_UNITLESS_LENGTH_QUIRK,
  3225. "")
  3226. CSS_PROP_LOGICAL(
  3227. padding-block-end,
  3228. padding_block_end,
  3229. PaddingBlockEnd,
  3230. CSS_PROPERTY_PARSE_VALUE |
  3231. CSS_PROPERTY_VALUE_NONNEGATIVE |
  3232. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
  3233. // This is required by the UA stylesheet and can't be overridden.
  3234. CSS_PROPERTY_APPLIES_TO_PLACEHOLDER |
  3235. CSS_PROPERTY_STORES_CALC |
  3236. CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH |
  3237. CSS_PROPERTY_LOGICAL |
  3238. CSS_PROPERTY_LOGICAL_BLOCK_AXIS |
  3239. CSS_PROPERTY_LOGICAL_END_EDGE,
  3240. "",
  3241. VARIANT_HLP | VARIANT_CALC,
  3242. nullptr,
  3243. Padding,
  3244. Padding,
  3245. CSS_PROP_NO_OFFSET,
  3246. eStyleAnimType_None)
  3247. CSS_PROP_LOGICAL(
  3248. padding-block-start,
  3249. padding_block_start,
  3250. PaddingBlockStart,
  3251. CSS_PROPERTY_PARSE_VALUE |
  3252. CSS_PROPERTY_VALUE_NONNEGATIVE |
  3253. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
  3254. // This is required by the UA stylesheet and can't be overridden.
  3255. CSS_PROPERTY_APPLIES_TO_PLACEHOLDER |
  3256. CSS_PROPERTY_STORES_CALC |
  3257. CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH |
  3258. CSS_PROPERTY_LOGICAL |
  3259. CSS_PROPERTY_LOGICAL_BLOCK_AXIS,
  3260. "",
  3261. VARIANT_HLP | VARIANT_CALC,
  3262. nullptr,
  3263. Padding,
  3264. Padding,
  3265. CSS_PROP_NO_OFFSET,
  3266. eStyleAnimType_None)
  3267. CSS_PROP_PADDING(
  3268. padding-bottom,
  3269. padding_bottom,
  3270. PaddingBottom,
  3271. CSS_PROPERTY_PARSE_VALUE |
  3272. CSS_PROPERTY_VALUE_NONNEGATIVE |
  3273. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
  3274. // This is required by the UA stylesheet and can't be overridden.
  3275. CSS_PROPERTY_APPLIES_TO_PLACEHOLDER |
  3276. CSS_PROPERTY_STORES_CALC |
  3277. CSS_PROPERTY_UNITLESS_LENGTH_QUIRK |
  3278. CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH,
  3279. "",
  3280. VARIANT_HLP | VARIANT_CALC,
  3281. nullptr,
  3282. offsetof(nsStylePadding, mPadding),
  3283. eStyleAnimType_Sides_Bottom)
  3284. CSS_PROP_LOGICAL(
  3285. padding-inline-end,
  3286. padding_inline_end,
  3287. PaddingInlineEnd,
  3288. CSS_PROPERTY_PARSE_VALUE |
  3289. CSS_PROPERTY_VALUE_NONNEGATIVE |
  3290. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
  3291. // This is required by the UA stylesheet and can't be overridden.
  3292. CSS_PROPERTY_APPLIES_TO_PLACEHOLDER |
  3293. CSS_PROPERTY_STORES_CALC |
  3294. CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH |
  3295. CSS_PROPERTY_LOGICAL |
  3296. CSS_PROPERTY_LOGICAL_END_EDGE,
  3297. "",
  3298. VARIANT_HLP | VARIANT_CALC,
  3299. nullptr,
  3300. Padding,
  3301. Padding,
  3302. CSS_PROP_NO_OFFSET,
  3303. eStyleAnimType_None)
  3304. CSS_PROP_LOGICAL(
  3305. padding-inline-start,
  3306. padding_inline_start,
  3307. PaddingInlineStart,
  3308. CSS_PROPERTY_PARSE_VALUE |
  3309. CSS_PROPERTY_VALUE_NONNEGATIVE |
  3310. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
  3311. // This is required by the UA stylesheet and can't be overridden.
  3312. CSS_PROPERTY_APPLIES_TO_PLACEHOLDER |
  3313. CSS_PROPERTY_STORES_CALC |
  3314. CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH |
  3315. CSS_PROPERTY_LOGICAL,
  3316. "",
  3317. VARIANT_HLP | VARIANT_CALC,
  3318. nullptr,
  3319. Padding,
  3320. Padding,
  3321. CSS_PROP_NO_OFFSET,
  3322. eStyleAnimType_None)
  3323. CSS_PROP_PADDING(
  3324. padding-left,
  3325. padding_left,
  3326. PaddingLeft,
  3327. CSS_PROPERTY_PARSE_VALUE |
  3328. CSS_PROPERTY_VALUE_NONNEGATIVE |
  3329. CSS_PROPERTY_UNITLESS_LENGTH_QUIRK |
  3330. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
  3331. // This is required by the UA stylesheet and can't be overridden.
  3332. CSS_PROPERTY_APPLIES_TO_PLACEHOLDER |
  3333. CSS_PROPERTY_STORES_CALC |
  3334. CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH,
  3335. "",
  3336. VARIANT_HLP | VARIANT_CALC,
  3337. nullptr,
  3338. offsetof(nsStylePadding, mPadding),
  3339. eStyleAnimType_Sides_Left)
  3340. CSS_PROP_PADDING(
  3341. padding-right,
  3342. padding_right,
  3343. PaddingRight,
  3344. CSS_PROPERTY_PARSE_VALUE |
  3345. CSS_PROPERTY_VALUE_NONNEGATIVE |
  3346. CSS_PROPERTY_UNITLESS_LENGTH_QUIRK |
  3347. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
  3348. // This is required by the UA stylesheet and can't be overridden.
  3349. CSS_PROPERTY_APPLIES_TO_PLACEHOLDER |
  3350. CSS_PROPERTY_STORES_CALC |
  3351. CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH,
  3352. "",
  3353. VARIANT_HLP | VARIANT_CALC,
  3354. nullptr,
  3355. offsetof(nsStylePadding, mPadding),
  3356. eStyleAnimType_Sides_Right)
  3357. CSS_PROP_PADDING(
  3358. padding-top,
  3359. padding_top,
  3360. PaddingTop,
  3361. CSS_PROPERTY_PARSE_VALUE |
  3362. CSS_PROPERTY_VALUE_NONNEGATIVE |
  3363. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER |
  3364. // This is required by the UA stylesheet and can't be overridden.
  3365. CSS_PROPERTY_APPLIES_TO_PLACEHOLDER |
  3366. CSS_PROPERTY_STORES_CALC |
  3367. CSS_PROPERTY_UNITLESS_LENGTH_QUIRK |
  3368. CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH,
  3369. "",
  3370. VARIANT_HLP | VARIANT_CALC,
  3371. nullptr,
  3372. offsetof(nsStylePadding, mPadding),
  3373. eStyleAnimType_Sides_Top)
  3374. CSS_PROP_DISPLAY(
  3375. page-break-after,
  3376. page_break_after,
  3377. PageBreakAfter,
  3378. CSS_PROPERTY_PARSE_VALUE,
  3379. "",
  3380. VARIANT_HK,
  3381. kPageBreakKTable,
  3382. CSS_PROP_NO_OFFSET,
  3383. eStyleAnimType_Discrete) // temp fix for bug 24000
  3384. CSS_PROP_DISPLAY(
  3385. page-break-before,
  3386. page_break_before,
  3387. PageBreakBefore,
  3388. CSS_PROPERTY_PARSE_VALUE,
  3389. "",
  3390. VARIANT_HK,
  3391. kPageBreakKTable,
  3392. CSS_PROP_NO_OFFSET,
  3393. eStyleAnimType_Discrete) // temp fix for bug 24000
  3394. CSS_PROP_DISPLAY(
  3395. page-break-inside,
  3396. page_break_inside,
  3397. PageBreakInside,
  3398. CSS_PROPERTY_PARSE_VALUE,
  3399. "",
  3400. VARIANT_HK,
  3401. kPageBreakInsideKTable,
  3402. CSS_PROP_NO_OFFSET,
  3403. eStyleAnimType_Discrete)
  3404. CSS_PROP_SVG(
  3405. paint-order,
  3406. paint_order,
  3407. PaintOrder,
  3408. CSS_PROPERTY_PARSE_FUNCTION,
  3409. "svg.paint-order.enabled",
  3410. 0,
  3411. nullptr,
  3412. CSS_PROP_NO_OFFSET,
  3413. eStyleAnimType_Discrete)
  3414. CSS_PROP_DISPLAY(
  3415. perspective,
  3416. perspective,
  3417. Perspective,
  3418. CSS_PROPERTY_PARSE_VALUE |
  3419. CSS_PROPERTY_CREATES_STACKING_CONTEXT |
  3420. CSS_PROPERTY_FIXPOS_CB,
  3421. "",
  3422. VARIANT_NONE | VARIANT_INHERIT | VARIANT_LENGTH |
  3423. VARIANT_NONNEGATIVE_DIMENSION,
  3424. nullptr,
  3425. offsetof(nsStyleDisplay, mChildPerspective),
  3426. eStyleAnimType_Coord)
  3427. CSS_PROP_DISPLAY(
  3428. perspective-origin,
  3429. perspective_origin,
  3430. PerspectiveOrigin,
  3431. CSS_PROPERTY_PARSE_FUNCTION |
  3432. CSS_PROPERTY_STORES_CALC |
  3433. CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH,
  3434. "",
  3435. 0,
  3436. kImageLayerPositionKTable,
  3437. CSS_PROP_NO_OFFSET,
  3438. eStyleAnimType_Custom)
  3439. CSS_PROP_SHORTHAND(
  3440. place-content,
  3441. place_content,
  3442. PlaceContent,
  3443. CSS_PROPERTY_PARSE_FUNCTION,
  3444. "")
  3445. CSS_PROP_SHORTHAND(
  3446. place-items,
  3447. place_items,
  3448. PlaceItems,
  3449. CSS_PROPERTY_PARSE_FUNCTION,
  3450. "")
  3451. CSS_PROP_SHORTHAND(
  3452. place-self,
  3453. place_self,
  3454. PlaceSelf,
  3455. CSS_PROPERTY_PARSE_FUNCTION,
  3456. "")
  3457. CSS_PROP_USERINTERFACE(
  3458. pointer-events,
  3459. pointer_events,
  3460. PointerEvents,
  3461. CSS_PROPERTY_PARSE_VALUE |
  3462. CSS_PROPERTY_APPLIES_TO_PLACEHOLDER,
  3463. "",
  3464. VARIANT_HK,
  3465. kPointerEventsKTable,
  3466. CSS_PROP_NO_OFFSET,
  3467. eStyleAnimType_Discrete)
  3468. CSS_PROP_DISPLAY(
  3469. position,
  3470. position,
  3471. Position,
  3472. CSS_PROPERTY_PARSE_VALUE |
  3473. // For position: sticky/fixed
  3474. CSS_PROPERTY_CREATES_STACKING_CONTEXT |
  3475. CSS_PROPERTY_ABSPOS_CB,
  3476. "",
  3477. VARIANT_HK,
  3478. kPositionKTable,
  3479. CSS_PROP_NO_OFFSET,
  3480. eStyleAnimType_Discrete)
  3481. CSS_PROP_LIST(
  3482. quotes,
  3483. quotes,
  3484. Quotes,
  3485. CSS_PROPERTY_PARSE_FUNCTION,
  3486. "",
  3487. 0,
  3488. nullptr,
  3489. CSS_PROP_NO_OFFSET,
  3490. eStyleAnimType_Discrete)
  3491. CSS_PROP_DISPLAY(
  3492. resize,
  3493. resize,
  3494. Resize,
  3495. CSS_PROPERTY_PARSE_VALUE |
  3496. // This is allowed because the UA stylesheet sets 'resize: both;' on
  3497. // textarea and we need to disable this for the placeholder
  3498. // pseudo-element.
  3499. CSS_PROPERTY_APPLIES_TO_PLACEHOLDER,
  3500. "",
  3501. VARIANT_HK,
  3502. kResizeKTable,
  3503. CSS_PROP_NO_OFFSET,
  3504. eStyleAnimType_Discrete)
  3505. CSS_PROP_POSITION(
  3506. right,
  3507. right,
  3508. Right,
  3509. CSS_PROPERTY_PARSE_VALUE |
  3510. CSS_PROPERTY_STORES_CALC |
  3511. CSS_PROPERTY_UNITLESS_LENGTH_QUIRK |
  3512. CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH,
  3513. "",
  3514. VARIANT_AHLP | VARIANT_CALC,
  3515. nullptr,
  3516. offsetof(nsStylePosition, mOffset),
  3517. eStyleAnimType_Sides_Right)
  3518. CSS_PROP_TEXT(
  3519. ruby-align,
  3520. ruby_align,
  3521. RubyAlign,
  3522. CSS_PROPERTY_PARSE_VALUE,
  3523. "",
  3524. VARIANT_HK,
  3525. kRubyAlignKTable,
  3526. CSS_PROP_NO_OFFSET,
  3527. eStyleAnimType_Discrete)
  3528. CSS_PROP_TEXT(
  3529. ruby-position,
  3530. ruby_position,
  3531. RubyPosition,
  3532. CSS_PROPERTY_PARSE_VALUE,
  3533. "",
  3534. VARIANT_HK,
  3535. kRubyPositionKTable,
  3536. CSS_PROP_NO_OFFSET,
  3537. eStyleAnimType_Discrete)
  3538. #ifndef CSS_PROP_LIST_ONLY_COMPONENTS_OF_ALL_SHORTHAND
  3539. #ifndef CSS_PROP_LIST_EXCLUDE_INTERNAL
  3540. CSS_PROP_FONT(
  3541. -moz-script-level,
  3542. script_level,
  3543. ScriptLevel,
  3544. // We only allow 'script-level' when unsafe rules are enabled, because
  3545. // otherwise it could interfere with rulenode optimizations if used in
  3546. // a non-MathML-enabled document.
  3547. CSS_PROPERTY_INTERNAL |
  3548. CSS_PROPERTY_ENABLED_IN_UA_SHEETS |
  3549. CSS_PROPERTY_PARSE_VALUE,
  3550. "",
  3551. // script-level can take Auto, Integer and Number values, but only Auto
  3552. // ("increment if parent is not in displaystyle") and Integer
  3553. // ("relative") values can be specified in a style sheet.
  3554. VARIANT_AHI,
  3555. nullptr,
  3556. CSS_PROP_NO_OFFSET,
  3557. eStyleAnimType_None)
  3558. CSS_PROP_FONT(
  3559. -moz-script-min-size,
  3560. script_min_size,
  3561. ScriptMinSize,
  3562. CSS_PROPERTY_INTERNAL |
  3563. CSS_PROPERTY_PARSE_INACCESSIBLE,
  3564. "",
  3565. 0,
  3566. nullptr,
  3567. CSS_PROP_NO_OFFSET,
  3568. eStyleAnimType_None)
  3569. CSS_PROP_FONT(
  3570. -moz-script-size-multiplier,
  3571. script_size_multiplier,
  3572. ScriptSizeMultiplier,
  3573. CSS_PROPERTY_INTERNAL |
  3574. CSS_PROPERTY_PARSE_INACCESSIBLE,
  3575. "",
  3576. 0,
  3577. nullptr,
  3578. CSS_PROP_NO_OFFSET,
  3579. eStyleAnimType_None)
  3580. #endif // CSS_PROP_LIST_EXCLUDE_INTERNAL
  3581. #endif // CSS_PROP_LIST_ONLY_COMPONENTS_OF_ALL_SHORTHAND
  3582. CSS_PROP_DISPLAY(
  3583. scroll-behavior,
  3584. scroll_behavior,
  3585. ScrollBehavior,
  3586. CSS_PROPERTY_PARSE_VALUE,
  3587. "layout.css.scroll-behavior.property-enabled",
  3588. VARIANT_HK,
  3589. kScrollBehaviorKTable,
  3590. CSS_PROP_NO_OFFSET,
  3591. eStyleAnimType_Discrete)
  3592. CSS_PROP_DISPLAY(
  3593. scroll-snap-coordinate,
  3594. scroll_snap_coordinate,
  3595. ScrollSnapCoordinate,
  3596. CSS_PROPERTY_PARSE_VALUE |
  3597. CSS_PROPERTY_VALUE_PARSER_FUNCTION |
  3598. CSS_PROPERTY_VALUE_LIST_USES_COMMAS |
  3599. CSS_PROPERTY_STORES_CALC,
  3600. "layout.css.scroll-snap.enabled",
  3601. 0,
  3602. kImageLayerPositionKTable,
  3603. CSS_PROP_NO_OFFSET,
  3604. eStyleAnimType_Discrete)
  3605. CSS_PROP_DISPLAY(
  3606. scroll-snap-destination,
  3607. scroll_snap_destination,
  3608. ScrollSnapDestination,
  3609. CSS_PROPERTY_PARSE_VALUE |
  3610. CSS_PROPERTY_VALUE_PARSER_FUNCTION |
  3611. CSS_PROPERTY_STORES_CALC,
  3612. "layout.css.scroll-snap.enabled",
  3613. 0,
  3614. kImageLayerPositionKTable,
  3615. CSS_PROP_NO_OFFSET,
  3616. eStyleAnimType_Discrete)
  3617. CSS_PROP_DISPLAY(
  3618. scroll-snap-points-x,
  3619. scroll_snap_points_x,
  3620. ScrollSnapPointsX,
  3621. CSS_PROPERTY_PARSE_VALUE |
  3622. CSS_PROPERTY_VALUE_PARSER_FUNCTION |
  3623. CSS_PROPERTY_STORES_CALC,
  3624. "layout.css.scroll-snap.enabled",
  3625. 0,
  3626. nullptr,
  3627. CSS_PROP_NO_OFFSET,
  3628. eStyleAnimType_Discrete)
  3629. CSS_PROP_DISPLAY(
  3630. scroll-snap-points-y,
  3631. scroll_snap_points_y,
  3632. ScrollSnapPointsY,
  3633. CSS_PROPERTY_PARSE_VALUE |
  3634. CSS_PROPERTY_VALUE_PARSER_FUNCTION |
  3635. CSS_PROPERTY_STORES_CALC,
  3636. "layout.css.scroll-snap.enabled",
  3637. 0,
  3638. nullptr,
  3639. CSS_PROP_NO_OFFSET,
  3640. eStyleAnimType_Discrete)
  3641. CSS_PROP_SHORTHAND(
  3642. scroll-snap-type,
  3643. scroll_snap_type,
  3644. ScrollSnapType,
  3645. CSS_PROPERTY_PARSE_FUNCTION,
  3646. "layout.css.scroll-snap.enabled")
  3647. CSS_PROP_DISPLAY(
  3648. scroll-snap-type-x,
  3649. scroll_snap_type_x,
  3650. ScrollSnapTypeX,
  3651. CSS_PROPERTY_PARSE_VALUE,
  3652. "layout.css.scroll-snap.enabled",
  3653. VARIANT_HK,
  3654. kScrollSnapTypeKTable,
  3655. CSS_PROP_NO_OFFSET,
  3656. eStyleAnimType_Discrete)
  3657. CSS_PROP_DISPLAY(
  3658. scroll-snap-type-y,
  3659. scroll_snap_type_y,
  3660. ScrollSnapTypeY,
  3661. CSS_PROPERTY_PARSE_VALUE,
  3662. "layout.css.scroll-snap.enabled",
  3663. VARIANT_HK,
  3664. kScrollSnapTypeKTable,
  3665. CSS_PROP_NO_OFFSET,
  3666. eStyleAnimType_Discrete)
  3667. CSS_PROP_USERINTERFACE(
  3668. scrollbar-width,
  3669. scrollbar_width,
  3670. ScrollbarWidth,
  3671. CSS_PROPERTY_PARSE_VALUE,
  3672. "layout.css.scrollbar-width.enabled",
  3673. VARIANT_HK,
  3674. kScrollbarWidthKTable,
  3675. CSS_PROP_NO_OFFSET,
  3676. eStyleAnimType_Discrete)
  3677. CSS_PROP_DISPLAY(
  3678. shape-outside,
  3679. shape_outside,
  3680. ShapeOutside,
  3681. CSS_PROPERTY_PARSE_VALUE |
  3682. CSS_PROPERTY_VALUE_PARSER_FUNCTION |
  3683. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER,
  3684. "layout.css.shape-outside.enabled",
  3685. 0,
  3686. nullptr,
  3687. CSS_PROP_NO_OFFSET,
  3688. eStyleAnimType_Discrete) // FIXME: Bug 1289049 for adding animation support
  3689. CSS_PROP_SVG(
  3690. shape-rendering,
  3691. shape_rendering,
  3692. ShapeRendering,
  3693. CSS_PROPERTY_PARSE_VALUE,
  3694. "",
  3695. VARIANT_HK,
  3696. kShapeRenderingKTable,
  3697. CSS_PROP_NO_OFFSET,
  3698. eStyleAnimType_Discrete)
  3699. #ifndef CSS_PROP_LIST_ONLY_COMPONENTS_OF_ALL_SHORTHAND
  3700. #ifndef CSS_PROP_LIST_EXCLUDE_INTERNAL
  3701. CSS_PROP_TABLE(
  3702. -x-span,
  3703. _x_span,
  3704. Span,
  3705. CSS_PROPERTY_INTERNAL |
  3706. CSS_PROPERTY_PARSE_INACCESSIBLE,
  3707. "",
  3708. 0,
  3709. nullptr,
  3710. CSS_PROP_NO_OFFSET,
  3711. eStyleAnimType_None)
  3712. #endif // CSS_PROP_LIST_EXCLUDE_INTERNAL
  3713. #endif // CSS_PROP_LIST_ONLY_COMPONENTS_OF_ALL_SHORTHAND
  3714. CSS_PROP_XUL(
  3715. -moz-stack-sizing,
  3716. stack_sizing,
  3717. CSS_PROP_DOMPROP_PREFIXED(StackSizing),
  3718. CSS_PROPERTY_PARSE_VALUE,
  3719. "",
  3720. VARIANT_HK,
  3721. kStackSizingKTable,
  3722. CSS_PROP_NO_OFFSET,
  3723. eStyleAnimType_Discrete)
  3724. CSS_PROP_SVGRESET(
  3725. stop-color,
  3726. stop_color,
  3727. StopColor,
  3728. CSS_PROPERTY_PARSE_VALUE,
  3729. "",
  3730. VARIANT_HC,
  3731. nullptr,
  3732. offsetof(nsStyleSVGReset, mStopColor),
  3733. eStyleAnimType_Color)
  3734. CSS_PROP_SVGRESET(
  3735. stop-opacity,
  3736. stop_opacity,
  3737. StopOpacity,
  3738. CSS_PROPERTY_PARSE_VALUE,
  3739. "",
  3740. VARIANT_INHERIT | VARIANT_OPACITY,
  3741. nullptr,
  3742. offsetof(nsStyleSVGReset, mStopOpacity),
  3743. eStyleAnimType_float)
  3744. CSS_PROP_SVG(
  3745. stroke,
  3746. stroke,
  3747. Stroke,
  3748. CSS_PROPERTY_PARSE_FUNCTION,
  3749. "",
  3750. 0,
  3751. kContextPatternKTable,
  3752. offsetof(nsStyleSVG, mStroke),
  3753. eStyleAnimType_PaintServer)
  3754. CSS_PROP_SVG(
  3755. stroke-dasharray,
  3756. stroke_dasharray,
  3757. StrokeDasharray,
  3758. CSS_PROPERTY_PARSE_FUNCTION |
  3759. CSS_PROPERTY_VALUE_LIST_USES_COMMAS |
  3760. CSS_PROPERTY_NUMBERS_ARE_PIXELS,
  3761. // NOTE: Internal values have range restrictions.
  3762. "",
  3763. 0,
  3764. kStrokeContextValueKTable,
  3765. CSS_PROP_NO_OFFSET, /* property stored in 2 separate members */
  3766. eStyleAnimType_Custom)
  3767. CSS_PROP_SVG(
  3768. stroke-dashoffset,
  3769. stroke_dashoffset,
  3770. StrokeDashoffset,
  3771. CSS_PROPERTY_PARSE_VALUE |
  3772. CSS_PROPERTY_NUMBERS_ARE_PIXELS |
  3773. CSS_PROPERTY_STORES_CALC,
  3774. "",
  3775. VARIANT_HLPN | VARIANT_OPENTYPE_SVG_KEYWORD | VARIANT_CALC,
  3776. kStrokeContextValueKTable,
  3777. offsetof(nsStyleSVG, mStrokeDashoffset),
  3778. eStyleAnimType_Coord)
  3779. CSS_PROP_SVG(
  3780. stroke-linecap,
  3781. stroke_linecap,
  3782. StrokeLinecap,
  3783. CSS_PROPERTY_PARSE_VALUE,
  3784. "",
  3785. VARIANT_HK,
  3786. kStrokeLinecapKTable,
  3787. CSS_PROP_NO_OFFSET,
  3788. eStyleAnimType_Discrete)
  3789. CSS_PROP_SVG(
  3790. stroke-linejoin,
  3791. stroke_linejoin,
  3792. StrokeLinejoin,
  3793. CSS_PROPERTY_PARSE_VALUE,
  3794. "",
  3795. VARIANT_HK,
  3796. kStrokeLinejoinKTable,
  3797. CSS_PROP_NO_OFFSET,
  3798. eStyleAnimType_Discrete)
  3799. CSS_PROP_SVG(
  3800. stroke-miterlimit,
  3801. stroke_miterlimit,
  3802. StrokeMiterlimit,
  3803. CSS_PROPERTY_PARSE_VALUE |
  3804. CSS_PROPERTY_VALUE_AT_LEAST_ONE,
  3805. "",
  3806. VARIANT_HN,
  3807. nullptr,
  3808. offsetof(nsStyleSVG, mStrokeMiterlimit),
  3809. eStyleAnimType_float)
  3810. CSS_PROP_SVG(
  3811. stroke-opacity,
  3812. stroke_opacity,
  3813. StrokeOpacity,
  3814. CSS_PROPERTY_PARSE_VALUE,
  3815. "",
  3816. VARIANT_INHERIT | VARIANT_OPACITY | VARIANT_OPENTYPE_SVG_KEYWORD,
  3817. kContextOpacityKTable,
  3818. offsetof(nsStyleSVG, mStrokeOpacity),
  3819. eStyleAnimType_float)
  3820. CSS_PROP_SVG(
  3821. stroke-width,
  3822. stroke_width,
  3823. StrokeWidth,
  3824. CSS_PROPERTY_PARSE_VALUE |
  3825. CSS_PROPERTY_VALUE_NONNEGATIVE |
  3826. CSS_PROPERTY_NUMBERS_ARE_PIXELS,
  3827. "",
  3828. VARIANT_HLPN | VARIANT_OPENTYPE_SVG_KEYWORD,
  3829. kStrokeContextValueKTable,
  3830. offsetof(nsStyleSVG, mStrokeWidth),
  3831. eStyleAnimType_Coord)
  3832. #ifndef CSS_PROP_LIST_EXCLUDE_INTERNAL
  3833. CSS_PROP_FONT(
  3834. -x-system-font,
  3835. _x_system_font,
  3836. CSS_PROP_DOMPROP_PREFIXED(SystemFont),
  3837. CSS_PROPERTY_INTERNAL |
  3838. CSS_PROPERTY_PARSE_INACCESSIBLE |
  3839. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
  3840. CSS_PROPERTY_APPLIES_TO_PLACEHOLDER,
  3841. "",
  3842. 0,
  3843. kFontKTable,
  3844. CSS_PROP_NO_OFFSET,
  3845. eStyleAnimType_None)
  3846. #endif // CSS_PROP_LIST_EXCLUDE_INTERNAL
  3847. CSS_PROP_TEXT(
  3848. tab-size,
  3849. tab_size,
  3850. TabSize,
  3851. CSS_PROPERTY_PARSE_VALUE |
  3852. CSS_PROPERTY_VALUE_NONNEGATIVE,
  3853. "",
  3854. VARIANT_INHERIT | VARIANT_LNCALC,
  3855. nullptr,
  3856. offsetof(nsStyleText, mTabSize),
  3857. eStyleAnimType_Coord)
  3858. CSS_PROP_TABLE(
  3859. table-layout,
  3860. table_layout,
  3861. TableLayout,
  3862. CSS_PROPERTY_PARSE_VALUE,
  3863. "",
  3864. VARIANT_HK,
  3865. kTableLayoutKTable,
  3866. CSS_PROP_NO_OFFSET,
  3867. eStyleAnimType_Discrete)
  3868. CSS_PROP_TEXT(
  3869. text-align,
  3870. text_align,
  3871. TextAlign,
  3872. CSS_PROPERTY_PARSE_VALUE | CSS_PROPERTY_VALUE_PARSER_FUNCTION |
  3873. CSS_PROPERTY_APPLIES_TO_PLACEHOLDER,
  3874. "",
  3875. // When we support aligning on a string, we can parse text-align
  3876. // as a string....
  3877. VARIANT_HK /* | VARIANT_STRING */,
  3878. kTextAlignKTable,
  3879. CSS_PROP_NO_OFFSET,
  3880. eStyleAnimType_Discrete)
  3881. CSS_PROP_TEXT(
  3882. text-align-last,
  3883. text_align_last,
  3884. TextAlignLast,
  3885. CSS_PROPERTY_PARSE_VALUE | CSS_PROPERTY_VALUE_PARSER_FUNCTION,
  3886. "",
  3887. VARIANT_HK,
  3888. kTextAlignLastKTable,
  3889. offsetof(nsStyleText, mTextAlignLast),
  3890. eStyleAnimType_Discrete)
  3891. CSS_PROP_SVG(
  3892. text-anchor,
  3893. text_anchor,
  3894. TextAnchor,
  3895. CSS_PROPERTY_PARSE_VALUE,
  3896. "",
  3897. VARIANT_HK,
  3898. kTextAnchorKTable,
  3899. CSS_PROP_NO_OFFSET,
  3900. eStyleAnimType_Discrete)
  3901. CSS_PROP_TEXT(
  3902. text-combine-upright,
  3903. text_combine_upright,
  3904. TextCombineUpright,
  3905. CSS_PROPERTY_PARSE_VALUE |
  3906. CSS_PROPERTY_VALUE_PARSER_FUNCTION,
  3907. "layout.css.text-combine-upright.enabled",
  3908. 0,
  3909. kTextCombineUprightKTable,
  3910. CSS_PROP_NO_OFFSET,
  3911. eStyleAnimType_Discrete)
  3912. CSS_PROP_SHORTHAND(
  3913. text-decoration,
  3914. text_decoration,
  3915. TextDecoration,
  3916. CSS_PROPERTY_PARSE_FUNCTION,
  3917. "")
  3918. CSS_PROP_TEXTRESET(
  3919. text-decoration-color,
  3920. text_decoration_color,
  3921. TextDecorationColor,
  3922. CSS_PROPERTY_PARSE_VALUE |
  3923. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
  3924. CSS_PROPERTY_APPLIES_TO_PLACEHOLDER |
  3925. CSS_PROPERTY_IGNORED_WHEN_COLORS_DISABLED,
  3926. "",
  3927. VARIANT_HC,
  3928. nullptr,
  3929. offsetof(nsStyleTextReset, mTextDecorationColor),
  3930. eStyleAnimType_ComplexColor)
  3931. CSS_PROP_TEXTRESET(
  3932. text-decoration-line,
  3933. text_decoration_line,
  3934. TextDecorationLine,
  3935. CSS_PROPERTY_PARSE_VALUE |
  3936. CSS_PROPERTY_VALUE_PARSER_FUNCTION |
  3937. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
  3938. CSS_PROPERTY_APPLIES_TO_PLACEHOLDER,
  3939. "",
  3940. 0,
  3941. kTextDecorationLineKTable,
  3942. CSS_PROP_NO_OFFSET,
  3943. eStyleAnimType_Discrete)
  3944. CSS_PROP_TEXTRESET(
  3945. text-decoration-style,
  3946. text_decoration_style,
  3947. TextDecorationStyle,
  3948. CSS_PROPERTY_PARSE_VALUE |
  3949. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
  3950. CSS_PROPERTY_APPLIES_TO_PLACEHOLDER,
  3951. "",
  3952. VARIANT_HK,
  3953. kTextDecorationStyleKTable,
  3954. CSS_PROP_NO_OFFSET,
  3955. eStyleAnimType_Discrete)
  3956. CSS_PROP_SHORTHAND(
  3957. text-emphasis,
  3958. text_emphasis,
  3959. TextEmphasis,
  3960. CSS_PROPERTY_PARSE_FUNCTION,
  3961. "")
  3962. CSS_PROP_TEXT(
  3963. text-emphasis-color,
  3964. text_emphasis_color,
  3965. TextEmphasisColor,
  3966. CSS_PROPERTY_PARSE_VALUE |
  3967. CSS_PROPERTY_IGNORED_WHEN_COLORS_DISABLED,
  3968. "",
  3969. VARIANT_HC,
  3970. nullptr,
  3971. offsetof(nsStyleText, mTextEmphasisColor),
  3972. eStyleAnimType_ComplexColor)
  3973. CSS_PROP_TEXT(
  3974. text-emphasis-position,
  3975. text_emphasis_position,
  3976. TextEmphasisPosition,
  3977. CSS_PROPERTY_PARSE_VALUE |
  3978. CSS_PROPERTY_VALUE_PARSER_FUNCTION,
  3979. "",
  3980. 0,
  3981. kTextEmphasisPositionKTable,
  3982. CSS_PROP_NO_OFFSET,
  3983. eStyleAnimType_Discrete)
  3984. CSS_PROP_TEXT(
  3985. text-emphasis-style,
  3986. text_emphasis_style,
  3987. TextEmphasisStyle,
  3988. CSS_PROPERTY_PARSE_VALUE |
  3989. CSS_PROPERTY_VALUE_PARSER_FUNCTION,
  3990. "",
  3991. 0,
  3992. nullptr,
  3993. CSS_PROP_NO_OFFSET,
  3994. eStyleAnimType_Discrete)
  3995. CSS_PROP_TEXT(
  3996. -webkit-text-fill-color,
  3997. _webkit_text_fill_color,
  3998. WebkitTextFillColor,
  3999. CSS_PROPERTY_PARSE_VALUE |
  4000. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
  4001. CSS_PROPERTY_APPLIES_TO_PLACEHOLDER |
  4002. CSS_PROPERTY_IGNORED_WHEN_COLORS_DISABLED,
  4003. "layout.css.prefixes.webkit",
  4004. VARIANT_HC,
  4005. nullptr,
  4006. offsetof(nsStyleText, mWebkitTextFillColor),
  4007. eStyleAnimType_ComplexColor)
  4008. CSS_PROP_TEXT(
  4009. text-indent,
  4010. text_indent,
  4011. TextIndent,
  4012. CSS_PROPERTY_PARSE_VALUE |
  4013. CSS_PROPERTY_STORES_CALC |
  4014. CSS_PROPERTY_UNITLESS_LENGTH_QUIRK,
  4015. "",
  4016. VARIANT_HLP | VARIANT_CALC,
  4017. nullptr,
  4018. offsetof(nsStyleText, mTextIndent),
  4019. eStyleAnimType_Coord)
  4020. CSS_PROP_TEXT(
  4021. text-justify,
  4022. text_justify,
  4023. TextJustify,
  4024. CSS_PROPERTY_PARSE_VALUE |
  4025. CSS_PROPERTY_APPLIES_TO_PLACEHOLDER,
  4026. "layout.css.text-justify.enabled",
  4027. VARIANT_HK,
  4028. kTextJustifyKTable,
  4029. CSS_PROP_NO_OFFSET,
  4030. eStyleAnimType_Discrete)
  4031. CSS_PROP_VISIBILITY(
  4032. text-orientation,
  4033. text_orientation,
  4034. TextOrientation,
  4035. CSS_PROPERTY_PARSE_VALUE,
  4036. "",
  4037. VARIANT_HK,
  4038. kTextOrientationKTable,
  4039. CSS_PROP_NO_OFFSET,
  4040. eStyleAnimType_Discrete)
  4041. CSS_PROP_TEXTRESET(
  4042. text-overflow,
  4043. text_overflow,
  4044. TextOverflow,
  4045. CSS_PROPERTY_PARSE_VALUE |
  4046. CSS_PROPERTY_VALUE_PARSER_FUNCTION |
  4047. CSS_PROPERTY_APPLIES_TO_PLACEHOLDER,
  4048. "",
  4049. 0,
  4050. kTextOverflowKTable,
  4051. offsetof(nsStyleTextReset, mTextOverflow),
  4052. eStyleAnimType_Discrete)
  4053. CSS_PROP_TEXT(
  4054. text-rendering,
  4055. text_rendering,
  4056. TextRendering,
  4057. CSS_PROPERTY_PARSE_VALUE,
  4058. "",
  4059. VARIANT_HK,
  4060. kTextRenderingKTable,
  4061. CSS_PROP_NO_OFFSET,
  4062. eStyleAnimType_Discrete)
  4063. CSS_PROP_TEXT(
  4064. text-shadow,
  4065. text_shadow,
  4066. TextShadow,
  4067. CSS_PROPERTY_PARSE_FUNCTION |
  4068. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
  4069. CSS_PROPERTY_APPLIES_TO_PLACEHOLDER |
  4070. CSS_PROPERTY_VALUE_LIST_USES_COMMAS |
  4071. CSS_PROPERTY_IGNORED_WHEN_COLORS_DISABLED,
  4072. // NOTE: some components must be nonnegative
  4073. "",
  4074. 0,
  4075. nullptr,
  4076. offsetof(nsStyleText, mTextShadow),
  4077. eStyleAnimType_Shadow)
  4078. CSS_PROP_TEXT(
  4079. -moz-text-size-adjust,
  4080. text_size_adjust,
  4081. CSS_PROP_DOMPROP_PREFIXED(TextSizeAdjust),
  4082. CSS_PROPERTY_PARSE_VALUE,
  4083. "",
  4084. VARIANT_AUTO | VARIANT_NONE | VARIANT_INHERIT,
  4085. nullptr,
  4086. CSS_PROP_NO_OFFSET,
  4087. eStyleAnimType_Discrete)
  4088. CSS_PROP_SHORTHAND(
  4089. -webkit-text-stroke,
  4090. _webkit_text_stroke,
  4091. WebkitTextStroke,
  4092. CSS_PROPERTY_PARSE_FUNCTION,
  4093. "layout.css.prefixes.webkit")
  4094. CSS_PROP_TEXT(
  4095. -webkit-text-stroke-color,
  4096. _webkit_text_stroke_color,
  4097. WebkitTextStrokeColor,
  4098. CSS_PROPERTY_PARSE_VALUE |
  4099. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
  4100. CSS_PROPERTY_APPLIES_TO_PLACEHOLDER |
  4101. CSS_PROPERTY_IGNORED_WHEN_COLORS_DISABLED,
  4102. "layout.css.prefixes.webkit",
  4103. VARIANT_HC,
  4104. nullptr,
  4105. offsetof(nsStyleText, mWebkitTextStrokeColor),
  4106. eStyleAnimType_ComplexColor)
  4107. CSS_PROP_TEXT(
  4108. -webkit-text-stroke-width,
  4109. _webkit_text_stroke_width,
  4110. WebkitTextStrokeWidth,
  4111. CSS_PROPERTY_PARSE_VALUE |
  4112. CSS_PROPERTY_VALUE_NONNEGATIVE |
  4113. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
  4114. CSS_PROPERTY_APPLIES_TO_PLACEHOLDER,
  4115. "layout.css.prefixes.webkit",
  4116. VARIANT_HKL | VARIANT_CALC,
  4117. kBorderWidthKTable,
  4118. CSS_PROP_NO_OFFSET,
  4119. eStyleAnimType_Discrete)
  4120. CSS_PROP_TEXT(
  4121. text-transform,
  4122. text_transform,
  4123. TextTransform,
  4124. CSS_PROPERTY_PARSE_VALUE |
  4125. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
  4126. CSS_PROPERTY_APPLIES_TO_PLACEHOLDER,
  4127. "",
  4128. VARIANT_HK,
  4129. kTextTransformKTable,
  4130. CSS_PROP_NO_OFFSET,
  4131. eStyleAnimType_Discrete)
  4132. #ifndef CSS_PROP_LIST_ONLY_COMPONENTS_OF_ALL_SHORTHAND
  4133. #ifndef CSS_PROP_LIST_EXCLUDE_INTERNAL
  4134. CSS_PROP_FONT(
  4135. -x-text-zoom,
  4136. _x_text_zoom,
  4137. TextZoom,
  4138. CSS_PROPERTY_INTERNAL |
  4139. CSS_PROPERTY_PARSE_INACCESSIBLE,
  4140. "",
  4141. 0,
  4142. nullptr,
  4143. CSS_PROP_NO_OFFSET,
  4144. eStyleAnimType_None)
  4145. #endif // CSS_PROP_LIST_EXCLUDE_INTERNAL
  4146. #endif // CSS_PROP_LIST_ONLY_COMPONENTS_OF_ALL_SHORTHAND
  4147. CSS_PROP_POSITION(
  4148. top,
  4149. top,
  4150. Top,
  4151. CSS_PROPERTY_PARSE_VALUE |
  4152. CSS_PROPERTY_STORES_CALC |
  4153. CSS_PROPERTY_UNITLESS_LENGTH_QUIRK |
  4154. CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH,
  4155. "",
  4156. VARIANT_AHLP | VARIANT_CALC,
  4157. nullptr,
  4158. offsetof(nsStylePosition, mOffset),
  4159. eStyleAnimType_Sides_Top)
  4160. #ifndef CSS_PROP_LIST_EXCLUDE_INTERNAL
  4161. CSS_PROP_DISPLAY(
  4162. -moz-top-layer,
  4163. _moz_top_layer,
  4164. CSS_PROP_DOMPROP_PREFIXED(TopLayer),
  4165. CSS_PROPERTY_INTERNAL |
  4166. CSS_PROPERTY_PARSE_VALUE |
  4167. CSS_PROPERTY_ENABLED_IN_UA_SHEETS,
  4168. "",
  4169. VARIANT_HK,
  4170. kTopLayerKTable,
  4171. CSS_PROP_NO_OFFSET,
  4172. eStyleAnimType_None)
  4173. #endif // CSS_PROP_LIST_EXCLUDE_INTERNAL
  4174. CSS_PROP_DISPLAY(
  4175. touch-action,
  4176. touch_action,
  4177. TouchAction,
  4178. CSS_PROPERTY_PARSE_VALUE |
  4179. CSS_PROPERTY_VALUE_PARSER_FUNCTION,
  4180. "layout.css.touch_action.enabled",
  4181. VARIANT_HK,
  4182. kTouchActionKTable,
  4183. CSS_PROP_NO_OFFSET,
  4184. eStyleAnimType_Discrete)
  4185. CSS_PROP_DISPLAY(
  4186. transform,
  4187. transform,
  4188. Transform,
  4189. CSS_PROPERTY_PARSE_FUNCTION |
  4190. CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH |
  4191. CSS_PROPERTY_CREATES_STACKING_CONTEXT |
  4192. CSS_PROPERTY_CAN_ANIMATE_ON_COMPOSITOR |
  4193. CSS_PROPERTY_FIXPOS_CB,
  4194. "",
  4195. 0,
  4196. nullptr,
  4197. offsetof(nsStyleDisplay, mSpecifiedTransform),
  4198. eStyleAnimType_Custom)
  4199. // This shorthand is essentially an alias, but it requires different
  4200. // parsing rules, and it therefore implemented as a shorthand.
  4201. CSS_PROP_SHORTHAND(
  4202. -moz-transform,
  4203. _moz_transform,
  4204. MozTransform,
  4205. CSS_PROPERTY_PARSE_FUNCTION |
  4206. CSS_PROPERTY_IS_ALIAS,
  4207. "layout.css.prefixes.transforms")
  4208. CSS_PROP_DISPLAY(
  4209. transform-box,
  4210. transform_box,
  4211. TransformBox,
  4212. CSS_PROPERTY_PARSE_VALUE,
  4213. "svg.transform-box.enabled",
  4214. VARIANT_HK,
  4215. kTransformBoxKTable,
  4216. CSS_PROP_NO_OFFSET,
  4217. eStyleAnimType_Discrete)
  4218. CSS_PROP_DISPLAY(
  4219. transform-origin,
  4220. transform_origin,
  4221. TransformOrigin,
  4222. CSS_PROPERTY_PARSE_FUNCTION |
  4223. CSS_PROPERTY_STORES_CALC |
  4224. CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH,
  4225. "",
  4226. 0,
  4227. kImageLayerPositionKTable,
  4228. CSS_PROP_NO_OFFSET,
  4229. eStyleAnimType_Custom)
  4230. CSS_PROP_DISPLAY(
  4231. transform-style,
  4232. transform_style,
  4233. TransformStyle,
  4234. CSS_PROPERTY_PARSE_VALUE |
  4235. CSS_PROPERTY_CREATES_STACKING_CONTEXT |
  4236. CSS_PROPERTY_FIXPOS_CB,
  4237. "",
  4238. VARIANT_HK,
  4239. kTransformStyleKTable,
  4240. CSS_PROP_NO_OFFSET,
  4241. eStyleAnimType_Discrete)
  4242. CSS_PROP_SHORTHAND(
  4243. transition,
  4244. transition,
  4245. Transition,
  4246. CSS_PROPERTY_PARSE_FUNCTION,
  4247. "")
  4248. CSS_PROP_DISPLAY(
  4249. transition-delay,
  4250. transition_delay,
  4251. TransitionDelay,
  4252. CSS_PROPERTY_PARSE_VALUE_LIST |
  4253. CSS_PROPERTY_VALUE_LIST_USES_COMMAS,
  4254. "",
  4255. VARIANT_TIME, // used by list parsing
  4256. nullptr,
  4257. CSS_PROP_NO_OFFSET,
  4258. eStyleAnimType_None)
  4259. CSS_PROP_DISPLAY(
  4260. transition-duration,
  4261. transition_duration,
  4262. TransitionDuration,
  4263. CSS_PROPERTY_PARSE_VALUE_LIST |
  4264. CSS_PROPERTY_VALUE_LIST_USES_COMMAS,
  4265. "",
  4266. VARIANT_TIME | VARIANT_NONNEGATIVE_DIMENSION, // used by list parsing
  4267. nullptr,
  4268. CSS_PROP_NO_OFFSET,
  4269. eStyleAnimType_None)
  4270. CSS_PROP_DISPLAY(
  4271. transition-property,
  4272. transition_property,
  4273. TransitionProperty,
  4274. CSS_PROPERTY_PARSE_FUNCTION |
  4275. CSS_PROPERTY_VALUE_LIST_USES_COMMAS,
  4276. "",
  4277. VARIANT_IDENTIFIER | VARIANT_NONE | VARIANT_ALL, // used only in shorthand
  4278. nullptr,
  4279. CSS_PROP_NO_OFFSET,
  4280. eStyleAnimType_None)
  4281. CSS_PROP_DISPLAY(
  4282. transition-timing-function,
  4283. transition_timing_function,
  4284. TransitionTimingFunction,
  4285. CSS_PROPERTY_PARSE_VALUE_LIST |
  4286. CSS_PROPERTY_VALUE_LIST_USES_COMMAS,
  4287. "",
  4288. VARIANT_KEYWORD | VARIANT_TIMING_FUNCTION, // used by list parsing
  4289. kTransitionTimingFunctionKTable,
  4290. CSS_PROP_NO_OFFSET,
  4291. eStyleAnimType_None)
  4292. #ifndef CSS_PROP_LIST_ONLY_COMPONENTS_OF_ALL_SHORTHAND
  4293. CSS_PROP_TEXTRESET(
  4294. unicode-bidi,
  4295. unicode_bidi,
  4296. UnicodeBidi,
  4297. CSS_PROPERTY_PARSE_VALUE,
  4298. "",
  4299. VARIANT_HK,
  4300. kUnicodeBidiKTable,
  4301. CSS_PROP_NO_OFFSET,
  4302. eStyleAnimType_Discrete)
  4303. #endif // CSS_PROP_LIST_ONLY_COMPONENTS_OF_ALL_SHORTHAND
  4304. CSS_PROP_USERINTERFACE(
  4305. -moz-user-focus,
  4306. user_focus,
  4307. CSS_PROP_DOMPROP_PREFIXED(UserFocus),
  4308. CSS_PROPERTY_PARSE_VALUE,
  4309. "",
  4310. VARIANT_HK,
  4311. kUserFocusKTable,
  4312. CSS_PROP_NO_OFFSET,
  4313. eStyleAnimType_Discrete) // XXX bug 3935
  4314. CSS_PROP_USERINTERFACE(
  4315. -moz-user-input,
  4316. user_input,
  4317. CSS_PROP_DOMPROP_PREFIXED(UserInput),
  4318. CSS_PROPERTY_PARSE_VALUE,
  4319. "",
  4320. VARIANT_HK,
  4321. kUserInputKTable,
  4322. CSS_PROP_NO_OFFSET,
  4323. eStyleAnimType_Discrete) // XXX ??? // XXX bug 3935
  4324. CSS_PROP_USERINTERFACE(
  4325. -moz-user-modify,
  4326. user_modify,
  4327. CSS_PROP_DOMPROP_PREFIXED(UserModify),
  4328. CSS_PROPERTY_PARSE_VALUE,
  4329. "",
  4330. VARIANT_HK,
  4331. kUserModifyKTable,
  4332. CSS_PROP_NO_OFFSET,
  4333. eStyleAnimType_Discrete) // XXX bug 3935
  4334. CSS_PROP_UIRESET(
  4335. -moz-user-select,
  4336. user_select,
  4337. CSS_PROP_DOMPROP_PREFIXED(UserSelect),
  4338. CSS_PROPERTY_PARSE_VALUE,
  4339. "",
  4340. VARIANT_HK,
  4341. kUserSelectKTable,
  4342. CSS_PROP_NO_OFFSET,
  4343. eStyleAnimType_Discrete) // XXX bug 3935
  4344. CSS_PROP_SVGRESET(
  4345. vector-effect,
  4346. vector_effect,
  4347. VectorEffect,
  4348. CSS_PROPERTY_PARSE_VALUE,
  4349. "",
  4350. VARIANT_HK,
  4351. kVectorEffectKTable,
  4352. CSS_PROP_NO_OFFSET,
  4353. eStyleAnimType_Discrete)
  4354. // NOTE: vertical-align is only supposed to apply to :first-letter when
  4355. // 'float' is 'none', but we don't worry about that since it has no
  4356. // effect otherwise
  4357. CSS_PROP_DISPLAY(
  4358. vertical-align,
  4359. vertical_align,
  4360. VerticalAlign,
  4361. CSS_PROPERTY_PARSE_VALUE |
  4362. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
  4363. CSS_PROPERTY_APPLIES_TO_PLACEHOLDER |
  4364. CSS_PROPERTY_STORES_CALC |
  4365. CSS_PROPERTY_UNITLESS_LENGTH_QUIRK,
  4366. "",
  4367. VARIANT_HKLP | VARIANT_CALC,
  4368. kVerticalAlignKTable,
  4369. offsetof(nsStyleDisplay, mVerticalAlign),
  4370. eStyleAnimType_Coord)
  4371. CSS_PROP_VISIBILITY(
  4372. visibility,
  4373. visibility,
  4374. Visibility,
  4375. CSS_PROPERTY_PARSE_VALUE,
  4376. "",
  4377. VARIANT_HK,
  4378. kVisibilityKTable,
  4379. CSS_PROP_NO_OFFSET,
  4380. eStyleAnimType_Discrete) // reflow for collapse
  4381. CSS_PROP_TEXT(
  4382. white-space,
  4383. white_space,
  4384. WhiteSpace,
  4385. CSS_PROPERTY_PARSE_VALUE |
  4386. // This is required by the UA stylesheet and can't be overridden.
  4387. CSS_PROPERTY_APPLIES_TO_PLACEHOLDER,
  4388. "",
  4389. VARIANT_HK,
  4390. kWhitespaceKTable,
  4391. CSS_PROP_NO_OFFSET,
  4392. eStyleAnimType_Discrete)
  4393. CSS_PROP_POSITION(
  4394. width,
  4395. width,
  4396. Width,
  4397. CSS_PROPERTY_PARSE_VALUE |
  4398. CSS_PROPERTY_VALUE_NONNEGATIVE |
  4399. CSS_PROPERTY_STORES_CALC |
  4400. CSS_PROPERTY_UNITLESS_LENGTH_QUIRK |
  4401. CSS_PROPERTY_GETCS_NEEDS_LAYOUT_FLUSH,
  4402. "",
  4403. VARIANT_AHKLP | VARIANT_CALC,
  4404. kWidthKTable,
  4405. offsetof(nsStylePosition, mWidth),
  4406. eStyleAnimType_Coord)
  4407. CSS_PROP_DISPLAY(
  4408. will-change,
  4409. will_change,
  4410. WillChange,
  4411. CSS_PROPERTY_PARSE_FUNCTION |
  4412. CSS_PROPERTY_VALUE_LIST_USES_COMMAS,
  4413. "",
  4414. 0,
  4415. nullptr,
  4416. CSS_PROP_NO_OFFSET,
  4417. eStyleAnimType_Discrete)
  4418. CSS_PROP_UIRESET(
  4419. -moz-window-dragging,
  4420. _moz_window_dragging,
  4421. CSS_PROP_DOMPROP_PREFIXED(WindowDragging),
  4422. CSS_PROPERTY_PARSE_VALUE,
  4423. "",
  4424. VARIANT_HK,
  4425. kWindowDraggingKTable,
  4426. CSS_PROP_NO_OFFSET,
  4427. eStyleAnimType_Discrete)
  4428. #ifndef CSS_PROP_LIST_EXCLUDE_INTERNAL
  4429. CSS_PROP_UIRESET(
  4430. -moz-window-shadow,
  4431. _moz_window_shadow,
  4432. CSS_PROP_DOMPROP_PREFIXED(WindowShadow),
  4433. CSS_PROPERTY_INTERNAL |
  4434. CSS_PROPERTY_PARSE_VALUE |
  4435. CSS_PROPERTY_ENABLED_IN_UA_SHEETS_AND_CHROME,
  4436. "",
  4437. VARIANT_HK,
  4438. kWindowShadowKTable,
  4439. CSS_PROP_NO_OFFSET,
  4440. eStyleAnimType_None)
  4441. #endif // CSS_PROP_LIST_EXCLUDE_INTERNAL
  4442. CSS_PROP_TEXT(
  4443. word-break,
  4444. word_break,
  4445. WordBreak,
  4446. CSS_PROPERTY_PARSE_VALUE,
  4447. "",
  4448. VARIANT_HK,
  4449. kWordBreakKTable,
  4450. CSS_PROP_NO_OFFSET,
  4451. eStyleAnimType_Discrete)
  4452. CSS_PROP_TEXT(
  4453. word-spacing,
  4454. word_spacing,
  4455. WordSpacing,
  4456. CSS_PROPERTY_PARSE_VALUE |
  4457. CSS_PROPERTY_APPLIES_TO_FIRST_LETTER_AND_FIRST_LINE |
  4458. CSS_PROPERTY_APPLIES_TO_PLACEHOLDER |
  4459. CSS_PROPERTY_UNITLESS_LENGTH_QUIRK |
  4460. CSS_PROPERTY_STORES_CALC,
  4461. "",
  4462. VARIANT_HLP | VARIANT_NORMAL | VARIANT_CALC,
  4463. nullptr,
  4464. offsetof(nsStyleText, mWordSpacing),
  4465. eStyleAnimType_Coord)
  4466. CSS_PROP_TEXT(
  4467. overflow-wrap,
  4468. overflow_wrap,
  4469. OverflowWrap,
  4470. CSS_PROPERTY_PARSE_VALUE,
  4471. "",
  4472. VARIANT_HK,
  4473. kOverflowWrapKTable,
  4474. CSS_PROP_NO_OFFSET,
  4475. eStyleAnimType_Discrete)
  4476. CSS_PROP_VISIBILITY(
  4477. writing-mode,
  4478. writing_mode,
  4479. WritingMode,
  4480. CSS_PROPERTY_PARSE_VALUE,
  4481. "",
  4482. VARIANT_HK,
  4483. kWritingModeKTable,
  4484. CSS_PROP_NO_OFFSET,
  4485. eStyleAnimType_Discrete)
  4486. CSS_PROP_POSITION(
  4487. z-index,
  4488. z_index,
  4489. ZIndex,
  4490. CSS_PROPERTY_PARSE_VALUE |
  4491. CSS_PROPERTY_CREATES_STACKING_CONTEXT,
  4492. "",
  4493. VARIANT_AHI,
  4494. nullptr,
  4495. offsetof(nsStylePosition, mZIndex),
  4496. eStyleAnimType_Coord)
  4497. #ifdef USED_CSS_PROP
  4498. #undef USED_CSS_PROP
  4499. #undef CSS_PROP_FONT
  4500. #undef CSS_PROP_COLOR
  4501. #undef CSS_PROP_BACKGROUND
  4502. #undef CSS_PROP_LIST
  4503. #undef CSS_PROP_POSITION
  4504. #undef CSS_PROP_TEXT
  4505. #undef CSS_PROP_TEXTRESET
  4506. #undef CSS_PROP_DISPLAY
  4507. #undef CSS_PROP_VISIBILITY
  4508. #undef CSS_PROP_CONTENT
  4509. #undef CSS_PROP_USERINTERFACE
  4510. #undef CSS_PROP_UIRESET
  4511. #undef CSS_PROP_TABLE
  4512. #undef CSS_PROP_TABLEBORDER
  4513. #undef CSS_PROP_MARGIN
  4514. #undef CSS_PROP_PADDING
  4515. #undef CSS_PROP_BORDER
  4516. #undef CSS_PROP_OUTLINE
  4517. #undef CSS_PROP_XUL
  4518. #undef CSS_PROP_COLUMN
  4519. #undef CSS_PROP_SVG
  4520. #undef CSS_PROP_SVGRESET
  4521. #undef CSS_PROP_VARIABLES
  4522. #undef CSS_PROP_EFFECTS
  4523. #else /* !defined(USED_CSS_PROP) */
  4524. #ifdef DEFINED_CSS_PROP_FONT
  4525. #undef CSS_PROP_FONT
  4526. #undef DEFINED_CSS_PROP_FONT
  4527. #endif
  4528. #ifdef DEFINED_CSS_PROP_COLOR
  4529. #undef CSS_PROP_COLOR
  4530. #undef DEFINED_CSS_PROP_COLOR
  4531. #endif
  4532. #ifdef DEFINED_CSS_PROP_BACKGROUND
  4533. #undef CSS_PROP_BACKGROUND
  4534. #undef DEFINED_CSS_PROP_BACKGROUND
  4535. #endif
  4536. #ifdef DEFINED_CSS_PROP_LIST
  4537. #undef CSS_PROP_LIST
  4538. #undef DEFINED_CSS_PROP_LIST
  4539. #endif
  4540. #ifdef DEFINED_CSS_PROP_POSITION
  4541. #undef CSS_PROP_POSITION
  4542. #undef DEFINED_CSS_PROP_POSITION
  4543. #endif
  4544. #ifdef DEFINED_CSS_PROP_TEXT
  4545. #undef CSS_PROP_TEXT
  4546. #undef DEFINED_CSS_PROP_TETEXTRESETT
  4547. #endif
  4548. #ifdef DEFINED_CSS_PROP_TEXTRESET
  4549. #undef CSS_PROP_TEXTRESET
  4550. #undef DEFINED_CSS_PROP_TEDISPLAYTRESET
  4551. #endif
  4552. #ifdef DEFINED_CSS_PROP_DISPLAY
  4553. #undef CSS_PROP_DISPLAY
  4554. #undef DEFINED_CSS_PROP_DISPLAY
  4555. #endif
  4556. #ifdef DEFINED_CSS_PROP_VISIBILITY
  4557. #undef CSS_PROP_VISIBILITY
  4558. #undef DEFINED_CSS_PROP_VISIBILITY
  4559. #endif
  4560. #ifdef DEFINED_CSS_PROP_CONTENT
  4561. #undef CSS_PROP_CONTENT
  4562. #undef DEFINED_CSS_PROP_CONTENT
  4563. #endif
  4564. #ifdef DEFINED_CSS_PROP_USERINTERFACE
  4565. #undef CSS_PROP_USERINTERFACE
  4566. #undef DEFINED_CSS_PROP_USERINTERFACE
  4567. #endif
  4568. #ifdef DEFINED_CSS_PROP_UIRESET
  4569. #undef CSS_PROP_UIRESET
  4570. #undef DEFINED_CSS_PROP_UIRESET
  4571. #endif
  4572. #ifdef DEFINED_CSS_PROP_TABLE
  4573. #undef CSS_PROP_TABLE
  4574. #undef DEFINED_CSS_PROP_TABLE
  4575. #endif
  4576. #ifdef DEFINED_CSS_PROP_TABLEBORDER
  4577. #undef CSS_PROP_TABLEBORDER
  4578. #undef DEFINED_CSS_PROP_TABLEBORDER
  4579. #endif
  4580. #ifdef DEFINED_CSS_PROP_MARGIN
  4581. #undef CSS_PROP_MARGIN
  4582. #undef DEFINED_CSS_PROP_MARGIN
  4583. #endif
  4584. #ifdef DEFINED_CSS_PROP_PADDING
  4585. #undef CSS_PROP_PADDING
  4586. #undef DEFINED_CSS_PROP_PADDING
  4587. #endif
  4588. #ifdef DEFINED_CSS_PROP_BORDER
  4589. #undef CSS_PROP_BORDER
  4590. #undef DEFINED_CSS_PROP_BORDER
  4591. #endif
  4592. #ifdef DEFINED_CSS_PROP_OUTLINE
  4593. #undef CSS_PROP_OUTLINE
  4594. #undef DEFINED_CSS_PROP_OUTLINE
  4595. #endif
  4596. #ifdef DEFINED_CSS_PROP_XUL
  4597. #undef CSS_PROP_XUL
  4598. #undef DEFINED_CSS_PROP_XUL
  4599. #endif
  4600. #ifdef DEFINED_CSS_PROP_COLUMN
  4601. #undef CSS_PROP_COLUMN
  4602. #undef DEFINED_CSS_PROP_COLUMN
  4603. #endif
  4604. #ifdef DEFINED_CSS_PROP_SVG
  4605. #undef CSS_PROP_SVG
  4606. #undef DEFINED_CSS_PROP_SVG
  4607. #endif
  4608. #ifdef DEFINED_CSS_PROP_SVGRESET
  4609. #undef CSS_PROP_SVGRESET
  4610. #undef DEFINED_CSS_PROP_SVGRESET
  4611. #endif
  4612. #ifdef DEFINED_CSS_PROP_VARIABLES
  4613. #undef CSS_PROP_VARIABLES
  4614. #undef DEFINED_CSS_PROP_VARIABLES
  4615. #endif
  4616. #ifdef DEFINED_CSS_PROP_EFFECTS
  4617. #undef CSS_PROP_EFFECTS
  4618. #undef DEFINED_CSS_PROP_EFFECTS
  4619. #endif
  4620. #endif /* !defined(USED_CSS_PROP) */
  4621. #ifdef DEFINED_CSS_PROP_SHORTHAND
  4622. #undef CSS_PROP_SHORTHAND
  4623. #undef DEFINED_CSS_PROP_SHORTHAND
  4624. #endif
  4625. #ifdef DEFINED_CSS_PROP_LOGICAL
  4626. #undef CSS_PROP_LOGICAL
  4627. #undef DEFINED_CSS_PROP_LOGICAL
  4628. #endif
  4629. #undef CSS_PROP_DOMPROP_PREFIXED