about_flags.cc 458 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856785778587859786078617862786378647865786678677868786978707871787278737874787578767877787878797880788178827883788478857886788778887889789078917892789378947895789678977898789979007901790279037904790579067907790879097910791179127913791479157916791779187919792079217922792379247925792679277928792979307931793279337934793579367937793879397940794179427943794479457946794779487949795079517952795379547955795679577958795979607961796279637964796579667967796879697970797179727973797479757976797779787979798079817982798379847985798679877988798979907991799279937994799579967997799879998000800180028003800480058006800780088009801080118012801380148015801680178018801980208021802280238024802580268027802880298030803180328033803480358036803780388039804080418042804380448045804680478048804980508051805280538054805580568057805880598060806180628063806480658066806780688069807080718072807380748075807680778078807980808081808280838084808580868087808880898090809180928093809480958096809780988099810081018102810381048105810681078108810981108111811281138114811581168117811881198120812181228123812481258126812781288129813081318132813381348135813681378138813981408141814281438144814581468147814881498150815181528153815481558156815781588159816081618162816381648165816681678168816981708171817281738174817581768177817881798180818181828183818481858186818781888189819081918192819381948195819681978198819982008201820282038204820582068207820882098210821182128213821482158216821782188219822082218222822382248225822682278228822982308231823282338234823582368237823882398240824182428243824482458246824782488249825082518252825382548255825682578258825982608261826282638264826582668267826882698270827182728273827482758276827782788279828082818282828382848285828682878288828982908291829282938294829582968297829882998300830183028303830483058306830783088309831083118312831383148315831683178318831983208321832283238324832583268327832883298330833183328333833483358336833783388339834083418342834383448345834683478348834983508351835283538354835583568357835883598360836183628363836483658366836783688369837083718372837383748375837683778378837983808381838283838384838583868387838883898390839183928393839483958396839783988399840084018402840384048405840684078408840984108411841284138414841584168417841884198420842184228423842484258426842784288429843084318432843384348435843684378438843984408441844284438444844584468447844884498450845184528453845484558456845784588459846084618462846384648465846684678468846984708471847284738474847584768477847884798480848184828483848484858486848784888489849084918492849384948495849684978498849985008501850285038504850585068507850885098510851185128513851485158516851785188519852085218522852385248525852685278528852985308531853285338534853585368537853885398540854185428543854485458546854785488549855085518552855385548555855685578558855985608561856285638564856585668567856885698570857185728573857485758576857785788579858085818582858385848585858685878588858985908591859285938594859585968597859885998600860186028603860486058606860786088609861086118612861386148615861686178618861986208621862286238624862586268627862886298630863186328633863486358636863786388639864086418642864386448645864686478648864986508651865286538654865586568657865886598660866186628663866486658666866786688669867086718672867386748675867686778678867986808681868286838684868586868687868886898690869186928693869486958696869786988699870087018702870387048705870687078708870987108711871287138714871587168717871887198720872187228723872487258726872787288729873087318732873387348735873687378738873987408741874287438744874587468747874887498750875187528753875487558756875787588759876087618762876387648765876687678768876987708771877287738774877587768777877887798780878187828783878487858786878787888789879087918792879387948795879687978798879988008801880288038804880588068807880888098810881188128813881488158816881788188819882088218822882388248825882688278828882988308831883288338834883588368837883888398840884188428843884488458846884788488849885088518852885388548855885688578858885988608861886288638864886588668867886888698870887188728873887488758876887788788879888088818882888388848885888688878888888988908891889288938894889588968897889888998900890189028903890489058906890789088909891089118912891389148915891689178918891989208921892289238924892589268927892889298930893189328933893489358936893789388939894089418942894389448945894689478948894989508951895289538954895589568957895889598960896189628963896489658966896789688969897089718972897389748975897689778978897989808981898289838984898589868987898889898990899189928993899489958996899789988999900090019002900390049005900690079008900990109011901290139014901590169017901890199020902190229023902490259026902790289029903090319032903390349035903690379038903990409041904290439044904590469047904890499050905190529053905490559056905790589059906090619062906390649065906690679068906990709071907290739074907590769077907890799080908190829083908490859086908790889089909090919092909390949095909690979098909991009101910291039104910591069107910891099110911191129113911491159116911791189119912091219122912391249125912691279128912991309131913291339134913591369137913891399140914191429143914491459146914791489149915091519152915391549155915691579158915991609161916291639164916591669167916891699170917191729173917491759176917791789179918091819182918391849185918691879188918991909191919291939194919591969197919891999200920192029203920492059206920792089209921092119212921392149215921692179218921992209221922292239224922592269227922892299230923192329233923492359236923792389239924092419242924392449245924692479248924992509251925292539254925592569257925892599260926192629263926492659266926792689269927092719272927392749275927692779278927992809281928292839284928592869287928892899290929192929293929492959296929792989299930093019302930393049305930693079308930993109311931293139314931593169317931893199320932193229323932493259326932793289329933093319332933393349335933693379338933993409341934293439344934593469347934893499350935193529353935493559356935793589359936093619362936393649365936693679368936993709371937293739374937593769377937893799380938193829383938493859386938793889389939093919392939393949395939693979398939994009401940294039404940594069407940894099410941194129413941494159416941794189419942094219422942394249425942694279428942994309431943294339434943594369437943894399440944194429443944494459446944794489449945094519452945394549455945694579458945994609461946294639464946594669467946894699470947194729473947494759476947794789479948094819482948394849485948694879488948994909491949294939494949594969497949894999500950195029503950495059506950795089509951095119512951395149515951695179518951995209521952295239524952595269527
  1. // Copyright (c) 2012 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. // Instructions for adding new entries to this file:
  5. // https://chromium.googlesource.com/chromium/src/+/main/docs/how_to_add_your_feature_flag.md#step-2_adding-the-feature-flag-to-the-chrome_flags-ui
  6. #include "chrome/browser/about_flags.h"
  7. #include <iterator>
  8. #include <map>
  9. #include <memory>
  10. #include <set>
  11. #include <utility>
  12. #include "ash/public/cpp/app_list/app_list_features.h"
  13. #include "ash/public/cpp/app_list/app_list_switches.h"
  14. #include "ash/public/cpp/keyboard/keyboard_switches.h"
  15. #include "base/base_switches.h"
  16. #include "base/bind.h"
  17. #include "base/callback.h"
  18. #include "base/command_line.h"
  19. #include "base/feature_list.h"
  20. #include "base/i18n/base_i18n_switches.h"
  21. #include "base/memory/singleton.h"
  22. #include "base/metrics/histogram_functions.h"
  23. #include "base/no_destructor.h"
  24. #include "base/strings/string_number_conversions.h"
  25. #include "base/strings/utf_string_conversions.h"
  26. #include "base/task/task_features.h"
  27. #include "base/values.h"
  28. #include "build/branding_buildflags.h"
  29. #include "build/build_config.h"
  30. #include "cc/base/features.h"
  31. #include "cc/base/switches.h"
  32. #include "chrome/browser/ash/android_sms/android_sms_switches.h"
  33. #include "chrome/browser/browser_features.h"
  34. #include "chrome/browser/fast_checkout/fast_checkout_features.h"
  35. #include "chrome/browser/feature_guide/notifications/feature_notification_guide_service.h"
  36. #include "chrome/browser/flag_descriptions.h"
  37. #include "chrome/browser/login_detection/login_detection_util.h"
  38. #include "chrome/browser/media/router/discovery/access_code/access_code_cast_constants.h"
  39. #include "chrome/browser/navigation_predictor/navigation_predictor_features.h"
  40. #include "chrome/browser/navigation_predictor/search_engine_preconnector.h"
  41. #include "chrome/browser/net/stub_resolver_config_reader.h"
  42. #include "chrome/browser/net/system_network_context_manager.h"
  43. #include "chrome/browser/notifications/scheduler/public/features.h"
  44. #include "chrome/browser/permissions/notifications_permission_revocation_config.h"
  45. #include "chrome/browser/permissions/quiet_notification_permission_ui_config.h"
  46. #include "chrome/browser/predictors/loading_predictor_config.h"
  47. #include "chrome/browser/preloading/prefetch/prefetch_proxy/prefetch_proxy_features.h"
  48. #include "chrome/browser/preloading/prefetch/prefetch_proxy/prefetch_proxy_params.h"
  49. #include "chrome/browser/resource_coordinator/tab_manager_features.h"
  50. #include "chrome/browser/share/share_features.h"
  51. #include "chrome/browser/sharing/features.h"
  52. #include "chrome/browser/sharing_hub/sharing_hub_features.h"
  53. #include "chrome/browser/signin/signin_features.h"
  54. #include "chrome/browser/site_isolation/about_flags.h"
  55. #include "chrome/browser/ui/app_list/search/files/item_suggest_cache.h"
  56. #include "chrome/browser/ui/app_list/search/search_features.h"
  57. #include "chrome/browser/ui/browser_navigator_params.h"
  58. #include "chrome/browser/ui/ui_features.h"
  59. #include "chrome/browser/unexpire_flags.h"
  60. #include "chrome/browser/unexpire_flags_gen.h"
  61. #include "chrome/browser/video_tutorials/switches.h"
  62. #include "chrome/browser/webauthn/webauthn_switches.h"
  63. #include "chrome/common/buildflags.h"
  64. #include "chrome/common/channel_info.h"
  65. #include "chrome/common/chrome_content_client.h"
  66. #include "chrome/common/chrome_features.h"
  67. #include "chrome/common/chrome_switches.h"
  68. #include "chromeos/ui/wm/features.h"
  69. #include "components/assist_ranker/predictor_config_definitions.h"
  70. #include "components/autofill/core/browser/autofill_experiments.h"
  71. #include "components/autofill/core/common/autofill_features.h"
  72. #include "components/autofill/core/common/autofill_payments_features.h"
  73. #include "components/autofill/core/common/autofill_switches.h"
  74. #include "components/autofill/core/common/autofill_util.h"
  75. #include "components/autofill_assistant/browser/features.h"
  76. #include "components/browser_sync/browser_sync_switches.h"
  77. #include "components/browser_ui/site_settings/android/features.h"
  78. #include "components/browsing_data/core/features.h"
  79. #include "components/commerce/core/commerce_feature_list.h"
  80. #include "components/commerce/core/flag_descriptions.h"
  81. #include "components/component_updater/component_updater_command_line_config_policy.h"
  82. #include "components/component_updater/component_updater_switches.h"
  83. #include "components/content_settings/core/common/features.h"
  84. #include "components/contextual_search/core/browser/contextual_search_field_trial.h"
  85. #include "components/contextual_search/core/browser/public.h"
  86. #include "components/dom_distiller/core/dom_distiller_features.h"
  87. #include "components/dom_distiller/core/dom_distiller_switches.h"
  88. #include "components/download/public/common/download_features.h"
  89. #include "components/error_page/common/error_page_switches.h"
  90. #include "components/feature_engagement/public/feature_constants.h"
  91. #include "components/feature_engagement/public/feature_list.h"
  92. #include "components/feed/feed_feature_list.h"
  93. #include "components/flags_ui/feature_entry.h"
  94. #include "components/flags_ui/feature_entry_macros.h"
  95. #include "components/flags_ui/flags_state.h"
  96. #include "components/flags_ui/flags_storage.h"
  97. #include "components/flags_ui/flags_ui_metrics.h"
  98. #include "components/flags_ui/flags_ui_switches.h"
  99. #include "components/heavy_ad_intervention/heavy_ad_features.h"
  100. #include "components/history/core/browser/features.h"
  101. #include "components/history_clusters/core/features.h"
  102. #include "components/history_clusters/core/on_device_clustering_features.h"
  103. #include "components/invalidation/impl/invalidation_switches.h"
  104. #include "components/language/core/common/language_experiments.h"
  105. #include "components/lens/lens_features.h"
  106. #include "components/lookalikes/core/features.h"
  107. #include "components/messages/android/messages_feature.h"
  108. #include "components/mirroring/service/mirroring_features.h"
  109. #include "components/nacl/common/buildflags.h"
  110. #include "components/nacl/common/nacl_switches.h"
  111. #include "components/network_session_configurator/common/network_features.h"
  112. #include "components/network_session_configurator/common/network_switches.h"
  113. #include "components/no_state_prefetch/browser/no_state_prefetch_field_trial.h"
  114. #include "components/ntp_tiles/features.h"
  115. #include "components/offline_pages/core/offline_page_feature.h"
  116. #include "components/omnibox/browser/omnibox_field_trial.h"
  117. #include "components/omnibox/common/omnibox_features.h"
  118. #include "components/optimization_guide/core/optimization_guide_features.h"
  119. #include "components/optimization_guide/core/optimization_guide_switches.h"
  120. #include "components/page_info/core/features.h"
  121. #include "components/paint_preview/buildflags/buildflags.h"
  122. #include "components/paint_preview/features/features.h"
  123. #include "components/password_manager/core/common/password_manager_features.h"
  124. #include "components/payments/core/features.h"
  125. #include "components/permissions/features.h"
  126. #include "components/policy/core/common/features.h"
  127. #include "components/query_tiles/switches.h"
  128. #include "components/reading_list/features/reading_list_switches.h"
  129. #include "components/safe_browsing/core/common/features.h"
  130. #include "components/search/ntp_features.h"
  131. #include "components/security_interstitials/content/stateful_ssl_host_state_delegate.h"
  132. #include "components/security_state/core/security_state.h"
  133. #include "components/segmentation_platform/public/features.h"
  134. #include "components/send_tab_to_self/features.h"
  135. #include "components/services/heap_profiling/public/cpp/switches.h"
  136. #include "components/shared_highlighting/core/common/shared_highlighting_features.h"
  137. #include "components/signin/core/browser/dice_account_reconcilor_delegate.h"
  138. #include "components/signin/public/base/signin_buildflags.h"
  139. #include "components/signin/public/base/signin_switches.h"
  140. #include "components/site_isolation/features.h"
  141. #include "components/spellcheck/common/spellcheck_features.h"
  142. #include "components/spellcheck/spellcheck_buildflags.h"
  143. #include "components/sync/base/command_line_switches.h"
  144. #include "components/sync/base/features.h"
  145. #include "components/tracing/common/tracing_switches.h"
  146. #include "components/translate/core/browser/translate_manager.h"
  147. #include "components/translate/core/browser/translate_prefs.h"
  148. #include "components/translate/core/browser/translate_ranker_impl.h"
  149. #include "components/translate/core/common/translate_util.h"
  150. #include "components/ui_devtools/switches.h"
  151. #include "components/version_info/version_info.h"
  152. #include "components/viz/common/features.h"
  153. #include "components/viz/common/switches.h"
  154. #include "components/webapps/browser/features.h"
  155. #include "components/webapps/common/switches.h"
  156. #include "content/public/common/content_features.h"
  157. #include "content/public/common/content_switches.h"
  158. #include "device/base/features.h"
  159. #include "device/bluetooth/bluez/bluez_features.h"
  160. #include "device/bluetooth/chromeos_platform_features.h"
  161. #include "device/bluetooth/floss/floss_features.h"
  162. #include "device/fido/features.h"
  163. #include "device/gamepad/public/cpp/gamepad_features.h"
  164. #include "device/vr/buildflags/buildflags.h"
  165. #include "extensions/buildflags/buildflags.h"
  166. #include "gpu/config/gpu_finch_features.h"
  167. #include "gpu/config/gpu_switches.h"
  168. #include "media/audio/audio_features.h"
  169. #include "media/base/media_switches.h"
  170. #include "media/capture/capture_switches.h"
  171. #include "media/media_buildflags.h"
  172. #include "media/midi/midi_switches.h"
  173. #include "media/webrtc/webrtc_features.h"
  174. #include "mojo/core/embedder/features.h"
  175. #include "net/base/features.h"
  176. #include "net/net_buildflags.h"
  177. #include "net/nqe/effective_connection_type.h"
  178. #include "net/nqe/network_quality_estimator_params.h"
  179. #include "net/websockets/websocket_basic_handshake_stream.h"
  180. #include "pdf/buildflags.h"
  181. #include "ppapi/buildflags/buildflags.h"
  182. #include "printing/buildflags/buildflags.h"
  183. #include "sandbox/policy/features.h"
  184. #include "sandbox/policy/switches.h"
  185. #include "services/device/public/cpp/device_features.h"
  186. #include "services/device/public/cpp/serial/serial_switches.h"
  187. #include "services/media_session/public/cpp/features.h"
  188. #include "services/network/public/cpp/features.h"
  189. #include "services/network/public/cpp/network_switches.h"
  190. #include "services/tracing/public/cpp/tracing_features.h"
  191. #include "storage/browser/quota/quota_features.h"
  192. #include "third_party/blink/public/common/features.h"
  193. #include "third_party/blink/public/common/forcedark/forcedark_switches.h"
  194. #include "third_party/blink/public/common/switches.h"
  195. #include "ui/accessibility/accessibility_features.h"
  196. #include "ui/accessibility/accessibility_switches.h"
  197. #include "ui/base/ui_base_features.h"
  198. #include "ui/base/ui_base_switches.h"
  199. #include "ui/compositor/compositor_switches.h"
  200. #include "ui/display/display_features.h"
  201. #include "ui/display/display_switches.h"
  202. #include "ui/events/blink/blink_features.h"
  203. #include "ui/events/event_switches.h"
  204. #include "ui/gfx/switches.h"
  205. #include "ui/gl/buildflags.h"
  206. #include "ui/gl/gl_features.h"
  207. #include "ui/gl/gl_switches.h"
  208. #include "ui/native_theme/native_theme_features.h"
  209. #include "ui/ui_features.h"
  210. #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
  211. #include "base/allocator/buildflags.h"
  212. #endif
  213. #if BUILDFLAG(IS_CHROMEOS)
  214. #include "base/process/process.h"
  215. #include "chrome/browser/apps/intent_helper/intent_picker_features.h"
  216. #include "chromeos/constants/chromeos_features.h"
  217. #endif
  218. #if BUILDFLAG(IS_ANDROID)
  219. #include "chrome/browser/android/explore_sites/explore_sites_feature.h"
  220. #include "chrome/browser/flags/android/chrome_feature_list.h"
  221. #include "chrome/browser/notifications/chime/android/features.h"
  222. #include "chrome/browser/push_messaging/push_messaging_features.h"
  223. #include "components/browser_ui/photo_picker/android/features.h"
  224. #include "components/content_creation/notes/core/note_features.h"
  225. #include "components/content_creation/reactions/core/reactions_features.h"
  226. #include "components/translate/content/android/translate_message.h"
  227. #else // BUILDFLAG(IS_ANDROID)
  228. #include "chrome/browser/media/router/discovery/access_code/access_code_cast_sink_service.h"
  229. #include "chrome/browser/media/router/media_router_feature.h"
  230. #include "chrome/browser/web_applications/preinstalled_app_install_features.h"
  231. #endif // BUILDFLAG(IS_ANDROID)
  232. #if BUILDFLAG(IS_CHROMEOS_ASH)
  233. #include "ash/components/arc/arc_features.h"
  234. #include "ash/components/arc/arc_util.h"
  235. #include "ash/constants/ash_features.h"
  236. #include "ash/constants/ash_switches.h"
  237. #include "chrome/browser/ash/crosapi/browser_manager.h"
  238. #include "chrome/browser/ash/crosapi/browser_util.h"
  239. #include "chrome/browser/ash/crostini/crostini_util.h"
  240. #include "chrome/browser/memory/memory_ablation_study.h"
  241. #include "chrome/browser/nearby_sharing/common/nearby_share_features.h"
  242. #include "chrome/common/webui_url_constants.h"
  243. #include "chromeos/ash/components/assistant/buildflags.h"
  244. #include "chromeos/ash/components/memory/swap_configuration.h"
  245. #include "chromeos/ash/services/assistant/public/cpp/features.h"
  246. #include "components/app_restore/features.h"
  247. #include "components/metrics/structured/structured_metrics_features.h" // nogncheck
  248. #include "media/capture/video/chromeos/video_capture_features_chromeos.h"
  249. #include "remoting/host/chromeos/features.h"
  250. #include "third_party/cros_system_api/switches/chrome_switches.h"
  251. #include "ui/events/ozone/features.h"
  252. #endif // BUILDFLAG(IS_CHROMEOS_ASH)
  253. #if BUILDFLAG(IS_CHROMEOS_LACROS)
  254. #include "base/i18n/icu_mergeable_data_file.h"
  255. #include "chrome/browser/lacros/lacros_url_handling.h"
  256. #include "chrome/common/webui_url_constants.h"
  257. #endif
  258. #if BUILDFLAG(IS_MAC)
  259. #include "chrome/browser/ui/browser_dialogs.h"
  260. #include "chrome/browser/ui/cocoa/screentime/screentime_features.h"
  261. #endif // BUILDFLAG(IS_MAC)
  262. #if BUILDFLAG(ENABLE_EXTENSIONS)
  263. #include "extensions/common/extension_features.h"
  264. #include "extensions/common/switches.h"
  265. #endif // BUILDFLAG(ENABLE_EXTENSIONS)
  266. #if BUILDFLAG(ENABLE_PDF)
  267. #include "pdf/pdf_features.h"
  268. #endif
  269. #if BUILDFLAG(ENABLE_PRINTING)
  270. #include "printing/printing_features.h"
  271. #endif
  272. #if BUILDFLAG(ENABLE_SUPERVISED_USERS)
  273. #include "chrome/browser/supervised_user/supervised_user_features/supervised_user_features.h" // nogncheck
  274. #endif // ENABLE_SUPERVISED_USERS
  275. #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)
  276. #include "ui/ozone/buildflags.h"
  277. #include "ui/ozone/public/ozone_switches.h"
  278. #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)
  279. #if BUILDFLAG(IS_WIN)
  280. #include "base/win/windows_version.h"
  281. #include "chrome/browser/win/titlebar_config.h"
  282. #include "ui/color/color_switches.h" // nogncheck
  283. #endif
  284. #if defined(TOOLKIT_VIEWS)
  285. #include "ui/views/views_features.h"
  286. #include "ui/views/views_switches.h"
  287. #endif // defined(TOOLKIT_VIEWS)
  288. using flags_ui::FeatureEntry;
  289. using flags_ui::kDeprecated;
  290. using flags_ui::kOsAndroid;
  291. using flags_ui::kOsCrOS;
  292. using flags_ui::kOsCrOSOwnerOnly;
  293. using flags_ui::kOsFuchsia;
  294. using flags_ui::kOsLacros;
  295. using flags_ui::kOsLinux;
  296. using flags_ui::kOsMac;
  297. using flags_ui::kOsWin;
  298. namespace about_flags {
  299. namespace {
  300. const unsigned kOsAll =
  301. kOsMac | kOsWin | kOsLinux | kOsCrOS | kOsAndroid | kOsFuchsia | kOsLacros;
  302. const unsigned kOsDesktop =
  303. kOsMac | kOsWin | kOsLinux | kOsCrOS | kOsFuchsia | kOsLacros;
  304. #if defined(USE_AURA)
  305. const unsigned kOsAura = kOsWin | kOsLinux | kOsCrOS | kOsFuchsia | kOsLacros;
  306. #endif // USE_AURA
  307. #if defined(USE_AURA)
  308. const FeatureEntry::Choice kPullToRefreshChoices[] = {
  309. {flags_ui::kGenericExperimentChoiceDefault, "", ""},
  310. {flags_ui::kGenericExperimentChoiceDisabled, switches::kPullToRefresh, "0"},
  311. {flags_ui::kGenericExperimentChoiceEnabled, switches::kPullToRefresh, "1"},
  312. {flag_descriptions::kPullToRefreshEnabledTouchscreen,
  313. switches::kPullToRefresh, "2"}};
  314. #endif // USE_AURA
  315. const FeatureEntry::Choice kOverlayStrategiesChoices[] = {
  316. {flag_descriptions::kOverlayStrategiesDefault, "", ""},
  317. {flag_descriptions::kOverlayStrategiesNone,
  318. switches::kEnableHardwareOverlays, ""},
  319. {flag_descriptions::kOverlayStrategiesUnoccludedFullscreen,
  320. switches::kEnableHardwareOverlays, "single-fullscreen"},
  321. {flag_descriptions::kOverlayStrategiesUnoccluded,
  322. switches::kEnableHardwareOverlays, "single-fullscreen,single-on-top"},
  323. {flag_descriptions::kOverlayStrategiesOccludedAndUnoccluded,
  324. switches::kEnableHardwareOverlays,
  325. "single-fullscreen,single-on-top,underlay"},
  326. };
  327. const FeatureEntry::Choice kTouchTextSelectionStrategyChoices[] = {
  328. {flags_ui::kGenericExperimentChoiceDefault, "", ""},
  329. {flag_descriptions::kTouchSelectionStrategyCharacter,
  330. blink::switches::kTouchTextSelectionStrategy, "character"},
  331. {flag_descriptions::kTouchSelectionStrategyDirection,
  332. blink::switches::kTouchTextSelectionStrategy, "direction"}};
  333. #if BUILDFLAG(IS_WIN)
  334. const FeatureEntry::Choice kUseAngleChoicesWindows[] = {
  335. {flag_descriptions::kUseAngleDefault, "", ""},
  336. {flag_descriptions::kUseAngleGL, switches::kUseANGLE,
  337. gl::kANGLEImplementationOpenGLName},
  338. {flag_descriptions::kUseAngleD3D11, switches::kUseANGLE,
  339. gl::kANGLEImplementationD3D11Name},
  340. {flag_descriptions::kUseAngleD3D9, switches::kUseANGLE,
  341. gl::kANGLEImplementationD3D9Name},
  342. {flag_descriptions::kUseAngleD3D11on12, switches::kUseANGLE,
  343. gl::kANGLEImplementationD3D11on12Name}};
  344. #elif BUILDFLAG(IS_MAC)
  345. const FeatureEntry::Choice kUseAngleChoicesMac[] = {
  346. {flag_descriptions::kUseAngleDefault, "", ""},
  347. {flag_descriptions::kUseAngleGL, switches::kUseANGLE,
  348. gl::kANGLEImplementationOpenGLName},
  349. {flag_descriptions::kUseAngleMetal, switches::kUseANGLE,
  350. gl::kANGLEImplementationMetalName}};
  351. #endif
  352. #if BUILDFLAG(IS_WIN)
  353. const FeatureEntry::FeatureParam kDXGIWaitableSwapChain1Frame = {
  354. "DXGIWaitableSwapChainMaxQueuedFrames", "1"};
  355. const FeatureEntry::FeatureParam kDXGIWaitableSwapChain2Frames = {
  356. "DXGIWaitableSwapChainMaxQueuedFrames", "2"};
  357. const FeatureEntry::FeatureParam kDXGIWaitableSwapChain3Frames = {
  358. "DXGIWaitableSwapChainMaxQueuedFrames", "3"};
  359. const FeatureEntry::FeatureVariation kDXGIWaitableSwapChainVariations[] = {
  360. {"Max 1 Frame", &kDXGIWaitableSwapChain1Frame, 1, nullptr},
  361. {"Max 2 Frames", &kDXGIWaitableSwapChain2Frames, 1, nullptr},
  362. {"Max 3 Frames", &kDXGIWaitableSwapChain3Frames, 1, nullptr}};
  363. #endif
  364. #if BUILDFLAG(IS_LINUX)
  365. const FeatureEntry::Choice kOzonePlatformHintRuntimeChoices[] = {
  366. {flag_descriptions::kOzonePlatformHintChoiceDefault, "", ""},
  367. {flag_descriptions::kOzonePlatformHintChoiceAuto,
  368. switches::kOzonePlatformHint, "auto"},
  369. #if BUILDFLAG(OZONE_PLATFORM_X11)
  370. {flag_descriptions::kOzonePlatformHintChoiceX11,
  371. switches::kOzonePlatformHint, "x11"},
  372. #endif
  373. #if BUILDFLAG(OZONE_PLATFORM_WAYLAND)
  374. {flag_descriptions::kOzonePlatformHintChoiceWayland,
  375. switches::kOzonePlatformHint, "wayland"},
  376. #endif
  377. };
  378. #endif
  379. #if BUILDFLAG(ENABLE_VR)
  380. const FeatureEntry::Choice kWebXrForceRuntimeChoices[] = {
  381. {flags_ui::kGenericExperimentChoiceDefault, "", ""},
  382. {flag_descriptions::kWebXrRuntimeChoiceNone, switches::kWebXrForceRuntime,
  383. switches::kWebXrRuntimeNone},
  384. #if BUILDFLAG(ENABLE_OPENXR)
  385. {flag_descriptions::kWebXrRuntimeChoiceOpenXR, switches::kWebXrForceRuntime,
  386. switches::kWebXrRuntimeOpenXr},
  387. #endif // ENABLE_OPENXR
  388. };
  389. #endif // ENABLE_VR
  390. #if BUILDFLAG(IS_ANDROID)
  391. const FeatureEntry::FeatureParam kElasticOverscrollFilterType[] = {
  392. {features::kElasticOverscrollType, features::kElasticOverscrollTypeFilter}};
  393. const FeatureEntry::FeatureParam kElasticOverscrollTransformType[] = {
  394. {features::kElasticOverscrollType,
  395. features::kElasticOverscrollTypeTransform}};
  396. const FeatureEntry::FeatureVariation kElasticOverscrollVariations[] = {
  397. {"Pixel shader stretch", kElasticOverscrollFilterType,
  398. std::size(kElasticOverscrollFilterType), nullptr},
  399. {"Transform stretch", kElasticOverscrollTransformType,
  400. std::size(kElasticOverscrollTransformType), nullptr}};
  401. const FeatureEntry::FeatureParam kCCTResizablePolicyParamUseAllowlist[] = {
  402. {"default_policy", "use-allowlist"}};
  403. const FeatureEntry::FeatureParam kCCTResizablePolicyParamUseDenylist[] = {
  404. {"default_policy", "use-denylist"}};
  405. const FeatureEntry::FeatureVariation
  406. kCCTResizableThirdPartiesDefaultPolicyVariations[] = {
  407. {"Use Allowlist", kCCTResizablePolicyParamUseAllowlist,
  408. std::size(kCCTResizablePolicyParamUseAllowlist), nullptr},
  409. {"Use Denylist", kCCTResizablePolicyParamUseDenylist,
  410. std::size(kCCTResizablePolicyParamUseDenylist), nullptr}};
  411. const FeatureEntry::FeatureParam kCCTBrandingTestFriendly[] = {
  412. {"use_temporary_storage", "true"},
  413. {"branding_cadence", "10000"} // 10 seconds
  414. };
  415. const FeatureEntry::FeatureVariation kCctBrandTransparencyVariations[] = {
  416. {"Test friendly mode", kCCTBrandingTestFriendly,
  417. std::size(kCCTBrandingTestFriendly), nullptr}};
  418. const FeatureEntry::Choice kReaderModeHeuristicsChoices[] = {
  419. {flags_ui::kGenericExperimentChoiceDefault, "", ""},
  420. {flag_descriptions::kReaderModeHeuristicsMarkup,
  421. switches::kReaderModeHeuristics,
  422. switches::reader_mode_heuristics::kOGArticle},
  423. {flag_descriptions::kReaderModeHeuristicsAdaboost,
  424. switches::kReaderModeHeuristics,
  425. switches::reader_mode_heuristics::kAdaBoost},
  426. {flag_descriptions::kReaderModeHeuristicsAlwaysOn,
  427. switches::kReaderModeHeuristics,
  428. switches::reader_mode_heuristics::kAlwaysTrue},
  429. {flag_descriptions::kReaderModeHeuristicsAlwaysOff,
  430. switches::kReaderModeHeuristics, switches::reader_mode_heuristics::kNone},
  431. {flag_descriptions::kReaderModeHeuristicsAllArticles,
  432. switches::kReaderModeHeuristics,
  433. switches::reader_mode_heuristics::kAllArticles},
  434. };
  435. const FeatureEntry::Choice kForceUpdateMenuTypeChoices[] = {
  436. {flags_ui::kGenericExperimentChoiceDefault, "", ""},
  437. {flag_descriptions::kUpdateMenuTypeNone, switches::kForceUpdateMenuType,
  438. "none"},
  439. {flag_descriptions::kUpdateMenuTypeUpdateAvailable,
  440. switches::kForceUpdateMenuType, "update_available"},
  441. {flag_descriptions::kUpdateMenuTypeUnsupportedOSVersion,
  442. switches::kForceUpdateMenuType, "unsupported_os_version"},
  443. };
  444. const FeatureEntry::FeatureParam kOmahaMinSdkVersionAndroidMinSdk1[] = {
  445. {"min_sdk_version", "1"}};
  446. const FeatureEntry::FeatureParam kOmahaMinSdkVersionAndroidMinSdk1000[] = {
  447. {"min_sdk_version", "1000"}};
  448. const FeatureEntry::FeatureVariation kOmahaMinSdkVersionAndroidVariations[] = {
  449. {flag_descriptions::kOmahaMinSdkVersionAndroidMinSdk1Description,
  450. kOmahaMinSdkVersionAndroidMinSdk1,
  451. std::size(kOmahaMinSdkVersionAndroidMinSdk1), nullptr},
  452. {flag_descriptions::kOmahaMinSdkVersionAndroidMinSdk1000Description,
  453. kOmahaMinSdkVersionAndroidMinSdk1000,
  454. std::size(kOmahaMinSdkVersionAndroidMinSdk1000), nullptr},
  455. };
  456. #else // BUILDFLAG(IS_ANDROID)
  457. const FeatureEntry::FeatureParam kReaderModeOfferInSettings[] = {
  458. {switches::kReaderModeDiscoverabilityParamName,
  459. switches::kReaderModeOfferInSettings}};
  460. const FeatureEntry::FeatureVariation kReaderModeDiscoverabilityVariations[] = {
  461. {"available in settings", kReaderModeOfferInSettings,
  462. std::size(kReaderModeOfferInSettings), nullptr}};
  463. #endif // BUILDFLAG(IS_ANDROID)
  464. #if BUILDFLAG(IS_ANDROID)
  465. const FeatureEntry::FeatureParam kAdaptiveButton_AlwaysNone[] = {
  466. {"mode", "always-none"}};
  467. const FeatureEntry::FeatureParam kAdaptiveButton_AlwaysNewTab[] = {
  468. {"mode", "always-new-tab"}};
  469. const FeatureEntry::FeatureParam kAdaptiveButton_AlwaysShare[] = {
  470. {"mode", "always-share"}};
  471. const FeatureEntry::FeatureParam kAdaptiveButton_AlwaysVoice[] = {
  472. {"mode", "always-voice"}};
  473. const FeatureEntry::FeatureVariation kAdaptiveButtonInTopToolbarVariations[] = {
  474. {"Always None", kAdaptiveButton_AlwaysNone,
  475. std::size(kAdaptiveButton_AlwaysNone), nullptr},
  476. {"Always New Tab", kAdaptiveButton_AlwaysNewTab,
  477. std::size(kAdaptiveButton_AlwaysNewTab), nullptr},
  478. {"Always Share", kAdaptiveButton_AlwaysShare,
  479. std::size(kAdaptiveButton_AlwaysShare), nullptr},
  480. {"Always Voice", kAdaptiveButton_AlwaysVoice,
  481. std::size(kAdaptiveButton_AlwaysVoice), nullptr},
  482. };
  483. const FeatureEntry::FeatureParam kAdaptiveButtonCustomization_NewTab[] = {
  484. {"default_segment", "new-tab"},
  485. {"show_ui_only_after_ready", "false"},
  486. {"ignore_segmentation_results", "true"}};
  487. const FeatureEntry::FeatureParam kAdaptiveButtonCustomization_Share[] = {
  488. {"default_segment", "share"},
  489. {"show_ui_only_after_ready", "false"},
  490. {"ignore_segmentation_results", "true"}};
  491. const FeatureEntry::FeatureParam kAdaptiveButtonCustomization_Voice[] = {
  492. {"default_segment", "voice"},
  493. {"show_ui_only_after_ready", "false"},
  494. {"ignore_segmentation_results", "true"}};
  495. const FeatureEntry::FeatureVariation
  496. kAdaptiveButtonInTopToolbarCustomizationVariations[] = {
  497. {"New Tab", kAdaptiveButtonCustomization_NewTab,
  498. std::size(kAdaptiveButtonCustomization_NewTab), nullptr},
  499. {"Share", kAdaptiveButtonCustomization_Share,
  500. std::size(kAdaptiveButtonCustomization_Share), nullptr},
  501. {"Voice", kAdaptiveButtonCustomization_Voice,
  502. std::size(kAdaptiveButtonCustomization_Voice), nullptr},
  503. };
  504. const FeatureEntry::FeatureParam kContextualPageActionPriceTracking_Quiet[] = {
  505. {"action_chip", "false"},
  506. };
  507. const FeatureEntry::FeatureParam
  508. kContextualPageActionPriceTracking_ActionChip[] = {
  509. {"action_chip", "true"},
  510. {"action_chip_time_ms", "3000"},
  511. };
  512. const FeatureEntry::FeatureParam
  513. kContextualPageActionPriceTracking_ActionChip_6s[] = {
  514. {"action_chip", "true"},
  515. {"action_chip_time_ms", "6000"},
  516. };
  517. const FeatureEntry::FeatureParam
  518. kContextualPageActionPriceTracking_ActionChip_AltColor[] = {
  519. {"action_chip", "true"},
  520. {"action_chip_time_ms", "3000"},
  521. {"action_chip_with_different_color", "true"},
  522. };
  523. const FeatureEntry::FeatureParam
  524. kContextualPageActionPriceTracking_ActionChip_AltColor_6s[] = {
  525. {"action_chip", "true"},
  526. {"action_chip_time_ms", "6000"},
  527. {"action_chip_with_different_color", "true"},
  528. };
  529. const FeatureEntry::FeatureVariation
  530. kContextualPageActionPriceTrackingVariations[] = {
  531. {"Quiet", kContextualPageActionPriceTracking_Quiet,
  532. std::size(kContextualPageActionPriceTracking_Quiet), nullptr},
  533. {"Action Chip", kContextualPageActionPriceTracking_ActionChip,
  534. std::size(kContextualPageActionPriceTracking_ActionChip), nullptr},
  535. {"Action Chip - 6s", kContextualPageActionPriceTracking_ActionChip_6s,
  536. std::size(kContextualPageActionPriceTracking_ActionChip_6s), nullptr},
  537. {"Action Chip - Alternative Color",
  538. kContextualPageActionPriceTracking_ActionChip_AltColor,
  539. std::size(kContextualPageActionPriceTracking_ActionChip_AltColor),
  540. nullptr},
  541. {"Action Chip - Alternative Color - 6s",
  542. kContextualPageActionPriceTracking_ActionChip_AltColor_6s,
  543. std::size(kContextualPageActionPriceTracking_ActionChip_AltColor_6s),
  544. nullptr},
  545. };
  546. const FeatureEntry::FeatureParam
  547. kOmniboxRemoveSuggestionHeaderChevron_AllowCollapse[] = {
  548. {"allow_group_collapsed_state", "true"}};
  549. const FeatureEntry::FeatureVariation
  550. kOmniboxRemoveSuggestionHeaderChevronVariations[] = {
  551. {"AllowCollapse", kOmniboxRemoveSuggestionHeaderChevron_AllowCollapse,
  552. std::size(kOmniboxRemoveSuggestionHeaderChevron_AllowCollapse),
  553. nullptr},
  554. };
  555. #endif // BUILDFLAG(IS_ANDROID)
  556. const FeatureEntry::FeatureParam
  557. kAutofillSaveCardUiExperimentEnableCurrentWithUserAvatarAndEmail[] = {
  558. {"autofill_save_card_ui_experiment_selector_in_number", "3"},
  559. };
  560. const FeatureEntry::FeatureParam
  561. kAutofillSaveCardUiExperimentEnableEncryptedAndSecure[] = {
  562. {"autofill_save_card_ui_experiment_selector_in_number", "2"},
  563. };
  564. const FeatureEntry::FeatureParam
  565. kAutofillSaveCardUiExperimentEnableFasterAndProtected[] = {
  566. {"autofill_save_card_ui_experiment_selector_in_number", "1"},
  567. };
  568. const FeatureEntry::FeatureVariation kAutofillSaveCardUiExperimentOptions[] = {
  569. {flag_descriptions::kAutofillSaveCardUiExperimentFasterAndProtected,
  570. kAutofillSaveCardUiExperimentEnableFasterAndProtected,
  571. std::size(kAutofillSaveCardUiExperimentEnableFasterAndProtected), nullptr},
  572. {flag_descriptions::kAutofillSaveCardUiExperimentEncryptedAndSecure,
  573. kAutofillSaveCardUiExperimentEnableEncryptedAndSecure,
  574. std::size(kAutofillSaveCardUiExperimentEnableEncryptedAndSecure), nullptr},
  575. {flag_descriptions::
  576. kAutofillSaveCardUiExperimentCurrentWithUserAvatarAndEmail,
  577. kAutofillSaveCardUiExperimentEnableCurrentWithUserAvatarAndEmail,
  578. std::size(
  579. kAutofillSaveCardUiExperimentEnableCurrentWithUserAvatarAndEmail),
  580. nullptr},
  581. };
  582. #if !BUILDFLAG(IS_CHROMEOS_ASH)
  583. const FeatureEntry::FeatureParam kForceDark_SimpleHsl[] = {
  584. {"inversion_method", "hsl_based"},
  585. {"image_behavior", "none"},
  586. {"foreground_lightness_threshold", "150"},
  587. {"background_lightness_threshold", "205"}};
  588. const FeatureEntry::FeatureParam kForceDark_SimpleCielab[] = {
  589. {"inversion_method", "cielab_based"},
  590. {"image_behavior", "none"},
  591. {"foreground_lightness_threshold", "150"},
  592. {"background_lightness_threshold", "205"}};
  593. const FeatureEntry::FeatureParam kForceDark_SimpleRgb[] = {
  594. {"inversion_method", "rgb_based"},
  595. {"image_behavior", "none"},
  596. {"foreground_lightness_threshold", "150"},
  597. {"background_lightness_threshold", "205"}};
  598. // Keep in sync with the kForceDark_SelectiveImageInversion
  599. // in aw_feature_entries.cc if you tweak these parameters.
  600. const FeatureEntry::FeatureParam kForceDark_SelectiveImageInversion[] = {
  601. {"inversion_method", "cielab_based"},
  602. {"image_behavior", "selective"},
  603. {"foreground_lightness_threshold", "150"},
  604. {"background_lightness_threshold", "205"}};
  605. const FeatureEntry::FeatureParam kForceDark_SelectiveElementInversion[] = {
  606. {"inversion_method", "cielab_based"},
  607. {"image_behavior", "none"},
  608. {"foreground_lightness_threshold", "150"},
  609. {"background_lightness_threshold", "205"}};
  610. const FeatureEntry::FeatureParam kForceDark_SelectiveGeneralInversion[] = {
  611. {"inversion_method", "cielab_based"},
  612. {"image_behavior", "selective"},
  613. {"foreground_lightness_threshold", "150"},
  614. {"background_lightness_threshold", "205"}};
  615. const FeatureEntry::FeatureVariation kForceDarkVariations[] = {
  616. {"with simple HSL-based inversion", kForceDark_SimpleHsl,
  617. std::size(kForceDark_SimpleHsl), nullptr},
  618. {"with simple CIELAB-based inversion", kForceDark_SimpleCielab,
  619. std::size(kForceDark_SimpleCielab), nullptr},
  620. {"with simple RGB-based inversion", kForceDark_SimpleRgb,
  621. std::size(kForceDark_SimpleRgb), nullptr},
  622. {"with selective image inversion", kForceDark_SelectiveImageInversion,
  623. std::size(kForceDark_SelectiveImageInversion), nullptr},
  624. {"with selective inversion of non-image elements",
  625. kForceDark_SelectiveElementInversion,
  626. std::size(kForceDark_SelectiveElementInversion), nullptr},
  627. {"with selective inversion of everything",
  628. kForceDark_SelectiveGeneralInversion,
  629. std::size(kForceDark_SelectiveGeneralInversion), nullptr}};
  630. #endif // !BUILDFLAG(IS_CHROMEOS)
  631. const FeatureEntry::FeatureParam kMBIModeLegacy[] = {{"mode", "legacy"}};
  632. const FeatureEntry::FeatureParam kMBIModeEnabledPerRenderProcessHost[] = {
  633. {"mode", "per_render_process_host"}};
  634. const FeatureEntry::FeatureParam kMBIModeEnabledPerSiteInstance[] = {
  635. {"mode", "per_site_instance"}};
  636. const FeatureEntry::FeatureVariation kMBIModeVariations[] = {
  637. {"legacy mode", kMBIModeLegacy, std::size(kMBIModeLegacy), nullptr},
  638. {"per render process host", kMBIModeEnabledPerRenderProcessHost,
  639. std::size(kMBIModeEnabledPerRenderProcessHost), nullptr},
  640. {"per site instance", kMBIModeEnabledPerSiteInstance,
  641. std::size(kMBIModeEnabledPerSiteInstance), nullptr}};
  642. const FeatureEntry::FeatureParam kIntensiveWakeUpThrottlingAfter10Seconds[] = {
  643. {blink::features::kIntensiveWakeUpThrottling_GracePeriodSeconds_Name,
  644. "10"}};
  645. const FeatureEntry::FeatureVariation kIntensiveWakeUpThrottlingVariations[] = {
  646. {"10 seconds after a tab is hidden (facilitates testing)",
  647. kIntensiveWakeUpThrottlingAfter10Seconds,
  648. std::size(kIntensiveWakeUpThrottlingAfter10Seconds), nullptr},
  649. };
  650. const FeatureEntry::FeatureParam kFencedFramesImplementationTypeShadowDOM[] = {
  651. {"implementation_type", "shadow_dom"}};
  652. const FeatureEntry::FeatureParam kFencedFramesImplementationTypeMPArch[] = {
  653. {"implementation_type", "mparch"}};
  654. const FeatureEntry::FeatureVariation
  655. kFencedFramesImplementationTypeVariations[] = {
  656. {"with ShadowDOM", kFencedFramesImplementationTypeShadowDOM,
  657. std::size(kFencedFramesImplementationTypeShadowDOM), nullptr},
  658. {"with multiple page architecture",
  659. kFencedFramesImplementationTypeMPArch,
  660. std::size(kFencedFramesImplementationTypeMPArch), nullptr}};
  661. const FeatureEntry::FeatureParam kSearchSuggestionPrerenderUsingPrefetch[] = {
  662. {"implementation_type", "use_prefetch"}};
  663. const FeatureEntry::FeatureParam kSearchSuggestionPrerenderIgnoringPrefetch[] =
  664. {{"implementation_type", "ignore_prefetch"}};
  665. const FeatureEntry::FeatureVariation
  666. kSearchSuggsetionPrerenderTypeVariations[] = {
  667. {"use prefetched request", kSearchSuggestionPrerenderUsingPrefetch,
  668. std::size(kSearchSuggestionPrerenderUsingPrefetch), nullptr},
  669. {"ignore prefetched request",
  670. kSearchSuggestionPrerenderIgnoringPrefetch,
  671. std::size(kSearchSuggestionPrerenderIgnoringPrefetch), nullptr}};
  672. #if BUILDFLAG(IS_ANDROID)
  673. const FeatureEntry::FeatureParam kCloseTabSuggestionsStale_Immediate[] = {
  674. {"baseline_tab_suggestions", "true"},
  675. {"baseline_close_tab_suggestions", "true"}};
  676. const FeatureEntry::FeatureParam kCloseTabSuggestionsStale_4Hours[] = {
  677. {"close_tab_suggestions_stale_time_ms", "14400000"}};
  678. const FeatureEntry::FeatureParam kCloseTabSuggestionsStale_8Hours[] = {
  679. {"close_tab_suggestions_stale_time_ms", "28800000"}};
  680. const FeatureEntry::FeatureParam kCloseTabSuggestionsStale_7Days[] = {
  681. {"close_tab_suggestions_stale_time_ms", "604800000"}};
  682. const FeatureEntry::FeatureParam kCloseTabSuggestionsTimeSiteEngagement[] = {
  683. {"close_tab_min_num_tabs", "5"},
  684. {"close_tab_features_time_last_used_enabled", "true"},
  685. {"close_tab_features_time_last_used_transform", "MEAN_VARIANCE"},
  686. {"close_tab_features_time_last_used_threshold", "0.5"},
  687. {"close_tab_features_site_engagement_enabled", "true"},
  688. {"close_tab_features_site_engagement_threshold", "90.0"},
  689. };
  690. const FeatureEntry::FeatureParam kGroupAndCloseTabSuggestions_Immediate[] = {
  691. {"baseline_tab_suggestions", "true"},
  692. {"baseline_group_tab_suggestions", "true"},
  693. {"baseline_close_tab_suggestions", "true"}};
  694. const FeatureEntry::FeatureVariation kCloseTabSuggestionsStaleVariations[] = {
  695. {"Close Immediate", kCloseTabSuggestionsStale_Immediate,
  696. std::size(kCloseTabSuggestionsStale_Immediate), nullptr},
  697. {"Group+Close Immediate", kGroupAndCloseTabSuggestions_Immediate,
  698. std::size(kGroupAndCloseTabSuggestions_Immediate), nullptr},
  699. {"4 hours", kCloseTabSuggestionsStale_4Hours,
  700. std::size(kCloseTabSuggestionsStale_4Hours), nullptr},
  701. {"8 hours", kCloseTabSuggestionsStale_8Hours,
  702. std::size(kCloseTabSuggestionsStale_8Hours), nullptr},
  703. {"7 days", kCloseTabSuggestionsStale_7Days,
  704. std::size(kCloseTabSuggestionsStale_7Days), nullptr},
  705. {"Time & Site Engagement", kCloseTabSuggestionsTimeSiteEngagement,
  706. std::size(kCloseTabSuggestionsTimeSiteEngagement), nullptr},
  707. };
  708. const FeatureEntry::FeatureParam kCriticalPersistedTabDataSaveAndRestore[] = {
  709. {"critical_persisted_tab_data_save_only", "false"}};
  710. const FeatureEntry::FeatureParam kCriticalPersistedTabDataSaveOnly[] = {
  711. {"critical_persisted_tab_data_save_only", "true"}};
  712. const FeatureEntry::FeatureVariation kCriticalPersistedTabDataVariations[] = {
  713. {"Save and Restore", kCriticalPersistedTabDataSaveAndRestore,
  714. std::size(kCriticalPersistedTabDataSaveAndRestore), nullptr},
  715. {"Save Only", kCriticalPersistedTabDataSaveOnly,
  716. std::size(kCriticalPersistedTabDataSaveOnly), nullptr}};
  717. const FeatureEntry::FeatureParam kLongScreenshot_AutoscrollDragSlow[] = {
  718. {"autoscroll", "1"}};
  719. const FeatureEntry::FeatureParam kLongScreenshot_AutoscrollDragQuick[] = {
  720. {"autoscroll", "2"}};
  721. const FeatureEntry::FeatureVariation kLongScreenshotVariations[] = {
  722. {"Autoscroll Experiment 1", kLongScreenshot_AutoscrollDragSlow,
  723. std::size(kLongScreenshot_AutoscrollDragSlow), nullptr},
  724. {"Autoscroll Experiment 2", kLongScreenshot_AutoscrollDragQuick,
  725. std::size(kLongScreenshot_AutoscrollDragQuick), nullptr}};
  726. const FeatureEntry::FeatureParam kShowSingleRowMVTiles[] = {
  727. {"most_visited_max_rows_normal_screen", "1"},
  728. {"most_visited_max_rows_small_screen", "1"},
  729. {"small_screen_height_threshold_dp", "700"}};
  730. const FeatureEntry::FeatureParam kShowTwoRowsMVTiles[] = {
  731. {"most_visited_max_rows_normal_screen", "2"},
  732. {"most_visited_max_rows_small_screen", "2"},
  733. {"small_screen_height_threshold_dp", "700"}};
  734. const FeatureEntry::FeatureVariation kQueryTilesVariations[] = {
  735. {"(show single row of MV tiles)", kShowSingleRowMVTiles,
  736. std::size(kShowSingleRowMVTiles), nullptr},
  737. {"(show two rows of MV tiles)", kShowTwoRowsMVTiles,
  738. std::size(kShowTwoRowsMVTiles), nullptr}};
  739. const FeatureEntry::FeatureParam kTangibleSyncGroupA[] = {{"group_id", "1"}};
  740. const FeatureEntry::FeatureParam kTangibleSyncGroupB[] = {{"group_id", "2"}};
  741. const FeatureEntry::FeatureParam kTangibleSyncGroupC[] = {{"group_id", "3"}};
  742. const FeatureEntry::FeatureVariation kTangibleSyncVariations[] = {
  743. {"(turn on sync and back up)", kTangibleSyncGroupA,
  744. std::size(kTangibleSyncGroupA), nullptr},
  745. {"(sync and back up)", kTangibleSyncGroupB, std::size(kTangibleSyncGroupB),
  746. nullptr},
  747. {"(turn on sync and sync data)", kTangibleSyncGroupC,
  748. std::size(kTangibleSyncGroupC), nullptr}};
  749. #endif // BUILDFLAG(IS_ANDROID)
  750. const FeatureEntry::Choice kEnableGpuRasterizationChoices[] = {
  751. {flags_ui::kGenericExperimentChoiceDefault, "", ""},
  752. {flags_ui::kGenericExperimentChoiceEnabled,
  753. switches::kEnableGpuRasterization, ""},
  754. {flags_ui::kGenericExperimentChoiceDisabled,
  755. switches::kDisableGpuRasterization, ""},
  756. };
  757. const FeatureEntry::Choice kExtensionContentVerificationChoices[] = {
  758. {flags_ui::kGenericExperimentChoiceDefault, "", ""},
  759. {flag_descriptions::kExtensionContentVerificationBootstrap,
  760. switches::kExtensionContentVerification,
  761. switches::kExtensionContentVerificationBootstrap},
  762. {flag_descriptions::kExtensionContentVerificationEnforce,
  763. switches::kExtensionContentVerification,
  764. switches::kExtensionContentVerificationEnforce},
  765. {flag_descriptions::kExtensionContentVerificationEnforceStrict,
  766. switches::kExtensionContentVerification,
  767. switches::kExtensionContentVerificationEnforceStrict},
  768. };
  769. const FeatureEntry::Choice kTopChromeTouchUiChoices[] = {
  770. {flags_ui::kGenericExperimentChoiceDefault, "", ""},
  771. {flags_ui::kGenericExperimentChoiceAutomatic, switches::kTopChromeTouchUi,
  772. switches::kTopChromeTouchUiAuto},
  773. {flags_ui::kGenericExperimentChoiceDisabled, switches::kTopChromeTouchUi,
  774. switches::kTopChromeTouchUiDisabled},
  775. {flags_ui::kGenericExperimentChoiceEnabled, switches::kTopChromeTouchUi,
  776. switches::kTopChromeTouchUiEnabled}};
  777. #if BUILDFLAG(IS_CHROMEOS_ASH)
  778. const FeatureEntry::Choice kUXStudy1Choices[] = {
  779. {flags_ui::kGenericExperimentChoiceDefault, "", ""},
  780. {memory::kUXStudy1A, memory::kUXStudy1Switch, memory::kUXStudy1A},
  781. {memory::kUXStudy1B, memory::kUXStudy1Switch, memory::kUXStudy1B},
  782. {memory::kUXStudy1C, memory::kUXStudy1Switch, memory::kUXStudy1C},
  783. {memory::kUXStudy1D, memory::kUXStudy1Switch, memory::kUXStudy1D},
  784. };
  785. const char kLacrosAvailabilityIgnoreInternalName[] =
  786. "lacros-availability-ignore";
  787. const char kLacrosOnlyInternalName[] = "lacros-only";
  788. const char kLacrosPrimaryInternalName[] = "lacros-primary";
  789. const char kLacrosSupportInternalName[] = "lacros-support";
  790. const char kLacrosStabilityInternalName[] = "lacros-stability";
  791. const char kWebAppsCrosapiInternalName[] = "web-apps-crosapi";
  792. const char kArcVmBalloonPolicyInternalName[] =
  793. "arc-use-limit-cache-balloon-policy";
  794. const FeatureEntry::Choice kLacrosStabilityChoices[] = {
  795. {flags_ui::kGenericExperimentChoiceDefault, "", ""},
  796. {crosapi::browser_util::kLacrosStabilityChannelCanary,
  797. crosapi::browser_util::kLacrosStabilitySwitch,
  798. crosapi::browser_util::kLacrosStabilityChannelCanary},
  799. {crosapi::browser_util::kLacrosStabilityChannelDev,
  800. crosapi::browser_util::kLacrosStabilitySwitch,
  801. crosapi::browser_util::kLacrosStabilityChannelDev},
  802. {crosapi::browser_util::kLacrosStabilityChannelBeta,
  803. crosapi::browser_util::kLacrosStabilitySwitch,
  804. crosapi::browser_util::kLacrosStabilityChannelBeta},
  805. {crosapi::browser_util::kLacrosStabilityChannelStable,
  806. crosapi::browser_util::kLacrosStabilitySwitch,
  807. crosapi::browser_util::kLacrosStabilityChannelStable},
  808. };
  809. const char kLacrosSelectionInternalName[] = "lacros-selection";
  810. const FeatureEntry::Choice kLacrosSelectionChoices[] = {
  811. {flags_ui::kGenericExperimentChoiceDefault, "", ""},
  812. {flag_descriptions::kLacrosSelectionStatefulDescription,
  813. crosapi::browser_util::kLacrosSelectionSwitch,
  814. crosapi::browser_util::kLacrosSelectionStateful},
  815. {flag_descriptions::kLacrosSelectionRootfsDescription,
  816. crosapi::browser_util::kLacrosSelectionSwitch,
  817. crosapi::browser_util::kLacrosSelectionRootfs},
  818. };
  819. const FeatureEntry::Choice kLacrosAvailabilityPolicyChoices[] = {
  820. {flags_ui::kGenericExperimentChoiceDefault, "", ""},
  821. {crosapi::browser_util::kLacrosAvailabilityPolicyUserChoice,
  822. crosapi::browser_util::kLacrosAvailabilityPolicySwitch,
  823. crosapi::browser_util::kLacrosAvailabilityPolicyUserChoice},
  824. {crosapi::browser_util::kLacrosAvailabilityPolicyLacrosDisabled,
  825. crosapi::browser_util::kLacrosAvailabilityPolicySwitch,
  826. crosapi::browser_util::kLacrosAvailabilityPolicyLacrosDisabled},
  827. {crosapi::browser_util::kLacrosAvailabilityPolicySideBySide,
  828. crosapi::browser_util::kLacrosAvailabilityPolicySwitch,
  829. crosapi::browser_util::kLacrosAvailabilityPolicySideBySide},
  830. {crosapi::browser_util::kLacrosAvailabilityPolicyLacrosPrimary,
  831. crosapi::browser_util::kLacrosAvailabilityPolicySwitch,
  832. crosapi::browser_util::kLacrosAvailabilityPolicyLacrosPrimary},
  833. {crosapi::browser_util::kLacrosAvailabilityPolicyLacrosOnly,
  834. crosapi::browser_util::kLacrosAvailabilityPolicySwitch,
  835. crosapi::browser_util::kLacrosAvailabilityPolicyLacrosOnly},
  836. };
  837. #endif // BUILDFLAG(IS_CHROMEOS_ASH)
  838. const FeatureEntry::Choice kForceUIDirectionChoices[] = {
  839. {flags_ui::kGenericExperimentChoiceDefault, "", ""},
  840. {flag_descriptions::kForceDirectionLtr, switches::kForceUIDirection,
  841. switches::kForceDirectionLTR},
  842. {flag_descriptions::kForceDirectionRtl, switches::kForceUIDirection,
  843. switches::kForceDirectionRTL},
  844. };
  845. const FeatureEntry::Choice kForceTextDirectionChoices[] = {
  846. {flags_ui::kGenericExperimentChoiceDefault, "", ""},
  847. {flag_descriptions::kForceDirectionLtr, switches::kForceTextDirection,
  848. switches::kForceDirectionLTR},
  849. {flag_descriptions::kForceDirectionRtl, switches::kForceTextDirection,
  850. switches::kForceDirectionRTL},
  851. };
  852. #if BUILDFLAG(IS_CHROMEOS_ASH)
  853. const FeatureEntry::Choice kSchedulerConfigurationChoices[] = {
  854. {flags_ui::kGenericExperimentChoiceDefault, "", ""},
  855. {flag_descriptions::kSchedulerConfigurationConservative,
  856. switches::kSchedulerConfiguration,
  857. switches::kSchedulerConfigurationConservative},
  858. {flag_descriptions::kSchedulerConfigurationPerformance,
  859. switches::kSchedulerConfiguration,
  860. switches::kSchedulerConfigurationPerformance},
  861. };
  862. #endif // BUILDFLAG(IS_CHROMEOS_ASH)
  863. #if BUILDFLAG(IS_CHROMEOS_ASH)
  864. const FeatureEntry::FeatureParam kDynamicSearchUpdateAnimationDuration_50[] = {
  865. {"search_result_translation_duration", "50"}};
  866. const FeatureEntry::FeatureParam kDynamicSearchUpdateAnimationDuration_100[] = {
  867. {"search_result_translation_duration", "100"}};
  868. const FeatureEntry::FeatureParam kDynamicSearchUpdateAnimationDuration_150[] = {
  869. {"search_result_translation_duration", "150"}};
  870. const FeatureEntry::FeatureVariation kDynamicSearchUpdateAnimationVariations[] =
  871. {{"50ms", kDynamicSearchUpdateAnimationDuration_50,
  872. std::size(kDynamicSearchUpdateAnimationDuration_50), nullptr},
  873. {"100ms", kDynamicSearchUpdateAnimationDuration_100,
  874. std::size(kDynamicSearchUpdateAnimationDuration_100), nullptr},
  875. {"150ms", kDynamicSearchUpdateAnimationDuration_150,
  876. std::size(kDynamicSearchUpdateAnimationDuration_150), nullptr}};
  877. #endif // BUILDFLAG(IS_CHROMEOS_ASH)
  878. #if BUILDFLAG(ENABLE_NACL)
  879. // Note: This needs to be kept in sync with parsing in
  880. // content/common/zygote/zygote_communication_linux.cc
  881. const FeatureEntry::Choice kVerboseLoggingInNaclChoices[] = {
  882. {flag_descriptions::kVerboseLoggingInNaclChoiceDefault, "", ""},
  883. {flag_descriptions::kVerboseLoggingInNaclChoiceLow,
  884. switches::kVerboseLoggingInNacl, switches::kVerboseLoggingInNaclChoiceLow},
  885. {flag_descriptions::kVerboseLoggingInNaclChoiceMedium,
  886. switches::kVerboseLoggingInNacl,
  887. switches::kVerboseLoggingInNaclChoiceMedium},
  888. {flag_descriptions::kVerboseLoggingInNaclChoiceHigh,
  889. switches::kVerboseLoggingInNacl,
  890. switches::kVerboseLoggingInNaclChoiceHigh},
  891. {flag_descriptions::kVerboseLoggingInNaclChoiceHighest,
  892. switches::kVerboseLoggingInNacl,
  893. switches::kVerboseLoggingInNaclChoiceHighest},
  894. {flag_descriptions::kVerboseLoggingInNaclChoiceDisabled,
  895. switches::kVerboseLoggingInNacl,
  896. switches::kVerboseLoggingInNaclChoiceDisabled},
  897. };
  898. #endif // ENABLE_NACL
  899. const FeatureEntry::Choice kSiteIsolationOptOutChoices[] = {
  900. {flag_descriptions::kSiteIsolationOptOutChoiceDefault, "", ""},
  901. {flag_descriptions::kSiteIsolationOptOutChoiceOptOut,
  902. switches::kDisableSiteIsolation, ""},
  903. };
  904. const FeatureEntry::Choice kForceColorProfileChoices[] = {
  905. {flags_ui::kGenericExperimentChoiceDefault, "", ""},
  906. {flag_descriptions::kForceColorProfileSRGB,
  907. switches::kForceDisplayColorProfile, "srgb"},
  908. {flag_descriptions::kForceColorProfileP3,
  909. switches::kForceDisplayColorProfile, "display-p3-d65"},
  910. {flag_descriptions::kForceColorProfileColorSpin,
  911. switches::kForceDisplayColorProfile, "color-spin-gamma24"},
  912. {flag_descriptions::kForceColorProfileSCRGBLinear,
  913. switches::kForceDisplayColorProfile, "scrgb-linear"},
  914. {flag_descriptions::kForceColorProfileHDR10,
  915. switches::kForceDisplayColorProfile, "hdr10"},
  916. };
  917. const FeatureEntry::Choice kMemlogModeChoices[] = {
  918. {flags_ui::kGenericExperimentChoiceDisabled, "", ""},
  919. {flag_descriptions::kMemlogModeMinimal, heap_profiling::kMemlogMode,
  920. heap_profiling::kMemlogModeMinimal},
  921. {flag_descriptions::kMemlogModeAll, heap_profiling::kMemlogMode,
  922. heap_profiling::kMemlogModeAll},
  923. {flag_descriptions::kMemlogModeBrowser, heap_profiling::kMemlogMode,
  924. heap_profiling::kMemlogModeBrowser},
  925. {flag_descriptions::kMemlogModeGpu, heap_profiling::kMemlogMode,
  926. heap_profiling::kMemlogModeGpu},
  927. {flag_descriptions::kMemlogModeAllRenderers, heap_profiling::kMemlogMode,
  928. heap_profiling::kMemlogModeAllRenderers},
  929. {flag_descriptions::kMemlogModeRendererSampling,
  930. heap_profiling::kMemlogMode, heap_profiling::kMemlogModeRendererSampling},
  931. };
  932. const FeatureEntry::Choice kMemlogStackModeChoices[] = {
  933. {flags_ui::kGenericExperimentChoiceDefault, "", ""},
  934. {flag_descriptions::kMemlogStackModeNative,
  935. heap_profiling::kMemlogStackMode, heap_profiling::kMemlogStackModeNative},
  936. {flag_descriptions::kMemlogStackModeNativeWithThreadNames,
  937. heap_profiling::kMemlogStackMode,
  938. heap_profiling::kMemlogStackModeNativeWithThreadNames},
  939. };
  940. const FeatureEntry::Choice kMemlogSamplingRateChoices[] = {
  941. {flags_ui::kGenericExperimentChoiceDefault, "", ""},
  942. {flag_descriptions::kMemlogSamplingRate10KB,
  943. heap_profiling::kMemlogSamplingRate,
  944. heap_profiling::kMemlogSamplingRate10KB},
  945. {flag_descriptions::kMemlogSamplingRate50KB,
  946. heap_profiling::kMemlogSamplingRate,
  947. heap_profiling::kMemlogSamplingRate50KB},
  948. {flag_descriptions::kMemlogSamplingRate100KB,
  949. heap_profiling::kMemlogSamplingRate,
  950. heap_profiling::kMemlogSamplingRate100KB},
  951. {flag_descriptions::kMemlogSamplingRate500KB,
  952. heap_profiling::kMemlogSamplingRate,
  953. heap_profiling::kMemlogSamplingRate500KB},
  954. {flag_descriptions::kMemlogSamplingRate1MB,
  955. heap_profiling::kMemlogSamplingRate,
  956. heap_profiling::kMemlogSamplingRate1MB},
  957. {flag_descriptions::kMemlogSamplingRate5MB,
  958. heap_profiling::kMemlogSamplingRate,
  959. heap_profiling::kMemlogSamplingRate5MB},
  960. };
  961. const FeatureEntry::FeatureParam kPageContentAnnotationsContentParams[] = {
  962. {"annotate_title_instead_of_page_content", "false"},
  963. {"extract_related_searches", "true"},
  964. {"max_size_for_text_dump_in_bytes", "5120"},
  965. {"write_to_history_service", "true"},
  966. };
  967. const FeatureEntry::FeatureParam kPageContentAnnotationsTitleParams[] = {
  968. {"annotate_title_instead_of_page_content", "true"},
  969. {"extract_related_searches", "true"},
  970. {"write_to_history_service", "true"},
  971. };
  972. const FeatureEntry::FeatureVariation kPageContentAnnotationsVariations[] = {
  973. {"All Annotations and Persistence on Content",
  974. kPageContentAnnotationsContentParams,
  975. std::size(kPageContentAnnotationsContentParams), nullptr},
  976. {"All Annotations and Persistence on Title",
  977. kPageContentAnnotationsTitleParams,
  978. std::size(kPageContentAnnotationsTitleParams), nullptr},
  979. };
  980. const FeatureEntry::FeatureParam
  981. kPageEntitiesPageContentAnnotationsAllLocalesParams[] = {
  982. {"supported_locales", "*"},
  983. };
  984. const FeatureEntry::FeatureVariation
  985. kPageEntitiesPageContentAnnotationsVariations[] = {
  986. {"All Supported Locales",
  987. kPageEntitiesPageContentAnnotationsAllLocalesParams,
  988. std::size(kPageEntitiesPageContentAnnotationsAllLocalesParams),
  989. nullptr},
  990. };
  991. const FeatureEntry::FeatureParam
  992. kJourneysSortClustersWithinBatchForQueryParams[] = {
  993. {"JourneysLocaleOrLanguageAllowlist", "*"},
  994. {"JourneysSortClustersWithinBatchForQuery", "true"},
  995. };
  996. const FeatureEntry::FeatureParam kJourneysDropHiddenVisitsParams[] = {
  997. {"JourneysLocaleOrLanguageAllowlist", "*"},
  998. {"drop_hidden_visits", "true"},
  999. };
  1000. const FeatureEntry::FeatureParam kJourneysShowAllVisitsParams[] = {
  1001. {"JourneysLocaleOrLanguageAllowlist", "*"},
  1002. // To show all visits, set the number of visits above the fold to a very
  1003. // high number. We drop the rest above this very high number because we
  1004. // definitely don't want to surface a Show More UI after that number.
  1005. {"JourneysNumVisitsToAlwaysShowAboveTheFold", "200"},
  1006. {"drop_hidden_visits", "true"},
  1007. };
  1008. const FeatureEntry::FeatureParam kJourneysAllLocalesParams[] = {
  1009. {"JourneysLocaleOrLanguageAllowlist", "*"},
  1010. };
  1011. const FeatureEntry::FeatureVariation kJourneysVariations[] = {
  1012. {"Sort Clusters Within Batch for Query",
  1013. kJourneysSortClustersWithinBatchForQueryParams,
  1014. std::size(kJourneysSortClustersWithinBatchForQueryParams), nullptr},
  1015. {"No 'Show More' - Drop hidden visits", kJourneysDropHiddenVisitsParams,
  1016. std::size(kJourneysDropHiddenVisitsParams), nullptr},
  1017. {"No 'Show More' - Show all visits", kJourneysShowAllVisitsParams,
  1018. std::size(kJourneysShowAllVisitsParams), nullptr},
  1019. {"All Supported Locales", kJourneysAllLocalesParams,
  1020. std::size(kJourneysAllLocalesParams), nullptr},
  1021. };
  1022. const FeatureEntry::FeatureParam kJourneysOmniboxActionOnAllURLsParams[] = {
  1023. {"omnibox_action_on_urls", "true"},
  1024. {"omnibox_action_on_noisy_urls", "true"},
  1025. {"omnibox_action_on_navigation_intents", "true"},
  1026. {"omnibox_action_with_pedals", "true"},
  1027. };
  1028. const FeatureEntry::FeatureParam kJourneysOmniboxActionOnNonNoisyURLsParams[] =
  1029. {
  1030. {"omnibox_action_on_urls", "true"},
  1031. {"omnibox_action_on_noisy_urls", "false"},
  1032. {"omnibox_action_on_navigation_intents", "true"},
  1033. {"omnibox_action_with_pedals", "true"},
  1034. };
  1035. const FeatureEntry::FeatureParam
  1036. kJourneysOmniboxActionOnNavigationIntentsParams[] = {
  1037. {"omnibox_action_on_urls", "false"},
  1038. {"omnibox_action_on_noisy_urls", "false"},
  1039. {"omnibox_action_on_navigation_intents", "true"},
  1040. {"omnibox_action_with_pedals", "false"},
  1041. };
  1042. const FeatureEntry::FeatureParam kJourneysOmniboxActionWithPedalsParams[] = {
  1043. {"omnibox_action_on_urls", "false"},
  1044. {"omnibox_action_on_noisy_urls", "false"},
  1045. {"omnibox_action_on_navigation_intents", "false"},
  1046. {"omnibox_action_with_pedals", "true"},
  1047. };
  1048. const FeatureEntry::FeatureVariation kJourneysOmniboxActionVariations[] = {
  1049. {"Action Chips on All URLs", kJourneysOmniboxActionOnAllURLsParams,
  1050. std::size(kJourneysOmniboxActionOnAllURLsParams), nullptr},
  1051. {"Action Chips on Non-Noisy URLs",
  1052. kJourneysOmniboxActionOnNonNoisyURLsParams,
  1053. std::size(kJourneysOmniboxActionOnNonNoisyURLsParams), nullptr},
  1054. {"Action Chips Enabled on Navigation Intents",
  1055. kJourneysOmniboxActionOnNavigationIntentsParams,
  1056. std::size(kJourneysOmniboxActionOnNavigationIntentsParams), nullptr},
  1057. {"Action Chips Enabled with Pedals", kJourneysOmniboxActionWithPedalsParams,
  1058. std::size(kJourneysOmniboxActionWithPedalsParams), nullptr},
  1059. };
  1060. const FeatureEntry::FeatureParam kSidePanelJourneysOpensFromOmniboxParams[] = {
  1061. {"SidePanelJourneysOpensFromOmnibox", "true"},
  1062. };
  1063. const FeatureEntry::FeatureVariation
  1064. kSidePanelJourneysOpensFromOmniboxVariations[] = {
  1065. {"Omnibox opens Side Panel Journeys",
  1066. kSidePanelJourneysOpensFromOmniboxParams,
  1067. std::size(kSidePanelJourneysOpensFromOmniboxParams), nullptr},
  1068. };
  1069. const FeatureEntry::FeatureParam kJourneysLabelsWithEntitiesParams[] = {
  1070. {"labels_from_entities", "true"},
  1071. };
  1072. const FeatureEntry::FeatureParam
  1073. kJourneysLabelsWithEntitiesNoHostnamesParams[] = {
  1074. {"labels_from_hostnames", "false"},
  1075. {"labels_from_entities", "true"},
  1076. };
  1077. const FeatureEntry::FeatureVariation kJourneysLabelsVariations[] = {
  1078. {"With Entities", kJourneysLabelsWithEntitiesParams,
  1079. std::size(kJourneysLabelsWithEntitiesParams), nullptr},
  1080. {"With Entities, No Hostnames",
  1081. kJourneysLabelsWithEntitiesNoHostnamesParams,
  1082. std::size(kJourneysLabelsWithEntitiesNoHostnamesParams), nullptr},
  1083. };
  1084. const FeatureEntry::FeatureParam
  1085. kJourneysOnDeviceClusteringNoContentClusteringParams[] = {
  1086. {"content_clustering_enabled", "false"},
  1087. };
  1088. const FeatureEntry::FeatureParam
  1089. kJourneysOnDeviceClusteringContentClusteringParams[] = {
  1090. {"content_clustering_enabled", "true"},
  1091. };
  1092. const FeatureEntry::FeatureParam kJourneysShowSingleDomainClustersParams[] = {
  1093. {"hide_single_domain_clusters_on_prominent_ui_surfaces", "false"},
  1094. };
  1095. const FeatureEntry::FeatureParam kJourneysHideSingleDomainClustersParams[] = {
  1096. {"hide_single_domain_clusters_on_prominent_ui_surfaces", "true"},
  1097. };
  1098. const FeatureEntry::FeatureVariation kJourneysOnDeviceClusteringVariations[] = {
  1099. {"No Content Clustering",
  1100. kJourneysOnDeviceClusteringNoContentClusteringParams,
  1101. std::size(kJourneysOnDeviceClusteringNoContentClusteringParams), nullptr},
  1102. {"Content Clustering", kJourneysOnDeviceClusteringContentClusteringParams,
  1103. std::size(kJourneysOnDeviceClusteringContentClusteringParams), nullptr},
  1104. {"Show Single Domain Journeys", kJourneysShowSingleDomainClustersParams,
  1105. std::size(kJourneysShowSingleDomainClustersParams), nullptr},
  1106. {"Hide Single Domain Journeys", kJourneysHideSingleDomainClustersParams,
  1107. std::size(kJourneysHideSingleDomainClustersParams), nullptr},
  1108. };
  1109. const FeatureEntry::FeatureParam
  1110. kJourneysOnDeviceClusteringKeywordFilteringAllVariationsParams[] = {
  1111. {"keyword_filter_on_categories", "false"},
  1112. {"keyword_filter_on_noisy_visits", "false"},
  1113. {"keyword_filter_on_visit_hosts", "false"},
  1114. {"keyword_filter_on_search_terms", "true"},
  1115. };
  1116. const FeatureEntry::FeatureParam
  1117. kJourneysOnDeviceClusteringKeywordFilteringNoCategoriesParams[] = {
  1118. {"keyword_filter_on_categories", "false"},
  1119. };
  1120. const FeatureEntry::FeatureParam
  1121. kJourneysOnDeviceClusteringKeywordFilteringNoNoisyVisitsParams[] = {
  1122. {"keyword_filter_on_noisy_visits", "false"},
  1123. };
  1124. const FeatureEntry::FeatureParam
  1125. kJourneysOnDeviceClusteringKeywordFilteringNoVisitHostsParams[] = {
  1126. {"keyword_filter_on_visit_hosts", "false"},
  1127. };
  1128. const FeatureEntry::FeatureParam
  1129. kJourneysOnDeviceClusteringKeywordFilteringWithSearchTermsParams[] = {
  1130. {"keyword_filter_on_search_terms", "true"},
  1131. };
  1132. const FeatureEntry::FeatureVariation
  1133. kJourneysOnDeviceClusteringKeywordFilteringVariations[] = {
  1134. {"All Variations",
  1135. kJourneysOnDeviceClusteringKeywordFilteringAllVariationsParams,
  1136. std::size(
  1137. kJourneysOnDeviceClusteringKeywordFilteringAllVariationsParams),
  1138. nullptr},
  1139. {"No Categories",
  1140. kJourneysOnDeviceClusteringKeywordFilteringNoCategoriesParams,
  1141. std::size(
  1142. kJourneysOnDeviceClusteringKeywordFilteringNoCategoriesParams),
  1143. nullptr},
  1144. {"No Noisy Visits",
  1145. kJourneysOnDeviceClusteringKeywordFilteringNoNoisyVisitsParams,
  1146. std::size(
  1147. kJourneysOnDeviceClusteringKeywordFilteringNoNoisyVisitsParams),
  1148. nullptr},
  1149. {"No Visit Hosts",
  1150. kJourneysOnDeviceClusteringKeywordFilteringNoVisitHostsParams,
  1151. std::size(
  1152. kJourneysOnDeviceClusteringKeywordFilteringNoVisitHostsParams),
  1153. nullptr},
  1154. {"With Search Terms",
  1155. kJourneysOnDeviceClusteringKeywordFilteringWithSearchTermsParams,
  1156. std::size(
  1157. kJourneysOnDeviceClusteringKeywordFilteringWithSearchTermsParams),
  1158. nullptr},
  1159. };
  1160. #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \
  1161. BUILDFLAG(IS_WIN) || BUILDFLAG(IS_FUCHSIA)
  1162. const FeatureEntry::FeatureParam kOmniboxDocumentProviderServerScoring[] = {
  1163. {"DocumentUseServerScore", "true"},
  1164. {"DocumentUseClientScore", "false"},
  1165. {"DocumentCapScorePerRank", "false"},
  1166. {"DocumentBoostOwned", "false"},
  1167. };
  1168. const FeatureEntry::FeatureParam
  1169. kOmniboxDocumentProviderServerScoringCappedByRank[] = {
  1170. {"DocumentUseServerScore", "true"},
  1171. {"DocumentUseClientScore", "false"},
  1172. {"DocumentCapScorePerRank", "true"},
  1173. {"DocumentBoostOwned", "true"},
  1174. };
  1175. const FeatureEntry::FeatureParam kOmniboxDocumentProviderClientScoring[] = {
  1176. {"DocumentUseServerScore", "false"},
  1177. {"DocumentUseClientScore", "true"},
  1178. {"DocumentCapScorePerRank", "false"},
  1179. {"DocumentBoostOwned", "false"},
  1180. };
  1181. const FeatureEntry::FeatureParam
  1182. kOmniboxDocumentProviderServerAndClientScoring[] = {
  1183. {"DocumentUseServerScore", "true"},
  1184. {"DocumentUseClientScore", "true"},
  1185. {"DocumentCapScorePerRank", "false"},
  1186. {"DocumentBoostOwned", "false"},
  1187. };
  1188. const FeatureEntry::FeatureVariation kOmniboxDocumentProviderVariations[] = {
  1189. {"server scores", kOmniboxDocumentProviderServerScoring,
  1190. std::size(kOmniboxDocumentProviderServerScoring), nullptr},
  1191. {"server scores capped by rank",
  1192. kOmniboxDocumentProviderServerScoringCappedByRank,
  1193. std::size(kOmniboxDocumentProviderServerScoringCappedByRank), nullptr},
  1194. {"client scores", kOmniboxDocumentProviderClientScoring,
  1195. std::size(kOmniboxDocumentProviderClientScoring), nullptr},
  1196. {"server and client scores", kOmniboxDocumentProviderServerAndClientScoring,
  1197. std::size(kOmniboxDocumentProviderServerAndClientScoring), nullptr}};
  1198. // A limited number of combinations of the rich autocompletion params.
  1199. const FeatureEntry::FeatureParam
  1200. kOmniboxRichAutocompletionConservativeModerate[] = {
  1201. {"RichAutocompletionAutocompleteTitles", "true"},
  1202. {"RichAutocompletionAutocompleteNonPrefixShortcutProvider", "true"},
  1203. {"RichAutocompletionAutocompleteTitlesMinChar", "3"},
  1204. {"RichAutocompletionAutocompleteNonPrefixMinChar", "5"}};
  1205. const FeatureEntry::FeatureParam
  1206. kOmniboxRichAutocompletionConservativeModerate2[] = {
  1207. {"RichAutocompletionAutocompleteTitlesShortcutProvider", "true"},
  1208. {"RichAutocompletionAutocompleteNonPrefixShortcutProvider", "true"},
  1209. {"RichAutocompletionAutocompleteTitlesMinChar", "3"},
  1210. {"RichAutocompletionAutocompleteNonPrefixMinChar", "5"}};
  1211. const FeatureEntry::FeatureParam kOmniboxRichAutocompletionAggressive2[] = {
  1212. {"RichAutocompletionAutocompleteTitlesShortcutProvider", "true"},
  1213. {"RichAutocompletionAutocompleteTitlesMinChar", "2"},
  1214. {"RichAutocompletionAutocompleteShortcutText", "true"},
  1215. {"RichAutocompletionAutocompleteShortcutTextMinChar", "2"}};
  1216. const FeatureEntry::FeatureParam kOmniboxRichAutocompletionAggressive3[] = {
  1217. {"RichAutocompletionAutocompleteTitlesShortcutProvider", "true"},
  1218. {"RichAutocompletionAutocompleteTitlesMinChar", "3"},
  1219. {"RichAutocompletionAutocompleteShortcutText", "true"},
  1220. {"RichAutocompletionAutocompleteShortcutTextMinChar", "3"}};
  1221. const FeatureEntry::FeatureParam kOmniboxRichAutocompletionAggressive4[] = {
  1222. {"RichAutocompletionAutocompleteTitlesShortcutProvider", "true"},
  1223. {"RichAutocompletionAutocompleteTitlesMinChar", "4"},
  1224. {"RichAutocompletionAutocompleteShortcutText", "true"},
  1225. {"RichAutocompletionAutocompleteShortcutTextMinChar", "4"}};
  1226. const FeatureEntry::FeatureVariation
  1227. kOmniboxRichAutocompletionPromisingVariations[] = {
  1228. {"Conservative Moderate - Title, Shortcut Non-Prefix, min 3/5",
  1229. kOmniboxRichAutocompletionConservativeModerate,
  1230. std::size(kOmniboxRichAutocompletionConservativeModerate), nullptr},
  1231. {"Conservative Moderate 2 - Shortcut Title, Shortcut Non-Prefix, min "
  1232. "3/5",
  1233. kOmniboxRichAutocompletionConservativeModerate2,
  1234. std::size(kOmniboxRichAutocompletionConservativeModerate2), nullptr},
  1235. {"Aggressive 2 - Title Shortcut Title 2, Shortcut Text 2",
  1236. kOmniboxRichAutocompletionAggressive2,
  1237. std::size(kOmniboxRichAutocompletionAggressive2), nullptr},
  1238. {"Aggressive 3 - Title Shortcut Title 3, Shortcut Text 3",
  1239. kOmniboxRichAutocompletionAggressive3,
  1240. std::size(kOmniboxRichAutocompletionAggressive3), nullptr},
  1241. {"Aggressive 4 - Title Shortcut Title 4, Shortcut Text 4",
  1242. kOmniboxRichAutocompletionAggressive4,
  1243. std::size(kOmniboxRichAutocompletionAggressive4), nullptr},
  1244. };
  1245. #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) ||
  1246. // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_FUCHSIA)
  1247. const FeatureEntry::FeatureParam kOmniboxBookmarkPathsReplaceTitle[] = {
  1248. {"OmniboxBookmarkPathsUiReplaceTitle", "true"}};
  1249. const FeatureEntry::FeatureParam kOmniboxBookmarkPathsReplaceUrl[] = {
  1250. {"OmniboxBookmarkPathsUiReplaceUrl", "true"}};
  1251. const FeatureEntry::FeatureParam kOmniboxBookmarkPathsAppendAfterTitle[] = {
  1252. {"OmniboxBookmarkPathsUiAppendAfterTitle", "true"}};
  1253. const FeatureEntry::FeatureParam kOmniboxBookmarkPathsDynamicReplaceUrl[] = {
  1254. {"OmniboxBookmarkPathsUiDynamicReplaceUrl", "true"}};
  1255. const FeatureEntry::FeatureVariation kOmniboxBookmarkPathsVariations[] = {
  1256. {"Default UI (Title - URL)", {}, 0, nullptr},
  1257. {"Replace title (Path/Title - URL)", kOmniboxBookmarkPathsReplaceTitle,
  1258. std::size(kOmniboxBookmarkPathsReplaceTitle), nullptr},
  1259. {"Replace URL (Title - Path)", kOmniboxBookmarkPathsReplaceUrl,
  1260. std::size(kOmniboxBookmarkPathsReplaceUrl), nullptr},
  1261. {"Append after title (Title : Path - URL)",
  1262. kOmniboxBookmarkPathsAppendAfterTitle,
  1263. std::size(kOmniboxBookmarkPathsAppendAfterTitle), nullptr},
  1264. {"Dynamic Replace URL (Title - Path|URL)",
  1265. kOmniboxBookmarkPathsDynamicReplaceUrl,
  1266. std::size(kOmniboxBookmarkPathsDynamicReplaceUrl), nullptr}};
  1267. const FeatureEntry::FeatureParam kMaxZeroSuggestMatches5[] = {
  1268. {"MaxZeroSuggestMatches", "5"}};
  1269. const FeatureEntry::FeatureParam kMaxZeroSuggestMatches6[] = {
  1270. {"MaxZeroSuggestMatches", "6"}};
  1271. const FeatureEntry::FeatureParam kMaxZeroSuggestMatches7[] = {
  1272. {"MaxZeroSuggestMatches", "7"}};
  1273. const FeatureEntry::FeatureParam kMaxZeroSuggestMatches8[] = {
  1274. {"MaxZeroSuggestMatches", "8"}};
  1275. const FeatureEntry::FeatureParam kMaxZeroSuggestMatches9[] = {
  1276. {"MaxZeroSuggestMatches", "9"}};
  1277. const FeatureEntry::FeatureParam kMaxZeroSuggestMatches10[] = {
  1278. {"MaxZeroSuggestMatches", "10"}};
  1279. const FeatureEntry::FeatureParam kMaxZeroSuggestMatches11[] = {
  1280. {"MaxZeroSuggestMatches", "11"}};
  1281. const FeatureEntry::FeatureParam kMaxZeroSuggestMatches12[] = {
  1282. {"MaxZeroSuggestMatches", "12"}};
  1283. const FeatureEntry::FeatureParam kMaxZeroSuggestMatches13[] = {
  1284. {"MaxZeroSuggestMatches", "13"}};
  1285. const FeatureEntry::FeatureParam kMaxZeroSuggestMatches14[] = {
  1286. {"MaxZeroSuggestMatches", "14"}};
  1287. const FeatureEntry::FeatureParam kMaxZeroSuggestMatches15[] = {
  1288. {"MaxZeroSuggestMatches", "15"}};
  1289. const FeatureEntry::FeatureVariation kMaxZeroSuggestMatchesVariations[] = {
  1290. {"5", kMaxZeroSuggestMatches5, std::size(kMaxZeroSuggestMatches5), nullptr},
  1291. {"6", kMaxZeroSuggestMatches6, std::size(kMaxZeroSuggestMatches6), nullptr},
  1292. {"7", kMaxZeroSuggestMatches7, std::size(kMaxZeroSuggestMatches7), nullptr},
  1293. {"8", kMaxZeroSuggestMatches8, std::size(kMaxZeroSuggestMatches8), nullptr},
  1294. {"9", kMaxZeroSuggestMatches9, std::size(kMaxZeroSuggestMatches9), nullptr},
  1295. {"10", kMaxZeroSuggestMatches10, std::size(kMaxZeroSuggestMatches10),
  1296. nullptr},
  1297. {"11", kMaxZeroSuggestMatches11, std::size(kMaxZeroSuggestMatches11),
  1298. nullptr},
  1299. {"12", kMaxZeroSuggestMatches12, std::size(kMaxZeroSuggestMatches12),
  1300. nullptr},
  1301. {"13", kMaxZeroSuggestMatches13, std::size(kMaxZeroSuggestMatches13),
  1302. nullptr},
  1303. {"14", kMaxZeroSuggestMatches14, std::size(kMaxZeroSuggestMatches14),
  1304. nullptr},
  1305. {"15", kMaxZeroSuggestMatches15, std::size(kMaxZeroSuggestMatches15),
  1306. nullptr}};
  1307. const FeatureEntry::FeatureParam kOmniboxUIMaxAutocompleteMatches3[] = {
  1308. {OmniboxFieldTrial::kUIMaxAutocompleteMatchesParam, "3"}};
  1309. const FeatureEntry::FeatureParam kOmniboxUIMaxAutocompleteMatches4[] = {
  1310. {OmniboxFieldTrial::kUIMaxAutocompleteMatchesParam, "4"}};
  1311. const FeatureEntry::FeatureParam kOmniboxUIMaxAutocompleteMatches5[] = {
  1312. {OmniboxFieldTrial::kUIMaxAutocompleteMatchesParam, "5"}};
  1313. const FeatureEntry::FeatureParam kOmniboxUIMaxAutocompleteMatches6[] = {
  1314. {OmniboxFieldTrial::kUIMaxAutocompleteMatchesParam, "6"}};
  1315. const FeatureEntry::FeatureParam kOmniboxUIMaxAutocompleteMatches7[] = {
  1316. {OmniboxFieldTrial::kUIMaxAutocompleteMatchesParam, "7"}};
  1317. const FeatureEntry::FeatureParam kOmniboxUIMaxAutocompleteMatches8[] = {
  1318. {OmniboxFieldTrial::kUIMaxAutocompleteMatchesParam, "8"}};
  1319. const FeatureEntry::FeatureParam kOmniboxUIMaxAutocompleteMatches9[] = {
  1320. {OmniboxFieldTrial::kUIMaxAutocompleteMatchesParam, "9"}};
  1321. const FeatureEntry::FeatureParam kOmniboxUIMaxAutocompleteMatches10[] = {
  1322. {OmniboxFieldTrial::kUIMaxAutocompleteMatchesParam, "10"}};
  1323. const FeatureEntry::FeatureParam kOmniboxUIMaxAutocompleteMatches12[] = {
  1324. {OmniboxFieldTrial::kUIMaxAutocompleteMatchesParam, "12"}};
  1325. const FeatureEntry::FeatureVariation
  1326. kOmniboxUIMaxAutocompleteMatchesVariations[] = {
  1327. {"3 matches", kOmniboxUIMaxAutocompleteMatches3,
  1328. std::size(kOmniboxUIMaxAutocompleteMatches3), nullptr},
  1329. {"4 matches", kOmniboxUIMaxAutocompleteMatches4,
  1330. std::size(kOmniboxUIMaxAutocompleteMatches4), nullptr},
  1331. {"5 matches", kOmniboxUIMaxAutocompleteMatches5,
  1332. std::size(kOmniboxUIMaxAutocompleteMatches5), nullptr},
  1333. {"6 matches", kOmniboxUIMaxAutocompleteMatches6,
  1334. std::size(kOmniboxUIMaxAutocompleteMatches6), nullptr},
  1335. {"7 matches", kOmniboxUIMaxAutocompleteMatches7,
  1336. std::size(kOmniboxUIMaxAutocompleteMatches7), nullptr},
  1337. {"8 matches", kOmniboxUIMaxAutocompleteMatches8,
  1338. std::size(kOmniboxUIMaxAutocompleteMatches8), nullptr},
  1339. {"9 matches", kOmniboxUIMaxAutocompleteMatches9,
  1340. std::size(kOmniboxUIMaxAutocompleteMatches9), nullptr},
  1341. {"10 matches", kOmniboxUIMaxAutocompleteMatches10,
  1342. std::size(kOmniboxUIMaxAutocompleteMatches10), nullptr},
  1343. {"12 matches", kOmniboxUIMaxAutocompleteMatches12,
  1344. std::size(kOmniboxUIMaxAutocompleteMatches12), nullptr}};
  1345. const FeatureEntry::FeatureParam kOmniboxMaxURLMatches2[] = {
  1346. {OmniboxFieldTrial::kOmniboxMaxURLMatchesParam, "2"}};
  1347. const FeatureEntry::FeatureParam kOmniboxMaxURLMatches3[] = {
  1348. {OmniboxFieldTrial::kOmniboxMaxURLMatchesParam, "3"}};
  1349. const FeatureEntry::FeatureParam kOmniboxMaxURLMatches4[] = {
  1350. {OmniboxFieldTrial::kOmniboxMaxURLMatchesParam, "4"}};
  1351. const FeatureEntry::FeatureParam kOmniboxMaxURLMatches5[] = {
  1352. {OmniboxFieldTrial::kOmniboxMaxURLMatchesParam, "5"}};
  1353. const FeatureEntry::FeatureParam kOmniboxMaxURLMatches6[] = {
  1354. {OmniboxFieldTrial::kOmniboxMaxURLMatchesParam, "6"}};
  1355. const FeatureEntry::FeatureVariation kOmniboxMaxURLMatchesVariations[] = {
  1356. {"2 matches", kOmniboxMaxURLMatches2, std::size(kOmniboxMaxURLMatches2),
  1357. nullptr},
  1358. {"3 matches", kOmniboxMaxURLMatches3, std::size(kOmniboxMaxURLMatches3),
  1359. nullptr},
  1360. {"4 matches", kOmniboxMaxURLMatches4, std::size(kOmniboxMaxURLMatches4),
  1361. nullptr},
  1362. {"5 matches", kOmniboxMaxURLMatches5, std::size(kOmniboxMaxURLMatches5),
  1363. nullptr},
  1364. {"6 matches", kOmniboxMaxURLMatches6, std::size(kOmniboxMaxURLMatches6),
  1365. nullptr}};
  1366. const FeatureEntry::FeatureParam kOmniboxDynamicMaxAutocomplete90[] = {
  1367. {"OmniboxDynamicMaxAutocompleteUrlCutoff", "0"},
  1368. {"OmniboxDynamicMaxAutocompleteIncreasedLimit", "9"}};
  1369. const FeatureEntry::FeatureParam kOmniboxDynamicMaxAutocomplete91[] = {
  1370. {"OmniboxDynamicMaxAutocompleteUrlCutoff", "1"},
  1371. {"OmniboxDynamicMaxAutocompleteIncreasedLimit", "9"}};
  1372. const FeatureEntry::FeatureParam kOmniboxDynamicMaxAutocomplete92[] = {
  1373. {"OmniboxDynamicMaxAutocompleteUrlCutoff", "2"},
  1374. {"OmniboxDynamicMaxAutocompleteIncreasedLimit", "9"}};
  1375. const FeatureEntry::FeatureParam kOmniboxDynamicMaxAutocomplete100[] = {
  1376. {"OmniboxDynamicMaxAutocompleteUrlCutoff", "0"},
  1377. {"OmniboxDynamicMaxAutocompleteIncreasedLimit", "10"}};
  1378. const FeatureEntry::FeatureParam kOmniboxDynamicMaxAutocomplete101[] = {
  1379. {"OmniboxDynamicMaxAutocompleteUrlCutoff", "1"},
  1380. {"OmniboxDynamicMaxAutocompleteIncreasedLimit", "10"}};
  1381. const FeatureEntry::FeatureParam kOmniboxDynamicMaxAutocomplete102[] = {
  1382. {"OmniboxDynamicMaxAutocompleteUrlCutoff", "2"},
  1383. {"OmniboxDynamicMaxAutocompleteIncreasedLimit", "10"}};
  1384. const FeatureEntry::FeatureVariation
  1385. kOmniboxDynamicMaxAutocompleteVariations[] = {
  1386. {"9 suggestions if 0 or fewer URLs", kOmniboxDynamicMaxAutocomplete90,
  1387. std::size(kOmniboxDynamicMaxAutocomplete90), nullptr},
  1388. {"9 suggestions if 1 or fewer URLs", kOmniboxDynamicMaxAutocomplete91,
  1389. std::size(kOmniboxDynamicMaxAutocomplete91), nullptr},
  1390. {"9 suggestions if 2 or fewer URLs", kOmniboxDynamicMaxAutocomplete92,
  1391. std::size(kOmniboxDynamicMaxAutocomplete92), nullptr},
  1392. {"10 suggestions if 0 or fewer URLs", kOmniboxDynamicMaxAutocomplete100,
  1393. std::size(kOmniboxDynamicMaxAutocomplete100), nullptr},
  1394. {"10 suggestions if 1 or fewer URLs", kOmniboxDynamicMaxAutocomplete101,
  1395. std::size(kOmniboxDynamicMaxAutocomplete101), nullptr},
  1396. {"10 suggestions if 2 or fewer URLs", kOmniboxDynamicMaxAutocomplete102,
  1397. std::size(kOmniboxDynamicMaxAutocomplete102), nullptr}};
  1398. const FeatureEntry::FeatureParam
  1399. kOrganicRepeatableQueriesCappedWithHighPrivilege[] = {
  1400. {"MaxNumRepeatableQueries", "4"},
  1401. {"ScaleRepeatableQueriesScores", "true"},
  1402. {"PrivilegeRepeatableQueries", "true"}};
  1403. const FeatureEntry::FeatureParam
  1404. kOrganicRepeatableQueriesCappedWithLowPrivilege[] = {
  1405. {"MaxNumRepeatableQueries", "4"},
  1406. {"ScaleRepeatableQueriesScores", "true"},
  1407. {"PrivilegeRepeatableQueries", "false"}};
  1408. const FeatureEntry::FeatureParam
  1409. kOrganicRepeatableQueriesUncappedWithHighPrivilege[] = {
  1410. {"ScaleRepeatableQueriesScores", "true"},
  1411. {"PrivilegeRepeatableQueries", "true"}};
  1412. const FeatureEntry::FeatureParam
  1413. kOrganicRepeatableQueriesUncappedWithLowPrivilege[] = {
  1414. {"ScaleRepeatableQueriesScores", "true"},
  1415. {"PrivilegeRepeatableQueries", "false"}};
  1416. const FeatureEntry::FeatureVariation kOrganicRepeatableQueriesVariations[] = {
  1417. {"- No max, High privilege",
  1418. kOrganicRepeatableQueriesUncappedWithHighPrivilege,
  1419. std::size(kOrganicRepeatableQueriesUncappedWithHighPrivilege), nullptr},
  1420. {"- No max, Low privilege",
  1421. kOrganicRepeatableQueriesUncappedWithLowPrivilege,
  1422. std::size(kOrganicRepeatableQueriesUncappedWithLowPrivilege), nullptr},
  1423. {"- Max 4, High privilege",
  1424. kOrganicRepeatableQueriesCappedWithHighPrivilege,
  1425. std::size(kOrganicRepeatableQueriesCappedWithHighPrivilege), nullptr},
  1426. {"- Max 4, Low privilege", kOrganicRepeatableQueriesCappedWithLowPrivilege,
  1427. std::size(kOrganicRepeatableQueriesCappedWithLowPrivilege), nullptr},
  1428. };
  1429. const FeatureEntry::FeatureParam kMinimumTabWidthSettingPinned[] = {
  1430. {features::kMinimumTabWidthFeatureParameterName, "54"}};
  1431. const FeatureEntry::FeatureParam kMinimumTabWidthSettingMedium[] = {
  1432. {features::kMinimumTabWidthFeatureParameterName, "72"}};
  1433. const FeatureEntry::FeatureParam kMinimumTabWidthSettingLarge[] = {
  1434. {features::kMinimumTabWidthFeatureParameterName, "140"}};
  1435. const FeatureEntry::FeatureParam kMinimumTabWidthSettingFull[] = {
  1436. {features::kMinimumTabWidthFeatureParameterName, "256"}};
  1437. const FeatureEntry::FeatureVariation kTabScrollingVariations[] = {
  1438. {" - tabs shrink to pinned tab width", kMinimumTabWidthSettingPinned,
  1439. std::size(kMinimumTabWidthSettingPinned), nullptr},
  1440. {" - tabs shrink to a medium width", kMinimumTabWidthSettingMedium,
  1441. std::size(kMinimumTabWidthSettingMedium), nullptr},
  1442. {" - tabs shrink to a large width", kMinimumTabWidthSettingLarge,
  1443. std::size(kMinimumTabWidthSettingLarge), nullptr},
  1444. {" - tabs don't shrink", kMinimumTabWidthSettingFull,
  1445. std::size(kMinimumTabWidthSettingFull), nullptr}};
  1446. const FeatureEntry::FeatureParam kAlsoShowMediaTabsinOpenTabsSection[] = {
  1447. {features::kTabSearchAlsoShowMediaTabsinOpenTabsSectionParameterName,
  1448. "true"}};
  1449. const FeatureEntry::FeatureVariation kTabSearchMediaTabsVariations[] = {
  1450. {" - media tabs also shown in open tabs section",
  1451. kAlsoShowMediaTabsinOpenTabsSection,
  1452. std::size(kAlsoShowMediaTabsinOpenTabsSection), nullptr}};
  1453. const FeatureEntry::FeatureParam kTabSearchSearchThresholdSmall[] = {
  1454. {features::kTabSearchSearchThresholdName, "0.3"}};
  1455. const FeatureEntry::FeatureParam kTabSearchSearchThresholdMedium[] = {
  1456. {features::kTabSearchSearchThresholdName, "0.6"}};
  1457. const FeatureEntry::FeatureParam kTabSearchSearchThresholdLarge[] = {
  1458. {features::kTabSearchSearchThresholdName, "0.8"}};
  1459. const FeatureEntry::FeatureVariation kTabSearchSearchThresholdVariations[] = {
  1460. {" - fuzzy level: small", kTabSearchSearchThresholdSmall,
  1461. std::size(kTabSearchSearchThresholdSmall), nullptr},
  1462. {" - fuzzy level: medium", kTabSearchSearchThresholdMedium,
  1463. std::size(kTabSearchSearchThresholdMedium), nullptr},
  1464. {" - fuzzy level: large", kTabSearchSearchThresholdLarge,
  1465. std::size(kTabSearchSearchThresholdLarge), nullptr}};
  1466. const FeatureEntry::FeatureParam kTabHoverCardImagesAlternateFormat[] = {
  1467. {features::kTabHoverCardAlternateFormat, "1"}};
  1468. const FeatureEntry::FeatureVariation kTabHoverCardImagesVariations[] = {
  1469. {" alternate hover card format", kTabHoverCardImagesAlternateFormat,
  1470. std::size(kTabHoverCardImagesAlternateFormat), nullptr}};
  1471. const FeatureEntry::FeatureParam kSharedHighlightingMaxContextWords5[] = {
  1472. {shared_highlighting::kSharedHighlightingRefinedMaxContextWordsName, "5"}};
  1473. const FeatureEntry::FeatureParam kSharedHighlightingMaxContextWords10[] = {
  1474. {shared_highlighting::kSharedHighlightingRefinedMaxContextWordsName, "10"}};
  1475. const FeatureEntry::FeatureParam kSharedHighlightingMaxContextWords15[] = {
  1476. {shared_highlighting::kSharedHighlightingRefinedMaxContextWordsName, "15"}};
  1477. const FeatureEntry::FeatureParam kSharedHighlightingMaxContextWords20[] = {
  1478. {shared_highlighting::kSharedHighlightingRefinedMaxContextWordsName, "20"}};
  1479. const FeatureEntry::FeatureVariation
  1480. kSharedHighlightingMaxContextWordsVariations[] = {
  1481. {" - maxContextWords: 5", kSharedHighlightingMaxContextWords5,
  1482. std::size(kSharedHighlightingMaxContextWords5), nullptr},
  1483. {" - maxContextWords: 10", kSharedHighlightingMaxContextWords10,
  1484. std::size(kSharedHighlightingMaxContextWords10), nullptr},
  1485. {" - maxContextWords: 15", kSharedHighlightingMaxContextWords15,
  1486. std::size(kSharedHighlightingMaxContextWords15), nullptr},
  1487. {" - maxContextWords: 20", kSharedHighlightingMaxContextWords20,
  1488. std::size(kSharedHighlightingMaxContextWords20), nullptr}};
  1489. #if !BUILDFLAG(IS_ANDROID)
  1490. const FeatureEntry::FeatureParam kNtpChromeCartModuleFakeData[] = {
  1491. {ntp_features::kNtpChromeCartModuleDataParam, "fake"},
  1492. {ntp_features::kNtpChromeCartModuleAbandonedCartDiscountParam, "true"}};
  1493. const FeatureEntry::FeatureParam kNtpChromeCartModuleAbandonedCartDiscount[] = {
  1494. {ntp_features::kNtpChromeCartModuleAbandonedCartDiscountParam, "true"},
  1495. {ntp_features::kNtpChromeCartModuleAbandonedCartDiscountUseUtmParam,
  1496. "true"},
  1497. {"partner-merchant-pattern",
  1498. "(electronicexpress.com|zazzle.com|wish.com|homesquare.com|iherb.com|"
  1499. "zappos.com|otterbox.com)"}};
  1500. const FeatureEntry::FeatureParam kNtpChromeCartModuleHeuristicsImprovement[] = {
  1501. {ntp_features::kNtpChromeCartModuleHeuristicsImprovementParam, "true"}};
  1502. const FeatureEntry::FeatureParam kNtpChromeCartModuleRBDAndCouponDiscount[] = {
  1503. {ntp_features::kNtpChromeCartModuleHeuristicsImprovementParam, "true"},
  1504. {ntp_features::kNtpChromeCartModuleAbandonedCartDiscountParam, "true"},
  1505. {ntp_features::kNtpChromeCartModuleAbandonedCartDiscountUseUtmParam,
  1506. "true"},
  1507. {"partner-merchant-pattern",
  1508. "(electronicexpress.com|zazzle.com|wish.com|homesquare.com)"},
  1509. {ntp_features::kNtpChromeCartModuleCouponParam, "true"}};
  1510. const FeatureEntry::FeatureVariation kNtpChromeCartModuleVariations[] = {
  1511. {"- Fake Data And Discount", kNtpChromeCartModuleFakeData,
  1512. std::size(kNtpChromeCartModuleFakeData), nullptr},
  1513. {"- Abandoned Cart Discount", kNtpChromeCartModuleAbandonedCartDiscount,
  1514. std::size(kNtpChromeCartModuleAbandonedCartDiscount), nullptr},
  1515. {"- Heuristics Improvement", kNtpChromeCartModuleHeuristicsImprovement,
  1516. std::size(kNtpChromeCartModuleHeuristicsImprovement), nullptr},
  1517. {"- RBD and Coupons", kNtpChromeCartModuleRBDAndCouponDiscount,
  1518. std::size(kNtpChromeCartModuleRBDAndCouponDiscount), nullptr},
  1519. };
  1520. // The following are consent v2 variations in the Chrome Cart module.
  1521. const flags_ui::FeatureEntry::FeatureParam kDiscountConsentNtpDialog[] = {
  1522. {commerce::kNtpChromeCartModuleDiscountConsentNtpVariationParam, "3"}};
  1523. const flags_ui::FeatureEntry::FeatureParam kDiscountConsentNtpNativeDialog[] = {
  1524. {commerce::kNtpChromeCartModuleDiscountConsentNtpVariationParam, "4"}};
  1525. const FeatureEntry::FeatureVariation kDiscountConsentV2Variations[] = {
  1526. {"WebUi Dialog Consent", kDiscountConsentNtpDialog,
  1527. std::size(kDiscountConsentNtpDialog), nullptr},
  1528. {"Native Dialog Consent", kDiscountConsentNtpNativeDialog,
  1529. std::size(kDiscountConsentNtpNativeDialog), nullptr},
  1530. };
  1531. const FeatureEntry::FeatureParam kNtpDriveModuleFakeData[] = {
  1532. {ntp_features::kNtpDriveModuleDataParam, "fake"}};
  1533. const FeatureEntry::FeatureParam kNtpDriveModuleManagedUsersOnly[] = {
  1534. {ntp_features::kNtpDriveModuleManagedUsersOnlyParam, "true"}};
  1535. const FeatureEntry::FeatureVariation kNtpDriveModuleVariations[] = {
  1536. {"- Fake Data", kNtpDriveModuleFakeData, std::size(kNtpDriveModuleFakeData),
  1537. nullptr},
  1538. {"- Managed Users Only", kNtpDriveModuleManagedUsersOnly,
  1539. std::size(kNtpDriveModuleManagedUsersOnly), nullptr},
  1540. };
  1541. const FeatureEntry::FeatureParam kNtpMiddleSlotPromoDismissalFakeData[] = {
  1542. {ntp_features::kNtpMiddleSlotPromoDismissalParam, "fake"}};
  1543. const FeatureEntry::FeatureVariation kNtpMiddleSlotPromoDismissalVariations[] =
  1544. {
  1545. {"- Fake Data", kNtpMiddleSlotPromoDismissalFakeData,
  1546. std::size(kNtpMiddleSlotPromoDismissalFakeData), nullptr},
  1547. };
  1548. const FeatureEntry::FeatureParam kNtpPhotosModuleFakeData0[] = {
  1549. {ntp_features::kNtpPhotosModuleDataParam, "0"}};
  1550. const FeatureEntry::FeatureParam kNtpPhotosModuleFakeData1[] = {
  1551. {ntp_features::kNtpPhotosModuleDataParam, "1"}};
  1552. const FeatureEntry::FeatureParam kNtpPhotosModuleFakeData2[] = {
  1553. {ntp_features::kNtpPhotosModuleDataParam, "2"}};
  1554. const FeatureEntry::FeatureParam kNtpPhotosModuleFakeData3[] = {
  1555. {ntp_features::kNtpPhotosModuleDataParam, "3"}};
  1556. const FeatureEntry::FeatureParam kNtpPhotosModuleFakeData4[] = {
  1557. {ntp_features::kNtpPhotosModuleDataParam, "4"}};
  1558. const FeatureEntry::FeatureVariation kNtpPhotosModuleVariations[] = {
  1559. {" - Fake memories: 0", kNtpPhotosModuleFakeData0,
  1560. std::size(kNtpPhotosModuleFakeData0), nullptr},
  1561. {" - Fake memories: 1", kNtpPhotosModuleFakeData1,
  1562. std::size(kNtpPhotosModuleFakeData1), nullptr},
  1563. {" - Fake memories: 2", kNtpPhotosModuleFakeData2,
  1564. std::size(kNtpPhotosModuleFakeData2), nullptr},
  1565. {" - Fake memories: 3", kNtpPhotosModuleFakeData3,
  1566. std::size(kNtpPhotosModuleFakeData3), nullptr},
  1567. {" - Fake memories: 4", kNtpPhotosModuleFakeData4,
  1568. std::size(kNtpPhotosModuleFakeData4), nullptr}};
  1569. const FeatureEntry::FeatureParam kNtpPhotosModuleOptInRHTitle[] = {
  1570. {ntp_features::kNtpPhotosModuleOptInTitleParam, "0"}};
  1571. const FeatureEntry::FeatureParam kNtpPhotosModuleOptInFavoriteTitle[] = {
  1572. {ntp_features::kNtpPhotosModuleOptInTitleParam, "1"}};
  1573. const FeatureEntry::FeatureParam kNtpPhotosModuleOptInPersonalizedTitle[] = {
  1574. {ntp_features::kNtpPhotosModuleOptInTitleParam, "2"}};
  1575. const FeatureEntry::FeatureParam kNtpPhotosModuleOptInTripsTitle[] = {
  1576. {ntp_features::kNtpPhotosModuleOptInTitleParam, "3"}};
  1577. const FeatureEntry::FeatureVariation kNtpPhotosModuleOptInTitleVariations[] = {
  1578. {" - Recent Highlights", kNtpPhotosModuleOptInRHTitle,
  1579. std::size(kNtpPhotosModuleOptInRHTitle), nullptr},
  1580. {" - Favorite people", kNtpPhotosModuleOptInFavoriteTitle,
  1581. std::size(kNtpPhotosModuleOptInFavoriteTitle), nullptr},
  1582. {" - Personalized title", kNtpPhotosModuleOptInPersonalizedTitle,
  1583. std::size(kNtpPhotosModuleOptInPersonalizedTitle), nullptr},
  1584. {" - Trips title", kNtpPhotosModuleOptInTripsTitle,
  1585. std::size(kNtpPhotosModuleOptInTripsTitle), nullptr}};
  1586. const FeatureEntry::FeatureParam kNtpPhotosModuleLogo1ArtWork[] = {
  1587. {ntp_features::kNtpPhotosModuleOptInArtWorkParam, "1"}};
  1588. const FeatureEntry::FeatureParam kNtpPhotosModuleLogo2ArtWork[] = {
  1589. {ntp_features::kNtpPhotosModuleOptInArtWorkParam, "2"}};
  1590. const FeatureEntry::FeatureParam kNtpPhotosModuleIllustrationsArtWork[] = {
  1591. {ntp_features::kNtpPhotosModuleOptInArtWorkParam, "3"}};
  1592. const FeatureEntry::FeatureParam kNtpPhotosModuleStockpileArtWork[] = {
  1593. {ntp_features::kNtpPhotosModuleOptInArtWorkParam, "4"}};
  1594. const FeatureEntry::FeatureVariation kNtpPhotosModuleOptInArtWorkVariations[] =
  1595. {{" - Artwork with Logo - 1", kNtpPhotosModuleLogo1ArtWork,
  1596. std::size(kNtpPhotosModuleLogo1ArtWork), nullptr},
  1597. {" - Artwork with Logo - 2", kNtpPhotosModuleLogo2ArtWork,
  1598. std::size(kNtpPhotosModuleLogo2ArtWork), nullptr},
  1599. {" - Artwork with Illustrations", kNtpPhotosModuleIllustrationsArtWork,
  1600. std::size(kNtpPhotosModuleIllustrationsArtWork), nullptr},
  1601. {" - Artwork with Stockpile", kNtpPhotosModuleStockpileArtWork,
  1602. std::size(kNtpPhotosModuleStockpileArtWork), nullptr}};
  1603. const FeatureEntry::FeatureParam kRealboxMatchOmniboxThemeVar1[] = {
  1604. {ntp_features::kRealboxMatchOmniboxThemeVariantParam, "1"}};
  1605. const FeatureEntry::FeatureParam kRealboxMatchOmniboxThemeVar2[] = {
  1606. {ntp_features::kRealboxMatchOmniboxThemeVariantParam, "2"}};
  1607. const FeatureEntry::FeatureVariation kRealboxMatchOmniboxThemeVariations[] = {
  1608. {"(NTP background on steady state and Omnibox steady state background on "
  1609. "hover)",
  1610. kRealboxMatchOmniboxThemeVar1, std::size(kRealboxMatchOmniboxThemeVar1),
  1611. nullptr},
  1612. {"(NTP background on steady state and Omnibox active state background on "
  1613. "hover)",
  1614. kRealboxMatchOmniboxThemeVar2, std::size(kRealboxMatchOmniboxThemeVar2),
  1615. nullptr}};
  1616. const FeatureEntry::FeatureParam kRealboxMatchSearchboxThemeRoundedCorners[] = {
  1617. {ntp_features::kRealboxMatchSearchboxThemeParam, "1"}};
  1618. const FeatureEntry::FeatureVariation kRealboxMatchSearchboxThemeVariations[] = {
  1619. {"(Rounded Corners)", kRealboxMatchSearchboxThemeRoundedCorners,
  1620. std::size(kRealboxMatchSearchboxThemeRoundedCorners), nullptr}};
  1621. const FeatureEntry::FeatureParam kNtpRecipeTasksModuleFakeData[] = {
  1622. {ntp_features::kNtpRecipeTasksModuleDataParam, "fake"}};
  1623. const FeatureEntry::FeatureParam kNtpRecipeTasksModuleHistorical7Days[] = {
  1624. {ntp_features::kNtpRecipeTasksModuleExperimentGroupParam, "historical-7"}};
  1625. const FeatureEntry::FeatureParam kNtpRecipeTasksModuleHistorical14Days[] = {
  1626. {ntp_features::kNtpRecipeTasksModuleExperimentGroupParam, "historical-14"}};
  1627. const FeatureEntry::FeatureParam kNtpRecipeTasksModuleMix7Days[] = {
  1628. {ntp_features::kNtpRecipeTasksModuleExperimentGroupParam, "mix-7"}};
  1629. const FeatureEntry::FeatureParam kNtpRecipeTasksModuleMix14Days[] = {
  1630. {ntp_features::kNtpRecipeTasksModuleExperimentGroupParam, "mix-14"}};
  1631. const FeatureEntry::FeatureVariation kNtpRecipeTasksModuleVariations[] = {
  1632. {"- Fake Data", kNtpRecipeTasksModuleFakeData,
  1633. std::size(kNtpRecipeTasksModuleFakeData), nullptr},
  1634. {"- Historical Arm (7 days)", kNtpRecipeTasksModuleHistorical7Days,
  1635. std::size(kNtpRecipeTasksModuleHistorical7Days), "t3349934"},
  1636. {"- Historical Arm (14 days)", kNtpRecipeTasksModuleHistorical14Days,
  1637. std::size(kNtpRecipeTasksModuleHistorical14Days), "t3349935"},
  1638. {"- Recommended Mix Arm (7 days)", kNtpRecipeTasksModuleMix7Days,
  1639. std::size(kNtpRecipeTasksModuleMix7Days), "t3349936"},
  1640. {"- Recommended Mix Arm (14 days)", kNtpRecipeTasksModuleMix14Days,
  1641. std::size(kNtpRecipeTasksModuleMix14Days), "t3349937"},
  1642. };
  1643. const FeatureEntry::FeatureParam kNtpSafeBrowsingModuleFastCooldown[] = {
  1644. {ntp_features::kNtpSafeBrowsingModuleCooldownPeriodDaysParam, "0.001"},
  1645. {ntp_features::kNtpSafeBrowsingModuleCountMaxParam, "1"}};
  1646. const FeatureEntry::FeatureVariation kNtpSafeBrowsingModuleVariations[] = {
  1647. {"(Fast Cooldown)", kNtpSafeBrowsingModuleFastCooldown,
  1648. std::size(kNtpSafeBrowsingModuleFastCooldown), nullptr},
  1649. };
  1650. #endif // !BUILDFLAG(IS_ANDROID)
  1651. #if BUILDFLAG(IS_ANDROID)
  1652. const FeatureEntry::FeatureParam kTranslateForceTriggerOnEnglishGeo[] = {
  1653. {language::kOverrideModelKey, language::kOverrideModelGeoValue},
  1654. {language::kEnforceRankerKey, "false"}};
  1655. const FeatureEntry::FeatureParam kTranslateForceTriggerOnEnglishBackoff[] = {
  1656. {language::kOverrideModelKey, language::kOverrideModelDefaultValue},
  1657. {language::kEnforceRankerKey, "false"},
  1658. {language::kBackoffThresholdKey, "0"}};
  1659. const FeatureEntry::FeatureVariation
  1660. kTranslateForceTriggerOnEnglishVariations[] = {
  1661. {"(Geo model without Ranker)", kTranslateForceTriggerOnEnglishGeo,
  1662. std::size(kTranslateForceTriggerOnEnglishGeo), nullptr},
  1663. {"(Zero threshold)", kTranslateForceTriggerOnEnglishBackoff,
  1664. std::size(kTranslateForceTriggerOnEnglishBackoff), nullptr}};
  1665. #endif // BUILDFLAG(IS_ANDROID)
  1666. const FeatureEntry::FeatureParam kOverridePrefsForHrefTranslateForceAuto[] = {
  1667. {translate::kForceAutoTranslateKey, "true"}};
  1668. const FeatureEntry::FeatureVariation
  1669. kOverrideLanguagePrefsForHrefTranslateVariations[] = {
  1670. {"(Force automatic translation of blocked languages for hrefTranslate)",
  1671. kOverridePrefsForHrefTranslateForceAuto,
  1672. std::size(kOverridePrefsForHrefTranslateForceAuto), nullptr}};
  1673. const FeatureEntry::FeatureVariation
  1674. kOverrideSitePrefsForHrefTranslateVariations[] = {
  1675. {"(Force automatic translation of blocked sites for hrefTranslate)",
  1676. kOverridePrefsForHrefTranslateForceAuto,
  1677. std::size(kOverridePrefsForHrefTranslateForceAuto), nullptr}};
  1678. const FeatureEntry::FeatureParam
  1679. kOverrideUnsupportedPageLanguageForHrefTranslateForceAuto[] = {
  1680. {"force-auto-translate-for-unsupported-page-language", "true"}};
  1681. const FeatureEntry::FeatureVariation
  1682. kOverrideUnsupportedPageLanguageForHrefTranslateVariations[] = {
  1683. {"(Force automatic translation of pages with unknown language for "
  1684. "hrefTranslate)",
  1685. kOverrideUnsupportedPageLanguageForHrefTranslateForceAuto,
  1686. std::size(kOverrideUnsupportedPageLanguageForHrefTranslateForceAuto),
  1687. nullptr}};
  1688. const FeatureEntry::FeatureParam
  1689. kOverrideSimilarLanguagesForHrefTranslateForceAuto[] = {
  1690. {"force-auto-translate-for-similar-languages", "true"}};
  1691. const FeatureEntry::FeatureVariation
  1692. kOverrideSimilarLanguagesForHrefTranslateVariations[] = {
  1693. {"(Force automatic translation of pages with the same language as the "
  1694. "target language for hrefTranslate)",
  1695. kOverrideSimilarLanguagesForHrefTranslateForceAuto,
  1696. std::size(kOverrideSimilarLanguagesForHrefTranslateForceAuto),
  1697. nullptr}};
  1698. #if BUILDFLAG(IS_ANDROID)
  1699. const FeatureEntry::FeatureParam kExploreSitesExperimental = {
  1700. chrome::android::explore_sites::kExploreSitesVariationParameterName,
  1701. chrome::android::explore_sites::kExploreSitesVariationExperimental};
  1702. const FeatureEntry::FeatureParam kExploreSitesDenseTitleBottom[] = {
  1703. {chrome::android::explore_sites::kExploreSitesDenseVariationParameterName,
  1704. chrome::android::explore_sites::
  1705. kExploreSitesDenseVariationDenseTitleBottom},
  1706. };
  1707. const FeatureEntry::FeatureParam kExploreSitesDenseTitleRight[] = {
  1708. {chrome::android::explore_sites::kExploreSitesDenseVariationParameterName,
  1709. chrome::android::explore_sites::
  1710. kExploreSitesDenseVariationDenseTitleRight},
  1711. };
  1712. const FeatureEntry::FeatureVariation kExploreSitesVariations[] = {
  1713. {"Experimental", &kExploreSitesExperimental, 1, nullptr},
  1714. {"Dense Title Bottom", kExploreSitesDenseTitleBottom,
  1715. std::size(kExploreSitesDenseTitleBottom), nullptr},
  1716. {"Dense Title Right", kExploreSitesDenseTitleRight,
  1717. std::size(kExploreSitesDenseTitleRight), nullptr}};
  1718. const FeatureEntry::FeatureParam kRelatedSearchesUrl = {"stamp", "1Ru"};
  1719. const FeatureEntry::FeatureParam kRelatedSearchesContent = {"stamp", "1Rc"};
  1720. const FeatureEntry::FeatureVariation kRelatedSearchesVariations[] = {
  1721. {"from URL", &kRelatedSearchesUrl, 1, nullptr},
  1722. {"from content", &kRelatedSearchesContent, 1, nullptr},
  1723. };
  1724. const FeatureEntry::FeatureParam kRelatedSearchesUiVerbose = {"verbosity", "v"};
  1725. const FeatureEntry::FeatureParam kRelatedSearchesUiExtreme = {"verbosity", "x"};
  1726. const FeatureEntry::FeatureVariation kRelatedSearchesUiVariations[] = {
  1727. {"verbose", &kRelatedSearchesUiVerbose, 1, nullptr},
  1728. {"extreme", &kRelatedSearchesUiExtreme, 1, nullptr},
  1729. };
  1730. const FeatureEntry::FeatureParam kRelatedSearchesInBarNoShowDefaultChip = {
  1731. "default_query_chip", "false"};
  1732. const FeatureEntry::FeatureParam kRelatedSearchesInBarShowDefaultChip = {
  1733. "default_query_chip", "true"};
  1734. const FeatureEntry::FeatureParam
  1735. kRelatedSearchesInBarShowDefaultChipWith110SpEllipsis[] = {
  1736. {"default_query_chip", "true"},
  1737. {"default_query_max_width_sp", "110"}};
  1738. const FeatureEntry::FeatureParam
  1739. kRelatedSearchesInBarShowDefaultChipWith115SpEllipsis[] = {
  1740. {"default_query_chip", "true"},
  1741. {"default_query_max_width_sp", "115"}};
  1742. const FeatureEntry::FeatureParam
  1743. kRelatedSearchesInBarShowDefaultChipWith120SpEllipsis[] = {
  1744. {"default_query_chip", "true"},
  1745. {"default_query_max_width_sp", "120"}};
  1746. const FeatureEntry::FeatureVariation kRelatedSearchesInBarVariations[] = {
  1747. {"without default query chip", &kRelatedSearchesInBarNoShowDefaultChip, 1,
  1748. nullptr},
  1749. {"with default query chip", &kRelatedSearchesInBarShowDefaultChip, 1,
  1750. nullptr},
  1751. {"with 110sp ellipsized default query chip",
  1752. kRelatedSearchesInBarShowDefaultChipWith110SpEllipsis,
  1753. std::size(kRelatedSearchesInBarShowDefaultChipWith110SpEllipsis), nullptr},
  1754. {"with 115sp ellipsized default query chip",
  1755. kRelatedSearchesInBarShowDefaultChipWith115SpEllipsis,
  1756. std::size(kRelatedSearchesInBarShowDefaultChipWith115SpEllipsis), nullptr},
  1757. {"with 120sp ellipsized default query chip",
  1758. kRelatedSearchesInBarShowDefaultChipWith120SpEllipsis,
  1759. std::size(kRelatedSearchesInBarShowDefaultChipWith120SpEllipsis), nullptr},
  1760. };
  1761. const FeatureEntry::FeatureParam kRelatedSearchesAlternateUxNoShowDefaultChip =
  1762. {"default_query_chip", "false"};
  1763. const FeatureEntry::FeatureParam kRelatedSearchesAlternateUxShowDefaultChip = {
  1764. "default_query_chip", "true"};
  1765. const FeatureEntry::FeatureParam
  1766. kRelatedSearchesAlternateUxShowDefaultChipWith110SpEllipsis[] = {
  1767. {"default_query_chip", "true"},
  1768. {"default_query_max_width_sp", "110"}};
  1769. const FeatureEntry::FeatureParam
  1770. kRelatedSearchesAlternateUxShowDefaultChipWith115SpEllipsis[] = {
  1771. {"default_query_chip", "true"},
  1772. {"default_query_max_width_sp", "115"}};
  1773. const FeatureEntry::FeatureParam
  1774. kRelatedSearchesAlternateUxShowDefaultChipWith120SpEllipsis[] = {
  1775. {"default_query_chip", "true"},
  1776. {"default_query_max_width_sp", "120"}};
  1777. const FeatureEntry::FeatureVariation kRelatedSearchesAlternateUxVariations[] = {
  1778. {"without default query chip",
  1779. &kRelatedSearchesAlternateUxNoShowDefaultChip, 1, nullptr},
  1780. {"with default query chip", &kRelatedSearchesAlternateUxShowDefaultChip, 1,
  1781. nullptr},
  1782. {"with 110sp ellipsized default query chip",
  1783. kRelatedSearchesAlternateUxShowDefaultChipWith110SpEllipsis,
  1784. std::size(kRelatedSearchesAlternateUxShowDefaultChipWith110SpEllipsis),
  1785. nullptr},
  1786. {"with 115sp ellipsized default query chip",
  1787. kRelatedSearchesAlternateUxShowDefaultChipWith115SpEllipsis,
  1788. std::size(kRelatedSearchesAlternateUxShowDefaultChipWith115SpEllipsis),
  1789. nullptr},
  1790. {"with 120sp ellipsized default query chip",
  1791. kRelatedSearchesAlternateUxShowDefaultChipWith120SpEllipsis,
  1792. std::size(kRelatedSearchesAlternateUxShowDefaultChipWith120SpEllipsis),
  1793. nullptr},
  1794. };
  1795. #endif // BUILDFLAG(IS_ANDROID)
  1796. const FeatureEntry::FeatureParam kResamplingInputEventsLSQEnabled[] = {
  1797. {"predictor", features::kPredictorNameLsq}};
  1798. const FeatureEntry::FeatureParam kResamplingInputEventsKalmanEnabled[] = {
  1799. {"predictor", features::kPredictorNameKalman}};
  1800. const FeatureEntry::FeatureParam kResamplingInputEventsLinearFirstEnabled[] = {
  1801. {"predictor", features::kPredictorNameLinearFirst}};
  1802. const FeatureEntry::FeatureParam kResamplingInputEventsLinearSecondEnabled[] = {
  1803. {"predictor", features::kPredictorNameLinearSecond}};
  1804. const FeatureEntry::FeatureParam
  1805. kResamplingInputEventsLinearResamplingEnabled[] = {
  1806. {"predictor", features::kPredictorNameLinearResampling}};
  1807. const FeatureEntry::FeatureVariation kResamplingInputEventsFeatureVariations[] =
  1808. {{features::kPredictorNameLsq, kResamplingInputEventsLSQEnabled,
  1809. std::size(kResamplingInputEventsLSQEnabled), nullptr},
  1810. {features::kPredictorNameKalman, kResamplingInputEventsKalmanEnabled,
  1811. std::size(kResamplingInputEventsKalmanEnabled), nullptr},
  1812. {features::kPredictorNameLinearFirst,
  1813. kResamplingInputEventsLinearFirstEnabled,
  1814. std::size(kResamplingInputEventsLinearFirstEnabled), nullptr},
  1815. {features::kPredictorNameLinearSecond,
  1816. kResamplingInputEventsLinearSecondEnabled,
  1817. std::size(kResamplingInputEventsLinearSecondEnabled), nullptr},
  1818. {features::kPredictorNameLinearResampling,
  1819. kResamplingInputEventsLinearResamplingEnabled,
  1820. std::size(kResamplingInputEventsLinearResamplingEnabled), nullptr}};
  1821. const FeatureEntry::FeatureParam
  1822. kResamplingScrollEventsPredictionTimeBasedEnabled[] = {
  1823. {"mode", features::kPredictionTypeTimeBased},
  1824. {"latency", features::kPredictionTypeDefaultTime}};
  1825. const FeatureEntry::FeatureParam
  1826. kResamplingScrollEventsPredictionFramesBasedEnabled[] = {
  1827. {"mode", features::kPredictionTypeFramesBased},
  1828. {"latency", features::kPredictionTypeDefaultFramesRatio}};
  1829. const FeatureEntry::FeatureVariation
  1830. kResamplingScrollEventsExperimentalPredictionVariations[] = {
  1831. {features::kPredictionTypeTimeBased,
  1832. kResamplingScrollEventsPredictionTimeBasedEnabled,
  1833. std::size(kResamplingScrollEventsPredictionTimeBasedEnabled), nullptr},
  1834. {features::kPredictionTypeFramesBased,
  1835. kResamplingScrollEventsPredictionFramesBasedEnabled,
  1836. std::size(kResamplingScrollEventsPredictionFramesBasedEnabled),
  1837. nullptr}};
  1838. const FeatureEntry::FeatureParam kFilteringPredictionEmptyFilterEnabled[] = {
  1839. {"filter", features::kFilterNameEmpty}};
  1840. const FeatureEntry::FeatureParam kFilteringPredictionOneEuroFilterEnabled[] = {
  1841. {"filter", features::kFilterNameOneEuro}};
  1842. const FeatureEntry::FeatureVariation kFilteringPredictionFeatureVariations[] = {
  1843. {features::kFilterNameEmpty, kFilteringPredictionEmptyFilterEnabled,
  1844. std::size(kFilteringPredictionEmptyFilterEnabled), nullptr},
  1845. {features::kFilterNameOneEuro, kFilteringPredictionOneEuroFilterEnabled,
  1846. std::size(kFilteringPredictionOneEuroFilterEnabled), nullptr}};
  1847. #if BUILDFLAG(IS_ANDROID)
  1848. const FeatureEntry::FeatureParam kTabSwitcherOnReturn_Immediate[] = {
  1849. {"tab_switcher_on_return_time_ms", "0"}};
  1850. const FeatureEntry::FeatureParam kTabSwitcherOnReturn_1Minute[] = {
  1851. {"tab_switcher_on_return_time_ms", "60000"}};
  1852. const FeatureEntry::FeatureParam kTabSwitcherOnReturn_30Minutes[] = {
  1853. {"tab_switcher_on_return_time_ms", "1800000"}};
  1854. const FeatureEntry::FeatureParam kTabSwitcherOnReturn_60Minutes[] = {
  1855. {"tab_switcher_on_return_time_ms", "3600000"}};
  1856. const FeatureEntry::FeatureVariation kTabSwitcherOnReturnVariations[] = {
  1857. {"Immediate", kTabSwitcherOnReturn_Immediate,
  1858. std::size(kTabSwitcherOnReturn_30Minutes), nullptr},
  1859. {"1 minute", kTabSwitcherOnReturn_1Minute,
  1860. std::size(kTabSwitcherOnReturn_30Minutes), nullptr},
  1861. {"30 minutes", kTabSwitcherOnReturn_30Minutes,
  1862. std::size(kTabSwitcherOnReturn_30Minutes), nullptr},
  1863. {"60 minutes", kTabSwitcherOnReturn_60Minutes,
  1864. std::size(kTabSwitcherOnReturn_60Minutes), nullptr},
  1865. };
  1866. #endif // BUILDFLAG(IS_ANDROID)
  1867. #if BUILDFLAG(IS_ANDROID)
  1868. const FeatureEntry::FeatureParam kTabGridLayoutAndroid_NewTabVariation[] = {
  1869. {"tab_grid_layout_android_new_tab", "NewTabVariation"},
  1870. {"allow_to_refetch", "true"}};
  1871. const FeatureEntry::FeatureParam kTabGridLayoutAndroid_TallNTV[] = {
  1872. {"thumbnail_aspect_ratio", "0.85"},
  1873. {"allow_to_refetch", "true"},
  1874. {"tab_grid_layout_android_new_tab", "NewTabVariation"},
  1875. {"enable_launch_polish", "true"},
  1876. {"enable_launch_bug_fix", "true"}};
  1877. const FeatureEntry::FeatureParam kTabGridLayoutAndroid_SearchChip[] = {
  1878. {"enable_search_term_chip", "true"}};
  1879. const FeatureEntry::FeatureParam
  1880. kTabGridLayoutAndroid_TabGroupAutoCreation_TabGroupFirst[] = {
  1881. {"enable_tab_group_auto_creation", "false"},
  1882. {"show_open_in_tab_group_menu_item_first", "true"}};
  1883. const FeatureEntry::FeatureParam kTabGridLayoutAndroid_TabGroupAutoCreation[] =
  1884. {{"enable_tab_group_auto_creation", "false"},
  1885. {"show_open_in_tab_group_menu_item_first", "false"}};
  1886. const FeatureEntry::FeatureVariation kTabGridLayoutAndroidVariations[] = {
  1887. {"New Tab Variation", kTabGridLayoutAndroid_NewTabVariation,
  1888. std::size(kTabGridLayoutAndroid_NewTabVariation), nullptr},
  1889. {"Tall NTV", kTabGridLayoutAndroid_TallNTV,
  1890. std::size(kTabGridLayoutAndroid_TallNTV), nullptr},
  1891. {"Search term chip", kTabGridLayoutAndroid_SearchChip,
  1892. std::size(kTabGridLayoutAndroid_SearchChip), nullptr},
  1893. {"Without auto group", kTabGridLayoutAndroid_TabGroupAutoCreation,
  1894. std::size(kTabGridLayoutAndroid_TabGroupAutoCreation), nullptr},
  1895. {"Without auto group-group first",
  1896. kTabGridLayoutAndroid_TabGroupAutoCreation_TabGroupFirst,
  1897. std::size(kTabGridLayoutAndroid_TabGroupAutoCreation_TabGroupFirst),
  1898. nullptr},
  1899. };
  1900. const FeatureEntry::FeatureParam kStartSurfaceAndroid_SingleSurface[] = {
  1901. {"start_surface_variation", "single"},
  1902. {"show_tabs_in_mru_order", "true"}};
  1903. const FeatureEntry::FeatureParam kStartSurfaceAndroid_SingleSurface_V2[] = {
  1904. {"start_surface_variation", "single"},
  1905. {"show_last_active_tab_only", "true"},
  1906. {"open_ntp_instead_of_start", "true"}};
  1907. const FeatureEntry::FeatureParam kStartSurfaceAndroid_SingleSurfaceSingleTab[] =
  1908. {{"start_surface_variation", "single"},
  1909. {"show_last_active_tab_only", "true"},
  1910. {"hide_switch_when_no_incognito_tabs", "true"}};
  1911. const FeatureEntry::FeatureParam kStartSurfaceAndroid_CandidateA[] = {
  1912. {"start_surface_variation", "single"},
  1913. {"show_last_active_tab_only", "true"},
  1914. {"hide_switch_when_no_incognito_tabs", "true"},
  1915. {"tab_count_button_on_start_surface", "true"}};
  1916. const FeatureEntry::FeatureParam kStartSurfaceAndroid_CandidateA_SyncCheck[] = {
  1917. {"start_surface_variation", "single"},
  1918. {"show_last_active_tab_only", "true"},
  1919. {"hide_switch_when_no_incognito_tabs", "true"},
  1920. {"tab_count_button_on_start_surface", "true"},
  1921. {"check_sync_before_show_start_at_startup", "true"}};
  1922. const FeatureEntry::FeatureParam
  1923. kStartSurfaceAndroid_CandidateA_SigninPromoTimeLimit[] = {
  1924. {"start_surface_variation", "single"},
  1925. {"show_last_active_tab_only", "true"},
  1926. {"hide_switch_when_no_incognito_tabs", "true"},
  1927. {"tab_count_button_on_start_surface", "true"},
  1928. {"sign_in_promo_show_since_last_background_limit_ms", "30000"}};
  1929. const FeatureEntry::FeatureParam kStartSurfaceAndroid_CandidateB[] = {
  1930. {"start_surface_variation", "single"},
  1931. {"show_last_active_tab_only", "true"},
  1932. {"hide_switch_when_no_incognito_tabs", "true"},
  1933. {"tab_count_button_on_start_surface", "true"},
  1934. {"open_ntp_instead_of_start", "true"}};
  1935. const FeatureEntry::FeatureParam
  1936. kStartSurfaceAndroid_CandidateB_AlwaysShowIncognito[] = {
  1937. {"start_surface_variation", "single"},
  1938. {"show_last_active_tab_only", "true"},
  1939. {"hide_switch_when_no_incognito_tabs", "false"},
  1940. {"tab_count_button_on_start_surface", "true"},
  1941. {"open_ntp_instead_of_start", "true"}};
  1942. const FeatureEntry::FeatureVariation kStartSurfaceAndroidVariations[] = {
  1943. {"Candidate A", kStartSurfaceAndroid_CandidateA,
  1944. std::size(kStartSurfaceAndroid_CandidateA), nullptr},
  1945. {"Candidate A + Sync check", kStartSurfaceAndroid_CandidateA_SyncCheck,
  1946. std::size(kStartSurfaceAndroid_CandidateA_SyncCheck), nullptr},
  1947. {"Candidate A + Sign in promo backgrounded time limit",
  1948. kStartSurfaceAndroid_CandidateA_SigninPromoTimeLimit,
  1949. std::size(kStartSurfaceAndroid_CandidateA_SigninPromoTimeLimit), nullptr},
  1950. {"Candidate B", kStartSurfaceAndroid_CandidateB,
  1951. std::size(kStartSurfaceAndroid_CandidateB), nullptr},
  1952. {"Candidate B + Always show Incognito icon",
  1953. kStartSurfaceAndroid_CandidateB_AlwaysShowIncognito,
  1954. std::size(kStartSurfaceAndroid_CandidateB_AlwaysShowIncognito), nullptr},
  1955. {"Single Surface", kStartSurfaceAndroid_SingleSurface,
  1956. std::size(kStartSurfaceAndroid_SingleSurface), nullptr},
  1957. {"Single Surface V2", kStartSurfaceAndroid_SingleSurface_V2,
  1958. std::size(kStartSurfaceAndroid_SingleSurface_V2), nullptr},
  1959. {"Single Surface + Single Tab", kStartSurfaceAndroid_SingleSurfaceSingleTab,
  1960. std::size(kStartSurfaceAndroid_SingleSurfaceSingleTab), nullptr},
  1961. };
  1962. const FeatureEntry::FeatureParam kFeedPositionAndroid_push_down_feed_small[] = {
  1963. {"push_down_feed_small", "true"}};
  1964. const FeatureEntry::FeatureParam kFeedPositionAndroid_push_down_feed_large[] = {
  1965. {"push_down_feed_large", "true"}};
  1966. const FeatureEntry::FeatureParam kFeedPositionAndroid_pull_up_feed[] = {
  1967. {"pull_up_feed", "true"}};
  1968. const FeatureEntry::FeatureParam
  1969. kFeedPositionAndroid_push_down_feed_large_target_feed_active[] = {
  1970. {"push_down_feed_large", "true"},
  1971. {"feed_active_targeting", "active"}};
  1972. const FeatureEntry::FeatureParam
  1973. kFeedPositionAndroid_push_down_feed_large_target_non_feed_active[] = {
  1974. {"push_down_feed_large", "true"},
  1975. {"feed_active_targeting", "non-active"}};
  1976. const FeatureEntry::FeatureParam
  1977. kFeedPositionAndroid_pull_up_feed_target_feed_active[] = {
  1978. {"pull_up_feed", "true"},
  1979. {"feed_active_targeting", "active"}};
  1980. const FeatureEntry::FeatureParam
  1981. kFeedPositionAndroid_pull_up_feed_target_non_feed_active[] = {
  1982. {"pull_up_feed", "true"},
  1983. {"feed_active_targeting", "non-active"}};
  1984. const FeatureEntry::FeatureVariation kFeedPositionAndroidVariations[] = {
  1985. {"Push down Feed (small)", kFeedPositionAndroid_push_down_feed_small,
  1986. std::size(kFeedPositionAndroid_push_down_feed_small), nullptr},
  1987. {"Push down Feed (large)", kFeedPositionAndroid_push_down_feed_large,
  1988. std::size(kFeedPositionAndroid_push_down_feed_large), nullptr},
  1989. {"Pull up Feed", kFeedPositionAndroid_pull_up_feed,
  1990. std::size(kFeedPositionAndroid_pull_up_feed), nullptr},
  1991. {"Push down Feed (large) with targeting Feed active users",
  1992. kFeedPositionAndroid_push_down_feed_large_target_feed_active,
  1993. std::size(kFeedPositionAndroid_push_down_feed_large_target_feed_active),
  1994. nullptr},
  1995. {"Push down Feed (large) with targeting non-Feed active users",
  1996. kFeedPositionAndroid_push_down_feed_large_target_non_feed_active,
  1997. std::size(
  1998. kFeedPositionAndroid_push_down_feed_large_target_non_feed_active),
  1999. nullptr},
  2000. {"Pull up Feed with targeting Feed active users",
  2001. kFeedPositionAndroid_pull_up_feed_target_feed_active,
  2002. std::size(kFeedPositionAndroid_pull_up_feed_target_feed_active), nullptr},
  2003. {"Pull up Feed with targeting non-Feed active users",
  2004. kFeedPositionAndroid_pull_up_feed_target_non_feed_active,
  2005. std::size(kFeedPositionAndroid_pull_up_feed_target_non_feed_active),
  2006. nullptr},
  2007. };
  2008. const FeatureEntry::FeatureParam kSearchResumption_use_new_service[] = {
  2009. {"use_new_service", "true"}};
  2010. const FeatureEntry::FeatureVariation
  2011. kSearchResumptionModuleAndroidVariations[] = {
  2012. {"Use New Service", kSearchResumption_use_new_service,
  2013. std::size(kSearchResumption_use_new_service), nullptr},
  2014. };
  2015. const FeatureEntry::FeatureParam kFeatureNotificationGuide_low_engaged[] = {
  2016. {"enable_feature_incognito_tab", "true"},
  2017. {"enable_feature_ntp_suggestion_card", "true"},
  2018. {"enable_feature_voice_search", "true"}};
  2019. const FeatureEntry::FeatureParam kFeatureNotificationGuide_default_browser[] = {
  2020. {"enable_feature_default_browser", "true"}};
  2021. const FeatureEntry::FeatureVariation kFeatureNotificationGuideVariations[] = {
  2022. {"Low engaged users", kFeatureNotificationGuide_low_engaged,
  2023. std::size(kFeatureNotificationGuide_low_engaged), nullptr},
  2024. {"Default browser", kFeatureNotificationGuide_default_browser,
  2025. std::size(kFeatureNotificationGuide_default_browser), nullptr},
  2026. };
  2027. const FeatureEntry::FeatureParam
  2028. kNotificationPermissionRationale_show_dialog_next_start_text_variant[] = {
  2029. {"always_show_rationale_before_requesting_permission", "true"},
  2030. {"notification_permission_dialog_text_variant_2", "true"},
  2031. {"permission_request_interval_days", "0"},
  2032. };
  2033. const FeatureEntry::FeatureParam
  2034. kNotificationPermissionRationale_show_dialog_next_start[] = {
  2035. {"always_show_rationale_before_requesting_permission", "true"},
  2036. {"notification_permission_dialog_text_variant_2", "false"},
  2037. {"permission_request_interval_days", "0"},
  2038. };
  2039. const FeatureEntry::FeatureVariation
  2040. kNotificationPermissionRationaleVariations[] = {
  2041. {"- Show rationale dialog on next startup",
  2042. kNotificationPermissionRationale_show_dialog_next_start,
  2043. std::size(kNotificationPermissionRationale_show_dialog_next_start),
  2044. nullptr},
  2045. {"- Show rationale dialog on next startup - alternative copy",
  2046. kNotificationPermissionRationale_show_dialog_next_start_text_variant,
  2047. std::size(
  2048. kNotificationPermissionRationale_show_dialog_next_start_text_variant),
  2049. nullptr},
  2050. };
  2051. const FeatureEntry::FeatureParam kWebFeed_accelerator[] = {
  2052. {"intro_style", "accelerator"}};
  2053. const FeatureEntry::FeatureParam kWebFeed_IPH[] = {{"intro_style", "IPH"}};
  2054. const FeatureEntry::FeatureVariation kWebFeedVariations[] = {
  2055. {"accelerator recommendations", kWebFeed_accelerator,
  2056. std::size(kWebFeed_accelerator), nullptr},
  2057. {"IPH recommendations", kWebFeed_IPH, std::size(kWebFeed_IPH), nullptr},
  2058. };
  2059. const FeatureEntry::FeatureParam kWebFeedAwareness_new_animation[] = {
  2060. {"awareness_style", "new animation"}};
  2061. const FeatureEntry::FeatureParam kWebFeedAwareness_IPH[] = {
  2062. {"awareness_style", "IPH"}};
  2063. const FeatureEntry::FeatureVariation kWebFeedAwarenessVariations[] = {
  2064. {"new animation", kWebFeedAwareness_new_animation,
  2065. std::size(kWebFeedAwareness_new_animation), nullptr},
  2066. {"IPH and dot", kWebFeedAwareness_IPH, std::size(kWebFeedAwareness_IPH),
  2067. nullptr},
  2068. };
  2069. const FeatureEntry::FeatureParam kFeedCloseRefresh_Open[] = {
  2070. {"require_interaction", "false"}};
  2071. const FeatureEntry::FeatureParam kFeedCloseRefresh_Interact[] = {
  2072. {"require_interaction", "true"}};
  2073. const FeatureEntry::FeatureVariation kFeedCloseRefreshVariations[] = {
  2074. {"Open", kFeedCloseRefresh_Open, std::size(kFeedCloseRefresh_Open),
  2075. nullptr},
  2076. {"Interact", kFeedCloseRefresh_Interact,
  2077. std::size(kFeedCloseRefresh_Interact), nullptr},
  2078. };
  2079. const FeatureEntry::FeatureParam kConditionalTabStripAndroid_Immediate[] = {
  2080. {"conditional_tab_strip_session_time_ms", "0"}};
  2081. const FeatureEntry::FeatureParam kConditionalTabStripAndroid_60Minutes[] = {
  2082. {"conditional_tab_strip_session_time_ms", "3600000"}};
  2083. const FeatureEntry::FeatureVariation kConditionalTabStripAndroidVariations[] = {
  2084. {"Immediate", kConditionalTabStripAndroid_Immediate,
  2085. std::size(kConditionalTabStripAndroid_Immediate), nullptr},
  2086. {"60 minutes", kConditionalTabStripAndroid_60Minutes,
  2087. std::size(kConditionalTabStripAndroid_60Minutes), nullptr},
  2088. };
  2089. #endif // BUILDFLAG(IS_ANDROID)
  2090. #if BUILDFLAG(IS_ANDROID)
  2091. const FeatureEntry::FeatureParam kAddToHomescreen_UseTextBubble[] = {
  2092. {"use_text_bubble", "true"}};
  2093. const FeatureEntry::FeatureParam kAddToHomescreen_UseMessage[] = {
  2094. {"use_message", "true"}};
  2095. const FeatureEntry::FeatureVariation kAddToHomescreenIPHVariations[] = {
  2096. {"Use Text Bubble", kAddToHomescreen_UseTextBubble,
  2097. std::size(kAddToHomescreen_UseTextBubble), nullptr},
  2098. {"Use Message", kAddToHomescreen_UseMessage,
  2099. std::size(kAddToHomescreen_UseMessage), nullptr}};
  2100. #endif
  2101. #if BUILDFLAG(IS_ANDROID)
  2102. const FeatureEntry::FeatureParam
  2103. kAutofillUseMobileLabelDisambiguationShowAll[] = {
  2104. {autofill::features::kAutofillUseMobileLabelDisambiguationParameterName,
  2105. autofill::features::
  2106. kAutofillUseMobileLabelDisambiguationParameterShowAll}};
  2107. const FeatureEntry::FeatureParam
  2108. kAutofillUseMobileLabelDisambiguationShowOne[] = {
  2109. {autofill::features::kAutofillUseMobileLabelDisambiguationParameterName,
  2110. autofill::features::
  2111. kAutofillUseMobileLabelDisambiguationParameterShowOne}};
  2112. const FeatureEntry::FeatureVariation
  2113. kAutofillUseMobileLabelDisambiguationVariations[] = {
  2114. {"(show all)", kAutofillUseMobileLabelDisambiguationShowAll,
  2115. std::size(kAutofillUseMobileLabelDisambiguationShowAll), nullptr},
  2116. {"(show one)", kAutofillUseMobileLabelDisambiguationShowOne,
  2117. std::size(kAutofillUseMobileLabelDisambiguationShowOne), nullptr}};
  2118. #endif // BUILDFLAG(IS_ANDROID)
  2119. #if BUILDFLAG(IS_ANDROID)
  2120. const FeatureEntry::FeatureParam kLensOnQuickActionSearchWidgetOnTablet[] = {
  2121. {"enableCameraAssistedSearchOnTabletWidget", "true"}};
  2122. const FeatureEntry::FeatureVariation
  2123. kLensOnQuickActionSearchWidgetVariations[] = {
  2124. {"(on Tablet)", kLensOnQuickActionSearchWidgetOnTablet,
  2125. std::size(kLensOnQuickActionSearchWidgetOnTablet), nullptr}};
  2126. const FeatureEntry::FeatureParam kLensCameraAssistedSearchLensButtonStart[] = {
  2127. {"searchBoxStartVariantForLensCameraAssistedSearch", "true"}};
  2128. const FeatureEntry::FeatureParam kLensCameraAssistedSearchLensButtonEnd[] = {
  2129. {"searchBoxStartVariantForLensCameraAssistedSearch", "false"}};
  2130. const FeatureEntry::FeatureParam
  2131. kLensCameraAssistedSkipAgsaVersionCheckEnabled[] = {
  2132. {"skipAgsaVersionCheck", "true"}};
  2133. const FeatureEntry::FeatureParam
  2134. kLensCameraAssistedSkipAgsaVersionCheckDisabled[] = {
  2135. {"skipAgsaVersionCheck", "false"}};
  2136. const FeatureEntry::FeatureParam kLensCameraAssistedSearchOnTablet[] = {
  2137. {"enableCameraAssistedSearchOnTablet", "true"}};
  2138. const FeatureEntry::FeatureVariation kLensCameraAssistedSearchVariations[] = {
  2139. {"(Lens then Mic)", kLensCameraAssistedSearchLensButtonStart,
  2140. std::size(kLensCameraAssistedSearchLensButtonStart), nullptr},
  2141. {"(Mic then Lens)", kLensCameraAssistedSearchLensButtonEnd,
  2142. std::size(kLensCameraAssistedSearchLensButtonEnd), nullptr},
  2143. {"(without AGSA version check)",
  2144. kLensCameraAssistedSkipAgsaVersionCheckEnabled,
  2145. std::size(kLensCameraAssistedSkipAgsaVersionCheckEnabled), nullptr},
  2146. {"(with AGSA version check )",
  2147. kLensCameraAssistedSkipAgsaVersionCheckDisabled,
  2148. std::size(kLensCameraAssistedSkipAgsaVersionCheckDisabled), nullptr},
  2149. {"(on Tablet)", kLensCameraAssistedSearchOnTablet,
  2150. std::size(kLensCameraAssistedSearchOnTablet), nullptr}};
  2151. const FeatureEntry::FeatureParam kLensContextMenuSearchOnTablet[] = {
  2152. {"enableContextMenuSearchOnTablet", "true"}};
  2153. const FeatureEntry::FeatureVariation kLensContextMenuSearchVariations[] = {
  2154. {"(on Tablet)", kLensContextMenuSearchOnTablet,
  2155. std::size(kLensContextMenuSearchOnTablet), nullptr},
  2156. };
  2157. #endif // BUILDFLAG(IS_ANDROID)
  2158. const FeatureEntry::Choice kNotificationSchedulerChoices[] = {
  2159. {flags_ui::kGenericExperimentChoiceDefault, "", ""},
  2160. {flag_descriptions::
  2161. kNotificationSchedulerImmediateBackgroundTaskDescription,
  2162. notifications::switches::kNotificationSchedulerImmediateBackgroundTask,
  2163. ""},
  2164. };
  2165. #if BUILDFLAG(IS_ANDROID)
  2166. const FeatureEntry::FeatureParam kAssistantConsentV2_reprompts_counter[] = {
  2167. {"count", "3"}};
  2168. const FeatureEntry::FeatureVariation kAssistantConsentV2_Variations[] = {
  2169. {"Limited Re-prompts", kAssistantConsentV2_reprompts_counter,
  2170. std::size(kAssistantConsentV2_reprompts_counter), nullptr},
  2171. };
  2172. const FeatureEntry::FeatureParam kOmniboxAssistantVoiceSearchGreyMic[] = {
  2173. {"min_agsa_version", "10.95"},
  2174. {"colorful_mic", "false"}};
  2175. const FeatureEntry::FeatureParam kOmniboxAssistantVoiceSearchColorfulMic[] = {
  2176. {"min_agsa_version", "10.95"},
  2177. {"colorful_mic", "true"}};
  2178. const FeatureEntry::FeatureParam
  2179. kOmniboxAssistantVoiceSearchNoMultiAccountCheck[] = {
  2180. {"min_agsa_version", "10.95"},
  2181. {"colorful_mic", "true"},
  2182. {"enable_multi_account_check", "false"}};
  2183. const FeatureEntry::FeatureVariation kOmniboxAssistantVoiceSearchVariations[] =
  2184. {
  2185. {"(grey mic)", kOmniboxAssistantVoiceSearchGreyMic,
  2186. std::size(kOmniboxAssistantVoiceSearchGreyMic), nullptr},
  2187. {"(colorful mic)", kOmniboxAssistantVoiceSearchColorfulMic,
  2188. std::size(kOmniboxAssistantVoiceSearchColorfulMic), nullptr},
  2189. {"(no account check)", kOmniboxAssistantVoiceSearchNoMultiAccountCheck,
  2190. std::size(kOmniboxAssistantVoiceSearchNoMultiAccountCheck), nullptr},
  2191. };
  2192. const FeatureEntry::FeatureParam kOmniboxModernizeVisualUpdateExcludeTablets[] =
  2193. {{"enable_modernize_visual_update_on_tablet", "false"}};
  2194. const FeatureEntry::FeatureParam kOmniboxModernizeVisualUpdateIncludeTablets[] =
  2195. {{"enable_modernize_visual_update_on_tablet", "true"}};
  2196. const FeatureEntry::FeatureVariation kOmniboxModernizeVisualUpdateVariations[] =
  2197. {
  2198. {"(exclude tablet)", kOmniboxModernizeVisualUpdateExcludeTablets,
  2199. std::size(kOmniboxModernizeVisualUpdateExcludeTablets), nullptr},
  2200. {"(include tablet)", kOmniboxModernizeVisualUpdateIncludeTablets,
  2201. std::size(kOmniboxModernizeVisualUpdateIncludeTablets), nullptr},
  2202. };
  2203. const FeatureEntry::FeatureParam
  2204. kPhotoPickerVideoSupportEnabledWithAnimatedThumbnails[] = {
  2205. {"animate_thumbnails", "true"}};
  2206. const FeatureEntry::FeatureVariation
  2207. kPhotoPickerVideoSupportFeatureVariations[] = {
  2208. {"(with animated thumbnails)",
  2209. kPhotoPickerVideoSupportEnabledWithAnimatedThumbnails,
  2210. std::size(kPhotoPickerVideoSupportEnabledWithAnimatedThumbnails),
  2211. nullptr}};
  2212. // Request Desktop Site on Tablet by default variations.
  2213. const FeatureEntry::FeatureParam kRequestDesktopSiteForTablets100[] = {
  2214. {"screen_width_dp", "100"},
  2215. {"enabled", "true"}};
  2216. const FeatureEntry::FeatureParam kRequestDesktopSiteForTablets600[] = {
  2217. {"screen_width_dp", "600"},
  2218. {"enabled", "true"}};
  2219. const FeatureEntry::FeatureParam kRequestDesktopSiteForTablets768[] = {
  2220. {"screen_width_dp", "768"},
  2221. {"enabled", "true"}};
  2222. const FeatureEntry::FeatureParam kRequestDesktopSiteForTablets960[] = {
  2223. {"screen_width_dp", "960"},
  2224. {"enabled", "true"}};
  2225. const FeatureEntry::FeatureParam kRequestDesktopSiteForTablets1024[] = {
  2226. {"screen_width_dp", "1024"},
  2227. {"enabled", "true"}};
  2228. const FeatureEntry::FeatureParam kRequestDesktopSiteForTablets1280[] = {
  2229. {"screen_width_dp", "1280"},
  2230. {"enabled", "true"}};
  2231. const FeatureEntry::FeatureParam kRequestDesktopSiteForTablets1920[] = {
  2232. {"screen_width_dp", "1920"},
  2233. {"enabled", "true"}};
  2234. const FeatureEntry::FeatureVariation kRequestDesktopSiteForTabletsVariations[] =
  2235. {{"for 100dp+ screens", kRequestDesktopSiteForTablets100,
  2236. std::size(kRequestDesktopSiteForTablets100), nullptr},
  2237. {"for 600dp+ screens", kRequestDesktopSiteForTablets600,
  2238. std::size(kRequestDesktopSiteForTablets600), nullptr},
  2239. {"for 768dp+ screens", kRequestDesktopSiteForTablets768,
  2240. std::size(kRequestDesktopSiteForTablets768), nullptr},
  2241. {"for 960dp+ screens", kRequestDesktopSiteForTablets960,
  2242. std::size(kRequestDesktopSiteForTablets960), nullptr},
  2243. {"for 1024dp+ screens", kRequestDesktopSiteForTablets1024,
  2244. std::size(kRequestDesktopSiteForTablets1024), nullptr},
  2245. {"for 1280dp+ screens", kRequestDesktopSiteForTablets1280,
  2246. std::size(kRequestDesktopSiteForTablets1280), nullptr},
  2247. {"for 1920dp+ screens", kRequestDesktopSiteForTablets1920,
  2248. std::size(kRequestDesktopSiteForTablets1920), nullptr}};
  2249. #endif // BUILDFLAG(IS_ANDROID)
  2250. // TODO(crbug.com/991082,1015377): Remove after proper support for back-forward
  2251. // cache is implemented.
  2252. const FeatureEntry::FeatureParam kBackForwardCache_ForceCaching[] = {
  2253. {"TimeToLiveInBackForwardCacheInSeconds", "300"},
  2254. {"should_ignore_blocklists", "true"},
  2255. {"enable_same_site", "true"}};
  2256. // With this, back-forward cache will be enabled on eligible pages when doing
  2257. // same-site navigations (instead of only cross-site navigations).
  2258. const FeatureEntry::FeatureParam kBackForwardCache_SameSite[] = {
  2259. {"enable_same_site", "true"}};
  2260. const FeatureEntry::FeatureVariation kBackForwardCacheVariations[] = {
  2261. {"same-site support (experimental)", kBackForwardCache_SameSite,
  2262. std::size(kBackForwardCache_SameSite), nullptr},
  2263. {"force caching all pages (experimental)", kBackForwardCache_ForceCaching,
  2264. std::size(kBackForwardCache_ForceCaching), nullptr},
  2265. };
  2266. #if BUILDFLAG(IS_CHROMEOS_ASH)
  2267. const FeatureEntry::Choice kEnableCrOSActionRecorderChoices[] = {
  2268. {flags_ui::kGenericExperimentChoiceDefault, "", ""},
  2269. {ash::switches::kCrOSActionRecorderWithHash,
  2270. ash::switches::kEnableCrOSActionRecorder,
  2271. ash::switches::kCrOSActionRecorderWithHash},
  2272. {ash::switches::kCrOSActionRecorderWithoutHash,
  2273. ash::switches::kEnableCrOSActionRecorder,
  2274. ash::switches::kCrOSActionRecorderWithoutHash},
  2275. {ash::switches::kCrOSActionRecorderCopyToDownloadDir,
  2276. ash::switches::kEnableCrOSActionRecorder,
  2277. ash::switches::kCrOSActionRecorderCopyToDownloadDir},
  2278. {ash::switches::kCrOSActionRecorderDisabled,
  2279. ash::switches::kEnableCrOSActionRecorder,
  2280. ash::switches::kCrOSActionRecorderDisabled},
  2281. {ash::switches::kCrOSActionRecorderStructuredDisabled,
  2282. ash::switches::kEnableCrOSActionRecorder,
  2283. ash::switches::kCrOSActionRecorderStructuredDisabled},
  2284. };
  2285. #endif // BUILDFLAG(IS_CHROMEOS_ASH)
  2286. #if BUILDFLAG(IS_ANDROID)
  2287. const FeatureEntry::Choice kWebOtpBackendChoices[] = {
  2288. {flags_ui::kGenericExperimentChoiceDefault, "", ""},
  2289. {flag_descriptions::kWebOtpBackendSmsVerification, switches::kWebOtpBackend,
  2290. switches::kWebOtpBackendSmsVerification},
  2291. {flag_descriptions::kWebOtpBackendUserConsent, switches::kWebOtpBackend,
  2292. switches::kWebOtpBackendUserConsent},
  2293. {flag_descriptions::kWebOtpBackendAuto, switches::kWebOtpBackend,
  2294. switches::kWebOtpBackendAuto},
  2295. };
  2296. const FeatureEntry::Choice kQueryTilesCountryChoices[] = {
  2297. {flags_ui::kGenericExperimentChoiceDefault, "", ""},
  2298. {flag_descriptions::kQueryTilesCountryCodeUS,
  2299. query_tiles::switches::kQueryTilesCountryCode, "US"},
  2300. {flag_descriptions::kQueryTilesCountryCodeIndia,
  2301. query_tiles::switches::kQueryTilesCountryCode, "IN"},
  2302. {flag_descriptions::kQueryTilesCountryCodeBrazil,
  2303. query_tiles::switches::kQueryTilesCountryCode, "BR"},
  2304. {flag_descriptions::kQueryTilesCountryCodeNigeria,
  2305. query_tiles::switches::kQueryTilesCountryCode, "NG"},
  2306. {flag_descriptions::kQueryTilesCountryCodeIndonesia,
  2307. query_tiles::switches::kQueryTilesCountryCode, "ID"},
  2308. };
  2309. #endif // BUILDFLAG(IS_ANDROID)
  2310. // The choices for --enable-experimental-cookie-features. This really should
  2311. // just be a SINGLE_VALUE_TYPE, but it is misleading to have the choices be
  2312. // labeled "Disabled"/"Enabled". So instead this is made to be a
  2313. // MULTI_VALUE_TYPE with choices "Default"/"Enabled".
  2314. const FeatureEntry::Choice kEnableExperimentalCookieFeaturesChoices[] = {
  2315. {flags_ui::kGenericExperimentChoiceDefault, "", ""},
  2316. {flags_ui::kGenericExperimentChoiceEnabled,
  2317. switches::kEnableExperimentalCookieFeatures, ""},
  2318. };
  2319. #if BUILDFLAG(IS_CHROMEOS_ASH)
  2320. const FeatureEntry::Choice kFrameThrottleFpsChoices[] = {
  2321. {flag_descriptions::kFrameThrottleFpsDefault, "", ""},
  2322. {flag_descriptions::kFrameThrottleFps5, ash::switches::kFrameThrottleFps,
  2323. "5"},
  2324. {flag_descriptions::kFrameThrottleFps10, ash::switches::kFrameThrottleFps,
  2325. "10"},
  2326. {flag_descriptions::kFrameThrottleFps15, ash::switches::kFrameThrottleFps,
  2327. "15"},
  2328. {flag_descriptions::kFrameThrottleFps20, ash::switches::kFrameThrottleFps,
  2329. "20"},
  2330. {flag_descriptions::kFrameThrottleFps25, ash::switches::kFrameThrottleFps,
  2331. "25"},
  2332. {flag_descriptions::kFrameThrottleFps30, ash::switches::kFrameThrottleFps,
  2333. "30"}};
  2334. #endif // BUILDFLAG(IS_CHROMEOS_ASH)
  2335. const FeatureEntry::FeatureParam kDrawPredictedPointExperiment1Point12Ms[] = {
  2336. {"predicted_points", features::kDraw1Point12Ms}};
  2337. const FeatureEntry::FeatureParam kDrawPredictedPointExperiment2Points6Ms[] = {
  2338. {"predicted_points", features::kDraw2Points6Ms}};
  2339. const FeatureEntry::FeatureParam kDrawPredictedPointExperiment1Point6Ms[] = {
  2340. {"predicted_points", features::kDraw1Point6Ms}};
  2341. const FeatureEntry::FeatureParam kDrawPredictedPointExperiment2Points3Ms[] = {
  2342. {"predicted_points", features::kDraw2Points3Ms}};
  2343. const FeatureEntry::FeatureVariation kDrawPredictedPointVariations[] = {
  2344. {flag_descriptions::kDraw1PredictedPoint12Ms,
  2345. kDrawPredictedPointExperiment1Point12Ms,
  2346. std::size(kDrawPredictedPointExperiment1Point12Ms), nullptr},
  2347. {flag_descriptions::kDraw2PredictedPoints6Ms,
  2348. kDrawPredictedPointExperiment2Points6Ms,
  2349. std::size(kDrawPredictedPointExperiment2Points6Ms), nullptr},
  2350. {flag_descriptions::kDraw1PredictedPoint6Ms,
  2351. kDrawPredictedPointExperiment1Point6Ms,
  2352. std::size(kDrawPredictedPointExperiment1Point6Ms), nullptr},
  2353. {flag_descriptions::kDraw2PredictedPoints3Ms,
  2354. kDrawPredictedPointExperiment2Points3Ms,
  2355. std::size(kDrawPredictedPointExperiment2Points3Ms), nullptr}};
  2356. const FeatureEntry::FeatureParam kFedCmVariationAutoSignin[] = {
  2357. {features::kFedCmAutoSigninFieldTrialParamName, "true"}};
  2358. const FeatureEntry::FeatureParam kFedCmVariationIdpSignout[] = {
  2359. {features::kFedCmIdpSignoutFieldTrialParamName, "true"}};
  2360. const FeatureEntry::FeatureParam kFedCmVariationIframe[] = {
  2361. {features::kFedCmIframeSupportFieldTrialParamName, "true"}};
  2362. const FeatureEntry::FeatureVariation kFedCmFeatureVariations[] = {
  2363. {"- with FedCM auto sign-in", kFedCmVariationAutoSignin,
  2364. std::size(kFedCmVariationAutoSignin), nullptr},
  2365. {"- with FedCM IDP sign-out", kFedCmVariationIdpSignout,
  2366. std::size(kFedCmVariationIdpSignout), nullptr},
  2367. {"- with iframe support", kFedCmVariationIframe,
  2368. std::size(kFedCmVariationIframe), nullptr},
  2369. };
  2370. #if BUILDFLAG(IS_CHROMEOS_ASH)
  2371. const FeatureEntry::Choice kForceControlFaceAeChoices[] = {
  2372. {"Default", "", ""},
  2373. {"Enable", media::switches::kForceControlFaceAe, "enable"},
  2374. {"Disable", media::switches::kForceControlFaceAe, "disable"}};
  2375. const FeatureEntry::Choice kHdrNetOverrideChoices[] = {
  2376. {"Default", "", ""},
  2377. {"Force enabled", media::switches::kHdrNetOverride,
  2378. media::switches::kHdrNetForceEnabled},
  2379. {"Force disabled", media::switches::kHdrNetOverride,
  2380. media::switches::kHdrNetForceDisabled}};
  2381. const FeatureEntry::Choice kAutoFramingOverrideChoices[] = {
  2382. {"Default", "", ""},
  2383. {"Force enabled", media::switches::kAutoFramingOverride,
  2384. media::switches::kAutoFramingForceEnabled},
  2385. {"Force disabled", media::switches::kAutoFramingOverride,
  2386. media::switches::kAutoFramingForceDisabled}};
  2387. #endif
  2388. #if BUILDFLAG(IS_CHROMEOS_ASH)
  2389. const FeatureEntry::Choice kCrostiniContainerChoices[] = {
  2390. {"Default", "", ""},
  2391. {"Buster", crostini::kCrostiniContainerFlag, "buster"},
  2392. {"Bullseye", crostini::kCrostiniContainerFlag, "bullseye"},
  2393. };
  2394. #endif // BUILDFLAG(IS_CHROMEOS_ASH)
  2395. // The variations of --password-domain-capabilities-fetching.
  2396. const FeatureEntry::FeatureParam
  2397. kPasswordDomainCapabilitiesFetchingVariationLiveExperiment[] = {
  2398. {password_manager::features::kPasswordChangeLiveExperimentParam.name,
  2399. "true"}};
  2400. const FeatureEntry::FeatureVariation
  2401. kPasswordDomainCapabilitiesFetchingFeatureVariations[] = {
  2402. {"Live experiment",
  2403. kPasswordDomainCapabilitiesFetchingVariationLiveExperiment,
  2404. std::size(kPasswordDomainCapabilitiesFetchingVariationLiveExperiment),
  2405. nullptr}};
  2406. // The variations of --password-change-support.
  2407. const FeatureEntry::FeatureParam
  2408. kPasswordChangeVariationWithForcedDialogAfterEverySuccessfulSubmission[] = {
  2409. {password_manager::features::
  2410. kPasswordChangeWithForcedDialogAfterEverySuccessfulSubmission,
  2411. "true"}};
  2412. const FeatureEntry::FeatureVariation kPasswordChangeFeatureVariations[] = {
  2413. {"Force dialog after every successful form submission.",
  2414. kPasswordChangeVariationWithForcedDialogAfterEverySuccessfulSubmission,
  2415. std::size(
  2416. kPasswordChangeVariationWithForcedDialogAfterEverySuccessfulSubmission),
  2417. nullptr}};
  2418. // The variations of --password-change-in-settings.
  2419. const FeatureEntry::FeatureParam
  2420. kPasswordChangeInSettingsVariationWithForcedWarningForEverySite[] = {
  2421. {password_manager::features::
  2422. kPasswordChangeInSettingsWithForcedWarningForEverySite,
  2423. "true"}};
  2424. const FeatureEntry::FeatureVariation
  2425. kPasswordChangeInSettingsFeatureVariations[] = {
  2426. {"Force leak warnings for every site in settings.",
  2427. kPasswordChangeInSettingsVariationWithForcedWarningForEverySite,
  2428. std::size(
  2429. kPasswordChangeInSettingsVariationWithForcedWarningForEverySite),
  2430. nullptr}};
  2431. #if BUILDFLAG(IS_ANDROID)
  2432. // The variations of --touch-to-fill-password-submission.
  2433. const FeatureEntry::FeatureParam
  2434. kTouchToFillPasswordSubmissionWithConservativeHeuristics[] = {
  2435. {password_manager::features::
  2436. kTouchToFillPasswordSubmissionWithConservativeHeuristics,
  2437. "true"}};
  2438. const FeatureEntry::FeatureVariation
  2439. kTouchToFillPasswordSubmissionVariations[] = {
  2440. {"Use conservative heuristics",
  2441. kTouchToFillPasswordSubmissionWithConservativeHeuristics,
  2442. std::size(kTouchToFillPasswordSubmissionWithConservativeHeuristics),
  2443. nullptr}};
  2444. #endif // BUILDFLAG(IS_ANDROID)
  2445. #if BUILDFLAG(IS_ANDROID)
  2446. const FeatureEntry::FeatureParam kPermissionIconTimeout6000[] = {
  2447. {"PermissionIconTimeoutMs", "6000"}};
  2448. const FeatureEntry::FeatureParam kPermissionIconTimeout4000[] = {
  2449. {"PermissionIconTimeoutMs", "4000"}};
  2450. const FeatureEntry::FeatureParam kPermissionIconTimeout3000[] = {
  2451. {"PermissionIconTimeoutMs", "3000"}};
  2452. const FeatureEntry::FeatureParam kPermissionIconTimeout2000[] = {
  2453. {"PermissionIconTimeoutMs", "2000"}};
  2454. const FeatureEntry::FeatureVariation
  2455. kPageInfoDiscoverabilityTimeoutVariations[] = {
  2456. {"Long (6s)", kPermissionIconTimeout6000,
  2457. std::size(kPermissionIconTimeout6000), nullptr},
  2458. {"Medium (4s)", kPermissionIconTimeout4000,
  2459. std::size(kPermissionIconTimeout4000), nullptr},
  2460. {"Short (3s)", kPermissionIconTimeout3000,
  2461. std::size(kPermissionIconTimeout3000), nullptr},
  2462. {"Extra-Short (2s)", kPermissionIconTimeout2000,
  2463. std::size(kPermissionIconTimeout2000), nullptr},
  2464. };
  2465. #endif // BUILDFLAG(IS_ANDROID)
  2466. #if BUILDFLAG(IS_ANDROID)
  2467. // The variations of --metrics-settings-android.
  2468. const FeatureEntry::FeatureParam kMetricsSettingsAndroidAlternativeOne[] = {
  2469. {"fre", "1"}};
  2470. const FeatureEntry::FeatureParam kMetricsSettingsAndroidAlternativeTwo[] = {
  2471. {"fre", "2"}};
  2472. const FeatureEntry::FeatureVariation kMetricsSettingsAndroidVariations[] = {
  2473. {"Alternative FRE 1", kMetricsSettingsAndroidAlternativeOne,
  2474. std::size(kMetricsSettingsAndroidAlternativeOne), nullptr},
  2475. {"Alternative FRE 2", kMetricsSettingsAndroidAlternativeTwo,
  2476. std::size(kMetricsSettingsAndroidAlternativeTwo), nullptr},
  2477. };
  2478. #endif // BUILDFLAG(IS_ANDROID)
  2479. #if !BUILDFLAG(IS_ANDROID)
  2480. // SCT Auditing feature variations.
  2481. const FeatureEntry::FeatureParam kSCTAuditingSamplingRateNone[] = {
  2482. {"sampling_rate", "0.0"}};
  2483. const FeatureEntry::FeatureParam kSCTAuditingSamplingRateAlternativeOne[] = {
  2484. {"sampling_rate", "0.0001"}};
  2485. const FeatureEntry::FeatureParam kSCTAuditingSamplingRateAlternativeTwo[] = {
  2486. {"sampling_rate", "0.001"}};
  2487. const FeatureEntry::FeatureVariation kSCTAuditingVariations[] = {
  2488. {"Sampling rate 0%", kSCTAuditingSamplingRateNone,
  2489. std::size(kSCTAuditingSamplingRateNone), nullptr},
  2490. {"Sampling rate 0.01%", kSCTAuditingSamplingRateAlternativeOne,
  2491. std::size(kSCTAuditingSamplingRateAlternativeOne), nullptr},
  2492. {"Sampling rate 0.1%", kSCTAuditingSamplingRateAlternativeTwo,
  2493. std::size(kSCTAuditingSamplingRateAlternativeTwo), nullptr},
  2494. };
  2495. #endif // !BUILDFLAG(IS_ANDROID)
  2496. const FeatureEntry::FeatureParam kUseDnsHttpsSvcbBoth[] = {
  2497. {"UseDnsHttpsSvcbEnableInsecure", "true"}};
  2498. const FeatureEntry::FeatureParam kUseDnsHttpsSvcbDohOnly[] = {
  2499. {"UseDnsHttpsSvcbEnableInsecure", "false"}};
  2500. const FeatureEntry::FeatureVariation kUseDnsHttpsSvcbVariations[] = {
  2501. {"for DNS-over-HTTPS and insecure DNS", kUseDnsHttpsSvcbBoth,
  2502. std::size(kUseDnsHttpsSvcbBoth), nullptr},
  2503. {"for DNS-over-HTTPS only", kUseDnsHttpsSvcbDohOnly,
  2504. std::size(kUseDnsHttpsSvcbDohOnly), nullptr},
  2505. };
  2506. #if BUILDFLAG(IS_ANDROID)
  2507. // The variations of ContentLanguagesInLanguagePicker.
  2508. const FeatureEntry::FeatureParam
  2509. kContentLanguagesInLanguagePickerDisableObservers[] = {
  2510. {language::kContentLanguagesDisableObserversParam, "true"}};
  2511. const FeatureEntry::FeatureVariation
  2512. kContentLanguagesInLanguaePickerVariations[] = {
  2513. {"Without observers", kContentLanguagesInLanguagePickerDisableObservers,
  2514. std::size(kContentLanguagesInLanguagePickerDisableObservers), nullptr},
  2515. };
  2516. #endif // BUILDFLAG(IS_ANDROID)
  2517. const FeatureEntry::FeatureParam kCheckOfflineCapabilityWarnOnly[] = {
  2518. {"check_mode", "warn_only"}};
  2519. const FeatureEntry::FeatureParam kCheckOfflineCapabilityEnforce[] = {
  2520. {"check_mode", "enforce"}};
  2521. const FeatureEntry::FeatureVariation kCheckOfflineCapabilityVariations[] = {
  2522. {"Warn-only", kCheckOfflineCapabilityWarnOnly,
  2523. std::size(kCheckOfflineCapabilityWarnOnly), nullptr},
  2524. {"Enforce", kCheckOfflineCapabilityEnforce,
  2525. std::size(kCheckOfflineCapabilityEnforce), nullptr},
  2526. };
  2527. #if BUILDFLAG(IS_CHROMEOS_ASH)
  2528. const FeatureEntry::FeatureParam kProductivityLauncher_WithoutContinue[] = {
  2529. {"enable_continue", "false"}};
  2530. const FeatureEntry::FeatureVariation kProductivityLauncherVariations[] = {
  2531. {"without Continue", kProductivityLauncher_WithoutContinue,
  2532. std::size(kProductivityLauncher_WithoutContinue), nullptr}};
  2533. const FeatureEntry::FeatureParam kLauncherItemSuggest_LongDelay10Mins[] = {
  2534. {"long_delay_minutes", "10"}};
  2535. const FeatureEntry::FeatureParam kLauncherItemSuggest_LongDelay12Hours[] = {
  2536. {"long_delay_minutes", "720"}};
  2537. const FeatureEntry::FeatureParam kLauncherItemSuggest_LongDelay24Hours[] = {
  2538. {"long_delay_minutes", "1440"}};
  2539. const FeatureEntry::FeatureParam kLauncherItemSuggest_LongDelay36Hours[] = {
  2540. {"long_delay_minutes", "2160"}};
  2541. const FeatureEntry::FeatureParam kLauncherItemSuggest_LongDelay48Hours[] = {
  2542. {"long_delay_minutes", "2880"}};
  2543. const FeatureEntry::FeatureParam kLauncherItemSuggest_LongDelay60Hours[] = {
  2544. {"long_delay_minutes", "3600"}};
  2545. const FeatureEntry::FeatureParam kLauncherItemSuggest_LongDelay72Hours[] = {
  2546. {"long_delay_minutes", "4320"}};
  2547. const FeatureEntry::FeatureVariation kLauncherItemSuggestVariations[] = {
  2548. {"with 10 minute long delay", kLauncherItemSuggest_LongDelay10Mins,
  2549. std::size(kLauncherItemSuggest_LongDelay10Mins), nullptr},
  2550. {"with 12 hour long delay", kLauncherItemSuggest_LongDelay12Hours,
  2551. std::size(kLauncherItemSuggest_LongDelay12Hours), nullptr},
  2552. {"with 24 hour long delay", kLauncherItemSuggest_LongDelay24Hours,
  2553. std::size(kLauncherItemSuggest_LongDelay24Hours), nullptr},
  2554. {"with 36 hour long delay", kLauncherItemSuggest_LongDelay36Hours,
  2555. std::size(kLauncherItemSuggest_LongDelay36Hours), nullptr},
  2556. {"with 48 hour long delay", kLauncherItemSuggest_LongDelay48Hours,
  2557. std::size(kLauncherItemSuggest_LongDelay48Hours), nullptr},
  2558. {"with 60 hour long delay", kLauncherItemSuggest_LongDelay60Hours,
  2559. std::size(kLauncherItemSuggest_LongDelay60Hours), nullptr},
  2560. {"with 72 hour long delay", kLauncherItemSuggest_LongDelay72Hours,
  2561. std::size(kLauncherItemSuggest_LongDelay72Hours), nullptr}};
  2562. #endif // BUILDFLAG(IS_CHROMEOS_ASH)
  2563. constexpr FeatureEntry::FeatureParam kPlatformProvidedTrustTokenIssuance[] = {
  2564. {"PlatformProvidedTrustTokenIssuance", "true"}};
  2565. constexpr FeatureEntry::FeatureVariation
  2566. kPlatformProvidedTrustTokensVariations[] = {
  2567. {"with platform-provided trust token issuance",
  2568. kPlatformProvidedTrustTokenIssuance,
  2569. std::size(kPlatformProvidedTrustTokenIssuance), nullptr}};
  2570. #if BUILDFLAG(IS_CHROMEOS_ASH)
  2571. constexpr char kPersonalizationHubInternalName[] = "personalization-hub";
  2572. constexpr char kWallpaperFastRefreshInternalName[] = "wallpaper-fast-refresh";
  2573. constexpr char kWallpaperFullScreenPreviewInternalName[] =
  2574. "wallpaper-fullscreen-preview";
  2575. constexpr char kWallpaperGooglePhotosIntegrationInternalName[] =
  2576. "wallpaper-google-photos-integration";
  2577. constexpr char kWallpaperPerDeskName[] = "per-desk-wallpaper";
  2578. #endif // BUILDFLAG(IS_CHROMEOS_ASH)
  2579. #if BUILDFLAG(ENABLE_PAINT_PREVIEW) && BUILDFLAG(IS_ANDROID)
  2580. const FeatureEntry::FeatureParam kPaintPreviewStartupWithAccessibility[] = {
  2581. {"has_accessibility_support", "true"}};
  2582. const FeatureEntry::FeatureVariation kPaintPreviewStartupVariations[] = {
  2583. {"with accessibility support", kPaintPreviewStartupWithAccessibility,
  2584. std::size(kPaintPreviewStartupWithAccessibility), nullptr}};
  2585. #endif // BUILDFLAG(ENABLE_PAINT_PREVIEW) && BUILDFLAG(IS_ANDROID)
  2586. #if BUILDFLAG(IS_CHROMEOS_ASH)
  2587. constexpr char kBorealisBigGlInternalName[] = "borealis-big-gl";
  2588. constexpr char kBorealisDiskManagementInternalName[] =
  2589. "borealis-disk-management";
  2590. constexpr char kBorealisForceBetaClientInternalName[] =
  2591. "borealis-force-beta-client";
  2592. constexpr char kBorealisLinuxModeInternalName[] = "borealis-linux-mode";
  2593. // This differs slightly from its symbol's name since "enabled" is used
  2594. // internally to refer to whether borealis is installed or not.
  2595. constexpr char kBorealisPermittedInternalName[] = "borealis-enabled";
  2596. constexpr char kBorealisStorageBallooningInternalName[] =
  2597. "borealis-storage-ballooning";
  2598. #endif // BUILDFLAG(IS_CHROMEOS_ASH)
  2599. #if BUILDFLAG(IS_CHROMEOS_ASH)
  2600. constexpr char kClipboardHistoryReorderInternalName[] =
  2601. "clipboard-history-reorder";
  2602. #endif // BUILDFLAG(IS_CHROMEOS_ASH)
  2603. #if BUILDFLAG(IS_ANDROID)
  2604. const FeatureEntry::FeatureParam kReadLaterUseRootBookmarkAsDefault[] = {
  2605. {"use_root_bookmark_as_default", "true"}};
  2606. const FeatureEntry::FeatureParam kReadLaterInAppMenu[] = {
  2607. {"use_root_bookmark_as_default", "true"},
  2608. {"reading_list_in_app_menu", "true"},
  2609. {"allow_bookmark_type_swapping", "true"}};
  2610. const FeatureEntry::FeatureParam kReadLaterSemiIntegrated[] = {
  2611. {"use_root_bookmark_as_default", "true"},
  2612. {"allow_bookmark_type_swapping", "true"}};
  2613. const FeatureEntry::FeatureParam kReadLaterNoCustomTab[] = {
  2614. {"use_root_bookmark_as_default", "true"},
  2615. {"use_cct", "false"}};
  2616. const FeatureEntry::FeatureVariation kReadLaterVariations[] = {
  2617. {"(use root bookmark as default)", kReadLaterUseRootBookmarkAsDefault,
  2618. std::size(kReadLaterUseRootBookmarkAsDefault), nullptr},
  2619. {"(with app menu item)", kReadLaterInAppMenu,
  2620. std::size(kReadLaterInAppMenu), nullptr},
  2621. {"(bookmarks semi-integration)", kReadLaterSemiIntegrated,
  2622. std::size(kReadLaterSemiIntegrated), nullptr},
  2623. {"(no custom tab)", kReadLaterNoCustomTab, std::size(kReadLaterNoCustomTab),
  2624. nullptr}};
  2625. const FeatureEntry::FeatureParam kBookmarksRefreshVisuals[] = {
  2626. {"bookmark_visuals_enabled", "true"}};
  2627. const FeatureEntry::FeatureParam kBookmarksRefreshCompactVisuals[] = {
  2628. {"bookmark_visuals_enabled", "true"},
  2629. {"bookmark_compact_visuals_enabled", "true"}};
  2630. const FeatureEntry::FeatureParam kBookmarksRefreshAppMenu[] = {
  2631. {"bookmark_in_app_menu", "true"}};
  2632. const FeatureEntry::FeatureParam kBookmarksRefreshNormal[] = {
  2633. {"bookmark_visuals_enabled", "true"},
  2634. {"bookmark_in_app_menu", "true"}};
  2635. const FeatureEntry::FeatureParam kBookmarksRefreshCompact[] = {
  2636. {"bookmark_visuals_enabled", "true"},
  2637. {"bookmark_compact_visuals_enabled", "true"},
  2638. {"bookmark_in_app_menu", "true"}};
  2639. const FeatureEntry::FeatureVariation kBookmarksRefreshVariations[] = {
  2640. {"(enabled w/ visuals)", kBookmarksRefreshNormal,
  2641. std::size(kBookmarksRefreshNormal), nullptr},
  2642. {"(enabled w/ compact visuals)", kBookmarksRefreshCompact,
  2643. std::size(kBookmarksRefreshCompact), nullptr},
  2644. {"(visuals only)", kBookmarksRefreshVisuals,
  2645. std::size(kBookmarksRefreshVisuals), nullptr},
  2646. {"(compact visuals only)", kBookmarksRefreshCompactVisuals,
  2647. std::size(kBookmarksRefreshCompactVisuals), nullptr},
  2648. {"(app menu item only)", kBookmarksRefreshAppMenu,
  2649. std::size(kBookmarksRefreshAppMenu), nullptr}};
  2650. #endif // BUILDFLAG(IS_ANDROID)
  2651. const FeatureEntry::FeatureParam kLargeFaviconFromGoogle96[] = {
  2652. {"favicon_size_in_dip", "96"}};
  2653. const FeatureEntry::FeatureParam kLargeFaviconFromGoogle128[] = {
  2654. {"favicon_size_in_dip", "128"}};
  2655. const FeatureEntry::FeatureVariation kLargeFaviconFromGoogleVariations[] = {
  2656. {"(96dip)", kLargeFaviconFromGoogle96, std::size(kLargeFaviconFromGoogle96),
  2657. nullptr},
  2658. {"(128dip)", kLargeFaviconFromGoogle128,
  2659. std::size(kLargeFaviconFromGoogle128), nullptr}};
  2660. #if BUILDFLAG(IS_CHROMEOS_ASH)
  2661. // Possible configurations for the snooping protection feature.
  2662. // Empty params configures the feature to apply a simple threshold to one
  2663. // sample.
  2664. const FeatureEntry::FeatureParam kSnoopingProtectionPrecision[] = {
  2665. {"SnoopingProtection_filter_config_case", "2"},
  2666. {"SnoopingProtection_positive_count_threshold", "1"},
  2667. {"SnoopingProtection_negative_count_threshold", "1"},
  2668. {"SnoopingProtection_uncertain_count_threshold", "1"},
  2669. {"SnoopingProtection_positive_score_threshold", "0"},
  2670. {"SnoopingProtection_negative_score_threshold", "0"}};
  2671. const FeatureEntry::FeatureParam kSnoopingProtectionConfidence[] = {
  2672. {"SnoopingProtection_filter_config_case", "2"},
  2673. {"SnoopingProtection_positive_count_threshold", "2"},
  2674. {"SnoopingProtection_negative_count_threshold", "2"},
  2675. {"SnoopingProtection_uncertain_count_threshold", "2"},
  2676. {"SnoopingProtection_positive_score_threshold", "0"},
  2677. {"SnoopingProtection_negative_score_threshold", "0"}};
  2678. const FeatureEntry::FeatureParam kSnoopingProtectionThreshold20[] = {
  2679. {"SnoopingProtection_filter_config_case", "2"},
  2680. {"SnoopingProtection_positive_count_threshold", "1"},
  2681. {"SnoopingProtection_negative_count_threshold", "1"},
  2682. {"SnoopingProtection_uncertain_count_threshold", "1"},
  2683. {"SnoopingProtection_positive_score_threshold", "20"},
  2684. {"SnoopingProtection_negative_score_threshold", "20"}};
  2685. const FeatureEntry::FeatureParam kSnoopingProtectionThresholdMinus20[] = {
  2686. {"SnoopingProtection_filter_config_case", "2"},
  2687. {"SnoopingProtection_positive_count_threshold", "1"},
  2688. {"SnoopingProtection_negative_count_threshold", "1"},
  2689. {"SnoopingProtection_uncertain_count_threshold", "1"},
  2690. {"SnoopingProtection_positive_score_threshold", "-20"},
  2691. {"SnoopingProtection_negative_score_threshold", "-20"}};
  2692. const FeatureEntry::FeatureParam kSnoopingProtectionThreshold40[] = {
  2693. {"SnoopingProtection_filter_config_case", "2"},
  2694. {"SnoopingProtection_positive_count_threshold", "1"},
  2695. {"SnoopingProtection_negative_count_threshold", "1"},
  2696. {"SnoopingProtection_uncertain_count_threshold", "1"},
  2697. {"SnoopingProtection_positive_score_threshold", "40"},
  2698. {"SnoopingProtection_negative_score_threshold", "40"}};
  2699. const FeatureEntry::FeatureParam kSnoopingProtectionThresholdMinus40[] = {
  2700. {"SnoopingProtection_filter_config_case", "2"},
  2701. {"SnoopingProtection_positive_count_threshold", "1"},
  2702. {"SnoopingProtection_negative_count_threshold", "1"},
  2703. {"SnoopingProtection_uncertain_count_threshold", "1"},
  2704. {"SnoopingProtection_positive_score_threshold", "-40"},
  2705. {"SnoopingProtection_negative_score_threshold", "-40"}};
  2706. const FeatureEntry::FeatureParam kSnoopingProtectionThreshold60[] = {
  2707. {"SnoopingProtection_filter_config_case", "2"},
  2708. {"SnoopingProtection_positive_count_threshold", "1"},
  2709. {"SnoopingProtection_negative_count_threshold", "1"},
  2710. {"SnoopingProtection_uncertain_count_threshold", "1"},
  2711. {"SnoopingProtection_positive_score_threshold", "60"},
  2712. {"SnoopingProtection_negative_score_threshold", "60"}};
  2713. const FeatureEntry::FeatureParam kSnoopingProtectionThresholdMinus60[] = {
  2714. {"SnoopingProtection_filter_config_case", "2"},
  2715. {"SnoopingProtection_positive_count_threshold", "1"},
  2716. {"SnoopingProtection_negative_count_threshold", "1"},
  2717. {"SnoopingProtection_uncertain_count_threshold", "1"},
  2718. {"SnoopingProtection_positive_score_threshold", "-60"},
  2719. {"SnoopingProtection_negative_score_threshold", "-60"}};
  2720. const FeatureEntry::FeatureVariation kSnoopingProtectionVariations[] = {
  2721. {"Precise", kSnoopingProtectionPrecision,
  2722. std::size(kSnoopingProtectionPrecision), nullptr},
  2723. {"Slow Precise", kSnoopingProtectionConfidence,
  2724. std::size(kSnoopingProtectionConfidence), nullptr},
  2725. {"Threshold20", kSnoopingProtectionThreshold20,
  2726. std::size(kSnoopingProtectionThreshold20), nullptr},
  2727. {"Threshold-20", kSnoopingProtectionThresholdMinus20,
  2728. std::size(kSnoopingProtectionThresholdMinus20), nullptr},
  2729. {"Threshold40", kSnoopingProtectionThreshold40,
  2730. std::size(kSnoopingProtectionThreshold40), nullptr},
  2731. {"Threshold-40", kSnoopingProtectionThresholdMinus40,
  2732. std::size(kSnoopingProtectionThresholdMinus40), nullptr},
  2733. {"Threshold60", kSnoopingProtectionThreshold60,
  2734. std::size(kSnoopingProtectionThreshold60), nullptr},
  2735. {"Threshold-60", kSnoopingProtectionThresholdMinus60,
  2736. std::size(kSnoopingProtectionThresholdMinus60), nullptr},
  2737. };
  2738. const FeatureEntry::FeatureParam kQuickDim10s[] = {
  2739. {"QuickDim_quick_dim_ms", "10000"},
  2740. {"QuickDim_filter_config_case", "2"},
  2741. {"QuickDim_positive_count_threshold", "1"},
  2742. {"QuickDim_negative_count_threshold", "2"},
  2743. {"QuickDim_uncertain_count_threshold", "2"},
  2744. {"QuickDim_positive_score_threshold", "0"},
  2745. {"QuickDim_negative_score_threshold", "0"},
  2746. };
  2747. const FeatureEntry::FeatureParam kQuickDim10sQuickLock70s[] = {
  2748. {"QuickDim_quick_dim_ms", "10000"},
  2749. {"QuickDim_quick_lock_ms", "70000"},
  2750. {"QuickDim_filter_config_case", "2"},
  2751. {"QuickDim_positive_count_threshold", "1"},
  2752. {"QuickDim_negative_count_threshold", "2"},
  2753. {"QuickDim_uncertain_count_threshold", "2"},
  2754. {"QuickDim_positive_score_threshold", "0"},
  2755. {"QuickDim_negative_score_threshold", "0"},
  2756. };
  2757. const FeatureEntry::FeatureParam kQuickDim10sQuickLock130s[] = {
  2758. {"QuickDim_quick_dim_ms", "10000"},
  2759. {"QuickDim_quick_lock_ms", "130000"},
  2760. {"QuickDim_filter_config_case", "2"},
  2761. {"QuickDim_positive_count_threshold", "1"},
  2762. {"QuickDim_negative_count_threshold", "2"},
  2763. {"QuickDim_uncertain_count_threshold", "2"},
  2764. {"QuickDim_positive_score_threshold", "0"},
  2765. {"QuickDim_negative_score_threshold", "0"},
  2766. };
  2767. const FeatureEntry::FeatureParam kQuickDim10sQuickLock130sFeedback[] = {
  2768. {"QuickDim_quick_dim_ms", "10000"},
  2769. {"QuickDim_quick_lock_ms", "130000"},
  2770. {"QuickDim_filter_config_case", "2"},
  2771. {"QuickDim_positive_count_threshold", "1"},
  2772. {"QuickDim_negative_count_threshold", "2"},
  2773. {"QuickDim_uncertain_count_threshold", "2"},
  2774. {"QuickDim_positive_score_threshold", "0"},
  2775. {"QuickDim_negative_score_threshold", "0"},
  2776. {"QuickDim_send_feedback_if_undimmed", "true"},
  2777. };
  2778. const FeatureEntry::FeatureParam kQuickDim10sQuickLock130sThreshold20[] = {
  2779. {"QuickDim_quick_dim_ms", "10000"},
  2780. {"QuickDim_quick_lock_ms", "130000"},
  2781. {"QuickDim_filter_config_case", "2"},
  2782. {"QuickDim_positive_count_threshold", "1"},
  2783. {"QuickDim_negative_count_threshold", "2"},
  2784. {"QuickDim_uncertain_count_threshold", "2"},
  2785. {"QuickDim_positive_score_threshold", "20"},
  2786. {"QuickDim_negative_score_threshold", "20"},
  2787. };
  2788. const FeatureEntry::FeatureParam kQuickDim10sQuickLock130sThresholdMinus20[] = {
  2789. {"QuickDim_quick_dim_ms", "10000"},
  2790. {"QuickDim_quick_lock_ms", "130000"},
  2791. {"QuickDim_filter_config_case", "2"},
  2792. {"QuickDim_positive_count_threshold", "1"},
  2793. {"QuickDim_negative_count_threshold", "2"},
  2794. {"QuickDim_uncertain_count_threshold", "2"},
  2795. {"QuickDim_positive_score_threshold", "-20"},
  2796. {"QuickDim_negative_score_threshold", "-20"},
  2797. };
  2798. const FeatureEntry::FeatureParam kQuickDim10sQuickLock130sThreshold40[] = {
  2799. {"QuickDim_quick_dim_ms", "10000"},
  2800. {"QuickDim_quick_lock_ms", "130000"},
  2801. {"QuickDim_filter_config_case", "2"},
  2802. {"QuickDim_positive_count_threshold", "1"},
  2803. {"QuickDim_negative_count_threshold", "2"},
  2804. {"QuickDim_uncertain_count_threshold", "2"},
  2805. {"QuickDim_positive_score_threshold", "40"},
  2806. {"QuickDim_negative_score_threshold", "40"},
  2807. };
  2808. const FeatureEntry::FeatureParam kQuickDim10sQuickLock130sThresholdMinus40[] = {
  2809. {"QuickDim_quick_dim_ms", "10000"},
  2810. {"QuickDim_quick_lock_ms", "130000"},
  2811. {"QuickDim_filter_config_case", "2"},
  2812. {"QuickDim_positive_count_threshold", "1"},
  2813. {"QuickDim_negative_count_threshold", "2"},
  2814. {"QuickDim_uncertain_count_threshold", "2"},
  2815. {"QuickDim_positive_score_threshold", "-40"},
  2816. {"QuickDim_negative_score_threshold", "-40"},
  2817. };
  2818. const FeatureEntry::FeatureParam kQuickDim45sQuickLock105s[] = {
  2819. {"QuickDim_quick_dim_ms", "45000"},
  2820. {"QuickDim_quick_lock_ms", "105000"},
  2821. {"QuickDim_filter_config_case", "2"},
  2822. {"QuickDim_positive_count_threshold", "1"},
  2823. {"QuickDim_negative_count_threshold", "2"},
  2824. {"QuickDim_uncertain_count_threshold", "2"},
  2825. {"QuickDim_positive_score_threshold", "0"},
  2826. {"QuickDim_negative_score_threshold", "0"},
  2827. };
  2828. const FeatureEntry::FeatureParam kQuickDim45sQuickLock165s[] = {
  2829. {"QuickDim_quick_dim_ms", "45000"},
  2830. {"QuickDim_quick_lock_ms", "165000"},
  2831. {"QuickDim_filter_config_case", "2"},
  2832. {"QuickDim_positive_count_threshold", "1"},
  2833. {"QuickDim_negative_count_threshold", "2"},
  2834. {"QuickDim_uncertain_count_threshold", "2"},
  2835. {"QuickDim_positive_score_threshold", "0"},
  2836. {"QuickDim_negative_score_threshold", "0"},
  2837. };
  2838. const FeatureEntry::FeatureParam kQuickDim120sQuickLock240s[] = {
  2839. {"QuickDim_quick_dim_ms", "120000"},
  2840. {"QuickDim_quick_lock_ms", "240000"},
  2841. {"QuickDim_filter_config_case", "2"},
  2842. {"QuickDim_positive_count_threshold", "1"},
  2843. {"QuickDim_negative_count_threshold", "2"},
  2844. {"QuickDim_uncertain_count_threshold", "2"},
  2845. {"QuickDim_positive_score_threshold", "0"},
  2846. {"QuickDim_negative_score_threshold", "0"},
  2847. };
  2848. const FeatureEntry::FeatureVariation kQuickDimVariations[] = {
  2849. {"Dim10sLock70s", kQuickDim10sQuickLock70s,
  2850. std::size(kQuickDim10sQuickLock70s), nullptr},
  2851. {"Dim10sLock130s", kQuickDim10sQuickLock130s,
  2852. std::size(kQuickDim10sQuickLock130s), nullptr},
  2853. {"Dim45sLock105s", kQuickDim45sQuickLock105s,
  2854. std::size(kQuickDim45sQuickLock105s), nullptr},
  2855. {"Dim45sLock165s", kQuickDim45sQuickLock165s,
  2856. std::size(kQuickDim45sQuickLock165s), nullptr},
  2857. {"Dim120sLock240s", kQuickDim120sQuickLock240s,
  2858. std::size(kQuickDim120sQuickLock240s), nullptr},
  2859. {"Dim10sNoLock", kQuickDim10s, std::size(kQuickDim10s), nullptr},
  2860. {"Dim10sLock130sThreshold20", kQuickDim10sQuickLock130sThreshold20,
  2861. std::size(kQuickDim10sQuickLock130sThreshold20), nullptr},
  2862. {"Dim10sLock130sThreshold-20", kQuickDim10sQuickLock130sThresholdMinus20,
  2863. std::size(kQuickDim10sQuickLock130sThresholdMinus20), nullptr},
  2864. {"Dim10sLock130sThreshold40", kQuickDim10sQuickLock130sThreshold40,
  2865. std::size(kQuickDim10sQuickLock130sThreshold40), nullptr},
  2866. {"Dim10sLock130sThreshold-40", kQuickDim10sQuickLock130sThresholdMinus40,
  2867. std::size(kQuickDim10sQuickLock130sThresholdMinus40), nullptr},
  2868. {"Dim10sLock130sWithFeedback", kQuickDim10sQuickLock130sFeedback,
  2869. std::size(kQuickDim10sQuickLock130sFeedback), nullptr},
  2870. };
  2871. #endif // BUILDFLAG(IS_CHROMEOS_ASH)
  2872. #if BUILDFLAG(IS_CHROMEOS_ASH)
  2873. const FeatureEntry::FeatureParam kMaxOverlays1 = {features::kMaxOverlaysParam,
  2874. "1"};
  2875. const FeatureEntry::FeatureParam kMaxOverlays2 = {features::kMaxOverlaysParam,
  2876. "2"};
  2877. const FeatureEntry::FeatureParam kMaxOverlays3 = {features::kMaxOverlaysParam,
  2878. "3"};
  2879. const FeatureEntry::FeatureParam kMaxOverlays4 = {features::kMaxOverlaysParam,
  2880. "4"};
  2881. const FeatureEntry::FeatureParam kMaxOverlays5 = {features::kMaxOverlaysParam,
  2882. "5"};
  2883. const FeatureEntry::FeatureParam kMaxOverlays6 = {features::kMaxOverlaysParam,
  2884. "6"};
  2885. const FeatureEntry::FeatureVariation kUseMultipleOverlaysVariations[] = {
  2886. {"1", &kMaxOverlays1, 1, nullptr}, {"2", &kMaxOverlays2, 1, nullptr},
  2887. {"3", &kMaxOverlays3, 1, nullptr}, {"4", &kMaxOverlays4, 1, nullptr},
  2888. {"5", &kMaxOverlays5, 1, nullptr}, {"6", &kMaxOverlays6, 1, nullptr}};
  2889. #endif // BUILDFLAG(IS_CHROMEOS_ASH)
  2890. #if BUILDFLAG(IS_ANDROID)
  2891. const FeatureEntry::FeatureParam kGridTabSwitcherForTabletsPolished[] = {
  2892. {"enable_launch_polish", "true"}};
  2893. const FeatureEntry::FeatureParam kGridTabSwitcherForTabletsDelayCreation[] = {
  2894. {"delay_creation", "true"},
  2895. {"enable_launch_polish", "true"}};
  2896. const FeatureEntry::FeatureVariation kGridTabSwitcherForTabletsVariations[] = {
  2897. {"(Polished)", kGridTabSwitcherForTabletsPolished,
  2898. std::size(kGridTabSwitcherForTabletsPolished), nullptr},
  2899. {"(DelayCreatePolish)", kGridTabSwitcherForTabletsDelayCreation,
  2900. std::size(kGridTabSwitcherForTabletsDelayCreation), nullptr},
  2901. };
  2902. #endif // BUILDFLAG(IS_ANDROID)
  2903. #if BUILDFLAG(IS_ANDROID)
  2904. const FeatureEntry::FeatureParam kTabStripImprovementsTabWidthShort[] = {
  2905. {"min_tab_width", "108"}};
  2906. const FeatureEntry::FeatureParam kTabStripImprovementsTabWidthMedium[] = {
  2907. {"min_tab_width", "156"}};
  2908. const FeatureEntry::FeatureVariation kTabStripImprovementsTabWidthVariations[] =
  2909. {
  2910. {"Short Tab Width", kTabStripImprovementsTabWidthShort,
  2911. std::size(kTabStripImprovementsTabWidthShort), nullptr},
  2912. {"Medium Tab Width", kTabStripImprovementsTabWidthMedium,
  2913. std::size(kTabStripImprovementsTabWidthMedium), nullptr},
  2914. };
  2915. #endif // BUILDFLAG(IS_ANDROID)
  2916. #if BUILDFLAG(IS_ANDROID)
  2917. const FeatureEntry::FeatureParam kUpmAndroidShadowSyncingUsers[] = {
  2918. {password_manager::features::kUpmExperimentVariationParam.name,
  2919. password_manager::features::kUpmExperimentVariationOption[1].name}};
  2920. const FeatureEntry::FeatureParam kUpmAndroidEnableWithLegacyUi[] = {
  2921. {password_manager::features::kUpmExperimentVariationParam.name,
  2922. password_manager::features::kUpmExperimentVariationOption[2].name}};
  2923. const FeatureEntry::FeatureParam kUpmAndroidEnableForAllUsers[] = {
  2924. {password_manager::features::kUpmExperimentVariationParam.name,
  2925. password_manager::features::kUpmExperimentVariationOption[3].name}};
  2926. const FeatureEntry::FeatureVariation
  2927. kUnifiedPasswordManagerAndroidVariations[] = {
  2928. // Skip kEnableForSyncingUsers which is the default Enabled param.
  2929. {"Shadow Traffic only", kUpmAndroidShadowSyncingUsers,
  2930. std::size(kUpmAndroidShadowSyncingUsers), nullptr},
  2931. {"With Legacy UI", kUpmAndroidEnableWithLegacyUi,
  2932. std::size(kUpmAndroidEnableWithLegacyUi), nullptr},
  2933. {"For All Users", kUpmAndroidEnableForAllUsers,
  2934. std::size(kUpmAndroidEnableForAllUsers), nullptr},
  2935. };
  2936. #endif // BUILDFLAG(IS_ANDROID)
  2937. const FeatureEntry::FeatureParam kUnthrottledNestedTimeout_NestingLevel = {
  2938. "nesting", "100"};
  2939. const FeatureEntry::FeatureVariation kUnthrottledNestedTimeout_Variations[] = {
  2940. {"100", &kUnthrottledNestedTimeout_NestingLevel, 1, nullptr},
  2941. };
  2942. constexpr FeatureEntry::FeatureParam kLensStandaloneWithSidePanel[] = {
  2943. {"enable-side-panel", "true"}};
  2944. constexpr FeatureEntry::FeatureVariation kLensStandaloneVariations[] = {
  2945. {"With Side Panel", kLensStandaloneWithSidePanel,
  2946. std::size(kLensStandaloneWithSidePanel), nullptr},
  2947. };
  2948. #if BUILDFLAG(IS_CHROMEOS_ASH)
  2949. const FeatureEntry::Choice kAlwaysEnableHdcpChoices[] = {
  2950. {flag_descriptions::kAlwaysEnableHdcpDefault, "", ""},
  2951. {flag_descriptions::kAlwaysEnableHdcpType0,
  2952. ash::switches::kAlwaysEnableHdcp, "type0"},
  2953. {flag_descriptions::kAlwaysEnableHdcpType1,
  2954. ash::switches::kAlwaysEnableHdcp, "type1"},
  2955. };
  2956. #endif // BUILDFLAG(IS_CHROMEOS_ASH)
  2957. #if !BUILDFLAG(IS_ANDROID)
  2958. const FeatureEntry::FeatureParam kDesktopSharePreviewVariant16{
  2959. "variant", share::kDesktopSharePreviewVariant16};
  2960. const FeatureEntry::FeatureParam kDesktopSharePreviewVariant40{
  2961. "variant", share::kDesktopSharePreviewVariant40};
  2962. const FeatureEntry::FeatureParam kDesktopSharePreviewVariant72{
  2963. "variant", share::kDesktopSharePreviewVariant72};
  2964. const FeatureEntry::FeatureVariation kDesktopSharePreviewVariations[] = {
  2965. {"16pt preview", &kDesktopSharePreviewVariant16, 1, nullptr},
  2966. {"40pt preview", &kDesktopSharePreviewVariant40, 1, nullptr},
  2967. {"72pt preview", &kDesktopSharePreviewVariant72, 1, nullptr},
  2968. };
  2969. #endif // !BUILDFLAG(IS_ANDROID)
  2970. #if !BUILDFLAG(IS_CHROMEOS)
  2971. const FeatureEntry::FeatureParam kDmTokenDeletionParam[] = {{"forced", "true"}};
  2972. const FeatureEntry::FeatureVariation kDmTokenDeletionVariation[] = {
  2973. {"(Forced)", kDmTokenDeletionParam, std::size(kDmTokenDeletionParam),
  2974. nullptr}};
  2975. #endif // !BUILDFLAG(IS_CHROMEOS)
  2976. // Feature variations for kIsolateSandboxedIframes.
  2977. #if !BUILDFLAG(IS_ANDROID)
  2978. // TODO(wjmaclean): Add FeatureParams for a per-frame grouping when support
  2979. // for it is added.
  2980. const FeatureEntry::FeatureParam kIsolateSandboxedIframesGroupingPerSite{
  2981. "grouping", "per-site"};
  2982. const FeatureEntry::FeatureParam kIsolateSandboxedIframesGroupingPerOrigin{
  2983. "grouping", "per-origin"};
  2984. const FeatureEntry::FeatureParam kIsolateSandboxedIframesGroupingPerDocument{
  2985. "grouping", "per-document"};
  2986. const FeatureEntry::FeatureVariation
  2987. kIsolateSandboxedIframesGroupingVariations[] = {
  2988. {"with grouping by URL's site",
  2989. &kIsolateSandboxedIframesGroupingPerSite, 1, nullptr},
  2990. {"with grouping by URL's origin",
  2991. &kIsolateSandboxedIframesGroupingPerOrigin, 1, nullptr},
  2992. {"with each sandboxed frame document in its own process",
  2993. &kIsolateSandboxedIframesGroupingPerDocument, 1, nullptr},
  2994. };
  2995. #endif // !BUILDFLAG(IS_ANDROID)
  2996. const FeatureEntry::FeatureParam
  2997. kServiceWorkerSkipIgnorableFetchHandler_NotSkip[] = {
  2998. {"SkipEmptyFetchHandler", "false"}};
  2999. const FeatureEntry::FeatureParam
  3000. kServiceWorkerSkipIgnorableFetchHandler_SkipEmpty[] = {
  3001. {"SkipEmptyFetchHandler", "true"}};
  3002. const FeatureEntry::FeatureVariation
  3003. kServiceWorkerSkipIgnorableFetchHandlerVariations[] = {
  3004. {"Not Skip", kServiceWorkerSkipIgnorableFetchHandler_NotSkip,
  3005. std::size(kServiceWorkerSkipIgnorableFetchHandler_NotSkip), nullptr},
  3006. {"Skip Empty", kServiceWorkerSkipIgnorableFetchHandler_SkipEmpty,
  3007. std::size(kServiceWorkerSkipIgnorableFetchHandler_SkipEmpty), nullptr},
  3008. };
  3009. // RECORDING USER METRICS FOR FLAGS:
  3010. // -----------------------------------------------------------------------------
  3011. // The first line of the entry is the internal name.
  3012. //
  3013. // To add a new entry, add to the end of kFeatureEntries. There are two
  3014. // distinct types of entries:
  3015. // . SINGLE_VALUE: entry is either on or off. Use the SINGLE_VALUE_TYPE
  3016. // macro for this type supplying the command line to the macro.
  3017. // . MULTI_VALUE: a list of choices, the first of which should correspond to a
  3018. // deactivated state for this lab (i.e. no command line option). To specify
  3019. // this type of entry use the macro MULTI_VALUE_TYPE supplying it the
  3020. // array of choices.
  3021. // See the documentation of FeatureEntry for details on the fields.
  3022. //
  3023. // Usage of about:flags is logged on startup via the "Launch.FlagsAtStartup"
  3024. // UMA histogram. This histogram shows the number of startups with a given flag
  3025. // enabled. If you'd like to see user counts instead, make sure to switch to
  3026. // "count users" view on the dashboard. When adding new entries, the enum
  3027. // "LoginCustomFlags" must be updated in histograms/enums.xml. See note in
  3028. // enums.xml and don't forget to run AboutFlagsHistogramTest unit test to
  3029. // calculate and verify checksum.
  3030. //
  3031. // When adding a new choice, add it to the end of the list.
  3032. const FeatureEntry kFeatureEntries[] = {
  3033. // Include generated flags for flag unexpiry; see //docs/flag_expiry.md and
  3034. // //tools/flags/generate_unexpire_flags.py.
  3035. #include "build/chromeos_buildflags.h"
  3036. #include "chrome/browser/unexpire_flags_gen.inc"
  3037. {"ignore-gpu-blocklist", flag_descriptions::kIgnoreGpuBlocklistName,
  3038. flag_descriptions::kIgnoreGpuBlocklistDescription, kOsAll,
  3039. SINGLE_VALUE_TYPE(switches::kIgnoreGpuBlocklist)},
  3040. {"disable-accelerated-2d-canvas",
  3041. flag_descriptions::kAccelerated2dCanvasName,
  3042. flag_descriptions::kAccelerated2dCanvasDescription, kOsAll,
  3043. SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAccelerated2dCanvas)},
  3044. {"overlay-strategies", flag_descriptions::kOverlayStrategiesName,
  3045. flag_descriptions::kOverlayStrategiesDescription, kOsAll,
  3046. MULTI_VALUE_TYPE(kOverlayStrategiesChoices)},
  3047. {"tint-composited-content", flag_descriptions::kTintCompositedContentName,
  3048. flag_descriptions::kTintCompositedContentDescription, kOsAll,
  3049. SINGLE_VALUE_TYPE(switches::kTintCompositedContent)},
  3050. {"show-overdraw-feedback", flag_descriptions::kShowOverdrawFeedbackName,
  3051. flag_descriptions::kShowOverdrawFeedbackDescription, kOsAll,
  3052. SINGLE_VALUE_TYPE(switches::kShowOverdrawFeedback)},
  3053. {"ui-disable-partial-swap", flag_descriptions::kUiPartialSwapName,
  3054. flag_descriptions::kUiPartialSwapDescription, kOsAll,
  3055. SINGLE_DISABLE_VALUE_TYPE(switches::kUIDisablePartialSwap)},
  3056. {"disable-webrtc-hw-decoding", flag_descriptions::kWebrtcHwDecodingName,
  3057. flag_descriptions::kWebrtcHwDecodingDescription, kOsAndroid | kOsCrOS,
  3058. SINGLE_DISABLE_VALUE_TYPE(switches::kDisableWebRtcHWDecoding)},
  3059. {"disable-webrtc-hw-encoding", flag_descriptions::kWebrtcHwEncodingName,
  3060. flag_descriptions::kWebrtcHwEncodingDescription, kOsAndroid | kOsCrOS,
  3061. SINGLE_DISABLE_VALUE_TYPE(switches::kDisableWebRtcHWEncoding)},
  3062. #if !BUILDFLAG(IS_ANDROID)
  3063. {"enable-reader-mode", flag_descriptions::kEnableReaderModeName,
  3064. flag_descriptions::kEnableReaderModeDescription, kOsDesktop,
  3065. FEATURE_WITH_PARAMS_VALUE_TYPE(dom_distiller::kReaderMode,
  3066. kReaderModeDiscoverabilityVariations,
  3067. "ReaderMode")},
  3068. #endif // !BUILDFLAG(IS_ANDROID)
  3069. #if defined(WEBRTC_USE_PIPEWIRE)
  3070. {"enable-webrtc-pipewire-capturer",
  3071. flag_descriptions::kWebrtcPipeWireCapturerName,
  3072. flag_descriptions::kWebrtcPipeWireCapturerDescription,
  3073. kOsLinux | kOsLacros,
  3074. FEATURE_VALUE_TYPE(features::kWebRtcPipeWireCapturer)},
  3075. #endif // defined(WEBRTC_USE_PIPEWIRE)
  3076. #if BUILDFLAG(IS_CHROMEOS_ASH)
  3077. {"enable-lacros-in-chrome-kiosk",
  3078. flag_descriptions::kChromeKioskEnableLacrosName,
  3079. flag_descriptions::kChromeKioskEnableLacrosDescription, kOsCrOS,
  3080. FEATURE_VALUE_TYPE(features::kChromeKioskEnableLacros)},
  3081. {"enable-lacros-in-web-kiosk", flag_descriptions::kWebKioskEnableLacrosName,
  3082. flag_descriptions::kWebKioskEnableLacrosDescription, kOsCrOS,
  3083. FEATURE_VALUE_TYPE(features::kWebKioskEnableLacros)},
  3084. #endif // BUILDFLAG(IS_CHROMEOS_ASH)
  3085. #if BUILDFLAG(IS_CHROMEOS)
  3086. {"enable-app-service-in-kiosk",
  3087. flag_descriptions::kKioskEnableAppServiceName,
  3088. flag_descriptions::kKioskEnableAppServiceDescription, kOsCrOS,
  3089. FEATURE_VALUE_TYPE(features::kKioskEnableAppService)},
  3090. #endif // BUILDFLAG(IS_CHROMEOS)
  3091. #if !BUILDFLAG(IS_ANDROID)
  3092. {"enable-webrtc-remote-event-log",
  3093. flag_descriptions::kWebRtcRemoteEventLogName,
  3094. flag_descriptions::kWebRtcRemoteEventLogDescription, kOsDesktop,
  3095. FEATURE_VALUE_TYPE(features::kWebRtcRemoteEventLog)},
  3096. #endif
  3097. {"enable-webrtc-srtp-aes-gcm", flag_descriptions::kWebrtcSrtpAesGcmName,
  3098. flag_descriptions::kWebrtcSrtpAesGcmDescription, kOsAll,
  3099. SINGLE_VALUE_TYPE(switches::kEnableWebRtcSrtpAesGcm)},
  3100. {"enable-webrtc-hybrid-agc", flag_descriptions::kWebrtcHybridAgcName,
  3101. flag_descriptions::kWebrtcHybridAgcDescription, kOsAll,
  3102. FEATURE_VALUE_TYPE(features::kWebRtcHybridAgc)},
  3103. {"enable-webrtc-analog-agc-clipping-control",
  3104. flag_descriptions::kWebrtcAnalogAgcClippingControlName,
  3105. flag_descriptions::kWebrtcAnalogAgcClippingControlDescription, kOsDesktop,
  3106. FEATURE_VALUE_TYPE(features::kWebRtcAnalogAgcClippingControl)},
  3107. {"enable-webrtc-hide-local-ips-with-mdns",
  3108. flag_descriptions::kWebrtcHideLocalIpsWithMdnsName,
  3109. flag_descriptions::kWebrtcHideLocalIpsWithMdnsDecription, kOsDesktop,
  3110. FEATURE_VALUE_TYPE(blink::features::kWebRtcHideLocalIpsWithMdns)},
  3111. {"enable-webrtc-use-min-max-vea-dimensions",
  3112. flag_descriptions::kWebrtcUseMinMaxVEADimensionsName,
  3113. flag_descriptions::kWebrtcUseMinMaxVEADimensionsDescription, kOsAll,
  3114. FEATURE_VALUE_TYPE(blink::features::kWebRtcUseMinMaxVEADimensions)},
  3115. #if BUILDFLAG(ENABLE_NACL)
  3116. {"enable-nacl", flag_descriptions::kNaclName,
  3117. flag_descriptions::kNaclDescription, kOsAll,
  3118. SINGLE_VALUE_TYPE(switches::kEnableNaCl)},
  3119. {"verbose-logging-in-nacl", flag_descriptions::kVerboseLoggingInNaclName,
  3120. flag_descriptions::kVerboseLoggingInNaclDescription, kOsAll,
  3121. MULTI_VALUE_TYPE(kVerboseLoggingInNaclChoices)},
  3122. #endif // ENABLE_NACL
  3123. #if BUILDFLAG(ENABLE_EXTENSIONS)
  3124. {"extensions-on-chrome-urls",
  3125. flag_descriptions::kExtensionsOnChromeUrlsName,
  3126. flag_descriptions::kExtensionsOnChromeUrlsDescription, kOsAll,
  3127. SINGLE_VALUE_TYPE(extensions::switches::kExtensionsOnChromeURLs)},
  3128. #endif // ENABLE_EXTENSIONS
  3129. {"enable-container-queries", flag_descriptions::kCSSContainerQueriesName,
  3130. flag_descriptions::kCSSContainerQueriesDescription, kOsAll,
  3131. FEATURE_VALUE_TYPE(blink::features::kCSSContainerQueries)},
  3132. #if BUILDFLAG(IS_ANDROID)
  3133. {"osk-resizes-visual-viewport",
  3134. flag_descriptions::kEnableOskResizesVisualViewportName,
  3135. flag_descriptions::kEnableOskResizesVisualViewportDescription, kOsAndroid,
  3136. FEATURE_VALUE_TYPE(chrome::android::kOSKResizesVisualViewport)},
  3137. {"contextual-search-debug", flag_descriptions::kContextualSearchDebugName,
  3138. flag_descriptions::kContextualSearchDebugDescription, kOsAndroid,
  3139. FEATURE_VALUE_TYPE(kContextualSearchDebug)},
  3140. {"contextual-search-force-caption",
  3141. flag_descriptions::kContextualSearchForceCaptionName,
  3142. flag_descriptions::kContextualSearchForceCaptionDescription, kOsAndroid,
  3143. FEATURE_VALUE_TYPE(chrome::android::kContextualSearchForceCaption)},
  3144. {"contextual-search-suppress-short-view",
  3145. flag_descriptions::kContextualSearchSuppressShortViewName,
  3146. flag_descriptions::kContextualSearchSuppressShortViewDescription,
  3147. kOsAndroid,
  3148. FEATURE_VALUE_TYPE(chrome::android::kContextualSearchSuppressShortView)},
  3149. {"contextual-triggers-selection-handles",
  3150. flag_descriptions::kContextualTriggersSelectionHandlesName,
  3151. flag_descriptions::kContextualTriggersSelectionHandlesDescription,
  3152. kOsAndroid,
  3153. FEATURE_VALUE_TYPE(chrome::android::kContextualTriggersSelectionHandles)},
  3154. {"contextual-triggers-selection-menu",
  3155. flag_descriptions::kContextualTriggersSelectionMenuName,
  3156. flag_descriptions::kContextualTriggersSelectionMenuDescription, kOsAndroid,
  3157. FEATURE_VALUE_TYPE(chrome::android::kContextualTriggersSelectionMenu)},
  3158. {"contextual-triggers-selection-size",
  3159. flag_descriptions::kContextualTriggersSelectionSizeName,
  3160. flag_descriptions::kContextualTriggersSelectionSizeDescription, kOsAndroid,
  3161. FEATURE_VALUE_TYPE(chrome::android::kContextualTriggersSelectionSize)},
  3162. {"explore-sites", flag_descriptions::kExploreSitesName,
  3163. flag_descriptions::kExploreSitesDescription, kOsAndroid,
  3164. FEATURE_WITH_PARAMS_VALUE_TYPE(chrome::android::kExploreSites,
  3165. kExploreSitesVariations,
  3166. "ExploreSites InitialCountries")},
  3167. {"related-searches", flag_descriptions::kRelatedSearchesName,
  3168. flag_descriptions::kRelatedSearchesDescription, kOsAndroid,
  3169. FEATURE_WITH_PARAMS_VALUE_TYPE(chrome::android::kRelatedSearches,
  3170. kRelatedSearchesVariations,
  3171. "RelatedSearches")},
  3172. {"related-searches-ui", flag_descriptions::kRelatedSearchesUiName,
  3173. flag_descriptions::kRelatedSearchesUiDescription, kOsAndroid,
  3174. FEATURE_WITH_PARAMS_VALUE_TYPE(chrome::android::kRelatedSearchesUi,
  3175. kRelatedSearchesUiVariations,
  3176. "RelatedSearchesUi")},
  3177. {"related-searches-in-bar", flag_descriptions::kRelatedSearchesInBarName,
  3178. flag_descriptions::kRelatedSearchesInBarDescription, kOsAndroid,
  3179. FEATURE_WITH_PARAMS_VALUE_TYPE(chrome::android::kRelatedSearchesInBar,
  3180. kRelatedSearchesInBarVariations,
  3181. "RelatedSearchesInBar")},
  3182. {"related-searches-alternate-ux",
  3183. flag_descriptions::kRelatedSearchesAlternateUxName,
  3184. flag_descriptions::kRelatedSearchesAlternateUxDescription, kOsAndroid,
  3185. FEATURE_WITH_PARAMS_VALUE_TYPE(
  3186. chrome::android::kRelatedSearchesAlternateUx,
  3187. kRelatedSearchesAlternateUxVariations,
  3188. "RelatedSearchesAlternateUx")},
  3189. {"related-searches-simplified-ux",
  3190. flag_descriptions::kRelatedSearchesSimplifiedUxName,
  3191. flag_descriptions::kRelatedSearchesSimplifiedUxDescription, kOsAndroid,
  3192. FEATURE_VALUE_TYPE(chrome::android::kRelatedSearchesSimplifiedUx)},
  3193. #endif // BUILDFLAG(IS_ANDROID)
  3194. {"show-autofill-type-predictions",
  3195. flag_descriptions::kShowAutofillTypePredictionsName,
  3196. flag_descriptions::kShowAutofillTypePredictionsDescription, kOsAll,
  3197. FEATURE_VALUE_TYPE(autofill::features::kAutofillShowTypePredictions)},
  3198. {"autofill-center-aligned-suggestions",
  3199. flag_descriptions::kAutofillCenterAligngedSuggestionsName,
  3200. flag_descriptions::kAutofillCenterAligngedSuggestionsDescription,
  3201. kOsDesktop,
  3202. FEATURE_VALUE_TYPE(autofill::features::kAutofillCenterAlignedSuggestions)},
  3203. {"autofill-visual-improvements-for-suggestion-ui",
  3204. flag_descriptions::kAutofillVisualImprovementsForSuggestionUiName,
  3205. flag_descriptions::kAutofillVisualImprovementsForSuggestionUiDescription,
  3206. kOsDesktop,
  3207. FEATURE_VALUE_TYPE(
  3208. autofill::features::kAutofillVisualImprovementsForSuggestionUi)},
  3209. {"autofill-type-specific-popup-width",
  3210. flag_descriptions::kAutofillTypeSpecificPopupWidthName,
  3211. flag_descriptions::kAutofillTypeSpecificPopupWidthDescription, kOsDesktop,
  3212. FEATURE_VALUE_TYPE(autofill::features::kAutofillTypeSpecificPopupWidth)},
  3213. {"autofill-use-consistent-popup-settings-icons",
  3214. flag_descriptions::kAutofillUseConsistentPopupSettingsIconsName,
  3215. flag_descriptions::kAutofillUseConsistentPopupSettingsIconsDescription,
  3216. kOsDesktop,
  3217. FEATURE_VALUE_TYPE(
  3218. autofill::features::kAutofillUseConsistentPopupSettingsIcons)},
  3219. {"smooth-scrolling", flag_descriptions::kSmoothScrollingName,
  3220. flag_descriptions::kSmoothScrollingDescription,
  3221. // Mac has a separate implementation with its own setting to disable.
  3222. kOsLinux | kOsLacros | kOsCrOS | kOsWin | kOsAndroid | kOsFuchsia,
  3223. ENABLE_DISABLE_VALUE_TYPE(switches::kEnableSmoothScrolling,
  3224. switches::kDisableSmoothScrolling)},
  3225. {"fractional-scroll-offsets",
  3226. flag_descriptions::kFractionalScrollOffsetsName,
  3227. flag_descriptions::kFractionalScrollOffsetsDescription, kOsAll,
  3228. FEATURE_VALUE_TYPE(features::kFractionalScrollOffsets)},
  3229. #if defined(USE_AURA)
  3230. {"overlay-scrollbars", flag_descriptions::kOverlayScrollbarsName,
  3231. flag_descriptions::kOverlayScrollbarsDescription,
  3232. // Uses the system preference on Mac (a different implementation).
  3233. // On Android, this is always enabled.
  3234. kOsAura, FEATURE_VALUE_TYPE(features::kOverlayScrollbar)},
  3235. #endif // USE_AURA
  3236. {"enable-quic", flag_descriptions::kQuicName,
  3237. flag_descriptions::kQuicDescription, kOsAll,
  3238. ENABLE_DISABLE_VALUE_TYPE(switches::kEnableQuic, switches::kDisableQuic)},
  3239. {"disable-javascript-harmony-shipping",
  3240. flag_descriptions::kJavascriptHarmonyShippingName,
  3241. flag_descriptions::kJavascriptHarmonyShippingDescription, kOsAll,
  3242. SINGLE_DISABLE_VALUE_TYPE(switches::kDisableJavaScriptHarmonyShipping)},
  3243. {"enable-javascript-harmony", flag_descriptions::kJavascriptHarmonyName,
  3244. flag_descriptions::kJavascriptHarmonyDescription, kOsAll,
  3245. SINGLE_VALUE_TYPE(switches::kJavaScriptHarmony)},
  3246. {"enable-experimental-webassembly-features",
  3247. flag_descriptions::kExperimentalWebAssemblyFeaturesName,
  3248. flag_descriptions::kExperimentalWebAssemblyFeaturesDescription, kOsAll,
  3249. SINGLE_VALUE_TYPE(switches::kEnableExperimentalWebAssemblyFeatures)},
  3250. #if defined(ARCH_CPU_X86_64)
  3251. {"enable-experimental-webassembly-stack-switching",
  3252. flag_descriptions::kExperimentalWebAssemblyStackSwitchingName,
  3253. flag_descriptions::kExperimentalWebAssemblyStackSwitchingDescription,
  3254. kOsAll,
  3255. SINGLE_VALUE_TYPE(switches::kEnableExperimentalWebAssemblyStackSwitching)},
  3256. #endif // defined(ARCH_CPU_X86_64)
  3257. {"enable-webassembly-baseline", flag_descriptions::kEnableWasmBaselineName,
  3258. flag_descriptions::kEnableWasmBaselineDescription, kOsAll,
  3259. FEATURE_VALUE_TYPE(features::kWebAssemblyBaseline)},
  3260. {"enable-webassembly-lazy-compilation",
  3261. flag_descriptions::kEnableWasmLazyCompilationName,
  3262. flag_descriptions::kEnableWasmLazyCompilationDescription, kOsAll,
  3263. FEATURE_VALUE_TYPE(features::kWebAssemblyLazyCompilation)},
  3264. {"enable-webassembly-tiering", flag_descriptions::kEnableWasmTieringName,
  3265. flag_descriptions::kEnableWasmTieringDescription, kOsAll,
  3266. FEATURE_VALUE_TYPE(features::kWebAssemblyTiering)},
  3267. {"enable-future-v8-vm-features", flag_descriptions::kV8VmFutureName,
  3268. flag_descriptions::kV8VmFutureDescription, kOsAll,
  3269. FEATURE_VALUE_TYPE(features::kV8VmFuture)},
  3270. {"enable-gpu-rasterization", flag_descriptions::kGpuRasterizationName,
  3271. flag_descriptions::kGpuRasterizationDescription, kOsAll,
  3272. MULTI_VALUE_TYPE(kEnableGpuRasterizationChoices)},
  3273. {"enable-experimental-web-platform-features",
  3274. flag_descriptions::kExperimentalWebPlatformFeaturesName,
  3275. flag_descriptions::kExperimentalWebPlatformFeaturesDescription, kOsAll,
  3276. SINGLE_VALUE_TYPE(switches::kEnableExperimentalWebPlatformFeatures)},
  3277. {"top-chrome-touch-ui", flag_descriptions::kTopChromeTouchUiName,
  3278. flag_descriptions::kTopChromeTouchUiDescription, kOsDesktop,
  3279. MULTI_VALUE_TYPE(kTopChromeTouchUiChoices)},
  3280. {"variable-colrv1", flag_descriptions::kVariableCOLRV1Name,
  3281. flag_descriptions::kVariableCOLRV1Description, kOsAll,
  3282. FEATURE_VALUE_TYPE(blink::features::kVariableCOLRV1)},
  3283. #if BUILDFLAG(ENABLE_WEBUI_TAB_STRIP)
  3284. {flag_descriptions::kWebUITabStripFlagId,
  3285. flag_descriptions::kWebUITabStripName,
  3286. flag_descriptions::kWebUITabStripDescription, kOsDesktop,
  3287. FEATURE_VALUE_TYPE(features::kWebUITabStrip)},
  3288. {"webui-tab-strip-context-menu-after-tap",
  3289. flag_descriptions::kWebUITabStripContextMenuAfterTapName,
  3290. flag_descriptions::kWebUITabStripContextMenuAfterTapDescription,
  3291. kOsDesktop,
  3292. FEATURE_VALUE_TYPE(features::kWebUITabStripContextMenuAfterTap)},
  3293. #endif // BUILDFLAG(ENABLE_WEBUI_TAB_STRIP)
  3294. #if BUILDFLAG(ENABLE_WEBUI_TAB_STRIP) && BUILDFLAG(IS_CHROMEOS_ASH)
  3295. {
  3296. "webui-tab-strip-tab-drag-integration",
  3297. flag_descriptions::kWebUITabStripTabDragIntegrationName,
  3298. flag_descriptions::kWebUITabStripTabDragIntegrationDescription,
  3299. kOsCrOS,
  3300. FEATURE_VALUE_TYPE(ash::features::kWebUITabStripTabDragIntegration),
  3301. },
  3302. #endif // BUILDFLAG(ENABLE_WEBUI_TAB_STRIP) && BUILDFLAG(IS_CHROMEOS_ASH)
  3303. #if BUILDFLAG(IS_CHROMEOS_ASH)
  3304. {"audio-hfp-mic-sr", flag_descriptions::kAudioHFPMicSRName,
  3305. flag_descriptions::kAudioHFPMicSRDescription, kOsCrOS,
  3306. PLATFORM_FEATURE_NAME_TYPE("CrOSLateBootAudioHFPMicSR")},
  3307. {
  3308. "audio-settings-page",
  3309. flag_descriptions::kAudioSettingsPageName,
  3310. flag_descriptions::kAudioSettingsPageDescription,
  3311. kOsCrOS,
  3312. FEATURE_VALUE_TYPE(ash::features::kAudioSettingsPage),
  3313. },
  3314. {"disable-explicit-dma-fences",
  3315. flag_descriptions::kDisableExplicitDmaFencesName,
  3316. flag_descriptions::kDisableExplicitDmaFencesDescription, kOsCrOS,
  3317. SINGLE_VALUE_TYPE(switches::kDisableExplicitDmaFences)},
  3318. // TODO(crbug.com/1012846): Remove this flag and provision when HDR is fully
  3319. // supported on ChromeOS.
  3320. {"use-hdr-transfer-function",
  3321. flag_descriptions::kUseHDRTransferFunctionName,
  3322. flag_descriptions::kUseHDRTransferFunctionDescription, kOsCrOS,
  3323. FEATURE_VALUE_TYPE(display::features::kUseHDRTransferFunction)},
  3324. {"adaptive-charging", flag_descriptions::kAdaptiveChargingName,
  3325. flag_descriptions::kAdaptiveChargingDescription, kOsCrOS,
  3326. FEATURE_VALUE_TYPE(ash::features::kAdaptiveCharging)},
  3327. {"adaptive-charging-for-testing",
  3328. flag_descriptions::kAdaptiveChargingForTestingName,
  3329. flag_descriptions::kAdaptiveChargingForTestingDescription, kOsCrOS,
  3330. FEATURE_VALUE_TYPE(ash::features::kAdaptiveChargingForTesting)},
  3331. {"allow-poly-device-pairing",
  3332. flag_descriptions::kAllowPolyDevicePairingName,
  3333. flag_descriptions::kAllowPolyDevicePairingDescription, kOsCrOS,
  3334. FEATURE_VALUE_TYPE(ash::features::kAllowPolyDevicePairing)},
  3335. {"ash-bento-bar", flag_descriptions::kBentoBarName,
  3336. flag_descriptions::kBentoBarDescription, kOsCrOS,
  3337. FEATURE_VALUE_TYPE(ash::features::kBentoBar)},
  3338. {"ash-drag-window-to-new-desk", flag_descriptions::kDragWindowToNewDeskName,
  3339. flag_descriptions::kDragWindowToNewDeskDescription, kOsCrOS,
  3340. FEATURE_VALUE_TYPE(ash::features::kDragWindowToNewDesk)},
  3341. {"ash-overview-button", flag_descriptions::kOverviewButtonName,
  3342. flag_descriptions::kOverviewButtonDescription, kOsCrOS,
  3343. FEATURE_VALUE_TYPE(ash::features::kOverviewButton)},
  3344. {"ash-window-follow-cursor-multi-display",
  3345. flag_descriptions::kWindowsFollowCursorName,
  3346. flag_descriptions::kWindowsFollowCursorDescription, kOsCrOS,
  3347. FEATURE_VALUE_TYPE(ash::features::kWindowsFollowCursor)},
  3348. {"ash-limit-shelf-items-to-active-desk",
  3349. flag_descriptions::kLimitShelfItemsToActiveDeskName,
  3350. flag_descriptions::kLimitShelfItemsToActiveDeskDescription, kOsCrOS,
  3351. FEATURE_VALUE_TYPE(ash::features::kPerDeskShelf)},
  3352. {"ash-enable-unified-desktop",
  3353. flag_descriptions::kAshEnableUnifiedDesktopName,
  3354. flag_descriptions::kAshEnableUnifiedDesktopDescription, kOsCrOS,
  3355. SINGLE_VALUE_TYPE(switches::kEnableUnifiedDesktop)},
  3356. {"rounded-display", flag_descriptions::kRoundedDisplay,
  3357. flag_descriptions::kRoundedDisplayDescription, kOsCrOS,
  3358. FEATURE_VALUE_TYPE(display::features::kRoundedDisplay)},
  3359. {"bluetooth-fix-a2dp-packet-size",
  3360. flag_descriptions::kBluetoothFixA2dpPacketSizeName,
  3361. flag_descriptions::kBluetoothFixA2dpPacketSizeDescription, kOsCrOS,
  3362. FEATURE_VALUE_TYPE(chromeos::features::kBluetoothFixA2dpPacketSize)},
  3363. {"bluetooth-quality-report", flag_descriptions::kBluetoothQualityReportName,
  3364. flag_descriptions::kBluetoothQualityReportDescription, kOsCrOS,
  3365. FEATURE_VALUE_TYPE(chromeos::features::kBluetoothQualityReport)},
  3366. {"bluetooth-revamp", flag_descriptions::kBluetoothRevampName,
  3367. flag_descriptions::kBluetoothRevampDescription, kOsCrOS,
  3368. FEATURE_VALUE_TYPE(chromeos::features::kBluetoothRevamp)},
  3369. {"bluetooth-wbs-dogfood", flag_descriptions::kBluetoothWbsDogfoodName,
  3370. flag_descriptions::kBluetoothWbsDogfoodDescription, kOsCrOS,
  3371. FEATURE_VALUE_TYPE(chromeos::features::kBluetoothWbsDogfood)},
  3372. {"bluetooth-coredump", flag_descriptions::kBluetoothCoredumpName,
  3373. flag_descriptions::kBluetoothCoredumpDescription, kOsCrOS,
  3374. FEATURE_VALUE_TYPE(chromeos::bluetooth::features::kBluetoothCoredump)},
  3375. {"bluetooth-use-floss", flag_descriptions::kBluetoothUseFlossName,
  3376. flag_descriptions::kBluetoothUseFlossDescription, kOsCrOS,
  3377. FEATURE_VALUE_TYPE(floss::features::kFlossEnabled)},
  3378. {"bluetooth-use-llprivacy", flag_descriptions::kBluetoothUseLLPrivacyName,
  3379. flag_descriptions::kBluetoothUseLLPrivacyDescription, kOsCrOS,
  3380. FEATURE_VALUE_TYPE(bluez::features::kLinkLayerPrivacy)},
  3381. {"calendar-view", flag_descriptions::kCalendarViewName,
  3382. flag_descriptions::kCalendarViewDescription, kOsCrOS,
  3383. FEATURE_VALUE_TYPE(chromeos::features::kCalendarView)},
  3384. {"calendar-view-debug-mode", flag_descriptions::kCalendarModelDebugModeName,
  3385. flag_descriptions::kCalendarModelDebugModeDescription, kOsCrOS,
  3386. FEATURE_VALUE_TYPE(chromeos::features::kCalendarModelDebugMode)},
  3387. {"cellular-bypass-esim-installation-connectivity-check",
  3388. flag_descriptions::kCellularBypassESimInstallationConnectivityCheckName,
  3389. flag_descriptions::
  3390. kCellularBypassESimInstallationConnectivityCheckDescription,
  3391. kOsCrOS,
  3392. FEATURE_VALUE_TYPE(
  3393. chromeos::features::kCellularBypassESimInstallationConnectivityCheck)},
  3394. {"cellular-custom-apn-profiles",
  3395. flag_descriptions::kCellularCustomAPNProfilesName,
  3396. flag_descriptions::kCellularCustomAPNProfilesDescription, kOsCrOS,
  3397. FEATURE_VALUE_TYPE(chromeos::features::kCellularCustomAPNProfiles)},
  3398. {"cellular-forbid-attach-apn",
  3399. flag_descriptions::kCellularForbidAttachApnName,
  3400. flag_descriptions::kCellularForbidAttachApnDescription, kOsCrOS,
  3401. FEATURE_VALUE_TYPE(chromeos::features::kCellularForbidAttachApn)},
  3402. {"cellular-use-attach-apn", flag_descriptions::kCellularUseAttachApnName,
  3403. flag_descriptions::kCellularUseAttachApnDescription, kOsCrOS,
  3404. FEATURE_VALUE_TYPE(chromeos::features::kCellularUseAttachApn)},
  3405. {"cellular-use-second-euicc",
  3406. flag_descriptions::kCellularUseSecondEuiccName,
  3407. flag_descriptions::kCellularUseSecondEuiccDescription, kOsCrOS,
  3408. FEATURE_VALUE_TYPE(chromeos::features::kCellularUseSecondEuicc)},
  3409. {"cros-privacy-hub-future", flag_descriptions::kCrosPrivacyHubFutureName,
  3410. flag_descriptions::kCrosPrivacyHubFutureDescription, kOsCrOS,
  3411. FEATURE_VALUE_TYPE(ash::features::kCrosPrivacyHubFuture)},
  3412. {"enable-cros-privacy-hub", flag_descriptions::kCrosPrivacyHubName,
  3413. flag_descriptions::kCrosPrivacyHubDescription, kOsCrOS,
  3414. FEATURE_VALUE_TYPE(ash::features::kCrosPrivacyHub)},
  3415. {"cryptauth-v2-dedup-device-last-activity-time",
  3416. flag_descriptions::kCryptAuthV2DedupDeviceLastActivityTimeName,
  3417. flag_descriptions::kCryptAuthV2DedupDeviceLastActivityTimeDescription,
  3418. kOsCrOS,
  3419. FEATURE_VALUE_TYPE(
  3420. ash::features::kCryptAuthV2DedupDeviceLastActivityTime)},
  3421. {"oobe-hid-detection-revamp",
  3422. flag_descriptions::kOobeHidDetectionRevampName,
  3423. flag_descriptions::kOobeHidDetectionRevampDescription, kOsCrOS,
  3424. FEATURE_VALUE_TYPE(chromeos::features::kOobeHidDetectionRevamp)},
  3425. {"qs-revamp", flag_descriptions::kQsRevampName,
  3426. flag_descriptions::kQsRevampDescription, kOsCrOS,
  3427. FEATURE_VALUE_TYPE(chromeos::features::kQsRevamp)},
  3428. {"quick-settings-network-revamp",
  3429. flag_descriptions::kQuickSettingsNetworkRevampName,
  3430. flag_descriptions::kQuickSettingsNetworkRevampDescription, kOsCrOS,
  3431. FEATURE_VALUE_TYPE(chromeos::features::kQuickSettingsNetworkRevamp)},
  3432. {"use_messages_staging_url", flag_descriptions::kUseMessagesStagingUrlName,
  3433. flag_descriptions::kUseMessagesStagingUrlDescription, kOsCrOS,
  3434. FEATURE_VALUE_TYPE(chromeos::features::kUseMessagesStagingUrl)},
  3435. {"use-custom-messages-domain",
  3436. flag_descriptions::kUseCustomMessagesDomainName,
  3437. flag_descriptions::kUseCustomMessagesDomainDescription, kOsCrOS,
  3438. ORIGIN_LIST_VALUE_TYPE(switches::kCustomAndroidMessagesDomain, "")},
  3439. {"disable-cancel-all-touches",
  3440. flag_descriptions::kDisableCancelAllTouchesName,
  3441. flag_descriptions::kDisableCancelAllTouchesDescription, kOsCrOS,
  3442. SINGLE_VALUE_TYPE(switches::kDisableCancelAllTouches)},
  3443. {
  3444. "enable-background-blur",
  3445. flag_descriptions::kEnableBackgroundBlurName,
  3446. flag_descriptions::kEnableBackgroundBlurDescription,
  3447. kOsCrOS,
  3448. FEATURE_VALUE_TYPE(ash::features::kEnableBackgroundBlur),
  3449. },
  3450. {"enable-notifications-revamp", flag_descriptions::kNotificationsRevampName,
  3451. flag_descriptions::kNotificationsRevampDescription, kOsCrOS,
  3452. FEATURE_VALUE_TYPE(ash::features::kNotificationsRefresh)},
  3453. {"enable-zram-writeback", flag_descriptions::kEnableZramWriteback,
  3454. flag_descriptions::kEnableZramWritebackDescription, kOsCrOS,
  3455. FEATURE_VALUE_TYPE(ash::kCrOSEnableZramWriteback)},
  3456. // Used to carry the policy value crossing the Chrome process lifetime.
  3457. {crosapi::browser_util::kLacrosAvailabilityPolicyInternalName, "", "",
  3458. kOsCrOS, MULTI_VALUE_TYPE(kLacrosAvailabilityPolicyChoices)},
  3459. {kLacrosSupportInternalName, flag_descriptions::kLacrosSupportName,
  3460. flag_descriptions::kLacrosSupportDescription, kOsCrOS,
  3461. FEATURE_VALUE_TYPE(chromeos::features::kLacrosSupport)},
  3462. {kLacrosStabilityInternalName, flag_descriptions::kLacrosStabilityName,
  3463. flag_descriptions::kLacrosStabilityDescription, kOsCrOS,
  3464. MULTI_VALUE_TYPE(kLacrosStabilityChoices)},
  3465. {"uxstudy1", flag_descriptions::kUXStudy1Name,
  3466. flag_descriptions::kUXStudy1Description, kOsCrOS,
  3467. MULTI_VALUE_TYPE(kUXStudy1Choices)},
  3468. {"lacros-profile-migration-for-any-user",
  3469. flag_descriptions::kLacrosProfileMigrationForAnyUserName,
  3470. flag_descriptions::kLacrosProfileMigrationForAnyUserDescription, kOsCrOS,
  3471. FEATURE_VALUE_TYPE(ash::features::kLacrosProfileMigrationForAnyUser)},
  3472. {"lacros-move-profile-migration",
  3473. flag_descriptions::kLacrosMoveProfileMigrationName,
  3474. flag_descriptions::kLacrosMoveProfileMigrationDescription, kOsCrOS,
  3475. FEATURE_VALUE_TYPE(ash::features::kLacrosMoveProfileMigration)},
  3476. {"lacros-profile-migration-force-off",
  3477. flag_descriptions::kLacrosProfileMigrationForceOffName,
  3478. flag_descriptions::kLacrosProfileMigrationForceOffDescription, kOsCrOS,
  3479. FEATURE_VALUE_TYPE(ash::features::kLacrosProfileMigrationForceOff)},
  3480. {kLacrosSelectionInternalName, flag_descriptions::kLacrosSelectionName,
  3481. flag_descriptions::kLacrosSelectionDescription, kOsCrOS,
  3482. MULTI_VALUE_TYPE(kLacrosSelectionChoices)},
  3483. {kWebAppsCrosapiInternalName, flag_descriptions::kWebAppsCrosapiName,
  3484. flag_descriptions::kWebAppsCrosapiDescription, kOsCrOS,
  3485. FEATURE_VALUE_TYPE(features::kWebAppsCrosapi)},
  3486. {kLacrosPrimaryInternalName, flag_descriptions::kLacrosPrimaryName,
  3487. flag_descriptions::kLacrosPrimaryDescription, kOsCrOS,
  3488. FEATURE_VALUE_TYPE(chromeos::features::kLacrosPrimary)},
  3489. {kLacrosOnlyInternalName, flag_descriptions::kLacrosOnlyName,
  3490. flag_descriptions::kLacrosOnlyDescription, kOsCrOS,
  3491. FEATURE_VALUE_TYPE(chromeos::features::kLacrosOnly)},
  3492. {kLacrosAvailabilityIgnoreInternalName,
  3493. flag_descriptions::kLacrosAvailabilityIgnoreName,
  3494. flag_descriptions::kLacrosAvailabilityIgnoreDescription, kOsCrOS,
  3495. SINGLE_VALUE_TYPE(ash::switches::kLacrosAvailabilityIgnore)},
  3496. {"list-all-display-modes", flag_descriptions::kListAllDisplayModesName,
  3497. flag_descriptions::kListAllDisplayModesDescription, kOsCrOS,
  3498. FEATURE_VALUE_TYPE(display::features::kListAllDisplayModes)},
  3499. {"enable-hardware_mirror-mode",
  3500. flag_descriptions::kEnableHardwareMirrorModeName,
  3501. flag_descriptions::kEnableHardwareMirrorModeDescription, kOsCrOS,
  3502. FEATURE_VALUE_TYPE(display::features::kEnableHardwareMirrorMode)},
  3503. {"enable-dns-proxy", flag_descriptions::kEnableDnsProxyName,
  3504. flag_descriptions::kEnableDnsProxyDescription, kOsCrOS,
  3505. FEATURE_VALUE_TYPE(ash::features::kEnableDnsProxy)},
  3506. {"enable-ikev2-vpn", flag_descriptions::kEnableIkev2VpnName,
  3507. flag_descriptions::kEnableIkev2VpnDescription, kOsCrOS,
  3508. FEATURE_VALUE_TYPE(ash::features::kEnableIkev2Vpn)},
  3509. {"enforce-ash-extension-keeplist",
  3510. flag_descriptions::kEnforceAshExtensionKeeplistName,
  3511. flag_descriptions::kEnforceAshExtensionKeeplistDescription, kOsCrOS,
  3512. FEATURE_VALUE_TYPE(ash::features::kEnforceAshExtensionKeeplist)},
  3513. {"dns-proxy-enable-doh", flag_descriptions::kDnsProxyEnableDOHName,
  3514. flag_descriptions::kDnsProxyEnableDOHDescription, kOsCrOS,
  3515. FEATURE_VALUE_TYPE(::features::kDnsProxyEnableDOH)},
  3516. {"hotspot", flag_descriptions::kHotspotName,
  3517. flag_descriptions::kHotspotDescription, kOsCrOS,
  3518. FEATURE_VALUE_TYPE(chromeos::features::kHotspot)},
  3519. {"instant-tethering", flag_descriptions::kTetherName,
  3520. flag_descriptions::kTetherDescription, kOsCrOS,
  3521. FEATURE_VALUE_TYPE(chromeos::features::kInstantTethering)},
  3522. {
  3523. "new-shortcut-mapping",
  3524. flag_descriptions::kEnableNewShortcutMappingName,
  3525. flag_descriptions::kEnableNewShortcutMappingDescription,
  3526. kOsCrOS,
  3527. FEATURE_VALUE_TYPE(features::kNewShortcutMapping),
  3528. },
  3529. {"improved-desks-keyboard-shortcuts",
  3530. flag_descriptions::kImprovedDesksKeyboardShortcutsName,
  3531. flag_descriptions::kImprovedDesksKeyboardShortcutsDescription, kOsCrOS,
  3532. FEATURE_VALUE_TYPE(ash::features::kImprovedDesksKeyboardShortcuts)},
  3533. {"improved-keyboard-shortcuts",
  3534. flag_descriptions::kImprovedKeyboardShortcutsName,
  3535. flag_descriptions::kImprovedKeyboardShortcutsDescription, kOsCrOS,
  3536. FEATURE_VALUE_TYPE(features::kImprovedKeyboardShortcuts)},
  3537. {"deprecate-alt-click", flag_descriptions::kDeprecateAltClickName,
  3538. flag_descriptions::kDeprecateAltClickDescription, kOsCrOS,
  3539. FEATURE_VALUE_TYPE(features::kDeprecateAltClick)},
  3540. {"deprecate-alt-based-six-pack",
  3541. flag_descriptions::kDeprecateAltBasedSixPackName,
  3542. flag_descriptions::kDeprecateAltBasedSixPackDescription, kOsCrOS,
  3543. FEATURE_VALUE_TYPE(features::kDeprecateAltBasedSixPack)},
  3544. {"hidden-network-migration", flag_descriptions::kHiddenNetworkMigrationName,
  3545. flag_descriptions::kHiddenNetworkMigrationDescription, kOsCrOS,
  3546. FEATURE_VALUE_TYPE(ash::features::kHiddenNetworkMigration)},
  3547. {"shelf-hide-buttons-in-tablet",
  3548. flag_descriptions::kHideShelfControlsInTabletModeName,
  3549. flag_descriptions::kHideShelfControlsInTabletModeDescription, kOsCrOS,
  3550. FEATURE_VALUE_TYPE(ash::features::kHideShelfControlsInTabletMode)},
  3551. {"shelf-hover-previews", flag_descriptions::kShelfHoverPreviewsName,
  3552. flag_descriptions::kShelfHoverPreviewsDescription, kOsCrOS,
  3553. SINGLE_VALUE_TYPE(ash::switches::kShelfHoverPreviews)},
  3554. {"show-bluetooth-debug-log-toggle",
  3555. flag_descriptions::kShowBluetoothDebugLogToggleName,
  3556. flag_descriptions::kShowBluetoothDebugLogToggleDescription, kOsCrOS,
  3557. FEATURE_VALUE_TYPE(chromeos::features::kShowBluetoothDebugLogToggle)},
  3558. {"show-taps", flag_descriptions::kShowTapsName,
  3559. flag_descriptions::kShowTapsDescription, kOsCrOS,
  3560. SINGLE_VALUE_TYPE(ash::switches::kShowTaps)},
  3561. {"show-touch-hud", flag_descriptions::kShowTouchHudName,
  3562. flag_descriptions::kShowTouchHudDescription, kOsCrOS,
  3563. SINGLE_VALUE_TYPE(ash::switches::kAshTouchHud)},
  3564. {"sim-lock-policy", flag_descriptions::kSimLockPolicyName,
  3565. flag_descriptions::kSimLockPolicyDescription, kOsCrOS,
  3566. FEATURE_VALUE_TYPE(chromeos::features::kSimLockPolicy)},
  3567. {"stylus-battery-status", flag_descriptions::kStylusBatteryStatusName,
  3568. flag_descriptions::kStylusBatteryStatusDescription, kOsCrOS,
  3569. FEATURE_VALUE_TYPE(ash::features::kStylusBatteryStatus)},
  3570. {"wake-on-wifi-allowed", flag_descriptions::kWakeOnWifiAllowedName,
  3571. flag_descriptions::kWakeOnWifiAllowedDescription, kOsCrOS,
  3572. FEATURE_VALUE_TYPE(chromeos::features::kWakeOnWifiAllowed)},
  3573. {"microphone-mute-notifications",
  3574. flag_descriptions::kMicrophoneMuteNotificationsName,
  3575. flag_descriptions::kMicrophoneMuteNotificationsDescription, kOsCrOS,
  3576. FEATURE_VALUE_TYPE(ash::features::kMicMuteNotifications)},
  3577. {"microphone-mute-switch-device",
  3578. flag_descriptions::kMicrophoneMuteSwitchDeviceName,
  3579. flag_descriptions::kMicrophoneMuteSwitchDeviceDescription, kOsCrOS,
  3580. SINGLE_VALUE_TYPE("enable-microphone-mute-switch-device")},
  3581. {"wifi-connect-mac-address-randomization",
  3582. flag_descriptions::kWifiConnectMacAddressRandomizationName,
  3583. flag_descriptions::kWifiConnectMacAddressRandomizationDescription, kOsCrOS,
  3584. FEATURE_VALUE_TYPE(
  3585. chromeos::features::kWifiConnectMacAddressRandomization)},
  3586. {"consumer-auto-update-toggle-allowed",
  3587. flag_descriptions::kConsumerAutoUpdateToggleAllowedName,
  3588. flag_descriptions::kConsumerAutoUpdateToggleAllowedDescription, kOsCrOS,
  3589. FEATURE_VALUE_TYPE(chromeos::features::kConsumerAutoUpdateToggleAllowed)},
  3590. {"disable-lacros-tts-support",
  3591. flag_descriptions::kDisableLacrosTtsSupportName,
  3592. flag_descriptions::kDisableLacrosTtsSupportDescription, kOsCrOS,
  3593. FEATURE_VALUE_TYPE(ash::features::kDisableLacrosTtsSupport)},
  3594. #endif // BUILDFLAG(IS_CHROMEOS_ASH)
  3595. #if BUILDFLAG(IS_CHROMEOS)
  3596. {"dark-light-mode", flag_descriptions::kDarkLightTestName,
  3597. flag_descriptions::kDarkLightTestDescription, kOsCrOS,
  3598. FEATURE_VALUE_TYPE(chromeos::features::kDarkLightMode)},
  3599. {"deprecate-low-usage-codecs",
  3600. flag_descriptions::kDeprecateLowUsageCodecsName,
  3601. flag_descriptions::kDeprecateLowUsageCodecsDescription,
  3602. kOsCrOS | kOsLacros, FEATURE_VALUE_TYPE(media::kDeprecateLowUsageCodecs)},
  3603. {"disable-idle-sockets-close-on-memory-pressure",
  3604. flag_descriptions::kDisableIdleSocketsCloseOnMemoryPressureName,
  3605. flag_descriptions::kDisableIdleSocketsCloseOnMemoryPressureDescription,
  3606. kOsCrOS | kOsLacros,
  3607. FEATURE_VALUE_TYPE(
  3608. chromeos::features::kDisableIdleSocketsCloseOnMemoryPressure)},
  3609. {"disable-office-editing-component-app",
  3610. flag_descriptions::kDisableOfficeEditingComponentAppName,
  3611. flag_descriptions::kDisableOfficeEditingComponentAppDescription,
  3612. kOsCrOS | kOsLacros,
  3613. FEATURE_VALUE_TYPE(chromeos::features::kDisableOfficeEditingComponentApp)},
  3614. {"one-group-per-renderer", flag_descriptions::kOneGroupPerRendererName,
  3615. flag_descriptions::kOneGroupPerRendererDescription, kOsCrOS | kOsLacros,
  3616. FEATURE_VALUE_TYPE(base::kOneGroupPerRenderer)},
  3617. #endif // BUILDFLAG(IS_CHROMEOS)
  3618. #if BUILDFLAG(IS_LINUX)
  3619. {
  3620. "enable-accelerated-video-decode",
  3621. flag_descriptions::kAcceleratedVideoDecodeName,
  3622. flag_descriptions::kAcceleratedVideoDecodeDescription,
  3623. kOsLinux,
  3624. FEATURE_VALUE_TYPE(media::kVaapiVideoDecodeLinux),
  3625. },
  3626. #else
  3627. {
  3628. "disable-accelerated-video-decode",
  3629. flag_descriptions::kAcceleratedVideoDecodeName,
  3630. flag_descriptions::kAcceleratedVideoDecodeDescription,
  3631. kOsMac | kOsWin | kOsCrOS | kOsAndroid | kOsLacros | kOsFuchsia,
  3632. SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedVideoDecode),
  3633. },
  3634. #endif // BUILDFLAG(IS_LINUX)
  3635. {
  3636. "disable-accelerated-video-encode",
  3637. flag_descriptions::kAcceleratedVideoEncodeName,
  3638. flag_descriptions::kAcceleratedVideoEncodeDescription,
  3639. kOsMac | kOsWin | kOsCrOS | kOsAndroid,
  3640. SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedVideoEncode),
  3641. },
  3642. #if BUILDFLAG(IS_WIN)
  3643. {
  3644. "enable-hardware-secure-decryption",
  3645. flag_descriptions::kHardwareSecureDecryptionName,
  3646. flag_descriptions::kHardwareSecureDecryptionDescription,
  3647. kOsWin,
  3648. FEATURE_VALUE_TYPE(media::kHardwareSecureDecryption),
  3649. },
  3650. {
  3651. "enable-hardware-secure-decryption-experiment",
  3652. flag_descriptions::kHardwareSecureDecryptionExperimentName,
  3653. flag_descriptions::kHardwareSecureDecryptionExperimentDescription,
  3654. kOsWin,
  3655. FEATURE_VALUE_TYPE(media::kHardwareSecureDecryptionExperiment),
  3656. },
  3657. {
  3658. "enable-hardware-secure-decryption-fallback",
  3659. flag_descriptions::kHardwareSecureDecryptionFallbackName,
  3660. flag_descriptions::kHardwareSecureDecryptionFallbackDescription,
  3661. kOsWin,
  3662. FEATURE_VALUE_TYPE(media::kHardwareSecureDecryptionFallback),
  3663. },
  3664. {
  3665. "enable-media-foundation-clear",
  3666. flag_descriptions::kMediaFoundationClearName,
  3667. flag_descriptions::kMediaFoundationClearDescription,
  3668. kOsWin,
  3669. FEATURE_VALUE_TYPE(media::kMediaFoundationClearPlayback),
  3670. },
  3671. {
  3672. "enable-waitable-swap-chain",
  3673. flag_descriptions::kUseWaitableSwapChainName,
  3674. flag_descriptions::kUseWaitableSwapChainDescription,
  3675. kOsWin,
  3676. FEATURE_WITH_PARAMS_VALUE_TYPE(features::kDXGIWaitableSwapChain,
  3677. kDXGIWaitableSwapChainVariations,
  3678. "DXGIWaitableSwapChain"),
  3679. },
  3680. #endif
  3681. #if BUILDFLAG(IS_CHROMEOS_ASH)
  3682. {
  3683. "zero-copy-video-capture",
  3684. flag_descriptions::kZeroCopyVideoCaptureName,
  3685. flag_descriptions::kZeroCopyVideoCaptureDescription,
  3686. kOsCrOS,
  3687. ENABLE_DISABLE_VALUE_TYPE_AND_VALUE(
  3688. switches::kVideoCaptureUseGpuMemoryBuffer,
  3689. "1",
  3690. switches::kDisableVideoCaptureUseGpuMemoryBuffer,
  3691. "1"),
  3692. },
  3693. {
  3694. "ash-debug-shortcuts",
  3695. flag_descriptions::kDebugShortcutsName,
  3696. flag_descriptions::kDebugShortcutsDescription,
  3697. kOsAll,
  3698. SINGLE_VALUE_TYPE(ash::switches::kAshDebugShortcuts),
  3699. },
  3700. {"ui-slow-animations", flag_descriptions::kUiSlowAnimationsName,
  3701. flag_descriptions::kUiSlowAnimationsDescription, kOsCrOS,
  3702. SINGLE_VALUE_TYPE(switches::kUISlowAnimations)},
  3703. #endif // BUILDFLAG(IS_CHROMEOS_ASH)
  3704. #if BUILDFLAG(IS_WIN)
  3705. {
  3706. "zero-copy-video-capture",
  3707. flag_descriptions::kZeroCopyVideoCaptureName,
  3708. flag_descriptions::kZeroCopyVideoCaptureDescription,
  3709. kOsWin,
  3710. FEATURE_VALUE_TYPE(media::kMediaFoundationD3D11VideoCapture),
  3711. },
  3712. #endif // BUILDFLAG(IS_WIN)
  3713. {"debug-packed-apps", flag_descriptions::kDebugPackedAppName,
  3714. flag_descriptions::kDebugPackedAppDescription, kOsDesktop,
  3715. SINGLE_VALUE_TYPE(switches::kDebugPackedApps)},
  3716. {"username-first-flow-fallback-crowdsourcing",
  3717. flag_descriptions::kUsernameFirstFlowFallbackCrowdsourcingName,
  3718. flag_descriptions::kUsernameFirstFlowFallbackCrowdsourcingDescription,
  3719. kOsAll,
  3720. FEATURE_VALUE_TYPE(
  3721. password_manager::features::kUsernameFirstFlowFallbackCrowdsourcing)},
  3722. {"enable-show-autofill-signatures",
  3723. flag_descriptions::kShowAutofillSignaturesName,
  3724. flag_descriptions::kShowAutofillSignaturesDescription, kOsAll,
  3725. SINGLE_VALUE_TYPE(autofill::switches::kShowAutofillSignatures)},
  3726. {"wallet-service-use-sandbox",
  3727. flag_descriptions::kWalletServiceUseSandboxName,
  3728. flag_descriptions::kWalletServiceUseSandboxDescription,
  3729. kOsAndroid | kOsDesktop,
  3730. ENABLE_DISABLE_VALUE_TYPE_AND_VALUE(
  3731. autofill::switches::kWalletServiceUseSandbox,
  3732. "1",
  3733. autofill::switches::kWalletServiceUseSandbox,
  3734. "0")},
  3735. {"enable-web-bluetooth", flag_descriptions::kWebBluetoothName,
  3736. flag_descriptions::kWebBluetoothDescription, kOsLinux | kOsLacros,
  3737. FEATURE_VALUE_TYPE(features::kWebBluetooth)},
  3738. {"enable-web-bluetooth-new-permissions-backend",
  3739. flag_descriptions::kWebBluetoothNewPermissionsBackendName,
  3740. flag_descriptions::kWebBluetoothNewPermissionsBackendDescription,
  3741. kOsAndroid | kOsDesktop,
  3742. FEATURE_VALUE_TYPE(features::kWebBluetoothNewPermissionsBackend)},
  3743. {"enable-webusb-device-detection",
  3744. flag_descriptions::kWebUsbDeviceDetectionName,
  3745. flag_descriptions::kWebUsbDeviceDetectionDescription, kOsDesktop,
  3746. FEATURE_VALUE_TYPE(features::kWebUsbDeviceDetection)},
  3747. #if defined(USE_AURA)
  3748. {"overscroll-history-navigation",
  3749. flag_descriptions::kOverscrollHistoryNavigationName,
  3750. flag_descriptions::kOverscrollHistoryNavigationDescription, kOsAura,
  3751. FEATURE_VALUE_TYPE(features::kOverscrollHistoryNavigation)},
  3752. {"pull-to-refresh", flag_descriptions::kPullToRefreshName,
  3753. flag_descriptions::kPullToRefreshDescription, kOsAura,
  3754. MULTI_VALUE_TYPE(kPullToRefreshChoices)},
  3755. #endif // USE_AURA
  3756. {"enable-touch-drag-drop", flag_descriptions::kTouchDragDropName,
  3757. flag_descriptions::kTouchDragDropDescription, kOsWin | kOsCrOS,
  3758. ENABLE_DISABLE_VALUE_TYPE(switches::kEnableTouchDragDrop,
  3759. switches::kDisableTouchDragDrop)},
  3760. {"touch-selection-strategy", flag_descriptions::kTouchSelectionStrategyName,
  3761. flag_descriptions::kTouchSelectionStrategyDescription,
  3762. kOsAndroid, // TODO(mfomitchev): Add CrOS/Win/Linux support soon.
  3763. MULTI_VALUE_TYPE(kTouchTextSelectionStrategyChoices)},
  3764. {"enable-suggestions-with-substring-match",
  3765. flag_descriptions::kSuggestionsWithSubStringMatchName,
  3766. flag_descriptions::kSuggestionsWithSubStringMatchDescription, kOsAll,
  3767. FEATURE_VALUE_TYPE(autofill::features::kAutofillTokenPrefixMatching)},
  3768. #if BUILDFLAG(IS_CHROMEOS_ASH)
  3769. {"enable-virtual-keyboard", flag_descriptions::kVirtualKeyboardName,
  3770. flag_descriptions::kVirtualKeyboardDescription, kOsCrOS,
  3771. SINGLE_VALUE_TYPE(keyboard::switches::kEnableVirtualKeyboard)},
  3772. {"disable-virtual-keyboard",
  3773. flag_descriptions::kVirtualKeyboardDisabledName,
  3774. flag_descriptions::kVirtualKeyboardDisabledDescription, kOsCrOS,
  3775. SINGLE_VALUE_TYPE(keyboard::switches::kDisableVirtualKeyboard)},
  3776. #endif // BUILDFLAG(IS_CHROMEOS_ASH)
  3777. {"enable-webgl-developer-extensions",
  3778. flag_descriptions::kWebglDeveloperExtensionsName,
  3779. flag_descriptions::kWebglDeveloperExtensionsDescription, kOsAll,
  3780. SINGLE_VALUE_TYPE(switches::kEnableWebGLDeveloperExtensions)},
  3781. {"enable-webgl-draft-extensions",
  3782. flag_descriptions::kWebglDraftExtensionsName,
  3783. flag_descriptions::kWebglDraftExtensionsDescription, kOsAll,
  3784. SINGLE_VALUE_TYPE(switches::kEnableWebGLDraftExtensions)},
  3785. {"enable-zero-copy", flag_descriptions::kZeroCopyName,
  3786. flag_descriptions::kZeroCopyDescription, kOsAll,
  3787. ENABLE_DISABLE_VALUE_TYPE(blink::switches::kEnableZeroCopy,
  3788. blink::switches::kDisableZeroCopy)},
  3789. {"enable-vulkan", flag_descriptions::kEnableVulkanName,
  3790. flag_descriptions::kEnableVulkanDescription,
  3791. kOsWin | kOsLinux | kOsLacros | kOsAndroid,
  3792. FEATURE_VALUE_TYPE(features::kVulkan)},
  3793. #if BUILDFLAG(IS_ANDROID)
  3794. {"translate-force-trigger-on-english",
  3795. flag_descriptions::kTranslateForceTriggerOnEnglishName,
  3796. flag_descriptions::kTranslateForceTriggerOnEnglishDescription, kOsAndroid,
  3797. FEATURE_WITH_PARAMS_VALUE_TYPE(language::kOverrideTranslateTriggerInIndia,
  3798. kTranslateForceTriggerOnEnglishVariations,
  3799. "OverrideTranslateTriggerInIndia")},
  3800. {"translate-assist-content", flag_descriptions::kTranslateAssistContentName,
  3801. flag_descriptions::kTranslateAssistContentDescription, kOsAndroid,
  3802. FEATURE_VALUE_TYPE(language::kTranslateAssistContent)},
  3803. {"translate-intent", flag_descriptions::kTranslateIntentName,
  3804. flag_descriptions::kTranslateIntentDescription, kOsAndroid,
  3805. FEATURE_VALUE_TYPE(language::kTranslateIntent)},
  3806. {"translate-message-ui", flag_descriptions::kTranslateMessageUIName,
  3807. flag_descriptions::kTranslateMessageUIDescription, kOsAndroid,
  3808. FEATURE_VALUE_TYPE(translate::kTranslateMessageUI)},
  3809. #endif // BUILDFLAG(IS_ANDROID)
  3810. {"override-language-prefs-for-href-translate",
  3811. flag_descriptions::kOverrideLanguagePrefsForHrefTranslateName,
  3812. flag_descriptions::kOverrideLanguagePrefsForHrefTranslateDescription,
  3813. kOsAll,
  3814. FEATURE_WITH_PARAMS_VALUE_TYPE(
  3815. translate::kOverrideLanguagePrefsForHrefTranslate,
  3816. kOverrideLanguagePrefsForHrefTranslateVariations,
  3817. "OverrideLanguagePrefsForHrefTranslate")},
  3818. {"override-site-prefs-for-href-translate",
  3819. flag_descriptions::kOverrideSitePrefsForHrefTranslateName,
  3820. flag_descriptions::kOverrideSitePrefsForHrefTranslateDescription, kOsAll,
  3821. FEATURE_WITH_PARAMS_VALUE_TYPE(
  3822. translate::kOverrideSitePrefsForHrefTranslate,
  3823. kOverrideSitePrefsForHrefTranslateVariations,
  3824. "OverrideSitePrefsForHrefTranslate")},
  3825. {"override-unsupported-page-language-for-href-translate",
  3826. flag_descriptions::kOverrideUnsupportedPageLanguageForHrefTranslateName,
  3827. flag_descriptions::
  3828. kOverrideUnsupportedPageLanguageForHrefTranslateDescription,
  3829. kOsAll,
  3830. FEATURE_WITH_PARAMS_VALUE_TYPE(
  3831. translate::kOverrideUnsupportedPageLanguageForHrefTranslate,
  3832. kOverrideUnsupportedPageLanguageForHrefTranslateVariations,
  3833. "OverrideUnsupportedPageLanguageForHrefTranslate")},
  3834. {"override-similar-languages-for-href-translate",
  3835. flag_descriptions::kOverrideSimilarLanguagesForHrefTranslateName,
  3836. flag_descriptions::kOverrideSimilarLanguagesForHrefTranslateDescription,
  3837. kOsAll,
  3838. FEATURE_WITH_PARAMS_VALUE_TYPE(
  3839. translate::kOverrideSimilarLanguagesForHrefTranslate,
  3840. kOverrideSimilarLanguagesForHrefTranslateVariations,
  3841. "OverrideSimilarLanguagesForHrefTranslate")},
  3842. #if BUILDFLAG(ENABLE_SYSTEM_NOTIFICATIONS) && !BUILDFLAG(IS_CHROMEOS_ASH)
  3843. {"enable-system-notifications",
  3844. flag_descriptions::kNotificationsSystemFlagName,
  3845. flag_descriptions::kNotificationsSystemFlagDescription,
  3846. kOsMac | kOsLinux | kOsLacros | kOsWin,
  3847. FEATURE_VALUE_TYPE(features::kSystemNotifications)},
  3848. #endif // BUILDFLAG(ENABLE_SYSTEM_NOTIFICATIONS) && !BUILDFLAG(IS_CHROMEOS_ASH)
  3849. #if BUILDFLAG(IS_ANDROID)
  3850. {"adaptive-button-in-top-toolbar",
  3851. flag_descriptions::kAdaptiveButtonInTopToolbarName,
  3852. flag_descriptions::kAdaptiveButtonInTopToolbarDescription, kOsAndroid,
  3853. FEATURE_WITH_PARAMS_VALUE_TYPE(
  3854. chrome::android::kAdaptiveButtonInTopToolbar,
  3855. kAdaptiveButtonInTopToolbarVariations,
  3856. "OptionalToolbarButton")},
  3857. {"adaptive-button-in-top-toolbar-customization",
  3858. flag_descriptions::kAdaptiveButtonInTopToolbarCustomizationName,
  3859. flag_descriptions::kAdaptiveButtonInTopToolbarCustomizationDescription,
  3860. kOsAndroid,
  3861. FEATURE_WITH_PARAMS_VALUE_TYPE(
  3862. chrome::android::kAdaptiveButtonInTopToolbarCustomizationV2,
  3863. kAdaptiveButtonInTopToolbarCustomizationVariations,
  3864. "OptionalToolbarButtonCustomization")},
  3865. {"android-media-picker", flag_descriptions::kAndroidMediaPickerSupportName,
  3866. flag_descriptions::kAndroidMediaPickerSupportDescription, kOsAndroid,
  3867. FEATURE_VALUE_TYPE(photo_picker::features::kAndroidMediaPickerSupport)},
  3868. {"contextual-page-actions", flag_descriptions::kContextualPageActionsName,
  3869. flag_descriptions::kContextualPageActionsDescription, kOsAndroid,
  3870. FEATURE_VALUE_TYPE(
  3871. segmentation_platform::features::kContextualPageActions)},
  3872. {"contextual-page-actions-with-price-tracking",
  3873. flag_descriptions::kContextualPageActionsWithPriceTrackingName,
  3874. flag_descriptions::kContextualPageActionsWithPriceTrackingDescription,
  3875. kOsAndroid,
  3876. FEATURE_WITH_PARAMS_VALUE_TYPE(
  3877. segmentation_platform::features::kContextualPageActionPriceTracking,
  3878. kContextualPageActionPriceTrackingVariations,
  3879. "ContextualPageActionPriceTracking")},
  3880. {"reader-mode-heuristics", flag_descriptions::kReaderModeHeuristicsName,
  3881. flag_descriptions::kReaderModeHeuristicsDescription, kOsAndroid,
  3882. MULTI_VALUE_TYPE(kReaderModeHeuristicsChoices)},
  3883. {"screenshots-for-android-v2",
  3884. flag_descriptions::kScreenshotsForAndroidV2Name,
  3885. flag_descriptions::kScreenshotsForAndroidV2Description, kOsAndroid,
  3886. FEATURE_VALUE_TYPE(share::kScreenshotsForAndroidV2)},
  3887. {"voice-button-in-top-toolbar",
  3888. flag_descriptions::kVoiceButtonInTopToolbarName,
  3889. flag_descriptions::kVoiceButtonInTopToolbarDescription, kOsAndroid,
  3890. FEATURE_VALUE_TYPE(chrome::android::kVoiceButtonInTopToolbar)},
  3891. {"assistant-consent-modal", flag_descriptions::kAssistantConsentModalName,
  3892. flag_descriptions::kAssistantConsentModalDescription, kOsAndroid,
  3893. FEATURE_VALUE_TYPE(chrome::android::kAssistantConsentModal)},
  3894. {"assistant-consent-simplified-text",
  3895. flag_descriptions::kAssistantConsentSimplifiedTextName,
  3896. flag_descriptions::kAssistantConsentSimplifiedTextDescription, kOsAndroid,
  3897. FEATURE_VALUE_TYPE(chrome::android::kAssistantConsentSimplifiedText)},
  3898. {"assistant-consent-v2", flag_descriptions::kAssistantConsentV2Name,
  3899. flag_descriptions::kAssistantConsentV2Description, kOsAndroid,
  3900. FEATURE_WITH_PARAMS_VALUE_TYPE(chrome::android::kAssistantConsentV2,
  3901. kAssistantConsentV2_Variations,
  3902. "AssistantConsentV2")},
  3903. {"assistant-intent-page-url",
  3904. flag_descriptions::kAssistantIntentPageUrlName,
  3905. flag_descriptions::kAssistantIntentPageUrlDescription, kOsAndroid,
  3906. FEATURE_VALUE_TYPE(chrome::android::kAssistantIntentPageUrl)},
  3907. {"assistant-intent-translate-info",
  3908. flag_descriptions::kAssistantIntentTranslateInfoName,
  3909. flag_descriptions::kAssistantIntentTranslateInfoDescription, kOsAndroid,
  3910. FEATURE_VALUE_TYPE(chrome::android::kAssistantIntentTranslateInfo)},
  3911. {"share-button-in-top-toolbar",
  3912. flag_descriptions::kShareButtonInTopToolbarName,
  3913. flag_descriptions::kShareButtonInTopToolbarDescription, kOsAndroid,
  3914. FEATURE_VALUE_TYPE(chrome::android::kShareButtonInTopToolbar)},
  3915. {"chrome-share-long-screenshot",
  3916. flag_descriptions::kChromeShareLongScreenshotName,
  3917. flag_descriptions::kChromeShareLongScreenshotDescription, kOsAndroid,
  3918. FEATURE_WITH_PARAMS_VALUE_TYPE(chrome::android::kChromeShareLongScreenshot,
  3919. kLongScreenshotVariations,
  3920. "ChromeShareLongScreenshot")},
  3921. {"chrome-sharing-hub-launch-adjacent",
  3922. flag_descriptions::kChromeSharingHubLaunchAdjacentName,
  3923. flag_descriptions::kChromeSharingHubLaunchAdjacentDescription, kOsAndroid,
  3924. FEATURE_VALUE_TYPE(chrome::android::kChromeSharingHubLaunchAdjacent)},
  3925. {"persist-share-hub-on-app-switch",
  3926. flag_descriptions::kPersistShareHubOnAppSwitchName,
  3927. flag_descriptions::kPersistShareHubOnAppSwitchDescription, kOsAndroid,
  3928. FEATURE_VALUE_TYPE(share::kPersistShareHubOnAppSwitch)},
  3929. {"webnotes-publish", flag_descriptions::kWebNotesPublishName,
  3930. flag_descriptions::kWebNotesPublishDescription, kOsAndroid,
  3931. FEATURE_VALUE_TYPE(content_creation::kWebNotesPublish)},
  3932. {"webnotes-dynamic-templates",
  3933. flag_descriptions::kWebNotesDynamicTemplatesName,
  3934. flag_descriptions::kWebNotesDynamicTemplatesDescription, kOsAndroid,
  3935. FEATURE_VALUE_TYPE(content_creation::kWebNotesDynamicTemplates)},
  3936. {"lightweight-reactions-android",
  3937. flag_descriptions::kLightweightReactionsAndroidName,
  3938. flag_descriptions::kLightweightReactionsAndroidDescription, kOsAndroid,
  3939. FEATURE_VALUE_TYPE(content_creation::kLightweightReactions)},
  3940. {"cormorant", flag_descriptions::kCormorantName,
  3941. flag_descriptions::kCormorantDescription, kOsAndroid,
  3942. FEATURE_VALUE_TYPE(share::kCormorant)},
  3943. #endif // BUILDFLAG(IS_ANDROID)
  3944. {"enable-automatic-snooze", flag_descriptions::kEnableAutomaticSnoozeName,
  3945. flag_descriptions::kEnableAutomaticSnoozeDescription, kOsAll,
  3946. FEATURE_VALUE_TYPE(feature_engagement::kEnableAutomaticSnooze)},
  3947. {"in-product-help-demo-mode-choice",
  3948. flag_descriptions::kInProductHelpDemoModeChoiceName,
  3949. flag_descriptions::kInProductHelpDemoModeChoiceDescription, kOsAll,
  3950. FEATURE_WITH_PARAMS_VALUE_TYPE(
  3951. feature_engagement::kIPHDemoMode,
  3952. feature_engagement::kIPHDemoModeChoiceVariations,
  3953. "IPH_DemoMode")},
  3954. {"in-product-help-snooze", flag_descriptions::kInProductHelpSnoozeName,
  3955. flag_descriptions::kInProductHelpSnoozeDescription, kOsAll,
  3956. FEATURE_VALUE_TYPE(feature_engagement::kIPHSnooze)},
  3957. {"in-product-help-use-client-config",
  3958. flag_descriptions::kInProductHelpUseClientConfigName,
  3959. flag_descriptions::kInProductHelpUseClientConfigDescription, kOsAll,
  3960. FEATURE_VALUE_TYPE(feature_engagement::kUseClientConfigIPH)},
  3961. {"disable-threaded-scrolling", flag_descriptions::kThreadedScrollingName,
  3962. flag_descriptions::kThreadedScrollingDescription, kOsAll,
  3963. SINGLE_DISABLE_VALUE_TYPE(blink::switches::kDisableThreadedScrolling)},
  3964. {"extension-content-verification",
  3965. flag_descriptions::kExtensionContentVerificationName,
  3966. flag_descriptions::kExtensionContentVerificationDescription, kOsDesktop,
  3967. MULTI_VALUE_TYPE(kExtensionContentVerificationChoices)},
  3968. #if BUILDFLAG(IS_CHROMEOS_ASH)
  3969. {"enable-lock-screen-notification",
  3970. flag_descriptions::kLockScreenNotificationName,
  3971. flag_descriptions::kLockScreenNotificationDescription, kOsCrOS,
  3972. FEATURE_VALUE_TYPE(ash::features::kLockScreenNotifications)},
  3973. #endif // BUILDFLAG(IS_CHROMEOS_ASH)
  3974. #if BUILDFLAG(IS_CHROMEOS_ASH)
  3975. {"system-extensions", flag_descriptions::kSystemExtensionsName,
  3976. flag_descriptions::kSystemExtensionsDescription, kOsCrOS,
  3977. FEATURE_VALUE_TYPE(ash::features::kSystemExtensions)},
  3978. {"enable-service-workers-for-chrome-untrusted",
  3979. flag_descriptions::kEnableServiceWorkersForChromeUntrustedName,
  3980. flag_descriptions::kEnableServiceWorkersForChromeUntrustedDescription,
  3981. kOsCrOS,
  3982. FEATURE_VALUE_TYPE(features::kEnableServiceWorkersForChromeUntrusted)},
  3983. {"crostini-bullseye-upgrade",
  3984. flag_descriptions::kCrostiniBullseyeUpgradeName,
  3985. flag_descriptions::kCrostiniBullseyeUpgradeDescription, kOsCrOS,
  3986. FEATURE_VALUE_TYPE(chromeos::features::kCrostiniBullseyeUpgrade)},
  3987. {"crostini-reset-lxd-db", flag_descriptions::kCrostiniResetLxdDbName,
  3988. flag_descriptions::kCrostiniResetLxdDbDescription, kOsCrOS,
  3989. FEATURE_VALUE_TYPE(chromeos::features::kCrostiniResetLxdDb)},
  3990. {"terminal-alternative-emulator",
  3991. flag_descriptions::kTerminalAlternativeEmulatorName,
  3992. flag_descriptions::kTerminalAlternativeEmulatorDescription, kOsCrOS,
  3993. FEATURE_VALUE_TYPE(chromeos::features::kTerminalAlternativeEmulator)},
  3994. {"terminal-dev", flag_descriptions::kTerminalDevName,
  3995. flag_descriptions::kTerminalDevDescription, kOsCrOS,
  3996. FEATURE_VALUE_TYPE(chromeos::features::kTerminalDev)},
  3997. {"terminal-multi-profile", flag_descriptions::kTerminalMultiProfileName,
  3998. flag_descriptions::kTerminalMultiProfileDescription, kOsCrOS,
  3999. FEATURE_VALUE_TYPE(chromeos::features::kTerminalMultiProfile)},
  4000. {"terminal-tmux-integration",
  4001. flag_descriptions::kTerminalTmuxIntegrationName,
  4002. flag_descriptions::kTerminalTmuxIntegrationDescription, kOsCrOS,
  4003. FEATURE_VALUE_TYPE(chromeos::features::kTerminalTmuxIntegration)},
  4004. {"crostini-use-lxd-4", flag_descriptions::kCrostiniUseLxd4Name,
  4005. flag_descriptions::kCrostiniUseLxd4Description, kOsCrOS,
  4006. FEATURE_VALUE_TYPE(chromeos::features::kCrostiniUseLxd4)},
  4007. {"crostini-multi-container", flag_descriptions::kCrostiniMultiContainerName,
  4008. flag_descriptions::kCrostiniMultiContainerDescription, kOsCrOS,
  4009. FEATURE_VALUE_TYPE(chromeos::features::kCrostiniMultiContainer)},
  4010. {"crostini-ime-support", flag_descriptions::kCrostiniImeSupportName,
  4011. flag_descriptions::kCrostiniImeSupportDescription, kOsCrOS,
  4012. FEATURE_VALUE_TYPE(chromeos::features::kCrostiniImeSupport)},
  4013. {"crostini-virtual-keyboard-support",
  4014. flag_descriptions::kCrostiniVirtualKeyboardSupportName,
  4015. flag_descriptions::kCrostiniVirtualKeyboardSupportDescription, kOsCrOS,
  4016. FEATURE_VALUE_TYPE(chromeos::features::kCrostiniVirtualKeyboardSupport)},
  4017. {"guest-os-generic-installer",
  4018. flag_descriptions::kGuestOSGenericInstallerName,
  4019. flag_descriptions::kGuestOSGenericInstallerDescription, kOsCrOS,
  4020. FEATURE_VALUE_TYPE(chromeos::features::kGuestOSGenericInstaller)},
  4021. {"bruschetta", flag_descriptions::kBruschettaName,
  4022. flag_descriptions::kBruschettaDescription, kOsCrOS,
  4023. FEATURE_VALUE_TYPE(chromeos::features::kBruschetta)},
  4024. #endif // BUILDFLAG(IS_CHROMEOS_ASH)
  4025. #if (BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || \
  4026. BUILDFLAG(IS_ANDROID)) && \
  4027. !BUILDFLAG(IS_NACL)
  4028. {"mojo-linux-sharedmem", flag_descriptions::kMojoLinuxChannelSharedMemName,
  4029. flag_descriptions::kMojoLinuxChannelSharedMemDescription,
  4030. kOsCrOS | kOsLinux | kOsLacros | kOsAndroid,
  4031. FEATURE_VALUE_TYPE(mojo::core::kMojoLinuxChannelSharedMem)},
  4032. #endif
  4033. #if BUILDFLAG(IS_ANDROID)
  4034. {"enable-site-isolation-for-password-sites",
  4035. flag_descriptions::kSiteIsolationForPasswordSitesName,
  4036. flag_descriptions::kSiteIsolationForPasswordSitesDescription, kOsAndroid,
  4037. FEATURE_VALUE_TYPE(
  4038. site_isolation::features::kSiteIsolationForPasswordSites)},
  4039. {"enable-site-per-process", flag_descriptions::kStrictSiteIsolationName,
  4040. flag_descriptions::kStrictSiteIsolationDescription, kOsAndroid,
  4041. SINGLE_VALUE_TYPE(switches::kSitePerProcess)},
  4042. #endif
  4043. {"enable-isolated-web-apps", flag_descriptions::kEnableIsolatedWebAppsName,
  4044. flag_descriptions::kEnableIsolatedWebAppsDescription, kOsAll,
  4045. FEATURE_VALUE_TYPE(features::kIsolatedWebApps)},
  4046. {"install-isolated-apps-at-startup",
  4047. flag_descriptions::kInstallIssolatedAppsAtStartup,
  4048. flag_descriptions::kInstallIssolatedAppsAtStartupDescription, kOsAll,
  4049. ORIGIN_LIST_VALUE_TYPE(switches::kInstallIsolatedAppsAtStartup, "")},
  4050. {"isolate-origins", flag_descriptions::kIsolateOriginsName,
  4051. flag_descriptions::kIsolateOriginsDescription, kOsAll,
  4052. ORIGIN_LIST_VALUE_TYPE(switches::kIsolateOrigins, "")},
  4053. {"isolated-app-origins", flag_descriptions::kIsolatedAppOriginsName,
  4054. flag_descriptions::kIsolatedAppOriginsDescription, kOsAll,
  4055. ORIGIN_LIST_VALUE_TYPE(switches::kIsolatedAppOrigins, "")},
  4056. {about_flags::kSiteIsolationTrialOptOutInternalName,
  4057. flag_descriptions::kSiteIsolationOptOutName,
  4058. flag_descriptions::kSiteIsolationOptOutDescription, kOsAll,
  4059. MULTI_VALUE_TYPE(kSiteIsolationOptOutChoices)},
  4060. {"isolation-by-default", flag_descriptions::kIsolationByDefaultName,
  4061. flag_descriptions::kIsolationByDefaultDescription, kOsAll,
  4062. SINGLE_VALUE_TYPE(switches::kIsolationByDefault)},
  4063. #if !BUILDFLAG(IS_ANDROID)
  4064. {"enable-webview-tag-site-isolation",
  4065. flag_descriptions::kWebViewTagSiteIsolationName,
  4066. flag_descriptions::kWebViewTagSiteIsolationDescription, kOsDesktop,
  4067. FEATURE_VALUE_TYPE(features::kSiteIsolationForGuests)},
  4068. #endif
  4069. {"allow-insecure-localhost", flag_descriptions::kAllowInsecureLocalhostName,
  4070. flag_descriptions::kAllowInsecureLocalhostDescription, kOsAll,
  4071. SINGLE_VALUE_TYPE(switches::kAllowInsecureLocalhost)},
  4072. {"bypass-app-banner-engagement-checks",
  4073. flag_descriptions::kBypassAppBannerEngagementChecksName,
  4074. flag_descriptions::kBypassAppBannerEngagementChecksDescription, kOsAll,
  4075. SINGLE_VALUE_TYPE(webapps::switches::kBypassAppBannerEngagementChecks)},
  4076. #if BUILDFLAG(IS_CHROMEOS)
  4077. {"allow-default-web-app-migration-for-chrome-os-managed-users",
  4078. flag_descriptions::kAllowDefaultWebAppMigrationForChromeOsManagedUsersName,
  4079. flag_descriptions::
  4080. kAllowDefaultWebAppMigrationForChromeOsManagedUsersDescription,
  4081. kOsCrOS,
  4082. FEATURE_VALUE_TYPE(
  4083. web_app::kAllowDefaultWebAppMigrationForChromeOsManagedUsers)},
  4084. #endif // BUILDFLAG(IS_CHROMEOS)
  4085. {"enable-desktop-pwas-prefix-app-name-in-window-title",
  4086. flag_descriptions::kDesktopPWAsPrefixAppNameInWindowTitleName,
  4087. flag_descriptions::kDesktopPWAsPrefixAppNameInWindowTitleDescription,
  4088. kOsDesktop, FEATURE_VALUE_TYPE(features::kPrefixWebAppWindowsWithAppName)},
  4089. {"enable-desktop-pwas-remove-status-bar",
  4090. flag_descriptions::kDesktopPWAsRemoveStatusBarName,
  4091. flag_descriptions::kDesktopPWAsRemoveStatusBarDescription, kOsDesktop,
  4092. FEATURE_VALUE_TYPE(features::kRemoveStatusBarInWebApps)},
  4093. #if BUILDFLAG(IS_ANDROID)
  4094. {"enable-android-pwas-default-offline-page",
  4095. flag_descriptions::kAndroidPWAsDefaultOfflinePageName,
  4096. flag_descriptions::kAndroidPWAsDefaultOfflinePageDescription, kOsAndroid,
  4097. FEATURE_VALUE_TYPE(features::kAndroidPWAsDefaultOfflinePage)},
  4098. #else
  4099. {"enable-desktop-pwas-default-offline-page",
  4100. flag_descriptions::kDesktopPWAsDefaultOfflinePageName,
  4101. flag_descriptions::kDesktopPWAsDefaultOfflinePageDescription, kOsDesktop,
  4102. FEATURE_VALUE_TYPE(features::kDesktopPWAsDefaultOfflinePage)},
  4103. #endif // BUILDFLAG(IS_ANDROID)
  4104. {"enable-desktop-pwas-elided-extensions-menu",
  4105. flag_descriptions::kDesktopPWAsElidedExtensionsMenuName,
  4106. flag_descriptions::kDesktopPWAsElidedExtensionsMenuDescription, kOsDesktop,
  4107. FEATURE_VALUE_TYPE(features::kDesktopPWAsElidedExtensionsMenu)},
  4108. {"enable-desktop-pwas-tab-strip",
  4109. flag_descriptions::kDesktopPWAsTabStripName,
  4110. flag_descriptions::kDesktopPWAsTabStripDescription, kOsDesktop,
  4111. FEATURE_VALUE_TYPE(features::kDesktopPWAsTabStrip)},
  4112. {"enable-desktop-pwas-tab-strip-settings",
  4113. flag_descriptions::kDesktopPWAsTabStripSettingsName,
  4114. flag_descriptions::kDesktopPWAsTabStripSettingsDescription, kOsDesktop,
  4115. FEATURE_VALUE_TYPE(features::kDesktopPWAsTabStripSettings)},
  4116. {"enable-desktop-pwas-launch-handler",
  4117. flag_descriptions::kDesktopPWAsLaunchHandlerName,
  4118. flag_descriptions::kDesktopPWAsLaunchHandlerDescription, kOsDesktop,
  4119. FEATURE_VALUE_TYPE(blink::features::kWebAppEnableLaunchHandler)},
  4120. {"enable-desktop-pwas-manifest-id",
  4121. flag_descriptions::kDesktopPWAsManifestIdName,
  4122. flag_descriptions::kDesktopPWAsManifestIdDescription, kOsDesktop,
  4123. FEATURE_VALUE_TYPE(blink::features::kWebAppEnableManifestId)},
  4124. {"enable-desktop-pwas-sub-apps", flag_descriptions::kDesktopPWAsSubAppsName,
  4125. flag_descriptions::kDesktopPWAsSubAppsDescription,
  4126. kOsWin | kOsLinux | kOsLacros | kOsMac | kOsCrOS | kOsFuchsia,
  4127. FEATURE_VALUE_TYPE(blink::features::kDesktopPWAsSubApps)},
  4128. {"enable-desktop-pwas-window-controls-overlay",
  4129. flag_descriptions::kDesktopPWAsWindowControlsOverlayName,
  4130. flag_descriptions::kDesktopPWAsWindowControlsOverlayDescription,
  4131. kOsWin | kOsLinux | kOsLacros | kOsMac | kOsCrOS | kOsFuchsia,
  4132. FEATURE_VALUE_TYPE(features::kWebAppWindowControlsOverlay)},
  4133. {"enable-desktop-pwas-borderless",
  4134. flag_descriptions::kDesktopPWAsBorderlessName,
  4135. flag_descriptions::kDesktopPWAsBorderlessDescription,
  4136. kOsLinux | kOsLacros | kOsCrOS,
  4137. FEATURE_VALUE_TYPE(blink::features::kWebAppBorderless)},
  4138. {"enable-desktop-pwas-additional-windowing-controls",
  4139. flag_descriptions::kDesktopPWAsAdditionalWindowingControlsName,
  4140. flag_descriptions::kDesktopPWAsAdditionalWindowingControlsDescription,
  4141. kOsWin | kOsLinux | kOsLacros | kOsMac | kOsCrOS | kOsFuchsia,
  4142. FEATURE_VALUE_TYPE(features::kDesktopPWAsAdditionalWindowingControls)},
  4143. {"enable-desktop-pwas-web-bundles",
  4144. flag_descriptions::kDesktopPWAsWebBundlesName,
  4145. flag_descriptions::kDesktopPWAsWebBundlesDescription, kOsDesktop,
  4146. FEATURE_VALUE_TYPE(features::kDesktopPWAsWebBundles)},
  4147. {"enable-desktop-pwas-detailed-install-dialog",
  4148. flag_descriptions::kDesktopPWAsDetailedInstallDialogName,
  4149. flag_descriptions::kDesktopPWAsDetailedInstallDialogDescription, kOsAll,
  4150. FEATURE_VALUE_TYPE(webapps::features::kDesktopPWAsDetailedInstallDialog)},
  4151. {"record-web-app-debug-info", flag_descriptions::kRecordWebAppDebugInfoName,
  4152. flag_descriptions::kRecordWebAppDebugInfoDescription, kOsDesktop,
  4153. FEATURE_VALUE_TYPE(features::kRecordWebAppDebugInfo)},
  4154. {"use-sync-sandbox", flag_descriptions::kSyncSandboxName,
  4155. flag_descriptions::kSyncSandboxDescription, kOsAll,
  4156. SINGLE_VALUE_TYPE_AND_VALUE(
  4157. syncer::kSyncServiceURL,
  4158. "https://chrome-sync.sandbox.google.com/chrome-sync/alpha")},
  4159. #if !BUILDFLAG(IS_ANDROID)
  4160. {"block-migrated-default-chrome-app-sync",
  4161. flag_descriptions::kBlockMigratedDefaultChromeAppSyncName,
  4162. flag_descriptions::kBlockMigratedDefaultChromeAppSyncDescription,
  4163. kOsDesktop,
  4164. FEATURE_VALUE_TYPE(features::kBlockMigratedDefaultChromeAppSync)},
  4165. {"media-router-cast-allow-all-ips",
  4166. flag_descriptions::kMediaRouterCastAllowAllIPsName,
  4167. flag_descriptions::kMediaRouterCastAllowAllIPsDescription, kOsDesktop,
  4168. FEATURE_VALUE_TYPE(media_router::kCastAllowAllIPsFeature)},
  4169. {"global-media-controls-cast-start-stop",
  4170. flag_descriptions::kGlobalMediaControlsCastStartStopName,
  4171. flag_descriptions::kGlobalMediaControlsCastStartStopDescription,
  4172. kOsDesktop,
  4173. FEATURE_VALUE_TYPE(media_router::kGlobalMediaControlsCastStartStop)},
  4174. {"allow-all-sites-to-initiate-mirroring",
  4175. flag_descriptions::kAllowAllSitesToInitiateMirroringName,
  4176. flag_descriptions::kAllowAllSitesToInitiateMirroringDescription,
  4177. kOsDesktop,
  4178. FEATURE_VALUE_TYPE(media_router::kAllowAllSitesToInitiateMirroring)},
  4179. {"enable-migrate-default-chrome-app-to-web-apps-gsuite",
  4180. flag_descriptions::kEnableMigrateDefaultChromeAppToWebAppsGSuiteName,
  4181. flag_descriptions::
  4182. kEnableMigrateDefaultChromeAppToWebAppsGSuiteDescription,
  4183. kOsDesktop,
  4184. FEATURE_VALUE_TYPE(web_app::kMigrateDefaultChromeAppToWebAppsGSuite)},
  4185. {"enable-migrate-default-chrome-app-to-web-apps-non-gsuite",
  4186. flag_descriptions::kEnableMigrateDefaultChromeAppToWebAppsNonGSuiteName,
  4187. flag_descriptions::
  4188. kEnableMigrateDefaultChromeAppToWebAppsNonGSuiteDescription,
  4189. kOsDesktop,
  4190. FEATURE_VALUE_TYPE(web_app::kMigrateDefaultChromeAppToWebAppsNonGSuite)},
  4191. {"enable-preinstalled-web-app-duplication-fixer",
  4192. flag_descriptions::kEnablePreinstalledWebAppDuplicationFixerName,
  4193. flag_descriptions::kEnablePreinstalledWebAppDuplicationFixerDescription,
  4194. kOsDesktop,
  4195. FEATURE_VALUE_TYPE(features::kPreinstalledWebAppDuplicationFixer)},
  4196. {"enable-openscreen-cast-streaming-session",
  4197. flag_descriptions::kOpenscreenCastStreamingSessionName,
  4198. flag_descriptions::kOpenscreenCastStreamingSessionDescription, kOsDesktop,
  4199. FEATURE_VALUE_TYPE(media::kOpenscreenCastStreamingSession)},
  4200. {"enable-cast-streaming-av1", flag_descriptions::kCastStreamingAv1Name,
  4201. flag_descriptions::kCastStreamingAv1Description, kOsDesktop,
  4202. FEATURE_VALUE_TYPE(mirroring::features::kCastStreamingAv1)},
  4203. {"enable-cast-streaming-vp9", flag_descriptions::kCastStreamingVp9Name,
  4204. flag_descriptions::kCastStreamingVp9Description, kOsDesktop,
  4205. FEATURE_VALUE_TYPE(mirroring::features::kCastStreamingVp9)},
  4206. {"enable-cast-remoting-query-blocklist",
  4207. flag_descriptions::kCastUseBlocklistForRemotingQueryName,
  4208. flag_descriptions::kCastUseBlocklistForRemotingQueryDescription,
  4209. kOsDesktop,
  4210. FEATURE_VALUE_TYPE(
  4211. mirroring::features::kCastUseBlocklistForRemotingQuery)},
  4212. {"force-enable-cast-remoting-query",
  4213. flag_descriptions::kCastForceEnableRemotingQueryName,
  4214. flag_descriptions::kCastForceEnableRemotingQueryDescription, kOsDesktop,
  4215. FEATURE_VALUE_TYPE(mirroring::features::kCastForceEnableRemotingQuery)},
  4216. #endif // !BUILDFLAG(IS_ANDROID)
  4217. #if BUILDFLAG(IS_ANDROID)
  4218. {"autofill-keyboard-accessory-view",
  4219. flag_descriptions::kAutofillAccessoryViewName,
  4220. flag_descriptions::kAutofillAccessoryViewDescription, kOsAndroid,
  4221. FEATURE_VALUE_TYPE(autofill::features::kAutofillKeyboardAccessory)},
  4222. #endif // BUILDFLAG(IS_ANDROID)
  4223. #if BUILDFLAG(IS_MAC)
  4224. {"mac-syscall-sandbox", flag_descriptions::kMacSyscallSandboxName,
  4225. flag_descriptions::kMacSyscallSandboxDescription, kOsMac,
  4226. FEATURE_VALUE_TYPE(features::kMacSyscallSandbox)},
  4227. #endif // BUILDFLAG(IS_MAC)
  4228. #if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC)
  4229. {"web-share", flag_descriptions::kWebShareName,
  4230. flag_descriptions::kWebShareDescription, kOsWin | kOsCrOS | kOsMac,
  4231. FEATURE_VALUE_TYPE(features::kWebShare)},
  4232. #endif // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC)
  4233. #if BUILDFLAG(IS_LINUX)
  4234. {"ozone-platform-hint", flag_descriptions::kOzonePlatformHintName,
  4235. flag_descriptions::kOzonePlatformHintDescription, kOsLinux,
  4236. MULTI_VALUE_TYPE(kOzonePlatformHintRuntimeChoices)},
  4237. {"clean-undecryptable-passwords",
  4238. flag_descriptions::kCleanUndecryptablePasswordsLinuxName,
  4239. flag_descriptions::kCleanUndecryptablePasswordsLinuxDescription, kOsLinux,
  4240. FEATURE_VALUE_TYPE(
  4241. password_manager::features::kSyncUndecryptablePasswordsLinux)},
  4242. {"force-password-initial-sync-when-decryption-fails",
  4243. flag_descriptions::kForcePasswordInitialSyncWhenDecryptionFailsName,
  4244. flag_descriptions::kForcePasswordInitialSyncWhenDecryptionFailsDescription,
  4245. kOsLinux,
  4246. FEATURE_VALUE_TYPE(
  4247. password_manager::features::kForceInitialSyncWhenDecryptionFails)},
  4248. #endif // BUILDFLAG(IS_LINUX)
  4249. #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC)
  4250. {"skip-undecryptable-passwords",
  4251. flag_descriptions::kSkipUndecryptablePasswordsName,
  4252. flag_descriptions::kSkipUndecryptablePasswordsDescription,
  4253. kOsLinux | kOsMac,
  4254. FEATURE_VALUE_TYPE(
  4255. password_manager::features::kSkipUndecryptablePasswords)},
  4256. #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC)
  4257. #if BUILDFLAG(ENABLE_VR)
  4258. {"webxr-incubations", flag_descriptions::kWebXrIncubationsName,
  4259. flag_descriptions::kWebXrIncubationsDescription, kOsAll,
  4260. FEATURE_VALUE_TYPE(device::features::kWebXrIncubations)},
  4261. {"webxr-runtime", flag_descriptions::kWebXrForceRuntimeName,
  4262. flag_descriptions::kWebXrForceRuntimeDescription, kOsDesktop,
  4263. MULTI_VALUE_TYPE(kWebXrForceRuntimeChoices)},
  4264. #endif // ENABLE_VR
  4265. #if BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_LINUX)
  4266. {"disable-accelerated-mjpeg-decode",
  4267. flag_descriptions::kAcceleratedMjpegDecodeName,
  4268. flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS | kOsLinux,
  4269. SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedMjpegDecode)},
  4270. #endif // BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_LINUX)
  4271. {"system-keyboard-lock", flag_descriptions::kSystemKeyboardLockName,
  4272. flag_descriptions::kSystemKeyboardLockDescription, kOsDesktop,
  4273. FEATURE_VALUE_TYPE(features::kSystemKeyboardLock)},
  4274. #if BUILDFLAG(IS_ANDROID)
  4275. {"add-to-homescreen-iph", flag_descriptions::kAddToHomescreenIPHName,
  4276. flag_descriptions::kAddToHomescreenIPHDescription, kOsAndroid,
  4277. FEATURE_WITH_PARAMS_VALUE_TYPE(chrome::android::kAddToHomescreenIPH,
  4278. kAddToHomescreenIPHVariations,
  4279. "AddToHomescreen")},
  4280. {"feature-notification-guide",
  4281. flag_descriptions::kFeatureNotificationGuideName,
  4282. flag_descriptions::kFeatureNotificationGuideDescription, kOsAndroid,
  4283. FEATURE_WITH_PARAMS_VALUE_TYPE(
  4284. feature_guide::features::kFeatureNotificationGuide,
  4285. kFeatureNotificationGuideVariations,
  4286. "FeatureNotificationGuide")},
  4287. {"notification-permission-rationale-dialog",
  4288. flag_descriptions::kNotificationPermissionRationaleName,
  4289. flag_descriptions::kNotificationPermissionRationaleDescription, kOsAndroid,
  4290. FEATURE_WITH_PARAMS_VALUE_TYPE(
  4291. chrome::android::kNotificationPermissionVariant,
  4292. kNotificationPermissionRationaleVariations,
  4293. "NotificationPermissionVariant")},
  4294. {"feature-notification-guide-skip-check-for-low-engaged-users",
  4295. flag_descriptions::
  4296. kFeatureNotificationGuideSkipCheckForLowEngagedUsersName,
  4297. flag_descriptions::
  4298. kFeatureNotificationGuideSkipCheckForLowEngagedUsersDescription,
  4299. kOsAll,
  4300. FEATURE_VALUE_TYPE(feature_guide::features::kSkipCheckForLowEngagedUsers)},
  4301. {"offline-pages-live-page-sharing",
  4302. flag_descriptions::kOfflinePagesLivePageSharingName,
  4303. flag_descriptions::kOfflinePagesLivePageSharingDescription, kOsAndroid,
  4304. FEATURE_VALUE_TYPE(offline_pages::kOfflinePagesLivePageSharingFeature)},
  4305. {"query-tiles", flag_descriptions::kQueryTilesName,
  4306. flag_descriptions::kQueryTilesDescription, kOsAndroid,
  4307. FEATURE_WITH_PARAMS_VALUE_TYPE(query_tiles::features::kQueryTiles,
  4308. kQueryTilesVariations,
  4309. "QueryTilesVariations")},
  4310. {"query-tiles-ntp", flag_descriptions::kQueryTilesNTPName,
  4311. flag_descriptions::kQueryTilesNTPDescription, kOsAndroid,
  4312. FEATURE_VALUE_TYPE(query_tiles::features::kQueryTilesInNTP)},
  4313. {"query-tiles-single-tier", flag_descriptions::kQueryTilesSingleTierName,
  4314. flag_descriptions::kQueryTilesSingleTierDescription, kOsAndroid,
  4315. SINGLE_VALUE_TYPE(query_tiles::switches::kQueryTilesSingleTier)},
  4316. {"query-tiles-enable-query-editing",
  4317. flag_descriptions::kQueryTilesEnableQueryEditingName,
  4318. flag_descriptions::kQueryTilesEnableQueryEditingDescription, kOsAndroid,
  4319. FEATURE_VALUE_TYPE(query_tiles::features::kQueryTilesEnableQueryEditing)},
  4320. {"query-tiles-enable-trending",
  4321. flag_descriptions::kQueryTilesEnableTrendingName,
  4322. flag_descriptions::kQueryTilesEnableTrendingDescription, kOsAndroid,
  4323. SINGLE_VALUE_TYPE(query_tiles::switches::kQueryTilesEnableTrending)},
  4324. {"query-tiles-country-code", flag_descriptions::kQueryTilesCountryCode,
  4325. flag_descriptions::kQueryTilesCountryCodeDescription, kOsAndroid,
  4326. MULTI_VALUE_TYPE(kQueryTilesCountryChoices)},
  4327. {"query-tiles-instant-fetch",
  4328. flag_descriptions::kQueryTilesInstantFetchName,
  4329. flag_descriptions::kQueryTilesInstantFetchDescription, kOsAndroid,
  4330. SINGLE_VALUE_TYPE(
  4331. query_tiles::switches::kQueryTilesInstantBackgroundTask)},
  4332. {"query-tiles-rank-tiles", flag_descriptions::kQueryTilesRankTilesName,
  4333. flag_descriptions::kQueryTilesRankTilesDescription, kOsAndroid,
  4334. SINGLE_VALUE_TYPE(query_tiles::switches::kQueryTilesRankTiles)},
  4335. {"query-tiles-segmentation", flag_descriptions::kQueryTilesSegmentationName,
  4336. flag_descriptions::kQueryTilesSegmentationDescription, kOsAndroid,
  4337. FEATURE_VALUE_TYPE(query_tiles::features::kQueryTilesSegmentation)},
  4338. {"query-tiles-swap-trending",
  4339. flag_descriptions::kQueryTilesSwapTrendingName,
  4340. flag_descriptions::kQueryTilesSwapTrendingDescription, kOsAndroid,
  4341. FEATURE_VALUE_TYPE(
  4342. query_tiles::features::kQueryTilesRemoveTrendingTilesAfterInactivity)},
  4343. {"video-tutorials", flag_descriptions::kVideoTutorialsName,
  4344. flag_descriptions::kVideoTutorialsDescription, kOsAndroid,
  4345. FEATURE_VALUE_TYPE(video_tutorials::features::kVideoTutorials)},
  4346. {"video-tutorials-instant-fetch",
  4347. flag_descriptions::kVideoTutorialsInstantFetchName,
  4348. flag_descriptions::kVideoTutorialsInstantFetchDescription, kOsAndroid,
  4349. SINGLE_VALUE_TYPE(video_tutorials::switches::kVideoTutorialsInstantFetch)},
  4350. {"android-picture-in-picture-api",
  4351. flag_descriptions::kAndroidPictureInPictureAPIName,
  4352. flag_descriptions::kAndroidPictureInPictureAPIDescription, kOsAndroid,
  4353. FEATURE_VALUE_TYPE(media::kPictureInPictureAPI)},
  4354. {"reengagement-notification",
  4355. flag_descriptions::kReengagementNotificationName,
  4356. flag_descriptions::kReengagementNotificationDescription, kOsAndroid,
  4357. FEATURE_VALUE_TYPE(chrome::android::kReengagementNotification)},
  4358. {"back-gesture-refactor-android",
  4359. flag_descriptions::kBackGestureRefactorAndroidName,
  4360. flag_descriptions::kBackGestureRefactorAndroidDescription, kOsAndroid,
  4361. FEATURE_VALUE_TYPE(chrome::android::kBackGestureRefactorAndroid)},
  4362. #endif // BUILDFLAG(IS_ANDROID)
  4363. {"disallow-doc-written-script-loads",
  4364. flag_descriptions::kDisallowDocWrittenScriptsUiName,
  4365. flag_descriptions::kDisallowDocWrittenScriptsUiDescription, kOsAll,
  4366. // NOTE: if we want to add additional experiment entries for other
  4367. // features controlled by kBlinkSettings, we'll need to add logic to
  4368. // merge the flag values.
  4369. ENABLE_DISABLE_VALUE_TYPE_AND_VALUE(
  4370. blink::switches::kBlinkSettings,
  4371. "disallowFetchForDocWrittenScriptsInMainFrame=true",
  4372. blink::switches::kBlinkSettings,
  4373. "disallowFetchForDocWrittenScriptsInMainFrame=false")},
  4374. {"document-transition", flag_descriptions::kDocumentTransitionName,
  4375. flag_descriptions::kDocumentTransitionDescription, kOsAll,
  4376. FEATURE_VALUE_TYPE(blink::features::kDocumentTransition)},
  4377. #if BUILDFLAG(IS_WIN)
  4378. {"use-winrt-midi-api", flag_descriptions::kUseWinrtMidiApiName,
  4379. flag_descriptions::kUseWinrtMidiApiDescription, kOsWin,
  4380. FEATURE_VALUE_TYPE(midi::features::kMidiManagerWinrt)},
  4381. #endif // BUILDFLAG(IS_WIN)
  4382. #if defined(TOOLKIT_VIEWS) || BUILDFLAG(IS_ANDROID)
  4383. {"enable-autofill-credit-card-upload",
  4384. flag_descriptions::kAutofillCreditCardUploadName,
  4385. flag_descriptions::kAutofillCreditCardUploadDescription, kOsAll,
  4386. FEATURE_VALUE_TYPE(autofill::features::kAutofillUpstream)},
  4387. #endif // defined(TOOLKIT_VIEWS) || BUILDFLAG(IS_ANDROID)
  4388. {"force-ui-direction", flag_descriptions::kForceUiDirectionName,
  4389. flag_descriptions::kForceUiDirectionDescription, kOsAll,
  4390. MULTI_VALUE_TYPE(kForceUIDirectionChoices)},
  4391. {"force-text-direction", flag_descriptions::kForceTextDirectionName,
  4392. flag_descriptions::kForceTextDirectionDescription, kOsAll,
  4393. MULTI_VALUE_TYPE(kForceTextDirectionChoices)},
  4394. #if BUILDFLAG(IS_ANDROID)
  4395. {"force-update-menu-type", flag_descriptions::kUpdateMenuTypeName,
  4396. flag_descriptions::kUpdateMenuTypeDescription, kOsAndroid,
  4397. MULTI_VALUE_TYPE(kForceUpdateMenuTypeChoices)},
  4398. {"update-menu-item-custom-summary",
  4399. flag_descriptions::kUpdateMenuItemCustomSummaryName,
  4400. flag_descriptions::kUpdateMenuItemCustomSummaryDescription, kOsAndroid,
  4401. SINGLE_VALUE_TYPE_AND_VALUE(
  4402. switches::kForceShowUpdateMenuItemCustomSummary,
  4403. "Custom Summary")},
  4404. {"force-show-update-menu-badge", flag_descriptions::kUpdateMenuBadgeName,
  4405. flag_descriptions::kUpdateMenuBadgeDescription, kOsAndroid,
  4406. SINGLE_VALUE_TYPE(switches::kForceShowUpdateMenuBadge)},
  4407. {"set-market-url-for-testing",
  4408. flag_descriptions::kSetMarketUrlForTestingName,
  4409. flag_descriptions::kSetMarketUrlForTestingDescription, kOsAndroid,
  4410. SINGLE_VALUE_TYPE_AND_VALUE(switches::kMarketUrlForTesting,
  4411. "https://play.google.com/store/apps/"
  4412. "details?id=com.android.chrome")},
  4413. {"omaha-min-sdk-version-android",
  4414. flag_descriptions::kOmahaMinSdkVersionAndroidName,
  4415. flag_descriptions::kOmahaMinSdkVersionAndroidDescription, kOsAndroid,
  4416. FEATURE_WITH_PARAMS_VALUE_TYPE(chrome::android::kOmahaMinSdkVersionAndroid,
  4417. kOmahaMinSdkVersionAndroidVariations,
  4418. "OmahaMinSdkVersionAndroidStudy")},
  4419. #endif // BUILDFLAG(IS_ANDROID)
  4420. {"enable-tls13-early-data", flag_descriptions::kEnableTLS13EarlyDataName,
  4421. flag_descriptions::kEnableTLS13EarlyDataDescription, kOsAll,
  4422. FEATURE_VALUE_TYPE(net::features::kEnableTLS13EarlyData)},
  4423. {"post-quantum-cecpq2", flag_descriptions::kPostQuantumCECPQ2Name,
  4424. flag_descriptions::kPostQuantumCECPQ2Description, kOsAll,
  4425. FEATURE_VALUE_TYPE(net::features::kPostQuantumCECPQ2)},
  4426. #if BUILDFLAG(IS_ANDROID)
  4427. {"interest-feed-v2", flag_descriptions::kInterestFeedV2Name,
  4428. flag_descriptions::kInterestFeedV2Description, kOsAndroid,
  4429. FEATURE_VALUE_TYPE(feed::kInterestFeedV2)},
  4430. {"feed-back-to-top", flag_descriptions::kFeedBackToTopName,
  4431. flag_descriptions::kFeedBackToTopDescription, kOsAndroid,
  4432. FEATURE_VALUE_TYPE(feed::kFeedBackToTop)},
  4433. {"feed-interactive-refresh", flag_descriptions::kFeedInteractiveRefreshName,
  4434. flag_descriptions::kFeedInteractiveRefreshDescription, kOsAndroid,
  4435. FEATURE_VALUE_TYPE(feed::kFeedInteractiveRefresh)},
  4436. {"feed-loading-placeholder", flag_descriptions::kFeedLoadingPlaceholderName,
  4437. flag_descriptions::kFeedLoadingPlaceholderDescription, kOsAndroid,
  4438. FEATURE_VALUE_TYPE(feed::kFeedLoadingPlaceholder)},
  4439. {"feed-stamp", flag_descriptions::kFeedStampName,
  4440. flag_descriptions::kFeedStampDescription, kOsAndroid,
  4441. FEATURE_VALUE_TYPE(feed::kFeedStamp)},
  4442. {"feed-ablation", flag_descriptions::kFeedIsAblatedName,
  4443. flag_descriptions::kFeedIsAblatedDescription, kOsAndroid,
  4444. FEATURE_VALUE_TYPE(feed::kIsAblated)},
  4445. {"feed-v2-hearts", flag_descriptions::kInterestFeedV2HeartsName,
  4446. flag_descriptions::kInterestFeedV2HeartsDescription, kOsAndroid,
  4447. FEATURE_VALUE_TYPE(feed::kInterestFeedV2Hearts)},
  4448. {"info-card-acknowledgement-tracking",
  4449. flag_descriptions::kInfoCardAcknowledgementTrackingName,
  4450. flag_descriptions::kInfoCardAcknowledgementTrackingDescription, kOsAndroid,
  4451. FEATURE_VALUE_TYPE(feed::kInfoCardAcknowledgementTracking)},
  4452. {"feed-v2-autoplay", flag_descriptions::kInterestFeedV2AutoplayName,
  4453. flag_descriptions::kInterestFeedV2AutoplayDescription, kOsAndroid,
  4454. FEATURE_VALUE_TYPE(feed::kInterestFeedV2Autoplay)},
  4455. {"web-feed", flag_descriptions::kWebFeedName,
  4456. flag_descriptions::kWebFeedDescription, kOsAndroid,
  4457. FEATURE_WITH_PARAMS_VALUE_TYPE(feed::kWebFeed,
  4458. kWebFeedVariations,
  4459. "WebFeed")},
  4460. {"web-feed-awareness", flag_descriptions::kWebFeedAwarenessName,
  4461. flag_descriptions::kWebFeedAwarenessDescription, kOsAndroid,
  4462. FEATURE_WITH_PARAMS_VALUE_TYPE(feed::kWebFeedAwareness,
  4463. kWebFeedAwarenessVariations,
  4464. "WebFeedAwareness")},
  4465. {"web-feed-onboarding", flag_descriptions::kWebFeedOnboardingName,
  4466. flag_descriptions::kWebFeedOnboardingDescription, kOsAndroid,
  4467. FEATURE_VALUE_TYPE(feed::kWebFeedOnboarding)},
  4468. {"web-feed-sort", flag_descriptions::kWebFeedSortName,
  4469. flag_descriptions::kWebFeedSortDescription, kOsAndroid,
  4470. FEATURE_VALUE_TYPE(feed::kWebFeedSort)},
  4471. {"xsurface-metrics-reporting",
  4472. flag_descriptions::kXsurfaceMetricsReportingName,
  4473. flag_descriptions::kXsurfaceMetricsReportingDescription, kOsAndroid,
  4474. FEATURE_VALUE_TYPE(feed::kXsurfaceMetricsReporting)},
  4475. {"interest-feed-v1-clicks-and-views-cond-upload",
  4476. flag_descriptions::kInterestFeedV1ClickAndViewActionsConditionalUploadName,
  4477. flag_descriptions::
  4478. kInterestFeedV1ClickAndViewActionsConditionalUploadDescription,
  4479. kOsAndroid,
  4480. FEATURE_VALUE_TYPE(feed::kInterestFeedV1ClicksAndViewsConditionalUpload)},
  4481. {"interest-feed-v2-clicks-and-views-cond-upload",
  4482. flag_descriptions::kInterestFeedV2ClickAndViewActionsConditionalUploadName,
  4483. flag_descriptions::
  4484. kInterestFeedV2ClickAndViewActionsConditionalUploadDescription,
  4485. kOsAndroid,
  4486. FEATURE_VALUE_TYPE(feed::kInterestFeedV2ClicksAndViewsConditionalUpload)},
  4487. {"feed-close-refresh", flag_descriptions::kFeedCloseRefreshName,
  4488. flag_descriptions::kFeedCloseRefreshDescription, kOsAndroid,
  4489. FEATURE_WITH_PARAMS_VALUE_TYPE(feed::kFeedCloseRefresh,
  4490. kFeedCloseRefreshVariations,
  4491. "FeedCloseRefresh")},
  4492. #endif // BUILDFLAG(IS_ANDROID)
  4493. #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \
  4494. BUILDFLAG(IS_WIN) || BUILDFLAG(IS_FUCHSIA)
  4495. {"following-feed-sidepanel", flag_descriptions::kFollowingFeedSidepanelName,
  4496. flag_descriptions::kFollowingFeedSidepanelDescription, kOsDesktop,
  4497. FEATURE_VALUE_TYPE(feed::kWebUiFeed)},
  4498. #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) ||
  4499. // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_FUCHSIA)
  4500. {"password-import", flag_descriptions::kPasswordImportName,
  4501. flag_descriptions::kPasswordImportDescription, kOsAll,
  4502. FEATURE_VALUE_TYPE(password_manager::features::kPasswordImport)},
  4503. {"enable-force-dark", flag_descriptions::kAutoWebContentsDarkModeName,
  4504. flag_descriptions::kAutoWebContentsDarkModeDescription, kOsAll,
  4505. #if BUILDFLAG(IS_CHROMEOS_ASH)
  4506. // TODO(https://crbug.com/1011696): Investigate crash reports and
  4507. // re-enable variations for ChromeOS.
  4508. FEATURE_VALUE_TYPE(blink::features::kForceWebContentsDarkMode)},
  4509. #else
  4510. FEATURE_WITH_PARAMS_VALUE_TYPE(blink::features::kForceWebContentsDarkMode,
  4511. kForceDarkVariations,
  4512. "ForceDarkVariations")},
  4513. #endif // BUILDFLAG(IS_CHROMEOS_ASH)
  4514. #if BUILDFLAG(IS_ANDROID)
  4515. {"enable-accessibility-page-zoom",
  4516. flag_descriptions::kAccessibilityPageZoomName,
  4517. flag_descriptions::kAccessibilityPageZoomDescription, kOsAndroid,
  4518. FEATURE_VALUE_TYPE(features::kAccessibilityPageZoom)},
  4519. #endif // BUILDFLAG(IS_ANDROID)
  4520. {"enable-experimental-accessibility-language-detection",
  4521. flag_descriptions::kExperimentalAccessibilityLanguageDetectionName,
  4522. flag_descriptions::kExperimentalAccessibilityLanguageDetectionDescription,
  4523. kOsAll,
  4524. SINGLE_VALUE_TYPE(
  4525. ::switches::kEnableExperimentalAccessibilityLanguageDetection)},
  4526. {"enable-experimental-accessibility-language-detection-dynamic",
  4527. flag_descriptions::kExperimentalAccessibilityLanguageDetectionDynamicName,
  4528. flag_descriptions::
  4529. kExperimentalAccessibilityLanguageDetectionDynamicDescription,
  4530. kOsAll,
  4531. SINGLE_VALUE_TYPE(
  4532. ::switches::kEnableExperimentalAccessibilityLanguageDetectionDynamic)},
  4533. {"enable-aria-element-reflection",
  4534. flag_descriptions::kAriaElementReflectionName,
  4535. flag_descriptions::kAriaElementReflectionDescription, kOsAll,
  4536. FEATURE_VALUE_TYPE(features::kEnableAriaElementReflection)},
  4537. #if BUILDFLAG(IS_CHROMEOS_ASH)
  4538. {"enable-cros-autocorrect-params-tuning",
  4539. flag_descriptions::kAutocorrectParamsTuningName,
  4540. flag_descriptions::kAutocorrectParamsTuningDescription, kOsCrOS,
  4541. FEATURE_VALUE_TYPE(chromeos::features::kAutocorrectParamsTuning)},
  4542. {"enable-cros-avatars-cloud-migration",
  4543. flag_descriptions::kAvatarsCloudMigrationName,
  4544. flag_descriptions::kAvatarsCloudMigrationDescription, kOsCrOS,
  4545. FEATURE_VALUE_TYPE(chromeos::features::kAvatarsCloudMigration)},
  4546. {"enable-cros-diacritics-on-physical-keyboard-longpress",
  4547. flag_descriptions::kDiacriticsOnPhysicalKeyboardLongpressName,
  4548. flag_descriptions::kDiacriticsOnPhysicalKeyboardLongpressDescription,
  4549. kOsCrOS,
  4550. FEATURE_VALUE_TYPE(
  4551. chromeos::features::kDiacriticsOnPhysicalKeyboardLongpress)},
  4552. {"enable-cros-ime-assist-emoji-enhanced",
  4553. flag_descriptions::kImeAssistEmojiEnhancedName,
  4554. flag_descriptions::kImeAssistEmojiEnhancedDescription, kOsCrOS,
  4555. FEATURE_VALUE_TYPE(chromeos::features::kAssistEmojiEnhanced)},
  4556. {"enable-cros-ime-assist-multi-word",
  4557. flag_descriptions::kImeAssistMultiWordName,
  4558. flag_descriptions::kImeAssistMultiWordDescription, kOsCrOS,
  4559. FEATURE_VALUE_TYPE(chromeos::features::kAssistMultiWord)},
  4560. {"enable-cros-ime-assist-multi-word-expanded",
  4561. flag_descriptions::kImeAssistMultiWordExpandedName,
  4562. flag_descriptions::kImeAssistMultiWordExpandedDescription, kOsCrOS,
  4563. FEATURE_VALUE_TYPE(chromeos::features::kAssistMultiWordExpanded)},
  4564. {"enable-cros-ime-assist-personal-info",
  4565. flag_descriptions::kImeAssistPersonalInfoName,
  4566. flag_descriptions::kImeAssistPersonalInfoDescription, kOsCrOS,
  4567. FEATURE_VALUE_TYPE(chromeos::features::kAssistPersonalInfo)},
  4568. {"enable-cros-virtual-keyboard-new-header",
  4569. flag_descriptions::kVirtualKeyboardNewHeaderName,
  4570. flag_descriptions::kVirtualKeyboardNewHeaderDescription, kOsCrOS,
  4571. FEATURE_VALUE_TYPE(chromeos::features::kVirtualKeyboardNewHeader)},
  4572. {"enable-cros-ime-system-emoji-picker-clipboard",
  4573. flag_descriptions::kImeSystemEmojiPickerClipboardName,
  4574. flag_descriptions::kImeSystemEmojiPickerClipboardDescription, kOsCrOS,
  4575. FEATURE_VALUE_TYPE(chromeos::features::kImeSystemEmojiPickerClipboard)},
  4576. {"enable-cros-ime-system-emoji-picker-extension",
  4577. flag_descriptions::kImeSystemEmojiPickerExtensionName,
  4578. flag_descriptions::kImeSystemEmojiPickerExtensionDescription, kOsCrOS,
  4579. FEATURE_VALUE_TYPE(chromeos::features::kImeSystemEmojiPickerExtension)},
  4580. {"enable-cros-ime-system-emoji-picker-search-extension",
  4581. flag_descriptions::kImeSystemEmojiPickerSearchExtensionName,
  4582. flag_descriptions::kImeSystemEmojiPickerSearchExtensionDescription,
  4583. kOsCrOS,
  4584. FEATURE_VALUE_TYPE(
  4585. chromeos::features::kImeSystemEmojiPickerSearchExtension)},
  4586. {"enable-cros-ime-stylus-handwriting",
  4587. flag_descriptions::kImeStylusHandwritingName,
  4588. flag_descriptions::kImeStylusHandwritingDescription, kOsCrOS,
  4589. FEATURE_VALUE_TYPE(chromeos::features::kImeStylusHandwriting)},
  4590. {"enable-cros-language-settings-update-japanese",
  4591. flag_descriptions::kCrosLanguageSettingsUpdateJapaneseName,
  4592. flag_descriptions::kCrosLanguageSettingsUpdateJapaneseDescription, kOsCrOS,
  4593. FEATURE_VALUE_TYPE(
  4594. chromeos::features::kCrosLanguageSettingsUpdateJapanese)},
  4595. {"enable-cros-multilingual-typing",
  4596. flag_descriptions::kMultilingualTypingName,
  4597. flag_descriptions::kMultilingualTypingDescription, kOsCrOS,
  4598. FEATURE_VALUE_TYPE(chromeos::features::kMultilingualTyping)},
  4599. {"enable-cros-on-device-grammar-check",
  4600. flag_descriptions::kCrosOnDeviceGrammarCheckName,
  4601. flag_descriptions::kCrosOnDeviceGrammarCheckDescription, kOsCrOS,
  4602. FEATURE_VALUE_TYPE(chromeos::features::kOnDeviceGrammarCheck)},
  4603. {"enable-cros-system-chinese-physical-typing",
  4604. flag_descriptions::kSystemChinesePhysicalTypingName,
  4605. flag_descriptions::kSystemChinesePhysicalTypingDescription, kOsCrOS,
  4606. FEATURE_VALUE_TYPE(chromeos::features::kSystemChinesePhysicalTyping)},
  4607. {"enable-cros-system-japanese-physical-typing",
  4608. flag_descriptions::kSystemJapanesePhysicalTypingName,
  4609. flag_descriptions::kSystemJapanesePhysicalTypingDescription, kOsCrOS,
  4610. FEATURE_VALUE_TYPE(chromeos::features::kSystemJapanesePhysicalTyping)},
  4611. {"enable-cros-system-transliteration-physical-typing",
  4612. flag_descriptions::kSystemTransliterationPhysicalTypingName,
  4613. flag_descriptions::kSystemTransliterationPhysicalTypingDescription,
  4614. kOsCrOS,
  4615. FEATURE_VALUE_TYPE(
  4616. chromeos::features::kSystemTransliterationPhysicalTyping)},
  4617. {"enable-cros-virtual-keyboard-bordered-key",
  4618. flag_descriptions::kVirtualKeyboardBorderedKeyName,
  4619. flag_descriptions::kVirtualKeyboardBorderedKeyDescription, kOsCrOS,
  4620. FEATURE_VALUE_TYPE(chromeos::features::kVirtualKeyboardBorderedKey)},
  4621. {"enable-cros-virtual-keyboard-multitouch",
  4622. flag_descriptions::kVirtualKeyboardMultitouchName,
  4623. flag_descriptions::kVirtualKeyboardMultitouchDescription, kOsCrOS,
  4624. FEATURE_VALUE_TYPE(chromeos::features::kVirtualKeyboardMultitouch)},
  4625. {"enable-cros-virtual-keyboard-round-corners",
  4626. flag_descriptions::kVirtualKeyboardRoundCornersName,
  4627. flag_descriptions::kVirtualKeyboardRoundCornersDescription, kOsCrOS,
  4628. FEATURE_VALUE_TYPE(chromeos::features::kVirtualKeyboardRoundCorners)},
  4629. {"enable-experimental-accessibility-dictation-with-pumpkin",
  4630. flag_descriptions::kExperimentalAccessibilityDictationWithPumpkinName,
  4631. flag_descriptions::
  4632. kExperimentalAccessibilityDictationWithPumpkinDescription,
  4633. kOsCrOS,
  4634. FEATURE_VALUE_TYPE(
  4635. features::kExperimentalAccessibilityDictationWithPumpkin)},
  4636. {"enable-experimental-accessibility-google-tts-language-packs",
  4637. flag_descriptions::kExperimentalAccessibilityGoogleTtsLanguagePacksName,
  4638. flag_descriptions::
  4639. kExperimentalAccessibilityGoogleTtsLanguagePacksDescription,
  4640. kOsCrOS,
  4641. FEATURE_VALUE_TYPE(
  4642. features::kExperimentalAccessibilityGoogleTtsLanguagePacks)},
  4643. {"enable-experimental-accessibility-switch-access-text",
  4644. flag_descriptions::kExperimentalAccessibilitySwitchAccessTextName,
  4645. flag_descriptions::kExperimentalAccessibilitySwitchAccessTextDescription,
  4646. kOsCrOS,
  4647. SINGLE_VALUE_TYPE(
  4648. ::switches::kEnableExperimentalAccessibilitySwitchAccessText)},
  4649. {"enable-magnifier-continuous-mouse-following-mode-setting",
  4650. flag_descriptions::kMagnifierContinuousMouseFollowingModeSettingName,
  4651. flag_descriptions::
  4652. kMagnifierContinuousMouseFollowingModeSettingDescription,
  4653. kOsCrOS,
  4654. FEATURE_VALUE_TYPE(
  4655. features::kMagnifierContinuousMouseFollowingModeSetting)},
  4656. {"enable-docked-magnifier-resizing",
  4657. flag_descriptions::kDockedMagnifierResizingName,
  4658. flag_descriptions::kDockedMagnifierResizingDescription, kOsCrOS,
  4659. FEATURE_VALUE_TYPE(features::kDockedMagnifierResizing)},
  4660. {"enable-system-proxy-for-system-services",
  4661. flag_descriptions::kSystemProxyForSystemServicesName,
  4662. flag_descriptions::kSystemProxyForSystemServicesDescription, kOsCrOS,
  4663. FEATURE_VALUE_TYPE(chromeos::features::kSystemProxyForSystemServices)},
  4664. #endif // BUILDFLAG(IS_CHROMEOS_ASH)
  4665. #if BUILDFLAG(IS_MAC)
  4666. {"enable-immersive-fullscreen-toolbar",
  4667. flag_descriptions::kImmersiveFullscreenName,
  4668. flag_descriptions::kImmersiveFullscreenDescription, kOsMac,
  4669. FEATURE_VALUE_TYPE(features::kImmersiveFullscreen)},
  4670. #endif // BUILDFLAG(IS_MAC)
  4671. {"enable-web-payments-experimental-features",
  4672. flag_descriptions::kWebPaymentsExperimentalFeaturesName,
  4673. flag_descriptions::kWebPaymentsExperimentalFeaturesDescription, kOsAll,
  4674. FEATURE_VALUE_TYPE(payments::features::kWebPaymentsExperimentalFeatures)},
  4675. {"web-payment-api-csp", flag_descriptions::kWebPaymentAPICSPName,
  4676. flag_descriptions::kWebPaymentAPICSPDescription, kOsAll,
  4677. FEATURE_VALUE_TYPE(features::kWebPaymentAPICSP)},
  4678. {"identity-in-can-make-payment",
  4679. flag_descriptions::kIdentityInCanMakePaymentEventFeatureName,
  4680. flag_descriptions::kIdentityInCanMakePaymentEventFeatureDescription,
  4681. kOsAll,
  4682. FEATURE_VALUE_TYPE(features::kIdentityInCanMakePaymentEventFeature)},
  4683. {"enable-debug-for-store-billing",
  4684. flag_descriptions::kAppStoreBillingDebugName,
  4685. flag_descriptions::kAppStoreBillingDebugDescription, kOsAll,
  4686. FEATURE_VALUE_TYPE(payments::features::kAppStoreBillingDebug)},
  4687. {"enable-debug-for-secure-payment-confirmation",
  4688. flag_descriptions::kSecurePaymentConfirmationDebugName,
  4689. flag_descriptions::kSecurePaymentConfirmationDebugDescription, kOsAll,
  4690. FEATURE_VALUE_TYPE(features::kSecurePaymentConfirmationDebug)},
  4691. #if BUILDFLAG(IS_ANDROID)
  4692. {"enable-secure-payment-confirmation-android",
  4693. flag_descriptions::kSecurePaymentConfirmationAndroidName,
  4694. flag_descriptions::kSecurePaymentConfirmationAndroidDescription,
  4695. kOsAndroid, FEATURE_VALUE_TYPE(features::kSecurePaymentConfirmation)},
  4696. #endif
  4697. {"fill-on-account-select", flag_descriptions::kFillOnAccountSelectName,
  4698. flag_descriptions::kFillOnAccountSelectDescription, kOsAll,
  4699. FEATURE_VALUE_TYPE(password_manager::features::kFillOnAccountSelect)},
  4700. #if BUILDFLAG(IS_CHROMEOS_ASH)
  4701. {"arc-custom-tabs-experiment",
  4702. flag_descriptions::kArcCustomTabsExperimentName,
  4703. flag_descriptions::kArcCustomTabsExperimentDescription, kOsCrOS,
  4704. FEATURE_VALUE_TYPE(arc::kCustomTabsExperimentFeature)},
  4705. {"arc-documents-provider-unknown-size",
  4706. flag_descriptions::kArcDocumentsProviderUnknownSizeName,
  4707. flag_descriptions::kArcDocumentsProviderUnknownSizeDescription, kOsCrOS,
  4708. FEATURE_VALUE_TYPE(arc::kDocumentsProviderUnknownSizeFeature)},
  4709. {"arc-enable-usap", flag_descriptions::kArcEnableUsapName,
  4710. flag_descriptions::kArcEnableUsapDesc, kOsCrOS,
  4711. FEATURE_VALUE_TYPE(arc::kEnableUsap)},
  4712. {"arc-enable-virtio-blk-for-data",
  4713. flag_descriptions::kArcEnableVirtioBlkForDataName,
  4714. flag_descriptions::kArcEnableVirtioBlkForDataDesc, kOsCrOS,
  4715. FEATURE_VALUE_TYPE(arc::kEnableVirtioBlkForData)},
  4716. {"arc-file-picker-experiment",
  4717. flag_descriptions::kArcFilePickerExperimentName,
  4718. flag_descriptions::kArcFilePickerExperimentDescription, kOsCrOS,
  4719. FEATURE_VALUE_TYPE(arc::kFilePickerExperimentFeature)},
  4720. {"arc-game-mode", flag_descriptions::kArcGameModeName,
  4721. flag_descriptions::kArcGameModeDescription, kOsCrOS,
  4722. FEATURE_VALUE_TYPE(arc::kGameModeFeature)},
  4723. {"arc-keyboard-shortcut-helper-integration",
  4724. flag_descriptions::kArcKeyboardShortcutHelperIntegrationName,
  4725. flag_descriptions::kArcKeyboardShortcutHelperIntegrationDescription,
  4726. kOsCrOS,
  4727. FEATURE_VALUE_TYPE(arc::kKeyboardShortcutHelperIntegrationFeature)},
  4728. {"arc-native-bridge-toggle", flag_descriptions::kArcNativeBridgeToggleName,
  4729. flag_descriptions::kArcNativeBridgeToggleDescription, kOsCrOS,
  4730. FEATURE_VALUE_TYPE(arc::kNativeBridgeToggleFeature)},
  4731. {"arc-right-click-long-press",
  4732. flag_descriptions::kArcRightClickLongPressName,
  4733. flag_descriptions::kArcRightClickLongPressDescription, kOsCrOS,
  4734. FEATURE_VALUE_TYPE(arc::kRightClickLongPress)},
  4735. {"arc-rt-vcpu-dual-core", flag_descriptions::kArcRtVcpuDualCoreName,
  4736. flag_descriptions::kArcRtVcpuDualCoreDesc, kOsCrOS,
  4737. FEATURE_VALUE_TYPE(arc::kRtVcpuDualCore)},
  4738. {"arc-rt-vcpu-quad-core", flag_descriptions::kArcRtVcpuQuadCoreName,
  4739. flag_descriptions::kArcRtVcpuQuadCoreDesc, kOsCrOS,
  4740. FEATURE_VALUE_TYPE(arc::kRtVcpuQuadCore)},
  4741. {"arc-usb-device-attach-to-vm-experiment",
  4742. flag_descriptions::kArcUsbDeviceDefaultAttachToVmName,
  4743. flag_descriptions::kArcUsbDeviceDefaultAttachToVmDescription, kOsCrOS,
  4744. FEATURE_VALUE_TYPE(arc::kUsbDeviceDefaultAttachToArcVm)},
  4745. {kArcVmBalloonPolicyInternalName,
  4746. flag_descriptions::kArcVmBalloonPolicyName,
  4747. flag_descriptions::kArcVmBalloonPolicyDesc, kOsCrOS,
  4748. FEATURE_VALUE_TYPE(arc::kVmBalloonPolicy)},
  4749. {"secondary-google-account-usage",
  4750. flag_descriptions::kSecondaryGoogleAccountUsageName,
  4751. flag_descriptions::kSecondaryGoogleAccountUsageDescription, kOsCrOS,
  4752. FEATURE_VALUE_TYPE(ash::features::kSecondaryGoogleAccountUsage)},
  4753. #endif // BUILDFLAG(IS_CHROMEOS_ASH)
  4754. {"enable-generic-sensor-extra-classes",
  4755. flag_descriptions::kEnableGenericSensorExtraClassesName,
  4756. flag_descriptions::kEnableGenericSensorExtraClassesDescription, kOsAll,
  4757. FEATURE_VALUE_TYPE(features::kGenericSensorExtraClasses)},
  4758. #if BUILDFLAG(IS_CHROMEOS_ASH)
  4759. {ui_devtools::switches::kEnableUiDevTools,
  4760. flag_descriptions::kUiDevToolsName,
  4761. flag_descriptions::kUiDevToolsDescription, kOsCrOS,
  4762. SINGLE_VALUE_TYPE(ui_devtools::switches::kEnableUiDevTools)},
  4763. #endif // BUILDFLAG(IS_CHROMEOS_ASH)
  4764. #if BUILDFLAG(IS_ANDROID)
  4765. {"enable-autofill-manual-fallback",
  4766. flag_descriptions::kAutofillManualFallbackAndroidName,
  4767. flag_descriptions::kAutofillManualFallbackAndroidDescription, kOsAndroid,
  4768. FEATURE_VALUE_TYPE(autofill::features::kAutofillManualFallbackAndroid)},
  4769. {"enable-autofill-refresh-style",
  4770. flag_descriptions::kEnableAutofillRefreshStyleName,
  4771. flag_descriptions::kEnableAutofillRefreshStyleDescription, kOsAndroid,
  4772. FEATURE_VALUE_TYPE(autofill::features::kAutofillRefreshStyleAndroid)},
  4773. {"enable-family-info-feedback",
  4774. flag_descriptions::kEnableFamilyInfoFeedbackName,
  4775. flag_descriptions::kEnableFamilyInfoFeedbackDescription, kOsAndroid,
  4776. FEATURE_VALUE_TYPE(kEnableFamilyInfoFeedback)},
  4777. #endif
  4778. #if BUILDFLAG(IS_CHROMEOS_ASH)
  4779. {"enable-touchscreen-calibration",
  4780. flag_descriptions::kTouchscreenCalibrationName,
  4781. flag_descriptions::kTouchscreenCalibrationDescription, kOsCrOS,
  4782. SINGLE_VALUE_TYPE(ash::switches::kEnableTouchCalibrationSetting)},
  4783. #endif // BUILDFLAG(IS_CHROMEOS_ASH)
  4784. #if BUILDFLAG(IS_CHROMEOS_ASH)
  4785. {"audio-url", flag_descriptions::kAudioUrlName,
  4786. flag_descriptions::kAudioUrlDescription, kOsCrOS,
  4787. FEATURE_VALUE_TYPE(chromeos::features::kAudioUrl)},
  4788. {"prefer-constant-frame-rate",
  4789. flag_descriptions::kPreferConstantFrameRateName,
  4790. flag_descriptions::kPreferConstantFrameRateDescription, kOsCrOS,
  4791. FEATURE_VALUE_TYPE(chromeos::features::kPreferConstantFrameRate)},
  4792. {"more-video-capture-buffers",
  4793. flag_descriptions::kMoreVideoCaptureBuffersName,
  4794. flag_descriptions::kMoreVideoCaptureBuffersDescription, kOsCrOS,
  4795. FEATURE_VALUE_TYPE(chromeos::features::kMoreVideoCaptureBuffers)},
  4796. {"force-control-face-ae", flag_descriptions::kForceControlFaceAeName,
  4797. flag_descriptions::kForceControlFaceAeDescription, kOsCrOS,
  4798. MULTI_VALUE_TYPE(kForceControlFaceAeChoices)},
  4799. {"hdrnet-override", flag_descriptions::kHdrNetOverrideName,
  4800. flag_descriptions::kHdrNetOverrideDescription, kOsCrOS,
  4801. MULTI_VALUE_TYPE(kHdrNetOverrideChoices)},
  4802. {"auto-framing-override", flag_descriptions::kAutoFramingOverrideName,
  4803. flag_descriptions::kAutoFramingOverrideDescription, kOsCrOS,
  4804. MULTI_VALUE_TYPE(kAutoFramingOverrideChoices)},
  4805. {"camera-app-doc-scan-dlc", flag_descriptions::kCameraAppDocScanDlcName,
  4806. flag_descriptions::kCameraAppDocScanDlcDescription, kOsCrOS,
  4807. FEATURE_VALUE_TYPE(chromeos::features::kCameraAppDocScanDlc)},
  4808. {"crostini-gpu-support", flag_descriptions::kCrostiniGpuSupportName,
  4809. flag_descriptions::kCrostiniGpuSupportDescription, kOsCrOS,
  4810. FEATURE_VALUE_TYPE(chromeos::features::kCrostiniGpuSupport)},
  4811. {"disable-camera-frame-rotation-at-source",
  4812. flag_descriptions::kDisableCameraFrameRotationAtSourceName,
  4813. flag_descriptions::kDisableCameraFrameRotationAtSourceDescription, kOsCrOS,
  4814. FEATURE_VALUE_TYPE(media::features::kDisableCameraFrameRotationAtSource)},
  4815. {"drive-fs-bidirectional-native-messaging",
  4816. flag_descriptions::kDriveFsBidirectionalNativeMessagingName,
  4817. flag_descriptions::kDriveFsBidirectionalNativeMessagingDescription,
  4818. kOsCrOS,
  4819. FEATURE_VALUE_TYPE(
  4820. chromeos::features::kDriveFsBidirectionalNativeMessaging)},
  4821. {"drive-fs-chrome-networking",
  4822. flag_descriptions::kDriveFsChromeNetworkingName,
  4823. flag_descriptions::kDriveFsChromeNetworkingDescription, kOsCrOS,
  4824. FEATURE_VALUE_TYPE(chromeos::features::kDriveFsChromeNetworking)},
  4825. {"file-transfer-enterprise-connector",
  4826. flag_descriptions::kFileTransferEnterpriseConnectorName,
  4827. flag_descriptions::kFileTransferEnterpriseConnectorDescription, kOsCrOS,
  4828. FEATURE_VALUE_TYPE(features::kFileTransferEnterpriseConnector)},
  4829. {"files-app-experimental", flag_descriptions::kFilesAppExperimentalName,
  4830. flag_descriptions::kFilesAppExperimentalDescription, kOsCrOS,
  4831. FEATURE_VALUE_TYPE(chromeos::features::kFilesAppExperimental)},
  4832. {"files-extract-archive", flag_descriptions::kFilesExtractArchiveName,
  4833. flag_descriptions::kFilesExtractArchiveDescription, kOsCrOS,
  4834. FEATURE_VALUE_TYPE(chromeos::features::kFilesExtractArchive)},
  4835. {"files-filters-in-recents", flag_descriptions::kFiltersInRecentsName,
  4836. flag_descriptions::kFiltersInRecentsDescription, kOsCrOS,
  4837. FEATURE_VALUE_TYPE(chromeos::features::kFiltersInRecents)},
  4838. {"files-filters-in-recents-v2", flag_descriptions::kFiltersInRecentsV2Name,
  4839. flag_descriptions::kFiltersInRecentsV2Description, kOsCrOS,
  4840. FEATURE_VALUE_TYPE(chromeos::features::kFiltersInRecentsV2)},
  4841. {"files-single-partition-format",
  4842. flag_descriptions::kFilesSinglePartitionFormatName,
  4843. flag_descriptions::kFilesSinglePartitionFormatDescription, kOsCrOS,
  4844. FEATURE_VALUE_TYPE(chromeos::features::kFilesSinglePartitionFormat)},
  4845. {"files-swa", flag_descriptions::kFilesSWAName,
  4846. flag_descriptions::kFilesSWADescription, kOsCrOS,
  4847. FEATURE_VALUE_TYPE(chromeos::features::kFilesSWA)},
  4848. {"files-trash", flag_descriptions::kFilesTrashName,
  4849. flag_descriptions::kFilesTrashDescription, kOsCrOS,
  4850. FEATURE_VALUE_TYPE(chromeos::features::kFilesTrash)},
  4851. {"files-web-drive-office", flag_descriptions::kFilesWebDriveOfficeName,
  4852. flag_descriptions::kFilesWebDriveOfficeDescription, kOsCrOS,
  4853. FEATURE_VALUE_TYPE(chromeos::features::kFilesWebDriveOffice)},
  4854. {"force-spectre-v2-mitigation",
  4855. flag_descriptions::kForceSpectreVariant2MitigationName,
  4856. flag_descriptions::kForceSpectreVariant2MitigationDescription, kOsCrOS,
  4857. FEATURE_VALUE_TYPE(
  4858. sandbox::policy::features::kForceSpectreVariant2Mitigation)},
  4859. {"fuse-box", flag_descriptions::kFuseBoxName,
  4860. flag_descriptions::kFuseBoxDescription, kOsCrOS,
  4861. FEATURE_VALUE_TYPE(chromeos::features::kFuseBox)},
  4862. {"fuse-box-debug", flag_descriptions::kFuseBoxDebugName,
  4863. flag_descriptions::kFuseBoxDebugDescription, kOsCrOS,
  4864. FEATURE_VALUE_TYPE(chromeos::features::kFuseBoxDebug)},
  4865. {"guest-os-files", flag_descriptions::kGuestOsFilesName,
  4866. flag_descriptions::kGuestOsFilesDescription, kOsCrOS,
  4867. FEATURE_VALUE_TYPE(chromeos::features::kGuestOsFiles)},
  4868. {"spectre-v2-mitigation", flag_descriptions::kSpectreVariant2MitigationName,
  4869. flag_descriptions::kSpectreVariant2MitigationDescription, kOsCrOS,
  4870. FEATURE_VALUE_TYPE(sandbox::policy::features::kSpectreVariant2Mitigation)},
  4871. {"upload-office-to-cloud", flag_descriptions::kUploadOfficeToCloudName,
  4872. flag_descriptions::kUploadOfficeToCloudName, kOsCrOS,
  4873. FEATURE_VALUE_TYPE(chromeos::features::kUploadOfficeToCloud)},
  4874. {"eap-gtc-wifi-authentication",
  4875. flag_descriptions::kEapGtcWifiAuthenticationName,
  4876. flag_descriptions::kEapGtcWifiAuthenticationDescription, kOsCrOS,
  4877. FEATURE_VALUE_TYPE(ash::features::kEapGtcWifiAuthentication)},
  4878. {"eche-swa", flag_descriptions::kEcheSWAName,
  4879. flag_descriptions::kEcheSWADescription, kOsCrOS,
  4880. FEATURE_VALUE_TYPE(chromeos::features::kEcheSWA)},
  4881. {"eche-swa-debug-mode", flag_descriptions::kEcheSWADebugModeName,
  4882. flag_descriptions::kEcheSWADebugModeDescription, kOsCrOS,
  4883. FEATURE_VALUE_TYPE(chromeos::features::kEcheSWADebugMode)},
  4884. #endif // BUILDFLAG(IS_CHROMEOS_ASH)
  4885. #if BUILDFLAG(IS_MAC)
  4886. {"enable-universal-links", flag_descriptions::kEnableUniversalLinksName,
  4887. flag_descriptions::kEnableUniversalLinksDescription, kOsMac,
  4888. FEATURE_VALUE_TYPE(features::kEnableUniveralLinks)},
  4889. #endif // BUILDFLAG(IS_MAC)
  4890. #if BUILDFLAG(IS_ANDROID)
  4891. {"omnibox-adaptive-suggestions-count",
  4892. flag_descriptions::kOmniboxAdaptiveSuggestionsCountName,
  4893. flag_descriptions::kOmniboxAdaptiveSuggestionsCountDescription, kOsAndroid,
  4894. FEATURE_VALUE_TYPE(omnibox::kAdaptiveSuggestionsCount)},
  4895. {"omnibox-assistant-voice-search",
  4896. flag_descriptions::kOmniboxAssistantVoiceSearchName,
  4897. flag_descriptions::kOmniboxAssistantVoiceSearchDescription, kOsAndroid,
  4898. FEATURE_WITH_PARAMS_VALUE_TYPE(omnibox::kOmniboxAssistantVoiceSearch,
  4899. kOmniboxAssistantVoiceSearchVariations,
  4900. "OmniboxAssistantVoiceSearch")},
  4901. {"omnibox-header-padding-update",
  4902. flag_descriptions::kOmniboxHeaderPaddingUpdateName,
  4903. flag_descriptions::kOmniboxHeaderPaddingUpdateDescription, kOsAndroid,
  4904. FEATURE_VALUE_TYPE(omnibox::kOmniboxHeaderPaddingUpdate)},
  4905. {"omnibox-modernize-visual-update",
  4906. flag_descriptions::kOmniboxModernizeVisualUpdateName,
  4907. flag_descriptions::kOmniboxModernizeVisualUpdateDescription, kOsAndroid,
  4908. FEATURE_WITH_PARAMS_VALUE_TYPE(
  4909. chrome::android::kOmniboxModernizeVisualUpdate,
  4910. kOmniboxModernizeVisualUpdateVariations,
  4911. "OmniboxModernizeVisualUpdate")},
  4912. {"omnibox-most-visited-tiles",
  4913. flag_descriptions::kOmniboxMostVisitedTilesName,
  4914. flag_descriptions::kOmniboxMostVisitedTilesDescription, kOsAndroid,
  4915. FEATURE_VALUE_TYPE(omnibox::kMostVisitedTiles)},
  4916. {"omnibox-remove-suggestion-header-capitalization",
  4917. flag_descriptions::kOmniboxRemoveSuggestionHeaderCapitalizationName,
  4918. flag_descriptions::kOmniboxRemoveSuggestionHeaderCapitalizationDescription,
  4919. kOsAndroid,
  4920. FEATURE_VALUE_TYPE(omnibox::kOmniboxRemoveSuggestionHeaderCapitalization)},
  4921. {"omnibox-remove-suggestion-header-chevron",
  4922. flag_descriptions::kOmniboxRemoveSuggestionHeaderChevronName,
  4923. flag_descriptions::kOmniboxRemoveSuggestionHeaderChevronDescription,
  4924. kOsAndroid,
  4925. FEATURE_WITH_PARAMS_VALUE_TYPE(
  4926. omnibox::kOmniboxRemoveSuggestionHeaderChevron,
  4927. kOmniboxRemoveSuggestionHeaderChevronVariations,
  4928. "OmniboxRemoveSuggestionHeaderChevron")},
  4929. {"omnibox-most-visited-tiles-fading-on-tablet",
  4930. flag_descriptions::kOmniboxMostVisitedTilesFadingOnTabletName,
  4931. flag_descriptions::kOmniboxMostVisitedTilesFadingOnTabletDescription,
  4932. kOsAndroid,
  4933. FEATURE_VALUE_TYPE(omnibox::kOmniboxMostVisitedTilesFadingOnTablet)},
  4934. {"omnibox-most-visited-tiles-on-srp",
  4935. flag_descriptions::kOmniboxMostVisitedTilesOnSrpName,
  4936. flag_descriptions::kOmniboxMostVisitedTilesOnSrpDescription, kOsAndroid,
  4937. FEATURE_VALUE_TYPE(omnibox::kOmniboxMostVisitedTilesOnSrp)},
  4938. {"omnibox-most-visited-tiles-title-wrap-around",
  4939. flag_descriptions::kOmniboxMostVisitedTilesTitleWrapAroundName,
  4940. flag_descriptions::kOmniboxMostVisitedTilesTitleWrapAroundDescription,
  4941. kOsAndroid, FEATURE_VALUE_TYPE(omnibox::kMostVisitedTilesTitleWrapAround)},
  4942. #endif // BUILDFLAG(IS_ANDROID)
  4943. {"omnibox-local-history-zero-suggest-beyond-ntp",
  4944. flag_descriptions::kOmniboxLocalHistoryZeroSuggestBeyondNTPName,
  4945. flag_descriptions::kOmniboxLocalHistoryZeroSuggestBeyondNTPDescription,
  4946. kOsAll, FEATURE_VALUE_TYPE(omnibox::kLocalHistoryZeroSuggestBeyondNTP)},
  4947. {"omnibox-on-focus-suggestions-contextual-web",
  4948. flag_descriptions::kOmniboxFocusTriggersContextualWebZeroSuggestName,
  4949. flag_descriptions::
  4950. kOmniboxFocusTriggersContextualWebZeroSuggestDescription,
  4951. kOsAll,
  4952. FEATURE_VALUE_TYPE(omnibox::kFocusTriggersContextualWebZeroSuggest)},
  4953. {"omnibox-on-focus-suggestions-srp",
  4954. flag_descriptions::kOmniboxFocusTriggersSRPZeroSuggestName,
  4955. flag_descriptions::kOmniboxFocusTriggersSRPZeroSuggestDescription, kOsAll,
  4956. FEATURE_VALUE_TYPE(omnibox::kFocusTriggersSRPZeroSuggest)},
  4957. {"omnibox-experimental-suggest-scoring",
  4958. flag_descriptions::kOmniboxExperimentalSuggestScoringName,
  4959. flag_descriptions::kOmniboxExperimentalSuggestScoringDescription, kOsAll,
  4960. FEATURE_VALUE_TYPE(omnibox::kOmniboxExperimentalSuggestScoring)},
  4961. {"omnibox-fuzzy-url-suggestions",
  4962. flag_descriptions::kOmniboxFuzzyUrlSuggestionsName,
  4963. flag_descriptions::kOmniboxFuzzyUrlSuggestionsDescription, kOsAll,
  4964. FEATURE_VALUE_TYPE(omnibox::kOmniboxFuzzyUrlSuggestions)},
  4965. {"omnibox-zero-suggest-prefetching",
  4966. flag_descriptions::kOmniboxZeroSuggestPrefetchingName,
  4967. flag_descriptions::kOmniboxZeroSuggestPrefetchingDescription, kOsAll,
  4968. FEATURE_VALUE_TYPE(omnibox::kZeroSuggestPrefetching)},
  4969. {"omnibox-zero-suggest-prefetching-on-srp",
  4970. flag_descriptions::kOmniboxZeroSuggestPrefetchingOnSRPName,
  4971. flag_descriptions::kOmniboxZeroSuggestPrefetchingOnSRPDescription, kOsAll,
  4972. FEATURE_VALUE_TYPE(omnibox::kZeroSuggestPrefetchingOnSRP)},
  4973. {"omnibox-zero-suggest-prefetching-on-web",
  4974. flag_descriptions::kOmniboxZeroSuggestPrefetchingOnWebName,
  4975. flag_descriptions::kOmniboxZeroSuggestPrefetchingOnWebDescription, kOsAll,
  4976. FEATURE_VALUE_TYPE(omnibox::kZeroSuggestPrefetchingOnWeb)},
  4977. #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || \
  4978. BUILDFLAG(IS_WIN) || BUILDFLAG(IS_FUCHSIA)
  4979. {"omnibox-experimental-keyword-mode",
  4980. flag_descriptions::kOmniboxExperimentalKeywordModeName,
  4981. flag_descriptions::kOmniboxExperimentalKeywordModeDescription, kOsDesktop,
  4982. FEATURE_VALUE_TYPE(omnibox::kExperimentalKeywordMode)},
  4983. {"omnibox-drive-suggestions",
  4984. flag_descriptions::kOmniboxDriveSuggestionsName,
  4985. flag_descriptions::kOmniboxDriveSuggestionsDescriptions, kOsDesktop,
  4986. FEATURE_WITH_PARAMS_VALUE_TYPE(
  4987. omnibox::kDocumentProvider,
  4988. kOmniboxDocumentProviderVariations,
  4989. "OmniboxDocumentProviderNonDogfoodExperiments")},
  4990. {"omnibox-rich-autocompletion-promising",
  4991. flag_descriptions::kOmniboxRichAutocompletionPromisingName,
  4992. flag_descriptions::kOmniboxRichAutocompletionPromisingDescription,
  4993. kOsDesktop,
  4994. FEATURE_WITH_PARAMS_VALUE_TYPE(
  4995. omnibox::kRichAutocompletion,
  4996. kOmniboxRichAutocompletionPromisingVariations,
  4997. "OmniboxBundledExperimentV1")},
  4998. {"omnibox-disable-cgi-param-matching",
  4999. flag_descriptions::kOmniboxDisableCGIParamMatchingName,
  5000. flag_descriptions::kOmniboxDisableCGIParamMatchingDescription, kOsDesktop,
  5001. FEATURE_VALUE_TYPE(omnibox::kDisableCGIParamMatching)},
  5002. {"omnibox-document-provider-aso",
  5003. flag_descriptions::kOmniboxDocumentProviderAsoName,
  5004. flag_descriptions::kOmniboxDocumentProviderAsoDescription, kOsDesktop,
  5005. FEATURE_VALUE_TYPE(omnibox::kDocumentProviderAso)},
  5006. {"omnibox-site-search-starter-pack",
  5007. flag_descriptions::kOmniboxSiteSearchStarterPackName,
  5008. flag_descriptions::kOmniboxSiteSearchStarterPackDescription, kOsDesktop,
  5009. FEATURE_VALUE_TYPE(omnibox::kSiteSearchStarterPack)},
  5010. {"omnibox-aggregate-shortcuts",
  5011. flag_descriptions::kOmniboxAggregateShortcutsName,
  5012. flag_descriptions::kOmniboxAggregateShortcutsDescription, kOsDesktop,
  5013. FEATURE_VALUE_TYPE(omnibox::kAggregateShortcuts)},
  5014. {"omnibox-shortcut-expanding",
  5015. flag_descriptions::kOmniboxShortcutExpandingName,
  5016. flag_descriptions::kOmniboxShortcutExpandingDescription, kOsDesktop,
  5017. FEATURE_VALUE_TYPE(omnibox::kShortcutExpanding)},
  5018. {"omnibox-close-popup-with-escape",
  5019. flag_descriptions::kOmniboxClosePopupWithEscapeName,
  5020. flag_descriptions::kOmniboxClosePopupWithEscapeDescription, kOsDesktop,
  5021. FEATURE_VALUE_TYPE(omnibox::kClosePopupWithEscape)},
  5022. {"omnibox-blur-with-escape", flag_descriptions::kOmniboxBlurWithEscapeName,
  5023. flag_descriptions::kOmniboxBlurWithEscapeDescription, kOsDesktop,
  5024. FEATURE_VALUE_TYPE(omnibox::kBlurWithEscape)},
  5025. #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) ||
  5026. // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_FUCHSIA)
  5027. #if BUILDFLAG(IS_WIN)
  5028. {"omnibox-on-device-head-suggestions",
  5029. flag_descriptions::kOmniboxOnDeviceHeadSuggestionsName,
  5030. flag_descriptions::kOmniboxOnDeviceHeadSuggestionsDescription, kOsWin,
  5031. FEATURE_VALUE_TYPE(omnibox::kOnDeviceHeadProviderNonIncognito)},
  5032. {"omnibox-on-device-head-suggestions-incognito",
  5033. flag_descriptions::kOmniboxOnDeviceHeadSuggestionsIncognitoName,
  5034. flag_descriptions::kOmniboxOnDeviceHeadSuggestionsIncognitoDescription,
  5035. kOsWin, FEATURE_VALUE_TYPE(omnibox::kOnDeviceHeadProviderIncognito)},
  5036. #endif // BUILDFLAG(IS_WIN)
  5037. #if BUILDFLAG(IS_CHROMEOS_ASH)
  5038. {"scheduler-configuration", flag_descriptions::kSchedulerConfigurationName,
  5039. flag_descriptions::kSchedulerConfigurationDescription, kOsCrOS,
  5040. MULTI_VALUE_TYPE(kSchedulerConfigurationChoices)},
  5041. #endif // BUILDFLAG(IS_CHROMEOS_ASH)
  5042. #if BUILDFLAG(IS_ANDROID)
  5043. {"enable-command-line-on-non-rooted-devices",
  5044. flag_descriptions::kEnableCommandLineOnNonRootedName,
  5045. flag_descriptions::kEnableCommandLineOnNoRootedDescription, kOsAndroid,
  5046. FEATURE_VALUE_TYPE(chrome::android::kCommandLineOnNonRooted)},
  5047. #endif // BUILDFLAG(IS_ANDROID)
  5048. #if BUILDFLAG(IS_ANDROID)
  5049. {"request-desktop-site-for-tablets",
  5050. flag_descriptions::kRequestDesktopSiteForTabletsName,
  5051. flag_descriptions::kRequestDesktopSiteForTabletsDescription, kOsAndroid,
  5052. FEATURE_WITH_PARAMS_VALUE_TYPE(features::kRequestDesktopSiteForTablets,
  5053. kRequestDesktopSiteForTabletsVariations,
  5054. "RequestDesktopSiteForTablets")},
  5055. {"revoke-notifications-permission-if-disabled-on-app-level",
  5056. flag_descriptions::kRevokeNotificationsPermissionIfDisabledOnAppLevelName,
  5057. flag_descriptions::
  5058. kRevokeNotificationsPermissionIfDisabledOnAppLevelDescription,
  5059. kOsAndroid,
  5060. FEATURE_VALUE_TYPE(
  5061. features::kRevokeNotificationsPermissionIfDisabledOnAppLevel)},
  5062. {"app-menu-mobile-site-option",
  5063. flag_descriptions::kAppMenuMobileSiteOptionName,
  5064. flag_descriptions::kAppMenuMobileSiteOptionDescription, kOsAndroid,
  5065. FEATURE_VALUE_TYPE(chrome::android::kAppMenuMobileSiteOption)},
  5066. #endif // BUILDFLAG(IS_ANDROID)
  5067. {"force-color-profile", flag_descriptions::kForceColorProfileName,
  5068. flag_descriptions::kForceColorProfileDescription, kOsAll,
  5069. MULTI_VALUE_TYPE(kForceColorProfileChoices)},
  5070. {"forced-colors", flag_descriptions::kForcedColorsName,
  5071. flag_descriptions::kForcedColorsDescription, kOsAll,
  5072. FEATURE_VALUE_TYPE(features::kForcedColors)},
  5073. #if BUILDFLAG(IS_ANDROID)
  5074. {"dynamic-color-gamut", flag_descriptions::kDynamicColorGamutName,
  5075. flag_descriptions::kDynamicColorGamutDescription, kOsAndroid,
  5076. FEATURE_VALUE_TYPE(features::kDynamicColorGamut)},
  5077. #endif
  5078. {"memlog", flag_descriptions::kMemlogName,
  5079. flag_descriptions::kMemlogDescription, kOsAll,
  5080. MULTI_VALUE_TYPE(kMemlogModeChoices)},
  5081. {"memlog-sampling-rate", flag_descriptions::kMemlogSamplingRateName,
  5082. flag_descriptions::kMemlogSamplingRateDescription, kOsAll,
  5083. MULTI_VALUE_TYPE(kMemlogSamplingRateChoices)},
  5084. {"memlog-stack-mode", flag_descriptions::kMemlogStackModeName,
  5085. flag_descriptions::kMemlogStackModeDescription, kOsAll,
  5086. MULTI_VALUE_TYPE(kMemlogStackModeChoices)},
  5087. {"omnibox-max-zero-suggest-matches",
  5088. flag_descriptions::kOmniboxMaxZeroSuggestMatchesName,
  5089. flag_descriptions::kOmniboxMaxZeroSuggestMatchesDescription,
  5090. kOsDesktop | kOsAndroid,
  5091. FEATURE_WITH_PARAMS_VALUE_TYPE(omnibox::kMaxZeroSuggestMatches,
  5092. kMaxZeroSuggestMatchesVariations,
  5093. "OmniboxBundledExperimentV1")},
  5094. {"omnibox-ui-max-autocomplete-matches",
  5095. flag_descriptions::kOmniboxUIMaxAutocompleteMatchesName,
  5096. flag_descriptions::kOmniboxUIMaxAutocompleteMatchesDescription,
  5097. kOsDesktop | kOsAndroid,
  5098. FEATURE_WITH_PARAMS_VALUE_TYPE(
  5099. omnibox::kUIExperimentMaxAutocompleteMatches,
  5100. kOmniboxUIMaxAutocompleteMatchesVariations,
  5101. "OmniboxBundledExperimentV1")},
  5102. {"omnibox-max-url-matches", flag_descriptions::kOmniboxMaxURLMatchesName,
  5103. flag_descriptions::kOmniboxMaxURLMatchesDescription, kOsAll,
  5104. FEATURE_WITH_PARAMS_VALUE_TYPE(omnibox::kOmniboxMaxURLMatches,
  5105. kOmniboxMaxURLMatchesVariations,
  5106. "OmniboxMaxURLMatchesVariations")},
  5107. {"omnibox-dynamic-max-autocomplete",
  5108. flag_descriptions::kOmniboxDynamicMaxAutocompleteName,
  5109. flag_descriptions::kOmniboxDynamicMaxAutocompleteDescription, kOsAll,
  5110. FEATURE_WITH_PARAMS_VALUE_TYPE(omnibox::kDynamicMaxAutocomplete,
  5111. kOmniboxDynamicMaxAutocompleteVariations,
  5112. "OmniboxBundledExperimentV1")},
  5113. {"omnibox-retain-suggestions-with-headers",
  5114. flag_descriptions::kOmniboxRetainSuggestionsWithHeadersName,
  5115. flag_descriptions::kOmniboxRetainSuggestionsWithHeadersDescription, kOsAll,
  5116. FEATURE_VALUE_TYPE(omnibox::kRetainSuggestionsWithHeaders)},
  5117. {"omnibox-bookmark-paths", flag_descriptions::kOmniboxBookmarkPathsName,
  5118. flag_descriptions::kOmniboxBookmarkPathsDescription, kOsAll,
  5119. FEATURE_WITH_PARAMS_VALUE_TYPE(omnibox::kBookmarkPaths,
  5120. kOmniboxBookmarkPathsVariations,
  5121. "OmniboxBundledExperimentV1")},
  5122. {"omnibox-short-bookmark-suggestions",
  5123. flag_descriptions::kOmniboxShortBookmarkSuggestionsName,
  5124. flag_descriptions::kOmniboxShortBookmarkSuggestionsDescription, kOsAll,
  5125. FEATURE_VALUE_TYPE(omnibox::kShortBookmarkSuggestions)},
  5126. {"optimization-guide-debug-logs",
  5127. flag_descriptions::kOptimizationGuideDebugLogsName,
  5128. flag_descriptions::kOptimizationGuideDebugLogsDescription, kOsAll,
  5129. SINGLE_VALUE_TYPE(optimization_guide::switches::kDebugLoggingEnabled)},
  5130. {"organic-repeatable-queries",
  5131. flag_descriptions::kOrganicRepeatableQueriesName,
  5132. flag_descriptions::kOrganicRepeatableQueriesDescription,
  5133. kOsDesktop | kOsAndroid,
  5134. FEATURE_WITH_PARAMS_VALUE_TYPE(history::kOrganicRepeatableQueries,
  5135. kOrganicRepeatableQueriesVariations,
  5136. "OrganicRepeatableQueries")},
  5137. {"history-journeys", flag_descriptions::kJourneysName,
  5138. flag_descriptions::kJourneysDescription, kOsDesktop | kOsAndroid,
  5139. FEATURE_WITH_PARAMS_VALUE_TYPE(history_clusters::internal::kJourneys,
  5140. kJourneysVariations,
  5141. "HistoryJourneys")},
  5142. {"history-journeys-labels", flag_descriptions::kJourneysLabelsName,
  5143. flag_descriptions::kJourneysLabelsDescription, kOsDesktop | kOsAndroid,
  5144. FEATURE_WITH_PARAMS_VALUE_TYPE(history_clusters::internal::kJourneysLabels,
  5145. kJourneysLabelsVariations,
  5146. "HistoryJourneysLabels")},
  5147. {"history-journeys-omnibox-action",
  5148. flag_descriptions::kJourneysOmniboxActionName,
  5149. flag_descriptions::kJourneysOmniboxActionDescription,
  5150. kOsDesktop | kOsAndroid,
  5151. FEATURE_WITH_PARAMS_VALUE_TYPE(history_clusters::internal::kOmniboxAction,
  5152. kJourneysOmniboxActionVariations,
  5153. "HistoryJourneysOmniboxAction")},
  5154. {"history-journeys-omnibox-history-cluster-provider",
  5155. flag_descriptions::kJourneysOmniboxHistoryClusterProviderName,
  5156. flag_descriptions::kJourneysOmniboxHistoryClusterProviderDescription,
  5157. kOsDesktop | kOsAndroid,
  5158. FEATURE_VALUE_TYPE(
  5159. history_clusters::internal::kOmniboxHistoryClusterProvider)},
  5160. {"history-journeys-on-device-clustering",
  5161. flag_descriptions::kJourneysOnDeviceClusteringBackendName,
  5162. flag_descriptions::kJourneysOnDeviceClusteringBackendDescription,
  5163. kOsDesktop | kOsAndroid,
  5164. FEATURE_WITH_PARAMS_VALUE_TYPE(
  5165. history_clusters::features::kOnDeviceClustering,
  5166. kJourneysOnDeviceClusteringVariations,
  5167. "HistoryJourneysOnDeviceClusteringBackend")},
  5168. {"history-journeys-on-device-clustering-keyword-filtering",
  5169. flag_descriptions::kJourneysOnDeviceClusteringKeywordFilteringName,
  5170. flag_descriptions::kJourneysOnDeviceClusteringKeywordFilteringDescription,
  5171. kOsDesktop | kOsAndroid,
  5172. FEATURE_WITH_PARAMS_VALUE_TYPE(
  5173. history_clusters::features::kOnDeviceClusteringKeywordFiltering,
  5174. kJourneysOnDeviceClusteringKeywordFilteringVariations,
  5175. "HistoryJourneysKeywordFiltering")},
  5176. {"page-content-annotations", flag_descriptions::kPageContentAnnotationsName,
  5177. flag_descriptions::kPageContentAnnotationsDescription,
  5178. kOsDesktop | kOsAndroid,
  5179. FEATURE_WITH_PARAMS_VALUE_TYPE(
  5180. optimization_guide::features::kPageContentAnnotations,
  5181. kPageContentAnnotationsVariations,
  5182. "PageContentAnnotations")},
  5183. {"page-entities-page-content-annotations",
  5184. flag_descriptions::kPageEntitiesPageContentAnnotationsName,
  5185. flag_descriptions::kPageEntitiesPageContentAnnotationsDescription,
  5186. kOsDesktop | kOsAndroid,
  5187. FEATURE_WITH_PARAMS_VALUE_TYPE(
  5188. optimization_guide::features::kPageEntitiesPageContentAnnotations,
  5189. kPageEntitiesPageContentAnnotationsVariations,
  5190. "PageEntitiesPageContentAnnotations")},
  5191. {"page-visibility-page-content-annotations",
  5192. flag_descriptions::kPageVisibilityPageContentAnnotationsName,
  5193. flag_descriptions::kPageVisibilityPageContentAnnotationsDescription,
  5194. kOsDesktop,
  5195. FEATURE_VALUE_TYPE(
  5196. optimization_guide::features::kPageVisibilityPageContentAnnotations)},
  5197. #if BUILDFLAG(IS_CHROMEOS_ASH)
  5198. {"handwriting-gesture-editing",
  5199. flag_descriptions::kHandwritingGestureEditingName,
  5200. flag_descriptions::kHandwritingGestureEditingDescription, kOsCrOS,
  5201. FEATURE_VALUE_TYPE(chromeos::features::kHandwritingGestureEditing)},
  5202. {"handwriting-legacy-recognition",
  5203. flag_descriptions::kHandwritingLegacyRecognitionName,
  5204. flag_descriptions::kHandwritingLegacyRecognitionDescription, kOsCrOS,
  5205. FEATURE_VALUE_TYPE(chromeos::features::kHandwritingLegacyRecognition)},
  5206. {"handwriting-legacy-recognition-all-lang",
  5207. flag_descriptions::kHandwritingLegacyRecognitionAllLangName,
  5208. flag_descriptions::kHandwritingLegacyRecognitionAllLangDescription,
  5209. kOsCrOS,
  5210. FEATURE_VALUE_TYPE(
  5211. chromeos::features::kHandwritingLegacyRecognitionAllLang)},
  5212. {"handwriting-library-dlc", flag_descriptions::kHandwritingLibraryDlcName,
  5213. flag_descriptions::kHandwritingLibraryDlcDescription, kOsCrOS,
  5214. FEATURE_VALUE_TYPE(chromeos::features::kHandwritingLibraryDlc)},
  5215. #endif // BUILDFLAG(IS_CHROMEOS_ASH)
  5216. {"block-insecure-private-network-requests",
  5217. flag_descriptions::kBlockInsecurePrivateNetworkRequestsName,
  5218. flag_descriptions::kBlockInsecurePrivateNetworkRequestsDescription, kOsAll,
  5219. FEATURE_VALUE_TYPE(features::kBlockInsecurePrivateNetworkRequests)},
  5220. {"private-network-access-send-preflights",
  5221. flag_descriptions::kPrivateNetworkAccessSendPreflightsName,
  5222. flag_descriptions::kPrivateNetworkAccessSendPreflightsDescription, kOsAll,
  5223. FEATURE_VALUE_TYPE(features::kPrivateNetworkAccessSendPreflights)},
  5224. {"private-network-access-respect-preflight-results",
  5225. flag_descriptions::kPrivateNetworkAccessRespectPreflightResultsName,
  5226. flag_descriptions::kPrivateNetworkAccessRespectPreflightResultsDescription,
  5227. kOsAll,
  5228. FEATURE_VALUE_TYPE(
  5229. features::kPrivateNetworkAccessRespectPreflightResults)},
  5230. {"private-network-access-preflight-short-timeout",
  5231. flag_descriptions::kPrivateNetworkAccessPreflightShortTimeoutName,
  5232. flag_descriptions::kPrivateNetworkAccessPreflightShortTimeoutDescription,
  5233. kOsAll,
  5234. FEATURE_VALUE_TYPE(
  5235. network::features::kPrivateNetworkAccessPreflightShortTimeout)},
  5236. {"mbi-mode", flag_descriptions::kMBIModeName,
  5237. flag_descriptions::kMBIModeDescription, kOsAll,
  5238. FEATURE_WITH_PARAMS_VALUE_TYPE(features::kMBIMode,
  5239. kMBIModeVariations,
  5240. "MBIMode")},
  5241. {"intensive-wake-up-throttling",
  5242. flag_descriptions::kIntensiveWakeUpThrottlingName,
  5243. flag_descriptions::kIntensiveWakeUpThrottlingDescription, kOsAll,
  5244. FEATURE_WITH_PARAMS_VALUE_TYPE(blink::features::kIntensiveWakeUpThrottling,
  5245. kIntensiveWakeUpThrottlingVariations,
  5246. "IntensiveWakeUpThrottling")},
  5247. #if BUILDFLAG(IS_CHROMEOS_ASH)
  5248. {"double-tap-to-zoom-in-tablet-mode",
  5249. flag_descriptions::kDoubleTapToZoomInTabletModeName,
  5250. flag_descriptions::kDoubleTapToZoomInTabletModeDescription, kOsCrOS,
  5251. FEATURE_VALUE_TYPE(features::kDoubleTapToZoomInTabletMode)},
  5252. {"quick-settings-pwa-notifications",
  5253. flag_descriptions::kQuickSettingsPWANotificationsName,
  5254. flag_descriptions::kQuickSettingsPWANotificationsDescription, kOsCrOS,
  5255. FEATURE_VALUE_TYPE(features::kQuickSettingsPWANotifications)},
  5256. #endif // BUILDFLAG(IS_CHROMEOS_ASH)
  5257. #if BUILDFLAG(IS_ANDROID)
  5258. {flag_descriptions::kReadLaterFlagId, flag_descriptions::kReadLaterName,
  5259. flag_descriptions::kReadLaterDescription, kOsAndroid,
  5260. FEATURE_WITH_PARAMS_VALUE_TYPE(reading_list::switches::kReadLater,
  5261. kReadLaterVariations,
  5262. "Collections")},
  5263. #endif
  5264. #if BUILDFLAG(IS_ANDROID)
  5265. {"read-later-reminder-notification",
  5266. flag_descriptions::kReadLaterReminderNotificationName,
  5267. flag_descriptions::kReadLaterReminderNotificationDescription, kOsAndroid,
  5268. FEATURE_VALUE_TYPE(
  5269. reading_list::switches::kReadLaterReminderNotification)},
  5270. #endif
  5271. {"tab-groups-new-badge-promo",
  5272. flag_descriptions::kTabGroupsNewBadgePromoName,
  5273. flag_descriptions::kTabGroupsNewBadgePromoDescription, kOsDesktop,
  5274. FEATURE_VALUE_TYPE(features::kTabGroupsNewBadgePromo)},
  5275. {"tab-groups-save", flag_descriptions::kTabGroupsSaveName,
  5276. flag_descriptions::kTabGroupsSaveDescription, kOsDesktop,
  5277. FEATURE_VALUE_TYPE(features::kTabGroupsSave)},
  5278. {flag_descriptions::kScrollableTabStripFlagId,
  5279. flag_descriptions::kScrollableTabStripName,
  5280. flag_descriptions::kScrollableTabStripDescription, kOsDesktop,
  5281. FEATURE_WITH_PARAMS_VALUE_TYPE(features::kScrollableTabStrip,
  5282. kTabScrollingVariations,
  5283. "TabScrolling")},
  5284. {"side-panel-improved-clobbering",
  5285. flag_descriptions::kSidePanelImprovedClobberingName,
  5286. flag_descriptions::kSidePanelImprovedClobberingDescription, kOsDesktop,
  5287. FEATURE_VALUE_TYPE(features::kSidePanelImprovedClobbering)},
  5288. {flag_descriptions::kSidePanelJourneysFlagId,
  5289. flag_descriptions::kSidePanelJourneysName,
  5290. flag_descriptions::kSidePanelJourneysDescription, kOsDesktop,
  5291. FEATURE_WITH_PARAMS_VALUE_TYPE(
  5292. features::kSidePanelJourneys,
  5293. kSidePanelJourneysOpensFromOmniboxVariations,
  5294. "SidePanelJourneys")},
  5295. {flag_descriptions::kUnifiedSidePanelFlagId,
  5296. flag_descriptions::kUnifiedSidePanelName,
  5297. flag_descriptions::kUnifiedSidePanelDescription, kOsDesktop,
  5298. FEATURE_VALUE_TYPE(features::kUnifiedSidePanel)},
  5299. {"tab-outlines-in-low-contrast-themes",
  5300. flag_descriptions::kTabOutlinesInLowContrastThemesName,
  5301. flag_descriptions::kTabOutlinesInLowContrastThemesDescription, kOsDesktop,
  5302. FEATURE_VALUE_TYPE(features::kTabOutlinesInLowContrastThemes)},
  5303. {"prominent-dark-mode-active-tab-title",
  5304. flag_descriptions::kProminentDarkModeActiveTabTitleName,
  5305. flag_descriptions::kProminentDarkModeActiveTabTitleDescription, kOsDesktop,
  5306. FEATURE_VALUE_TYPE(features::kProminentDarkModeActiveTabTitle)},
  5307. #if BUILDFLAG(IS_ANDROID)
  5308. {"enable-reader-mode-in-cct", flag_descriptions::kReaderModeInCCTName,
  5309. flag_descriptions::kReaderModeInCCTDescription, kOsAndroid,
  5310. FEATURE_VALUE_TYPE(chrome::android::kReaderModeInCCT)},
  5311. #endif // BUILDFLAG(IS_ANDROID)
  5312. {"shopping-list", commerce::flag_descriptions::kShoppingListName,
  5313. commerce::flag_descriptions::kShoppingListDescription,
  5314. kOsAndroid | kOsDesktop, FEATURE_VALUE_TYPE(commerce::kShoppingList)},
  5315. #if !BUILDFLAG(IS_ANDROID)
  5316. {"enable-retail-coupons", flag_descriptions::kRetailCouponsName,
  5317. flag_descriptions::kRetailCouponsDescription, kOsDesktop,
  5318. FEATURE_VALUE_TYPE(commerce::kRetailCoupons)},
  5319. {"ntp-cache-one-google-bar", flag_descriptions::kNtpCacheOneGoogleBarName,
  5320. flag_descriptions::kNtpCacheOneGoogleBarDescription, kOsDesktop,
  5321. FEATURE_VALUE_TYPE(ntp_features::kCacheOneGoogleBar)},
  5322. {"ntp-chrome-cart-module", flag_descriptions::kNtpChromeCartModuleName,
  5323. flag_descriptions::kNtpChromeCartModuleDescription, kOsDesktop,
  5324. FEATURE_WITH_PARAMS_VALUE_TYPE(ntp_features::kNtpChromeCartModule,
  5325. kNtpChromeCartModuleVariations,
  5326. "DesktopNtpModules")},
  5327. {"ntp-drive-module", flag_descriptions::kNtpDriveModuleName,
  5328. flag_descriptions::kNtpDriveModuleDescription, kOsDesktop,
  5329. FEATURE_WITH_PARAMS_VALUE_TYPE(ntp_features::kNtpDriveModule,
  5330. kNtpDriveModuleVariations,
  5331. "DesktopNtpModules")},
  5332. #if !defined(OFFICIAL_BUILD)
  5333. {"ntp-dummy-modules", flag_descriptions::kNtpDummyModulesName,
  5334. flag_descriptions::kNtpDummyModulesDescription, kOsDesktop,
  5335. FEATURE_VALUE_TYPE(ntp_features::kNtpDummyModules)},
  5336. #endif
  5337. {"ntp-middle-slot-promo-dismissal",
  5338. flag_descriptions::kNtpMiddleSlotPromoDismissalName,
  5339. flag_descriptions::kNtpMiddleSlotPromoDismissalDescription, kOsDesktop,
  5340. FEATURE_WITH_PARAMS_VALUE_TYPE(ntp_features::kNtpMiddleSlotPromoDismissal,
  5341. kNtpMiddleSlotPromoDismissalVariations,
  5342. "DesktopNtpModules")},
  5343. {"ntp-modules-drag-and-drop", flag_descriptions::kNtpModulesDragAndDropName,
  5344. flag_descriptions::kNtpModulesDragAndDropDescription, kOsDesktop,
  5345. FEATURE_VALUE_TYPE(ntp_features::kNtpModulesDragAndDrop)},
  5346. {"ntp-modules-first-run-experience",
  5347. flag_descriptions::kNtpModulesFirstRunExperienceName,
  5348. flag_descriptions::kNtpModulesFirstRunExperienceDescription, kOsDesktop,
  5349. FEATURE_VALUE_TYPE(ntp_features::kNtpModulesFirstRunExperience)},
  5350. {"ntp-modules-redesigned", flag_descriptions::kNtpModulesRedesignedName,
  5351. flag_descriptions::kNtpModulesRedesignedDescription, kOsDesktop,
  5352. FEATURE_VALUE_TYPE(ntp_features::kNtpModulesRedesigned)},
  5353. {"ntp-modules-redesigned-layout",
  5354. flag_descriptions::kNtpModulesRedesignedLayoutName,
  5355. flag_descriptions::kNtpModulesRedesignedLayoutDescription, kOsDesktop,
  5356. FEATURE_VALUE_TYPE(ntp_features::kNtpModulesRedesignedLayout)},
  5357. {"ntp-photos-module", flag_descriptions::kNtpPhotosModuleName,
  5358. flag_descriptions::kNtpPhotosModuleDescription, kOsDesktop,
  5359. FEATURE_WITH_PARAMS_VALUE_TYPE(ntp_features::kNtpPhotosModule,
  5360. kNtpPhotosModuleVariations,
  5361. "DesktopNtpModules")},
  5362. {"ntp-photos-opt-in-art-work",
  5363. flag_descriptions::kNtpPhotosModuleOptInArtWorkName,
  5364. flag_descriptions::kNtpPhotosModuleOptInArtWorkDescription, kOsDesktop,
  5365. FEATURE_WITH_PARAMS_VALUE_TYPE(
  5366. ntp_features::kNtpPhotosModuleCustomizedOptInArtWork,
  5367. kNtpPhotosModuleOptInArtWorkVariations,
  5368. "DesktopNtpModules")},
  5369. {"ntp-photos-opt-in-title",
  5370. flag_descriptions::kNtpPhotosModuleOptInTitleName,
  5371. flag_descriptions::kNtpPhotosModuleOptInTitleDescription, kOsDesktop,
  5372. FEATURE_WITH_PARAMS_VALUE_TYPE(
  5373. ntp_features::kNtpPhotosModuleCustomizedOptInTitle,
  5374. kNtpPhotosModuleOptInTitleVariations,
  5375. "DesktopNtpModules")},
  5376. {"ntp-photos-soft-opt-out",
  5377. flag_descriptions::kNtpPhotosModuleSoftOptOutName,
  5378. flag_descriptions::kNtpPhotosModuleSoftOptOutDescription, kOsDesktop,
  5379. FEATURE_VALUE_TYPE(ntp_features::kNtpPhotosModuleSoftOptOut)},
  5380. {"ntp-recipe-tasks-module", flag_descriptions::kNtpRecipeTasksModuleName,
  5381. flag_descriptions::kNtpRecipeTasksModuleDescription, kOsDesktop,
  5382. FEATURE_WITH_PARAMS_VALUE_TYPE(ntp_features::kNtpRecipeTasksModule,
  5383. kNtpRecipeTasksModuleVariations,
  5384. "DesktopNtpModules")},
  5385. {"ntp-realbox-match-omnibox-theme",
  5386. flag_descriptions::kNtpRealboxMatchOmniboxThemeName,
  5387. flag_descriptions::kNtpRealboxMatchOmniboxThemeDescription, kOsDesktop,
  5388. FEATURE_WITH_PARAMS_VALUE_TYPE(ntp_features::kRealboxMatchOmniboxTheme,
  5389. kRealboxMatchOmniboxThemeVariations,
  5390. "OmniboxBundledExperimentV1")},
  5391. {"ntp-realbox-match-searchbox-theme",
  5392. flag_descriptions::kNtpRealboxMatchSearchboxThemeName,
  5393. flag_descriptions::kNtpRealboxMatchSearchboxThemeDescription, kOsDesktop,
  5394. FEATURE_WITH_PARAMS_VALUE_TYPE(ntp_features::kRealboxMatchSearchboxTheme,
  5395. kRealboxMatchSearchboxThemeVariations,
  5396. "OmniboxBundledExperimentV1")},
  5397. {"ntp-realbox-pedals", flag_descriptions::kNtpRealboxPedalsName,
  5398. flag_descriptions::kNtpRealboxPedalsDescription, kOsDesktop,
  5399. FEATURE_VALUE_TYPE(omnibox::kNtpRealboxPedals)},
  5400. {"ntp-realbox-suggestion-answers",
  5401. flag_descriptions::kNtpRealboxSuggestionAnswersName,
  5402. flag_descriptions::kNtpRealboxSuggestionAnswersDescription, kOsDesktop,
  5403. FEATURE_VALUE_TYPE(omnibox::kNtpRealboxSuggestionAnswers)},
  5404. {"ntp-realbox-tail-suggest", flag_descriptions::kNtpRealboxTailSuggestName,
  5405. flag_descriptions::kNtpRealboxTailSuggestDescription, kOsDesktop,
  5406. FEATURE_VALUE_TYPE(omnibox::kNtpRealboxTailSuggest)},
  5407. {"ntp-realbox-use-google-g-icon",
  5408. flag_descriptions::kNtpRealboxUseGoogleGIconName,
  5409. flag_descriptions::kNtpRealboxUseGoogleGIconDescription, kOsDesktop,
  5410. FEATURE_VALUE_TYPE(ntp_features::kRealboxUseGoogleGIcon)},
  5411. {"ntp-safe-browsing-module", flag_descriptions::kNtpSafeBrowsingModuleName,
  5412. flag_descriptions::kNtpSafeBrowsingModuleDescription, kOsDesktop,
  5413. FEATURE_WITH_PARAMS_VALUE_TYPE(ntp_features::kNtpSafeBrowsingModule,
  5414. kNtpSafeBrowsingModuleVariations,
  5415. "DesktopNtpModules")},
  5416. #endif // !BUILDFLAG(IS_ANDROID)
  5417. #if BUILDFLAG(CHROME_WIDE_ECHO_CANCELLATION)
  5418. {"chrome-wide-echo-cancellation",
  5419. flag_descriptions::kChromeWideEchoCancellationName,
  5420. flag_descriptions::kChromeWideEchoCancellationDescription,
  5421. kOsMac | kOsWin | kOsLinux | kOsLacros,
  5422. FEATURE_VALUE_TYPE(media::kChromeWideEchoCancellation)},
  5423. #endif // BUILDFLAG(CHROME_WIDE_ECHO_CANCELLATION)
  5424. #if BUILDFLAG(DCHECK_IS_CONFIGURABLE)
  5425. {"dcheck-is-fatal", flag_descriptions::kDcheckIsFatalName,
  5426. flag_descriptions::kDcheckIsFatalDescription, kOsWin,
  5427. FEATURE_VALUE_TYPE(base::kDCheckIsFatalFeature)},
  5428. #endif // BUILDFLAG(DCHECK_IS_CONFIGURABLE)
  5429. {"enable-pixel-canvas-recording",
  5430. flag_descriptions::kEnablePixelCanvasRecordingName,
  5431. flag_descriptions::kEnablePixelCanvasRecordingDescription, kOsDesktop,
  5432. FEATURE_VALUE_TYPE(features::kEnablePixelCanvasRecording)},
  5433. {"enable-parallel-downloading", flag_descriptions::kParallelDownloadingName,
  5434. flag_descriptions::kParallelDownloadingDescription, kOsAll,
  5435. FEATURE_VALUE_TYPE(download::features::kParallelDownloading)},
  5436. {"enable-pointer-lock-options", flag_descriptions::kPointerLockOptionsName,
  5437. flag_descriptions::kPointerLockOptionsDescription, kOsDesktop,
  5438. FEATURE_VALUE_TYPE(features::kPointerLockOptions)},
  5439. #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX)
  5440. {"enable-async-dns", flag_descriptions::kAsyncDnsName,
  5441. flag_descriptions::kAsyncDnsDescription, kOsWin | kOsLinux,
  5442. FEATURE_VALUE_TYPE(features::kAsyncDns)},
  5443. #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX)
  5444. #if BUILDFLAG(IS_ANDROID)
  5445. {"download-auto-resumption-native",
  5446. flag_descriptions::kDownloadAutoResumptionNativeName,
  5447. flag_descriptions::kDownloadAutoResumptionNativeDescription, kOsAndroid,
  5448. FEATURE_VALUE_TYPE(download::features::kDownloadAutoResumptionNative)},
  5449. #endif
  5450. {"enable-new-download-backend",
  5451. flag_descriptions::kEnableNewDownloadBackendName,
  5452. flag_descriptions::kEnableNewDownloadBackendDescription, kOsAll,
  5453. FEATURE_VALUE_TYPE(
  5454. download::features::kUseDownloadOfflineContentProvider)},
  5455. {"download-range", flag_descriptions::kDownloadRangeName,
  5456. flag_descriptions::kDownloadRangeDescription, kOsAll,
  5457. FEATURE_VALUE_TYPE(download::features::kDownloadRange)},
  5458. #if BUILDFLAG(GOOGLE_CHROME_BRANDING)
  5459. {"chrome-tips-in-main-menu", flag_descriptions::kChromeTipsInMainMenuName,
  5460. flag_descriptions::kChromeTipsInMainMenuDescription, kOsDesktop,
  5461. FEATURE_VALUE_TYPE(features::kChromeTipsInMainMenu)},
  5462. {"chrome-tips-in-main-menu-new-badge",
  5463. flag_descriptions::kChromeTipsInMainMenuNewBadgeName,
  5464. flag_descriptions::kChromeTipsInMainMenuNewBadgeDescription, kOsDesktop,
  5465. FEATURE_VALUE_TYPE(features::kChromeTipsInMainMenuNewBadge)},
  5466. #endif
  5467. {"tab-hover-card-images", flag_descriptions::kTabHoverCardImagesName,
  5468. flag_descriptions::kTabHoverCardImagesDescription, kOsDesktop,
  5469. FEATURE_WITH_PARAMS_VALUE_TYPE(features::kTabHoverCardImages,
  5470. kTabHoverCardImagesVariations,
  5471. "TabHoverCardImages")},
  5472. {"enable-storage-pressure-event",
  5473. flag_descriptions::kStoragePressureEventName,
  5474. flag_descriptions::kStoragePressureEventDescription, kOsAll,
  5475. FEATURE_VALUE_TYPE(storage::features::kStoragePressureEvent)},
  5476. {"installed-apps-in-cbd", flag_descriptions::kInstalledAppsInCbdName,
  5477. flag_descriptions::kInstalledAppsInCbdDescription, kOsDesktop,
  5478. FEATURE_VALUE_TYPE(features::kInstalledAppsInCbd)},
  5479. {"enable-network-logging-to-file",
  5480. flag_descriptions::kEnableNetworkLoggingToFileName,
  5481. flag_descriptions::kEnableNetworkLoggingToFileDescription, kOsAll,
  5482. SINGLE_VALUE_TYPE(network::switches::kLogNetLog)},
  5483. #if !BUILDFLAG(IS_ANDROID)
  5484. {"web-authentication-permit-enterprise-attestation",
  5485. flag_descriptions::kWebAuthenticationPermitEnterpriseAttestationName,
  5486. flag_descriptions::
  5487. kWebAuthenticationPermitEnterpriseAttestationDescription,
  5488. kOsAll,
  5489. ORIGIN_LIST_VALUE_TYPE(
  5490. webauthn::switches::kPermitEnterpriseAttestationOriginList,
  5491. "")},
  5492. #endif
  5493. #if BUILDFLAG(IS_CHROMEOS_ASH)
  5494. {"enable-web-authentication-chromeos-authenticator",
  5495. flag_descriptions::kEnableWebAuthenticationChromeOSAuthenticatorName,
  5496. flag_descriptions::
  5497. kEnableWebAuthenticationChromeOSAuthenticatorDescription,
  5498. kOsCrOS, FEATURE_VALUE_TYPE(device::kWebAuthCrosPlatformAuthenticator)},
  5499. #endif
  5500. {
  5501. "zero-copy-tab-capture",
  5502. flag_descriptions::kEnableZeroCopyTabCaptureName,
  5503. flag_descriptions::kEnableZeroCopyTabCaptureDescription,
  5504. kOsMac,
  5505. FEATURE_VALUE_TYPE(blink::features::kZeroCopyTabCapture),
  5506. },
  5507. {
  5508. "region-capture-experimental-subtypes",
  5509. flag_descriptions::kEnableRegionCaptureExperimentalSubtypesName,
  5510. flag_descriptions::kEnableRegionCaptureExperimentalSubtypesDescription,
  5511. kOsDesktop,
  5512. FEATURE_VALUE_TYPE(blink::features::kRegionCaptureExperimentalSubtypes),
  5513. },
  5514. #if BUILDFLAG(ENABLE_PDF)
  5515. {"accessible-pdf-form", flag_descriptions::kAccessiblePDFFormName,
  5516. flag_descriptions::kAccessiblePDFFormDescription, kOsDesktop,
  5517. FEATURE_VALUE_TYPE(chrome_pdf::features::kAccessiblePDFForm)},
  5518. #endif // BUILDFLAG(ENABLE_PDF)
  5519. #if BUILDFLAG(ENABLE_PRINTING)
  5520. #if BUILDFLAG(IS_MAC)
  5521. {"cups-ipp-printing-backend",
  5522. flag_descriptions::kCupsIppPrintingBackendName,
  5523. flag_descriptions::kCupsIppPrintingBackendDescription, kOsMac,
  5524. FEATURE_VALUE_TYPE(printing::features::kCupsIppPrintingBackend)},
  5525. #endif // BUILDFLAG(IS_MAC)
  5526. #if BUILDFLAG(IS_WIN)
  5527. {"print-with-postscript-type42-fonts",
  5528. flag_descriptions::kPrintWithPostScriptType42FontsName,
  5529. flag_descriptions::kPrintWithPostScriptType42FontsDescription, kOsWin,
  5530. FEATURE_VALUE_TYPE(printing::features::kPrintWithPostScriptType42Fonts)},
  5531. {"print-with-reduced-rasterization",
  5532. flag_descriptions::kPrintWithReducedRasterizationName,
  5533. flag_descriptions::kPrintWithReducedRasterizationDescription, kOsWin,
  5534. FEATURE_VALUE_TYPE(printing::features::kPrintWithReducedRasterization)},
  5535. {"read-printer-capabilities-with-xps",
  5536. flag_descriptions::kReadPrinterCapabilitiesWithXpsName,
  5537. flag_descriptions::kReadPrinterCapabilitiesWithXpsDescription, kOsWin,
  5538. FEATURE_VALUE_TYPE(printing::features::kReadPrinterCapabilitiesWithXps)},
  5539. {"use-xps-for-printing", flag_descriptions::kUseXpsForPrintingName,
  5540. flag_descriptions::kUseXpsForPrintingDescription, kOsWin,
  5541. FEATURE_VALUE_TYPE(printing::features::kUseXpsForPrinting)},
  5542. {"use-xps-for-printing-from-pdf",
  5543. flag_descriptions::kUseXpsForPrintingFromPdfName,
  5544. flag_descriptions::kUseXpsForPrintingFromPdfDescription, kOsWin,
  5545. FEATURE_VALUE_TYPE(printing::features::kUseXpsForPrintingFromPdf)},
  5546. #endif // BUILDFLAG(IS_WIN)
  5547. #endif // BUILDFLAG(ENABLE_PRINTING)
  5548. #if BUILDFLAG(IS_WIN)
  5549. {"enable-windows-gaming-input-data-fetcher",
  5550. flag_descriptions::kEnableWindowsGamingInputDataFetcherName,
  5551. flag_descriptions::kEnableWindowsGamingInputDataFetcherDescription, kOsWin,
  5552. FEATURE_VALUE_TYPE(features::kEnableWindowsGamingInputDataFetcher)},
  5553. #endif
  5554. #if BUILDFLAG(IS_ANDROID)
  5555. {"enable-start-surface", flag_descriptions::kStartSurfaceAndroidName,
  5556. flag_descriptions::kStartSurfaceAndroidDescription, kOsAndroid,
  5557. FEATURE_WITH_PARAMS_VALUE_TYPE(chrome::android::kStartSurfaceAndroid,
  5558. kStartSurfaceAndroidVariations,
  5559. "ChromeStart")},
  5560. {"enable-feed-position-on-ntp", flag_descriptions::kFeedPositionAndroidName,
  5561. flag_descriptions::kFeedPositionAndroidDescription, kOsAndroid,
  5562. FEATURE_WITH_PARAMS_VALUE_TYPE(chrome::android::kFeedPositionAndroid,
  5563. kFeedPositionAndroidVariations,
  5564. "FeedPositionAndroid")},
  5565. {"enable-instant-start", flag_descriptions::kInstantStartName,
  5566. flag_descriptions::kInstantStartDescription, kOsAndroid,
  5567. FEATURE_VALUE_TYPE(chrome::android::kInstantStart)},
  5568. {"enable-start-surface-refactor",
  5569. flag_descriptions::kStartSurfaceRefactorName,
  5570. flag_descriptions::kStartSurfaceRefactorDescription, kOsAndroid,
  5571. FEATURE_VALUE_TYPE(chrome::android::kStartSurfaceRefactor)},
  5572. {"enable-show-scrollable-mvt-on-ntp",
  5573. flag_descriptions::kShowScrollableMVTOnNTPAndroidName,
  5574. flag_descriptions::kShowScrollableMVTOnNTPAndroidDescription, kOsAndroid,
  5575. FEATURE_VALUE_TYPE(chrome::android::kShowScrollableMVTOnNTPAndroid)},
  5576. {"enable-search-resumption-module",
  5577. flag_descriptions::kSearchResumptionModuleAndroidName,
  5578. flag_descriptions::kSearchResumptionModuleAndroidDescription, kOsAndroid,
  5579. FEATURE_WITH_PARAMS_VALUE_TYPE(
  5580. chrome::android::kSearchResumptionModuleAndroid,
  5581. kSearchResumptionModuleAndroidVariations,
  5582. "kSearchResumptionModuleAndroid")},
  5583. {"enable-close-tab-suggestions",
  5584. flag_descriptions::kCloseTabSuggestionsName,
  5585. flag_descriptions::kCloseTabSuggestionsDescription, kOsAndroid,
  5586. FEATURE_WITH_PARAMS_VALUE_TYPE(chrome::android::kCloseTabSuggestions,
  5587. kCloseTabSuggestionsStaleVariations,
  5588. "CloseSuggestionsTab")},
  5589. {"enable-critical-persisted-tab-data",
  5590. flag_descriptions::kCriticalPersistedTabDataName,
  5591. flag_descriptions::kCriticalPersistedTabDataDescription, kOsAndroid,
  5592. FEATURE_WITH_PARAMS_VALUE_TYPE(chrome::android::kCriticalPersistedTabData,
  5593. kCriticalPersistedTabDataVariations,
  5594. "CriticalPersistedTabData")},
  5595. {"suppress-toolbar-captures",
  5596. flag_descriptions::kSuppressToolbarCapturesName,
  5597. flag_descriptions::kSuppressToolbarCapturesDescription, kOsAndroid,
  5598. FEATURE_VALUE_TYPE(chrome::android::kSuppressToolbarCaptures)},
  5599. {"enable-tab-grid-layout", flag_descriptions::kTabGridLayoutAndroidName,
  5600. flag_descriptions::kTabGridLayoutAndroidDescription, kOsAndroid,
  5601. FEATURE_WITH_PARAMS_VALUE_TYPE(chrome::android::kTabGridLayoutAndroid,
  5602. kTabGridLayoutAndroidVariations,
  5603. "TabGridLayoutAndroid")},
  5604. {"enable-commerce-coupons", flag_descriptions::kCommerceCouponsName,
  5605. flag_descriptions::kCommerceCouponsDescription, kOsAndroid,
  5606. FEATURE_VALUE_TYPE(commerce::kCommerceCoupons)},
  5607. {"enable-commerce-merchant-viewer",
  5608. flag_descriptions::kCommerceMerchantViewerAndroidName,
  5609. flag_descriptions::kCommerceMerchantViewerAndroidDescription, kOsAndroid,
  5610. FEATURE_VALUE_TYPE(commerce::kCommerceMerchantViewer)},
  5611. {"enable-commerce-price-tracking",
  5612. commerce::flag_descriptions::kCommercePriceTrackingName,
  5613. commerce::flag_descriptions::kCommercePriceTrackingDescription, kOsAndroid,
  5614. FEATURE_WITH_PARAMS_VALUE_TYPE(
  5615. commerce::kCommercePriceTracking,
  5616. commerce::kCommercePriceTrackingAndroidVariations,
  5617. "CommercePriceTracking")},
  5618. {"enable-tab-groups", flag_descriptions::kTabGroupsAndroidName,
  5619. flag_descriptions::kTabGroupsAndroidDescription, kOsAndroid,
  5620. FEATURE_VALUE_TYPE(chrome::android::kTabGroupsAndroid)},
  5621. {"enable-tab-groups-continuation",
  5622. flag_descriptions::kTabGroupsContinuationAndroidName,
  5623. flag_descriptions::kTabGroupsContinuationAndroidDescription, kOsAndroid,
  5624. FEATURE_VALUE_TYPE(chrome::android::kTabGroupsContinuationAndroid)},
  5625. {"enable-tab-groups-ui-improvements",
  5626. flag_descriptions::kTabGroupsUiImprovementsAndroidName,
  5627. flag_descriptions::kTabGroupsUiImprovementsAndroidDescription, kOsAndroid,
  5628. FEATURE_VALUE_TYPE(chrome::android::kTabGroupsUiImprovementsAndroid)},
  5629. {"enable-tab-switcher-on-return",
  5630. flag_descriptions::kTabSwitcherOnReturnName,
  5631. flag_descriptions::kTabSwitcherOnReturnDescription, kOsAndroid,
  5632. FEATURE_WITH_PARAMS_VALUE_TYPE(chrome::android::kTabSwitcherOnReturn,
  5633. kTabSwitcherOnReturnVariations,
  5634. "ChromeStart")},
  5635. {"enable-tab-to-gts-animation",
  5636. flag_descriptions::kTabToGTSAnimationAndroidName,
  5637. flag_descriptions::kTabToGTSAnimationAndroidDescription, kOsAndroid,
  5638. FEATURE_VALUE_TYPE(chrome::android::kTabToGTSAnimation)},
  5639. {"enable-tab-engagement-reporting",
  5640. flag_descriptions::kTabEngagementReportingName,
  5641. flag_descriptions::kTabEngagementReportingDescription, kOsAndroid,
  5642. FEATURE_VALUE_TYPE(chrome::android::kTabEngagementReportingAndroid)},
  5643. {"enable-tab-strip-improvements",
  5644. flag_descriptions::kTabStripImprovementsAndroidName,
  5645. flag_descriptions::kTabStripImprovementsAndroidDescription, kOsAndroid,
  5646. FEATURE_WITH_PARAMS_VALUE_TYPE(chrome::android::kTabStripImprovements,
  5647. kTabStripImprovementsTabWidthVariations,
  5648. "TabStripImprovementsAndroid")},
  5649. {"enable-conditional-tabstrip",
  5650. flag_descriptions::kConditionalTabStripAndroidName,
  5651. flag_descriptions::kConditionalTabStripAndroidDescription, kOsAndroid,
  5652. FEATURE_WITH_PARAMS_VALUE_TYPE(
  5653. chrome::android::kConditionalTabStripAndroid,
  5654. kConditionalTabStripAndroidVariations,
  5655. "ConditioanlTabStrip")},
  5656. #endif // BUILDFLAG(IS_ANDROID)
  5657. {"unsafely-treat-insecure-origin-as-secure",
  5658. flag_descriptions::kTreatInsecureOriginAsSecureName,
  5659. flag_descriptions::kTreatInsecureOriginAsSecureDescription, kOsAll,
  5660. ORIGIN_LIST_VALUE_TYPE(
  5661. network::switches::kUnsafelyTreatInsecureOriginAsSecure,
  5662. "")},
  5663. {"disable-process-reuse", flag_descriptions::kDisableProcessReuse,
  5664. flag_descriptions::kDisableProcessReuseDescription, kOsDesktop,
  5665. FEATURE_VALUE_TYPE(features::kDisableProcessReuse)},
  5666. #if !BUILDFLAG(IS_ANDROID)
  5667. {"enable-accessibility-live-caption",
  5668. flag_descriptions::kEnableAccessibilityLiveCaptionName,
  5669. flag_descriptions::kEnableAccessibilityLiveCaptionDescription, kOsDesktop,
  5670. FEATURE_VALUE_TYPE(media::kLiveCaption)},
  5671. {"support-tool", flag_descriptions::kSupportTool,
  5672. flag_descriptions::kSupportToolDescription, kOsDesktop,
  5673. FEATURE_VALUE_TYPE(features::kSupportTool)},
  5674. #endif // !BUILDFLAG(IS_ANDROID)
  5675. {"enable-auto-disable-accessibility",
  5676. flag_descriptions::kEnableAutoDisableAccessibilityName,
  5677. flag_descriptions::kEnableAutoDisableAccessibilityDescription, kOsAll,
  5678. FEATURE_VALUE_TYPE(features::kAutoDisableAccessibility)},
  5679. #if BUILDFLAG(IS_ANDROID)
  5680. {"cct-incognito", flag_descriptions::kCCTIncognitoName,
  5681. flag_descriptions::kCCTIncognitoDescription, kOsAndroid,
  5682. FEATURE_VALUE_TYPE(chrome::android::kCCTIncognito)},
  5683. #endif
  5684. #if BUILDFLAG(IS_ANDROID)
  5685. {"cct-incognito-available-to-third-party",
  5686. flag_descriptions::kCCTIncognitoAvailableToThirdPartyName,
  5687. flag_descriptions::kCCTIncognitoAvailableToThirdPartyDescription,
  5688. kOsAndroid,
  5689. FEATURE_VALUE_TYPE(chrome::android::kCCTIncognitoAvailableToThirdParty)},
  5690. #endif
  5691. #if BUILDFLAG(IS_ANDROID)
  5692. {"cct-resizable-90-maximum-height",
  5693. flag_descriptions::kCCTResizable90MaximumHeightName,
  5694. flag_descriptions::kCCTResizable90MaximumHeightDescription, kOsAndroid,
  5695. FEATURE_VALUE_TYPE(chrome::android::kCCTResizable90MaximumHeight)},
  5696. {"cct-resizable-allow-resize-by-user-gesture",
  5697. flag_descriptions::kCCTResizableAllowResizeByUserGestureName,
  5698. flag_descriptions::kCCTResizableAllowResizeByUserGestureDescription,
  5699. kOsAndroid,
  5700. FEATURE_VALUE_TYPE(
  5701. chrome::android::kCCTResizableAllowResizeByUserGesture)},
  5702. {"cct-resizable-for-first-parties",
  5703. flag_descriptions::kCCTResizableForFirstPartiesName,
  5704. flag_descriptions::kCCTResizableForFirstPartiesDescription, kOsAndroid,
  5705. FEATURE_VALUE_TYPE(chrome::android::kCCTResizableForFirstParties)},
  5706. {"cct-resizable-for-third-parties",
  5707. flag_descriptions::kCCTResizableForThirdPartiesName,
  5708. flag_descriptions::kCCTResizableForThirdPartiesDescription, kOsAndroid,
  5709. FEATURE_WITH_PARAMS_VALUE_TYPE(
  5710. chrome::android::kCCTResizableForThirdParties,
  5711. kCCTResizableThirdPartiesDefaultPolicyVariations,
  5712. "CCTResizableThirdPartiesDefaultPolicy")},
  5713. #endif
  5714. #if BUILDFLAG(IS_ANDROID)
  5715. {"cct-real-time-engagement-signals",
  5716. flag_descriptions::kCCTRealTimeEngagementSignalsName,
  5717. flag_descriptions::kCCTRealTimeEngagementSignalsDescription, kOsAndroid,
  5718. FEATURE_VALUE_TYPE(chrome::android::kCCTRealTimeEngagementSignals)},
  5719. #endif
  5720. #if BUILDFLAG(IS_ANDROID)
  5721. {"cct-brand-transparency", flag_descriptions::kCCTBrandTransparencyName,
  5722. flag_descriptions::kCCTBrandTransparencyDescription, kOsAndroid,
  5723. FEATURE_WITH_PARAMS_VALUE_TYPE(chrome::android::kCCTBrandTransparency,
  5724. kCctBrandTransparencyVariations,
  5725. "CCTBrandTransparency")},
  5726. #endif
  5727. #if BUILDFLAG(IS_CHROMEOS)
  5728. {"allow-dsp-based-aec", flag_descriptions::kCrOSDspBasedAecAllowedName,
  5729. flag_descriptions::kCrOSDspBasedAecAllowedDescription, kOsCrOS | kOsLacros,
  5730. FEATURE_VALUE_TYPE(features::kCrOSDspBasedAecAllowed)},
  5731. {"allow-dsp-based-ns", flag_descriptions::kCrOSDspBasedNsAllowedName,
  5732. flag_descriptions::kCrOSDspBasedNsAllowedDescription, kOsCrOS | kOsLacros,
  5733. FEATURE_VALUE_TYPE(features::kCrOSDspBasedNsAllowed)},
  5734. {"allow-dsp-based-agc", flag_descriptions::kCrOSDspBasedAgcAllowedName,
  5735. flag_descriptions::kCrOSDspBasedAgcAllowedDescription, kOsCrOS | kOsLacros,
  5736. FEATURE_VALUE_TYPE(features::kCrOSDspBasedAgcAllowed)},
  5737. {"enforce-system-aec", flag_descriptions::kCrOSEnforceSystemAecName,
  5738. flag_descriptions::kCrOSEnforceSystemAecDescription, kOsCrOS | kOsLacros,
  5739. FEATURE_VALUE_TYPE(features::kCrOSEnforceSystemAec)},
  5740. {"enforce-system-aec-agc", flag_descriptions::kCrOSEnforceSystemAecAgcName,
  5741. flag_descriptions::kCrOSEnforceSystemAecAgcDescription,
  5742. kOsCrOS | kOsLacros,
  5743. FEATURE_VALUE_TYPE(features::kCrOSEnforceSystemAecAgc)},
  5744. {"enforce-system-aec-ns-agc",
  5745. flag_descriptions::kCrOSEnforceSystemAecNsAgcName,
  5746. flag_descriptions::kCrOSEnforceSystemAecNsAgcDescription,
  5747. kOsCrOS | kOsLacros,
  5748. FEATURE_VALUE_TYPE(features::kCrOSEnforceSystemAecNsAgc)},
  5749. {"enforce-system-aec-ns", flag_descriptions::kCrOSEnforceSystemAecNsName,
  5750. flag_descriptions::kCrOSEnforceSystemAecNsDescription, kOsCrOS | kOsLacros,
  5751. FEATURE_VALUE_TYPE(features::kCrOSEnforceSystemAecNs)},
  5752. #endif
  5753. #if BUILDFLAG(IS_CHROMEOS_ASH)
  5754. {"enable-zero-state-app-reinstall-suggestions",
  5755. flag_descriptions::kEnableAppReinstallZeroStateName,
  5756. flag_descriptions::kEnableAppReinstallZeroStateDescription, kOsCrOS,
  5757. FEATURE_VALUE_TYPE(app_list_features::kEnableAppReinstallZeroState)},
  5758. #endif // BUILDFLAG(IS_CHROMEOS_ASH)
  5759. {"reduce-horizontal-fling-velocity",
  5760. flag_descriptions::kReduceHorizontalFlingVelocityName,
  5761. flag_descriptions::kReduceHorizontalFlingVelocityDescription, kOsAll,
  5762. FEATURE_VALUE_TYPE(features::kReduceHorizontalFlingVelocity)},
  5763. {"enable-css-selector-fragment-anchor",
  5764. flag_descriptions::kEnableCssSelectorFragmentAnchorName,
  5765. flag_descriptions::kEnableCssSelectorFragmentAnchorDescription, kOsAll,
  5766. FEATURE_VALUE_TYPE(blink::features::kCssSelectorFragmentAnchor)},
  5767. {"drop-input-events-before-first-paint",
  5768. flag_descriptions::kDropInputEventsBeforeFirstPaintName,
  5769. flag_descriptions::kDropInputEventsBeforeFirstPaintDescription, kOsAll,
  5770. FEATURE_VALUE_TYPE(blink::features::kDropInputEventsBeforeFirstPaint)},
  5771. {"enable-resampling-input-events",
  5772. flag_descriptions::kEnableResamplingInputEventsName,
  5773. flag_descriptions::kEnableResamplingInputEventsDescription, kOsAll,
  5774. FEATURE_WITH_PARAMS_VALUE_TYPE(blink::features::kResamplingInputEvents,
  5775. kResamplingInputEventsFeatureVariations,
  5776. "ResamplingInputEvents")},
  5777. {"enable-resampling-scroll-events",
  5778. flag_descriptions::kEnableResamplingScrollEventsName,
  5779. flag_descriptions::kEnableResamplingScrollEventsDescription, kOsAll,
  5780. FEATURE_WITH_PARAMS_VALUE_TYPE(blink::features::kResamplingScrollEvents,
  5781. kResamplingInputEventsFeatureVariations,
  5782. "ResamplingScrollEvents")},
  5783. // Should only be available if kResamplingScrollEvents is on, and using
  5784. // linear resampling.
  5785. {"enable-resampling-scroll-events-experimental-prediction",
  5786. flag_descriptions::kEnableResamplingScrollEventsExperimentalPredictionName,
  5787. flag_descriptions::
  5788. kEnableResamplingScrollEventsExperimentalPredictionDescription,
  5789. kOsAll,
  5790. FEATURE_WITH_PARAMS_VALUE_TYPE(
  5791. ::features::kResamplingScrollEventsExperimentalPrediction,
  5792. kResamplingScrollEventsExperimentalPredictionVariations,
  5793. "ResamplingScrollEventsExperimentalLatency")},
  5794. {"enable-filtering-scroll-events",
  5795. flag_descriptions::kFilteringScrollPredictionName,
  5796. flag_descriptions::kFilteringScrollPredictionDescription, kOsAll,
  5797. FEATURE_WITH_PARAMS_VALUE_TYPE(blink::features::kFilteringScrollPrediction,
  5798. kFilteringPredictionFeatureVariations,
  5799. "FilteringScrollPrediction")},
  5800. {"compositor-threaded-scrollbar-scrolling",
  5801. flag_descriptions::kCompositorThreadedScrollbarScrollingName,
  5802. flag_descriptions::kCompositorThreadedScrollbarScrollingDescription,
  5803. kOsAll,
  5804. FEATURE_VALUE_TYPE(features::kCompositorThreadedScrollbarScrolling)},
  5805. #if BUILDFLAG(IS_CHROMEOS_ASH)
  5806. {"enable-vaapi-jpeg-image-decode-acceleration",
  5807. flag_descriptions::kVaapiJpegImageDecodeAccelerationName,
  5808. flag_descriptions::kVaapiJpegImageDecodeAccelerationDescription, kOsCrOS,
  5809. FEATURE_VALUE_TYPE(features::kVaapiJpegImageDecodeAcceleration)},
  5810. {"enable-vaapi-webp-image-decode-acceleration",
  5811. flag_descriptions::kVaapiWebPImageDecodeAccelerationName,
  5812. flag_descriptions::kVaapiWebPImageDecodeAccelerationDescription, kOsCrOS,
  5813. FEATURE_VALUE_TYPE(features::kVaapiWebPImageDecodeAcceleration)},
  5814. #endif
  5815. #if BUILDFLAG(IS_WIN)
  5816. {"calculate-native-win-occlusion",
  5817. flag_descriptions::kCalculateNativeWinOcclusionName,
  5818. flag_descriptions::kCalculateNativeWinOcclusionDescription, kOsWin,
  5819. FEATURE_VALUE_TYPE(features::kCalculateNativeWinOcclusion)},
  5820. #endif // BUILDFLAG(IS_WIN)
  5821. #if !BUILDFLAG(IS_ANDROID)
  5822. {"happiness-tracking-surveys-for-desktop-demo",
  5823. flag_descriptions::kHappinessTrackingSurveysForDesktopDemoName,
  5824. flag_descriptions::kHappinessTrackingSurveysForDesktopDemoDescription,
  5825. kOsDesktop,
  5826. FEATURE_VALUE_TYPE(features::kHappinessTrackingSurveysForDesktopDemo)},
  5827. #endif // !BUILDFLAG(IS_ANDROID)
  5828. {"destroy-profile-on-browser-close",
  5829. flag_descriptions::kDestroyProfileOnBrowserCloseName,
  5830. flag_descriptions::kDestroyProfileOnBrowserCloseDescription,
  5831. kOsMac | kOsWin | kOsLinux | kOsLacros | kOsFuchsia,
  5832. FEATURE_VALUE_TYPE(features::kDestroyProfileOnBrowserClose)},
  5833. {"destroy-system-profiles", flag_descriptions::kDestroySystemProfilesName,
  5834. flag_descriptions::kDestroySystemProfilesDescription,
  5835. kOsCrOS | kOsMac | kOsWin | kOsLinux | kOsLacros | kOsFuchsia,
  5836. FEATURE_VALUE_TYPE(features::kDestroySystemProfiles)},
  5837. #if BUILDFLAG(IS_WIN)
  5838. {"use-angle", flag_descriptions::kUseAngleName,
  5839. flag_descriptions::kUseAngleDescriptionWindows, kOsWin,
  5840. MULTI_VALUE_TYPE(kUseAngleChoicesWindows)},
  5841. #elif BUILDFLAG(IS_MAC)
  5842. {"use-angle", flag_descriptions::kUseAngleName,
  5843. flag_descriptions::kUseAngleDescriptionMac, kOsMac,
  5844. MULTI_VALUE_TYPE(kUseAngleChoicesMac)},
  5845. #endif
  5846. #if BUILDFLAG(IS_CHROMEOS_ASH)
  5847. {"enable-assistant-dsp", flag_descriptions::kEnableGoogleAssistantDspName,
  5848. flag_descriptions::kEnableGoogleAssistantDspDescription, kOsCrOS,
  5849. FEATURE_VALUE_TYPE(ash::assistant::features::kEnableDspHotword)},
  5850. {"deprecate-assistant-stylus-features",
  5851. flag_descriptions::kDeprecateAssistantStylusFeaturesName,
  5852. flag_descriptions::kDeprecateAssistantStylusFeaturesDescription, kOsCrOS,
  5853. FEATURE_VALUE_TYPE(chromeos::features::kDeprecateAssistantStylusFeatures)},
  5854. {"disable-quick-answers-v2-translation",
  5855. flag_descriptions::kDisableQuickAnswersV2TranslationName,
  5856. flag_descriptions::kDisableQuickAnswersV2TranslationDescription, kOsCrOS,
  5857. FEATURE_VALUE_TYPE(chromeos::features::kDisableQuickAnswersV2Translation)},
  5858. {"quick-answers-for-more-locales",
  5859. flag_descriptions::kQuickAnswersForMoreLocalesName,
  5860. flag_descriptions::kQuickAnswersForMoreLocalesDescription, kOsCrOS,
  5861. FEATURE_VALUE_TYPE(chromeos::features::kQuickAnswersForMoreLocales)},
  5862. #endif // BUILDFLAG(IS_CHROMEOS_ASH)
  5863. #if BUILDFLAG(IS_ANDROID)
  5864. {"ntp-tiles-title-wrap-around",
  5865. flag_descriptions::kNewTabPageTilesTitleWrapAroundName,
  5866. flag_descriptions::kNewTabPageTilesTitleWrapAroundDescription, kOsAndroid,
  5867. FEATURE_VALUE_TYPE(chrome::android::kNewTabPageTilesTitleWrapAround)},
  5868. {"new-window-app-menu", flag_descriptions::kNewWindowAppMenuName,
  5869. flag_descriptions::kNewWindowAppMenuDescription, kOsAndroid,
  5870. FEATURE_VALUE_TYPE(chrome::android::kNewWindowAppMenu)},
  5871. {"instance-switcher", flag_descriptions::kInstanceSwitcherName,
  5872. flag_descriptions::kInstanceSwitcherDescription, kOsAndroid,
  5873. FEATURE_VALUE_TYPE(chrome::android::kInstanceSwitcher)},
  5874. #endif // BUILDFLAG(IS_ANDROID)
  5875. {"enable-gamepad-button-axis-events",
  5876. flag_descriptions::kEnableGamepadButtonAxisEventsName,
  5877. flag_descriptions::kEnableGamepadButtonAxisEventsDescription, kOsAll,
  5878. FEATURE_VALUE_TYPE(features::kEnableGamepadButtonAxisEvents)},
  5879. {"restrict-gamepad-access", flag_descriptions::kRestrictGamepadAccessName,
  5880. flag_descriptions::kRestrictGamepadAccessDescription, kOsAll,
  5881. FEATURE_VALUE_TYPE(features::kRestrictGamepadAccess)},
  5882. #if !BUILDFLAG(IS_ANDROID)
  5883. {"sharing-desktop-screenshots",
  5884. flag_descriptions::kSharingDesktopScreenshotsName,
  5885. flag_descriptions::kSharingDesktopScreenshotsDescription, kOsDesktop,
  5886. FEATURE_VALUE_TYPE(sharing_hub::kDesktopScreenshots)},
  5887. {"sharing-desktop-screenshots-edit",
  5888. flag_descriptions::kSharingDesktopScreenshotsEditName,
  5889. flag_descriptions::kSharingDesktopScreenshotsEditDescription, kOsDesktop,
  5890. FEATURE_VALUE_TYPE(share::kSharingDesktopScreenshotsEdit)},
  5891. {"sharing-desktop-share-preview",
  5892. flag_descriptions::kSharingDesktopSharePreviewName,
  5893. flag_descriptions::kSharingDesktopSharePreviewDescription, kOsDesktop,
  5894. FEATURE_WITH_PARAMS_VALUE_TYPE(share::kDesktopSharePreview,
  5895. kDesktopSharePreviewVariations,
  5896. "DesktopSharePreview")},
  5897. {"sharing-desktop-share-to-google-collections",
  5898. flag_descriptions::kSharingDesktopShareToGoogleCollectionsName,
  5899. flag_descriptions::kSharingDesktopShareToGoogleCollectionsDescription,
  5900. kOsDesktop, FEATURE_VALUE_TYPE(share::kShareToGoogleCollections)},
  5901. #endif
  5902. #if BUILDFLAG(IS_CHROMEOS_ASH)
  5903. {"ash-enable-pip-rounded-corners",
  5904. flag_descriptions::kAshEnablePipRoundedCornersName,
  5905. flag_descriptions::kAshEnablePipRoundedCornersDescription, kOsCrOS,
  5906. FEATURE_VALUE_TYPE(ash::features::kPipRoundedCorners)},
  5907. {"cros-labs-float-window", flag_descriptions::kFloatWindow,
  5908. flag_descriptions::kFloatWindowDescription, kOsCrOS,
  5909. FEATURE_VALUE_TYPE(chromeos::wm::features::kFloatWindow)},
  5910. #endif // BUILDFLAG(IS_CHROMEOS_ASH)
  5911. #if BUILDFLAG(IS_CHROMEOS_ASH)
  5912. {"enable-assistant-stereo-input",
  5913. flag_descriptions::kEnableGoogleAssistantStereoInputName,
  5914. flag_descriptions::kEnableGoogleAssistantStereoInputDescription, kOsCrOS,
  5915. FEATURE_VALUE_TYPE(ash::assistant::features::kEnableStereoAudioInput)},
  5916. #endif // BUILDFLAG(IS_CHROMEOS_ASH)
  5917. {"enable-gpu-service-logging",
  5918. flag_descriptions::kEnableGpuServiceLoggingName,
  5919. flag_descriptions::kEnableGpuServiceLoggingDescription, kOsAll,
  5920. SINGLE_VALUE_TYPE(switches::kEnableGPUServiceLogging)},
  5921. #if !BUILDFLAG(IS_ANDROID)
  5922. {"hardware-media-key-handling",
  5923. flag_descriptions::kHardwareMediaKeyHandling,
  5924. flag_descriptions::kHardwareMediaKeyHandlingDescription, kOsDesktop,
  5925. FEATURE_VALUE_TYPE(media::kHardwareMediaKeyHandling)},
  5926. #endif
  5927. #if BUILDFLAG(IS_CHROMEOS_ASH)
  5928. {"app-management-app-details",
  5929. flag_descriptions::kAppManagementAppDetailsName,
  5930. flag_descriptions::kAppManagementAppDetailsDescription, kOsCrOS,
  5931. FEATURE_VALUE_TYPE(features::kAppManagementAppDetails)},
  5932. {"arc-window-predictor", flag_descriptions::kArcWindowPredictorName,
  5933. flag_descriptions::kArcWindowPredictorDescription, kOsCrOS,
  5934. FEATURE_VALUE_TYPE(full_restore::features::kArcWindowPredictor)},
  5935. {"full-restore-for-lacros", flag_descriptions::kFullRestoreForLacrosName,
  5936. flag_descriptions::kFullRestoreForLacrosDescription, kOsCrOS,
  5937. FEATURE_VALUE_TYPE(full_restore::features::kFullRestoreForLacros)},
  5938. {"use-fake-device-for-media-stream",
  5939. flag_descriptions::kUseFakeDeviceForMediaStreamName,
  5940. flag_descriptions::kUseFakeDeviceForMediaStreamDescription, kOsCrOS,
  5941. FEATURE_VALUE_TYPE(media::kUseFakeDeviceForMediaStream)},
  5942. #endif // BUILDFLAG(IS_CHROMEOS_ASH)
  5943. #if BUILDFLAG(IS_CHROMEOS_ASH)
  5944. {"arc-input-overlay", flag_descriptions::kArcInputOverlayName,
  5945. flag_descriptions::kArcInputOverlayDescription, kOsCrOS,
  5946. FEATURE_VALUE_TYPE(ash::features::kArcInputOverlay)},
  5947. {"arc-input-overlay-beta", flag_descriptions::kArcInputOverlayNameBeta,
  5948. flag_descriptions::kArcInputOverlayDescriptionBeta, kOsCrOS,
  5949. FEATURE_VALUE_TYPE(ash::features::kArcInputOverlayBeta)},
  5950. #endif // BUILDFLAG(IS_CHROMEOS_ASH)
  5951. #if BUILDFLAG(IS_CHROMEOS) && BUILDFLAG(USE_CHROMEOS_MEDIA_ACCELERATION)
  5952. {"chromeos-direct-video-decoder",
  5953. flag_descriptions::kChromeOSDirectVideoDecoderName,
  5954. flag_descriptions::kChromeOSDirectVideoDecoderDescription,
  5955. kOsCrOS | kOsLacros,
  5956. FEATURE_VALUE_TYPE(media::kUseChromeOSDirectVideoDecoder)},
  5957. {"enable-vbr-encode-acceleration",
  5958. flag_descriptions::kChromeOSHWVBREncodingName,
  5959. flag_descriptions::kChromeOSHWVBREncodingDescription, kOsCrOS | kOsLacros,
  5960. FEATURE_VALUE_TYPE(media::kChromeOSHWVBREncoding)},
  5961. #if defined(ARCH_CPU_ARM_FAMILY)
  5962. {"prefer-libyuv-image-processor",
  5963. flag_descriptions::kPreferLibYuvImageProcessorName,
  5964. flag_descriptions::kPreferLibYuvImageProcessorDescription,
  5965. kOsCrOS | kOsLacros,
  5966. FEATURE_VALUE_TYPE(media::kPreferLibYuvImageProcessor)},
  5967. #endif // defined(ARCH_CPU_ARM_FAMILY)
  5968. #endif // BUILDFLAG(IS_CHROMEOS) && BUILDFLAG(USE_CHROMEOS_MEDIA_ACCELERATION)
  5969. #if BUILDFLAG(IS_ANDROID)
  5970. {"force-startup-signin-promo",
  5971. flag_descriptions::kForceStartupSigninPromoName,
  5972. flag_descriptions::kForceStartupSigninPromoDescription, kOsAndroid,
  5973. FEATURE_VALUE_TYPE(switches::kForceStartupSigninPromo)},
  5974. {"tangible-sync", flag_descriptions::kTangibleSyncName,
  5975. flag_descriptions::kTangibleSyncDescription, kOsAndroid,
  5976. FEATURE_WITH_PARAMS_VALUE_TYPE(switches::kTangibleSync,
  5977. kTangibleSyncVariations,
  5978. "TangibleSyncVariations")},
  5979. {"enable-cbd-sign-out", flag_descriptions::kEnableCbdSignOutName,
  5980. flag_descriptions::kEnableCbdSignOutDescription, kOsAndroid,
  5981. FEATURE_VALUE_TYPE(switches::kEnableCbdSignOut)},
  5982. #endif // BUILDFLAG(IS_ANDROID)
  5983. {"autofill-use-improved-label-disambiguation",
  5984. flag_descriptions::kAutofillUseImprovedLabelDisambiguationName,
  5985. flag_descriptions::kAutofillUseImprovedLabelDisambiguationDescription,
  5986. kOsAll,
  5987. FEATURE_VALUE_TYPE(
  5988. autofill::features::kAutofillUseImprovedLabelDisambiguation)},
  5989. {"file-handling-api", flag_descriptions::kFileHandlingAPIName,
  5990. flag_descriptions::kFileHandlingAPIDescription, kOsDesktop,
  5991. FEATURE_VALUE_TYPE(blink::features::kFileHandlingAPI)},
  5992. {"file-handling-icons", flag_descriptions::kFileHandlingIconsName,
  5993. flag_descriptions::kFileHandlingIconsDescription, kOsDesktop,
  5994. FEATURE_VALUE_TYPE(blink::features::kFileHandlingIcons)},
  5995. {"strict-origin-isolation", flag_descriptions::kStrictOriginIsolationName,
  5996. flag_descriptions::kStrictOriginIsolationDescription, kOsAll,
  5997. FEATURE_VALUE_TYPE(features::kStrictOriginIsolation)},
  5998. #if BUILDFLAG(IS_ANDROID)
  5999. {"enable-logging-js-console-messages",
  6000. flag_descriptions::kLogJsConsoleMessagesName,
  6001. flag_descriptions::kLogJsConsoleMessagesDescription, kOsAndroid,
  6002. FEATURE_VALUE_TYPE(features::kLogJsConsoleMessages)},
  6003. #endif // BUILDFLAG(IS_ANDROID)
  6004. #if BUILDFLAG(IS_CHROMEOS_ASH)
  6005. {"allow-disable-touchpad-haptic-feedback",
  6006. flag_descriptions::kAllowDisableTouchpadHapticFeedbackName,
  6007. flag_descriptions::kAllowDisableTouchpadHapticFeedbackDescription, kOsCrOS,
  6008. FEATURE_VALUE_TYPE(features::kAllowDisableTouchpadHapticFeedback)},
  6009. {"allow-repeated-updates", flag_descriptions::kAllowRepeatedUpdatesName,
  6010. flag_descriptions::kAllowRepeatedUpdatesDescription, kOsCrOS,
  6011. FEATURE_VALUE_TYPE(chromeos::features::kAllowRepeatedUpdates)},
  6012. {"allow-scroll-settings", flag_descriptions::kAllowScrollSettingsName,
  6013. flag_descriptions::kAllowScrollSettingsDescription, kOsCrOS,
  6014. FEATURE_VALUE_TYPE(chromeos::features::kAllowScrollSettings)},
  6015. {"allow-touchpad-haptic-click-settings",
  6016. flag_descriptions::kAllowTouchpadHapticClickSettingsName,
  6017. flag_descriptions::kAllowTouchpadHapticClickSettingsDescription, kOsCrOS,
  6018. FEATURE_VALUE_TYPE(features::kAllowTouchpadHapticClickSettings)},
  6019. {"enable-neural-palm-adaptive-hold",
  6020. flag_descriptions::kEnableNeuralPalmAdaptiveHoldName,
  6021. flag_descriptions::kEnableNeuralPalmAdaptiveHoldDescription, kOsCrOS,
  6022. FEATURE_VALUE_TYPE(ui::kEnableNeuralPalmAdaptiveHold)},
  6023. {"enable-neural-stylus-palm-rejection",
  6024. flag_descriptions::kEnableNeuralStylusPalmRejectionName,
  6025. flag_descriptions::kEnableNeuralStylusPalmRejectionDescription, kOsCrOS,
  6026. FEATURE_VALUE_TYPE(ui::kEnableNeuralPalmDetectionFilter)},
  6027. {"enable-os-feedback", flag_descriptions::kEnableOsFeedbackName,
  6028. flag_descriptions::kEnableOsFeedbackDescription, kOsCrOS,
  6029. FEATURE_VALUE_TYPE(ash::features::kOsFeedback)},
  6030. {"enable-palm-max-touch-major",
  6031. flag_descriptions::kEnablePalmOnMaxTouchMajorName,
  6032. flag_descriptions::kEnablePalmOnMaxTouchMajorDescription, kOsCrOS,
  6033. FEATURE_VALUE_TYPE(ui::kEnablePalmOnMaxTouchMajor)},
  6034. {"enable-palm-tool-type-palm",
  6035. flag_descriptions::kEnablePalmOnToolTypePalmName,
  6036. flag_descriptions::kEnablePalmOnToolTypePalmDescription, kOsCrOS,
  6037. FEATURE_VALUE_TYPE(ui::kEnablePalmOnToolTypePalm)},
  6038. {"enable-heuristic-stylus-palm-rejection",
  6039. flag_descriptions::kEnableHeuristicStylusPalmRejectionName,
  6040. flag_descriptions::kEnableHeuristicStylusPalmRejectionDescription, kOsCrOS,
  6041. FEATURE_VALUE_TYPE(ui::kEnableHeuristicPalmDetectionFilter)},
  6042. {"fast-pair", flag_descriptions::kFastPairName,
  6043. flag_descriptions::kFastPairDescription, kOsCrOS,
  6044. FEATURE_VALUE_TYPE(ash::features::kFastPair)},
  6045. {"fast-pair-low-power", flag_descriptions::kFastPairLowPowerName,
  6046. flag_descriptions::kFastPairLowPowerDescription, kOsCrOS,
  6047. FEATURE_VALUE_TYPE(ash::features::kFastPairLowPower)},
  6048. {"fast-pair-saved-devices", flag_descriptions::kFastPairSavedDevicesName,
  6049. flag_descriptions::kFastPairSavedDevicesDescription, kOsCrOS,
  6050. FEATURE_VALUE_TYPE(ash::features::kFastPairSavedDevices)},
  6051. {"frame-sink-desktop-capturer-in-crd",
  6052. flag_descriptions::kFrameSinkDesktopCapturerInCrdName,
  6053. flag_descriptions::kFrameSinkDesktopCapturerInCrdDescription, kOsCrOS,
  6054. FEATURE_VALUE_TYPE(
  6055. remoting::features::kEnableFrameSinkDesktopCapturerInCrd)},
  6056. {"enable-get-display-media-set", flag_descriptions::kGetDisplayMediaSetName,
  6057. flag_descriptions::kGetDisplayMediaSetDescription, kOsCrOS,
  6058. FEATURE_VALUE_TYPE(features::kGetDisplayMediaSet)},
  6059. {"enable-get-display-media-set-auto-select-all-screens",
  6060. flag_descriptions::kGetDisplayMediaSetAutoSelectAllScreensName,
  6061. flag_descriptions::kGetDisplayMediaSetAutoSelectAllScreensDescription,
  6062. kOsCrOS,
  6063. FEATURE_VALUE_TYPE(features::kGetDisplayMediaSetAutoSelectAllScreens)},
  6064. {"multi-monitors-in-crd", flag_descriptions::kMultiMonitorsInCrdName,
  6065. flag_descriptions::kMultiMonitorsInCrdDescription, kOsCrOS,
  6066. FEATURE_VALUE_TYPE(remoting::features::kEnableMultiMonitorsInCrd)},
  6067. {"fast-pair-software-scanning",
  6068. flag_descriptions::kFastPairSoftwareScanningName,
  6069. flag_descriptions::kFastPairSoftwareScanningDescription, kOsCrOS,
  6070. FEATURE_VALUE_TYPE(ash::features::kFastPairSoftwareScanning)},
  6071. {"fast-pair-subsequent-pairing-ux",
  6072. flag_descriptions::kFastPairSubsequentPairingUXName,
  6073. flag_descriptions::kFastPairSubsequentPairingUXDescription, kOsCrOS,
  6074. FEATURE_VALUE_TYPE(ash::features::kFastPairSubsequentPairingUX)},
  6075. {"pcie-billboard-notification",
  6076. flag_descriptions::kPcieBillboardNotificationName,
  6077. flag_descriptions::kPcieBillboardNotificationDescription, kOsCrOS,
  6078. FEATURE_VALUE_TYPE(ash::features::kPcieBillboardNotification)},
  6079. {"use-search-click-for-right-click",
  6080. flag_descriptions::kUseSearchClickForRightClickName,
  6081. flag_descriptions::kUseSearchClickForRightClickDescription, kOsCrOS,
  6082. FEATURE_VALUE_TYPE(chromeos::features::kUseSearchClickForRightClick)},
  6083. {"show-metered-toggle", flag_descriptions::kMeteredShowToggleName,
  6084. flag_descriptions::kMeteredShowToggleDescription, kOsCrOS,
  6085. FEATURE_VALUE_TYPE(features::kMeteredShowToggle)},
  6086. {"wifi-sync-allow-deletes", flag_descriptions::kWifiSyncAllowDeletesName,
  6087. flag_descriptions::kWifiSyncAllowDeletesDescription, kOsCrOS,
  6088. FEATURE_VALUE_TYPE(chromeos::features::kWifiSyncAllowDeletes)},
  6089. {"wifi-sync-android", flag_descriptions::kWifiSyncAndroidName,
  6090. flag_descriptions::kWifiSyncAndroidDescription, kOsCrOS,
  6091. FEATURE_VALUE_TYPE(chromeos::features::kWifiSyncAndroid)},
  6092. {"display-alignment-assistance",
  6093. flag_descriptions::kDisplayAlignmentAssistanceName,
  6094. flag_descriptions::kDisplayAlignmentAssistanceDescription, kOsCrOS,
  6095. FEATURE_VALUE_TYPE(ash::features::kDisplayAlignAssist)},
  6096. {"enable-experimental-rgb-keyboard-patterns",
  6097. flag_descriptions::kExperimentalRgbKeyboardPatternsName,
  6098. flag_descriptions::kExperimentalRgbKeyboardPatternsDescription, kOsCrOS,
  6099. FEATURE_VALUE_TYPE(ash::features::kExperimentalRgbKeyboardPatterns)},
  6100. {"enable-hostname-setting", flag_descriptions::kEnableHostnameSettingName,
  6101. flag_descriptions::kEnableHostnameSettingDescription, kOsCrOS,
  6102. FEATURE_VALUE_TYPE(chromeos::features::kEnableHostnameSetting)},
  6103. {"enable-networking-in-diagnostics-app",
  6104. flag_descriptions::kEnableNetworkingInDiagnosticsAppName,
  6105. flag_descriptions::kEnableNetworkingInDiagnosticsAppDescription, kOsCrOS,
  6106. FEATURE_VALUE_TYPE(chromeos::features::kEnableNetworkingInDiagnosticsApp)},
  6107. {"enable-oauth-ipp", flag_descriptions::kEnableOAuthIppName,
  6108. flag_descriptions::kEnableOAuthIppDescription, kOsCrOS,
  6109. FEATURE_VALUE_TYPE(ash::features::kEnableOAuthIpp)},
  6110. {"enable-shortcut-customization-app",
  6111. flag_descriptions::kEnableShortcutCustomizationAppName,
  6112. flag_descriptions::kEnableShortcutCustomizationAppDescription, kOsCrOS,
  6113. FEATURE_VALUE_TYPE(features::kShortcutCustomizationApp)},
  6114. {"enable-firmware-updater-app",
  6115. flag_descriptions::kEnableFirmwareUpdaterAppName,
  6116. flag_descriptions::kEnableFirmwareUpdaterAppDescription, kOsCrOS,
  6117. FEATURE_VALUE_TYPE(ash::features::kFirmwareUpdaterApp)},
  6118. {"enable-rgb-keyboard", flag_descriptions::kEnableRgbKeyboardName,
  6119. flag_descriptions::kEnableRgbKeyboardDescription, kOsCrOS,
  6120. FEATURE_VALUE_TYPE(ash::features::kRgbKeyboard)},
  6121. {"enhanced-network-voices", flag_descriptions::kEnhancedNetworkVoicesName,
  6122. flag_descriptions::kEnhancedNetworkVoicesDescription, kOsCrOS,
  6123. FEATURE_VALUE_TYPE(features::kEnhancedNetworkVoices)},
  6124. {"enable-accessibility-os-settings-visibility",
  6125. flag_descriptions::kAccessibilityOSSettingsVisibilityName,
  6126. flag_descriptions::kAccessibilityOSSettingsVisibilityDescription, kOsCrOS,
  6127. FEATURE_VALUE_TYPE(features::kAccessibilityOSSettingsVisibility)},
  6128. #endif // BUILDFLAG(IS_CHROMEOS_ASH)
  6129. {"enable-fenced-frames", flag_descriptions::kEnableFencedFramesName,
  6130. flag_descriptions::kEnableFencedFramesDescription, kOsAll,
  6131. FEATURE_WITH_PARAMS_VALUE_TYPE(blink::features::kFencedFrames,
  6132. kFencedFramesImplementationTypeVariations,
  6133. "FencedFrames")},
  6134. {"enable-portals", flag_descriptions::kEnablePortalsName,
  6135. flag_descriptions::kEnablePortalsDescription, kOsAll,
  6136. FEATURE_VALUE_TYPE(blink::features::kPortals)},
  6137. {"enable-portals-cross-origin",
  6138. flag_descriptions::kEnablePortalsCrossOriginName,
  6139. flag_descriptions::kEnablePortalsCrossOriginDescription, kOsAll,
  6140. FEATURE_VALUE_TYPE(blink::features::kPortalsCrossOrigin)},
  6141. {"enable-autofill-credit-card-authentication",
  6142. flag_descriptions::kEnableAutofillCreditCardAuthenticationName,
  6143. flag_descriptions::kEnableAutofillCreditCardAuthenticationDescription,
  6144. kOsAll,
  6145. FEATURE_VALUE_TYPE(autofill::features::kAutofillCreditCardAuthentication)},
  6146. {"storage-access-api", flag_descriptions::kStorageAccessAPIName,
  6147. flag_descriptions::kStorageAccessAPIDescription, kOsAll,
  6148. FEATURE_VALUE_TYPE(net::features::kStorageAccessAPI)},
  6149. {"enable-removing-all-third-party-cookies",
  6150. flag_descriptions::kEnableRemovingAllThirdPartyCookiesName,
  6151. flag_descriptions::kEnableRemovingAllThirdPartyCookiesDescription,
  6152. kOsDesktop,
  6153. FEATURE_VALUE_TYPE(
  6154. browsing_data::features::kEnableRemovingAllThirdPartyCookies)},
  6155. {"enable-unsafe-webgpu", flag_descriptions::kUnsafeWebGPUName,
  6156. flag_descriptions::kUnsafeWebGPUDescription,
  6157. kOsMac | kOsLinux | kOsCrOS | kOsLacros | kOsWin | kOsFuchsia,
  6158. SINGLE_VALUE_TYPE(switches::kEnableUnsafeWebGPU)},
  6159. {"enable-webgpu-developer-features",
  6160. flag_descriptions::kWebGpuDeveloperFeaturesName,
  6161. flag_descriptions::kWebGpuDeveloperFeaturesDescription,
  6162. kOsMac | kOsLinux | kOsCrOS | kOsLacros | kOsWin | kOsFuchsia,
  6163. SINGLE_VALUE_TYPE(switches::kEnableWebGPUDeveloperFeatures)},
  6164. #if BUILDFLAG(IS_ANDROID)
  6165. {"autofill-use-mobile-label-disambiguation",
  6166. flag_descriptions::kAutofillUseMobileLabelDisambiguationName,
  6167. flag_descriptions::kAutofillUseMobileLabelDisambiguationDescription,
  6168. kOsAndroid,
  6169. FEATURE_WITH_PARAMS_VALUE_TYPE(
  6170. autofill::features::kAutofillUseMobileLabelDisambiguation,
  6171. kAutofillUseMobileLabelDisambiguationVariations,
  6172. "AutofillUseMobileLabelDisambiguation")},
  6173. #endif // BUILDFLAG(IS_ANDROID)
  6174. #if BUILDFLAG(IS_CHROMEOS_ASH)
  6175. {"auto-screen-brightness", flag_descriptions::kAutoScreenBrightnessName,
  6176. flag_descriptions::kAutoScreenBrightnessDescription, kOsCrOS,
  6177. FEATURE_VALUE_TYPE(chromeos::features::kAutoScreenBrightness)},
  6178. #endif // BUILDFLAG(IS_CHROMEOS_ASH)
  6179. #if BUILDFLAG(IS_ANDROID)
  6180. {"metrics-settings-android", flag_descriptions::kMetricsSettingsAndroidName,
  6181. flag_descriptions::kMetricsSettingsAndroidDescription, kOsAndroid,
  6182. FEATURE_WITH_PARAMS_VALUE_TYPE(features::kMetricsSettingsAndroid,
  6183. kMetricsSettingsAndroidVariations,
  6184. "MetricsSettingsAndroid")},
  6185. #endif
  6186. #if BUILDFLAG(IS_CHROMEOS_ASH)
  6187. {"gesture-properties-dbus-service",
  6188. flag_descriptions::kEnableGesturePropertiesDBusServiceName,
  6189. flag_descriptions::kEnableGesturePropertiesDBusServiceDescription, kOsCrOS,
  6190. FEATURE_VALUE_TYPE(chromeos::features::kGesturePropertiesDBusService)},
  6191. #endif // BUILDFLAG(IS_CHROMEOS_ASH)
  6192. {"ev-details-in-page-info", flag_descriptions::kEvDetailsInPageInfoName,
  6193. flag_descriptions::kEvDetailsInPageInfoDescription, kOsDesktop,
  6194. FEATURE_VALUE_TYPE(features::kEvDetailsInPageInfo)},
  6195. {"font-access", flag_descriptions::kFontAccessAPIName,
  6196. flag_descriptions::kFontAccessAPIDescription, kOsDesktop,
  6197. FEATURE_VALUE_TYPE(blink::features::kFontAccess)},
  6198. {"mouse-subframe-no-implicit-capture",
  6199. flag_descriptions::kMouseSubframeNoImplicitCaptureName,
  6200. flag_descriptions::kMouseSubframeNoImplicitCaptureDescription, kOsAll,
  6201. FEATURE_VALUE_TYPE(features::kMouseSubframeNoImplicitCapture)},
  6202. #if BUILDFLAG(IS_CHROMEOS)
  6203. {"global-media-controls-for-cast",
  6204. flag_descriptions::kGlobalMediaControlsForCastName,
  6205. flag_descriptions::kGlobalMediaControlsForCastDescription, kOsCrOS,
  6206. FEATURE_VALUE_TYPE(media::kGlobalMediaControlsForCast)},
  6207. #endif // BUILDFLAG(IS_CHROMEOS)
  6208. #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
  6209. BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA)
  6210. {"global-media-controls-modern-ui",
  6211. flag_descriptions::kGlobalMediaControlsModernUIName,
  6212. flag_descriptions::kGlobalMediaControlsModernUIDescription,
  6213. kOsWin | kOsMac | kOsLinux | kOsLacros | kOsCrOS | kOsFuchsia,
  6214. FEATURE_VALUE_TYPE(media::kGlobalMediaControlsModernUI)},
  6215. #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ||
  6216. // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA)
  6217. {"turn-off-streaming-media-caching-on-battery",
  6218. flag_descriptions::kTurnOffStreamingMediaCachingOnBatteryName,
  6219. flag_descriptions::kTurnOffStreamingMediaCachingOnBatteryDescription,
  6220. kOsAll,
  6221. FEATURE_VALUE_TYPE(net::features::kTurnOffStreamingMediaCachingOnBattery)},
  6222. {"turn-off-streaming-media-caching-always",
  6223. flag_descriptions::kTurnOffStreamingMediaCachingAlwaysName,
  6224. flag_descriptions::kTurnOffStreamingMediaCachingAlwaysDescription, kOsAll,
  6225. FEATURE_VALUE_TYPE(net::features::kTurnOffStreamingMediaCachingAlways)},
  6226. {"enable-cooperative-scheduling",
  6227. flag_descriptions::kCooperativeSchedulingName,
  6228. flag_descriptions::kCooperativeSchedulingDescription, kOsAll,
  6229. FEATURE_VALUE_TYPE(features::kCooperativeScheduling)},
  6230. #if BUILDFLAG(IS_CHROMEOS_ASH)
  6231. {"enable-assistant-routines",
  6232. flag_descriptions::kEnableAssistantRoutinesName,
  6233. flag_descriptions::kEnableAssistantRoutinesDescription, kOsCrOS,
  6234. FEATURE_VALUE_TYPE(ash::assistant::features::kAssistantRoutines)},
  6235. #endif // BUILDFLAG(IS_CHROMEOS_ASH)
  6236. #if BUILDFLAG(IS_CHROMEOS_ASH)
  6237. {"enable-local-web-approvals", flag_descriptions::kLocalWebApprovalsName,
  6238. flag_descriptions::kLocalWebApprovalsDescription, kOsCrOS,
  6239. FEATURE_VALUE_TYPE(supervised_users::kLocalWebApprovals)},
  6240. #endif // BUILDFLAG(IS_CHROMEOS_ASH)
  6241. #if BUILDFLAG(ENABLE_SUPERVISED_USERS)
  6242. {"enable-web-filter-interstitial-refresh",
  6243. flag_descriptions::kWebFilterInterstitialRefreshName,
  6244. flag_descriptions::kWebFilterInterstitialRefreshDescription,
  6245. kOsCrOS | kOsAndroid,
  6246. FEATURE_VALUE_TYPE(supervised_users::kWebFilterInterstitialRefresh)},
  6247. #endif // BUILDFLAG(ENABLE_SUPERVISED_USERS)
  6248. {"notification-scheduler", flag_descriptions::kNotificationSchedulerName,
  6249. flag_descriptions::kNotificationSchedulerDescription, kOsAndroid,
  6250. FEATURE_VALUE_TYPE(notifications::features::kNotificationScheduleService)},
  6251. {"notification-scheduler-debug-options",
  6252. flag_descriptions::kNotificationSchedulerDebugOptionName,
  6253. flag_descriptions::kNotificationSchedulerDebugOptionDescription,
  6254. kOsAndroid, MULTI_VALUE_TYPE(kNotificationSchedulerChoices)},
  6255. #if BUILDFLAG(IS_ANDROID)
  6256. {"debug-chime-notification",
  6257. flag_descriptions::kChimeAlwaysShowNotificationName,
  6258. flag_descriptions::kChimeAlwaysShowNotificationDescription, kOsAndroid,
  6259. SINGLE_VALUE_TYPE(notifications::switches::kDebugChimeNotification)},
  6260. {"use-chime-android-sdk", flag_descriptions::kChimeAndroidSdkName,
  6261. flag_descriptions::kChimeAndroidSdkDescription, kOsAndroid,
  6262. FEATURE_VALUE_TYPE(notifications::features::kUseChimeAndroidSdk)},
  6263. #endif // BUILDFLAG(IS_ANDROID)
  6264. #if BUILDFLAG(IS_CHROMEOS_ASH)
  6265. {"contextual-nudges", flag_descriptions::kContextualNudgesName,
  6266. flag_descriptions::kContextualNudgesDescription, kOsCrOS,
  6267. FEATURE_VALUE_TYPE(ash::features::kContextualNudges)},
  6268. #endif // BUILDFLAG(IS_CHROMEOS_ASH)
  6269. #if BUILDFLAG(IS_CHROMEOS_ASH)
  6270. {"settings-app-notification-settings",
  6271. flag_descriptions::kSettingsAppNotificationSettingsName,
  6272. flag_descriptions::kSettingsAppNotificationSettingsDescription, kOsCrOS,
  6273. FEATURE_VALUE_TYPE(ash::features::kSettingsAppNotificationSettings)},
  6274. #endif // BUILDFLAG(IS_CHROMEOS_ASH)
  6275. {"dns-https-svcb", flag_descriptions::kDnsHttpsSvcbName,
  6276. flag_descriptions::kDnsHttpsSvcbDescription, kOsAll,
  6277. FEATURE_WITH_PARAMS_VALUE_TYPE(net::features::kUseDnsHttpsSvcb,
  6278. kUseDnsHttpsSvcbVariations,
  6279. "UseDnsHttpsSvcb")},
  6280. {"encrypted-client-hello", flag_descriptions::kEncryptedClientHelloName,
  6281. flag_descriptions::kEncryptedClientHelloDescription, kOsAll,
  6282. FEATURE_VALUE_TYPE(net::features::kEncryptedClientHello)},
  6283. {"use-dns-https-svcb-alpn", flag_descriptions::kUseDnsHttpsSvcbAlpnName,
  6284. flag_descriptions::kUseDnsHttpsSvcbAlpnDescription,
  6285. kOsLinux | kOsMac | kOsWin | kOsCrOS | kOsAndroid,
  6286. FEATURE_VALUE_TYPE(net::features::kUseDnsHttpsSvcbAlpn)},
  6287. {"web-bundles", flag_descriptions::kWebBundlesName,
  6288. flag_descriptions::kWebBundlesDescription, kOsAll,
  6289. FEATURE_VALUE_TYPE(features::kWebBundles)},
  6290. #if !BUILDFLAG(IS_ANDROID)
  6291. {"hidpi-capture", flag_descriptions::kWebContentsCaptureHiDpiName,
  6292. flag_descriptions::kWebContentsCaptureHiDpiDescription, kOsDesktop,
  6293. FEATURE_VALUE_TYPE(media::kWebContentsCaptureHiDpi)},
  6294. #endif // !BUILDFLAG(IS_ANDROID)
  6295. #if BUILDFLAG(IS_ANDROID)
  6296. {"web-otp-backend", flag_descriptions::kWebOtpBackendName,
  6297. flag_descriptions::kWebOtpBackendDescription, kOsAndroid,
  6298. MULTI_VALUE_TYPE(kWebOtpBackendChoices)},
  6299. {"darken-websites-checkbox-in-themes-setting",
  6300. flag_descriptions::kDarkenWebsitesCheckboxInThemesSettingName,
  6301. flag_descriptions::kDarkenWebsitesCheckboxInThemesSettingDescription,
  6302. kOsAndroid,
  6303. FEATURE_VALUE_TYPE(
  6304. content_settings::kDarkenWebsitesCheckboxInThemesSetting)},
  6305. #endif // BUILDFLAG(IS_ANDROID)
  6306. {"enable-autofill-upi-vpa", flag_descriptions::kAutofillSaveAndFillVPAName,
  6307. flag_descriptions::kAutofillSaveAndFillVPADescription, kOsAll,
  6308. FEATURE_VALUE_TYPE(autofill::features::kAutofillSaveAndFillVPA)},
  6309. #if BUILDFLAG(IS_ANDROID)
  6310. {"context-menu-search-with-google-lens",
  6311. flag_descriptions::kContextMenuSearchWithGoogleLensName,
  6312. flag_descriptions::kContextMenuSearchWithGoogleLensDescription, kOsAndroid,
  6313. FEATURE_WITH_PARAMS_VALUE_TYPE(
  6314. chrome::android::kContextMenuSearchWithGoogleLens,
  6315. kLensContextMenuSearchVariations,
  6316. "ContextMenuSearchWithGoogleLens")},
  6317. {"lens-camera-assisted-search",
  6318. flag_descriptions::kLensCameraAssistedSearchName,
  6319. flag_descriptions::kLensCameraAssistedSearchDescription, kOsAndroid,
  6320. FEATURE_WITH_PARAMS_VALUE_TYPE(chrome::android::kLensCameraAssistedSearch,
  6321. kLensCameraAssistedSearchVariations,
  6322. "LensCameraAssistedSearch")},
  6323. {"lens-on-quick-action-search-widget",
  6324. flag_descriptions::kLensOnQuickActionSearchWidgetName,
  6325. flag_descriptions::kLensOnQuickActionSearchWidgetDescription, kOsAndroid,
  6326. FEATURE_WITH_PARAMS_VALUE_TYPE(
  6327. chrome::android::kLensOnQuickActionSearchWidget,
  6328. kLensOnQuickActionSearchWidgetVariations,
  6329. "LensOnQuickActionSearchWidget")},
  6330. {"enable-iph", flag_descriptions::kEnableIphName,
  6331. flag_descriptions::kEnableIphDescription, kOsAndroid,
  6332. FEATURE_VALUE_TYPE(feature_engagement::kEnableIPH)},
  6333. #endif // BUILDFLAG(IS_ANDROID)
  6334. {"autofill-always-return-cloud-tokenized-card",
  6335. flag_descriptions::kAutofillAlwaysReturnCloudTokenizedCardName,
  6336. flag_descriptions::kAutofillAlwaysReturnCloudTokenizedCardDescription,
  6337. kOsAll,
  6338. FEATURE_VALUE_TYPE(
  6339. autofill::features::kAutofillAlwaysReturnCloudTokenizedCard)},
  6340. {"back-forward-cache", flag_descriptions::kBackForwardCacheName,
  6341. flag_descriptions::kBackForwardCacheDescription, kOsAll,
  6342. FEATURE_WITH_PARAMS_VALUE_TYPE(features::kBackForwardCache,
  6343. kBackForwardCacheVariations,
  6344. "BackForwardCache")},
  6345. {"enable-back-forward-cache-for-screen-reader",
  6346. flag_descriptions::kEnableBackForwardCacheForScreenReaderName,
  6347. flag_descriptions::kEnableBackForwardCacheForScreenReaderDescription,
  6348. kOsAll,
  6349. FEATURE_VALUE_TYPE(features::kEnableBackForwardCacheForScreenReader)},
  6350. #if !BUILDFLAG(IS_ANDROID)
  6351. {"closed-tab-cache", flag_descriptions::kClosedTabCacheName,
  6352. flag_descriptions::kClosedTabCacheDescription, kOsDesktop,
  6353. FEATURE_VALUE_TYPE(features::kClosedTabCache)},
  6354. #endif // !BUILDFLAG(IS_ANDROID)
  6355. {"windows-scrolling-personality",
  6356. flag_descriptions::kWindowsScrollingPersonalityName,
  6357. flag_descriptions::kWindowsScrollingPersonalityDescription, kOsAll,
  6358. FEATURE_VALUE_TYPE(features::kWindowsScrollingPersonality)},
  6359. {"scroll-unification", flag_descriptions::kScrollUnificationName,
  6360. flag_descriptions::kScrollUnificationDescription, kOsAll,
  6361. FEATURE_VALUE_TYPE(features::kScrollUnification)},
  6362. #if BUILDFLAG(IS_WIN)
  6363. {"elastic-overscroll", flag_descriptions::kElasticOverscrollName,
  6364. flag_descriptions::kElasticOverscrollDescription, kOsWin | kOsAndroid,
  6365. FEATURE_VALUE_TYPE(features::kElasticOverscroll)},
  6366. #elif BUILDFLAG(IS_ANDROID)
  6367. {"elastic-overscroll", flag_descriptions::kElasticOverscrollName,
  6368. flag_descriptions::kElasticOverscrollDescription, kOsWin | kOsAndroid,
  6369. FEATURE_WITH_PARAMS_VALUE_TYPE(features::kElasticOverscroll,
  6370. kElasticOverscrollVariations,
  6371. "ElasticOverscroll")},
  6372. #endif
  6373. {"device-posture", flag_descriptions::kDevicePostureName,
  6374. flag_descriptions::kDevicePostureDescription, kOsAll,
  6375. FEATURE_VALUE_TYPE(features::kDevicePosture)},
  6376. #if BUILDFLAG(IS_CHROMEOS_ASH)
  6377. {"device-force-scheduled-reboot",
  6378. flag_descriptions::kDeviceForceScheduledRebootName,
  6379. flag_descriptions::kDeviceForceScheduledRebootDescription, kOsCrOS,
  6380. FEATURE_VALUE_TYPE(ash::features::kDeviceForceScheduledReboot)},
  6381. {"enable-assistant-aec", flag_descriptions::kEnableGoogleAssistantAecName,
  6382. flag_descriptions::kEnableGoogleAssistantAecDescription, kOsCrOS,
  6383. FEATURE_VALUE_TYPE(ash::assistant::features::kAssistantAudioEraser)},
  6384. #endif
  6385. #if BUILDFLAG(IS_WIN)
  6386. {"enable-winrt-geolocation-implementation",
  6387. flag_descriptions::kWinrtGeolocationImplementationName,
  6388. flag_descriptions::kWinrtGeolocationImplementationDescription, kOsWin,
  6389. FEATURE_VALUE_TYPE(features::kWinrtGeolocationImplementation)},
  6390. #endif
  6391. #if BUILDFLAG(IS_MAC)
  6392. {"enable-core-location-backend",
  6393. flag_descriptions::kMacCoreLocationBackendName,
  6394. flag_descriptions::kMacCoreLocationBackendDescription, kOsMac,
  6395. FEATURE_VALUE_TYPE(features::kMacCoreLocationBackend)},
  6396. #endif
  6397. #if !BUILDFLAG(IS_ANDROID)
  6398. {"mute-notification-snooze-action",
  6399. flag_descriptions::kMuteNotificationSnoozeActionName,
  6400. flag_descriptions::kMuteNotificationSnoozeActionDescription, kOsDesktop,
  6401. FEATURE_VALUE_TYPE(features::kMuteNotificationSnoozeAction)},
  6402. #endif // !BUILDFLAG(IS_ANDROID)
  6403. #if BUILDFLAG(IS_MAC)
  6404. {"enable-new-mac-notification-api",
  6405. flag_descriptions::kNewMacNotificationAPIName,
  6406. flag_descriptions::kNewMacNotificationAPIDescription, kOsMac,
  6407. FEATURE_VALUE_TYPE(features::kNewMacNotificationAPI)},
  6408. #endif
  6409. #if BUILDFLAG(IS_CHROMEOS_ASH)
  6410. {"exo-gamepad-vibration", flag_descriptions::kExoGamepadVibrationName,
  6411. flag_descriptions::kExoGamepadVibrationDescription, kOsCrOS,
  6412. FEATURE_VALUE_TYPE(chromeos::features::kGamepadVibration)},
  6413. {"exo-lock-notification", flag_descriptions::kExoLockNotificationName,
  6414. flag_descriptions::kExoLockNotificationDescription, kOsCrOS,
  6415. FEATURE_VALUE_TYPE(chromeos::features::kExoLockNotification)},
  6416. {"exo-ordinal-motion", flag_descriptions::kExoOrdinalMotionName,
  6417. flag_descriptions::kExoOrdinalMotionDescription, kOsCrOS,
  6418. FEATURE_VALUE_TYPE(chromeos::features::kExoOrdinalMotion)},
  6419. #endif // BUILDFLAG(IS_CHROMEOS_ASH)
  6420. #if BUILDFLAG(IS_MAC)
  6421. {"metal", flag_descriptions::kMetalName,
  6422. flag_descriptions::kMetalDescription, kOsMac,
  6423. FEATURE_VALUE_TYPE(features::kMetal)},
  6424. {"screentime", flag_descriptions::kScreenTimeName,
  6425. flag_descriptions::kScreenTimeDescription, kOsMac,
  6426. FEATURE_VALUE_TYPE(screentime::kScreenTime)},
  6427. #endif
  6428. #if BUILDFLAG(IS_CHROMEOS_ASH)
  6429. {"enable-cros-action-recorder",
  6430. flag_descriptions::kEnableCrOSActionRecorderName,
  6431. flag_descriptions::kEnableCrOSActionRecorderDescription, kOsCrOS,
  6432. MULTI_VALUE_TYPE(kEnableCrOSActionRecorderChoices)},
  6433. #endif // BUILDFLAG(IS_CHROMEOS_ASH)
  6434. {"enable-heavy-ad-intervention",
  6435. flag_descriptions::kHeavyAdInterventionName,
  6436. flag_descriptions::kHeavyAdInterventionDescription, kOsAll,
  6437. FEATURE_VALUE_TYPE(heavy_ad_intervention::features::kHeavyAdIntervention)},
  6438. {"heavy-ad-privacy-mitigations",
  6439. flag_descriptions::kHeavyAdPrivacyMitigationsName,
  6440. flag_descriptions::kHeavyAdPrivacyMitigationsDescription, kOsAll,
  6441. FEATURE_VALUE_TYPE(
  6442. heavy_ad_intervention::features::kHeavyAdPrivacyMitigations)},
  6443. #if BUILDFLAG(IS_CHROMEOS_ASH)
  6444. {"crosh-swa", flag_descriptions::kCroshSWAName,
  6445. flag_descriptions::kCroshSWADescription, kOsCrOS,
  6446. FEATURE_VALUE_TYPE(chromeos::features::kCroshSWA)},
  6447. {"crostini-container-install",
  6448. flag_descriptions::kCrostiniContainerInstallName,
  6449. flag_descriptions::kCrostiniContainerInstallDescription, kOsCrOS,
  6450. MULTI_VALUE_TYPE(kCrostiniContainerChoices)},
  6451. {"crostini-disk-resizing", flag_descriptions::kCrostiniDiskResizingName,
  6452. flag_descriptions::kCrostiniDiskResizingDescription, kOsCrOS,
  6453. FEATURE_VALUE_TYPE(chromeos::features::kCrostiniDiskResizing)},
  6454. #endif // BUILDFLAG(IS_CHROMEOS_ASH)
  6455. #if BUILDFLAG(IS_CHROMEOS_ASH)
  6456. {"sync-settings-categorization",
  6457. flag_descriptions::kSyncSettingsCategorizationName,
  6458. flag_descriptions::kSyncSettingsCategorizationDescription, kOsCrOS,
  6459. FEATURE_VALUE_TYPE(chromeos::features::kSyncSettingsCategorization)},
  6460. {"os-settings-app-notifications-page",
  6461. flag_descriptions::kOsSettingsAppNotificationsPageName,
  6462. flag_descriptions::kOsSettingsAppNotificationsPageDescription, kOsCrOS,
  6463. FEATURE_VALUE_TYPE(chromeos::features::kOsSettingsAppNotificationsPage)},
  6464. {"help-app-background-page", flag_descriptions::kHelpAppBackgroundPageName,
  6465. flag_descriptions::kHelpAppBackgroundPageDescription, kOsCrOS,
  6466. FEATURE_VALUE_TYPE(chromeos::features::kHelpAppBackgroundPage)},
  6467. {"help-app-discover-tab", flag_descriptions::kHelpAppDiscoverTabName,
  6468. flag_descriptions::kHelpAppDiscoverTabDescription, kOsCrOS,
  6469. FEATURE_VALUE_TYPE(chromeos::features::kHelpAppDiscoverTab)},
  6470. {"help-app-launcher-search", flag_descriptions::kHelpAppLauncherSearchName,
  6471. flag_descriptions::kHelpAppLauncherSearchDescription, kOsCrOS,
  6472. FEATURE_VALUE_TYPE(chromeos::features::kHelpAppLauncherSearch)},
  6473. {"media-app-handles-pdf", flag_descriptions::kMediaAppHandlesPdfName,
  6474. flag_descriptions::kMediaAppHandlesPdfDescription, kOsCrOS,
  6475. FEATURE_VALUE_TYPE(chromeos::features::kMediaAppHandlesPdf)},
  6476. {"media-app-photos-integration-image",
  6477. flag_descriptions::kMediaAppPhotosIntegrationImageName,
  6478. flag_descriptions::kMediaAppPhotosIntegrationImageDescription, kOsCrOS,
  6479. FEATURE_VALUE_TYPE(chromeos::features::kMediaAppPhotosIntegrationImage)},
  6480. {"media-app-photos-integration-video",
  6481. flag_descriptions::kMediaAppPhotosIntegrationVideoName,
  6482. flag_descriptions::kMediaAppPhotosIntegrationVideoDescription, kOsCrOS,
  6483. FEATURE_VALUE_TYPE(chromeos::features::kMediaAppPhotosIntegrationVideo)},
  6484. {"release-notes-notification-all-channels",
  6485. flag_descriptions::kReleaseNotesNotificationAllChannelsName,
  6486. flag_descriptions::kReleaseNotesNotificationAllChannelsDescription,
  6487. kOsCrOS,
  6488. FEATURE_VALUE_TYPE(
  6489. chromeos::features::kReleaseNotesNotificationAllChannels)},
  6490. {"release-track-ui", flag_descriptions::kReleaseTrackUiName,
  6491. flag_descriptions::kReleaseTrackUiDescription, kOsCrOS,
  6492. FEATURE_VALUE_TYPE(chromeos::features::kReleaseTrackUi)},
  6493. {"use-stork-smds-server-address",
  6494. flag_descriptions::kUseStorkSmdsServerAddressName,
  6495. flag_descriptions::kUseStorkSmdsServerAddressDescription, kOsCrOS,
  6496. FEATURE_VALUE_TYPE(chromeos::features::kUseStorkSmdsServerAddress)},
  6497. {"use-wallpaper-staging-url",
  6498. flag_descriptions::kUseWallpaperStagingUrlName,
  6499. flag_descriptions::kUseWallpaperStagingUrlDescription, kOsCrOS,
  6500. FEATURE_VALUE_TYPE(chromeos::features::kUseWallpaperStagingUrl)},
  6501. {"semantic-colors-debug-override",
  6502. flag_descriptions::kSemanticColorsDebugOverrideName,
  6503. flag_descriptions::kSemanticColorsDebugOverrideDescription, kOsCrOS,
  6504. FEATURE_VALUE_TYPE(chromeos::features::kSemanticColorsDebugOverride)},
  6505. #endif // BUILDFLAG(IS_CHROMEOS_ASH)
  6506. {"autofill-enable-virtual-card",
  6507. flag_descriptions::kAutofillEnableVirtualCardName,
  6508. flag_descriptions::kAutofillEnableVirtualCardDescription, kOsDesktop,
  6509. FEATURE_VALUE_TYPE(autofill::features::kAutofillEnableVirtualCard)},
  6510. #if BUILDFLAG(IS_ANDROID)
  6511. {"autofill-enable-manual-fallback-for-virtual-cards",
  6512. flag_descriptions::kAutofillEnableManualFallbackForVirtualCardsName,
  6513. flag_descriptions::kAutofillEnableManualFallbackForVirtualCardsDescription,
  6514. kOsAndroid,
  6515. FEATURE_VALUE_TYPE(
  6516. autofill::features::kAutofillEnableManualFallbackForVirtualCards)},
  6517. #endif // BUILDFLAG(IS_ANDROID)
  6518. {"autofill-enable-card-product-name",
  6519. flag_descriptions::kAutofillEnableCardProductNameName,
  6520. flag_descriptions::kAutofillEnableCardProductNameDescription, kOsAll,
  6521. FEATURE_VALUE_TYPE(autofill::features::kAutofillEnableCardProductName)},
  6522. #if BUILDFLAG(IS_CHROMEOS_ASH)
  6523. {"account-id-migration", flag_descriptions::kAccountIdMigrationName,
  6524. flag_descriptions::kAccountIdMigrationDescription, kOsCrOS,
  6525. FEATURE_VALUE_TYPE(switches::kAccountIdMigration)},
  6526. #endif // BUILDFLAG(IS_CHROMEOS_ASH)
  6527. #if BUILDFLAG(ENABLE_PAINT_PREVIEW) && BUILDFLAG(IS_ANDROID)
  6528. {"paint-preview-demo", flag_descriptions::kPaintPreviewDemoName,
  6529. flag_descriptions::kPaintPreviewDemoDescription, kOsAndroid,
  6530. FEATURE_VALUE_TYPE(paint_preview::kPaintPreviewDemo)},
  6531. {"paint-preview-startup", flag_descriptions::kPaintPreviewStartupName,
  6532. flag_descriptions::kPaintPreviewStartupDescription, kOsAndroid,
  6533. FEATURE_WITH_PARAMS_VALUE_TYPE(paint_preview::kPaintPreviewShowOnStartup,
  6534. kPaintPreviewStartupVariations,
  6535. "PaintPreviewShowOnStartup")},
  6536. #endif // BUILDFLAG(ENABLE_PAINT_PREVIEW) && BUILDFLAG(IS_ANDROID)
  6537. #if BUILDFLAG(IS_ANDROID)
  6538. {"recover-from-never-save-android",
  6539. flag_descriptions::kRecoverFromNeverSaveAndroidName,
  6540. flag_descriptions::kRecoverFromNeverSaveAndroidDescription, kOsAndroid,
  6541. FEATURE_VALUE_TYPE(
  6542. password_manager::features::kRecoverFromNeverSaveAndroid)},
  6543. {"photo-picker-video-support",
  6544. flag_descriptions::kPhotoPickerVideoSupportName,
  6545. flag_descriptions::kPhotoPickerVideoSupportDescription, kOsAndroid,
  6546. FEATURE_WITH_PARAMS_VALUE_TYPE(
  6547. photo_picker::features::kPhotoPickerVideoSupport,
  6548. kPhotoPickerVideoSupportFeatureVariations,
  6549. "PhotoPickerVideoSupportFeatureVariations")},
  6550. #endif // BUILDFLAG(IS_ANDROID)
  6551. {"full-user-agent", flag_descriptions::kFullUserAgentName,
  6552. flag_descriptions::kFullUserAgentDescription, kOsDesktop | kOsAndroid,
  6553. FEATURE_VALUE_TYPE(blink::features::kFullUserAgent)},
  6554. {"reduce-user-agent", flag_descriptions::kReduceUserAgentName,
  6555. flag_descriptions::kReduceUserAgentDescription, kOsDesktop | kOsAndroid,
  6556. FEATURE_VALUE_TYPE(blink::features::kReduceUserAgent)},
  6557. #if BUILDFLAG(IS_WIN)
  6558. {"run-video-capture-service-in-browser",
  6559. flag_descriptions::kRunVideoCaptureServiceInBrowserProcessName,
  6560. flag_descriptions::kRunVideoCaptureServiceInBrowserProcessDescription,
  6561. kOsWin,
  6562. FEATURE_VALUE_TYPE(features::kRunVideoCaptureServiceInBrowserProcess)},
  6563. #endif // BUILDFLAG(IS_WIN)
  6564. {"disruptive-notification-permission-revocation",
  6565. flag_descriptions::kDisruptiveNotificationPermissionRevocationName,
  6566. flag_descriptions::kDisruptiveNotificationPermissionRevocationDescription,
  6567. kOsAll,
  6568. FEATURE_VALUE_TYPE(features::kDisruptiveNotificationPermissionRevocation)},
  6569. {"double-buffer-compositing",
  6570. flag_descriptions::kDoubleBufferCompositingName,
  6571. flag_descriptions::kDoubleBufferCompositingDescription, kOsCrOS,
  6572. SINGLE_VALUE_TYPE(switches::kDoubleBufferCompositing)},
  6573. {"password-domain-capabilities-fetching",
  6574. flag_descriptions::kPasswordDomainCapabilitiesFetchingName,
  6575. flag_descriptions::kPasswordDomainCapabilitiesFetchingDescription, kOsAll,
  6576. FEATURE_WITH_PARAMS_VALUE_TYPE(
  6577. password_manager::features::kPasswordDomainCapabilitiesFetching,
  6578. kPasswordDomainCapabilitiesFetchingFeatureVariations,
  6579. "PasswordDomainCapabilitiesFetchingFeatureVariations")},
  6580. {"force-enable-password-domain-capabilities",
  6581. flag_descriptions::kForceEnablePasswordDomainCapabilitiesName,
  6582. flag_descriptions::kForceEnablePasswordDomainCapabilitiesDescription,
  6583. kOsAll,
  6584. FEATURE_VALUE_TYPE(
  6585. password_manager::features::kForceEnablePasswordDomainCapabilities)},
  6586. {"password-change-support", flag_descriptions::kPasswordChangeName,
  6587. flag_descriptions::kPasswordChangeDescription, kOsAll,
  6588. FEATURE_WITH_PARAMS_VALUE_TYPE(password_manager::features::kPasswordChange,
  6589. kPasswordChangeFeatureVariations,
  6590. "PasswordChangeFeatureVariations")},
  6591. {"password-change-in-settings",
  6592. flag_descriptions::kPasswordChangeInSettingsName,
  6593. flag_descriptions::kPasswordChangeInSettingsDescription, kOsAll,
  6594. FEATURE_WITH_PARAMS_VALUE_TYPE(
  6595. password_manager::features::kPasswordChangeInSettings,
  6596. kPasswordChangeInSettingsFeatureVariations,
  6597. "PasswordChangeInSettingsFeatureVariations")},
  6598. #if BUILDFLAG(IS_ANDROID)
  6599. {"password-scripts-fetching",
  6600. flag_descriptions::kPasswordScriptsFetchingName,
  6601. flag_descriptions::kPasswordScriptsFetchingDescription, kOsAndroid,
  6602. FEATURE_VALUE_TYPE(password_manager::features::kPasswordScriptsFetching)},
  6603. #endif // BUILDFLAG(IS_ANDROID)
  6604. #if BUILDFLAG(IS_ANDROID)
  6605. {"page-info-discoverability-timeouts",
  6606. flag_descriptions::kPageInfoDiscoverabilityTimeoutsName,
  6607. flag_descriptions::kPageInfoDiscoverabilityTimeoutsDescription, kOsAndroid,
  6608. FEATURE_WITH_PARAMS_VALUE_TYPE(
  6609. page_info::kPageInfoDiscoverability,
  6610. kPageInfoDiscoverabilityTimeoutVariations,
  6611. "kPageInfoDiscoverabilityTimeoutVariations")},
  6612. #endif // BUILDFLAG(IS_ANDROID)
  6613. #if !BUILDFLAG(IS_ANDROID)
  6614. {"page-info-hide-site-settings",
  6615. flag_descriptions::kPageInfoHideSiteSettingsName,
  6616. flag_descriptions::kPageInfoHideSiteSettingsDescription, kOsDesktop,
  6617. FEATURE_VALUE_TYPE(page_info::kPageInfoHideSiteSettings)},
  6618. #endif // !BUILDFLAG(IS_ANDROID)
  6619. #if BUILDFLAG(IS_ANDROID)
  6620. {"page-info-history", flag_descriptions::kPageInfoHistoryName,
  6621. flag_descriptions::kPageInfoHistoryDescription, kOsAndroid,
  6622. FEATURE_VALUE_TYPE(page_info::kPageInfoHistory)},
  6623. {"page-info-store-info", flag_descriptions::kPageInfoStoreInfoName,
  6624. flag_descriptions::kPageInfoStoreInfoDescription, kOsAndroid,
  6625. FEATURE_VALUE_TYPE(page_info::kPageInfoStoreInfo)},
  6626. #endif // BUILDFLAG(IS_ANDROID)
  6627. #if !BUILDFLAG(IS_ANDROID)
  6628. {"page-info-history-desktop",
  6629. flag_descriptions::kPageInfoHistoryDesktopName,
  6630. flag_descriptions::kPageInfoHistoryDesktopDescription, kOsDesktop,
  6631. FEATURE_VALUE_TYPE(page_info::kPageInfoHistoryDesktop)},
  6632. #endif // !BUILDFLAG(IS_ANDROID)
  6633. {"page-info-about-this-site", flag_descriptions::kPageInfoAboutThisSiteName,
  6634. flag_descriptions::kPageInfoAboutThisSiteDescription,
  6635. kOsDesktop | kOsAndroid,
  6636. FEATURE_VALUE_TYPE(page_info::kPageInfoAboutThisSiteEn)},
  6637. {"page-info-more-about-this-page",
  6638. flag_descriptions::kPageInfoMoreAboutThisPageName,
  6639. flag_descriptions::kPageInfoMoreAboutThisPageDescription,
  6640. kOsDesktop | kOsAndroid,
  6641. FEATURE_VALUE_TYPE(page_info::kPageInfoAboutThisSiteMoreInfo)},
  6642. #if BUILDFLAG(IS_CHROMEOS_ASH)
  6643. {kClipboardHistoryReorderInternalName,
  6644. flag_descriptions::kClipboardHistoryReorderName,
  6645. flag_descriptions::kClipboardHistoryReorderDescription, kOsCrOS,
  6646. FEATURE_VALUE_TYPE(chromeos::features::kClipboardHistoryReorder)},
  6647. {"enhanced_clipboard_nudge_session_reset",
  6648. flag_descriptions::kEnhancedClipboardNudgeSessionResetName,
  6649. flag_descriptions::kEnhancedClipboardNudgeSessionResetDescription, kOsCrOS,
  6650. FEATURE_VALUE_TYPE(
  6651. chromeos::features::kClipboardHistoryNudgeSessionReset)},
  6652. #endif // BUILDFLAG(IS_CHROMEOS_ASH)
  6653. #if BUILDFLAG(IS_WIN)
  6654. {"enable-media-foundation-video-capture",
  6655. flag_descriptions::kEnableMediaFoundationVideoCaptureName,
  6656. flag_descriptions::kEnableMediaFoundationVideoCaptureDescription, kOsWin,
  6657. FEATURE_VALUE_TYPE(media::kMediaFoundationVideoCapture)},
  6658. #endif // BUILDFLAG(IS_WIN)
  6659. {"color-provider-redirection-for-theme-provider",
  6660. flag_descriptions::kColorProviderRedirectionForThemeProviderName,
  6661. flag_descriptions::kColorProviderRedirectionForThemeProviderDescription,
  6662. kOsDesktop,
  6663. FEATURE_VALUE_TYPE(features::kColorProviderRedirectionForThemeProvider)},
  6664. {"trust-tokens", flag_descriptions::kTrustTokensName,
  6665. flag_descriptions::kTrustTokensDescription, kOsAll,
  6666. FEATURE_WITH_PARAMS_VALUE_TYPE(network::features::kTrustTokens,
  6667. kPlatformProvidedTrustTokensVariations,
  6668. "TrustTokenOriginTrial")},
  6669. #if !BUILDFLAG(IS_ANDROID)
  6670. {"copy-link-to-text", flag_descriptions::kCopyLinkToTextName,
  6671. flag_descriptions::kCopyLinkToTextDescription, kOsDesktop,
  6672. FEATURE_VALUE_TYPE(features::kCopyLinkToText)},
  6673. #endif // !BUILDFLAG(IS_ANDROID)
  6674. {"shared-highlighting-amp", flag_descriptions::kSharedHighlightingAmpName,
  6675. flag_descriptions::kSharedHighlightingAmpDescription, kOsAll,
  6676. FEATURE_VALUE_TYPE(shared_highlighting::kSharedHighlightingAmp)},
  6677. {"shared-highlighting-manager",
  6678. flag_descriptions::kSharedHighlightingManagerName,
  6679. flag_descriptions::kSharedHighlightingManagerDescription, kOsAll,
  6680. FEATURE_VALUE_TYPE(shared_highlighting::kSharedHighlightingManager)},
  6681. {"shared-highlighting-refined-blocklist",
  6682. flag_descriptions::kSharedHighlightingRefinedBlocklistName,
  6683. flag_descriptions::kSharedHighlightingRefinedBlocklistDescription, kOsAll,
  6684. FEATURE_VALUE_TYPE(
  6685. shared_highlighting::kSharedHighlightingRefinedBlocklist)},
  6686. {"shared-highlighting-refined-maxcontextwords",
  6687. flag_descriptions::kSharedHighlightingRefinedMaxContextWordsName,
  6688. flag_descriptions::kSharedHighlightingRefinedMaxContextWordsDescription,
  6689. kOsAll,
  6690. FEATURE_WITH_PARAMS_VALUE_TYPE(
  6691. shared_highlighting::kSharedHighlightingRefinedMaxContextWords,
  6692. kSharedHighlightingMaxContextWordsVariations,
  6693. "SharedHighlightingRefinedMaxContextWords")},
  6694. #if BUILDFLAG(IS_CHROMEOS_ASH)
  6695. {"shimless-rma-flow", flag_descriptions::kShimlessRMAFlowName,
  6696. flag_descriptions::kShimlessRMAFlowDescription, kOsCrOS,
  6697. FEATURE_VALUE_TYPE(chromeos::features::kShimlessRMAFlow)},
  6698. {"shimless-rma-enable-standalone",
  6699. flag_descriptions::kShimlessRMAEnableStandaloneName,
  6700. flag_descriptions::kShimlessRMAEnableStandaloneDescription, kOsCrOS,
  6701. FEATURE_VALUE_TYPE(chromeos::features::kShimlessRMAFlow)},
  6702. {"shimless-rma-os-update", flag_descriptions::kShimlessRMAOsUpdateName,
  6703. flag_descriptions::kShimlessRMAOsUpdateDescription, kOsCrOS,
  6704. FEATURE_VALUE_TYPE(chromeos::features::kShimlessRMAOsUpdate)},
  6705. {"shimless-rma-disable-dark-mode",
  6706. flag_descriptions::kShimlessRMADisableDarkModeName,
  6707. flag_descriptions::kShimlessRMADisableDarkModeDescription, kOsCrOS,
  6708. FEATURE_VALUE_TYPE(chromeos::features::kShimlessRMADisableDarkMode)},
  6709. {"nearby-sharing-arc", flag_descriptions::kNearbySharingArcName,
  6710. flag_descriptions::kNearbySharingArcDescription, kOsCrOS,
  6711. FEATURE_VALUE_TYPE(arc::kEnableArcNearbyShare)},
  6712. {"nearby-sharing-background-scanning",
  6713. flag_descriptions::kNearbySharingBackgroundScanningName,
  6714. flag_descriptions::kNearbySharingBackgroundScanningDescription, kOsCrOS,
  6715. FEATURE_VALUE_TYPE(features::kNearbySharingBackgroundScanning)},
  6716. {"nearby-sharing-one-page-onboarding",
  6717. flag_descriptions::kNearbySharingOnePageOnboardingName,
  6718. flag_descriptions::kNearbySharingOnePageOnboardingDescription, kOsCrOS,
  6719. FEATURE_VALUE_TYPE(features::kNearbySharingOnePageOnboarding)},
  6720. {"nearby-sharing-self-share-auto-accept",
  6721. flag_descriptions::kNearbySharingSelfShareAutoAcceptName,
  6722. flag_descriptions::kNearbySharingSelfShareAutoAcceptDescription, kOsCrOS,
  6723. FEATURE_VALUE_TYPE(features::kNearbySharingSelfShareAutoAccept)},
  6724. {"nearby-sharing-self-share-ui",
  6725. flag_descriptions::kNearbySharingSelfShareUIName,
  6726. flag_descriptions::kNearbySharingSelfShareUIDescription, kOsCrOS,
  6727. FEATURE_VALUE_TYPE(features::kNearbySharingSelfShareUI)},
  6728. {"nearby-sharing-wifilan", flag_descriptions::kNearbySharingWifiLanName,
  6729. flag_descriptions::kNearbySharingWifiLanDescription, kOsCrOS,
  6730. FEATURE_VALUE_TYPE(features::kNearbySharingWifiLan)},
  6731. #endif // BUILDFLAG(IS_CHROMEOS_ASH)
  6732. #if BUILDFLAG(IS_CHROMEOS_ASH)
  6733. {"enable-palm-suppression", flag_descriptions::kEnablePalmSuppressionName,
  6734. flag_descriptions::kEnablePalmSuppressionDescription, kOsCrOS,
  6735. FEATURE_VALUE_TYPE(ui::kEnablePalmSuppression)},
  6736. #endif // BUILDFLAG(IS_CHROMEOS_ASH)
  6737. {"enable-experimental-cookie-features",
  6738. flag_descriptions::kEnableExperimentalCookieFeaturesName,
  6739. flag_descriptions::kEnableExperimentalCookieFeaturesDescription, kOsAll,
  6740. MULTI_VALUE_TYPE(kEnableExperimentalCookieFeaturesChoices)},
  6741. {"permission-chip", flag_descriptions::kPermissionChipName,
  6742. flag_descriptions::kPermissionChipDescription, kOsDesktop,
  6743. FEATURE_VALUE_TYPE(permissions::features::kPermissionChip)},
  6744. {"permission-chip-gesture",
  6745. flag_descriptions::kPermissionChipGestureSensitiveName,
  6746. flag_descriptions::kPermissionChipGestureSensitiveDescription, kOsDesktop,
  6747. FEATURE_VALUE_TYPE(
  6748. permissions::features::kPermissionChipGestureSensitive)},
  6749. {"permission-chip-request-type",
  6750. flag_descriptions::kPermissionChipRequestTypeSensitiveName,
  6751. flag_descriptions::kPermissionChipRequestTypeSensitiveDescription,
  6752. kOsDesktop,
  6753. FEATURE_VALUE_TYPE(
  6754. permissions::features::kPermissionChipRequestTypeSensitive)},
  6755. {"permission-quiet-chip", flag_descriptions::kPermissionQuietChipName,
  6756. flag_descriptions::kPermissionQuietChipDescription, kOsDesktop,
  6757. FEATURE_VALUE_TYPE(permissions::features::kPermissionQuietChip)},
  6758. {"canvas-2d-layers", flag_descriptions::kCanvas2DLayersName,
  6759. flag_descriptions::kCanvas2DLayersDescription, kOsAll,
  6760. SINGLE_VALUE_TYPE(switches::kEnableCanvas2DLayers)},
  6761. {"enable-machine-learning-model-loader-web-platform-api",
  6762. flag_descriptions::kEnableMachineLearningModelLoaderWebPlatformApiName,
  6763. flag_descriptions::
  6764. kEnableMachineLearningModelLoaderWebPlatformApiDescription,
  6765. kOsAll,
  6766. FEATURE_VALUE_TYPE(
  6767. features::kEnableMachineLearningModelLoaderWebPlatformApi)},
  6768. {"enable-translate-sub-frames",
  6769. flag_descriptions::kEnableTranslateSubFramesName,
  6770. flag_descriptions::kEnableTranslateSubFramesDescription, kOsAll,
  6771. FEATURE_VALUE_TYPE(translate::kTranslateSubFrames)},
  6772. {"attribution-reporting-debug-mode",
  6773. flag_descriptions::kAttributionReportingDebugModeName,
  6774. flag_descriptions::kAttributionReportingDebugModeDescription, kOsAll,
  6775. SINGLE_VALUE_TYPE(switches::kAttributionReportingDebugMode)},
  6776. {"client-storage-access-context-auditing",
  6777. flag_descriptions::kClientStorageAccessContextAuditingName,
  6778. flag_descriptions::kClientStorageAccessContextAuditingDescription, kOsAll,
  6779. FEATURE_VALUE_TYPE(features::kClientStorageAccessContextAuditing)},
  6780. #if BUILDFLAG(IS_CHROMEOS_ASH)
  6781. {"productivity-launcher", flag_descriptions::kProductivityLauncherName,
  6782. flag_descriptions::kProductivityLauncherDescription, kOsCrOS,
  6783. FEATURE_WITH_PARAMS_VALUE_TYPE(ash::features::kProductivityLauncher,
  6784. kProductivityLauncherVariations,
  6785. "ProductivityLauncher")},
  6786. {"launcher-item-suggest", flag_descriptions::kLauncherItemSuggestName,
  6787. flag_descriptions::kLauncherItemSuggestDescription, kOsCrOS,
  6788. FEATURE_WITH_PARAMS_VALUE_TYPE(app_list::ItemSuggestCache::kExperiment,
  6789. kLauncherItemSuggestVariations,
  6790. "LauncherItemSuggest")},
  6791. {"autocomplete-extended-suggestions",
  6792. flag_descriptions::kAutocompleteExtendedSuggestionsName,
  6793. flag_descriptions::kAutocompleteExtendedSuggestionsDescription, kOsCrOS,
  6794. FEATURE_VALUE_TYPE(ash::features::kAutocompleteExtendedSuggestions)},
  6795. {"productivity-launcher-image-search",
  6796. flag_descriptions::kProductivityLauncherImageSearchName,
  6797. flag_descriptions::kProductivityLauncherImageSearchDescription, kOsCrOS,
  6798. FEATURE_VALUE_TYPE(ash::features::kProductivityLauncherImageSearch)},
  6799. {"compact-bubble-launcher", flag_descriptions::kCompactBubbleLauncherName,
  6800. flag_descriptions::kCompactBubbleLauncherDescription, kOsCrOS,
  6801. FEATURE_VALUE_TYPE(app_list_features::kCompactBubbleLauncher)},
  6802. {"shelf-auto-hide-separation",
  6803. flag_descriptions::kShelfAutoHideSeparationName,
  6804. flag_descriptions::kShelfAutoHideSeparationDescription, kOsCrOS,
  6805. FEATURE_VALUE_TYPE(ash::features::kShelfAutoHideSeparation)},
  6806. {"shelf-drag-to-pin", flag_descriptions::kShelfDragToPinName,
  6807. flag_descriptions::kShelfDragToPinDescription, kOsCrOS,
  6808. FEATURE_VALUE_TYPE(ash::features::kDragUnpinnedAppToPin)},
  6809. {"shelf-gestures-with-vk",
  6810. flag_descriptions::kShelfGesturesWithVirtualKeyboardName,
  6811. flag_descriptions::kShelfGesturesWithVirtualKeyboardDescription, kOsCrOS,
  6812. FEATURE_VALUE_TYPE(ash::features::kShelfGesturesWithVirtualKeyboard)},
  6813. {"shelf-palm-rejection-swipe-offset",
  6814. flag_descriptions::kShelfPalmRejectionSwipeOffsetName,
  6815. flag_descriptions::kShelfPalmRejectionSwipeOffsetDescription, kOsCrOS,
  6816. FEATURE_VALUE_TYPE(ash::features::kShelfPalmRejectionSwipeOffset)},
  6817. {"launcher-game-search", flag_descriptions::kLauncherGameSearchName,
  6818. flag_descriptions::kLauncherGameSearchDescription, kOsCrOS,
  6819. FEATURE_VALUE_TYPE(search_features::kLauncherGameSearch)},
  6820. {"launcher-hide-continue-section",
  6821. flag_descriptions::kLauncherHideContinueSectionName,
  6822. flag_descriptions::kLauncherHideContinueSectionDescription, kOsCrOS,
  6823. FEATURE_VALUE_TYPE(ash::features::kLauncherHideContinueSection)},
  6824. #endif // BUILDFLAG(IS_CHROMEOS_ASH)
  6825. #if BUILDFLAG(IS_CHROMEOS_ASH)
  6826. {"mac-address-randomization",
  6827. flag_descriptions::kMacAddressRandomizationName,
  6828. flag_descriptions::kMacAddressRandomizationDescription, kOsCrOS,
  6829. FEATURE_VALUE_TYPE(ash::features::kMacAddressRandomization)},
  6830. {"search-result-inline-icon",
  6831. flag_descriptions::kSearchResultInlineIconName,
  6832. flag_descriptions::kSearchResultInlineIconDescription, kOsCrOS,
  6833. FEATURE_VALUE_TYPE(app_list_features::kSearchResultInlineIcon)},
  6834. {"dynamic-search-update-animation",
  6835. flag_descriptions::kDynamicSearchUpdateAnimationName,
  6836. flag_descriptions::kDynamicSearchUpdateAnimationDescription, kOsCrOS,
  6837. FEATURE_WITH_PARAMS_VALUE_TYPE(
  6838. app_list_features::kDynamicSearchUpdateAnimation,
  6839. kDynamicSearchUpdateAnimationVariations,
  6840. "LauncherDynamicAnimations")},
  6841. #endif // BUILDFLAG(IS_CHROMEOS_ASH)
  6842. {"enable-bluetooth-spp-in-serial-api",
  6843. flag_descriptions::kEnableBluetoothSerialPortProfileInSerialApiName,
  6844. flag_descriptions::kEnableBluetoothSerialPortProfileInSerialApiDescription,
  6845. kOsDesktop,
  6846. SINGLE_VALUE_TYPE(switches::kEnableBluetoothSerialPortProfileInSerialApi)},
  6847. {"password-view-page-in-settings",
  6848. flag_descriptions::kPasswordViewPageInSettingsName,
  6849. flag_descriptions::kPasswordViewPageInSettingsDescription, kOsDesktop,
  6850. FEATURE_VALUE_TYPE(
  6851. password_manager::features::kPasswordViewPageInSettings)},
  6852. {"password-notes", flag_descriptions::kPasswordNotesName,
  6853. flag_descriptions::kPasswordNotesDescription, kOsDesktop,
  6854. FEATURE_VALUE_TYPE(password_manager::features::kPasswordNotes)},
  6855. #if BUILDFLAG(IS_CHROMEOS_ASH)
  6856. {"frame-throttle-fps", flag_descriptions::kFrameThrottleFpsName,
  6857. flag_descriptions::kFrameThrottleFpsDescription, kOsCrOS,
  6858. MULTI_VALUE_TYPE(kFrameThrottleFpsChoices)},
  6859. #endif // BUILDFLAG(IS_CHROMEOS_ASH)
  6860. #if BUILDFLAG(IS_ANDROID)
  6861. {"incognito-reauthentication-for-android",
  6862. flag_descriptions::kIncognitoReauthenticationForAndroidName,
  6863. flag_descriptions::kIncognitoReauthenticationForAndroidDescription,
  6864. kOsAndroid,
  6865. FEATURE_VALUE_TYPE(chrome::android::kIncognitoReauthenticationForAndroid)},
  6866. #endif
  6867. {"consolidated-site-storage-controls",
  6868. flag_descriptions::kConsolidatedSiteStorageControlsName,
  6869. flag_descriptions::kConsolidatedSiteStorageControlsDescription, kOsDesktop,
  6870. FEATURE_VALUE_TYPE(features::kConsolidatedSiteStorageControls)},
  6871. #if BUILDFLAG(IS_ANDROID)
  6872. {"enable-surface-control", flag_descriptions::kAndroidSurfaceControlName,
  6873. flag_descriptions::kAndroidSurfaceControlDescription, kOsAndroid,
  6874. FEATURE_VALUE_TYPE(features::kAndroidSurfaceControl)},
  6875. {"enable-image-reader", flag_descriptions::kAImageReaderName,
  6876. flag_descriptions::kAImageReaderDescription, kOsAndroid,
  6877. FEATURE_VALUE_TYPE(features::kAImageReader)},
  6878. #endif // BUILDFLAG(IS_ANDROID)
  6879. #if BUILDFLAG(IS_ANDROID)
  6880. {"smart-suggestion-for-large-downloads",
  6881. flag_descriptions::kSmartSuggestionForLargeDownloadsName,
  6882. flag_descriptions::kSmartSuggestionForLargeDownloadsDescription,
  6883. kOsAndroid,
  6884. FEATURE_VALUE_TYPE(download::features::kSmartSuggestionForLargeDownloads)},
  6885. #endif // BUILDFLAG(IS_ANDROID)
  6886. #if BUILDFLAG(ENABLE_JXL_DECODER)
  6887. {"enable-jxl", flag_descriptions::kEnableJXLName,
  6888. flag_descriptions::kEnableJXLDescription, kOsAll,
  6889. FEATURE_VALUE_TYPE(blink::features::kJXL)},
  6890. #endif // BUILDFLAG(ENABLE_JXL_DECODER)
  6891. #if BUILDFLAG(IS_ANDROID)
  6892. {"messages-for-android-ads-blocked",
  6893. flag_descriptions::kMessagesForAndroidAdsBlockedName,
  6894. flag_descriptions::kMessagesForAndroidAdsBlockedDescription, kOsAndroid,
  6895. FEATURE_VALUE_TYPE(messages::kMessagesForAndroidAdsBlocked)},
  6896. {"messages-for-android-chrome-survey",
  6897. flag_descriptions::kMessagesForAndroidChromeSurveyName,
  6898. flag_descriptions::kMessagesForAndroidChromeSurveyDescription, kOsAndroid,
  6899. FEATURE_VALUE_TYPE(messages::kMessagesForAndroidChromeSurvey)},
  6900. {"messages-for-android-infrastructure",
  6901. flag_descriptions::kMessagesForAndroidInfrastructureName,
  6902. flag_descriptions::kMessagesForAndroidInfrastructureDescription,
  6903. kOsAndroid,
  6904. FEATURE_VALUE_TYPE(messages::kMessagesForAndroidInfrastructure)},
  6905. {"messages-for-android-instant-apps",
  6906. flag_descriptions::kMessagesForAndroidInstantAppsName,
  6907. flag_descriptions::kMessagesForAndroidInstantAppsDescription, kOsAndroid,
  6908. FEATURE_VALUE_TYPE(messages::kMessagesForAndroidInstantApps)},
  6909. {"messages-for-android-near-oom-reduction",
  6910. flag_descriptions::kMessagesForAndroidNearOomReductionName,
  6911. flag_descriptions::kMessagesForAndroidNearOomReductionDescription,
  6912. kOsAndroid,
  6913. FEATURE_VALUE_TYPE(messages::kMessagesForAndroidNearOomReduction)},
  6914. {"messages-for-android-notification-blocked",
  6915. flag_descriptions::kMessagesForAndroidNotificationBlockedName,
  6916. flag_descriptions::kMessagesForAndroidNotificationBlockedDescription,
  6917. kOsAndroid,
  6918. FEATURE_VALUE_TYPE(messages::kMessagesForAndroidNotificationBlocked)},
  6919. {"messages-for-android-offer-notification",
  6920. flag_descriptions::kMessagesForAndroidOfferNotificationName,
  6921. flag_descriptions::kMessagesForAndroidOfferNotificationDescription,
  6922. kOsAndroid,
  6923. FEATURE_VALUE_TYPE(messages::kMessagesForAndroidOfferNotification)},
  6924. {"messages-for-android-passwords",
  6925. flag_descriptions::kMessagesForAndroidPasswordsName,
  6926. flag_descriptions::kMessagesForAndroidPasswordsDescription, kOsAndroid,
  6927. FEATURE_VALUE_TYPE(messages::kMessagesForAndroidPasswords)},
  6928. {"messages-for-android-permission-update",
  6929. flag_descriptions::kMessagesForAndroidPermissionUpdateName,
  6930. flag_descriptions::kMessagesForAndroidPermissionUpdateDescription,
  6931. kOsAndroid,
  6932. FEATURE_VALUE_TYPE(messages::kMessagesForAndroidPermissionUpdate)},
  6933. {"messages-for-android-popup-blocked",
  6934. flag_descriptions::kMessagesForAndroidPopupBlockedName,
  6935. flag_descriptions::kMessagesForAndroidPopupBlockedDescription, kOsAndroid,
  6936. FEATURE_VALUE_TYPE(messages::kMessagesForAndroidPopupBlocked)},
  6937. {"messages-for-android-pwa-install",
  6938. flag_descriptions::kMessagesForAndroidPWAInstallName,
  6939. flag_descriptions::kMessagesForAndroidPWAInstallDescription, kOsAndroid,
  6940. FEATURE_VALUE_TYPE(webapps::features::kInstallableAmbientBadgeMessage)},
  6941. {"messages-for-android-reader-mode",
  6942. flag_descriptions::kMessagesForAndroidReaderModeName,
  6943. flag_descriptions::kMessagesForAndroidReaderModeDescription, kOsAndroid,
  6944. FEATURE_VALUE_TYPE(messages::kMessagesForAndroidReaderMode)},
  6945. {"messages-for-android-safety-tip",
  6946. flag_descriptions::kMessagesForAndroidSafetyTipName,
  6947. flag_descriptions::kMessagesForAndroidSafetyTipDescription, kOsAndroid,
  6948. FEATURE_VALUE_TYPE(messages::kMessagesForAndroidSafetyTip)},
  6949. {"messages-for-android-save-card",
  6950. flag_descriptions::kMessagesForAndroidSaveCardName,
  6951. flag_descriptions::kMessagesForAndroidSaveCardDescription, kOsAndroid,
  6952. FEATURE_VALUE_TYPE(messages::kMessagesForAndroidSaveCard)},
  6953. {"messages-for-android-stacking-animation",
  6954. flag_descriptions::kMessagesForAndroidStackingAnimationName,
  6955. flag_descriptions::kMessagesForAndroidStackingAnimationDescription,
  6956. kOsAndroid,
  6957. FEATURE_VALUE_TYPE(messages::kMessagesForAndroidStackingAnimation)},
  6958. {"messages-for-android-sync-error",
  6959. flag_descriptions::kMessagesForAndroidSyncErrorName,
  6960. flag_descriptions::kMessagesForAndroidSyncErrorDescription, kOsAndroid,
  6961. FEATURE_VALUE_TYPE(messages::kMessagesForAndroidSyncError)},
  6962. {"messages-for-android-update-password",
  6963. flag_descriptions::kMessagesForAndroidUpdatePasswordName,
  6964. flag_descriptions::kMessagesForAndroidUpdatePasswordDescription,
  6965. kOsAndroid,
  6966. FEATURE_VALUE_TYPE(messages::kMessagesForAndroidUpdatePassword)},
  6967. #endif
  6968. #if BUILDFLAG(IS_ANDROID)
  6969. {"android-force-app-language-prompt",
  6970. flag_descriptions::kAndroidForceAppLanguagePromptName,
  6971. flag_descriptions::kAndroidForceAppLanguagePromptDescription, kOsAndroid,
  6972. FEATURE_VALUE_TYPE(language::kForceAppLanguagePrompt)},
  6973. #endif
  6974. #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
  6975. BUILDFLAG(IS_FUCHSIA)
  6976. {"quick-commands", flag_descriptions::kQuickCommandsName,
  6977. flag_descriptions::kQuickCommandsDescription, kOsDesktop,
  6978. FEATURE_VALUE_TYPE(features::kQuickCommands)},
  6979. #endif
  6980. {"pwa-update-dialog-for-icon",
  6981. flag_descriptions::kPwaUpdateDialogForAppIconName,
  6982. flag_descriptions::kPwaUpdateDialogForAppIconDescription, kOsAll,
  6983. FEATURE_VALUE_TYPE(features::kPwaUpdateDialogForIcon)},
  6984. {"pwa-update-dialog-for-name",
  6985. flag_descriptions::kPwaUpdateDialogForAppTitleName,
  6986. flag_descriptions::kPwaUpdateDialogForAppTitleDescription, kOsAll,
  6987. FEATURE_VALUE_TYPE(features::kPwaUpdateDialogForName)},
  6988. #if BUILDFLAG(IS_ANDROID)
  6989. {"sync-android-promos-with-alternative-title",
  6990. flag_descriptions::kSyncAndroidPromosWithAlternativeTitleName,
  6991. flag_descriptions::kSyncAndroidPromosWithAlternativeTitleDescription,
  6992. kOsAndroid,
  6993. FEATURE_VALUE_TYPE(syncer::kSyncAndroidPromosWithAlternativeTitle)},
  6994. #endif
  6995. #if BUILDFLAG(IS_ANDROID)
  6996. {"sync-android-promos-with-illustration",
  6997. flag_descriptions::kSyncAndroidPromosWithIllustrationName,
  6998. flag_descriptions::kSyncAndroidPromosWithIllustrationDescription,
  6999. kOsAndroid,
  7000. FEATURE_VALUE_TYPE(syncer::kSyncAndroidPromosWithIllustration)},
  7001. #endif
  7002. #if BUILDFLAG(IS_ANDROID)
  7003. {"sync-android-promos-with-single-button",
  7004. flag_descriptions::kSyncAndroidPromosWithSingleButtonName,
  7005. flag_descriptions::kSyncAndroidPromosWithSingleButtonDescription,
  7006. kOsAndroid,
  7007. FEATURE_VALUE_TYPE(syncer::kSyncAndroidPromosWithSingleButton)},
  7008. #endif
  7009. #if BUILDFLAG(IS_ANDROID)
  7010. {"sync-android-promos-with-title",
  7011. flag_descriptions::kSyncAndroidPromosWithTitleName,
  7012. flag_descriptions::kSyncAndroidPromosWithTitleDescription, kOsAndroid,
  7013. FEATURE_VALUE_TYPE(syncer::kSyncAndroidPromosWithTitle)},
  7014. #endif
  7015. #if BUILDFLAG(ENABLE_OOP_PRINTING)
  7016. {"enable-oop-print-drivers", flag_descriptions::kEnableOopPrintDriversName,
  7017. flag_descriptions::kEnableOopPrintDriversDescription, kOsDesktop,
  7018. FEATURE_VALUE_TYPE(printing::features::kEnableOopPrintDrivers)},
  7019. #endif
  7020. {"enable-browsing-data-lifetime-manager",
  7021. flag_descriptions::kEnableBrowsingDataLifetimeManagerName,
  7022. flag_descriptions::kEnableBrowsingDataLifetimeManagerDescription, kOsAll,
  7023. FEATURE_VALUE_TYPE(
  7024. browsing_data::features::kEnableBrowsingDataLifetimeManager)},
  7025. {"privacy-sandbox-v3-desktop", flag_descriptions::kPrivacySandboxV3Name,
  7026. flag_descriptions::kPrivacySandboxV3Description, kOsDesktop,
  7027. // Use a command-line parameter instead of a FEATURE_VALUE_TYPE to enable
  7028. // multiple related features.
  7029. SINGLE_VALUE_TYPE_AND_VALUE(
  7030. switches::kEnableFeatures,
  7031. "PrivacySandboxSettings3:"
  7032. "disable-dialog-for-testing/true/show-sample-data/true,"
  7033. "EnableFetchingAccountCapabilities,InterestGroupStorage,"
  7034. "AdInterestGroupAPI,Fledge,FencedFrames")},
  7035. {"privacy-sandbox-v3-android", flag_descriptions::kPrivacySandboxV3Name,
  7036. flag_descriptions::kPrivacySandboxV3Description, kOsAndroid,
  7037. // Use a command-line parameter instead of a FEATURE_VALUE_TYPE to enable
  7038. // multiple related features when they are available.
  7039. SINGLE_VALUE_TYPE_AND_VALUE(
  7040. switches::kEnableFeatures,
  7041. "PrivacySandboxSettings3:"
  7042. "disable-dialog-for-testing/true/show-sample-data/true,"
  7043. "EnableFetchingAccountCapabilities,InterestGroupStorage,"
  7044. "AdInterestGroupAPI,Fledge,FencedFrames")},
  7045. {"privacy-sandbox-ads-apis",
  7046. flag_descriptions::kPrivacySandboxAdsAPIsOverrideName,
  7047. flag_descriptions::kPrivacySandboxAdsAPIsOverrideDescription, kOsAll,
  7048. // Use a command-line parameter instead of a FEATURE_VALUE_TYPE to enable
  7049. // multiple related features when they are available.
  7050. SINGLE_VALUE_TYPE_AND_VALUE(switches::kEnableFeatures,
  7051. "PrivacySandboxAdsAPIsOverride,"
  7052. "InterestGroupStorage,Fledge,"
  7053. "BiddingAndScoringDebugReportingAPI,"
  7054. "AllowURNsInIframes,BrowsingTopics,"
  7055. "ConversionMeasurement,FencedFrames,"
  7056. "OverridePrivacySandboxSettingsLocalTesting,"
  7057. "SharedStorageAPI")},
  7058. #if BUILDFLAG(IS_ANDROID)
  7059. {"site-data-improvements", flag_descriptions::kSiteDataImprovementsName,
  7060. flag_descriptions::kSiteDataImprovementsDescription, kOsAndroid,
  7061. FEATURE_VALUE_TYPE(browser_ui::kSiteDataImprovements)},
  7062. #endif // BUILDFLAG(IS_ANDROID)
  7063. {"animated-image-resume", flag_descriptions::kAnimatedImageResumeName,
  7064. flag_descriptions::kAnimatedImageResumeDescription, kOsAll,
  7065. FEATURE_VALUE_TYPE(features::kAnimatedImageResume)},
  7066. #if !BUILDFLAG(IS_ANDROID)
  7067. {"sct-auditing", flag_descriptions::kSCTAuditingName,
  7068. flag_descriptions::kSCTAuditingDescription, kOsDesktop,
  7069. FEATURE_WITH_PARAMS_VALUE_TYPE(features::kSCTAuditing,
  7070. kSCTAuditingVariations,
  7071. "SCTAuditingVariations")},
  7072. #endif // !BUILDFLAG(IS_ANDROID)
  7073. #if BUILDFLAG(IS_ANDROID)
  7074. {"incognito-screenshot", flag_descriptions::kIncognitoScreenshotName,
  7075. flag_descriptions::kIncognitoScreenshotDescription, kOsAndroid,
  7076. FEATURE_VALUE_TYPE(chrome::android::kIncognitoScreenshot)},
  7077. {"incognito-downloads-warning",
  7078. flag_descriptions::kIncognitoDownloadsWarningName,
  7079. flag_descriptions::kIncognitoDownloadsWarningDescription, kOsAndroid,
  7080. FEATURE_VALUE_TYPE(features::kIncognitoDownloadsWarning)},
  7081. #endif
  7082. {"incognito-ntp-revamp", flag_descriptions::kIncognitoNtpRevampName,
  7083. flag_descriptions::kIncognitoNtpRevampDescription, kOsAll,
  7084. FEATURE_VALUE_TYPE(features::kIncognitoNtpRevamp)},
  7085. {"use-first-party-set", flag_descriptions::kUseFirstPartySetName,
  7086. flag_descriptions::kUseFirstPartySetDescription, kOsAll,
  7087. ORIGIN_LIST_VALUE_TYPE(network::switches::kUseFirstPartySet, "")},
  7088. {"check-offline-capability", flag_descriptions::kCheckOfflineCapabilityName,
  7089. flag_descriptions::kCheckOfflineCapabilityDescription, kOsAll,
  7090. FEATURE_WITH_PARAMS_VALUE_TYPE(blink::features::kCheckOfflineCapability,
  7091. kCheckOfflineCapabilityVariations,
  7092. "CheckOfflineCapability")},
  7093. {"deferred-font-shaping", flag_descriptions::kDeferredFontShapingName,
  7094. flag_descriptions::kDeferredFontShapingDescription, kOsAll,
  7095. FEATURE_VALUE_TYPE(blink::features::kDeferredFontShaping)},
  7096. {"permission-predictions", flag_descriptions::kPermissionPredictionsName,
  7097. flag_descriptions::kPermissionPredictionsDescription, kOsAll,
  7098. FEATURE_VALUE_TYPE(features::kPermissionPredictions)},
  7099. {"show-performance-metrics-hud",
  7100. flag_descriptions::kShowPerformanceMetricsHudName,
  7101. flag_descriptions::kShowPerformanceMetricsHudDescription, kOsAll,
  7102. FEATURE_VALUE_TYPE(features::kHudDisplayForPerformanceMetrics)},
  7103. #if BUILDFLAG(IS_CHROMEOS_ASH)
  7104. {"disable-buffer-bw-compression",
  7105. flag_descriptions::kDisableBufferBWCompressionName,
  7106. flag_descriptions::kDisableBufferBWCompressionDescription, kOsCrOS,
  7107. SINGLE_VALUE_TYPE(switches::kDisableBufferBWCompression)},
  7108. #endif // BUILDFLAG(IS_CHROMEOS_ASH)
  7109. {"enable-prerender2", flag_descriptions::kPrerender2Name,
  7110. flag_descriptions::kPrerender2Description, kOsAll,
  7111. FEATURE_VALUE_TYPE(blink::features::kPrerender2)},
  7112. {"omnibox-trigger-for-prerender2",
  7113. flag_descriptions::kOmniboxTriggerForPrerender2Name,
  7114. flag_descriptions::kOmniboxTriggerForPrerender2Description, kOsAll,
  7115. FEATURE_VALUE_TYPE(features::kOmniboxTriggerForPrerender2)},
  7116. {"search-suggestion-for-prerender2",
  7117. flag_descriptions::kSupportSearchSuggestionForPrerender2Name,
  7118. flag_descriptions::kSupportSearchSuggestionForPrerender2Description,
  7119. kOsAll,
  7120. FEATURE_WITH_PARAMS_VALUE_TYPE(
  7121. features::kSupportSearchSuggestionForPrerender2,
  7122. kSearchSuggsetionPrerenderTypeVariations,
  7123. "SearchSuggestionPrerender")},
  7124. {"chrome-labs", flag_descriptions::kChromeLabsName,
  7125. flag_descriptions::kChromeLabsDescription, kOsDesktop,
  7126. FEATURE_VALUE_TYPE(features::kChromeLabs)},
  7127. {"enable-first-party-sets", flag_descriptions::kEnableFirstPartySetsName,
  7128. flag_descriptions::kEnableFirstPartySetsDescription, kOsAll,
  7129. FEATURE_VALUE_TYPE(features::kFirstPartySets)},
  7130. #if BUILDFLAG(IS_ANDROID)
  7131. {"autofill-enable-offers-in-clank-keyboard-accessory",
  7132. flag_descriptions::kAutofillEnableOffersInClankKeyboardAccessoryName,
  7133. flag_descriptions::
  7134. kAutofillEnableOffersInClankKeyboardAccessoryDescription,
  7135. kOsAndroid,
  7136. FEATURE_VALUE_TYPE(
  7137. autofill::features::kAutofillEnableOffersInClankKeyboardAccessory)},
  7138. #endif
  7139. #if BUILDFLAG(ENABLE_PDF)
  7140. #if !BUILDFLAG(IS_ANDROID)
  7141. {"pdf-ocr", flag_descriptions::kPdfOcrName,
  7142. flag_descriptions::kPdfOcrDescription, kOsDesktop,
  7143. FEATURE_VALUE_TYPE(features::kPdfOcr)},
  7144. #endif // !BUILDFLAG(IS_ANDROID)
  7145. {"pdf-xfa-forms", flag_descriptions::kPdfXfaFormsName,
  7146. flag_descriptions::kPdfXfaFormsDescription, kOsDesktop,
  7147. FEATURE_VALUE_TYPE(chrome_pdf::features::kPdfXfaSupport)},
  7148. #endif // BUILDFLAG(ENABLE_PDF)
  7149. {"send-tab-to-self-signin-promo",
  7150. flag_descriptions::kSendTabToSelfSigninPromoName,
  7151. flag_descriptions::kSendTabToSelfSigninPromoDescription, kOsAll,
  7152. FEATURE_VALUE_TYPE(send_tab_to_self::kSendTabToSelfSigninPromo)},
  7153. #if BUILDFLAG(IS_ANDROID)
  7154. {"send-tab-to-self-v2", flag_descriptions::kSendTabToSelfV2Name,
  7155. flag_descriptions::kSendTabToSelfV2Description, kOsAndroid,
  7156. FEATURE_VALUE_TYPE(send_tab_to_self::kSendTabToSelfV2)},
  7157. #endif // BUILDFLAG(IS_ANDROID)
  7158. #if BUILDFLAG(IS_WIN)
  7159. {"raw-audio-capture", flag_descriptions::kRawAudioCaptureName,
  7160. flag_descriptions::kRawAudioCaptureDescription, kOsWin,
  7161. FEATURE_VALUE_TYPE(media::kWasapiRawAudioCapture)},
  7162. #endif // BUILDFLAG(IS_WIN)
  7163. {"enable-managed-configuration-web-api",
  7164. flag_descriptions::kEnableManagedConfigurationWebApiName,
  7165. flag_descriptions::kEnableManagedConfigurationWebApiDescription, kOsCrOS,
  7166. FEATURE_VALUE_TYPE(blink::features::kManagedConfiguration)},
  7167. {"enable-restricted-web-apis",
  7168. flag_descriptions::kEnableRestrictedWebApisName,
  7169. flag_descriptions::kEnableRestrictedWebApisDescription, kOsCrOS,
  7170. FEATURE_VALUE_TYPE(features::kEnableRestrictedWebApis)},
  7171. {"clear-cross-site-cross-browsing-context-group-window-name",
  7172. flag_descriptions::kClearCrossSiteCrossBrowsingContextGroupWindowNameName,
  7173. flag_descriptions::
  7174. kClearCrossSiteCrossBrowsingContextGroupWindowNameDescription,
  7175. kOsAll,
  7176. FEATURE_VALUE_TYPE(
  7177. features::kClearCrossSiteCrossBrowsingContextGroupWindowName)},
  7178. #if BUILDFLAG(IS_CHROMEOS_ASH)
  7179. {kPersonalizationHubInternalName,
  7180. flag_descriptions::kPersonalizationHubName,
  7181. flag_descriptions::kPersonalizationHubDescription, kOsCrOS,
  7182. FEATURE_VALUE_TYPE(ash::features::kPersonalizationHub)},
  7183. {kWallpaperFastRefreshInternalName,
  7184. flag_descriptions::kWallpaperFastRefreshName,
  7185. flag_descriptions::kWallpaperFastRefreshDescription, kOsCrOS,
  7186. FEATURE_VALUE_TYPE(ash::features::kWallpaperFastRefresh)},
  7187. {kWallpaperFullScreenPreviewInternalName,
  7188. flag_descriptions::kWallpaperFullScreenPreviewName,
  7189. flag_descriptions::kWallpaperFullScreenPreviewDescription, kOsCrOS,
  7190. FEATURE_VALUE_TYPE(ash::features::kWallpaperFullScreenPreview)},
  7191. {kWallpaperGooglePhotosIntegrationInternalName,
  7192. flag_descriptions::kWallpaperGooglePhotosIntegrationName,
  7193. flag_descriptions::kWallpaperGooglePhotosIntegrationDescription, kOsCrOS,
  7194. FEATURE_VALUE_TYPE(ash::features::kWallpaperGooglePhotosIntegration)},
  7195. {kWallpaperPerDeskName, flag_descriptions::kWallpaperPerDeskName,
  7196. flag_descriptions::kWallpaperPerDeskDescription, kOsCrOS,
  7197. FEATURE_VALUE_TYPE(ash::features::kWallpaperPerDesk)},
  7198. #endif // BUILDFLAG(IS_CHROMEOS_ASH)
  7199. #if BUILDFLAG(IS_CHROMEOS)
  7200. {"enable-vaapi-av1-decode-acceleration",
  7201. flag_descriptions::kVaapiAV1DecoderName,
  7202. flag_descriptions::kVaapiAV1DecoderDescription, kOsCrOS | kOsLacros,
  7203. FEATURE_VALUE_TYPE(media::kVaapiAV1Decoder)},
  7204. {"default-chrome-apps-migration",
  7205. flag_descriptions::kDefaultChromeAppsMigrationName,
  7206. flag_descriptions::kDefaultChromeAppsMigrationDescription, kOsCrOS,
  7207. FEATURE_VALUE_TYPE(policy::features::kDefaultChromeAppsMigration)},
  7208. {"messages-preinstall", flag_descriptions::kMessagesPreinstallName,
  7209. flag_descriptions::kMessagesPreinstallDescription, kOsCrOS,
  7210. FEATURE_VALUE_TYPE(web_app::kMessagesPreinstall)},
  7211. #endif // BUILDFLAG(IS_CHROMEOS)
  7212. #if defined(ARCH_CPU_X86_FAMILY) && BUILDFLAG(IS_CHROMEOS)
  7213. // TODO(b/214589754): revisit the need for this flag when the final design
  7214. // for HW encoding is implemented for lacros-chrome.
  7215. {"enable-vaapi-vp9-kSVC-encode-acceleration",
  7216. flag_descriptions::kVaapiVP9kSVCEncoderName,
  7217. flag_descriptions::kVaapiVP9kSVCEncoderDescription, kOsCrOS | kOsLacros,
  7218. FEATURE_VALUE_TYPE(media::kVaapiVp9kSVCHWEncoding)},
  7219. #endif // defined(ARCH_CPU_X86_FAMILY) && BUILDFLAG(IS_CHROMEOS)
  7220. {"enable-global-vaapi-lock", flag_descriptions::kGlobalVaapiLockName,
  7221. flag_descriptions::kGlobalVaapiLockDescription,
  7222. kOsCrOS | kOsLinux | kOsLacros,
  7223. FEATURE_VALUE_TYPE(media::kGlobalVaapiLock)},
  7224. {"enable-vp9-kSVC-decode-acceleration",
  7225. flag_descriptions::kVp9kSVCHWDecodingName,
  7226. flag_descriptions::kVp9kSVCHWDecodingDescription, kOsAll,
  7227. FEATURE_VALUE_TYPE(media::kVp9kSVCHWDecoding)},
  7228. #if BUILDFLAG(IS_WIN) || \
  7229. (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) || \
  7230. BUILDFLAG(IS_MAC) || BUILDFLAG(IS_FUCHSIA)
  7231. {
  7232. "ui-debug-tools",
  7233. flag_descriptions::kUIDebugToolsName,
  7234. flag_descriptions::kUIDebugToolsDescription,
  7235. kOsWin | kOsLinux | kOsLacros | kOsMac | kOsFuchsia,
  7236. FEATURE_VALUE_TYPE(features::kUIDebugTools),
  7237. },
  7238. {"desktop-detailed-language-settings",
  7239. flag_descriptions::kDesktopDetailedLanguageSettingsName,
  7240. flag_descriptions::kDesktopDetailedLanguageSettingsDescription,
  7241. kOsWin | kOsLinux | kOsLacros | kOsMac | kOsFuchsia,
  7242. FEATURE_VALUE_TYPE(language::kDesktopDetailedLanguageSettings)},
  7243. {"sync-promo-after-signin-intercept",
  7244. flag_descriptions::kSyncPromoAfterSigninInterceptName,
  7245. flag_descriptions::kSyncPromoAfterSigninInterceptDescription,
  7246. kOsWin | kOsLinux | kOsLacros | kOsMac | kOsFuchsia,
  7247. FEATURE_VALUE_TYPE(kSyncPromoAfterSigninIntercept)},
  7248. {"signin-intercept-bubble-v2",
  7249. flag_descriptions::kSigninInterceptBubbleV2Name,
  7250. flag_descriptions::kSigninInterceptBubbleV2Description,
  7251. kOsWin | kOsLinux | kOsLacros | kOsMac | kOsFuchsia,
  7252. FEATURE_VALUE_TYPE(kSigninInterceptBubbleV2)},
  7253. #endif
  7254. {"http-cache-partitioning",
  7255. flag_descriptions::kSplitCacheByNetworkIsolationKeyName,
  7256. flag_descriptions::kSplitCacheByNetworkIsolationKeyDescription,
  7257. kOsWin | kOsLinux | kOsLacros | kOsMac | kOsCrOS | kOsAndroid | kOsFuchsia,
  7258. FEATURE_VALUE_TYPE(net::features::kSplitCacheByNetworkIsolationKey)},
  7259. {"autofill-address-save-prompt",
  7260. flag_descriptions::kEnableAutofillAddressSavePromptName,
  7261. flag_descriptions::kEnableAutofillAddressSavePromptDescription,
  7262. kOsWin | kOsMac | kOsLinux | kOsLacros | kOsCrOS | kOsAndroid | kOsFuchsia,
  7263. FEATURE_VALUE_TYPE(autofill::features::kAutofillAddressProfileSavePrompt)},
  7264. #if BUILDFLAG(IS_ANDROID)
  7265. {"content-languages-in-language-picker",
  7266. flag_descriptions::kContentLanguagesInLanguagePickerName,
  7267. flag_descriptions::kContentLanguagesInLanguagePickerDescription,
  7268. kOsAndroid,
  7269. FEATURE_WITH_PARAMS_VALUE_TYPE(language::kContentLanguagesInLanguagePicker,
  7270. kContentLanguagesInLanguaePickerVariations,
  7271. "ContentLanguagesInLanguagePicker")},
  7272. #endif
  7273. {"filling-across-affiliated-websites",
  7274. flag_descriptions::kFillingAcrossAffiliatedWebsitesName,
  7275. flag_descriptions::kFillingAcrossAffiliatedWebsitesDescription, kOsAll,
  7276. FEATURE_VALUE_TYPE(
  7277. password_manager::features::kFillingAcrossAffiliatedWebsites)},
  7278. {"draw-predicted-ink-point", flag_descriptions::kDrawPredictedPointsName,
  7279. flag_descriptions::kDrawPredictedPointsDescription, kOsAll,
  7280. FEATURE_WITH_PARAMS_VALUE_TYPE(features::kDrawPredictedInkPoint,
  7281. kDrawPredictedPointVariations,
  7282. "DrawPredictedInkPoint")},
  7283. {flag_descriptions::kTabSearchMediaTabsId,
  7284. flag_descriptions::kTabSearchMediaTabsName,
  7285. flag_descriptions::kTabSearchMediaTabsDescription, kOsDesktop,
  7286. FEATURE_WITH_PARAMS_VALUE_TYPE(features::kTabSearchMediaTabs,
  7287. kTabSearchMediaTabsVariations,
  7288. "TabSearchMediaTabs")},
  7289. #if BUILDFLAG(IS_ANDROID)
  7290. {"optimization-guide-push-notifications",
  7291. flag_descriptions::kOptimizationGuidePushNotificationName,
  7292. flag_descriptions::kOptimizationGuidePushNotificationDescription,
  7293. kOsAndroid,
  7294. FEATURE_VALUE_TYPE(optimization_guide::features::kPushNotifications)},
  7295. #endif
  7296. {"media-session-webrtc", flag_descriptions::kMediaSessionWebRTCName,
  7297. flag_descriptions::kMediaSessionWebRTCDescription, kOsAll,
  7298. FEATURE_VALUE_TYPE(media::kMediaSessionWebRTC)},
  7299. {"fedcm", flag_descriptions::kFedCmName,
  7300. flag_descriptions::kFedCmDescription, kOsAll,
  7301. FEATURE_WITH_PARAMS_VALUE_TYPE(features::kFedCm,
  7302. kFedCmFeatureVariations,
  7303. "FedCmFeatureVariations")},
  7304. #if BUILDFLAG(IS_CHROMEOS_ASH)
  7305. {"bluetooth-sessionized-metrics",
  7306. flag_descriptions::kBluetoothSessionizedMetricsName,
  7307. flag_descriptions::kBluetoothSessionizedMetricsDescription, kOsCrOS,
  7308. FEATURE_VALUE_TYPE(metrics::structured::kBluetoothSessionizedMetrics)},
  7309. #endif
  7310. {"subframe-shutdown-delay", flag_descriptions::kSubframeShutdownDelayName,
  7311. flag_descriptions::kSubframeShutdownDelayDescription, kOsDesktop,
  7312. FEATURE_VALUE_TYPE(features::kSubframeShutdownDelay)},
  7313. {"autofill-parse-merchant-promo-code-fields",
  7314. flag_descriptions::kAutofillParseMerchantPromoCodeFieldsName,
  7315. flag_descriptions::kAutofillParseMerchantPromoCodeFieldsDescription,
  7316. kOsAll,
  7317. FEATURE_VALUE_TYPE(
  7318. autofill::features::kAutofillParseMerchantPromoCodeFields)},
  7319. {"autofill-highlight-only-changed-value-in-preview-mode",
  7320. flag_descriptions::kAutofillHighlightOnlyChangedValuesInPreviewModeName,
  7321. flag_descriptions::
  7322. kAutofillHighlightOnlyChangedValuesInPreviewModeDescription,
  7323. kOsDesktop,
  7324. FEATURE_VALUE_TYPE(
  7325. autofill::features::kAutofillHighlightOnlyChangedValuesInPreviewMode)},
  7326. {"sanitizer-api", flag_descriptions::kSanitizerApiName,
  7327. flag_descriptions::kSanitizerApiDescription, kOsAll,
  7328. FEATURE_VALUE_TYPE(blink::features::kSanitizerAPI)},
  7329. {"sanitizer-api-v0", flag_descriptions::kSanitizerApiv0Name,
  7330. flag_descriptions::kSanitizerApiv0Description, kOsAll,
  7331. FEATURE_VALUE_TYPE(blink::features::kSanitizerAPIv0)},
  7332. #if BUILDFLAG(IS_CHROMEOS_ASH)
  7333. {"productivity-reorder-apps", flag_descriptions::kLauncherAppSortName,
  7334. flag_descriptions::kLauncherAppSortDescription, kOsCrOS,
  7335. FEATURE_VALUE_TYPE(chromeos::features::kLauncherAppSort)},
  7336. #endif
  7337. #if BUILDFLAG(IS_CHROMEOS_ASH)
  7338. {"enable-input-event-logging",
  7339. flag_descriptions::kEnableInputEventLoggingName,
  7340. flag_descriptions::kEnableInputEventLoggingDescription, kOsCrOS,
  7341. FEATURE_VALUE_TYPE(ui::kEnableInputEventLogging)},
  7342. #endif
  7343. {"autofill-enable-sticky-manual-fallback-for-cards",
  7344. flag_descriptions::kAutofillEnableStickyManualFallbackForCardsName,
  7345. flag_descriptions::kAutofillEnableStickyManualFallbackForCardsDescription,
  7346. kOsAndroid,
  7347. FEATURE_VALUE_TYPE(
  7348. autofill::features::kAutofillEnableStickyManualFallbackForCards)},
  7349. {"autofill-auto-trigger-manual-fallback-for-cards",
  7350. flag_descriptions::kAutofillAutoTriggerManualFallbackForCardsName,
  7351. flag_descriptions::kAutofillAutoTriggerManualFallbackForCardsDescription,
  7352. kOsAndroid,
  7353. FEATURE_VALUE_TYPE(
  7354. autofill::features::kAutofillAutoTriggerManualFallbackForCards)},
  7355. {"autofill-prevent-overriding-prefilled-values",
  7356. flag_descriptions::kAutofillPreventOverridingPrefilledValuesName,
  7357. flag_descriptions::kAutofillPreventOverridingPrefilledValuesDescription,
  7358. kOsDesktop | kOsAndroid,
  7359. FEATURE_VALUE_TYPE(
  7360. autofill::features::kAutofillPreventOverridingPrefilledValues)},
  7361. {"autofill-show-manual-fallbacks-in-context-menu",
  7362. flag_descriptions::kAutofillShowManualFallbackInContextMenuName,
  7363. flag_descriptions::kAutofillShowManualFallbackInContextMenuDescription,
  7364. kOsDesktop,
  7365. FEATURE_VALUE_TYPE(
  7366. autofill::features::kAutofillShowManualFallbackInContextMenu)},
  7367. {flag_descriptions::kEnableLensFullscreenSearchFlagId,
  7368. flag_descriptions::kEnableLensFullscreenSearchName,
  7369. flag_descriptions::kEnableLensFullscreenSearchDescription, kOsDesktop,
  7370. FEATURE_VALUE_TYPE(lens::features::kLensSearchOptimizations)},
  7371. {flag_descriptions::kEnableLensStandaloneFlagId,
  7372. flag_descriptions::kEnableLensStandaloneName,
  7373. flag_descriptions::kEnableLensStandaloneDescription, kOsDesktop,
  7374. FEATURE_WITH_PARAMS_VALUE_TYPE(lens::features::kLensStandalone,
  7375. kLensStandaloneVariations,
  7376. "GoogleLensDesktopContextMenuSearch")},
  7377. #if BUILDFLAG(IS_CHROMEOS_ASH)
  7378. {"enable-log-controller-for-diagnostics-app",
  7379. flag_descriptions::kEnableLogControllerForDiagnosticsAppName,
  7380. flag_descriptions::kEnableLogControllerForDiagnosticsAppDescription,
  7381. kOsCrOS,
  7382. FEATURE_VALUE_TYPE(
  7383. chromeos::features::kEnableLogControllerForDiagnosticsApp)},
  7384. #endif // BUILDFLAG(IS_CHROMEOS_ASH)
  7385. {"enable-penetrating-image-selection",
  7386. flag_descriptions::kEnablePenetratingImageSelectionName,
  7387. flag_descriptions::kEnablePenetratingImageSelectionDescription, kOsAll,
  7388. FEATURE_VALUE_TYPE(blink::features::kEnablePenetratingImageSelection)},
  7389. #if BUILDFLAG(IS_ANDROID)
  7390. {"biometric-reauth-password-filling",
  7391. flag_descriptions::kBiometricReauthForPasswordFillingName,
  7392. flag_descriptions::kBiometricReauthForPasswordFillingDescription,
  7393. kOsAndroid,
  7394. FEATURE_VALUE_TYPE(password_manager::features::kBiometricTouchToFill)},
  7395. {"touch-to-fill-password-submission",
  7396. flag_descriptions::kTouchToFillPasswordSubmissionName,
  7397. flag_descriptions::kTouchToFillPasswordSubmissionDescription, kOsAndroid,
  7398. FEATURE_WITH_PARAMS_VALUE_TYPE(
  7399. password_manager::features::kTouchToFillPasswordSubmission,
  7400. kTouchToFillPasswordSubmissionVariations,
  7401. "TouchToFillPasswordSubmission")},
  7402. {"fast-checkout", flag_descriptions::kFastCheckoutName,
  7403. flag_descriptions::kFastCheckoutDescription, kOsAndroid,
  7404. FEATURE_VALUE_TYPE(features::kFastCheckout)},
  7405. #endif
  7406. #if BUILDFLAG(IS_CHROMEOS_ASH)
  7407. {"enable-keyboard-backlight-toggle",
  7408. flag_descriptions::kEnableKeyboardBacklightToggleName,
  7409. flag_descriptions::kEnableKeyboardBacklightToggleDescription, kOsCrOS,
  7410. FEATURE_VALUE_TYPE(chromeos::features::kEnableKeyboardBacklightToggle)},
  7411. #endif // BUILDFLAG(IS_CHROMEOS_ASH)
  7412. {"update-history-entry-points-in-incognito",
  7413. flag_descriptions::kUpdateHistoryEntryPointsInIncognitoName,
  7414. flag_descriptions::kUpdateHistoryEntryPointsInIncognitoDescription, kOsAll,
  7415. FEATURE_VALUE_TYPE(features::kUpdateHistoryEntryPointsInIncognito)},
  7416. {"throttle-foreground-timers",
  7417. flag_descriptions::kThrottleForegroundTimersName,
  7418. flag_descriptions::kThrottleForegroundTimersDescription,
  7419. kOsDesktop | kOsAndroid,
  7420. FEATURE_VALUE_TYPE(blink::features::kThrottleForegroundTimers)},
  7421. {"align-wakeups", flag_descriptions::kAlignWakeUpsName,
  7422. flag_descriptions::kAlignWakeUpsDescription, kOsAll,
  7423. FEATURE_VALUE_TYPE(base::kAlignWakeUps)},
  7424. {"enable-throttle-display-none-and-visibility-hidden-cross-origin-iframes",
  7425. flag_descriptions::
  7426. kThrottleDisplayNoneAndVisibilityHiddenCrossOriginIframesName,
  7427. flag_descriptions::
  7428. kThrottleDisplayNoneAndVisibilityHiddenCrossOriginIframesDescription,
  7429. kOsDesktop | kOsAndroid,
  7430. FEATURE_VALUE_TYPE(
  7431. blink::features::
  7432. kThrottleDisplayNoneAndVisibilityHiddenCrossOriginIframes)},
  7433. #if BUILDFLAG(IS_CHROMEOS_ASH)
  7434. {"enable-input-in-diagnostics-app",
  7435. flag_descriptions::kEnableInputInDiagnosticsAppName,
  7436. flag_descriptions::kEnableInputInDiagnosticsAppDescription, kOsCrOS,
  7437. FEATURE_VALUE_TYPE(chromeos::features::kEnableInputInDiagnosticsApp)},
  7438. #endif // BUILDFLAG(IS_CHROMEOS_ASH)
  7439. {"use-passthrough-command-decoder",
  7440. flag_descriptions::kUsePassthroughCommandDecoderName,
  7441. flag_descriptions::kUsePassthroughCommandDecoderDescription,
  7442. kOsMac | kOsLinux | kOsLacros | kOsCrOS | kOsAndroid | kOsFuchsia,
  7443. FEATURE_VALUE_TYPE(features::kDefaultPassthroughCommandDecoder)},
  7444. #if BUILDFLAG(IS_CHROMEOS_ASH)
  7445. {"focus-follows-cursor", flag_descriptions::kFocusFollowsCursorName,
  7446. flag_descriptions::kFocusFollowsCursorDescription, kOsCrOS,
  7447. FEATURE_VALUE_TYPE(::features::kFocusFollowsCursor)},
  7448. #endif // BUILDFLAG(IS_CHROMEOS_ASH)
  7449. {"password-strength-indicator",
  7450. flag_descriptions::kPasswordStrengthIndicatorName,
  7451. flag_descriptions::kPasswordStrengthIndicatorDescription, kOsDesktop,
  7452. FEATURE_VALUE_TYPE(
  7453. password_manager::features::kPasswordStrengthIndicator)},
  7454. #if BUILDFLAG(IS_CHROMEOS_ASH)
  7455. {"partial-split", flag_descriptions::kPartialSplit,
  7456. flag_descriptions::kPartialSplitDescription, kOsCrOS,
  7457. FEATURE_VALUE_TYPE(ash::features::kPartialSplit)},
  7458. #endif // BUILDFLAG(IS_CHROMEOS_ASH)
  7459. #if BUILDFLAG(IS_CHROMEOS_ASH)
  7460. {"performant-split-view-resizing",
  7461. flag_descriptions::kPerformantSplitViewResizing,
  7462. flag_descriptions::kPerformantSplitViewResizingDescription, kOsCrOS,
  7463. FEATURE_VALUE_TYPE(ash::features::kPerformantSplitViewResizing)},
  7464. #endif // BUILDFLAG(IS_CHROMEOS_ASH)
  7465. {"privacy-guide-2", flag_descriptions::kPrivacyGuide2Name,
  7466. flag_descriptions::kPrivacyGuide2Description, kOsDesktop,
  7467. FEATURE_VALUE_TYPE(features::kPrivacyGuide2)},
  7468. #if BUILDFLAG(IS_ANDROID)
  7469. {"privacy-guide-android", flag_descriptions::kPrivacyGuideAndroidName,
  7470. flag_descriptions::kPrivacyGuideAndroidDescription, kOsAndroid,
  7471. FEATURE_VALUE_TYPE(features::kPrivacyGuideAndroid)},
  7472. #endif
  7473. #if BUILDFLAG(IS_ANDROID)
  7474. {"google-mobile-services-passwords",
  7475. flag_descriptions::kUnifiedPasswordManagerAndroidName,
  7476. flag_descriptions::kUnifiedPasswordManagerAndroidDescription, kOsAndroid,
  7477. FEATURE_WITH_PARAMS_VALUE_TYPE(
  7478. password_manager::features::kUnifiedPasswordManagerAndroid,
  7479. kUnifiedPasswordManagerAndroidVariations,
  7480. "UnifiedPasswordManagerAndroid")},
  7481. #endif
  7482. #if !BUILDFLAG(IS_ANDROID)
  7483. {"unified-password-manager-desktop",
  7484. flag_descriptions::kUnifiedPasswordManagerDesktopName,
  7485. flag_descriptions::kUnifiedPasswordManagerDesktopDescription, kOsDesktop,
  7486. FEATURE_VALUE_TYPE(
  7487. password_manager::features::kUnifiedPasswordManagerDesktop)},
  7488. #endif
  7489. {"extension-workflow-justification",
  7490. flag_descriptions::kExtensionWorkflowJustificationName,
  7491. flag_descriptions::kExtensionWorkflowJustificationDescription, kOsDesktop,
  7492. FEATURE_VALUE_TYPE(features::kExtensionWorkflowJustification)},
  7493. {"tab-search-fuzzy-search", flag_descriptions::kTabSearchFuzzySearchName,
  7494. flag_descriptions::kTabSearchFuzzySearchDescription, kOsDesktop,
  7495. FEATURE_WITH_PARAMS_VALUE_TYPE(features::kTabSearchFuzzySearch,
  7496. kTabSearchSearchThresholdVariations,
  7497. "TabSearchFuzzySearch")},
  7498. {"chrome-whats-new-ui", flag_descriptions::kChromeWhatsNewUIName,
  7499. flag_descriptions::kChromeWhatsNewUIDescription, kOsDesktop,
  7500. FEATURE_VALUE_TYPE(features::kChromeWhatsNewUI)},
  7501. #if BUILDFLAG(GOOGLE_CHROME_BRANDING)
  7502. {"chrome-whats-new-in-main-menu-new-badge",
  7503. flag_descriptions::kChromeWhatsNewInMainMenuNewBadgeName,
  7504. flag_descriptions::kChromeWhatsNewInMainMenuNewBadgeDescription,
  7505. kOsDesktop,
  7506. FEATURE_VALUE_TYPE(features::kChromeWhatsNewInMainMenuNewBadge)},
  7507. #endif // BUILDFLAG(GOOGLE_CHROME_BRANDING)
  7508. {"sync-trusted-vault-passphrase-promo",
  7509. flag_descriptions::kSyncTrustedVaultPassphrasePromoName,
  7510. flag_descriptions::kSyncTrustedVaultPassphrasePromoDescription, kOsAll,
  7511. FEATURE_VALUE_TYPE(::syncer::kSyncTrustedVaultPassphrasePromo)},
  7512. {"sync-trusted-vault-passphrase-recovery",
  7513. flag_descriptions::kSyncTrustedVaultPassphraseRecoveryName,
  7514. flag_descriptions::kSyncTrustedVaultPassphraseRecoveryDescription, kOsAll,
  7515. FEATURE_VALUE_TYPE(::syncer::kSyncTrustedVaultPassphraseRecovery)},
  7516. {"sync-standalone-invalidations", flag_descriptions::kSyncInvalidationsName,
  7517. flag_descriptions::kSyncInvalidationsDescription, kOsAll,
  7518. FEATURE_VALUE_TYPE(::syncer::kUseSyncInvalidations)},
  7519. {"sync-standalone-invalidations-wallet-and-offer",
  7520. flag_descriptions::kSyncInvalidationsWalletAndOfferName,
  7521. flag_descriptions::kSyncInvalidationsWalletAndOfferDescription, kOsAll,
  7522. FEATURE_VALUE_TYPE(::syncer::kUseSyncInvalidationsForWalletAndOffer)},
  7523. {"debug-history-intervention-no-user-activation",
  7524. flag_descriptions::kDebugHistoryInterventionNoUserActivationName,
  7525. flag_descriptions::kDebugHistoryInterventionNoUserActivationDescription,
  7526. kOsAll,
  7527. FEATURE_VALUE_TYPE(features::kDebugHistoryInterventionNoUserActivation)},
  7528. #if BUILDFLAG(IS_CHROMEOS_ASH)
  7529. {"smart-lock-sign-in-removed",
  7530. flag_descriptions::kSmartLockSignInRemovedName,
  7531. flag_descriptions::kSmartLockSignInRemovedDescription, kOsCrOS,
  7532. FEATURE_VALUE_TYPE(ash::features::kSmartLockSignInRemoved)},
  7533. #endif // BUILDFLAG(IS_CHROMEOS_ASH)
  7534. #if BUILDFLAG(IS_CHROMEOS_ASH)
  7535. {"smart-lock-ui-revamp", flag_descriptions::kSmartLockUIRevampName,
  7536. flag_descriptions::kSmartLockUIRevampDescription, kOsCrOS,
  7537. FEATURE_VALUE_TYPE(ash::features::kSmartLockUIRevamp)},
  7538. #endif // BUILDFLAG(IS_CHROMEOS_ASH)
  7539. #if BUILDFLAG(IS_CHROMEOS_ASH)
  7540. {"enable-phone-hub-call-notification",
  7541. flag_descriptions::kPhoneHubCallNotificationName,
  7542. flag_descriptions::kPhoneHubCallNotificationDescription, kOsCrOS,
  7543. FEATURE_VALUE_TYPE(ash::features::kPhoneHubCallNotification)},
  7544. {"enable-phone-hub-camera-roll", flag_descriptions::kPhoneHubCameraRollName,
  7545. flag_descriptions::kPhoneHubCameraRollDescription, kOsCrOS,
  7546. FEATURE_VALUE_TYPE(ash::features::kPhoneHubCameraRoll)},
  7547. {"enable-phone-hub-feature-setup-error-handling",
  7548. flag_descriptions::kPhoneHubFeatureSetupErrorHandlingName,
  7549. flag_descriptions::kPhoneHubFeatureSetupErrorHandlingDescription, kOsCrOS,
  7550. FEATURE_VALUE_TYPE(ash::features::kPhoneHubFeatureSetupErrorHandling)},
  7551. #endif // BUILDFLAG(IS_CHROMEOS_ASH)
  7552. {"sameparty-cookies-considered-first-party",
  7553. flag_descriptions::kSamePartyCookiesConsideredFirstPartyName,
  7554. flag_descriptions::kSamePartyCookiesConsideredFirstPartyDescription,
  7555. kOsAll,
  7556. FEATURE_VALUE_TYPE(net::features::kSamePartyCookiesConsideredFirstParty)},
  7557. {"partitioned-cookies", flag_descriptions::kPartitionedCookiesName,
  7558. flag_descriptions::kPartitionedCookiesDescription, kOsAll,
  7559. FEATURE_VALUE_TYPE(net::features::kPartitionedCookies)},
  7560. // TODO(crbug.com/1296161): Remove this flag when the CHIPS OT ends.
  7561. {"partitioned-cookies-bypass-origin-trial",
  7562. flag_descriptions::kPartitionedCookiesBypassOriginTrialName,
  7563. flag_descriptions::kPartitionedCookiesBypassOriginTrialDescription, kOsAll,
  7564. FEATURE_VALUE_TYPE(net::features::kPartitionedCookiesBypassOriginTrial)},
  7565. {"nonced-partitioned-cookies",
  7566. flag_descriptions::kNoncedPartitionedCookiesName,
  7567. flag_descriptions::kNoncedPartitionedCookiesDescription, kOsAll,
  7568. FEATURE_VALUE_TYPE(net::features::kNoncedPartitionedCookies)},
  7569. {"third-party-storage-partitioning",
  7570. flag_descriptions::kThirdPartyStoragePartitioningName,
  7571. flag_descriptions::kThirdPartyStoragePartitioningDescription, kOsAll,
  7572. FEATURE_VALUE_TYPE(net::features::kThirdPartyStoragePartitioning)},
  7573. #if BUILDFLAG(IS_CHROMEOS_ASH)
  7574. {kBorealisBigGlInternalName, flag_descriptions::kBorealisBigGlName,
  7575. flag_descriptions::kBorealisBigGlDescription, kOsCrOS,
  7576. FEATURE_VALUE_TYPE(ash::features::kBorealisBigGl)},
  7577. {kBorealisDiskManagementInternalName,
  7578. flag_descriptions::kBorealisDiskManagementName,
  7579. flag_descriptions::kBorealisDiskManagementDescription, kOsCrOS,
  7580. FEATURE_VALUE_TYPE(ash::features::kBorealisDiskManagement)},
  7581. {kBorealisForceBetaClientInternalName,
  7582. flag_descriptions::kBorealisForceBetaClientName,
  7583. flag_descriptions::kBorealisForceBetaClientDescription, kOsCrOS,
  7584. FEATURE_VALUE_TYPE(ash::features::kBorealisForceBetaClient)},
  7585. {kBorealisLinuxModeInternalName, flag_descriptions::kBorealisLinuxModeName,
  7586. flag_descriptions::kBorealisLinuxModeDescription, kOsCrOS,
  7587. FEATURE_VALUE_TYPE(ash::features::kBorealisLinuxMode)},
  7588. {kBorealisPermittedInternalName, flag_descriptions::kBorealisPermittedName,
  7589. flag_descriptions::kBorealisPermittedDescription, kOsCrOS,
  7590. FEATURE_VALUE_TYPE(ash::features::kBorealisPermitted)},
  7591. {kBorealisStorageBallooningInternalName,
  7592. flag_descriptions::kBorealisStorageBallooningName,
  7593. flag_descriptions::kBorealisStorageBallooningDescription, kOsCrOS,
  7594. FEATURE_VALUE_TYPE(ash::features::kBorealisStorageBallooning)},
  7595. #endif // BUILDFLAG(IS_CHROMEOS_ASH)
  7596. {"https-only-mode-setting", flag_descriptions::kHttpsOnlyModeName,
  7597. flag_descriptions::kHttpsOnlyModeDescription, kOsDesktop | kOsAndroid,
  7598. FEATURE_VALUE_TYPE(features::kHttpsOnlyMode)},
  7599. #if BUILDFLAG(IS_WIN)
  7600. {"win-10-tab-search-caption-button",
  7601. flag_descriptions::kWin10TabSearchCaptionButtonName,
  7602. flag_descriptions::kWin10TabSearchCaptionButtonDescription, kOsWin,
  7603. FEATURE_VALUE_TYPE(features::kWin10TabSearchCaptionButton)},
  7604. #endif // BUILDFLAG(IS_WIN)
  7605. {"omnibox-updated-connection-security-indicators",
  7606. flag_descriptions::kOmniboxUpdatedConnectionSecurityIndicatorsName,
  7607. flag_descriptions::kOmniboxUpdatedConnectionSecurityIndicatorsDescription,
  7608. kOsDesktop | kOsAndroid,
  7609. FEATURE_VALUE_TYPE(omnibox::kUpdatedConnectionSecurityIndicators)},
  7610. {"enable-drdc", flag_descriptions::kEnableDrDcName,
  7611. flag_descriptions::kEnableDrDcDescription, kOsAll,
  7612. FEATURE_VALUE_TYPE(features::kEnableDrDc)},
  7613. {"force-gpu-main-thread-to-normal-priority-drdc",
  7614. flag_descriptions::kForceGpuMainThreadToNormalPriorityDrDcName,
  7615. flag_descriptions::kForceGpuMainThreadToNormalPriorityDrDcDescription,
  7616. kOsAll,
  7617. FEATURE_VALUE_TYPE(features::kForceGpuMainThreadToNormalPriorityDrDc)},
  7618. #if BUILDFLAG(IS_ANDROID)
  7619. {"enable-drdc-vulkan", flag_descriptions::kEnableDrDcVulkanName,
  7620. flag_descriptions::kEnableDrDcDescription, kOsAndroid,
  7621. FEATURE_VALUE_TYPE(features::kEnableDrDcVulkan)},
  7622. #endif // BUILDFLAG(IS_ANDROID)
  7623. {"autofill-fill-merchant-promo-code-fields",
  7624. flag_descriptions::kAutofillFillMerchantPromoCodeFieldsName,
  7625. flag_descriptions::kAutofillFillMerchantPromoCodeFieldsDescription, kOsAll,
  7626. FEATURE_VALUE_TYPE(
  7627. autofill::features::kAutofillFillMerchantPromoCodeFields)},
  7628. #if BUILDFLAG(IS_CHROMEOS_ASH)
  7629. {"traffic-counters", flag_descriptions::kTrafficCountersEnabledName,
  7630. flag_descriptions::kTrafficCountersEnabledDescription, kOsCrOS,
  7631. FEATURE_VALUE_TYPE(ash::features::kTrafficCountersEnabled)},
  7632. #endif // BUILDFLAG(IS_CHROMEOS_ASH)
  7633. #if BUILDFLAG(ENABLE_EXTENSIONS)
  7634. {"extensions-menu-access-control",
  7635. flag_descriptions::kExtensionsMenuAccessControlName,
  7636. flag_descriptions::kExtensionsMenuAccessControlDescription, kOsDesktop,
  7637. FEATURE_VALUE_TYPE(extensions_features::kExtensionsMenuAccessControl)},
  7638. #endif
  7639. {"persistent-quota-is-temporary-quota",
  7640. flag_descriptions::kPersistentQuotaIsTemporaryQuotaName,
  7641. flag_descriptions::kPersistentQuotaIsTemporaryQuotaDescription, kOsAll,
  7642. FEATURE_VALUE_TYPE(blink::features::kPersistentQuotaIsTemporaryQuota)},
  7643. {"canvas-oop-rasterization", flag_descriptions::kCanvasOopRasterizationName,
  7644. flag_descriptions::kCanvasOopRasterizationDescription, kOsAll,
  7645. FEATURE_VALUE_TYPE(features::kCanvasOopRasterization)},
  7646. #if BUILDFLAG(IS_ANDROID)
  7647. {"bookmarks-improved-save-flow",
  7648. flag_descriptions::kBookmarksImprovedSaveFlowName,
  7649. flag_descriptions::kBookmarksImprovedSaveFlowDescription, kOsAndroid,
  7650. FEATURE_VALUE_TYPE(chrome::android::kBookmarksImprovedSaveFlow)},
  7651. {"bookmarks-refresh", flag_descriptions::kBookmarksRefreshName,
  7652. flag_descriptions::kBookmarksRefreshDescription, kOsAndroid,
  7653. FEATURE_WITH_PARAMS_VALUE_TYPE(chrome::android::kBookmarksRefresh,
  7654. kBookmarksRefreshVariations,
  7655. "Collections")},
  7656. #endif
  7657. {"enable-tab-audio-muting", flag_descriptions::kTabAudioMutingName,
  7658. flag_descriptions::kTabAudioMutingDescription, kOsDesktop,
  7659. FEATURE_VALUE_TYPE(media::kEnableTabMuting)},
  7660. #if BUILDFLAG(IS_CHROMEOS_ASH)
  7661. {"enable-app-discovery-for-oobe",
  7662. flag_descriptions::kAppDiscoveryForOobeName,
  7663. flag_descriptions::kAppDiscoveryForOobeDescription, kOsCrOS,
  7664. FEATURE_VALUE_TYPE(features::kAppDiscoveryForOobe)},
  7665. #endif // BUILDFLAG(IS_CHROMEOS_ASH)
  7666. #if BUILDFLAG(ENABLE_EXTENSIONS)
  7667. {"u2f-security-key-api", flag_descriptions::kU2FSecurityKeyAPIName,
  7668. flag_descriptions::kU2FSecurityKeyAPIDescription, kOsAll,
  7669. FEATURE_VALUE_TYPE(extensions_features::kU2FSecurityKeyAPI)},
  7670. {"load-cryptotoken-extension",
  7671. flag_descriptions::kLoadCryptoTokenExtensionName,
  7672. flag_descriptions ::kLoadCryptoTokenExtensionDescription, kOsAll,
  7673. FEATURE_VALUE_TYPE(extensions_features::kLoadCryptoTokenExtension)},
  7674. #endif // ENABLE_EXTENSIONS
  7675. {"force-major-version-to-minor",
  7676. flag_descriptions::kForceMajorVersionInMinorPositionInUserAgentName,
  7677. flag_descriptions::kForceMajorVersionInMinorPositionInUserAgentDescription,
  7678. kOsAll,
  7679. FEATURE_VALUE_TYPE(
  7680. blink::features::kForceMajorVersionInMinorPositionInUserAgent)},
  7681. {"autofill-enable-offer-notification-for-promo-codes",
  7682. flag_descriptions::kAutofillEnableOfferNotificationForPromoCodesName,
  7683. flag_descriptions::
  7684. kAutofillEnableOfferNotificationForPromoCodesDescription,
  7685. kOsAll,
  7686. FEATURE_VALUE_TYPE(
  7687. autofill::features::kAutofillEnableOfferNotificationForPromoCodes)},
  7688. {"u2f-permission-prompt", flag_descriptions::kU2FPermissionPromptName,
  7689. flag_descriptions::kU2FPermissionPromptDescription, kOsDesktop,
  7690. FEATURE_VALUE_TYPE(device::kU2fPermissionPrompt)},
  7691. {"upcoming-sharing-features",
  7692. flag_descriptions::kUpcomingSharingFeaturesName,
  7693. flag_descriptions::kUpcomingSharingFeaturesDescription, kOsAll,
  7694. FEATURE_VALUE_TYPE(share::kUpcomingSharingFeatures)},
  7695. #if defined(TOOLKIT_VIEWS)
  7696. {"side-search", flag_descriptions::kSideSearchName,
  7697. flag_descriptions::kSideSearchDescription, kOsDesktop,
  7698. FEATURE_VALUE_TYPE(features::kSideSearch)},
  7699. {"side-search-dse-support", flag_descriptions::kSideSearchDSESupportName,
  7700. flag_descriptions::kSideSearchDSESupportDescription, kOsDesktop,
  7701. FEATURE_VALUE_TYPE(features::kSideSearchDSESupport)},
  7702. #endif // defined(TOOLKIT_VIEWS)
  7703. #if !BUILDFLAG(IS_ANDROID)
  7704. {"customize-chrome-side-panel",
  7705. flag_descriptions::kCustomizeChromeSidePanelName,
  7706. flag_descriptions::KCustomizeChromeSidePanelDescription, kOsDesktop,
  7707. FEATURE_VALUE_TYPE(ntp_features::kCustomizeChromeSidePanel)},
  7708. #endif
  7709. #if BUILDFLAG(IS_CHROMEOS_ASH)
  7710. {"enable-component-updater-test-request",
  7711. flag_descriptions::kComponentUpdaterTestRequestName,
  7712. flag_descriptions::kComponentUpdaterTestRequestDescription, kOsCrOS,
  7713. SINGLE_VALUE_TYPE_AND_VALUE(switches::kComponentUpdater,
  7714. component_updater::kSwitchTestRequestParam)},
  7715. #endif
  7716. {"enable-raw-draw", flag_descriptions::kEnableRawDrawName,
  7717. flag_descriptions::kEnableRawDrawDescription, kOsAll,
  7718. FEATURE_VALUE_TYPE(features::kRawDraw)},
  7719. #if BUILDFLAG(IS_CHROMEOS_LACROS)
  7720. {"enable-delegated-compositing",
  7721. flag_descriptions::kEnableDelegatedCompositingName,
  7722. flag_descriptions::kEnableDelegatedCompositingDescription, kOsAll,
  7723. FEATURE_VALUE_TYPE(features::kDelegatedCompositing)},
  7724. #endif
  7725. #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || \
  7726. BUILDFLAG(IS_CHROMEOS_ASH)
  7727. {"document-picture-in-picture-api",
  7728. flag_descriptions::kDocumentPictureInPictureApiName,
  7729. flag_descriptions::kDocumentPictureInPictureApiDescription,
  7730. kOsMac | kOsWin | kOsLinux | kOsCrOS,
  7731. FEATURE_VALUE_TYPE(features::kDocumentPictureInPictureAPI)},
  7732. #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) ||
  7733. // BUILDFLAG(IS_CHROMEOS_ASH)
  7734. {"web-midi", flag_descriptions::kWebMidiName,
  7735. flag_descriptions::kWebMidiDescription, kOsAll,
  7736. FEATURE_VALUE_TYPE(features::kWebMidi)},
  7737. #if BUILDFLAG(IS_ANDROID)
  7738. {"use-real-color-space-for-android-video",
  7739. flag_descriptions::kUseRealColorSpaceForAndroidVideoName,
  7740. flag_descriptions::kUseRealColorSpaceForAndroidVideoDescription,
  7741. kOsAndroid, FEATURE_VALUE_TYPE(media::kUseRealColorSpaceForAndroidVideo)},
  7742. #endif
  7743. #if BUILDFLAG(IS_CHROMEOS_ASH)
  7744. {"enable-desks-trackpad-swipe-improvements",
  7745. flag_descriptions::kDesksTrackpadSwipeImprovementsName,
  7746. flag_descriptions::kDesksTrackpadSwipeImprovementsDescription, kOsCrOS,
  7747. FEATURE_VALUE_TYPE(ash::features::kEnableDesksTrackpadSwipeImprovements)},
  7748. #endif
  7749. {"enable-commerce-developer", flag_descriptions::kCommerceDeveloperName,
  7750. flag_descriptions::kCommerceDeveloperDescription, kOsAll,
  7751. FEATURE_VALUE_TYPE(commerce::kCommerceDeveloper)},
  7752. #if BUILDFLAG(IS_CHROMEOS_ASH)
  7753. {"enable-libinput-to-handle-touchpad",
  7754. flag_descriptions::kEnableLibinputToHandleTouchpadName,
  7755. flag_descriptions::kEnableLibinputToHandleTouchpadDescription, kOsCrOS,
  7756. FEATURE_VALUE_TYPE(ui::kLibinputHandleTouchpad)},
  7757. #endif // BUILDFLAG(IS_CHROMEOS_ASH)
  7758. #if BUILDFLAG(IS_ANDROID)
  7759. {"context-menu-popup-style", flag_descriptions::kContextMenuPopupStyleName,
  7760. flag_descriptions::kContextMenuPopupStyleDescription, kOsAndroid,
  7761. FEATURE_VALUE_TYPE(chrome::android::kContextMenuPopupStyle)},
  7762. {"grid-tab-switcher-for-tablets",
  7763. flag_descriptions::kGridTabSwitcherForTabletsName,
  7764. flag_descriptions::kGridTabSwitcherForTabletsDescription, kOsAndroid,
  7765. FEATURE_WITH_PARAMS_VALUE_TYPE(chrome::android::kGridTabSwitcherForTablets,
  7766. kGridTabSwitcherForTabletsVariations,
  7767. "GridTabSwitcherForTablets")},
  7768. {"enable-tab-groups-for-tablets",
  7769. flag_descriptions::kTabGroupsForTabletsName,
  7770. flag_descriptions::kTabGroupsForTabletsDescription, kOsAndroid,
  7771. FEATURE_VALUE_TYPE(chrome::android::kTabGroupsForTablets)},
  7772. {"activate-metrics-reporting-enabled-policy",
  7773. flag_descriptions::kActivateMetricsReportingEnabledPolicyAndroidName,
  7774. flag_descriptions::
  7775. kActivateMetricsReportingEnabledPolicyAndroidDescription,
  7776. kOsAndroid,
  7777. FEATURE_VALUE_TYPE(
  7778. policy::features::kActivateMetricsReportingEnabledPolicyAndroid)},
  7779. #endif // BUILDFLAG(IS_ANDROID)
  7780. #if BUILDFLAG(IS_CHROMEOS_ASH)
  7781. {"enable-desks-templates", flag_descriptions::kDesksTemplatesName,
  7782. flag_descriptions::kDesksTemplatesDescription, kOsCrOS,
  7783. FEATURE_VALUE_TYPE(ash::features::kDesksTemplates)},
  7784. #endif
  7785. #if BUILDFLAG(IS_CHROMEOS_ASH)
  7786. {"default-link-capturing-in-browser",
  7787. flag_descriptions::kDefaultLinkCapturingInBrowserName,
  7788. flag_descriptions::kDefaultLinkCapturingInBrowserDescription, kOsCrOS,
  7789. FEATURE_VALUE_TYPE(features::kDefaultLinkCapturingInBrowser)},
  7790. #endif
  7791. {"large-favicon-from-google",
  7792. flag_descriptions::kLargeFaviconFromGoogleName,
  7793. flag_descriptions::kLargeFaviconFromGoogleDescription, kOsAndroid,
  7794. FEATURE_WITH_PARAMS_VALUE_TYPE(features::kLargeFaviconFromGoogle,
  7795. kLargeFaviconFromGoogleVariations,
  7796. "LargeFaviconFromGoogle")},
  7797. #if BUILDFLAG(IS_ANDROID)
  7798. {"request-desktop-site-exceptions",
  7799. flag_descriptions::kRequestDesktopSiteExceptionsName,
  7800. flag_descriptions::kRequestDesktopSiteExceptionsDescription, kOsAndroid,
  7801. FEATURE_VALUE_TYPE(features::kRequestDesktopSiteExceptions)},
  7802. #endif
  7803. #if BUILDFLAG(IS_CHROMEOS_ASH)
  7804. {"snooping-protection", flag_descriptions::kSnoopingProtectionName,
  7805. flag_descriptions::kSnoopingProtectionDescription, kOsCrOS,
  7806. FEATURE_WITH_PARAMS_VALUE_TYPE(ash::features::kSnoopingProtection,
  7807. kSnoopingProtectionVariations,
  7808. "SnoopingProtection")},
  7809. {"quick-dim", flag_descriptions::kQuickDimName,
  7810. flag_descriptions::kQuickDimDescription, kOsCrOS,
  7811. FEATURE_WITH_PARAMS_VALUE_TYPE(ash::features::kQuickDim,
  7812. kQuickDimVariations,
  7813. "QuickDim")},
  7814. #endif
  7815. #if BUILDFLAG(IS_WIN)
  7816. {"pervasive-system-accent-color",
  7817. flag_descriptions::kPervasiveSystemAccentColorName,
  7818. flag_descriptions::kPervasiveSystemAccentColorDescription, kOsWin,
  7819. SINGLE_VALUE_TYPE(switches::kPervasiveSystemAccentColor)},
  7820. #endif
  7821. #if BUILDFLAG(IS_CHROMEOS_ASH)
  7822. {"use-multiple-overlays", flag_descriptions::kUseMultipleOverlaysName,
  7823. flag_descriptions::kUseMultipleOverlaysDescription, kOsCrOS,
  7824. FEATURE_WITH_PARAMS_VALUE_TYPE(features::kUseMultipleOverlays,
  7825. kUseMultipleOverlaysVariations,
  7826. "UseMultipleOverlays")},
  7827. #endif
  7828. #if BUILDFLAG(IS_CHROMEOS)
  7829. {"link-capturing-ui-update", flag_descriptions::kLinkCapturingUiUpdateName,
  7830. flag_descriptions::kLinkCapturingUiUpdateDescription, kOsCrOS | kOsLacros,
  7831. FEATURE_VALUE_TYPE(apps::features::kLinkCapturingUiUpdate)},
  7832. #endif
  7833. #if BUILDFLAG(IS_ANDROID)
  7834. {"touch-drag-and-context-menu",
  7835. flag_descriptions::kTouchDragAndContextMenuName,
  7836. flag_descriptions::kTouchDragAndContextMenuDescription, kOsAndroid,
  7837. FEATURE_VALUE_TYPE(features::kTouchDragAndContextMenu)},
  7838. {"new-instance-from-dragged-link",
  7839. flag_descriptions::kNewInstanceFromDraggedLinkName,
  7840. flag_descriptions::kNewInstanceFromDraggedLinkDescription, kOsAndroid,
  7841. FEATURE_VALUE_TYPE(chrome::android::kNewInstanceFromDraggedLink)},
  7842. #endif // BUILDFLAG(IS_ANDROID)
  7843. {"autofill-enable-update-virtual-card-enrollment",
  7844. flag_descriptions::kAutofillEnableUpdateVirtualCardEnrollmentName,
  7845. flag_descriptions::kAutofillEnableUpdateVirtualCardEnrollmentDescription,
  7846. kOsAll,
  7847. FEATURE_VALUE_TYPE(
  7848. autofill::features::kAutofillEnableUpdateVirtualCardEnrollment)},
  7849. #if BUILDFLAG(IS_CHROMEOS_LACROS)
  7850. {"enable-desktop-capture-lacros-v2",
  7851. flag_descriptions::kDesktopCaptureLacrosV2Name,
  7852. flag_descriptions::kDesktopCaptureLacrosV2Description, kOsCrOS | kOsLacros,
  7853. FEATURE_VALUE_TYPE(features::kDesktopCaptureLacrosV2)},
  7854. {"lacros-merge-icu-data-file",
  7855. flag_descriptions::kLacrosMergeIcuDataFileName,
  7856. flag_descriptions::kLacrosMergeIcuDataFileDescription, kOsCrOS | kOsLacros,
  7857. FEATURE_VALUE_TYPE(base::i18n::kLacrosMergeIcuDataFile)},
  7858. {"lacros-screen-coordinates-enabled",
  7859. flag_descriptions::kLacrosScreenCoordinatesEnabledName,
  7860. flag_descriptions::kLacrosScreenCoordinatesEnabledDescription,
  7861. kOsCrOS | kOsLacros,
  7862. FEATURE_VALUE_TYPE(features::kWaylandScreenCoordinatesEnabled)},
  7863. #endif
  7864. #if !BUILDFLAG(IS_ANDROID)
  7865. {"enable-tailored-security-desktop-notice",
  7866. flag_descriptions::kTailoredSecurityDesktopNoticeName,
  7867. flag_descriptions::kTailoredSecurityDesktopNoticeDescription, kOsDesktop,
  7868. FEATURE_VALUE_TYPE(safe_browsing::kTailoredSecurityDesktopNotice)},
  7869. #endif
  7870. #if !BUILDFLAG(IS_ANDROID)
  7871. {"screen-ai", flag_descriptions::kScreenAIName,
  7872. flag_descriptions::kScreenAIDescription, kOsDesktop,
  7873. FEATURE_VALUE_TYPE(features::kScreenAI)},
  7874. #endif
  7875. {"autofill-enable-virtual-card-management-in-desktop-settings-page",
  7876. flag_descriptions::
  7877. kAutofillEnableVirtualCardManagementInDesktopSettingsPageName,
  7878. flag_descriptions::
  7879. kAutofillEnableVirtualCardManagementInDesktopSettingsPageDescription,
  7880. kOsDesktop,
  7881. FEATURE_VALUE_TYPE(
  7882. autofill::features::
  7883. kAutofillEnableVirtualCardManagementInDesktopSettingsPage)},
  7884. {"leak-detection-unauthenticated",
  7885. flag_descriptions::kLeakDetectionUnauthenticated,
  7886. flag_descriptions::kLeakDetectionUnauthenticatedDescription, kOsAll,
  7887. FEATURE_VALUE_TYPE(
  7888. password_manager::features::kLeakDetectionUnauthenticated)},
  7889. {"origin-agent-cluster-default",
  7890. flag_descriptions::kOriginAgentClusterDefaultName,
  7891. flag_descriptions::kOriginAgentClusterDefaultDescription, kOsAll,
  7892. FEATURE_VALUE_TYPE(blink::features::kOriginAgentClusterDefaultEnabled)},
  7893. #if !BUILDFLAG(IS_ANDROID)
  7894. {"enable-user-cloud-signin-restriction-policy",
  7895. flag_descriptions::kEnableUserCloudSigninRestrictionPolicyName,
  7896. flag_descriptions::kEnableUserCloudSigninRestrictionPolicyDescription,
  7897. kOsDesktop,
  7898. FEATURE_VALUE_TYPE(
  7899. policy::features::kEnableUserCloudSigninRestrictionPolicyFetcher)},
  7900. #endif
  7901. {"autofill-enable-sending-bcn-in-get-upload-details",
  7902. flag_descriptions::kAutofillEnableSendingBcnInGetUploadDetailsName,
  7903. flag_descriptions::kAutofillEnableSendingBcnInGetUploadDetailsDescription,
  7904. kOsAll,
  7905. FEATURE_VALUE_TYPE(
  7906. autofill::features::kAutofillEnableSendingBcnInGetUploadDetails)},
  7907. #if !BUILDFLAG(IS_ANDROID)
  7908. {"enable-discount-consent-v2", flag_descriptions::kDiscountConsentV2Name,
  7909. flag_descriptions::kDiscountConsentV2Description, kOsDesktop,
  7910. FEATURE_WITH_PARAMS_VALUE_TYPE(commerce::kDiscountConsentV2,
  7911. kDiscountConsentV2Variations,
  7912. "DiscountConsentV2")},
  7913. #endif
  7914. {"autofill-enable-unmask-card-request-set-instrument-id",
  7915. flag_descriptions::kAutofillEnableUnmaskCardRequestSetInstrumentIdName,
  7916. flag_descriptions::
  7917. kAutofillEnableUnmaskCardRequestSetInstrumentIdDescription,
  7918. kOsAll,
  7919. FEATURE_VALUE_TYPE(
  7920. autofill::features::kAutofillEnableUnmaskCardRequestSetInstrumentId)},
  7921. {"durable-client-hints-cache",
  7922. flag_descriptions::kDurableClientHintsCacheName,
  7923. flag_descriptions::kDurableClientHintsCacheDescription, kOsAll,
  7924. FEATURE_VALUE_TYPE(blink::features::kDurableClientHintsCache)},
  7925. {"edit-context", flag_descriptions::kEditContextName,
  7926. flag_descriptions::kEditContextDescription, kOsAll,
  7927. FEATURE_VALUE_TYPE(blink::features::kEditContext)},
  7928. #if BUILDFLAG(IS_CHROMEOS_ASH)
  7929. {"enable-fake-keyboard-heuristic",
  7930. flag_descriptions::kEnableFakeKeyboardHeuristicName,
  7931. flag_descriptions::kEnableFakeKeyboardHeuristicDescription, kOsCrOS,
  7932. FEATURE_VALUE_TYPE(ui::kEnableFakeKeyboardHeuristic)},
  7933. #endif // BUILDFLAG(IS_CHROMEOS_ASH)
  7934. {"initial-navigation-entry", flag_descriptions::kInitialNavigationEntryName,
  7935. flag_descriptions::kInitialNavigationEntryDescription, kOsAll,
  7936. FEATURE_VALUE_TYPE(blink::features::kInitialNavigationEntry)},
  7937. #if !BUILDFLAG(IS_ANDROID)
  7938. {"enable-isolated-sandboxed-iframes",
  7939. flag_descriptions::kIsolatedSandboxedIframesName,
  7940. flag_descriptions::kIsolatedSandboxedIframesDescription, kOsDesktop,
  7941. FEATURE_WITH_PARAMS_VALUE_TYPE(
  7942. features::kIsolateSandboxedIframes,
  7943. kIsolateSandboxedIframesGroupingVariations,
  7944. "IsolateSandboxedIframes" /* trial name */)},
  7945. #endif
  7946. {"download-bubble", flag_descriptions::kDownloadBubbleName,
  7947. flag_descriptions::kDownloadBubbleDescription,
  7948. kOsLinux | kOsLacros | kOsMac | kOsWin,
  7949. FEATURE_VALUE_TYPE(safe_browsing::kDownloadBubble)},
  7950. {"download-bubble-v2", flag_descriptions::kDownloadBubbleV2Name,
  7951. flag_descriptions::kDownloadBubbleV2Description,
  7952. kOsLinux | kOsLacros | kOsMac | kOsWin,
  7953. FEATURE_VALUE_TYPE(safe_browsing::kDownloadBubbleV2)},
  7954. {"unthrottled-nested-timeout",
  7955. flag_descriptions::kUnthrottledNestedTimeoutName,
  7956. flag_descriptions::kUnthrottledNestedTimeoutDescription, kOsAll,
  7957. FEATURE_WITH_PARAMS_VALUE_TYPE(
  7958. blink::features::kMaxUnthrottledTimeoutNestingLevel,
  7959. kUnthrottledNestedTimeout_Variations,
  7960. "NestingLevel")},
  7961. {"reduce-accept-language", flag_descriptions::kReduceAcceptLanguageName,
  7962. flag_descriptions::kReduceAcceptLanguageDescription, kOsAll,
  7963. FEATURE_VALUE_TYPE(network::features::kReduceAcceptLanguage)},
  7964. {"reduce-user-agent-minor-version",
  7965. flag_descriptions::kReduceUserAgentMinorVersionName,
  7966. flag_descriptions::kReduceUserAgentMinorVersionDescription, kOsAll,
  7967. FEATURE_VALUE_TYPE(blink::features::kReduceUserAgentMinorVersion)},
  7968. {"reduce-user-agent-platform-oscpu",
  7969. flag_descriptions::kReduceUserAgentPlatformOsCpuName,
  7970. flag_descriptions::kReduceUserAgentPlatformOsCpuDescription, kOsAll,
  7971. FEATURE_VALUE_TYPE(blink::features::kReduceUserAgentPlatformOsCpu)},
  7972. #if BUILDFLAG(IS_CHROMEOS_ASH)
  7973. {"enable-variable-refresh-rate",
  7974. flag_descriptions::kEnableVariableRefreshRateName,
  7975. flag_descriptions::kEnableVariableRefreshRateDescription, kOsCrOS,
  7976. FEATURE_VALUE_TYPE(features::kEnableVariableRefreshRate)},
  7977. {"enable-app-provisioning-static-server",
  7978. flag_descriptions::kAppProvisioningStaticName,
  7979. flag_descriptions::kAppProvisioningStaticDescription, kOsCrOS,
  7980. FEATURE_VALUE_TYPE(features::kAppProvisioningStatic)},
  7981. {"enable-projector", flag_descriptions::kProjectorName,
  7982. flag_descriptions::kProjectorDescription, kOsCrOS,
  7983. FEATURE_VALUE_TYPE(ash::features::kProjector)},
  7984. {"enable-projector-annotator", flag_descriptions::kProjectorAnnotatorName,
  7985. flag_descriptions::kProjectorAnnotatorDescription, kOsCrOS,
  7986. FEATURE_VALUE_TYPE(ash::features::kProjectorAnnotator)},
  7987. {"enable-projector-exclude-transcript",
  7988. flag_descriptions::kProjectorExcludeTranscriptName,
  7989. flag_descriptions::kProjectorExcludeTranscriptDescription, kOsCrOS,
  7990. FEATURE_VALUE_TYPE(ash::features::kProjectorExcludeTranscript)},
  7991. {"enable-projector-local-playback",
  7992. flag_descriptions::kProjectorLocalPlaybackName,
  7993. flag_descriptions::kProjectorLocalPlaybackDescription, kOsCrOS,
  7994. FEATURE_VALUE_TYPE(ash::features::kProjectorLocalPlayback)},
  7995. {"enable-projector-app-debug", flag_descriptions::kProjectorAppDebugName,
  7996. flag_descriptions::kProjectorAppDebugDescription, kOsCrOS,
  7997. FEATURE_VALUE_TYPE(ash::features::kProjectorAppDebug)},
  7998. #endif // BUILDFLAG(IS_CHROMEOS_ASH)
  7999. {"web-sql-access", flag_descriptions::kWebSQLAccessName,
  8000. flag_descriptions::kWebSQLAccessDescription, kOsAll,
  8001. FEATURE_VALUE_TYPE(blink::features::kWebSQLAccess)},
  8002. {"omit-cors-client-cert", flag_descriptions::kOmitCorsClientCertName,
  8003. flag_descriptions::kOmitCorsClientCertDescription, kOsAll,
  8004. FEATURE_VALUE_TYPE(network::features::kOmitCorsClientCert)},
  8005. #if BUILDFLAG(IS_CHROMEOS)
  8006. {"link-capturing-infobar", flag_descriptions::kLinkCapturingInfoBarName,
  8007. flag_descriptions::kLinkCapturingInfoBarDescription, kOsCrOS | kOsLacros,
  8008. FEATURE_VALUE_TYPE(apps::features::kLinkCapturingInfoBar)},
  8009. {"intent-chip-skips-intent-picker",
  8010. flag_descriptions::kIntentChipSkipsPickerName,
  8011. flag_descriptions::kIntentChipSkipsPickerDescription, kOsCrOS | kOsLacros,
  8012. FEATURE_VALUE_TYPE(apps::features::kIntentChipSkipsPicker)},
  8013. {"intent-chip-app-icon", flag_descriptions::kIntentChipAppIconName,
  8014. flag_descriptions::kIntentChipAppIconDescription, kOsCrOS | kOsLacros,
  8015. FEATURE_VALUE_TYPE(apps::features::kIntentChipAppIcon)},
  8016. {"sync-chromeos-explicit-passphrase-sharing",
  8017. flag_descriptions::kSyncChromeOSExplicitPassphraseSharingName,
  8018. flag_descriptions::kSyncChromeOSExplicitPassphraseSharingDescription,
  8019. kOsCrOS | kOsLacros,
  8020. FEATURE_VALUE_TYPE(syncer::kSyncChromeOSExplicitPassphraseSharing)},
  8021. #endif
  8022. #if BUILDFLAG(IS_CHROMEOS_ASH)
  8023. {"always-enable-hdcp", flag_descriptions::kAlwaysEnableHdcpName,
  8024. flag_descriptions::kAlwaysEnableHdcpDescription, kOsCrOS,
  8025. MULTI_VALUE_TYPE(kAlwaysEnableHdcpChoices)},
  8026. {"enable-desks-close-all", flag_descriptions::kDesksCloseAllName,
  8027. flag_descriptions::kDesksCloseAllDescription, kOsCrOS,
  8028. FEATURE_VALUE_TYPE(ash::features::kDesksCloseAll)},
  8029. {"enable-touchpads-in-diagnostics-app",
  8030. flag_descriptions::kEnableTouchpadsInDiagnosticsAppName,
  8031. flag_descriptions::kEnableTouchpadsInDiagnosticsAppDescription, kOsCrOS,
  8032. FEATURE_VALUE_TYPE(chromeos::features::kEnableTouchpadsInDiagnosticsApp)},
  8033. {"enable-touchscreens-in-diagnostics-app",
  8034. flag_descriptions::kEnableTouchscreensInDiagnosticsAppName,
  8035. flag_descriptions::kEnableTouchscreensInDiagnosticsAppDescription, kOsCrOS,
  8036. FEATURE_VALUE_TYPE(
  8037. chromeos::features::kEnableTouchscreensInDiagnosticsApp)},
  8038. {"enable-external-keyboards-in-diagnostics-app",
  8039. flag_descriptions::kEnableExternalKeyboardsInDiagnosticsAppName,
  8040. flag_descriptions::kEnableExternalKeyboardsInDiagnosticsAppDescription,
  8041. kOsCrOS,
  8042. FEATURE_VALUE_TYPE(
  8043. chromeos::features::kEnableExternalKeyboardsInDiagnostics)},
  8044. #endif // BUILDFLAG(IS_CHROMEOS_ASH)
  8045. {"autofill-enforce-delays-in-strike-database",
  8046. flag_descriptions::kAutofillEnforceDelaysInStrikeDatabaseName,
  8047. flag_descriptions::kAutofillEnforceDelaysInStrikeDatabaseDescription,
  8048. kOsAll,
  8049. FEATURE_VALUE_TYPE(
  8050. autofill::features::kAutofillEnforceDelaysInStrikeDatabase)},
  8051. {"autofill-enable-virtual-card-metadata",
  8052. flag_descriptions::kAutofillEnableVirtualCardMetadataName,
  8053. flag_descriptions::kAutofillEnableVirtualCardMetadataDescription, kOsAll,
  8054. FEATURE_VALUE_TYPE(
  8055. autofill::features::kAutofillEnableVirtualCardMetadata)},
  8056. #if BUILDFLAG(IS_ANDROID)
  8057. {"password-edit-dialog-with-details",
  8058. flag_descriptions::kPasswordEditDialogWithDetailsName,
  8059. flag_descriptions::kPasswordEditDialogWithDetailsDescription, kOsAndroid,
  8060. FEATURE_VALUE_TYPE(
  8061. password_manager::features::kPasswordEditDialogWithDetails)},
  8062. #endif // BUILDFLAG(IS_ANDROID)
  8063. {"autofill-enable-ranking-formula",
  8064. flag_descriptions::kAutofillEnableRankingFormulaName,
  8065. flag_descriptions::kAutofillEnableRankingFormulaDescription, kOsAll,
  8066. FEATURE_VALUE_TYPE(autofill::features::kAutofillEnableRankingFormula)},
  8067. {"autofill-enable-virtual-card-fido-enrollment",
  8068. flag_descriptions::kAutofillEnableVirtualCardFidoEnrollmentName,
  8069. flag_descriptions::kAutofillEnableVirtualCardFidoEnrollmentDescription,
  8070. kOsAll,
  8071. FEATURE_VALUE_TYPE(
  8072. autofill::features::kAutofillEnableVirtualCardFidoEnrollment)},
  8073. {"autofill-upstream-allow-additional-email-domains",
  8074. flag_descriptions::kAutofillUpstreamAllowAdditionalEmailDomainsName,
  8075. flag_descriptions::kAutofillUpstreamAllowAdditionalEmailDomainsDescription,
  8076. kOsAll,
  8077. FEATURE_VALUE_TYPE(
  8078. autofill::features::kAutofillUpstreamAllowAdditionalEmailDomains)},
  8079. {"autofill-upstream-allow-all-email-domains",
  8080. flag_descriptions::kAutofillUpstreamAllowAllEmailDomainsName,
  8081. flag_descriptions::kAutofillUpstreamAllowAllEmailDomainsDescription,
  8082. kOsAll,
  8083. FEATURE_VALUE_TYPE(
  8084. autofill::features::kAutofillUpstreamAllowAllEmailDomains)},
  8085. #if BUILDFLAG(IS_CHROMEOS_ASH)
  8086. {"enable-desks-save-and-recall", flag_descriptions::kDesksSaveAndRecallName,
  8087. flag_descriptions::kDesksSaveAndRecallDescription, kOsCrOS,
  8088. FEATURE_VALUE_TYPE(ash::features::kEnableSavedDesks)},
  8089. {"launcher-play-store-search",
  8090. flag_descriptions::kLauncherPlayStoreSearchName,
  8091. flag_descriptions::kLauncherPlayStoreSearchDescription, kOsCrOS,
  8092. FEATURE_VALUE_TYPE(app_list_features::kLauncherPlayStoreSearch)},
  8093. #endif // BUILDFLAG(IS_CHROMEOS_ASH)
  8094. #if BUILDFLAG(IS_ANDROID)
  8095. {"safe-mode-for-cached-flags",
  8096. flag_descriptions::kSafeModeForCachedFlagsName,
  8097. flag_descriptions::kSafeModeForCachedFlagsDescription, kOsAndroid,
  8098. FEATURE_VALUE_TYPE(chrome::android::kSafeModeForCachedFlags)},
  8099. #endif // BUILDFLAG(IS_ANDROID)
  8100. #if !BUILDFLAG(IS_ANDROID)
  8101. {"safety-check-permissions", flag_descriptions::kSafetyCheckPermissionsName,
  8102. flag_descriptions::kSafetyCheckPermissionsDescription, kOsDesktop,
  8103. FEATURE_VALUE_TYPE(features::kSafetyCheckPermissions)},
  8104. #endif // !BUILDFLAG(IS_ANDROID)
  8105. #if BUILDFLAG(IS_ANDROID)
  8106. {"bulk-tab-restore-android", flag_descriptions::kBulkTabRestoreAndroidName,
  8107. flag_descriptions::kBulkTabRestoreAndroidDescription, kOsAndroid,
  8108. FEATURE_VALUE_TYPE(chrome::android::kBulkTabRestore)},
  8109. #endif // BUILDFLAG(IS_ANDROID)
  8110. {"autofill-enable-upstream-save-card-offer-ui-experiment",
  8111. flag_descriptions::kAutofillSaveCardUiExperimentName,
  8112. flag_descriptions::kAutofillSaveCardUiExperimentDescription, kOsDesktop,
  8113. FEATURE_WITH_PARAMS_VALUE_TYPE(
  8114. autofill::features::kAutofillSaveCardUiExperiment,
  8115. kAutofillSaveCardUiExperimentOptions,
  8116. "AutofillSaveCardUiExperiment")},
  8117. #if BUILDFLAG(IS_ANDROID)
  8118. {"network-service-in-process",
  8119. flag_descriptions::kNetworkServiceInProcessName,
  8120. flag_descriptions::kNetworkServiceInProcessDescription, kOsAndroid,
  8121. FEATURE_VALUE_TYPE(features::kNetworkServiceInProcess)},
  8122. #endif
  8123. {"broker-file-operations-on-disk-cache-in-network-service",
  8124. flag_descriptions::kBrokerFileOperationsOnDiskCacheInNetworkServiceName,
  8125. flag_descriptions::
  8126. kBrokerFileOperationsOnDiskCacheInNetworkServiceDescription,
  8127. kOsAll,
  8128. FEATURE_VALUE_TYPE(
  8129. features::kBrokerFileOperationsOnDiskCacheInNetworkService)},
  8130. {"autofill-remove-card-expiry-from-downstream-suggestion",
  8131. flag_descriptions::kAutofillRemoveCardExpiryFromDownstreamSuggestionName,
  8132. flag_descriptions::
  8133. kAutofillRemoveCardExpiryFromDownstreamSuggestionDescription,
  8134. kOsAll,
  8135. FEATURE_VALUE_TYPE(autofill::features::
  8136. kAutofillRemoveCardExpiryFromDownstreamSuggestion)},
  8137. #if !BUILDFLAG(IS_CHROMEOS)
  8138. {"dm-token-deletion", flag_descriptions::kDmTokenDeletionName,
  8139. flag_descriptions::kDmTokenDeletionDescription, kOsAll,
  8140. FEATURE_WITH_PARAMS_VALUE_TYPE(policy::features::kDmTokenDeletion,
  8141. kDmTokenDeletionVariation,
  8142. "DmTokenDeletion")},
  8143. #endif // !BUILDFLAG(IS_CHROMEOS)
  8144. #if BUILDFLAG(IS_ANDROID)
  8145. {"enable-commerce-hint-android",
  8146. flag_descriptions::kCommerceHintAndroidName,
  8147. flag_descriptions::kCommerceHintAndroidDescription, kOsAndroid,
  8148. FEATURE_VALUE_TYPE(commerce::kCommerceHintAndroid)},
  8149. #endif
  8150. {"autofill-enable-get-details-for-enroll-parsing-in-upload-card-response",
  8151. flag_descriptions::
  8152. kAutofillEnableGetDetailsForEnrollParsingInUploadCardResponseName,
  8153. flag_descriptions::
  8154. kAutofillEnableGetDetailsForEnrollParsingInUploadCardResponseDescription,
  8155. kOsAll,
  8156. FEATURE_VALUE_TYPE(
  8157. autofill::features::
  8158. kAutofillEnableGetDetailsForEnrollParsingInUploadCardResponse)},
  8159. #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX)
  8160. {"enable-web-bluetooth-confirm-pairing-support",
  8161. flag_descriptions::kWebBluetoothConfirmPairingSupportName,
  8162. flag_descriptions::kWebBluetoothConfirmPairingSupportDescription,
  8163. kOsDesktop,
  8164. FEATURE_VALUE_TYPE(device::features::kWebBluetoothConfirmPairingSupport)},
  8165. #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_LINUX)
  8166. {"quick-intensive-throttling-after-loading",
  8167. flag_descriptions::kQuickIntensiveWakeUpThrottlingAfterLoadingName,
  8168. flag_descriptions::kQuickIntensiveWakeUpThrottlingAfterLoadingDescription,
  8169. kOsAll,
  8170. FEATURE_VALUE_TYPE(
  8171. blink::features::kQuickIntensiveWakeUpThrottlingAfterLoading)},
  8172. #if BUILDFLAG(IS_MAC)
  8173. {"system-color-chooser", flag_descriptions::kSystemColorChooserName,
  8174. flag_descriptions::kSystemColorChooserDescription, kOsMac,
  8175. FEATURE_VALUE_TYPE(blink::features::kSystemColorChooser)},
  8176. #endif // BUILDFLAG(IS_MAC)
  8177. {"ignore-sync-encryption-keys-long-missing",
  8178. flag_descriptions::kIgnoreSyncEncryptionKeysLongMissingName,
  8179. flag_descriptions::kIgnoreSyncEncryptionKeysLongMissingDescription, kOsAll,
  8180. FEATURE_VALUE_TYPE(syncer::kIgnoreSyncEncryptionKeysLongMissing)},
  8181. {"autofill-parse-iban-fields",
  8182. flag_descriptions::kAutofillParseIBANFieldsName,
  8183. flag_descriptions::kAutofillParseIBANFieldsDescription, kOsAll,
  8184. FEATURE_VALUE_TYPE(autofill::features::kAutofillParseIBANFields)},
  8185. #if BUILDFLAG(IS_ANDROID)
  8186. {"autofill-enable-fido-progress-dialog",
  8187. flag_descriptions::kAutofillEnableFIDOProgressDialogName,
  8188. flag_descriptions::kAutofillEnableFIDOProgressDialogDescription,
  8189. kOsAndroid,
  8190. FEATURE_VALUE_TYPE(autofill::features::kAutofillEnableFIDOProgressDialog)},
  8191. #endif // BUILDFLAG(IS_ANDROID)
  8192. {"enable-perfetto-system-tracing",
  8193. flag_descriptions::kEnablePerfettoSystemTracingName,
  8194. flag_descriptions::kEnablePerfettoSystemTracingDescription, kOsAndroid,
  8195. FEATURE_VALUE_TYPE(features::kEnablePerfettoSystemTracing)},
  8196. #if BUILDFLAG(IS_ANDROID)
  8197. {"enable-android-gamepad-vibration",
  8198. flag_descriptions::kEnableAndroidGamepadVibrationName,
  8199. flag_descriptions::kEnableAndroidGamepadVibrationDescription, kOsAndroid,
  8200. FEATURE_VALUE_TYPE(features::kEnableAndroidGamepadVibration)},
  8201. #endif // BUILDFLAG(IS_ANDROID)
  8202. #if BUILDFLAG(IS_ANDROID)
  8203. {"request-desktop-site-additions",
  8204. flag_descriptions::kRequestDesktopSiteAdditionsName,
  8205. flag_descriptions::kRequestDesktopSiteAdditionsDescription, kOsAndroid,
  8206. FEATURE_VALUE_TYPE(features::kRequestDesktopSiteAdditions)},
  8207. #endif // BUILDFLAG(IS_ANDROID)
  8208. #if BUILDFLAG(IS_ANDROID)
  8209. {"request-desktop-site-defaults",
  8210. flag_descriptions::kRequestDesktopSiteDefaultsName,
  8211. flag_descriptions::kRequestDesktopSiteDefaultsDescription, kOsAndroid,
  8212. FEATURE_VALUE_TYPE(chrome::android::kRequestDesktopSiteDefaults)},
  8213. #endif // BUILDFLAG(IS_ANDROID)
  8214. #if !BUILDFLAG(IS_ANDROID)
  8215. {"enable-web-hid-on-extension-service-worker",
  8216. flag_descriptions::kEnableWebHidOnExtensionServiceWorkerName,
  8217. flag_descriptions::kEnableWebHidOnExtensionServiceWorkerDescription,
  8218. kOsDesktop,
  8219. FEATURE_VALUE_TYPE(features::kEnableWebHidOnExtensionServiceWorker)},
  8220. #endif
  8221. {"enable-sync-history-datatype",
  8222. flag_descriptions::kSyncEnableHistoryDataTypeName,
  8223. flag_descriptions::kSyncEnableHistoryDataTypeDescription, kOsAll,
  8224. FEATURE_VALUE_TYPE(syncer::kSyncEnableHistoryDataType)},
  8225. #if BUILDFLAG(IS_CHROMEOS)
  8226. {"link-capturing-auto-display-intent-picker",
  8227. flag_descriptions::kLinkCapturingAutoDisplayIntentPickerName,
  8228. flag_descriptions::kLinkCapturingAutoDisplayIntentPickerDescription,
  8229. kOsCrOS | kOsLacros,
  8230. FEATURE_VALUE_TYPE(apps::features::kLinkCapturingAutoDisplayIntentPicker)},
  8231. #endif // BUILDFLAG(IS_CHROMEOS)
  8232. #if BUILDFLAG(IS_MAC)
  8233. {"biometric-authentication-in-settings",
  8234. flag_descriptions::kBiometricAuthenticationInSettingsName,
  8235. flag_descriptions::kBiometricAuthenticationInSettingsDescription, kOsMac,
  8236. FEATURE_VALUE_TYPE(
  8237. password_manager::features::kBiometricAuthenticationInSettings)},
  8238. #endif // BUILDFLAG(IS_MAC)
  8239. {"autofill-enable-remade-downstream-metrics",
  8240. flag_descriptions::kAutofillEnableRemadeDownstreamMetricsName,
  8241. flag_descriptions::kAutofillEnableRemadeDownstreamMetricsDescription,
  8242. kOsAll,
  8243. FEATURE_VALUE_TYPE(
  8244. autofill::features::kAutofillEnableRemadeDownstreamMetrics)},
  8245. #if BUILDFLAG(IS_CHROMEOS_ASH)
  8246. {"enable-seamless-refresh-rate-switching",
  8247. flag_descriptions::kEnableSeamlessRefreshRateSwitchingName,
  8248. flag_descriptions::kEnableSeamlessRefreshRateSwitchingDescription, kOsCrOS,
  8249. FEATURE_VALUE_TYPE(ash::features::kSeamlessRefreshRateSwitching)},
  8250. #endif // BUILDFLAG(IS_CHROMEOS_ASH)
  8251. {"clipboard-unsanitized-content",
  8252. flag_descriptions::kClipboardUnsanitizedContentName,
  8253. flag_descriptions::kClipboardUnsanitizedContentDescription, kOsAll,
  8254. FEATURE_VALUE_TYPE(blink::features::kClipboardUnsanitizedContent)},
  8255. #if BUILDFLAG(IS_ANDROID)
  8256. {"assistant-non-personalized-voice-search",
  8257. flag_descriptions::kAssistantNonPersonalizedVoiceSearchName,
  8258. flag_descriptions::kAssistantNonPersonalizedVoiceSearchDescription,
  8259. kOsAndroid,
  8260. FEATURE_VALUE_TYPE(chrome::android::kAssistantNonPersonalizedVoiceSearch)},
  8261. #endif
  8262. #if BUILDFLAG(IS_ANDROID)
  8263. {"stylus-input", flag_descriptions::kStylusWritingToInputName,
  8264. flag_descriptions::kStylusWritingToInputDescription, kOsAndroid,
  8265. FEATURE_VALUE_TYPE(blink::features::kStylusWritingToInput)},
  8266. #endif // BUILDFLAG(IS_ANDROID)
  8267. #if BUILDFLAG(IS_CHROMEOS_ASH)
  8268. {"enable-media-dynamic-cgroup", flag_descriptions::kMediaDynamicCgroupName,
  8269. flag_descriptions::kMediaDynamicCgroupDescription, kOsCrOS,
  8270. PLATFORM_FEATURE_NAME_TYPE("CrOSLateBootMediaDynamicCgroup")},
  8271. #endif // BUILDFLAG(IS_CHROMEOS_ASH)
  8272. {"autofill-fill-iban-fields",
  8273. flag_descriptions::kAutofillFillIbanFieldsName,
  8274. flag_descriptions::kAutofillFillIbanFieldsDescription, kOsDesktop,
  8275. FEATURE_VALUE_TYPE(autofill::features::kAutofillFillIbanFields)},
  8276. {"autofill-parse-vcn-card-on-file-standalone-cvc-fields",
  8277. flag_descriptions::kAutofillParseVcnCardOnFileStandaloneCvcFieldsName,
  8278. flag_descriptions::
  8279. kAutofillParseVcnCardOnFileStandaloneCvcFieldsDescription,
  8280. kOsAll,
  8281. FEATURE_VALUE_TYPE(
  8282. autofill::features::kAutofillParseVcnCardOnFileStandaloneCvcFields)},
  8283. {"batch-fetch-requests", flag_descriptions::kBatchFetchRequestsName,
  8284. flag_descriptions::kBatchFetchRequestsDescription, kOsAll,
  8285. FEATURE_VALUE_TYPE(blink::features::kBatchFetchRequests)},
  8286. #if !BUILDFLAG(IS_ANDROID)
  8287. {"desktop-partial-translate",
  8288. flag_descriptions::kDesktopPartialTranslateName,
  8289. flag_descriptions::kDesktopPartialTranslateDescription, kOsDesktop,
  8290. FEATURE_VALUE_TYPE(translate::kDesktopPartialTranslate)},
  8291. #endif
  8292. #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
  8293. {"biometric-authentication-for-filling",
  8294. flag_descriptions::kBiometricAuthenticationForFillingName,
  8295. flag_descriptions::kBiometricAuthenticationForFillingDescription,
  8296. kOsMac | kOsWin,
  8297. FEATURE_VALUE_TYPE(
  8298. password_manager::features::kBiometricAuthenticationForFilling)},
  8299. #endif
  8300. {"skip-service-worker-fetch-handler",
  8301. flag_descriptions::kSkipServiceWorkerFetchHandlerName,
  8302. flag_descriptions::kSkipServiceWorkerFetchHandlerDescription, kOsAll,
  8303. FEATURE_WITH_PARAMS_VALUE_TYPE(
  8304. features::kServiceWorkerSkipIgnorableFetchHandler,
  8305. kServiceWorkerSkipIgnorableFetchHandlerVariations,
  8306. "ServiceWorkerSkipIgnorableFetchHandler")},
  8307. #if BUILDFLAG(IS_ANDROID)
  8308. {"reduce-gpu-priority-on-background",
  8309. flag_descriptions::kReduceGpuPriorityOnBackgroundName,
  8310. flag_descriptions::kReduceGpuPriorityOnBackgroundDescription, kOsAndroid,
  8311. FEATURE_VALUE_TYPE(::features::kReduceGpuPriorityOnBackground)},
  8312. #endif
  8313. #if BUILDFLAG(IS_ANDROID)
  8314. {"binding-manager-use-not-perceptible-binding",
  8315. flag_descriptions::kBindingManagerUseNotPerceptibleBindingName,
  8316. flag_descriptions::kBindingManagerUseNotPerceptibleBindingDescription,
  8317. kOsAndroid,
  8318. FEATURE_VALUE_TYPE(::features::kBindingManagerUseNotPerceptibleBinding)},
  8319. #endif
  8320. #if !BUILDFLAG(IS_ANDROID)
  8321. {"password-manager-redesign",
  8322. flag_descriptions::kPasswordManagerRedesignName,
  8323. flag_descriptions::kPasswordManagerRedesignDescription, kOsDesktop,
  8324. FEATURE_VALUE_TYPE(password_manager::features::kPasswordManagerRedesign)},
  8325. #endif
  8326. #if !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_ANDROID)
  8327. {flag_descriptions::kDesktopPWAsAppHomePageFlagId,
  8328. flag_descriptions::kDesktopPWAsAppHomePageName,
  8329. flag_descriptions::kDesktopPWAsAppHomePageDescription, kOsDesktop,
  8330. FEATURE_VALUE_TYPE(features::kDesktopPWAsAppHomePage)},
  8331. #endif // !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_ANDROID)
  8332. // NOTE: Adding a new flag requires adding a corresponding entry to enum
  8333. // "LoginCustomFlags" in tools/metrics/histograms/enums.xml. See "Flag
  8334. // Histograms" in tools/metrics/histograms/README.md (run the
  8335. // AboutFlagsHistogramTest unit test to verify this process).
  8336. };
  8337. class FlagsStateSingleton : public flags_ui::FlagsState::Delegate {
  8338. public:
  8339. FlagsStateSingleton()
  8340. : flags_state_(
  8341. std::make_unique<flags_ui::FlagsState>(kFeatureEntries, this)) {}
  8342. FlagsStateSingleton(const FlagsStateSingleton&) = delete;
  8343. FlagsStateSingleton& operator=(const FlagsStateSingleton&) = delete;
  8344. ~FlagsStateSingleton() override = default;
  8345. static FlagsStateSingleton* GetInstance() {
  8346. return base::Singleton<FlagsStateSingleton>::get();
  8347. }
  8348. static flags_ui::FlagsState* GetFlagsState() {
  8349. return GetInstance()->flags_state_.get();
  8350. }
  8351. void RebuildState(const std::vector<flags_ui::FeatureEntry>& entries) {
  8352. flags_state_ = std::make_unique<flags_ui::FlagsState>(entries, this);
  8353. }
  8354. void RestoreDefaultState() {
  8355. flags_state_ =
  8356. std::make_unique<flags_ui::FlagsState>(kFeatureEntries, this);
  8357. }
  8358. private:
  8359. // flags_ui::FlagsState::Delegate:
  8360. bool ShouldExcludeFlag(const flags_ui::FlagsStorage* storage,
  8361. const FeatureEntry& entry) override {
  8362. return flags::IsFlagExpired(storage, entry.internal_name);
  8363. }
  8364. std::unique_ptr<flags_ui::FlagsState> flags_state_;
  8365. };
  8366. bool ShouldSkipNonDeprecatedFeatureEntry(const FeatureEntry& entry) {
  8367. return ~entry.supported_platforms & kDeprecated;
  8368. }
  8369. } // namespace
  8370. bool ShouldSkipConditionalFeatureEntry(const flags_ui::FlagsStorage* storage,
  8371. const FeatureEntry& entry) {
  8372. version_info::Channel channel = chrome::GetChannel();
  8373. #if BUILDFLAG(IS_CHROMEOS_ASH)
  8374. // enable-ui-devtools is only available on for non Stable channels.
  8375. if (!strcmp(ui_devtools::switches::kEnableUiDevTools, entry.internal_name) &&
  8376. channel == version_info::Channel::STABLE) {
  8377. return true;
  8378. }
  8379. // Skip lacros-availability-policy always. This is a pseudo entry
  8380. // and used to carry the policy value crossing the Chrome's lifetime.
  8381. if (!strcmp(crosapi::browser_util::kLacrosAvailabilityPolicyInternalName,
  8382. entry.internal_name)) {
  8383. return true;
  8384. }
  8385. if (!strcmp(kLacrosSupportInternalName, entry.internal_name)) {
  8386. return !crosapi::browser_util::IsLacrosSupportFlagAllowed();
  8387. }
  8388. if (!strcmp(kLacrosStabilityInternalName, entry.internal_name)) {
  8389. return !crosapi::browser_util::IsLacrosAllowedToBeEnabled();
  8390. }
  8391. if (!strcmp(kLacrosOnlyInternalName, entry.internal_name)) {
  8392. return !crosapi::browser_util::IsLacrosOnlyFlagAllowed();
  8393. }
  8394. if (!strcmp(kLacrosPrimaryInternalName, entry.internal_name)) {
  8395. return !crosapi::browser_util::IsLacrosPrimaryFlagAllowed();
  8396. }
  8397. if (!strcmp(kWebAppsCrosapiInternalName, entry.internal_name)) {
  8398. return !crosapi::browser_util::IsLacrosAllowedToBeEnabled();
  8399. }
  8400. if (!strcmp(kArcVmBalloonPolicyInternalName, entry.internal_name)) {
  8401. return !arc::IsArcVmEnabled();
  8402. }
  8403. // Only show Borealis flags on enabled devices.
  8404. if (!strcmp(kBorealisBigGlInternalName, entry.internal_name)) {
  8405. return !base::FeatureList::IsEnabled(features::kBorealis);
  8406. }
  8407. if (!strcmp(kBorealisDiskManagementInternalName, entry.internal_name)) {
  8408. return !base::FeatureList::IsEnabled(features::kBorealis);
  8409. }
  8410. if (!strcmp(kBorealisForceBetaClientInternalName, entry.internal_name)) {
  8411. return !base::FeatureList::IsEnabled(features::kBorealis);
  8412. }
  8413. if (!strcmp(kBorealisLinuxModeInternalName, entry.internal_name)) {
  8414. return !base::FeatureList::IsEnabled(features::kBorealis);
  8415. }
  8416. if (!strcmp(kBorealisPermittedInternalName, entry.internal_name)) {
  8417. return !base::FeatureList::IsEnabled(features::kBorealis);
  8418. }
  8419. if (!strcmp(kBorealisStorageBallooningInternalName, entry.internal_name)) {
  8420. return !base::FeatureList::IsEnabled(features::kBorealis);
  8421. }
  8422. // Only show wallpaper fast refresh flag if channel is one of
  8423. // Dev/Canary/Unknown.
  8424. if (!strcmp(kWallpaperFastRefreshInternalName, entry.internal_name)) {
  8425. return (channel != version_info::Channel::DEV &&
  8426. channel != version_info::Channel::CANARY &&
  8427. channel != version_info::Channel::UNKNOWN);
  8428. }
  8429. // Only show clipboard history reorder flag if channel is one of
  8430. // Dev/Canary/Unknown.
  8431. if (!strcmp(kClipboardHistoryReorderInternalName, entry.internal_name)) {
  8432. return channel != version_info::Channel::DEV &&
  8433. channel != version_info::Channel::CANARY &&
  8434. channel != version_info::Channel::UNKNOWN;
  8435. }
  8436. #endif // BUILDFLAG(IS_CHROMEOS_ASH)
  8437. // enable-unsafe-webgpu is only available on Dev/Canary channels.
  8438. if (!strcmp("enable-unsafe-webgpu", entry.internal_name) &&
  8439. channel != version_info::Channel::DEV &&
  8440. channel != version_info::Channel::CANARY &&
  8441. channel != version_info::Channel::UNKNOWN) {
  8442. return true;
  8443. }
  8444. #if BUILDFLAG(IS_WIN)
  8445. // HDR mode works, but displays everything horribly wrong prior to windows 10.
  8446. if (!strcmp("enable-hdr", entry.internal_name) &&
  8447. base::win::GetVersion() < base::win::Version::WIN10) {
  8448. return true;
  8449. }
  8450. #endif // BUILDFLAG(IS_WIN)
  8451. if (flags::IsFlagExpired(storage, entry.internal_name))
  8452. return true;
  8453. return false;
  8454. }
  8455. void ConvertFlagsToSwitches(flags_ui::FlagsStorage* flags_storage,
  8456. base::CommandLine* command_line,
  8457. flags_ui::SentinelsMode sentinels) {
  8458. if (command_line->HasSwitch(switches::kNoExperiments))
  8459. return;
  8460. FlagsStateSingleton::GetFlagsState()->ConvertFlagsToSwitches(
  8461. flags_storage, command_line, sentinels, switches::kEnableFeatures,
  8462. switches::kDisableFeatures);
  8463. }
  8464. std::vector<std::string> RegisterAllFeatureVariationParameters(
  8465. flags_ui::FlagsStorage* flags_storage,
  8466. base::FeatureList* feature_list) {
  8467. return FlagsStateSingleton::GetFlagsState()
  8468. ->RegisterAllFeatureVariationParameters(flags_storage, feature_list);
  8469. }
  8470. void GetFlagFeatureEntries(flags_ui::FlagsStorage* flags_storage,
  8471. flags_ui::FlagAccess access,
  8472. base::Value::List& supported_entries,
  8473. base::Value::List& unsupported_entries) {
  8474. FlagsStateSingleton::GetFlagsState()->GetFlagFeatureEntries(
  8475. flags_storage, access, supported_entries, unsupported_entries,
  8476. base::BindRepeating(&ShouldSkipConditionalFeatureEntry,
  8477. // Unretained: this callback doesn't outlive this
  8478. // stack frame.
  8479. base::Unretained(flags_storage)));
  8480. }
  8481. void GetFlagFeatureEntriesForDeprecatedPage(
  8482. flags_ui::FlagsStorage* flags_storage,
  8483. flags_ui::FlagAccess access,
  8484. base::Value::List& supported_entries,
  8485. base::Value::List& unsupported_entries) {
  8486. FlagsStateSingleton::GetFlagsState()->GetFlagFeatureEntries(
  8487. flags_storage, access, supported_entries, unsupported_entries,
  8488. base::BindRepeating(&ShouldSkipNonDeprecatedFeatureEntry));
  8489. }
  8490. flags_ui::FlagsState* GetCurrentFlagsState() {
  8491. return FlagsStateSingleton::GetFlagsState();
  8492. }
  8493. bool IsRestartNeededToCommitChanges() {
  8494. return FlagsStateSingleton::GetFlagsState()->IsRestartNeededToCommitChanges();
  8495. }
  8496. void SetFeatureEntryEnabled(flags_ui::FlagsStorage* flags_storage,
  8497. const std::string& internal_name,
  8498. bool enable) {
  8499. FlagsStateSingleton::GetFlagsState()->SetFeatureEntryEnabled(
  8500. flags_storage, internal_name, enable);
  8501. }
  8502. void SetOriginListFlag(const std::string& internal_name,
  8503. const std::string& value,
  8504. flags_ui::FlagsStorage* flags_storage) {
  8505. FlagsStateSingleton::GetFlagsState()->SetOriginListFlag(internal_name, value,
  8506. flags_storage);
  8507. }
  8508. void RemoveFlagsSwitches(base::CommandLine::SwitchMap* switch_list) {
  8509. FlagsStateSingleton::GetFlagsState()->RemoveFlagsSwitches(switch_list);
  8510. }
  8511. void ResetAllFlags(flags_ui::FlagsStorage* flags_storage) {
  8512. FlagsStateSingleton::GetFlagsState()->ResetAllFlags(flags_storage);
  8513. }
  8514. #if BUILDFLAG(IS_CHROMEOS)
  8515. void CrosUrlFlagsRedirect() {
  8516. #if BUILDFLAG(IS_CHROMEOS_LACROS)
  8517. lacros_url_handling::NavigateInAsh(GURL(chrome::kChromeUIFlagsURL));
  8518. #else
  8519. // Note: This will only be called by the UI when Lacros is available.
  8520. DCHECK(crosapi::BrowserManager::Get());
  8521. crosapi::BrowserManager::Get()->SwitchToTab(
  8522. GURL(chrome::kChromeUIFlagsURL),
  8523. /*path_behavior=*/NavigateParams::RESPECT);
  8524. #endif
  8525. }
  8526. #endif
  8527. void RecordUMAStatistics(flags_ui::FlagsStorage* flags_storage,
  8528. const std::string& histogram_name) {
  8529. std::set<std::string> switches;
  8530. std::set<std::string> features;
  8531. std::set<std::string> variation_ids;
  8532. FlagsStateSingleton::GetFlagsState()->GetSwitchesAndFeaturesFromFlags(
  8533. flags_storage, &switches, &features, &variation_ids);
  8534. // Don't report variation IDs since we don't have an UMA histogram for them.
  8535. flags_ui::ReportAboutFlagsHistogram(histogram_name, switches, features);
  8536. }
  8537. namespace testing {
  8538. std::vector<FeatureEntry>* GetEntriesForTesting() {
  8539. static base::NoDestructor<std::vector<FeatureEntry>> entries;
  8540. return entries.get();
  8541. }
  8542. void SetFeatureEntries(const std::vector<FeatureEntry>& entries) {
  8543. CHECK(GetEntriesForTesting()->empty()); // IN-TEST
  8544. for (const auto& entry : entries)
  8545. GetEntriesForTesting()->push_back(entry); // IN-TEST
  8546. FlagsStateSingleton::GetInstance()->RebuildState(
  8547. *GetEntriesForTesting()); // IN-TEST
  8548. }
  8549. ScopedFeatureEntries::ScopedFeatureEntries(
  8550. const std::vector<flags_ui::FeatureEntry>& entries) {
  8551. SetFeatureEntries(entries);
  8552. }
  8553. ScopedFeatureEntries::~ScopedFeatureEntries() {
  8554. GetEntriesForTesting()->clear(); // IN-TEST
  8555. // Restore the flag state to the production flags.
  8556. FlagsStateSingleton::GetInstance()->RestoreDefaultState();
  8557. }
  8558. base::span<const FeatureEntry> GetFeatureEntries() {
  8559. if (!GetEntriesForTesting()->empty())
  8560. return base::span<FeatureEntry>(*GetEntriesForTesting());
  8561. return base::make_span(kFeatureEntries, std::size(kFeatureEntries));
  8562. }
  8563. } // namespace testing
  8564. } // namespace about_flags