Skip to main content
Latest
File
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846784778487849785078517852785378547855785678577858785978607861786278637864786578667867786878697870787178727873787478757876787778787879788078817882788378847885788678877888788978907891789278937894789578967897789878997900790179027903790479057906790779087909791079117912791379147915791679177918791979207921792279237924792579267927792879297930793179327933793479357936793779387939794079417942794379447945794679477948794979507951795279537954795579567957795879597960796179627963796479657966796779687969797079717972797379747975797679777978797979807981798279837984798579867987798879897990799179927993799479957996799779987999800080018002800380048005800680078008800980108011801280138014801580168017801880198020802180228023802480258026802780288029803080318032803380348035803680378038803980408041804280438044804580468047804880498050805180528053805480558056805780588059806080618062806380648065806680678068806980708071807280738074807580768077807880798080808180828083808480858086808780888089809080918092809380948095809680978098809981008101810281038104810581068107810881098110811181128113811481158116811781188119812081218122812381248125812681278128812981308131813281338134813581368137813881398140814181428143814481458146814781488149815081518152815381548155815681578158815981608161816281638164816581668167816881698170817181728173817481758176817781788179818081818182818381848185818681878188818981908191819281938194819581968197819881998200820182028203820482058206820782088209821082118212821382148215821682178218821982208221822282238224822582268227822882298230823182328233823482358236823782388239824082418242824382448245824682478248824982508251825282538254825582568257825882598260826182628263826482658266826782688269827082718272827382748275827682778278827982808281828282838284828582868287828882898290829182928293829482958296829782988299830083018302830383048305830683078308830983108311831283138314831583168317831883198320832183228323832483258326832783288329833083318332833383348335833683378338833983408341834283438344834583468347834883498350835183528353835483558356835783588359836083618362836383648365836683678368836983708371837283738374837583768377837883798380838183828383838483858386838783888389839083918392839383948395839683978398839984008401840284038404840584068407840884098410841184128413841484158416841784188419842084218422842384248425842684278428842984308431843284338434843584368437843884398440844184428443844484458446844784488449845084518452845384548455845684578458845984608461846284638464846584668467846884698470847184728473847484758476847784788479848084818482848384848485848684878488848984908491849284938494849584968497849884998500850185028503850485058506850785088509851085118512851385148515851685178518851985208521852285238524852585268527852885298530853185328533853485358536853785388539854085418542854385448545854685478548854985508551855285538554855585568557855885598560856185628563856485658566856785688569857085718572857385748575857685778578857985808581858285838584858585868587858885898590859185928593859485958596859785988599860086018602860386048605860686078608860986108611861286138614861586168617861886198620862186228623862486258626862786288629863086318632863386348635863686378638863986408641864286438644864586468647864886498650865186528653865486558656865786588659866086618662866386648665866686678668866986708671867286738674867586768677867886798680868186828683868486858686868786888689869086918692869386948695869686978698869987008701870287038704870587068707870887098710871187128713871487158716871787188719872087218722872387248725872687278728872987308731873287338734873587368737873887398740874187428743874487458746874787488749875087518752875387548755875687578758875987608761876287638764876587668767876887698770877187728773877487758776877787788779878087818782878387848785878687878788878987908791879287938794879587968797879887998800880188028803880488058806880788088809881088118812881388148815881688178818881988208821882288238824882588268827882888298830883188328833883488358836883788388839884088418842884388448845884688478848884988508851885288538854885588568857885888598860886188628863886488658866886788688869887088718872887388748875887688778878887988808881888288838884888588868887888888898890889188928893889488958896889788988899890089018902890389048905890689078908890989108911891289138914891589168917891889198920892189228923892489258926892789288929893089318932893389348935893689378938893989408941894289438944894589468947894889498950895189528953895489558956895789588959896089618962896389648965896689678968896989708971897289738974897589768977897889798980898189828983898489858986898789888989899089918992899389948995899689978998899990009001900290039004900590069007900890099010901190129013901490159016901790189019902090219022902390249025902690279028902990309031903290339034903590369037903890399040904190429043904490459046904790489049905090519052905390549055905690579058905990609061906290639064906590669067906890699070907190729073907490759076907790789079908090819082908390849085908690879088908990909091909290939094909590969097909890999100910191029103910491059106910791089109911091119112911391149115911691179118911991209121912291239124912591269127912891299130913191329133913491359136913791389139914091419142914391449145914691479148914991509151915291539154915591569157915891599160916191629163916491659166916791689169917091719172917391749175917691779178917991809181918291839184918591869187918891899190919191929193919491959196919791989199920092019202920392049205920692079208920992109211921292139214921592169217921892199220922192229223922492259226922792289229923092319232923392349235923692379238923992409241924292439244924592469247924892499250925192529253925492559256925792589259926092619262926392649265926692679268926992709271927292739274927592769277927892799280928192829283928492859286928792889289929092919292929392949295929692979298929993009301930293039304930593069307930893099310931193129313931493159316931793189319932093219322932393249325932693279328932993309331933293339334933593369337933893399340934193429343934493459346934793489349935093519352935393549355935693579358935993609361936293639364936593669367936893699370937193729373937493759376937793789379938093819382938393849385938693879388938993909391939293939394939593969397939893999400940194029403940494059406940794089409941094119412941394149415941694179418941994209421942294239424942594269427942894299430943194329433943494359436943794389439944094419442944394449445944694479448944994509451945294539454945594569457945894599460946194629463946494659466946794689469947094719472947394749475947694779478947994809481948294839484948594869487948894899490949194929493949494959496949794989499950095019502950395049505950695079508950995109511951295139514951595169517951895199520952195229523952495259526952795289529953095319532953395349535953695379538953995409541954295439544954595469547954895499550955195529553955495559556955795589559956095619562956395649565956695679568956995709571957295739574957595769577957895799580958195829583958495859586958795889589959095919592959395949595959695979598959996009601960296039604960596069607960896099610961196129613961496159616961796189619962096219622962396249625962696279628962996309631963296339634963596369637963896399640964196429643964496459646964796489649965096519652965396549655965696579658965996609661966296639664966596669667966896699670967196729673967496759676967796789679968096819682968396849685968696879688968996909691969296939694969596969697969896999700970197029703970497059706970797089709971097119712971397149715971697179718971997209721972297239724972597269727972897299730973197329733973497359736973797389739974097419742974397449745974697479748974997509751975297539754975597569757975897599760976197629763976497659766976797689769977097719772977397749775977697779778977997809781978297839784978597869787978897899790979197929793979497959796979797989799980098019802980398049805980698079808980998109811981298139814981598169817981898199820982198229823982498259826982798289829983098319832983398349835983698379838983998409841984298439844984598469847984898499850985198529853985498559856985798589859986098619862986398649865986698679868986998709871987298739874987598769877987898799880988198829883988498859886988798889889989098919892989398949895989698979898989999009901990299039904990599069907990899099910991199129913991499159916991799189919992099219922992399249925992699279928992999309931993299339934993599369937993899399940994199429943994499459946994799489949995099519952995399549955995699579958995999609961996299639964996599669967996899699970997199729973997499759976997799789979998099819982998399849985998699879988998999909991999299939994999599969997999899991000010001100021000310004100051000610007100081000910010100111001210013100141001510016100171001810019100201002110022100231002410025100261002710028100291003010031100321003310034100351003610037100381003910040100411004210043100441004510046100471004810049100501005110052100531005410055100561005710058100591006010061100621006310064100651006610067100681006910070100711007210073100741007510076100771007810079100801008110082100831008410085100861008710088100891009010091100921009310094100951009610097100981009910100101011010210103101041010510106101071010810109101101011110112101131011410115101161011710118101191012010121101221012310124101251012610127101281012910130101311013210133101341013510136101371013810139101401014110142101431014410145101461014710148101491015010151101521015310154101551015610157101581015910160101611016210163101641016510166101671016810169101701017110172101731017410175101761017710178101791018010181101821018310184101851018610187101881018910190101911019210193101941019510196101971019810199102001020110202102031020410205102061020710208102091021010211102121021310214102151021610217102181021910220102211022210223102241022510226102271022810229102301023110232102331023410235102361023710238102391024010241102421024310244102451024610247102481024910250102511025210253102541025510256102571025810259102601026110262102631026410265102661026710268102691027010271102721027310274102751027610277102781027910280102811028210283102841028510286102871028810289102901029110292102931029410295102961029710298102991030010301103021030310304103051030610307103081030910310103111031210313103141031510316103171031810319103201032110322103231032410325103261032710328103291033010331103321033310334103351033610337103381033910340103411034210343103441034510346103471034810349103501035110352103531035410355103561035710358103591036010361103621036310364103651036610367103681036910370103711037210373103741037510376103771037810379103801038110382103831038410385103861038710388103891039010391103921039310394103951039610397103981039910400104011040210403104041040510406104071040810409104101041110412104131041410415104161041710418104191042010421104221042310424104251042610427104281042910430104311043210433104341043510436104371043810439104401044110442104431044410445104461044710448104491045010451104521045310454104551045610457104581045910460104611046210463104641046510466104671046810469104701047110472104731047410475104761047710478104791048010481104821048310484104851048610487104881048910490104911049210493104941049510496104971049810499105001050110502105031050410505105061050710508105091051010511105121051310514105151051610517105181051910520105211052210523105241052510526105271052810529105301053110532105331053410535105361053710538105391054010541105421054310544105451054610547105481054910550105511055210553105541055510556105571055810559105601056110562105631056410565105661056710568105691057010571105721057310574105751057610577105781057910580105811058210583105841058510586105871058810589105901059110592105931059410595105961059710598105991060010601106021060310604106051060610607106081060910610106111061210613106141061510616106171061810619106201062110622106231062410625106261062710628106291063010631106321063310634106351063610637106381063910640106411064210643106441064510646106471064810649106501065110652106531065410655106561065710658106591066010661106621066310664106651066610667106681066910670106711067210673106741067510676106771067810679106801068110682106831068410685106861068710688106891069010691106921069310694106951069610697106981069910700107011070210703107041070510706107071070810709107101071110712107131071410715107161071710718107191072010721107221072310724107251072610727107281072910730107311073210733107341073510736107371073810739107401074110742107431074410745107461074710748107491075010751107521075310754107551075610757107581075910760107611076210763107641076510766107671076810769107701077110772107731077410775107761077710778107791078010781107821078310784107851078610787107881078910790107911079210793107941079510796107971079810799108001080110802108031080410805108061080710808108091081010811108121081310814108151081610817108181081910820108211082210823108241082510826108271082810829108301083110832108331083410835108361083710838108391084010841108421084310844108451084610847108481084910850108511085210853108541085510856108571085810859108601086110862108631086410865108661086710868108691087010871108721087310874108751087610877108781087910880108811088210883108841088510886108871088810889108901089110892108931089410895108961089710898108991090010901109021090310904109051090610907109081090910910109111091210913109141091510916109171091810919109201092110922109231092410925109261092710928109291093010931109321093310934109351093610937109381093910940109411094210943109441094510946109471094810949109501095110952109531095410955109561095710958109591096010961109621096310964109651096610967109681096910970109711097210973109741097510976109771097810979109801098110982109831098410985109861098710988109891099010991109921099310994109951099610997109981099911000110011100211003110041100511006110071100811009110101101111012110131101411015110161101711018110191102011021110221102311024110251102611027110281102911030110311103211033110341103511036110371103811039110401104111042110431104411045110461104711048110491105011051110521105311054110551105611057110581105911060110611106211063110641106511066110671106811069110701107111072110731107411075110761107711078110791108011081110821108311084110851108611087110881108911090110911109211093110941109511096110971109811099111001110111102111031110411105111061110711108111091111011111111121111311114111151111611117111181111911120111211112211123111241112511126111271112811129111301113111132111331113411135111361113711138111391114011141111421114311144111451114611147111481114911150111511115211153111541115511156111571115811159111601116111162111631116411165111661116711168111691117011171111721117311174111751117611177111781117911180111811118211183111841118511186111871118811189111901119111192111931119411195111961119711198111991120011201112021120311204112051120611207112081120911210112111121211213112141121511216112171121811219112201122111222112231122411225112261122711228112291123011231112321123311234112351123611237112381123911240112411124211243112441124511246112471124811249112501125111252112531125411255112561125711258112591126011261112621126311264112651126611267112681126911270112711127211273112741127511276112771127811279112801128111282112831128411285112861128711288112891129011291112921129311294112951129611297112981129911300113011130211303113041130511306113071130811309113101131111312113131131411315113161131711318113191132011321113221132311324113251132611327113281132911330113311133211333113341133511336113371133811339113401134111342113431134411345113461134711348113491135011351113521135311354113551135611357113581135911360113611136211363113641136511366113671136811369113701137111372113731137411375113761137711378113791138011381113821138311384113851138611387113881138911390113911139211393113941139511396113971139811399114001140111402114031140411405114061140711408114091141011411114121141311414114151141611417114181141911420114211142211423114241142511426114271142811429114301143111432114331143411435114361143711438114391144011441114421144311444114451144611447114481144911450114511145211453114541145511456114571145811459114601146111462114631146411465114661146711468114691147011471114721147311474114751147611477114781147911480114811148211483114841148511486114871148811489114901149111492114931149411495114961149711498114991150011501115021150311504115051150611507115081150911510115111151211513115141151511516115171151811519115201152111522115231152411525115261152711528115291153011531115321153311534115351153611537115381153911540115411154211543115441154511546115471154811549115501155111552115531155411555115561155711558115591156011561115621156311564115651156611567115681156911570115711157211573115741157511576115771157811579115801158111582115831158411585115861158711588115891159011591115921159311594115951159611597115981159911600116011160211603116041160511606116071160811609116101161111612116131161411615116161161711618116191162011621116221162311624116251162611627116281162911630116311163211633116341163511636116371163811639116401164111642116431164411645116461164711648116491165011651116521165311654116551165611657116581165911660116611166211663116641166511666116671166811669116701167111672116731167411675116761167711678116791168011681116821168311684116851168611687116881168911690116911169211693116941169511696116971169811699117001170111702117031170411705117061170711708117091171011711117121171311714117151171611717117181171911720117211172211723117241172511726117271172811729117301173111732117331173411735117361173711738117391174011741117421174311744117451174611747117481174911750117511175211753117541175511756117571175811759117601176111762117631176411765117661176711768117691177011771117721177311774117751177611777117781177911780117811178211783117841178511786117871178811789117901179111792117931179411795117961179711798117991180011801118021180311804118051180611807118081180911810118111181211813118141181511816118171181811819118201182111822118231182411825118261182711828118291183011831118321183311834118351183611837118381183911840118411184211843118441184511846118471184811849118501185111852118531185411855118561185711858118591186011861118621186311864118651186611867118681186911870118711187211873118741187511876118771187811879118801188111882118831188411885118861188711888118891189011891118921189311894118951189611897118981189911900119011190211903119041190511906119071190811909119101191111912119131191411915119161191711918119191192011921119221192311924119251192611927119281192911930119311193211933119341193511936119371193811939119401194111942119431194411945119461194711948119491195011951119521195311954119551195611957119581195911960119611196211963119641196511966119671196811969119701197111972119731197411975119761197711978119791198011981119821198311984119851198611987119881198911990119911199211993119941199511996119971199811999120001200112002120031200412005120061200712008120091201012011120121201312014120151201612017120181201912020120211202212023120241202512026120271202812029120301203112032120331203412035120361203712038120391204012041120421204312044120451204612047120481204912050120511205212053120541205512056120571205812059120601206112062120631206412065120661206712068120691207012071120721207312074120751207612077120781207912080120811208212083120841208512086120871208812089120901209112092120931209412095120961209712098120991210012101121021210312104121051210612107121081210912110121111211212113121141211512116121171211812119121201212112122121231212412125121261212712128121291213012131121321213312134121351213612137121381213912140121411214212143121441214512146121471214812149121501215112152121531215412155121561215712158121591216012161121621216312164121651216612167121681216912170121711217212173121741217512176121771217812179121801218112182121831218412185121861218712188121891219012191121921219312194121951219612197121981219912200122011220212203122041220512206122071220812209122101221112212122131221412215122161221712218122191222012221122221222312224122251222612227122281222912230122311223212233122341223512236122371223812239122401224112242122431224412245122461224712248122491225012251122521225312254122551225612257122581225912260122611226212263122641226512266122671226812269122701227112272122731227412275122761227712278122791228012281122821228312284122851228612287122881228912290122911229212293122941229512296122971229812299123001230112302123031230412305123061230712308123091231012311123121231312314123151231612317123181231912320123211232212323123241232512326123271232812329123301233112332123331233412335123361233712338123391234012341123421234312344123451234612347123481234912350123511235212353123541235512356123571235812359123601236112362123631236412365123661236712368123691237012371123721237312374123751237612377123781237912380123811238212383123841238512386123871238812389123901239112392123931239412395123961239712398123991240012401124021240312404124051240612407124081240912410124111241212413124141241512416124171241812419124201242112422124231242412425124261242712428124291243012431124321243312434124351243612437124381243912440124411244212443124441244512446124471244812449124501245112452124531245412455124561245712458124591246012461124621246312464124651246612467124681246912470124711247212473124741247512476124771247812479124801248112482124831248412485124861248712488124891249012491124921249312494124951249612497124981249912500125011250212503125041250512506125071250812509125101251112512125131251412515125161251712518125191252012521125221252312524125251252612527125281252912530125311253212533125341253512536125371253812539125401254112542125431254412545125461254712548125491255012551125521255312554125551255612557125581255912560125611256212563125641256512566125671256812569125701257112572125731257412575125761257712578125791258012581125821258312584125851258612587125881258912590125911259212593125941259512596125971259812599126001260112602126031260412605126061260712608126091261012611126121261312614126151261612617126181261912620126211262212623126241262512626126271262812629126301263112632126331263412635126361263712638126391264012641126421264312644126451264612647126481264912650126511265212653126541265512656126571265812659126601266112662126631266412665126661266712668126691267012671126721267312674126751267612677126781267912680126811268212683126841268512686126871268812689126901269112692126931269412695126961269712698126991270012701127021270312704127051270612707127081270912710127111271212713127141271512716127171271812719127201272112722127231272412725127261272712728127291273012731127321273312734127351273612737127381273912740127411274212743127441274512746127471274812749127501275112752127531275412755127561275712758127591276012761127621276312764127651276612767127681276912770127711277212773127741277512776127771277812779127801278112782127831278412785127861278712788127891279012791127921279312794127951279612797127981279912800128011280212803128041280512806128071280812809128101281112812128131281412815128161281712818128191282012821128221282312824128251282612827128281282912830128311283212833128341283512836128371283812839128401284112842128431284412845128461284712848128491285012851128521285312854128551285612857128581285912860128611286212863128641286512866128671286812869128701287112872128731287412875128761287712878128791288012881128821288312884128851288612887128881288912890128911289212893128941289512896128971289812899129001290112902129031290412905129061290712908129091291012911129121291312914129151291612917129181291912920129211292212923129241292512926129271292812929129301293112932129331293412935129361293712938129391294012941129421294312944129451294612947129481294912950129511295212953129541295512956129571295812959129601296112962129631296412965129661296712968129691297012971129721297312974129751297612977129781297912980129811298212983129841298512986129871298812989129901299112992129931299412995129961299712998129991300013001130021300313004130051300613007130081300913010130111301213013130141301513016130171301813019130201302113022130231302413025130261302713028130291303013031130321303313034130351303613037130381303913040130411304213043130441304513046130471304813049130501305113052130531305413055130561305713058130591306013061130621306313064130651306613067130681306913070130711307213073130741307513076130771307813079130801308113082130831308413085130861308713088130891309013091130921309313094130951309613097130981309913100131011310213103131041310513106131071310813109131101311113112131131311413115131161311713118131191312013121131221312313124131251312613127131281312913130131311313213133131341313513136131371313813139131401314113142131431314413145131461314713148131491315013151131521315313154131551315613157131581315913160131611316213163131641316513166131671316813169131701317113172131731317413175131761317713178131791318013181131821318313184131851318613187131881318913190131911319213193131941319513196131971319813199132001320113202132031320413205132061320713208132091321013211132121321313214132151321613217132181321913220132211322213223132241322513226132271322813229132301323113232132331323413235132361323713238132391324013241132421324313244132451324613247132481324913250132511325213253132541325513256132571325813259132601326113262132631326413265132661326713268132691327013271132721327313274132751327613277132781327913280132811328213283132841328513286132871328813289132901329113292132931329413295132961329713298132991330013301133021330313304133051330613307133081330913310133111331213313133141331513316133171331813319133201332113322133231332413325133261332713328133291333013331133321333313334133351333613337133381333913340133411334213343133441334513346133471334813349133501335113352133531335413355133561335713358133591336013361133621336313364133651336613367133681336913370133711337213373133741337513376133771337813379133801338113382133831338413385133861338713388133891339013391133921339313394133951339613397133981339913400134011340213403134041340513406134071340813409134101341113412134131341413415134161341713418134191342013421134221342313424134251342613427134281342913430134311343213433134341343513436134371343813439134401344113442134431344413445134461344713448134491345013451134521345313454134551345613457134581345913460134611346213463134641346513466134671346813469134701347113472134731347413475134761347713478134791348013481134821348313484134851348613487134881348913490134911349213493134941349513496134971349813499135001350113502135031350413505135061350713508135091351013511135121351313514135151351613517135181351913520135211352213523135241352513526135271352813529135301353113532135331353413535135361353713538135391354013541135421354313544135451354613547135481354913550135511355213553135541355513556135571355813559135601356113562135631356413565135661356713568135691357013571135721357313574135751357613577135781357913580135811358213583135841358513586135871358813589135901359113592135931359413595135961359713598135991360013601136021360313604136051360613607136081360913610136111361213613136141361513616136171361813619136201362113622136231362413625136261362713628136291363013631136321363313634136351363613637136381363913640136411364213643136441364513646136471364813649136501365113652136531365413655136561365713658136591366013661136621366313664136651366613667136681366913670136711367213673136741367513676136771367813679136801368113682136831368413685136861368713688136891369013691136921369313694136951369613697136981369913700137011370213703137041370513706137071370813709137101371113712137131371413715137161371713718137191372013721137221372313724137251372613727137281372913730137311373213733137341373513736137371373813739137401374113742137431374413745137461374713748137491375013751137521375313754137551375613757137581375913760137611376213763137641376513766137671376813769137701377113772137731377413775137761377713778137791378013781137821378313784137851378613787137881378913790137911379213793137941379513796137971379813799138001380113802138031380413805138061380713808138091381013811138121381313814138151381613817138181381913820138211382213823138241382513826138271382813829138301383113832138331383413835138361383713838138391384013841138421384313844138451384613847138481384913850138511385213853138541385513856138571385813859138601386113862138631386413865138661386713868138691387013871138721387313874138751387613877138781387913880138811388213883138841388513886138871388813889138901389113892138931389413895138961389713898138991390013901139021390313904139051390613907139081390913910139111391213913139141391513916139171391813919139201392113922139231392413925139261392713928139291393013931139321393313934139351393613937139381393913940139411394213943139441394513946139471394813949139501395113952139531395413955139561395713958139591396013961139621396313964139651396613967139681396913970139711397213973139741397513976139771397813979139801398113982139831398413985139861398713988139891399013991139921399313994139951399613997139981399914000140011400214003140041400514006140071400814009140101401114012140131401414015140161401714018140191402014021140221402314024140251402614027140281402914030140311403214033140341403514036140371403814039140401404114042140431404414045140461404714048140491405014051140521405314054140551405614057140581405914060140611406214063140641406514066140671406814069140701407114072140731407414075140761407714078140791408014081140821408314084140851408614087140881408914090140911409214093140941409514096140971409814099141001410114102141031410414105141061410714108141091411014111141121411314114141151411614117141181411914120141211412214123141241412514126141271412814129141301413114132141331413414135141361413714138141391414014141141421414314144141451414614147141481414914150141511415214153141541415514156141571415814159141601416114162141631416414165141661416714168141691417014171141721417314174141751417614177141781417914180141811418214183141841418514186141871418814189141901419114192141931419414195141961419714198141991420014201142021420314204142051420614207142081420914210142111421214213142141421514216142171421814219142201422114222142231422414225142261422714228142291423014231142321423314234142351423614237142381423914240142411424214243142441424514246142471424814249142501425114252142531425414255142561425714258142591426014261142621426314264142651426614267142681426914270142711427214273142741427514276142771427814279142801428114282142831428414285142861428714288142891429014291142921429314294142951429614297142981429914300143011430214303143041430514306143071430814309143101431114312143131431414315143161431714318143191432014321143221432314324143251432614327143281432914330143311433214333143341433514336143371433814339143401434114342143431434414345143461434714348143491435014351143521435314354143551435614357143581435914360143611436214363143641436514366143671436814369143701437114372143731437414375143761437714378143791438014381143821438314384143851438614387143881438914390143911439214393143941439514396143971439814399144001440114402144031440414405144061440714408144091441014411144121441314414144151441614417144181441914420144211442214423144241442514426144271442814429144301443114432144331443414435144361443714438144391444014441144421444314444144451444614447144481444914450144511445214453144541445514456144571445814459144601446114462144631446414465144661446714468144691447014471144721447314474144751447614477144781447914480144811448214483144841448514486144871448814489144901449114492144931449414495144961449714498144991450014501145021450314504145051450614507145081450914510145111451214513145141451514516145171451814519145201452114522145231452414525145261452714528145291453014531145321453314534145351453614537145381453914540145411454214543145441454514546145471454814549145501455114552145531455414555145561455714558145591456014561145621456314564145651456614567145681456914570145711457214573145741457514576145771457814579145801458114582145831458414585145861458714588145891459014591145921459314594145951459614597145981459914600146011460214603146041460514606146071460814609146101461114612146131461414615146161461714618146191462014621146221462314624146251462614627146281462914630146311463214633146341463514636146371463814639146401464114642146431464414645146461464714648146491465014651146521465314654146551465614657146581465914660146611466214663146641466514666146671466814669146701467114672146731467414675146761467714678146791468014681146821468314684146851468614687146881468914690146911469214693146941469514696146971469814699147001470114702147031470414705147061470714708147091471014711147121471314714147151471614717147181471914720147211472214723147241472514726147271472814729147301473114732147331473414735147361473714738147391474014741147421474314744147451474614747147481474914750147511475214753147541475514756147571475814759147601476114762147631476414765147661476714768147691477014771147721477314774147751477614777147781477914780147811478214783147841478514786147871478814789147901479114792147931479414795147961479714798147991480014801148021480314804148051480614807148081480914810148111481214813148141481514816148171481814819148201482114822148231482414825148261482714828148291483014831148321483314834148351483614837148381483914840148411484214843148441484514846148471484814849148501485114852148531485414855148561485714858148591486014861148621486314864148651486614867148681486914870148711487214873148741487514876148771487814879148801488114882148831488414885148861488714888148891489014891148921489314894148951489614897148981489914900149011490214903149041490514906149071490814909149101491114912149131491414915149161491714918149191492014921149221492314924149251492614927149281492914930149311493214933149341493514936149371493814939149401494114942149431494414945149461494714948149491495014951149521495314954149551495614957149581495914960149611496214963149641496514966149671496814969149701497114972149731497414975149761497714978149791498014981149821498314984149851498614987149881498914990149911499214993149941499514996149971499814999150001500115002150031500415005150061500715008150091501015011150121501315014150151501615017150181501915020150211502215023150241502515026150271502815029150301503115032150331503415035150361503715038150391504015041150421504315044150451504615047150481504915050150511505215053150541505515056150571505815059150601506115062150631506415065150661506715068150691507015071150721507315074150751507615077150781507915080150811508215083150841508515086150871508815089150901509115092150931509415095150961509715098150991510015101151021510315104151051510615107151081510915110151111511215113151141511515116151171511815119151201512115122151231512415125151261512715128151291513015131151321513315134151351513615137151381513915140151411514215143151441514515146151471514815149151501515115152151531515415155151561515715158151591516015161151621516315164151651516615167151681516915170151711517215173151741517515176151771517815179151801518115182151831518415185151861518715188151891519015191151921519315194151951519615197151981519915200152011520215203152041520515206152071520815209152101521115212152131521415215152161521715218152191522015221152221522315224152251522615227152281522915230152311523215233152341523515236152371523815239152401524115242152431524415245152461524715248152491525015251152521525315254152551525615257152581525915260152611526215263152641526515266152671526815269152701527115272152731527415275152761527715278152791528015281152821528315284152851528615287152881528915290152911529215293152941529515296152971529815299153001530115302153031530415305153061530715308153091531015311153121531315314153151531615317153181531915320153211532215323153241532515326153271532815329153301533115332153331533415335153361533715338153391534015341153421534315344153451534615347153481534915350153511535215353153541535515356153571535815359153601536115362153631536415365153661536715368153691537015371153721537315374153751537615377153781537915380153811538215383153841538515386153871538815389153901539115392153931539415395153961539715398153991540015401154021540315404154051540615407154081540915410154111541215413154141541515416154171541815419154201542115422154231542415425154261542715428154291543015431154321543315434154351543615437154381543915440154411544215443154441544515446154471544815449154501545115452154531545415455154561545715458154591546015461154621546315464154651546615467154681546915470154711547215473154741547515476154771547815479154801548115482154831548415485154861548715488154891549015491154921549315494154951549615497154981549915500155011550215503155041550515506155071550815509155101551115512155131551415515155161551715518155191552015521155221552315524155251552615527155281552915530155311553215533155341553515536155371553815539155401554115542155431554415545155461554715548155491555015551155521555315554155551555615557155581555915560155611556215563155641556515566155671556815569155701557115572155731557415575155761557715578155791558015581155821558315584155851558615587155881558915590155911559215593155941559515596155971559815599156001560115602156031560415605156061560715608156091561015611156121561315614156151561615617156181561915620156211562215623156241562515626156271562815629156301563115632156331563415635156361563715638156391564015641156421564315644156451564615647156481564915650156511565215653156541565515656156571565815659156601566115662156631566415665156661566715668156691567015671156721567315674156751567615677156781567915680156811568215683156841568515686156871568815689156901569115692156931569415695156961569715698156991570015701157021570315704157051570615707157081570915710157111571215713157141571515716157171571815719157201572115722157231572415725157261572715728157291573015731157321573315734157351573615737157381573915740157411574215743157441574515746157471574815749157501575115752157531575415755157561575715758157591576015761157621576315764157651576615767157681576915770157711577215773157741577515776157771577815779157801578115782157831578415785157861578715788157891579015791157921579315794157951579615797157981579915800158011580215803158041580515806158071580815809158101581115812158131581415815158161581715818158191582015821158221582315824158251582615827158281582915830158311583215833158341583515836158371583815839158401584115842158431584415845158461584715848158491585015851158521585315854158551585615857158581585915860158611586215863158641586515866158671586815869158701587115872158731587415875158761587715878158791588015881158821588315884158851588615887158881588915890158911589215893158941589515896158971589815899159001590115902159031590415905159061590715908159091591015911159121591315914159151591615917159181591915920159211592215923159241592515926159271592815929159301593115932159331593415935159361593715938159391594015941159421594315944159451594615947159481594915950159511595215953159541595515956159571595815959159601596115962159631596415965159661596715968159691597015971159721597315974159751597615977159781597915980159811598215983159841598515986159871598815989159901599115992159931599415995159961599715998159991600016001160021600316004160051600616007160081600916010160111601216013160141601516016160171601816019160201602116022160231602416025160261602716028160291603016031160321603316034160351603616037160381603916040160411604216043160441604516046160471604816049160501605116052160531605416055160561605716058160591606016061160621606316064160651606616067160681606916070160711607216073160741607516076160771607816079160801608116082160831608416085160861608716088160891609016091160921609316094160951609616097160981609916100161011610216103161041610516106161071610816109161101611116112161131611416115161161611716118161191612016121161221612316124161251612616127161281612916130161311613216133161341613516136161371613816139161401614116142161431614416145161461614716148161491615016151161521615316154161551615616157161581615916160161611616216163161641616516166161671616816169161701617116172161731617416175161761617716178161791618016181161821618316184161851618616187161881618916190161911619216193161941619516196161971619816199162001620116202162031620416205162061620716208162091621016211162121621316214162151621616217162181621916220162211622216223162241622516226162271622816229162301623116232162331623416235162361623716238162391624016241162421624316244162451624616247162481624916250162511625216253162541625516256162571625816259162601626116262162631626416265162661626716268162691627016271162721627316274162751627616277162781627916280162811628216283162841628516286162871628816289162901629116292162931629416295162961629716298162991630016301163021630316304163051630616307163081630916310163111631216313163141631516316163171631816319163201632116322163231632416325163261632716328163291633016331163321633316334163351633616337163381633916340163411634216343163441634516346163471634816349163501635116352163531635416355163561635716358163591636016361163621636316364163651636616367163681636916370163711637216373163741637516376163771637816379163801638116382163831638416385163861638716388163891639016391163921639316394163951639616397163981639916400164011640216403164041640516406164071640816409164101641116412164131641416415164161641716418164191642016421164221642316424164251642616427164281642916430164311643216433164341643516436164371643816439164401644116442164431644416445164461644716448164491645016451164521645316454164551645616457164581645916460164611646216463164641646516466164671646816469164701647116472164731647416475164761647716478164791648016481164821648316484164851648616487164881648916490164911649216493164941649516496164971649816499165001650116502165031650416505165061650716508165091651016511165121651316514165151651616517165181651916520165211652216523165241652516526165271652816529165301653116532165331653416535165361653716538165391654016541165421654316544165451654616547165481654916550165511655216553165541655516556165571655816559165601656116562165631656416565165661656716568165691657016571165721657316574165751657616577165781657916580165811658216583165841658516586165871658816589165901659116592165931659416595165961659716598165991660016601166021660316604166051660616607166081660916610166111661216613166141661516616166171661816619166201662116622166231662416625166261662716628166291663016631166321663316634166351663616637166381663916640166411664216643166441664516646166471664816649166501665116652166531665416655166561665716658166591666016661166621666316664166651666616667166681666916670166711667216673166741667516676166771667816679166801668116682166831668416685166861668716688166891669016691166921669316694166951669616697166981669916700167011670216703167041670516706167071670816709167101671116712167131671416715167161671716718167191672016721167221672316724167251672616727167281672916730167311673216733167341673516736167371673816739167401674116742167431674416745167461674716748167491675016751167521675316754167551675616757167581675916760167611676216763167641676516766167671676816769167701677116772167731677416775167761677716778167791678016781167821678316784167851678616787167881678916790167911679216793167941679516796167971679816799168001680116802168031680416805168061680716808168091681016811168121681316814168151681616817168181681916820168211682216823168241682516826168271682816829168301683116832168331683416835168361683716838168391684016841168421684316844168451684616847168481684916850168511685216853168541685516856168571685816859168601686116862168631686416865168661686716868168691687016871168721687316874168751687616877168781687916880168811688216883168841688516886168871688816889168901689116892168931689416895168961689716898168991690016901169021690316904169051690616907169081690916910169111691216913169141691516916169171691816919169201692116922169231692416925169261692716928169291693016931169321693316934169351693616937169381693916940169411694216943169441694516946169471694816949169501695116952169531695416955169561695716958169591696016961169621696316964169651696616967169681696916970169711697216973169741697516976169771697816979169801698116982169831698416985169861698716988169891699016991169921699316994169951699616997169981699917000170011700217003170041700517006170071700817009170101701117012170131701417015170161701717018170191702017021170221702317024170251702617027170281702917030170311703217033170341703517036170371703817039170401704117042170431704417045170461704717048170491705017051170521705317054170551705617057170581705917060170611706217063170641706517066170671706817069170701707117072170731707417075170761707717078170791708017081170821708317084170851708617087170881708917090170911709217093170941709517096170971709817099171001710117102171031710417105171061710717108171091711017111171121711317114171151711617117171181711917120171211712217123171241712517126171271712817129171301713117132171331713417135171361713717138171391714017141171421714317144171451714617147171481714917150171511715217153171541715517156171571715817159171601716117162171631716417165171661716717168171691717017171171721717317174171751717617177171781717917180171811718217183171841718517186171871718817189171901719117192171931719417195171961719717198171991720017201172021720317204172051720617207172081720917210172111721217213172141721517216172171721817219172201722117222172231722417225172261722717228172291723017231172321723317234172351723617237172381723917240172411724217243172441724517246172471724817249172501725117252172531725417255172561725717258172591726017261172621726317264172651726617267172681726917270172711727217273172741727517276172771727817279172801728117282172831728417285172861728717288172891729017291172921729317294172951729617297172981729917300173011730217303173041730517306173071730817309173101731117312173131731417315173161731717318
/********************************************************************** * Auto-generated by protocol-dts-generator.ts, do not edit manually. * **********************************************************************//** * The Chrome DevTools Protocol. * @public */export namespace Protocol { export type integer = number; /** * This domain is deprecated - use Runtime or Log instead. */ export namespace Console { export const enum ConsoleMessageSource { XML = "xml", Javascript = "javascript", Network = "network", ConsoleAPI = "console-api", Storage = "storage", Appcache = "appcache", Rendering = "rendering", Security = "security", Other = "other", Deprecation = "deprecation", Worker = "worker", } export const enum ConsoleMessageLevel { Log = "log", Warning = "warning", Error = "error", Debug = "debug", Info = "info", } /** * Console message. */ export interface ConsoleMessage { /** * Message source. (ConsoleMessageSource enum) */ source: | "xml" | "javascript" | "network" | "console-api" | "storage" | "appcache" | "rendering" | "security" | "other" | "deprecation" | "worker"; /** * Message severity. (ConsoleMessageLevel enum) */ level: "log" | "warning" | "error" | "debug" | "info"; /** * Message text. */ text: string; /** * URL of the message origin. */ url?: string; /** * Line number in the resource that generated this message (1-based). */ line?: integer; /** * Column number in the resource that generated this message (1-based). */ column?: integer; } /** * Issued when new console message is added. */ export interface MessageAddedEvent { /** * Console message that has been added. */ message: ConsoleMessage; } } /** * Debugger domain exposes JavaScript debugging capabilities. It allows setting and removing * breakpoints, stepping through execution, exploring stack traces, etc. */ export namespace Debugger { /** * Breakpoint identifier. */ export type BreakpointId = string; /** * Call frame identifier. */ export type CallFrameId = string; /** * Location in the source code. */ export interface Location { /** * Script identifier as reported in the `Debugger.scriptParsed`. */ scriptId: Runtime.ScriptId; /** * Line number in the script (0-based). */ lineNumber: integer; /** * Column number in the script (0-based). */ columnNumber?: integer; } /** * Location in the source code. */ export interface ScriptPosition { lineNumber: integer; columnNumber: integer; } /** * Location range within one script. */ export interface LocationRange { scriptId: Runtime.ScriptId; start: ScriptPosition; end: ScriptPosition; } /** * JavaScript call frame. Array of call frames form the call stack. */ export interface CallFrame { /** * Call frame identifier. This identifier is only valid while the virtual machine is paused. */ callFrameId: CallFrameId; /** * Name of the JavaScript function called on this call frame. */ functionName: string; /** * Location in the source code. */ functionLocation?: Location; /** * Location in the source code. */ location: Location; /** * JavaScript script name or url. * Deprecated in favor of using the `location.scriptId` to resolve the URL via a previously * sent `Debugger.scriptParsed` event. */ url: string; /** * Scope chain for this call frame. */ scopeChain: Scope[]; /** * `this` object for this call frame. */ this: Runtime.RemoteObject; /** * The value being returned, if the function is at return point. */ returnValue?: Runtime.RemoteObject; /** * Valid only while the VM is paused and indicates whether this frame * can be restarted or not. Note that a `true` value here does not * guarantee that Debugger#restartFrame with this CallFrameId will be * successful, but it is very likely. */ canBeRestarted?: boolean; } export const enum ScopeType { Global = "global", Local = "local", With = "with", Closure = "closure", Catch = "catch", Block = "block", Script = "script", Eval = "eval", Module = "module", WasmExpressionStack = "wasm-expression-stack", } /** * Scope description. */ export interface Scope { /** * Scope type. (ScopeType enum) */ type: | "global" | "local" | "with" | "closure" | "catch" | "block" | "script" | "eval" | "module" | "wasm-expression-stack"; /** * Object representing the scope. For `global` and `with` scopes it represents the actual * object; for the rest of the scopes, it is artificial transient object enumerating scope * variables as its properties. */ object: Runtime.RemoteObject; name?: string; /** * Location in the source code where scope starts */ startLocation?: Location; /** * Location in the source code where scope ends */ endLocation?: Location; } /** * Search match for resource. */ export interface SearchMatch { /** * Line number in resource content. */ lineNumber: number; /** * Line with match content. */ lineContent: string; } export const enum BreakLocationType { DebuggerStatement = "debuggerStatement", Call = "call", Return = "return", } export interface BreakLocation { /** * Script identifier as reported in the `Debugger.scriptParsed`. */ scriptId: Runtime.ScriptId; /** * Line number in the script (0-based). */ lineNumber: integer; /** * Column number in the script (0-based). */ columnNumber?: integer; /** * (BreakLocationType enum) */ type?: "debuggerStatement" | "call" | "return"; } /** * Enum of possible script languages. */ export type ScriptLanguage = "JavaScript" | "WebAssembly"; export const enum DebugSymbolsType { None = "None", SourceMap = "SourceMap", EmbeddedDWARF = "EmbeddedDWARF", ExternalDWARF = "ExternalDWARF", } /** * Debug symbols available for a wasm script. */ export interface DebugSymbols { /** * Type of the debug symbols. (DebugSymbolsType enum) */ type: "None" | "SourceMap" | "EmbeddedDWARF" | "ExternalDWARF"; /** * URL of the external symbol source. */ externalURL?: string; } export const enum ContinueToLocationRequestTargetCallFrames { Any = "any", Current = "current", } export interface ContinueToLocationRequest { /** * Location to continue to. */ location: Location; /** * (ContinueToLocationRequestTargetCallFrames enum) */ targetCallFrames?: "any" | "current"; } export interface EnableRequest { /** * The maximum size in bytes of collected scripts (not referenced by other heap objects) * the debugger can hold. Puts no limit if parameter is omitted. */ maxScriptsCacheSize?: number; } export interface EnableResponse { /** * Unique identifier of the debugger. */ debuggerId: Runtime.UniqueDebuggerId; } export interface EvaluateOnCallFrameRequest { /** * Call frame identifier to evaluate on. */ callFrameId: CallFrameId; /** * Expression to evaluate. */ expression: string; /** * String object group name to put result into (allows rapid releasing resulting object handles * using `releaseObjectGroup`). */ objectGroup?: string; /** * Specifies whether command line API should be available to the evaluated expression, defaults * to false. */ includeCommandLineAPI?: boolean; /** * In silent mode exceptions thrown during evaluation are not reported and do not pause * execution. Overrides `setPauseOnException` state. */ silent?: boolean; /** * Whether the result is expected to be a JSON object that should be sent by value. */ returnByValue?: boolean; /** * Whether preview should be generated for the result. */ generatePreview?: boolean; /** * Whether to throw an exception if side effect cannot be ruled out during evaluation. */ throwOnSideEffect?: boolean; /** * Terminate execution after timing out (number of milliseconds). */ timeout?: Runtime.TimeDelta; } export interface EvaluateOnCallFrameResponse { /** * Object wrapper for the evaluation result. */ result: Runtime.RemoteObject; /** * Exception details. */ exceptionDetails?: Runtime.ExceptionDetails; } export interface GetPossibleBreakpointsRequest { /** * Start of range to search possible breakpoint locations in. */ start: Location; /** * End of range to search possible breakpoint locations in (excluding). When not specified, end * of scripts is used as end of range. */ end?: Location; /** * Only consider locations which are in the same (non-nested) function as start. */ restrictToFunction?: boolean; } export interface GetPossibleBreakpointsResponse { /** * List of the possible breakpoint locations. */ locations: BreakLocation[]; } export interface GetScriptSourceRequest { /** * Id of the script to get source for. */ scriptId: Runtime.ScriptId; } export interface GetScriptSourceResponse { /** * Script source (empty in case of Wasm bytecode). */ scriptSource: string; /** * Wasm bytecode. (Encoded as a base64 string when passed over JSON) */ bytecode?: string; } export interface GetWasmBytecodeRequest { /** * Id of the Wasm script to get source for. */ scriptId: Runtime.ScriptId; } export interface GetWasmBytecodeResponse { /** * Script source. (Encoded as a base64 string when passed over JSON) */ bytecode: string; } export interface GetStackTraceRequest { stackTraceId: Runtime.StackTraceId; } export interface GetStackTraceResponse { stackTrace: Runtime.StackTrace; } export interface PauseOnAsyncCallRequest { /** * Debugger will pause when async call with given stack trace is started. */ parentStackTraceId: Runtime.StackTraceId; } export interface RemoveBreakpointRequest { breakpointId: BreakpointId; } export const enum RestartFrameRequestMode { StepInto = "StepInto", } export interface RestartFrameRequest { /** * Call frame identifier to evaluate on. */ callFrameId: CallFrameId; /** * The `mode` parameter must be present and set to 'StepInto', otherwise * `restartFrame` will error out. (RestartFrameRequestMode enum) */ mode?: "StepInto"; } export interface RestartFrameResponse { /** * New stack trace. */ callFrames: CallFrame[]; /** * Async stack trace, if any. */ asyncStackTrace?: Runtime.StackTrace; /** * Async stack trace, if any. */ asyncStackTraceId?: Runtime.StackTraceId; } export interface ResumeRequest { /** * Set to true to terminate execution upon resuming execution. In contrast * to Runtime.terminateExecution, this will allows to execute further * JavaScript (i.e. via evaluation) until execution of the paused code * is actually resumed, at which point termination is triggered. * If execution is currently not paused, this parameter has no effect. */ terminateOnResume?: boolean; } export interface SearchInContentRequest { /** * Id of the script to search in. */ scriptId: Runtime.ScriptId; /** * String to search for. */ query: string; /** * If true, search is case sensitive. */ caseSensitive?: boolean; /** * If true, treats string parameter as regex. */ isRegex?: boolean; } export interface SearchInContentResponse { /** * List of search matches. */ result: SearchMatch[]; } export interface SetAsyncCallStackDepthRequest { /** * Maximum depth of async call stacks. Setting to `0` will effectively disable collecting async * call stacks (default). */ maxDepth: integer; } export interface SetBlackboxPatternsRequest { /** * Array of regexps that will be used to check script url for blackbox state. */ patterns: string[]; } export interface SetBlackboxedRangesRequest { /** * Id of the script. */ scriptId: Runtime.ScriptId; positions: ScriptPosition[]; } export interface SetBreakpointRequest { /** * Location to set breakpoint in. */ location: Location; /** * Expression to use as a breakpoint condition. When specified, debugger will only stop on the * breakpoint if this expression evaluates to true. */ condition?: string; } export interface SetBreakpointResponse { /** * Id of the created breakpoint for further reference. */ breakpointId: BreakpointId; /** * Location this breakpoint resolved into. */ actualLocation: Location; } export const enum SetInstrumentationBreakpointRequestInstrumentation { BeforeScriptExecution = "beforeScriptExecution", BeforeScriptWithSourceMapExecution = "beforeScriptWithSourceMapExecution", } export interface SetInstrumentationBreakpointRequest { /** * Instrumentation name. (SetInstrumentationBreakpointRequestInstrumentation enum) */ instrumentation: | "beforeScriptExecution" | "beforeScriptWithSourceMapExecution"; } export interface SetInstrumentationBreakpointResponse { /** * Id of the created breakpoint for further reference. */ breakpointId: BreakpointId; } export interface SetBreakpointByUrlRequest { /** * Line number to set breakpoint at. */ lineNumber: integer; /** * URL of the resources to set breakpoint on. */ url?: string; /** * Regex pattern for the URLs of the resources to set breakpoints on. Either `url` or * `urlRegex` must be specified. */ urlRegex?: string; /** * Script hash of the resources to set breakpoint on. */ scriptHash?: string; /** * Offset in the line to set breakpoint at. */ columnNumber?: integer; /** * Expression to use as a breakpoint condition. When specified, debugger will only stop on the * breakpoint if this expression evaluates to true. */ condition?: string; } export interface SetBreakpointByUrlResponse { /** * Id of the created breakpoint for further reference. */ breakpointId: BreakpointId; /** * List of the locations this breakpoint resolved into upon addition. */ locations: Location[]; } export interface SetBreakpointOnFunctionCallRequest { /** * Function object id. */ objectId: Runtime.RemoteObjectId; /** * Expression to use as a breakpoint condition. When specified, debugger will * stop on the breakpoint if this expression evaluates to true. */ condition?: string; } export interface SetBreakpointOnFunctionCallResponse { /** * Id of the created breakpoint for further reference. */ breakpointId: BreakpointId; } export interface SetBreakpointsActiveRequest { /** * New value for breakpoints active state. */ active: boolean; } export const enum SetPauseOnExceptionsRequestState { None = "none", Uncaught = "uncaught", All = "all", } export interface SetPauseOnExceptionsRequest { /** * Pause on exceptions mode. (SetPauseOnExceptionsRequestState enum) */ state: "none" | "uncaught" | "all"; } export interface SetReturnValueRequest { /** * New return value. */ newValue: Runtime.CallArgument; } export const enum SetScriptSourceResponseStatus { Ok = "Ok", CompileError = "CompileError", BlockedByActiveGenerator = "BlockedByActiveGenerator", BlockedByActiveFunction = "BlockedByActiveFunction", } export interface SetScriptSourceRequest { /** * Id of the script to edit. */ scriptId: Runtime.ScriptId; /** * New content of the script. */ scriptSource: string; /** * If true the change will not actually be applied. Dry run may be used to get result * description without actually modifying the code. */ dryRun?: boolean; /** * If true, then `scriptSource` is allowed to change the function on top of the stack * as long as the top-most stack frame is the only activation of that function. */ allowTopFrameEditing?: boolean; } export interface SetScriptSourceResponse { /** * New stack trace in case editing has happened while VM was stopped. */ callFrames?: CallFrame[]; /** * Whether current call stack was modified after applying the changes. */ stackChanged?: boolean; /** * Async stack trace, if any. */ asyncStackTrace?: Runtime.StackTrace; /** * Async stack trace, if any. */ asyncStackTraceId?: Runtime.StackTraceId; /** * Whether the operation was successful or not. Only `Ok` denotes a * successful live edit while the other enum variants denote why * the live edit failed. (SetScriptSourceResponseStatus enum) */ status: | "Ok" | "CompileError" | "BlockedByActiveGenerator" | "BlockedByActiveFunction"; /** * Exception details if any. Only present when `status` is `CompileError`. */ exceptionDetails?: Runtime.ExceptionDetails; } export interface SetSkipAllPausesRequest { /** * New value for skip pauses state. */ skip: boolean; } export interface SetVariableValueRequest { /** * 0-based number of scope as was listed in scope chain. Only 'local', 'closure' and 'catch' * scope types are allowed. Other scopes could be manipulated manually. */ scopeNumber: integer; /** * Variable name. */ variableName: string; /** * New variable value. */ newValue: Runtime.CallArgument; /** * Id of callframe that holds variable. */ callFrameId: CallFrameId; } export interface StepIntoRequest { /** * Debugger will pause on the execution of the first async task which was scheduled * before next pause. */ breakOnAsyncCall?: boolean; /** * The skipList specifies location ranges that should be skipped on step into. */ skipList?: LocationRange[]; } export interface StepOverRequest { /** * The skipList specifies location ranges that should be skipped on step over. */ skipList?: LocationRange[]; } /** * Fired when breakpoint is resolved to an actual script and location. */ export interface BreakpointResolvedEvent { /** * Breakpoint unique identifier. */ breakpointId: BreakpointId; /** * Actual breakpoint location. */ location: Location; } export const enum PausedEventReason { Ambiguous = "ambiguous", Assert = "assert", CSPViolation = "CSPViolation", DebugCommand = "debugCommand", DOM = "DOM", EventListener = "EventListener", Exception = "exception", Instrumentation = "instrumentation", OOM = "OOM", Other = "other", PromiseRejection = "promiseRejection", XHR = "XHR", } /** * Fired when the virtual machine stopped on breakpoint or exception or any other stop criteria. */ export interface PausedEvent { /** * Call stack the virtual machine stopped on. */ callFrames: CallFrame[]; /** * Pause reason. (PausedEventReason enum) */ reason: | "ambiguous" | "assert" | "CSPViolation" | "debugCommand" | "DOM" | "EventListener" | "exception" | "instrumentation" | "OOM" | "other" | "promiseRejection" | "XHR"; /** * Object containing break-specific auxiliary properties. */ data?: any; /** * Hit breakpoints IDs */ hitBreakpoints?: string[]; /** * Async stack trace, if any. */ asyncStackTrace?: Runtime.StackTrace; /** * Async stack trace, if any. */ asyncStackTraceId?: Runtime.StackTraceId; /** * Never present, will be removed. */ asyncCallStackTraceId?: Runtime.StackTraceId; } /** * Fired when virtual machine fails to parse the script. */ export interface ScriptFailedToParseEvent { /** * Identifier of the script parsed. */ scriptId: Runtime.ScriptId; /** * URL or name of the script parsed (if any). */ url: string; /** * Line offset of the script within the resource with given URL (for script tags). */ startLine: integer; /** * Column offset of the script within the resource with given URL. */ startColumn: integer; /** * Last line of the script. */ endLine: integer; /** * Length of the last line of the script. */ endColumn: integer; /** * Specifies script creation context. */ executionContextId: Runtime.ExecutionContextId; /** * Content hash of the script, SHA-256. */ hash: string; /** * Embedder-specific auxiliary data. */ executionContextAuxData?: any; /** * URL of source map associated with script (if any). */ sourceMapURL?: string; /** * True, if this script has sourceURL. */ hasSourceURL?: boolean; /** * True, if this script is ES6 module. */ isModule?: boolean; /** * This script length. */ length?: integer; /** * JavaScript top stack frame of where the script parsed event was triggered if available. */ stackTrace?: Runtime.StackTrace; /** * If the scriptLanguage is WebAssembly, the code section offset in the module. */ codeOffset?: integer; /** * The language of the script. */ scriptLanguage?: Debugger.ScriptLanguage; /** * The name the embedder supplied for this script. */ embedderName?: string; } /** * Fired when virtual machine parses script. This event is also fired for all known and uncollected * scripts upon enabling debugger. */ export interface ScriptParsedEvent { /** * Identifier of the script parsed. */ scriptId: Runtime.ScriptId; /** * URL or name of the script parsed (if any). */ url: string; /** * Line offset of the script within the resource with given URL (for script tags). */ startLine: integer; /** * Column offset of the script within the resource with given URL. */ startColumn: integer; /** * Last line of the script. */ endLine: integer; /** * Length of the last line of the script. */ endColumn: integer; /** * Specifies script creation context. */ executionContextId: Runtime.ExecutionContextId; /** * Content hash of the script, SHA-256. */ hash: string; /** * Embedder-specific auxiliary data. */ executionContextAuxData?: any; /** * True, if this script is generated as a result of the live edit operation. */ isLiveEdit?: boolean; /** * URL of source map associated with script (if any). */ sourceMapURL?: string; /** * True, if this script has sourceURL. */ hasSourceURL?: boolean; /** * True, if this script is ES6 module. */ isModule?: boolean; /** * This script length. */ length?: integer; /** * JavaScript top stack frame of where the script parsed event was triggered if available. */ stackTrace?: Runtime.StackTrace; /** * If the scriptLanguage is WebAssembly, the code section offset in the module. */ codeOffset?: integer; /** * The language of the script. */ scriptLanguage?: Debugger.ScriptLanguage; /** * If the scriptLanguage is WebASsembly, the source of debug symbols for the module. */ debugSymbols?: Debugger.DebugSymbols; /** * The name the embedder supplied for this script. */ embedderName?: string; } } export namespace HeapProfiler { /** * Heap snapshot object id. */ export type HeapSnapshotObjectId = string; /** * Sampling Heap Profile node. Holds callsite information, allocation statistics and child nodes. */ export interface SamplingHeapProfileNode { /** * Function location. */ callFrame: Runtime.CallFrame; /** * Allocations size in bytes for the node excluding children. */ selfSize: number; /** * Node id. Ids are unique across all profiles collected between startSampling and stopSampling. */ id: integer; /** * Child nodes. */ children: SamplingHeapProfileNode[]; } /** * A single sample from a sampling profile. */ export interface SamplingHeapProfileSample { /** * Allocation size in bytes attributed to the sample. */ size: number; /** * Id of the corresponding profile tree node. */ nodeId: integer; /** * Time-ordered sample ordinal number. It is unique across all profiles retrieved * between startSampling and stopSampling. */ ordinal: number; } /** * Sampling profile. */ export interface SamplingHeapProfile { head: SamplingHeapProfileNode; samples: SamplingHeapProfileSample[]; } export interface AddInspectedHeapObjectRequest { /** * Heap snapshot object id to be accessible by means of $x command line API. */ heapObjectId: HeapSnapshotObjectId; } export interface GetHeapObjectIdRequest { /** * Identifier of the object to get heap object id for. */ objectId: Runtime.RemoteObjectId; } export interface GetHeapObjectIdResponse { /** * Id of the heap snapshot object corresponding to the passed remote object id. */ heapSnapshotObjectId: HeapSnapshotObjectId; } export interface GetObjectByHeapObjectIdRequest { objectId: HeapSnapshotObjectId; /** * Symbolic group name that can be used to release multiple objects. */ objectGroup?: string; } export interface GetObjectByHeapObjectIdResponse { /** * Evaluation result. */ result: Runtime.RemoteObject; } export interface GetSamplingProfileResponse { /** * Return the sampling profile being collected. */ profile: SamplingHeapProfile; } export interface StartSamplingRequest { /** * Average sample interval in bytes. Poisson distribution is used for the intervals. The * default value is 32768 bytes. */ samplingInterval?: number; } export interface StartTrackingHeapObjectsRequest { trackAllocations?: boolean; } export interface StopSamplingResponse { /** * Recorded sampling heap profile. */ profile: SamplingHeapProfile; } export interface StopTrackingHeapObjectsRequest { /** * If true 'reportHeapSnapshotProgress' events will be generated while snapshot is being taken * when the tracking is stopped. */ reportProgress?: boolean; /** * Deprecated in favor of `exposeInternals`. */ treatGlobalObjectsAsRoots?: boolean; /** * If true, numerical values are included in the snapshot */ captureNumericValue?: boolean; /** * If true, exposes internals of the snapshot. */ exposeInternals?: boolean; } export interface TakeHeapSnapshotRequest { /** * If true 'reportHeapSnapshotProgress' events will be generated while snapshot is being taken. */ reportProgress?: boolean; /** * If true, a raw snapshot without artificial roots will be generated. * Deprecated in favor of `exposeInternals`. */ treatGlobalObjectsAsRoots?: boolean; /** * If true, numerical values are included in the snapshot */ captureNumericValue?: boolean; /** * If true, exposes internals of the snapshot. */ exposeInternals?: boolean; } export interface AddHeapSnapshotChunkEvent { chunk: string; } /** * If heap objects tracking has been started then backend may send update for one or more fragments */ export interface HeapStatsUpdateEvent { /** * An array of triplets. Each triplet describes a fragment. The first integer is the fragment * index, the second integer is a total count of objects for the fragment, the third integer is * a total size of the objects for the fragment. */ statsUpdate: integer[]; } /** * If heap objects tracking has been started then backend regularly sends a current value for last * seen object id and corresponding timestamp. If the were changes in the heap since last event * then one or more heapStatsUpdate events will be sent before a new lastSeenObjectId event. */ export interface LastSeenObjectIdEvent { lastSeenObjectId: integer; timestamp: number; } export interface ReportHeapSnapshotProgressEvent { done: integer; total: integer; finished?: boolean; } } export namespace Profiler { /** * Profile node. Holds callsite information, execution statistics and child nodes. */ export interface ProfileNode { /** * Unique id of the node. */ id: integer; /** * Function location. */ callFrame: Runtime.CallFrame; /** * Number of samples where this node was on top of the call stack. */ hitCount?: integer; /** * Child node ids. */ children?: integer[]; /** * The reason of being not optimized. The function may be deoptimized or marked as don't * optimize. */ deoptReason?: string; /** * An array of source position ticks. */ positionTicks?: PositionTickInfo[]; } /** * Profile. */ export interface Profile { /** * The list of profile nodes. First item is the root node. */ nodes: ProfileNode[]; /** * Profiling start timestamp in microseconds. */ startTime: number; /** * Profiling end timestamp in microseconds. */ endTime: number; /** * Ids of samples top nodes. */ samples?: integer[]; /** * Time intervals between adjacent samples in microseconds. The first delta is relative to the * profile startTime. */ timeDeltas?: integer[]; } /** * Specifies a number of samples attributed to a certain source position. */ export interface PositionTickInfo { /** * Source line number (1-based). */ line: integer; /** * Number of samples attributed to the source line. */ ticks: integer; } /** * Coverage data for a source range. */ export interface CoverageRange { /** * JavaScript script source offset for the range start. */ startOffset: integer; /** * JavaScript script source offset for the range end. */ endOffset: integer; /** * Collected execution count of the source range. */ count: integer; } /** * Coverage data for a JavaScript function. */ export interface FunctionCoverage { /** * JavaScript function name. */ functionName: string; /** * Source ranges inside the function with coverage data. */ ranges: CoverageRange[]; /** * Whether coverage data for this function has block granularity. */ isBlockCoverage: boolean; } /** * Coverage data for a JavaScript script. */ export interface ScriptCoverage { /** * JavaScript script id. */ scriptId: Runtime.ScriptId; /** * JavaScript script name or url. */ url: string; /** * Functions contained in the script that has coverage data. */ functions: FunctionCoverage[]; } /** * Describes a type collected during runtime. */ export interface TypeObject { /** * Name of a type collected with type profiling. */ name: string; } /** * Source offset and types for a parameter or return value. */ export interface TypeProfileEntry { /** * Source offset of the parameter or end of function for return values. */ offset: integer; /** * The types for this parameter or return value. */ types: TypeObject[]; } /** * Type profile data collected during runtime for a JavaScript script. */ export interface ScriptTypeProfile { /** * JavaScript script id. */ scriptId: Runtime.ScriptId; /** * JavaScript script name or url. */ url: string; /** * Type profile entries for parameters and return values of the functions in the script. */ entries: TypeProfileEntry[]; } export interface GetBestEffortCoverageResponse { /** * Coverage data for the current isolate. */ result: ScriptCoverage[]; } export interface SetSamplingIntervalRequest { /** * New sampling interval in microseconds. */ interval: integer; } export interface StartPreciseCoverageRequest { /** * Collect accurate call counts beyond simple 'covered' or 'not covered'. */ callCount?: boolean; /** * Collect block-based coverage. */ detailed?: boolean; /** * Allow the backend to send updates on its own initiative */ allowTriggeredUpdates?: boolean; } export interface StartPreciseCoverageResponse { /** * Monotonically increasing time (in seconds) when the coverage update was taken in the backend. */ timestamp: number; } export interface StopResponse { /** * Recorded profile. */ profile: Profile; } export interface TakePreciseCoverageResponse { /** * Coverage data for the current isolate. */ result: ScriptCoverage[]; /** * Monotonically increasing time (in seconds) when the coverage update was taken in the backend. */ timestamp: number; } export interface TakeTypeProfileResponse { /** * Type profile for all scripts since startTypeProfile() was turned on. */ result: ScriptTypeProfile[]; } export interface ConsoleProfileFinishedEvent { id: string; /** * Location of console.profileEnd(). */ location: Debugger.Location; profile: Profile; /** * Profile title passed as an argument to console.profile(). */ title?: string; } /** * Sent when new profile recording is started using console.profile() call. */ export interface ConsoleProfileStartedEvent { id: string; /** * Location of console.profile(). */ location: Debugger.Location; /** * Profile title passed as an argument to console.profile(). */ title?: string; } /** * Reports coverage delta since the last poll (either from an event like this, or from * `takePreciseCoverage` for the current isolate. May only be sent if precise code * coverage has been started. This event can be trigged by the embedder to, for example, * trigger collection of coverage data immediately at a certain point in time. */ export interface PreciseCoverageDeltaUpdateEvent { /** * Monotonically increasing time (in seconds) when the coverage update was taken in the backend. */ timestamp: number; /** * Identifier for distinguishing coverage events. */ occasion: string; /** * Coverage data for the current isolate. */ result: ScriptCoverage[]; } } /** * Runtime domain exposes JavaScript runtime by means of remote evaluation and mirror objects. * Evaluation results are returned as mirror object that expose object type, string representation * and unique identifier that can be used for further object reference. Original objects are * maintained in memory unless they are either explicitly released or are released along with the * other objects in their object group. */ export namespace Runtime { /** * Unique script identifier. */ export type ScriptId = string; export const enum WebDriverValueType { Undefined = "undefined", Null = "null", String = "string", Number = "number", Boolean = "boolean", Bigint = "bigint", Regexp = "regexp", Date = "date", Symbol = "symbol", Array = "array", Object = "object", Function = "function", Map = "map", Set = "set", Weakmap = "weakmap", Weakset = "weakset", Error = "error", Proxy = "proxy", Promise = "promise", Typedarray = "typedarray", Arraybuffer = "arraybuffer", Node = "node", Window = "window", } /** * Represents the value serialiazed by the WebDriver BiDi specification * https://w3c.github.io/webdriver-bidi. */ export interface WebDriverValue { /** * (WebDriverValueType enum) */ type: | "undefined" | "null" | "string" | "number" | "boolean" | "bigint" | "regexp" | "date" | "symbol" | "array" | "object" | "function" | "map" | "set" | "weakmap" | "weakset" | "error" | "proxy" | "promise" | "typedarray" | "arraybuffer" | "node" | "window"; value?: any; objectId?: string; } /** * Unique object identifier. */ export type RemoteObjectId = string; /** * Primitive value which cannot be JSON-stringified. Includes values `-0`, `NaN`, `Infinity`, * `-Infinity`, and bigint literals. */ export type UnserializableValue = string; export const enum RemoteObjectType { Object = "object", Function = "function", Undefined = "undefined", String = "string", Number = "number", Boolean = "boolean", Symbol = "symbol", Bigint = "bigint", } export const enum RemoteObjectSubtype { Array = "array", Null = "null", Node = "node", Regexp = "regexp", Date = "date", Map = "map", Set = "set", Weakmap = "weakmap", Weakset = "weakset", Iterator = "iterator", Generator = "generator", Error = "error", Proxy = "proxy", Promise = "promise", Typedarray = "typedarray", Arraybuffer = "arraybuffer", Dataview = "dataview", Webassemblymemory = "webassemblymemory", Wasmvalue = "wasmvalue", } /** * Mirror object referencing original JavaScript object. */ export interface RemoteObject { /** * Object type. (RemoteObjectType enum) */ type: | "object" | "function" | "undefined" | "string" | "number" | "boolean" | "symbol" | "bigint"; /** * Object subtype hint. Specified for `object` type values only. * NOTE: If you change anything here, make sure to also update * `subtype` in `ObjectPreview` and `PropertyPreview` below. (RemoteObjectSubtype enum) */ subtype?: | "array" | "null" | "node" | "regexp" | "date" | "map" | "set" | "weakmap" | "weakset" | "iterator" | "generator" | "error" | "proxy" | "promise" | "typedarray" | "arraybuffer" | "dataview" | "webassemblymemory" | "wasmvalue"; /** * Object class (constructor) name. Specified for `object` type values only. */ className?: string; /** * Remote object value in case of primitive values or JSON values (if it was requested). */ value?: any; /** * Primitive value which can not be JSON-stringified does not have `value`, but gets this * property. */ unserializableValue?: UnserializableValue; /** * String representation of the object. */ description?: string; /** * WebDriver BiDi representation of the value. */ webDriverValue?: WebDriverValue; /** * Unique object identifier (for non-primitive values). */ objectId?: RemoteObjectId; /** * Preview containing abbreviated property values. Specified for `object` type values only. */ preview?: ObjectPreview; customPreview?: CustomPreview; } export interface CustomPreview { /** * The JSON-stringified result of formatter.header(object, config) call. * It contains json ML array that represents RemoteObject. */ header: string; /** * If formatter returns true as a result of formatter.hasBody call then bodyGetterId will * contain RemoteObjectId for the function that returns result of formatter.body(object, config) call. * The result value is json ML array. */ bodyGetterId?: RemoteObjectId; } export const enum ObjectPreviewType { Object = "object", Function = "function", Undefined = "undefined", String = "string", Number = "number", Boolean = "boolean", Symbol = "symbol", Bigint = "bigint", } export const enum ObjectPreviewSubtype { Array = "array", Null = "null", Node = "node", Regexp = "regexp", Date = "date", Map = "map", Set = "set", Weakmap = "weakmap", Weakset = "weakset", Iterator = "iterator", Generator = "generator", Error = "error", Proxy = "proxy", Promise = "promise", Typedarray = "typedarray", Arraybuffer = "arraybuffer", Dataview = "dataview", Webassemblymemory = "webassemblymemory", Wasmvalue = "wasmvalue", } /** * Object containing abbreviated remote object value. */ export interface ObjectPreview { /** * Object type. (ObjectPreviewType enum) */ type: | "object" | "function" | "undefined" | "string" | "number" | "boolean" | "symbol" | "bigint"; /** * Object subtype hint. Specified for `object` type values only. (ObjectPreviewSubtype enum) */ subtype?: | "array" | "null" | "node" | "regexp" | "date" | "map" | "set" | "weakmap" | "weakset" | "iterator" | "generator" | "error" | "proxy" | "promise" | "typedarray" | "arraybuffer" | "dataview" | "webassemblymemory" | "wasmvalue"; /** * String representation of the object. */ description?: string; /** * True iff some of the properties or entries of the original object did not fit. */ overflow: boolean; /** * List of the properties. */ properties: PropertyPreview[]; /** * List of the entries. Specified for `map` and `set` subtype values only. */ entries?: EntryPreview[]; } export const enum PropertyPreviewType { Object = "object", Function = "function", Undefined = "undefined", String = "string", Number = "number", Boolean = "boolean", Symbol = "symbol", Accessor = "accessor", Bigint = "bigint", } export const enum PropertyPreviewSubtype { Array = "array", Null = "null", Node = "node", Regexp = "regexp", Date = "date", Map = "map", Set = "set", Weakmap = "weakmap", Weakset = "weakset", Iterator = "iterator", Generator = "generator", Error = "error", Proxy = "proxy", Promise = "promise", Typedarray = "typedarray", Arraybuffer = "arraybuffer", Dataview = "dataview", Webassemblymemory = "webassemblymemory", Wasmvalue = "wasmvalue", } export interface PropertyPreview { /** * Property name. */ name: string; /** * Object type. Accessor means that the property itself is an accessor property. (PropertyPreviewType enum) */ type: | "object" | "function" | "undefined" | "string" | "number" | "boolean" | "symbol" | "accessor" | "bigint"; /** * User-friendly property value string. */ value?: string; /** * Nested value preview. */ valuePreview?: ObjectPreview; /** * Object subtype hint. Specified for `object` type values only. (PropertyPreviewSubtype enum) */ subtype?: | "array" | "null" | "node" | "regexp" | "date" | "map" | "set" | "weakmap" | "weakset" | "iterator" | "generator" | "error" | "proxy" | "promise" | "typedarray" | "arraybuffer" | "dataview" | "webassemblymemory" | "wasmvalue"; } export interface EntryPreview { /** * Preview of the key. Specified for map-like collection entries. */ key?: ObjectPreview; /** * Preview of the value. */ value: ObjectPreview; } /** * Object property descriptor. */ export interface PropertyDescriptor { /** * Property name or symbol description. */ name: string; /** * The value associated with the property. */ value?: RemoteObject; /** * True if the value associated with the property may be changed (data descriptors only). */ writable?: boolean; /** * A function which serves as a getter for the property, or `undefined` if there is no getter * (accessor descriptors only). */ get?: RemoteObject; /** * A function which serves as a setter for the property, or `undefined` if there is no setter * (accessor descriptors only). */ set?: RemoteObject; /** * True if the type of this property descriptor may be changed and if the property may be * deleted from the corresponding object. */ configurable: boolean; /** * True if this property shows up during enumeration of the properties on the corresponding * object. */ enumerable: boolean; /** * True if the result was thrown during the evaluation. */ wasThrown?: boolean; /** * True if the property is owned for the object. */ isOwn?: boolean; /** * Property symbol object, if the property is of the `symbol` type. */ symbol?: RemoteObject; } /** * Object internal property descriptor. This property isn't normally visible in JavaScript code. */ export interface InternalPropertyDescriptor { /** * Conventional property name. */ name: string; /** * The value associated with the property. */ value?: RemoteObject; } /** * Object private field descriptor. */ export interface PrivatePropertyDescriptor { /** * Private property name. */ name: string; /** * The value associated with the private property. */ value?: RemoteObject; /** * A function which serves as a getter for the private property, * or `undefined` if there is no getter (accessor descriptors only). */ get?: RemoteObject; /** * A function which serves as a setter for the private property, * or `undefined` if there is no setter (accessor descriptors only). */ set?: RemoteObject; } /** * Represents function call argument. Either remote object id `objectId`, primitive `value`, * unserializable primitive value or neither of (for undefined) them should be specified. */ export interface CallArgument { /** * Primitive value or serializable javascript object. */ value?: any; /** * Primitive value which can not be JSON-stringified. */ unserializableValue?: UnserializableValue; /** * Remote object handle. */ objectId?: RemoteObjectId; } /** * Id of an execution context. */ export type ExecutionContextId = integer; /** * Description of an isolated world. */ export interface ExecutionContextDescription { /** * Unique id of the execution context. It can be used to specify in which execution context * script evaluation should be performed. */ id: ExecutionContextId; /** * Execution context origin. */ origin: string; /** * Human readable name describing given context. */ name: string; /** * A system-unique execution context identifier. Unlike the id, this is unique across * multiple processes, so can be reliably used to identify specific context while backend * performs a cross-process navigation. */ uniqueId: string; /** * Embedder-specific auxiliary data. */ auxData?: any; } /** * Detailed information about exception (or error) that was thrown during script compilation or * execution. */ export interface ExceptionDetails { /** * Exception id. */ exceptionId: integer; /** * Exception text, which should be used together with exception object when available. */ text: string; /** * Line number of the exception location (0-based). */ lineNumber: integer; /** * Column number of the exception location (0-based). */ columnNumber: integer; /** * Script ID of the exception location. */ scriptId?: ScriptId; /** * URL of the exception location, to be used when the script was not reported. */ url?: string; /** * JavaScript stack trace if available. */ stackTrace?: StackTrace; /** * Exception object if available. */ exception?: RemoteObject; /** * Identifier of the context where exception happened. */ executionContextId?: ExecutionContextId; /** * Dictionary with entries of meta data that the client associated * with this exception, such as information about associated network * requests, etc. */ exceptionMetaData?: any; } /** * Number of milliseconds since epoch. */ export type Timestamp = number; /** * Number of milliseconds. */ export type TimeDelta = number; /** * Stack entry for runtime errors and assertions. */ export interface CallFrame { /** * JavaScript function name. */ functionName: string; /** * JavaScript script id. */ scriptId: ScriptId; /** * JavaScript script name or url. */ url: string; /** * JavaScript script line number (0-based). */ lineNumber: integer; /** * JavaScript script column number (0-based). */ columnNumber: integer; } /** * Call frames for assertions or error messages. */ export interface StackTrace { /** * String label of this stack trace. For async traces this may be a name of the function that * initiated the async call. */ description?: string; /** * JavaScript function name. */ callFrames: CallFrame[]; /** * Asynchronous JavaScript stack trace that preceded this stack, if available. */ parent?: StackTrace; /** * Asynchronous JavaScript stack trace that preceded this stack, if available. */ parentId?: StackTraceId; } /** * Unique identifier of current debugger. */ export type UniqueDebuggerId = string; /** * If `debuggerId` is set stack trace comes from another debugger and can be resolved there. This * allows to track cross-debugger calls. See `Runtime.StackTrace` and `Debugger.paused` for usages. */ export interface StackTraceId { id: string; debuggerId?: UniqueDebuggerId; } export interface AwaitPromiseRequest { /** * Identifier of the promise. */ promiseObjectId: RemoteObjectId; /** * Whether the result is expected to be a JSON object that should be sent by value. */ returnByValue?: boolean; /** * Whether preview should be generated for the result. */ generatePreview?: boolean; } export interface AwaitPromiseResponse { /** * Promise result. Will contain rejected value if promise was rejected. */ result: RemoteObject; /** * Exception details if stack strace is available. */ exceptionDetails?: ExceptionDetails; } export interface CallFunctionOnRequest { /** * Declaration of the function to call. */ functionDeclaration: string; /** * Identifier of the object to call function on. Either objectId or executionContextId should * be specified. */ objectId?: RemoteObjectId; /** * Call arguments. All call arguments must belong to the same JavaScript world as the target * object. */ arguments?: CallArgument[]; /** * In silent mode exceptions thrown during evaluation are not reported and do not pause * execution. Overrides `setPauseOnException` state. */ silent?: boolean; /** * Whether the result is expected to be a JSON object which should be sent by value. */ returnByValue?: boolean; /** * Whether preview should be generated for the result. */ generatePreview?: boolean; /** * Whether execution should be treated as initiated by user in the UI. */ userGesture?: boolean; /** * Whether execution should `await` for resulting value and return once awaited promise is * resolved. */ awaitPromise?: boolean; /** * Specifies execution context which global object will be used to call function on. Either * executionContextId or objectId should be specified. */ executionContextId?: ExecutionContextId; /** * Symbolic group name that can be used to release multiple objects. If objectGroup is not * specified and objectId is, objectGroup will be inherited from object. */ objectGroup?: string; /** * Whether to throw an exception if side effect cannot be ruled out during evaluation. */ throwOnSideEffect?: boolean; /** * Whether the result should contain `webDriverValue`, serialized according to * https://w3c.github.io/webdriver-bidi. This is mutually exclusive with `returnByValue`, but * resulting `objectId` is still provided. */ generateWebDriverValue?: boolean; } export interface CallFunctionOnResponse { /** * Call result. */ result: RemoteObject; /** * Exception details. */ exceptionDetails?: ExceptionDetails; } export interface CompileScriptRequest { /** * Expression to compile. */ expression: string; /** * Source url to be set for the script. */ sourceURL: string; /** * Specifies whether the compiled script should be persisted. */ persistScript: boolean; /** * Specifies in which execution context to perform script run. If the parameter is omitted the * evaluation will be performed in the context of the inspected page. */ executionContextId?: ExecutionContextId; } export interface CompileScriptResponse { /** * Id of the script. */ scriptId?: ScriptId; /** * Exception details. */ exceptionDetails?: ExceptionDetails; } export interface EvaluateRequest { /** * Expression to evaluate. */ expression: string; /** * Symbolic group name that can be used to release multiple objects. */ objectGroup?: string; /** * Determines whether Command Line API should be available during the evaluation. */ includeCommandLineAPI?: boolean; /** * In silent mode exceptions thrown during evaluation are not reported and do not pause * execution. Overrides `setPauseOnException` state. */ silent?: boolean; /** * Specifies in which execution context to perform evaluation. If the parameter is omitted the * evaluation will be performed in the context of the inspected page. * This is mutually exclusive with `uniqueContextId`, which offers an * alternative way to identify the execution context that is more reliable * in a multi-process environment. */ contextId?: ExecutionContextId; /** * Whether the result is expected to be a JSON object that should be sent by value. */ returnByValue?: boolean; /** * Whether preview should be generated for the result. */ generatePreview?: boolean; /** * Whether execution should be treated as initiated by user in the UI. */ userGesture?: boolean; /** * Whether execution should `await` for resulting value and return once awaited promise is * resolved. */ awaitPromise?: boolean; /** * Whether to throw an exception if side effect cannot be ruled out during evaluation. * This implies `disableBreaks` below. */ throwOnSideEffect?: boolean; /** * Terminate execution after timing out (number of milliseconds). */ timeout?: TimeDelta; /** * Disable breakpoints during execution. */ disableBreaks?: boolean; /** * Setting this flag to true enables `let` re-declaration and top-level `await`. * Note that `let` variables can only be re-declared if they originate from * `replMode` themselves. */ replMode?: boolean; /** * The Content Security Policy (CSP) for the target might block 'unsafe-eval' * which includes eval(), Function(), setTimeout() and setInterval() * when called with non-callable arguments. This flag bypasses CSP for this * evaluation and allows unsafe-eval. Defaults to true. */ allowUnsafeEvalBlockedByCSP?: boolean; /** * An alternative way to specify the execution context to evaluate in. * Compared to contextId that may be reused across processes, this is guaranteed to be * system-unique, so it can be used to prevent accidental evaluation of the expression * in context different than intended (e.g. as a result of navigation across process * boundaries). * This is mutually exclusive with `contextId`. */ uniqueContextId?: string; /** * Whether the result should be serialized according to https://w3c.github.io/webdriver-bidi. */ generateWebDriverValue?: boolean; } export interface EvaluateResponse { /** * Evaluation result. */ result: RemoteObject; /** * Exception details. */ exceptionDetails?: ExceptionDetails; } export interface GetIsolateIdResponse { /** * The isolate id. */ id: string; } export interface GetHeapUsageResponse { /** * Used heap size in bytes. */ usedSize: number; /** * Allocated heap size in bytes. */ totalSize: number; } export interface GetPropertiesRequest { /** * Identifier of the object to return properties for. */ objectId: RemoteObjectId; /** * If true, returns properties belonging only to the element itself, not to its prototype * chain. */ ownProperties?: boolean; /** * If true, returns accessor properties (with getter/setter) only; internal properties are not * returned either. */ accessorPropertiesOnly?: boolean; /** * Whether preview should be generated for the results. */ generatePreview?: boolean; /** * If true, returns non-indexed properties only. */ nonIndexedPropertiesOnly?: boolean; } export interface GetPropertiesResponse { /** * Object properties. */ result: PropertyDescriptor[]; /** * Internal object properties (only of the element itself). */ internalProperties?: InternalPropertyDescriptor[]; /** * Object private properties. */ privateProperties?: PrivatePropertyDescriptor[]; /** * Exception details. */ exceptionDetails?: ExceptionDetails; } export interface GlobalLexicalScopeNamesRequest { /** * Specifies in which execution context to lookup global scope variables. */ executionContextId?: ExecutionContextId; } export interface GlobalLexicalScopeNamesResponse { names: string[]; } export interface QueryObjectsRequest { /** * Identifier of the prototype to return objects for. */ prototypeObjectId: RemoteObjectId; /** * Symbolic group name that can be used to release the results. */ objectGroup?: string; } export interface QueryObjectsResponse { /** * Array with objects. */ objects: RemoteObject; } export interface ReleaseObjectRequest { /** * Identifier of the object to release. */ objectId: RemoteObjectId; } export interface ReleaseObjectGroupRequest { /** * Symbolic object group name. */ objectGroup: string; } export interface RunScriptRequest { /** * Id of the script to run. */ scriptId: ScriptId; /** * Specifies in which execution context to perform script run. If the parameter is omitted the * evaluation will be performed in the context of the inspected page. */ executionContextId?: ExecutionContextId; /** * Symbolic group name that can be used to release multiple objects. */ objectGroup?: string; /** * In silent mode exceptions thrown during evaluation are not reported and do not pause * execution. Overrides `setPauseOnException` state. */ silent?: boolean; /** * Determines whether Command Line API should be available during the evaluation. */ includeCommandLineAPI?: boolean; /** * Whether the result is expected to be a JSON object which should be sent by value. */ returnByValue?: boolean; /** * Whether preview should be generated for the result. */ generatePreview?: boolean; /** * Whether execution should `await` for resulting value and return once awaited promise is * resolved. */ awaitPromise?: boolean; } export interface RunScriptResponse { /** * Run result. */ result: RemoteObject; /** * Exception details. */ exceptionDetails?: ExceptionDetails; } export interface SetAsyncCallStackDepthRequest { /** * Maximum depth of async call stacks. Setting to `0` will effectively disable collecting async * call stacks (default). */ maxDepth: integer; } export interface SetCustomObjectFormatterEnabledRequest { enabled: boolean; } export interface SetMaxCallStackSizeToCaptureRequest { size: integer; } export interface AddBindingRequest { name: string; /** * If specified, the binding would only be exposed to the specified * execution context. If omitted and `executionContextName` is not set, * the binding is exposed to all execution contexts of the target. * This parameter is mutually exclusive with `executionContextName`. * Deprecated in favor of `executionContextName` due to an unclear use case * and bugs in implementation (crbug.com/1169639). `executionContextId` will be * removed in the future. */ executionContextId?: ExecutionContextId; /** * If specified, the binding is exposed to the executionContext with * matching name, even for contexts created after the binding is added. * See also `ExecutionContext.name` and `worldName` parameter to * `Page.addScriptToEvaluateOnNewDocument`. * This parameter is mutually exclusive with `executionContextId`. */ executionContextName?: string; } export interface RemoveBindingRequest { name: string; } export interface GetExceptionDetailsRequest { /** * The error object for which to resolve the exception details. */ errorObjectId: RemoteObjectId; } export interface GetExceptionDetailsResponse { exceptionDetails?: ExceptionDetails; } /** * Notification is issued every time when binding is called. */ export interface BindingCalledEvent { name: string; payload: string; /** * Identifier of the context where the call was made. */ executionContextId: ExecutionContextId; } export const enum ConsoleAPICalledEventType { Log = "log", Debug = "debug", Info = "info", Error = "error", Warning = "warning", Dir = "dir", DirXML = "dirxml", Table = "table", Trace = "trace", Clear = "clear", StartGroup = "startGroup", StartGroupCollapsed = "startGroupCollapsed", EndGroup = "endGroup", Assert = "assert", Profile = "profile", ProfileEnd = "profileEnd", Count = "count", TimeEnd = "timeEnd", } /** * Issued when console API was called. */ export interface ConsoleAPICalledEvent { /** * Type of the call. (ConsoleAPICalledEventType enum) */ type: | "log" | "debug" | "info" | "error" | "warning" | "dir" | "dirxml" | "table" | "trace" | "clear" | "startGroup" | "startGroupCollapsed" | "endGroup" | "assert" | "profile" | "profileEnd" | "count" | "timeEnd"; /** * Call arguments. */ args: RemoteObject[]; /** * Identifier of the context where the call was made. */ executionContextId: ExecutionContextId; /** * Call timestamp. */ timestamp: Timestamp; /** * Stack trace captured when the call was made. The async stack chain is automatically reported for * the following call types: `assert`, `error`, `trace`, `warning`. For other types the async call * chain can be retrieved using `Debugger.getStackTrace` and `stackTrace.parentId` field. */ stackTrace?: StackTrace; /** * Console context descriptor for calls on non-default console context (not console.*): * 'anonymous#unique-logger-id' for call on unnamed context, 'name#unique-logger-id' for call * on named context. */ context?: string; } /** * Issued when unhandled exception was revoked. */ export interface ExceptionRevokedEvent { /** * Reason describing why exception was revoked. */ reason: string; /** * The id of revoked exception, as reported in `exceptionThrown`. */ exceptionId: integer; } /** * Issued when exception was thrown and unhandled. */ export interface ExceptionThrownEvent { /** * Timestamp of the exception. */ timestamp: Timestamp; exceptionDetails: ExceptionDetails; } /** * Issued when new execution context is created. */ export interface ExecutionContextCreatedEvent { /** * A newly created execution context. */ context: ExecutionContextDescription; } /** * Issued when execution context is destroyed. */ export interface ExecutionContextDestroyedEvent { /** * Id of the destroyed context */ executionContextId: ExecutionContextId; } /** * Issued when object should be inspected (for example, as a result of inspect() command line API * call). */ export interface InspectRequestedEvent { object: RemoteObject; hints: any; /** * Identifier of the context where the call was made. */ executionContextId?: ExecutionContextId; } } /** * This domain is deprecated. */ export namespace Schema { /** * Description of the protocol domain. */ export interface Domain { /** * Domain name. */ name: string; /** * Domain version. */ version: string; } export interface GetDomainsResponse { /** * List of supported domains. */ domains: Domain[]; } } export namespace Accessibility { /** * Unique accessibility node identifier. */ export type AXNodeId = string; /** * Enum of possible property types. */ export type AXValueType = | "boolean" | "tristate" | "booleanOrUndefined" | "idref" | "idrefList" | "integer" | "node" | "nodeList" | "number" | "string" | "computedString" | "token" | "tokenList" | "domRelation" | "role" | "internalRole" | "valueUndefined"; /** * Enum of possible property sources. */ export type AXValueSourceType = | "attribute" | "implicit" | "style" | "contents" | "placeholder" | "relatedElement"; /** * Enum of possible native property sources (as a subtype of a particular AXValueSourceType). */ export type AXValueNativeSourceType = | "description" | "figcaption" | "label" | "labelfor" | "labelwrapped" | "legend" | "rubyannotation" | "tablecaption" | "title" | "other"; /** * A single source for a computed AX property. */ export interface AXValueSource { /** * What type of source this is. */ type: AXValueSourceType; /** * The value of this property source. */ value?: AXValue; /** * The name of the relevant attribute, if any. */ attribute?: string; /** * The value of the relevant attribute, if any. */ attributeValue?: AXValue; /** * Whether this source is superseded by a higher priority source. */ superseded?: boolean; /** * The native markup source for this value, e.g. a <label> element. */ nativeSource?: AXValueNativeSourceType; /** * The value, such as a node or node list, of the native source. */ nativeSourceValue?: AXValue; /** * Whether the value for this property is invalid. */ invalid?: boolean; /** * Reason for the value being invalid, if it is. */ invalidReason?: string; } export interface AXRelatedNode { /** * The BackendNodeId of the related DOM node. */ backendDOMNodeId: DOM.BackendNodeId; /** * The IDRef value provided, if any. */ idref?: string; /** * The text alternative of this node in the current context. */ text?: string; } export interface AXProperty { /** * The name of this property. */ name: AXPropertyName; /** * The value of this property. */ value: AXValue; } /** * A single computed AX property. */ export interface AXValue { /** * The type of this value. */ type: AXValueType; /** * The computed value of this property. */ value?: any; /** * One or more related nodes, if applicable. */ relatedNodes?: AXRelatedNode[]; /** * The sources which contributed to the computation of this property. */ sources?: AXValueSource[]; } /** * Values of AXProperty name: * - from 'busy' to 'roledescription': states which apply to every AX node * - from 'live' to 'root': attributes which apply to nodes in live regions * - from 'autocomplete' to 'valuetext': attributes which apply to widgets * - from 'checked' to 'selected': states which apply to widgets * - from 'activedescendant' to 'owns' - relationships between elements other than parent/child/sibling. */ export type AXPropertyName = | "busy" | "disabled" | "editable" | "focusable" | "focused" | "hidden" | "hiddenRoot" | "invalid" | "keyshortcuts" | "settable" | "roledescription" | "live" | "atomic" | "relevant" | "root" | "autocomplete" | "hasPopup" | "level" | "multiselectable" | "orientation" | "multiline" | "readonly" | "required" | "valuemin" | "valuemax" | "valuetext" | "checked" | "expanded" | "modal" | "pressed" | "selected" | "activedescendant" | "controls" | "describedby" | "details" | "errormessage" | "flowto" | "labelledby" | "owns"; /** * A node in the accessibility tree. */ export interface AXNode { /** * Unique identifier for this node. */ nodeId: AXNodeId; /** * Whether this node is ignored for accessibility */ ignored: boolean; /** * Collection of reasons why this node is hidden. */ ignoredReasons?: AXProperty[]; /** * This `Node`'s role, whether explicit or implicit. */ role?: AXValue; /** * The accessible name for this `Node`. */ name?: AXValue; /** * The accessible description for this `Node`. */ description?: AXValue; /** * The value for this `Node`. */ value?: AXValue; /** * All other properties */ properties?: AXProperty[]; /** * ID for this node's parent. */ parentId?: AXNodeId; /** * IDs for each of this node's child nodes. */ childIds?: AXNodeId[]; /** * The backend ID for the associated DOM node, if any. */ backendDOMNodeId?: DOM.BackendNodeId; /** * The frame ID for the frame associated with this nodes document. */ frameId?: Page.FrameId; } export interface GetPartialAXTreeRequest { /** * Identifier of the node to get the partial accessibility tree for. */ nodeId?: DOM.NodeId; /** * Identifier of the backend node to get the partial accessibility tree for. */ backendNodeId?: DOM.BackendNodeId; /** * JavaScript object id of the node wrapper to get the partial accessibility tree for. */ objectId?: Runtime.RemoteObjectId; /** * Whether to fetch this nodes ancestors, siblings and children. Defaults to true. */ fetchRelatives?: boolean; } export interface GetPartialAXTreeResponse { /** * The `Accessibility.AXNode` for this DOM node, if it exists, plus its ancestors, siblings and * children, if requested. */ nodes: AXNode[]; } export interface GetFullAXTreeRequest { /** * The maximum depth at which descendants of the root node should be retrieved. * If omitted, the full tree is returned. */ depth?: integer; /** * The frame for whose document the AX tree should be retrieved. * If omited, the root frame is used. */ frameId?: Page.FrameId; } export interface GetFullAXTreeResponse { nodes: AXNode[]; } export interface GetRootAXNodeRequest { /** * The frame in whose document the node resides. * If omitted, the root frame is used. */ frameId?: Page.FrameId; } export interface GetRootAXNodeResponse { node: AXNode; } export interface GetAXNodeAndAncestorsRequest { /** * Identifier of the node to get. */ nodeId?: DOM.NodeId; /** * Identifier of the backend node to get. */ backendNodeId?: DOM.BackendNodeId; /** * JavaScript object id of the node wrapper to get. */ objectId?: Runtime.RemoteObjectId; } export interface GetAXNodeAndAncestorsResponse { nodes: AXNode[]; } export interface GetChildAXNodesRequest { id: AXNodeId; /** * The frame in whose document the node resides. * If omitted, the root frame is used. */ frameId?: Page.FrameId; } export interface GetChildAXNodesResponse { nodes: AXNode[]; } export interface QueryAXTreeRequest { /** * Identifier of the node for the root to query. */ nodeId?: DOM.NodeId; /** * Identifier of the backend node for the root to query. */ backendNodeId?: DOM.BackendNodeId; /** * JavaScript object id of the node wrapper for the root to query. */ objectId?: Runtime.RemoteObjectId; /** * Find nodes with this computed name. */ accessibleName?: string; /** * Find nodes with this computed role. */ role?: string; } export interface QueryAXTreeResponse { /** * A list of `Accessibility.AXNode` matching the specified attributes, * including nodes that are ignored for accessibility. */ nodes: AXNode[]; } /** * The loadComplete event mirrors the load complete event sent by the browser to assistive * technology when the web page has finished loading. */ export interface LoadCompleteEvent { /** * New document root node. */ root: AXNode; } /** * The nodesUpdated event is sent every time a previously requested node has changed the in tree. */ export interface NodesUpdatedEvent { /** * Updated node data. */ nodes: AXNode[]; } } export namespace Animation { export const enum AnimationType { CSSTransition = "CSSTransition", CSSAnimation = "CSSAnimation", WebAnimation = "WebAnimation", } /** * Animation instance. */ export interface Animation { /** * `Animation`'s id. */ id: string; /** * `Animation`'s name. */ name: string; /** * `Animation`'s internal paused state. */ pausedState: boolean; /** * `Animation`'s play state. */ playState: string; /** * `Animation`'s playback rate. */ playbackRate: number; /** * `Animation`'s start time. */ startTime: number; /** * `Animation`'s current time. */ currentTime: number; /** * Animation type of `Animation`. (AnimationType enum) */ type: "CSSTransition" | "CSSAnimation" | "WebAnimation"; /** * `Animation`'s source animation node. */ source?: AnimationEffect; /** * A unique ID for `Animation` representing the sources that triggered this CSS * animation/transition. */ cssId?: string; } /** * AnimationEffect instance */ export interface AnimationEffect { /** * `AnimationEffect`'s delay. */ delay: number; /** * `AnimationEffect`'s end delay. */ endDelay: number; /** * `AnimationEffect`'s iteration start. */ iterationStart: number; /** * `AnimationEffect`'s iterations. */ iterations: number; /** * `AnimationEffect`'s iteration duration. */ duration: number; /** * `AnimationEffect`'s playback direction. */ direction: string; /** * `AnimationEffect`'s fill mode. */ fill: string; /** * `AnimationEffect`'s target node. */ backendNodeId?: DOM.BackendNodeId; /** * `AnimationEffect`'s keyframes. */ keyframesRule?: KeyframesRule; /** * `AnimationEffect`'s timing function. */ easing: string; } /** * Keyframes Rule */ export interface KeyframesRule { /** * CSS keyframed animation's name. */ name?: string; /** * List of animation keyframes. */ keyframes: KeyframeStyle[]; } /** * Keyframe Style */ export interface KeyframeStyle { /** * Keyframe's time offset. */ offset: string; /** * `AnimationEffect`'s timing function. */ easing: string; } export interface GetCurrentTimeRequest { /** * Id of animation. */ id: string; } export interface GetCurrentTimeResponse { /** * Current time of the page. */ currentTime: number; } export interface GetPlaybackRateResponse { /** * Playback rate for animations on page. */ playbackRate: number; } export interface ReleaseAnimationsRequest { /** * List of animation ids to seek. */ animations: string[]; } export interface ResolveAnimationRequest { /** * Animation id. */ animationId: string; } export interface ResolveAnimationResponse { /** * Corresponding remote object. */ remoteObject: Runtime.RemoteObject; } export interface SeekAnimationsRequest { /** * List of animation ids to seek. */ animations: string[]; /** * Set the current time of each animation. */ currentTime: number; } export interface SetPausedRequest { /** * Animations to set the pause state of. */ animations: string[]; /** * Paused state to set to. */ paused: boolean; } export interface SetPlaybackRateRequest { /** * Playback rate for animations on page */ playbackRate: number; } export interface SetTimingRequest { /** * Animation id. */ animationId: string; /** * Duration of the animation. */ duration: number; /** * Delay of the animation. */ delay: number; } /** * Event for when an animation has been cancelled. */ export interface AnimationCanceledEvent { /** * Id of the animation that was cancelled. */ id: string; } /** * Event for each animation that has been created. */ export interface AnimationCreatedEvent { /** * Id of the animation that was created. */ id: string; } /** * Event for animation that has been started. */ export interface AnimationStartedEvent { /** * Animation that was started. */ animation: Animation; } } /** * Audits domain allows investigation of page violations and possible improvements. */ export namespace Audits { /** * Information about a cookie that is affected by an inspector issue. */ export interface AffectedCookie { /** * The following three properties uniquely identify a cookie */ name: string; path: string; domain: string; } /** * Information about a request that is affected by an inspector issue. */ export interface AffectedRequest { /** * The unique request id. */ requestId: Network.RequestId; url?: string; } /** * Information about the frame affected by an inspector issue. */ export interface AffectedFrame { frameId: Page.FrameId; } export type CookieExclusionReason = | "ExcludeSameSiteUnspecifiedTreatedAsLax" | "ExcludeSameSiteNoneInsecure" | "ExcludeSameSiteLax" | "ExcludeSameSiteStrict" | "ExcludeInvalidSameParty" | "ExcludeSamePartyCrossPartyContext"; export type CookieWarningReason = | "WarnSameSiteUnspecifiedCrossSiteContext" | "WarnSameSiteNoneInsecure" | "WarnSameSiteUnspecifiedLaxAllowUnsafe" | "WarnSameSiteStrictLaxDowngradeStrict" | "WarnSameSiteStrictCrossDowngradeStrict" | "WarnSameSiteStrictCrossDowngradeLax" | "WarnSameSiteLaxCrossDowngradeStrict" | "WarnSameSiteLaxCrossDowngradeLax" | "WarnAttributeValueExceedsMaxSize"; export type CookieOperation = "SetCookie" | "ReadCookie"; /** * This information is currently necessary, as the front-end has a difficult * time finding a specific cookie. With this, we can convey specific error * information without the cookie. */ export interface CookieIssueDetails { /** * If AffectedCookie is not set then rawCookieLine contains the raw * Set-Cookie header string. This hints at a problem where the * cookie line is syntactically or semantically malformed in a way * that no valid cookie could be created. */ cookie?: AffectedCookie; rawCookieLine?: string; cookieWarningReasons: CookieWarningReason[]; cookieExclusionReasons: CookieExclusionReason[]; /** * Optionally identifies the site-for-cookies and the cookie url, which * may be used by the front-end as additional context. */ operation: CookieOperation; siteForCookies?: string; cookieUrl?: string; request?: AffectedRequest; } export type MixedContentResolutionStatus = | "MixedContentBlocked" | "MixedContentAutomaticallyUpgraded" | "MixedContentWarning"; export type MixedContentResourceType = | "AttributionSrc" | "Audio" | "Beacon" | "CSPReport" | "Download" | "EventSource" | "Favicon" | "Font" | "Form" | "Frame" | "Image" | "Import" | "Manifest" | "Ping" | "PluginData" | "PluginResource" | "Prefetch" | "Resource" | "Script" | "ServiceWorker" | "SharedWorker" | "Stylesheet" | "Track" | "Video" | "Worker" | "XMLHttpRequest" | "XSLT"; export interface MixedContentIssueDetails { /** * The type of resource causing the mixed content issue (css, js, iframe, * form,...). Marked as optional because it is mapped to from * blink::mojom::RequestContextType, which will be replaced * by network::mojom::RequestDestination */ resourceType?: MixedContentResourceType; /** * The way the mixed content issue is being resolved. */ resolutionStatus: MixedContentResolutionStatus; /** * The unsafe http url causing the mixed content issue. */ insecureURL: string; /** * The url responsible for the call to an unsafe url. */ mainResourceURL: string; /** * The mixed content request. * Does not always exist (e.g. for unsafe form submission urls). */ request?: AffectedRequest; /** * Optional because not every mixed content issue is necessarily linked to a frame. */ frame?: AffectedFrame; } /** * Enum indicating the reason a response has been blocked. These reasons are * refinements of the net error BLOCKED_BY_RESPONSE. */ export type BlockedByResponseReason = | "CoepFrameResourceNeedsCoepHeader" | "CoopSandboxedIFrameCannotNavigateToCoopPage" | "CorpNotSameOrigin" | "CorpNotSameOriginAfterDefaultedToSameOriginByCoep" | "CorpNotSameSite"; /** * Details for a request that has been blocked with the BLOCKED_BY_RESPONSE * code. Currently only used for COEP/COOP, but may be extended to include * some CSP errors in the future. */ export interface BlockedByResponseIssueDetails { request: AffectedRequest; parentFrame?: AffectedFrame; blockedFrame?: AffectedFrame; reason: BlockedByResponseReason; } export type HeavyAdResolutionStatus = "HeavyAdBlocked" | "HeavyAdWarning"; export type HeavyAdReason = | "NetworkTotalLimit" | "CpuTotalLimit" | "CpuPeakLimit"; export interface HeavyAdIssueDetails { /** * The resolution status, either blocking the content or warning. */ resolution: HeavyAdResolutionStatus; /** * The reason the ad was blocked, total network or cpu or peak cpu. */ reason: HeavyAdReason; /** * The frame that was blocked. */ frame: AffectedFrame; } export type ContentSecurityPolicyViolationType = | "kInlineViolation" | "kEvalViolation" | "kURLViolation" | "kTrustedTypesSinkViolation" | "kTrustedTypesPolicyViolation" | "kWasmEvalViolation"; export interface SourceCodeLocation { scriptId?: Runtime.ScriptId; url: string; lineNumber: integer; columnNumber: integer; } export interface ContentSecurityPolicyIssueDetails { /** * The url not included in allowed sources. */ blockedURL?: string; /** * Specific directive that is violated, causing the CSP issue. */ violatedDirective: string; isReportOnly: boolean; contentSecurityPolicyViolationType: ContentSecurityPolicyViolationType; frameAncestor?: AffectedFrame; sourceCodeLocation?: SourceCodeLocation; violatingNodeId?: DOM.BackendNodeId; } export type SharedArrayBufferIssueType = "TransferIssue" | "CreationIssue"; /** * Details for a issue arising from an SAB being instantiated in, or * transferred to a context that is not cross-origin isolated. */ export interface SharedArrayBufferIssueDetails { sourceCodeLocation: SourceCodeLocation; isWarning: boolean; type: SharedArrayBufferIssueType; } export type TwaQualityEnforcementViolationType = | "kHttpError" | "kUnavailableOffline" | "kDigitalAssetLinks"; export interface TrustedWebActivityIssueDetails { /** * The url that triggers the violation. */ url: string; violationType: TwaQualityEnforcementViolationType; httpStatusCode?: integer; /** * The package name of the Trusted Web Activity client app. This field is * only used when violation type is kDigitalAssetLinks. */ packageName?: string; /** * The signature of the Trusted Web Activity client app. This field is only * used when violation type is kDigitalAssetLinks. */ signature?: string; } export interface LowTextContrastIssueDetails { violatingNodeId: DOM.BackendNodeId; violatingNodeSelector: string; contrastRatio: number; thresholdAA: number; thresholdAAA: number; fontSize: string; fontWeight: string; } /** * Details for a CORS related issue, e.g. a warning or error related to * CORS RFC1918 enforcement. */ export interface CorsIssueDetails { corsErrorStatus: Network.CorsErrorStatus; isWarning: boolean; request: AffectedRequest; location?: SourceCodeLocation; initiatorOrigin?: string; resourceIPAddressSpace?: Network.IPAddressSpace; clientSecurityState?: Network.ClientSecurityState; } export type AttributionReportingIssueType = | "PermissionPolicyDisabled" | "AttributionSourceUntrustworthyOrigin" | "AttributionUntrustworthyOrigin" | "InvalidHeader"; /** * Details for issues around "Attribution Reporting API" usage. * Explainer: https://github.com/WICG/attribution-reporting-api */ export interface AttributionReportingIssueDetails { violationType: AttributionReportingIssueType; frame?: AffectedFrame; request?: AffectedRequest; violatingNodeId?: DOM.BackendNodeId; invalidParameter?: string; } /** * Details for issues about documents in Quirks Mode * or Limited Quirks Mode that affects page layouting. */ export interface QuirksModeIssueDetails { /** * If false, it means the document's mode is "quirks" * instead of "limited-quirks". */ isLimitedQuirksMode: boolean; documentNodeId: DOM.BackendNodeId; url: string; frameId: Page.FrameId; loaderId: Network.LoaderId; } export interface NavigatorUserAgentIssueDetails { url: string; location?: SourceCodeLocation; } export type GenericIssueErrorType = "CrossOriginPortalPostMessageError"; /** * Depending on the concrete errorType, different properties are set. */ export interface GenericIssueDetails { /** * Issues with the same errorType are aggregated in the frontend. */ errorType: GenericIssueErrorType; frameId?: Page.FrameId; } export type DeprecationIssueType = | "AuthorizationCoveredByWildcard" | "CanRequestURLHTTPContainingNewline" | "ChromeLoadTimesConnectionInfo" | "ChromeLoadTimesFirstPaintAfterLoadTime" | "ChromeLoadTimesWasAlternateProtocolAvailable" | "CookieWithTruncatingChar" | "CrossOriginAccessBasedOnDocumentDomain" | "CrossOriginWindowAlert" | "CrossOriginWindowConfirm" | "CSSSelectorInternalMediaControlsOverlayCastButton" | "DeprecationExample" | "DocumentDomainSettingWithoutOriginAgentClusterHeader" | "EventPath" | "GeolocationInsecureOrigin" | "GeolocationInsecureOriginDeprecatedNotRemoved" | "GetUserMediaInsecureOrigin" | "HostCandidateAttributeGetter" | "IdentityInCanMakePaymentEvent" | "InsecurePrivateNetworkSubresourceRequest" | "LegacyConstraintGoogIPv6" | "LocalCSSFileExtensionRejected" | "MediaSourceAbortRemove" | "MediaSourceDurationTruncatingBuffered" | "NoSysexWebMIDIWithoutPermission" | "NotificationInsecureOrigin" | "NotificationPermissionRequestedIframe" | "ObsoleteWebRtcCipherSuite" | "OpenWebDatabaseInsecureContext" | "PictureSourceSrc" | "PrefixedCancelAnimationFrame" | "PrefixedRequestAnimationFrame" | "PrefixedStorageInfo" | "PrefixedVideoDisplayingFullscreen" | "PrefixedVideoEnterFullscreen" | "PrefixedVideoEnterFullScreen" | "PrefixedVideoExitFullscreen" | "PrefixedVideoExitFullScreen" | "PrefixedVideoSupportsFullscreen" | "RangeExpand" | "RequestedSubresourceWithEmbeddedCredentials" | "RTCConstraintEnableDtlsSrtpFalse" | "RTCConstraintEnableDtlsSrtpTrue" | "RTCPeerConnectionComplexPlanBSdpUsingDefaultSdpSemantics" | "RTCPeerConnectionSdpSemanticsPlanB" | "RtcpMuxPolicyNegotiate" | "SharedArrayBufferConstructedWithoutIsolation" | "TextToSpeech_DisallowedByAutoplay" | "V8SharedArrayBufferConstructedInExtensionWithoutIsolation" | "XHRJSONEncodingDetection" | "XMLHttpRequestSynchronousInNonWorkerOutsideBeforeUnload" | "XRSupportsSession"; /** * This issue tracks information needed to print a deprecation message. * https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/core/frame/third_party/blink/renderer/core/frame/deprecation/README.md */ export interface DeprecationIssueDetails { affectedFrame?: AffectedFrame; sourceCodeLocation: SourceCodeLocation; type: DeprecationIssueType; } export type ClientHintIssueReason = | "MetaTagAllowListInvalidOrigin" | "MetaTagModifiedHTML"; export interface FederatedAuthRequestIssueDetails { federatedAuthRequestIssueReason: FederatedAuthRequestIssueReason; } /** * Represents the failure reason when a federated authentication reason fails. * Should be updated alongside RequestIdTokenStatus in * third_party/blink/public/mojom/devtools/inspector_issue.mojom to include * all cases except for success. */ export type FederatedAuthRequestIssueReason = | "ApprovalDeclined" | "TooManyRequests" | "ManifestListHttpNotFound" | "ManifestListNoResponse" | "ManifestListInvalidResponse" | "ManifestNotInManifestList" | "ManifestListTooBig" | "ManifestHttpNotFound" | "ManifestNoResponse" | "ManifestInvalidResponse" | "ClientMetadataHttpNotFound" | "ClientMetadataNoResponse" | "ClientMetadataInvalidResponse" | "ClientMetadataMissingPrivacyPolicyUrl" | "DisabledInSettings" | "ErrorFetchingSignin" | "InvalidSigninResponse" | "AccountsHttpNotFound" | "AccountsNoResponse" | "AccountsInvalidResponse" | "IdTokenHttpNotFound" | "IdTokenNoResponse" | "IdTokenInvalidResponse" | "IdTokenInvalidRequest" | "ErrorIdToken" | "Canceled"; /** * This issue tracks client hints related issues. It's used to deprecate old * features, encourage the use of new ones, and provide general guidance. */ export interface ClientHintIssueDetails { sourceCodeLocation: SourceCodeLocation; clientHintIssueReason: ClientHintIssueReason; } /** * A unique identifier for the type of issue. Each type may use one of the * optional fields in InspectorIssueDetails to convey more specific * information about the kind of issue. */ export type InspectorIssueCode = | "CookieIssue" | "MixedContentIssue" | "BlockedByResponseIssue" | "HeavyAdIssue" | "ContentSecurityPolicyIssue" | "SharedArrayBufferIssue" | "TrustedWebActivityIssue" | "LowTextContrastIssue" | "CorsIssue" | "AttributionReportingIssue" | "QuirksModeIssue" | "NavigatorUserAgentIssue" | "GenericIssue" | "DeprecationIssue" | "ClientHintIssue" | "FederatedAuthRequestIssue"; /** * This struct holds a list of optional fields with additional information * specific to the kind of issue. When adding a new issue code, please also * add a new optional field to this type. */ export interface InspectorIssueDetails { cookieIssueDetails?: CookieIssueDetails; mixedContentIssueDetails?: MixedContentIssueDetails; blockedByResponseIssueDetails?: BlockedByResponseIssueDetails; heavyAdIssueDetails?: HeavyAdIssueDetails; contentSecurityPolicyIssueDetails?: ContentSecurityPolicyIssueDetails; sharedArrayBufferIssueDetails?: SharedArrayBufferIssueDetails; twaQualityEnforcementDetails?: TrustedWebActivityIssueDetails; lowTextContrastIssueDetails?: LowTextContrastIssueDetails; corsIssueDetails?: CorsIssueDetails; attributionReportingIssueDetails?: AttributionReportingIssueDetails; quirksModeIssueDetails?: QuirksModeIssueDetails; navigatorUserAgentIssueDetails?: NavigatorUserAgentIssueDetails; genericIssueDetails?: GenericIssueDetails; deprecationIssueDetails?: DeprecationIssueDetails; clientHintIssueDetails?: ClientHintIssueDetails; federatedAuthRequestIssueDetails?: FederatedAuthRequestIssueDetails; } /** * A unique id for a DevTools inspector issue. Allows other entities (e.g. * exceptions, CDP message, console messages, etc.) to reference an issue. */ export type IssueId = string; /** * An inspector issue reported from the back-end. */ export interface InspectorIssue { code: InspectorIssueCode; details: InspectorIssueDetails; /** * A unique id for this issue. May be omitted if no other entity (e.g. * exception, CDP message, etc.) is referencing this issue. */ issueId?: IssueId; } export const enum GetEncodedResponseRequestEncoding { Webp = "webp", Jpeg = "jpeg", Png = "png", } export interface GetEncodedResponseRequest { /** * Identifier of the network request to get content for. */ requestId: Network.RequestId; /** * The encoding to use. (GetEncodedResponseRequestEncoding enum) */ encoding: "webp" | "jpeg" | "png"; /** * The quality of the encoding (0-1). (defaults to 1) */ quality?: number; /** * Whether to only return the size information (defaults to false). */ sizeOnly?: boolean; } export interface GetEncodedResponseResponse { /** * The encoded body as a base64 string. Omitted if sizeOnly is true. (Encoded as a base64 string when passed over JSON) */ body?: string; /** * Size before re-encoding. */ originalSize: integer; /** * Size after re-encoding. */ encodedSize: integer; } export interface CheckContrastRequest { /** * Whether to report WCAG AAA level issues. Default is false. */ reportAAA?: boolean; } export interface IssueAddedEvent { issue: InspectorIssue; } } /** * Defines events for background web platform features. */ export namespace BackgroundService { /** * The Background Service that will be associated with the commands/events. * Every Background Service operates independently, but they share the same * API. */ export type ServiceName = | "backgroundFetch" | "backgroundSync" | "pushMessaging" | "notifications" | "paymentHandler" | "periodicBackgroundSync"; /** * A key-value pair for additional event information to pass along. */ export interface EventMetadata { key: string; value: string; } export interface BackgroundServiceEvent { /** * Timestamp of the event (in seconds). */ timestamp: Network.TimeSinceEpoch; /** * The origin this event belongs to. */ origin: string; /** * The Service Worker ID that initiated the event. */ serviceWorkerRegistrationId: ServiceWorker.RegistrationID; /** * The Background Service this event belongs to. */ service: ServiceName; /** * A description of the event. */ eventName: string; /** * An identifier that groups related events together. */ instanceId: string; /** * A list of event-specific information. */ eventMetadata: EventMetadata[]; } export interface StartObservingRequest { service: ServiceName; } export interface StopObservingRequest { service: ServiceName; } export interface SetRecordingRequest { shouldRecord: boolean; service: ServiceName; } export interface ClearEventsRequest { service: ServiceName; } /** * Called when the recording state for the service has been updated. */ export interface RecordingStateChangedEvent { isRecording: boolean; service: ServiceName; } /** * Called with all existing backgroundServiceEvents when enabled, and all new * events afterwards if enabled and recording. */ export interface BackgroundServiceEventReceivedEvent { backgroundServiceEvent: BackgroundServiceEvent; } } /** * The Browser domain defines methods and events for browser managing. */ export namespace Browser { export type BrowserContextID = string; export type WindowID = integer; /** * The state of the browser window. */ export type WindowState = | "normal" | "minimized" | "maximized" | "fullscreen"; /** * Browser window bounds information */ export interface Bounds { /** * The offset from the left edge of the screen to the window in pixels. */ left?: integer; /** * The offset from the top edge of the screen to the window in pixels. */ top?: integer; /** * The window width in pixels. */ width?: integer; /** * The window height in pixels. */ height?: integer; /** * The window state. Default to normal. */ windowState?: WindowState; } export type PermissionType = | "accessibilityEvents" | "audioCapture" | "backgroundSync" | "backgroundFetch" | "clipboardReadWrite" | "clipboardSanitizedWrite" | "displayCapture" | "durableStorage" | "flash" | "geolocation" | "midi" | "midiSysex" | "nfc" | "notifications" | "paymentHandler" | "periodicBackgroundSync" | "protectedMediaIdentifier" | "sensors" | "videoCapture" | "videoCapturePanTiltZoom" | "idleDetection" | "wakeLockScreen" | "wakeLockSystem"; export type PermissionSetting = "granted" | "denied" | "prompt"; /** * Definition of PermissionDescriptor defined in the Permissions API: * https://w3c.github.io/permissions/#dictdef-permissiondescriptor. */ export interface PermissionDescriptor { /** * Name of permission. * See https://cs.chromium.org/chromium/src/third_party/blink/renderer/modules/permissions/permission_descriptor.idl for valid permission names. */ name: string; /** * For "midi" permission, may also specify sysex control. */ sysex?: boolean; /** * For "push" permission, may specify userVisibleOnly. * Note that userVisibleOnly = true is the only currently supported type. */ userVisibleOnly?: boolean; /** * For "clipboard" permission, may specify allowWithoutSanitization. */ allowWithoutSanitization?: boolean; /** * For "camera" permission, may specify panTiltZoom. */ panTiltZoom?: boolean; } /** * Browser command ids used by executeBrowserCommand. */ export type BrowserCommandId = "openTabSearch" | "closeTabSearch"; /** * Chrome histogram bucket. */ export interface Bucket { /** * Minimum value (inclusive). */ low: integer; /** * Maximum value (exclusive). */ high: integer; /** * Number of samples. */ count: integer; } /** * Chrome histogram. */ export interface Histogram { /** * Name. */ name: string; /** * Sum of sample values. */ sum: integer; /** * Total number of samples. */ count: integer; /** * Buckets. */ buckets: Bucket[]; } export interface SetPermissionRequest { /** * Descriptor of permission to override. */ permission: PermissionDescriptor; /** * Setting of the permission. */ setting: PermissionSetting; /** * Origin the permission applies to, all origins if not specified. */ origin?: string; /** * Context to override. When omitted, default browser context is used. */ browserContextId?: BrowserContextID; } export interface GrantPermissionsRequest { permissions: PermissionType[]; /** * Origin the permission applies to, all origins if not specified. */ origin?: string; /** * BrowserContext to override permissions. When omitted, default browser context is used. */ browserContextId?: BrowserContextID; } export interface ResetPermissionsRequest { /** * BrowserContext to reset permissions. When omitted, default browser context is used. */ browserContextId?: BrowserContextID; } export const enum SetDownloadBehaviorRequestBehavior { Deny = "deny", Allow = "allow", AllowAndName = "allowAndName", Default = "default", } export interface SetDownloadBehaviorRequest { /** * Whether to allow all or deny all download requests, or use default Chrome behavior if * available (otherwise deny). |allowAndName| allows download and names files according to * their dowmload guids. (SetDownloadBehaviorRequestBehavior enum) */ behavior: "deny" | "allow" | "allowAndName" | "default"; /** * BrowserContext to set download behavior. When omitted, default browser context is used. */ browserContextId?: BrowserContextID; /** * The default path to save downloaded files to. This is required if behavior is set to 'allow' * or 'allowAndName'. */ downloadPath?: string; /** * Whether to emit download events (defaults to false). */ eventsEnabled?: boolean; } export interface CancelDownloadRequest { /** * Global unique identifier of the download. */ guid: string; /** * BrowserContext to perform the action in. When omitted, default browser context is used. */ browserContextId?: BrowserContextID; } export interface GetVersionResponse { /** * Protocol version. */ protocolVersion: string; /** * Product name. */ product: string; /** * Product revision. */ revision: string; /** * User-Agent. */ userAgent: string; /** * V8 version. */ jsVersion: string; } export interface GetBrowserCommandLineResponse { /** * Commandline parameters */ arguments: string[]; } export interface GetHistogramsRequest { /** * Requested substring in name. Only histograms which have query as a * substring in their name are extracted. An empty or absent query returns * all histograms. */ query?: string; /** * If true, retrieve delta since last call. */ delta?: boolean; } export interface GetHistogramsResponse { /** * Histograms. */ histograms: Histogram[]; } export interface GetHistogramRequest { /** * Requested histogram name. */ name: string; /** * If true, retrieve delta since last call. */ delta?: boolean; } export interface GetHistogramResponse { /** * Histogram. */ histogram: Histogram; } export interface GetWindowBoundsRequest { /** * Browser window id. */ windowId: WindowID; } export interface GetWindowBoundsResponse { /** * Bounds information of the window. When window state is 'minimized', the restored window * position and size are returned. */ bounds: Bounds; } export interface GetWindowForTargetRequest { /** * Devtools agent host id. If called as a part of the session, associated targetId is used. */ targetId?: Target.TargetID; } export interface GetWindowForTargetResponse { /** * Browser window id. */ windowId: WindowID; /** * Bounds information of the window. When window state is 'minimized', the restored window * position and size are returned. */ bounds: Bounds; } export interface SetWindowBoundsRequest { /** * Browser window id. */ windowId: WindowID; /** * New window bounds. The 'minimized', 'maximized' and 'fullscreen' states cannot be combined * with 'left', 'top', 'width' or 'height'. Leaves unspecified fields unchanged. */ bounds: Bounds; } export interface SetDockTileRequest { badgeLabel?: string; /** * Png encoded image. (Encoded as a base64 string when passed over JSON) */ image?: string; } export interface ExecuteBrowserCommandRequest { commandId: BrowserCommandId; } /** * Fired when page is about to start a download. */ export interface DownloadWillBeginEvent { /** * Id of the frame that caused the download to begin. */ frameId: Page.FrameId; /** * Global unique identifier of the download. */ guid: string; /** * URL of the resource being downloaded. */ url: string; /** * Suggested file name of the resource (the actual name of the file saved on disk may differ). */ suggestedFilename: string; } export const enum DownloadProgressEventState { InProgress = "inProgress", Completed = "completed", Canceled = "canceled", } /** * Fired when download makes progress. Last call has |done| == true. */ export interface DownloadProgressEvent { /** * Global unique identifier of the download. */ guid: string; /** * Total expected bytes to download. */ totalBytes: number; /** * Total bytes received. */ receivedBytes: number; /** * Download status. (DownloadProgressEventState enum) */ state: "inProgress" | "completed" | "canceled"; } } /** * This domain exposes CSS read/write operations. All CSS objects (stylesheets, rules, and styles) * have an associated `id` used in subsequent operations on the related object. Each object type has * a specific `id` structure, and those are not interchangeable between objects of different kinds. * CSS objects can be loaded using the `get*ForNode()` calls (which accept a DOM node id). A client * can also keep track of stylesheets via the `styleSheetAdded`/`styleSheetRemoved` events and * subsequently load the required stylesheet contents using the `getStyleSheet[Text]()` methods. */ export namespace CSS { export type StyleSheetId = string; /** * Stylesheet type: "injected" for stylesheets injected via extension, "user-agent" for user-agent * stylesheets, "inspector" for stylesheets created by the inspector (i.e. those holding the "via * inspector" rules), "regular" for regular stylesheets. */ export type StyleSheetOrigin = | "injected" | "user-agent" | "inspector" | "regular"; /** * CSS rule collection for a single pseudo style. */ export interface PseudoElementMatches { /** * Pseudo element type. */ pseudoType: DOM.PseudoType; /** * Pseudo element custom ident. */ pseudoIdentifier?: string; /** * Matches of CSS rules applicable to the pseudo style. */ matches: RuleMatch[]; } /** * Inherited CSS rule collection from ancestor node. */ export interface InheritedStyleEntry { /** * The ancestor node's inline style, if any, in the style inheritance chain. */ inlineStyle?: CSSStyle; /** * Matches of CSS rules matching the ancestor node in the style inheritance chain. */ matchedCSSRules: RuleMatch[]; } /** * Inherited pseudo element matches from pseudos of an ancestor node. */ export interface InheritedPseudoElementMatches { /** * Matches of pseudo styles from the pseudos of an ancestor node. */ pseudoElements: PseudoElementMatches[]; } /** * Match data for a CSS rule. */ export interface RuleMatch { /** * CSS rule in the match. */ rule: CSSRule; /** * Matching selector indices in the rule's selectorList selectors (0-based). */ matchingSelectors: integer[]; } /** * Data for a simple selector (these are delimited by commas in a selector list). */ export interface Value { /** * Value text. */ text: string; /** * Value range in the underlying resource (if available). */ range?: SourceRange; } /** * Selector list data. */ export interface SelectorList { /** * Selectors in the list. */ selectors: Value[]; /** * Rule selector text. */ text: string; } /** * CSS stylesheet metainformation. */ export interface CSSStyleSheetHeader { /** * The stylesheet identifier. */ styleSheetId: StyleSheetId; /** * Owner frame identifier. */ frameId: Page.FrameId; /** * Stylesheet resource URL. Empty if this is a constructed stylesheet created using * new CSSStyleSheet() (but non-empty if this is a constructed sylesheet imported * as a CSS module script). */ sourceURL: string; /** * URL of source map associated with the stylesheet (if any). */ sourceMapURL?: string; /** * Stylesheet origin. */ origin: StyleSheetOrigin; /** * Stylesheet title. */ title: string; /** * The backend id for the owner node of the stylesheet. */ ownerNode?: DOM.BackendNodeId; /** * Denotes whether the stylesheet is disabled. */ disabled: boolean; /** * Whether the sourceURL field value comes from the sourceURL comment. */ hasSourceURL?: boolean; /** * Whether this stylesheet is created for STYLE tag by parser. This flag is not set for * document.written STYLE tags. */ isInline: boolean; /** * Whether this stylesheet is mutable. Inline stylesheets become mutable * after they have been modified via CSSOM API. * <link> element's stylesheets become mutable only if DevTools modifies them. * Constructed stylesheets (new CSSStyleSheet()) are mutable immediately after creation. */ isMutable: boolean; /** * True if this stylesheet is created through new CSSStyleSheet() or imported as a * CSS module script. */ isConstructed: boolean; /** * Line offset of the stylesheet within the resource (zero based). */ startLine: number; /** * Column offset of the stylesheet within the resource (zero based). */ startColumn: number; /** * Size of the content (in characters). */ length: number; /** * Line offset of the end of the stylesheet within the resource (zero based). */ endLine: number; /** * Column offset of the end of the stylesheet within the resource (zero based). */ endColumn: number; } /** * CSS rule representation. */ export interface CSSRule { /** * The css style sheet identifier (absent for user agent stylesheet and user-specified * stylesheet rules) this rule came from. */ styleSheetId?: StyleSheetId; /** * Rule selector data. */ selectorList: SelectorList; /** * Parent stylesheet's origin. */ origin: StyleSheetOrigin; /** * Associated style declaration. */ style: CSSStyle; /** * Media list array (for rules involving media queries). The array enumerates media queries * starting with the innermost one, going outwards. */ media?: CSSMedia[]; /** * Container query list array (for rules involving container queries). * The array enumerates container queries starting with the innermost one, going outwards. */ containerQueries?: CSSContainerQuery[]; /** * @supports CSS at-rule array. * The array enumerates @supports at-rules starting with the innermost one, going outwards. */ supports?: CSSSupports[]; /** * Cascade layer array. Contains the layer hierarchy that this rule belongs to starting * with the innermost layer and going outwards. */ layers?: CSSLayer[]; /** * @scope CSS at-rule array. * The array enumerates @scope at-rules starting with the innermost one, going outwards. */ scopes?: CSSScope[]; } /** * CSS coverage information. */ export interface RuleUsage { /** * The css style sheet identifier (absent for user agent stylesheet and user-specified * stylesheet rules) this rule came from. */ styleSheetId: StyleSheetId; /** * Offset of the start of the rule (including selector) from the beginning of the stylesheet. */ startOffset: number; /** * Offset of the end of the rule body from the beginning of the stylesheet. */ endOffset: number; /** * Indicates whether the rule was actually used by some element in the page. */ used: boolean; } /** * Text range within a resource. All numbers are zero-based. */ export interface SourceRange { /** * Start line of range. */ startLine: integer; /** * Start column of range (inclusive). */ startColumn: integer; /** * End line of range */ endLine: integer; /** * End column of range (exclusive). */ endColumn: integer; } export interface ShorthandEntry { /** * Shorthand name. */ name: string; /** * Shorthand value. */ value: string; /** * Whether the property has "!important" annotation (implies `false` if absent). */ important?: boolean; } export interface CSSComputedStyleProperty { /** * Computed style property name. */ name: string; /** * Computed style property value. */ value: string; } /** * CSS style representation. */ export interface CSSStyle { /** * The css style sheet identifier (absent for user agent stylesheet and user-specified * stylesheet rules) this rule came from. */ styleSheetId?: StyleSheetId; /** * CSS properties in the style. */ cssProperties: CSSProperty[]; /** * Computed values for all shorthands found in the style. */ shorthandEntries: ShorthandEntry[]; /** * Style declaration text (if available). */ cssText?: string; /** * Style declaration range in the enclosing stylesheet (if available). */ range?: SourceRange; } /** * CSS property declaration data. */ export interface CSSProperty { /** * The property name. */ name: string; /** * The property value. */ value: string; /** * Whether the property has "!important" annotation (implies `false` if absent). */ important?: boolean; /** * Whether the property is implicit (implies `false` if absent). */ implicit?: boolean; /** * The full property text as specified in the style. */ text?: string; /** * Whether the property is understood by the browser (implies `true` if absent). */ parsedOk?: boolean; /** * Whether the property is disabled by the user (present for source-based properties only). */ disabled?: boolean; /** * The entire property range in the enclosing style declaration (if available). */ range?: SourceRange; } export const enum CSSMediaSource { MediaRule = "mediaRule", ImportRule = "importRule", LinkedSheet = "linkedSheet", InlineSheet = "inlineSheet", } /** * CSS media rule descriptor. */ export interface CSSMedia { /** * Media query text. */ text: string; /** * Source of the media query: "mediaRule" if specified by a @media rule, "importRule" if * specified by an @import rule, "linkedSheet" if specified by a "media" attribute in a linked * stylesheet's LINK tag, "inlineSheet" if specified by a "media" attribute in an inline * stylesheet's STYLE tag. (CSSMediaSource enum) */ source: "mediaRule" | "importRule" | "linkedSheet" | "inlineSheet"; /** * URL of the document containing the media query description. */ sourceURL?: string; /** * The associated rule (@media or @import) header range in the enclosing stylesheet (if * available). */ range?: SourceRange; /** * Identifier of the stylesheet containing this object (if exists). */ styleSheetId?: StyleSheetId; /** * Array of media queries. */ mediaList?: MediaQuery[]; } /** * Media query descriptor. */ export interface MediaQuery { /** * Array of media query expressions. */ expressions: MediaQueryExpression[]; /** * Whether the media query condition is satisfied. */ active: boolean; } /** * Media query expression descriptor. */ export interface MediaQueryExpression { /** * Media query expression value. */ value: number; /** * Media query expression units. */ unit: string; /** * Media query expression feature. */ feature: string; /** * The associated range of the value text in the enclosing stylesheet (if available). */ valueRange?: SourceRange; /** * Computed length of media query expression (if applicable). */ computedLength?: number; } /** * CSS container query rule descriptor. */ export interface CSSContainerQuery { /** * Container query text. */ text: string; /** * The associated rule header range in the enclosing stylesheet (if * available). */ range?: SourceRange; /** * Identifier of the stylesheet containing this object (if exists). */ styleSheetId?: StyleSheetId; /** * Optional name for the container. */ name?: string; } /** * CSS Supports at-rule descriptor. */ export interface CSSSupports { /** * Supports rule text. */ text: string; /** * Whether the supports condition is satisfied. */ active: boolean; /** * The associated rule header range in the enclosing stylesheet (if * available). */ range?: SourceRange; /** * Identifier of the stylesheet containing this object (if exists). */ styleSheetId?: StyleSheetId; } /** * CSS Scope at-rule descriptor. */ export interface CSSScope { /** * Scope rule text. */ text: string; /** * The associated rule header range in the enclosing stylesheet (if * available). */ range?: SourceRange; /** * Identifier of the stylesheet containing this object (if exists). */ styleSheetId?: StyleSheetId; } /** * CSS Layer at-rule descriptor. */ export interface CSSLayer { /** * Layer name. */ text: string; /** * The associated rule header range in the enclosing stylesheet (if * available). */ range?: SourceRange; /** * Identifier of the stylesheet containing this object (if exists). */ styleSheetId?: StyleSheetId; } /** * CSS Layer data. */ export interface CSSLayerData { /** * Layer name. */ name: string; /** * Direct sub-layers */ subLayers?: CSSLayerData[]; /** * Layer order. The order determines the order of the layer in the cascade order. * A higher number has higher priority in the cascade order. */ order: number; } /** * Information about amount of glyphs that were rendered with given font. */ export interface PlatformFontUsage { /** * Font's family name reported by platform. */ familyName: string; /** * Indicates if the font was downloaded or resolved locally. */ isCustomFont: boolean; /** * Amount of glyphs that were rendered with this font. */ glyphCount: number; } /** * Information about font variation axes for variable fonts */ export interface FontVariationAxis { /** * The font-variation-setting tag (a.k.a. "axis tag"). */ tag: string; /** * Human-readable variation name in the default language (normally, "en"). */ name: string; /** * The minimum value (inclusive) the font supports for this tag. */ minValue: number; /** * The maximum value (inclusive) the font supports for this tag. */ maxValue: number; /** * The default value. */ defaultValue: number; } /** * Properties of a web font: https://www.w3.org/TR/2008/REC-CSS2-20080411/fonts.html#font-descriptions * and additional information such as platformFontFamily and fontVariationAxes. */ export interface FontFace { /** * The font-family. */ fontFamily: string; /** * The font-style. */ fontStyle: string; /** * The font-variant. */ fontVariant: string; /** * The font-weight. */ fontWeight: string; /** * The font-stretch. */ fontStretch: string; /** * The font-display. */ fontDisplay: string; /** * The unicode-range. */ unicodeRange: string; /** * The src. */ src: string; /** * The resolved platform font family */ platformFontFamily: string; /** * Available variation settings (a.k.a. "axes"). */ fontVariationAxes?: FontVariationAxis[]; } /** * CSS keyframes rule representation. */ export interface CSSKeyframesRule { /** * Animation name. */ animationName: Value; /** * List of keyframes. */ keyframes: CSSKeyframeRule[]; } /** * CSS keyframe rule representation. */ export interface CSSKeyframeRule { /** * The css style sheet identifier (absent for user agent stylesheet and user-specified * stylesheet rules) this rule came from. */ styleSheetId?: StyleSheetId; /** * Parent stylesheet's origin. */ origin: StyleSheetOrigin; /** * Associated key text. */ keyText: Value; /** * Associated style declaration. */ style: CSSStyle; } /** * A descriptor of operation to mutate style declaration text. */ export interface StyleDeclarationEdit { /** * The css style sheet identifier. */ styleSheetId: StyleSheetId; /** * The range of the style text in the enclosing stylesheet. */ range: SourceRange; /** * New style text. */ text: string; } export interface AddRuleRequest { /** * The css style sheet identifier where a new rule should be inserted. */ styleSheetId: StyleSheetId; /** * The text of a new rule. */ ruleText: string; /** * Text position of a new rule in the target style sheet. */ location: SourceRange; } export interface AddRuleResponse { /** * The newly created rule. */ rule: CSSRule; } export interface CollectClassNamesRequest { styleSheetId: StyleSheetId; } export interface CollectClassNamesResponse { /** * Class name list. */ classNames: string[]; } export interface CreateStyleSheetRequest { /** * Identifier of the frame where "via-inspector" stylesheet should be created. */ frameId: Page.FrameId; } export interface CreateStyleSheetResponse { /** * Identifier of the created "via-inspector" stylesheet. */ styleSheetId: StyleSheetId; } export interface ForcePseudoStateRequest { /** * The element id for which to force the pseudo state. */ nodeId: DOM.NodeId; /** * any pseudo classes to force when computing the element's style. */ forcedPseudoClasses: string[]; } export interface GetBackgroundColorsRequest { /** * Id of the node to get background colors for. */ nodeId: DOM.NodeId; } export interface GetBackgroundColorsResponse { /** * The range of background colors behind this element, if it contains any visible text. If no * visible text is present, this will be undefined. In the case of a flat background color, * this will consist of simply that color. In the case of a gradient, this will consist of each * of the color stops. For anything more complicated, this will be an empty array. Images will * be ignored (as if the image had failed to load). */ backgroundColors?: string[]; /** * The computed font size for this node, as a CSS computed value string (e.g. '12px'). */ computedFontSize?: string; /** * The computed font weight for this node, as a CSS computed value string (e.g. 'normal' or * '100'). */ computedFontWeight?: string; } export interface GetComputedStyleForNodeRequest { nodeId: DOM.NodeId; } export interface GetComputedStyleForNodeResponse { /** * Computed style for the specified DOM node. */ computedStyle: CSSComputedStyleProperty[]; } export interface GetInlineStylesForNodeRequest { nodeId: DOM.NodeId; } export interface GetInlineStylesForNodeResponse { /** * Inline style for the specified DOM node. */ inlineStyle?: CSSStyle; /** * Attribute-defined element style (e.g. resulting from "width=20 height=100%"). */ attributesStyle?: CSSStyle; } export interface GetMatchedStylesForNodeRequest { nodeId: DOM.NodeId; } export interface GetMatchedStylesForNodeResponse { /** * Inline style for the specified DOM node. */ inlineStyle?: CSSStyle; /** * Attribute-defined element style (e.g. resulting from "width=20 height=100%"). */ attributesStyle?: CSSStyle; /** * CSS rules matching this node, from all applicable stylesheets. */ matchedCSSRules?: RuleMatch[]; /** * Pseudo style matches for this node. */ pseudoElements?: PseudoElementMatches[]; /** * A chain of inherited styles (from the immediate node parent up to the DOM tree root). */ inherited?: InheritedStyleEntry[]; /** * A chain of inherited pseudo element styles (from the immediate node parent up to the DOM tree root). */ inheritedPseudoElements?: InheritedPseudoElementMatches[]; /** * A list of CSS keyframed animations matching this node. */ cssKeyframesRules?: CSSKeyframesRule[]; } export interface GetMediaQueriesResponse { medias: CSSMedia[]; } export interface GetPlatformFontsForNodeRequest { nodeId: DOM.NodeId; } export interface GetPlatformFontsForNodeResponse { /** * Usage statistics for every employed platform font. */ fonts: PlatformFontUsage[]; } export interface GetStyleSheetTextRequest { styleSheetId: StyleSheetId; } export interface GetStyleSheetTextResponse { /** * The stylesheet text. */ text: string; } export interface GetLayersForNodeRequest { nodeId: DOM.NodeId; } export interface GetLayersForNodeResponse { rootLayer: CSSLayerData; } export interface TrackComputedStyleUpdatesRequest { propertiesToTrack: CSSComputedStyleProperty[]; } export interface TakeComputedStyleUpdatesResponse { /** * The list of node Ids that have their tracked computed styles updated */ nodeIds: DOM.NodeId[]; } export interface SetEffectivePropertyValueForNodeRequest { /** * The element id for which to set property. */ nodeId: DOM.NodeId; propertyName: string; value: string; } export interface SetKeyframeKeyRequest { styleSheetId: StyleSheetId; range: SourceRange; keyText: string; } export interface SetKeyframeKeyResponse { /** * The resulting key text after modification. */ keyText: Value; } export interface SetMediaTextRequest { styleSheetId: StyleSheetId; range: SourceRange; text: string; } export interface SetMediaTextResponse { /** * The resulting CSS media rule after modification. */ media: CSSMedia; } export interface SetContainerQueryTextRequest { styleSheetId: StyleSheetId; range: SourceRange; text: string; } export interface SetContainerQueryTextResponse { /** * The resulting CSS container query rule after modification. */ containerQuery: CSSContainerQuery; } export interface SetSupportsTextRequest { styleSheetId: StyleSheetId; range: SourceRange; text: string; } export interface SetSupportsTextResponse { /** * The resulting CSS Supports rule after modification. */ supports: CSSSupports; } export interface SetScopeTextRequest { styleSheetId: StyleSheetId; range: SourceRange; text: string; } export interface SetScopeTextResponse { /** * The resulting CSS Scope rule after modification. */ scope: CSSScope; } export interface SetRuleSelectorRequest { styleSheetId: StyleSheetId; range: SourceRange; selector: string; } export interface SetRuleSelectorResponse { /** * The resulting selector list after modification. */ selectorList: SelectorList; } export interface SetStyleSheetTextRequest { styleSheetId: StyleSheetId; text: string; } export interface SetStyleSheetTextResponse { /** * URL of source map associated with script (if any). */ sourceMapURL?: string; } export interface SetStyleTextsRequest { edits: StyleDeclarationEdit[]; } export interface SetStyleTextsResponse { /** * The resulting styles after modification. */ styles: CSSStyle[]; } export interface StopRuleUsageTrackingResponse { ruleUsage: RuleUsage[]; } export interface TakeCoverageDeltaResponse { coverage: RuleUsage[]; /** * Monotonically increasing time, in seconds. */ timestamp: number; } export interface SetLocalFontsEnabledRequest { /** * Whether rendering of local fonts is enabled. */ enabled: boolean; } /** * Fires whenever a web font is updated. A non-empty font parameter indicates a successfully loaded * web font */ export interface FontsUpdatedEvent { /** * The web font that has loaded. */ font?: FontFace; } /** * Fired whenever an active document stylesheet is added. */ export interface StyleSheetAddedEvent { /** * Added stylesheet metainfo. */ header: CSSStyleSheetHeader; } /** * Fired whenever a stylesheet is changed as a result of the client operation. */ export interface StyleSheetChangedEvent { styleSheetId: StyleSheetId; } /** * Fired whenever an active document stylesheet is removed. */ export interface StyleSheetRemovedEvent { /** * Identifier of the removed stylesheet. */ styleSheetId: StyleSheetId; } } export namespace CacheStorage { /** * Unique identifier of the Cache object. */ export type CacheId = string; /** * type of HTTP response cached */ export type CachedResponseType = | "basic" | "cors" | "default" | "error" | "opaqueResponse" | "opaqueRedirect"; /** * Data entry. */ export interface DataEntry { /** * Request URL. */ requestURL: string; /** * Request method. */ requestMethod: string; /** * Request headers */ requestHeaders: Header[]; /** * Number of seconds since epoch. */ responseTime: number; /** * HTTP response status code. */ responseStatus: integer; /** * HTTP response status text. */ responseStatusText: string; /** * HTTP response type */ responseType: CachedResponseType; /** * Response headers */ responseHeaders: Header[]; } /** * Cache identifier. */ export interface Cache { /** * An opaque unique id of the cache. */ cacheId: CacheId; /** * Security origin of the cache. */ securityOrigin: string; /** * The name of the cache. */ cacheName: string; } export interface Header { name: string; value: string; } /** * Cached response */ export interface CachedResponse { /** * Entry content, base64-encoded. (Encoded as a base64 string when passed over JSON) */ body: string; } export interface DeleteCacheRequest { /** * Id of cache for deletion. */ cacheId: CacheId; } export interface DeleteEntryRequest { /** * Id of cache where the entry will be deleted. */ cacheId: CacheId; /** * URL spec of the request. */ request: string; } export interface RequestCacheNamesRequest { /** * Security origin. */ securityOrigin: string; } export interface RequestCacheNamesResponse { /** * Caches for the security origin. */ caches: Cache[]; } export interface RequestCachedResponseRequest { /** * Id of cache that contains the entry. */ cacheId: CacheId; /** * URL spec of the request. */ requestURL: string; /** * headers of the request. */ requestHeaders: Header[]; } export interface RequestCachedResponseResponse { /** * Response read from the cache. */ response: CachedResponse; } export interface RequestEntriesRequest { /** * ID of cache to get entries from. */ cacheId: CacheId; /** * Number of records to skip. */ skipCount?: integer; /** * Number of records to fetch. */ pageSize?: integer; /** * If present, only return the entries containing this substring in the path */ pathFilter?: string; } export interface RequestEntriesResponse { /** * Array of object store data entries. */ cacheDataEntries: DataEntry[]; /** * Count of returned entries from this storage. If pathFilter is empty, it * is the count of all entries from this storage. */ returnCount: number; } } /** * A domain for interacting with Cast, Presentation API, and Remote Playback API * functionalities. */ export namespace Cast { export interface Sink { name: string; id: string; /** * Text describing the current session. Present only if there is an active * session on the sink. */ session?: string; } export interface EnableRequest { presentationUrl?: string; } export interface SetSinkToUseRequest { sinkName: string; } export interface StartDesktopMirroringRequest { sinkName: string; } export interface StartTabMirroringRequest { sinkName: string; } export interface StopCastingRequest { sinkName: string; } /** * This is fired whenever the list of available sinks changes. A sink is a * device or a software surface that you can cast to. */ export interface SinksUpdatedEvent { sinks: Sink[]; } /** * This is fired whenever the outstanding issue/error message changes. * |issueMessage| is empty if there is no issue. */ export interface IssueUpdatedEvent { issueMessage: string; } } /** * This domain exposes DOM read/write operations. Each DOM Node is represented with its mirror object * that has an `id`. This `id` can be used to get additional information on the Node, resolve it into * the JavaScript object wrapper, etc. It is important that client receives DOM events only for the * nodes that are known to the client. Backend keeps track of the nodes that were sent to the client * and never sends the same node twice. It is client's responsibility to collect information about * the nodes that were sent to the client.<p>Note that `iframe` owner elements will return * corresponding document elements as their child nodes.</p> */ export namespace DOM { /** * Unique DOM node identifier. */ export type NodeId = integer; /** * Unique DOM node identifier used to reference a node that may not have been pushed to the * front-end. */ export type BackendNodeId = integer; /** * Backend node with a friendly name. */ export interface BackendNode { /** * `Node`'s nodeType. */ nodeType: integer; /** * `Node`'s nodeName. */ nodeName: string; backendNodeId: BackendNodeId; } /** * Pseudo element type. */ export type PseudoType = | "first-line" | "first-letter" | "before" | "after" | "marker" | "backdrop" | "selection" | "target-text" | "spelling-error" | "grammar-error" | "highlight" | "first-line-inherited" | "scrollbar" | "scrollbar-thumb" | "scrollbar-button" | "scrollbar-track" | "scrollbar-track-piece" | "scrollbar-corner" | "resizer" | "input-list-button" | "page-transition" | "page-transition-container" | "page-transition-image-wrapper" | "page-transition-outgoing-image" | "page-transition-incoming-image"; /** * Shadow root type. */ export type ShadowRootType = "user-agent" | "open" | "closed"; /** * Document compatibility mode. */ export type CompatibilityMode = | "QuirksMode" | "LimitedQuirksMode" | "NoQuirksMode"; /** * DOM interaction is implemented in terms of mirror objects that represent the actual DOM nodes. * DOMNode is a base node mirror type. */ export interface Node { /** * Node identifier that is passed into the rest of the DOM messages as the `nodeId`. Backend * will only push node with given `id` once. It is aware of all requested nodes and will only * fire DOM events for nodes known to the client. */ nodeId: NodeId; /** * The id of the parent node if any. */ parentId?: NodeId; /** * The BackendNodeId for this node. */ backendNodeId: BackendNodeId; /** * `Node`'s nodeType. */ nodeType: integer; /** * `Node`'s nodeName. */ nodeName: string; /** * `Node`'s localName. */ localName: string; /** * `Node`'s nodeValue. */ nodeValue: string; /** * Child count for `Container` nodes. */ childNodeCount?: integer; /** * Child nodes of this node when requested with children. */ children?: Node[]; /** * Attributes of the `Element` node in the form of flat array `[name1, value1, name2, value2]`. */ attributes?: string[]; /** * Document URL that `Document` or `FrameOwner` node points to. */ documentURL?: string; /** * Base URL that `Document` or `FrameOwner` node uses for URL completion. */ baseURL?: string; /** * `DocumentType`'s publicId. */ publicId?: string; /** * `DocumentType`'s systemId. */ systemId?: string; /** * `DocumentType`'s internalSubset. */ internalSubset?: string; /** * `Document`'s XML version in case of XML documents. */ xmlVersion?: string; /** * `Attr`'s name. */ name?: string; /** * `Attr`'s value. */ value?: string; /** * Pseudo element type for this node. */ pseudoType?: PseudoType; /** * Pseudo element identifier for this node. Only present if there is a * valid pseudoType. */ pseudoIdentifier?: string; /** * Shadow root type. */ shadowRootType?: ShadowRootType; /** * Frame ID for frame owner elements. */ frameId?: Page.FrameId; /** * Content document for frame owner elements. */ contentDocument?: Node; /** * Shadow root list for given element host. */ shadowRoots?: Node[]; /** * Content document fragment for template elements. */ templateContent?: Node; /** * Pseudo elements associated with this node. */ pseudoElements?: Node[]; /** * Deprecated, as the HTML Imports API has been removed (crbug.com/937746). * This property used to return the imported document for the HTMLImport links. * The property is always undefined now. */ importedDocument?: Node; /** * Distributed nodes for given insertion point. */ distributedNodes?: BackendNode[]; /** * Whether the node is SVG. */ isSVG?: boolean; compatibilityMode?: CompatibilityMode; assignedSlot?: BackendNode; } /** * A structure holding an RGBA color. */ export interface RGBA { /** * The red component, in the [0-255] range. */ r: integer; /** * The green component, in the [0-255] range. */ g: integer; /** * The blue component, in the [0-255] range. */ b: integer; /** * The alpha component, in the [0-1] range (default: 1). */ a?: number; } /** * An array of quad vertices, x immediately followed by y for each point, points clock-wise. */ export type Quad = number[]; /** * Box model. */ export interface BoxModel { /** * Content box */ content: Quad; /** * Padding box */ padding: Quad; /** * Border box */ border: Quad; /** * Margin box */ margin: Quad; /** * Node width */ width: integer; /** * Node height */ height: integer; /** * Shape outside coordinates */ shapeOutside?: ShapeOutsideInfo; } /** * CSS Shape Outside details. */ export interface ShapeOutsideInfo { /** * Shape bounds */ bounds: Quad; /** * Shape coordinate details */ shape: any[]; /** * Margin shape bounds */ marginShape: any[]; } /** * Rectangle. */ export interface Rect { /** * X coordinate */ x: number; /** * Y coordinate */ y: number; /** * Rectangle width */ width: number; /** * Rectangle height */ height: number; } export interface CSSComputedStyleProperty { /** * Computed style property name. */ name: string; /** * Computed style property value. */ value: string; } export interface CollectClassNamesFromSubtreeRequest { /** * Id of the node to collect class names. */ nodeId: NodeId; } export interface CollectClassNamesFromSubtreeResponse { /** * Class name list. */ classNames: string[]; } export interface CopyToRequest { /** * Id of the node to copy. */ nodeId: NodeId; /** * Id of the element to drop the copy into. */ targetNodeId: NodeId; /** * Drop the copy before this node (if absent, the copy becomes the last child of * `targetNodeId`). */ insertBeforeNodeId?: NodeId; } export interface CopyToResponse { /** * Id of the node clone. */ nodeId: NodeId; } export interface DescribeNodeRequest { /** * Identifier of the node. */ nodeId?: NodeId; /** * Identifier of the backend node. */ backendNodeId?: BackendNodeId; /** * JavaScript object id of the node wrapper. */ objectId?: Runtime.RemoteObjectId; /** * The maximum depth at which children should be retrieved, defaults to 1. Use -1 for the * entire subtree or provide an integer larger than 0. */ depth?: integer; /** * Whether or not iframes and shadow roots should be traversed when returning the subtree * (default is false). */ pierce?: boolean; } export interface DescribeNodeResponse { /** * Node description. */ node: Node; } export interface ScrollIntoViewIfNeededRequest { /** * Identifier of the node. */ nodeId?: NodeId; /** * Identifier of the backend node. */ backendNodeId?: BackendNodeId; /** * JavaScript object id of the node wrapper. */ objectId?: Runtime.RemoteObjectId; /** * The rect to be scrolled into view, relative to the node's border box, in CSS pixels. * When omitted, center of the node will be used, similar to Element.scrollIntoView. */ rect?: Rect; } export interface DiscardSearchResultsRequest { /** * Unique search session identifier. */ searchId: string; } export const enum EnableRequestIncludeWhitespace { None = "none", All = "all", } export interface EnableRequest { /** * Whether to include whitespaces in the children array of returned Nodes. (EnableRequestIncludeWhitespace enum) */ includeWhitespace?: "none" | "all"; } export interface FocusRequest { /** * Identifier of the node. */ nodeId?: NodeId; /** * Identifier of the backend node. */ backendNodeId?: BackendNodeId; /** * JavaScript object id of the node wrapper. */ objectId?: Runtime.RemoteObjectId; } export interface GetAttributesRequest { /** * Id of the node to retrieve attibutes for. */ nodeId: NodeId; } export interface GetAttributesResponse { /** * An interleaved array of node attribute names and values. */ attributes: string[]; } export interface GetBoxModelRequest { /** * Identifier of the node. */ nodeId?: NodeId; /** * Identifier of the backend node. */ backendNodeId?: BackendNodeId; /** * JavaScript object id of the node wrapper. */ objectId?: Runtime.RemoteObjectId; } export interface GetBoxModelResponse { /** * Box model for the node. */ model: BoxModel; } export interface GetContentQuadsRequest { /** * Identifier of the node. */ nodeId?: NodeId; /** * Identifier of the backend node. */ backendNodeId?: BackendNodeId; /** * JavaScript object id of the node wrapper. */ objectId?: Runtime.RemoteObjectId; } export interface GetContentQuadsResponse { /** * Quads that describe node layout relative to viewport. */ quads: Quad[]; } export interface GetDocumentRequest { /** * The maximum depth at which children should be retrieved, defaults to 1. Use -1 for the * entire subtree or provide an integer larger than 0. */ depth?: integer; /** * Whether or not iframes and shadow roots should be traversed when returning the subtree * (default is false). */ pierce?: boolean; } export interface GetDocumentResponse { /** * Resulting node. */ root: Node; } export interface GetFlattenedDocumentRequest { /** * The maximum depth at which children should be retrieved, defaults to 1. Use -1 for the * entire subtree or provide an integer larger than 0. */ depth?: integer; /** * Whether or not iframes and shadow roots should be traversed when returning the subtree * (default is false). */ pierce?: boolean; } export interface GetFlattenedDocumentResponse { /** * Resulting node. */ nodes: Node[]; } export interface GetNodesForSubtreeByStyleRequest { /** * Node ID pointing to the root of a subtree. */ nodeId: NodeId; /** * The style to filter nodes by (includes nodes if any of properties matches). */ computedStyles: CSSComputedStyleProperty[]; /** * Whether or not iframes and shadow roots in the same target should be traversed when returning the * results (default is false). */ pierce?: boolean; } export interface GetNodesForSubtreeByStyleResponse { /** * Resulting nodes. */ nodeIds: NodeId[]; } export interface GetNodeForLocationRequest { /** * X coordinate. */ x: integer; /** * Y coordinate. */ y: integer; /** * False to skip to the nearest non-UA shadow root ancestor (default: false). */ includeUserAgentShadowDOM?: boolean; /** * Whether to ignore pointer-events: none on elements and hit test them. */ ignorePointerEventsNone?: boolean; } export interface GetNodeForLocationResponse { /** * Resulting node. */ backendNodeId: BackendNodeId; /** * Frame this node belongs to. */ frameId: Page.FrameId; /** * Id of the node at given coordinates, only when enabled and requested document. */ nodeId?: NodeId; } export interface GetOuterHTMLRequest { /** * Identifier of the node. */ nodeId?: NodeId; /** * Identifier of the backend node. */ backendNodeId?: BackendNodeId; /** * JavaScript object id of the node wrapper. */ objectId?: Runtime.RemoteObjectId; } export interface GetOuterHTMLResponse { /** * Outer HTML markup. */ outerHTML: string; } export interface GetRelayoutBoundaryRequest { /** * Id of the node. */ nodeId: NodeId; } export interface GetRelayoutBoundaryResponse { /** * Relayout boundary node id for the given node. */ nodeId: NodeId; } export interface GetSearchResultsRequest { /** * Unique search session identifier. */ searchId: string; /** * Start index of the search result to be returned. */ fromIndex: integer; /** * End index of the search result to be returned. */ toIndex: integer; } export interface GetSearchResultsResponse { /** * Ids of the search result nodes. */ nodeIds: NodeId[]; } export interface MoveToRequest { /** * Id of the node to move. */ nodeId: NodeId; /** * Id of the element to drop the moved node into. */ targetNodeId: NodeId; /** * Drop node before this one (if absent, the moved node becomes the last child of * `targetNodeId`). */ insertBeforeNodeId?: NodeId; } export interface MoveToResponse { /** * New id of the moved node. */ nodeId: NodeId; } export interface PerformSearchRequest { /** * Plain text or query selector or XPath search query. */ query: string; /** * True to search in user agent shadow DOM. */ includeUserAgentShadowDOM?: boolean; } export interface PerformSearchResponse { /** * Unique search session identifier. */ searchId: string; /** * Number of search results. */ resultCount: integer; } export interface PushNodeByPathToFrontendRequest { /** * Path to node in the proprietary format. */ path: string; } export interface PushNodeByPathToFrontendResponse { /** * Id of the node for given path. */ nodeId: NodeId; } export interface PushNodesByBackendIdsToFrontendRequest { /** * The array of backend node ids. */ backendNodeIds: BackendNodeId[]; } export interface PushNodesByBackendIdsToFrontendResponse { /** * The array of ids of pushed nodes that correspond to the backend ids specified in * backendNodeIds. */ nodeIds: NodeId[]; } export interface QuerySelectorRequest { /** * Id of the node to query upon. */ nodeId: NodeId; /** * Selector string. */ selector: string; } export interface QuerySelectorResponse { /** * Query selector result. */ nodeId: NodeId; } export interface QuerySelectorAllRequest { /** * Id of the node to query upon. */ nodeId: NodeId; /** * Selector string. */ selector: string; } export interface QuerySelectorAllResponse { /** * Query selector result. */ nodeIds: NodeId[]; } export interface GetTopLayerElementsResponse { /** * NodeIds of top layer elements */ nodeIds: NodeId[]; } export interface RemoveAttributeRequest { /** * Id of the element to remove attribute from. */ nodeId: NodeId; /** * Name of the attribute to remove. */ name: string; } export interface RemoveNodeRequest { /** * Id of the node to remove. */ nodeId: NodeId; } export interface RequestChildNodesRequest { /** * Id of the node to get children for. */ nodeId: NodeId; /** * The maximum depth at which children should be retrieved, defaults to 1. Use -1 for the * entire subtree or provide an integer larger than 0. */ depth?: integer; /** * Whether or not iframes and shadow roots should be traversed when returning the sub-tree * (default is false). */ pierce?: boolean; } export interface RequestNodeRequest { /** * JavaScript object id to convert into node. */ objectId: Runtime.RemoteObjectId; } export interface RequestNodeResponse { /** * Node id for given object. */ nodeId: NodeId; } export interface ResolveNodeRequest { /** * Id of the node to resolve. */ nodeId?: NodeId; /** * Backend identifier of the node to resolve. */ backendNodeId?: DOM.BackendNodeId; /** * Symbolic group name that can be used to release multiple objects. */ objectGroup?: string; /** * Execution context in which to resolve the node. */ executionContextId?: Runtime.ExecutionContextId; } export interface ResolveNodeResponse { /** * JavaScript object wrapper for given node. */ object: Runtime.RemoteObject; } export interface SetAttributeValueRequest { /** * Id of the element to set attribute for. */ nodeId: NodeId; /** * Attribute name. */ name: string; /** * Attribute value. */ value: string; } export interface SetAttributesAsTextRequest { /** * Id of the element to set attributes for. */ nodeId: NodeId; /** * Text with a number of attributes. Will parse this text using HTML parser. */ text: string; /** * Attribute name to replace with new attributes derived from text in case text parsed * successfully. */ name?: string; } export interface SetFileInputFilesRequest { /** * Array of file paths to set. */ files: string[]; /** * Identifier of the node. */ nodeId?: NodeId; /** * Identifier of the backend node. */ backendNodeId?: BackendNodeId; /** * JavaScript object id of the node wrapper. */ objectId?: Runtime.RemoteObjectId; } export interface SetNodeStackTracesEnabledRequest { /** * Enable or disable. */ enable: boolean; } export interface GetNodeStackTracesRequest { /** * Id of the node to get stack traces for. */ nodeId: NodeId; } export interface GetNodeStackTracesResponse { /** * Creation stack trace, if available. */ creation?: Runtime.StackTrace; } export interface GetFileInfoRequest { /** * JavaScript object id of the node wrapper. */ objectId: Runtime.RemoteObjectId; } export interface GetFileInfoResponse { path: string; } export interface SetInspectedNodeRequest { /** * DOM node id to be accessible by means of $x command line API. */ nodeId: NodeId; } export interface SetNodeNameRequest { /** * Id of the node to set name for. */ nodeId: NodeId; /** * New node's name. */ name: string; } export interface SetNodeNameResponse { /** * New node's id. */ nodeId: NodeId; } export interface SetNodeValueRequest { /** * Id of the node to set value for. */ nodeId: NodeId; /** * New node's value. */ value: string; } export interface SetOuterHTMLRequest { /** * Id of the node to set markup for. */ nodeId: NodeId; /** * Outer HTML markup to set. */ outerHTML: string; } export interface GetFrameOwnerRequest { frameId: Page.FrameId; } export interface GetFrameOwnerResponse { /** * Resulting node. */ backendNodeId: BackendNodeId; /** * Id of the node at given coordinates, only when enabled and requested document. */ nodeId?: NodeId; } export interface GetContainerForNodeRequest { nodeId: NodeId; containerName?: string; } export interface GetContainerForNodeResponse { /** * The container node for the given node, or null if not found. */ nodeId?: NodeId; } export interface GetQueryingDescendantsForContainerRequest { /** * Id of the container node to find querying descendants from. */ nodeId: NodeId; } export interface GetQueryingDescendantsForContainerResponse { /** * Descendant nodes with container queries against the given container. */ nodeIds: NodeId[]; } /** * Fired when `Element`'s attribute is modified. */ export interface AttributeModifiedEvent { /** * Id of the node that has changed. */ nodeId: NodeId; /** * Attribute name. */ name: string; /** * Attribute value. */ value: string; } /** * Fired when `Element`'s attribute is removed. */ export interface AttributeRemovedEvent { /** * Id of the node that has changed. */ nodeId: NodeId; /** * A ttribute name. */ name: string; } /** * Mirrors `DOMCharacterDataModified` event. */ export interface CharacterDataModifiedEvent { /** * Id of the node that has changed. */ nodeId: NodeId; /** * New text value. */ characterData: string; } /** * Fired when `Container`'s child node count has changed. */ export interface ChildNodeCountUpdatedEvent { /** * Id of the node that has changed. */ nodeId: NodeId; /** * New node count. */ childNodeCount: integer; } /** * Mirrors `DOMNodeInserted` event. */ export interface ChildNodeInsertedEvent { /** * Id of the node that has changed. */ parentNodeId: NodeId; /** * If of the previous siblint. */ previousNodeId: NodeId; /** * Inserted node data. */ node: Node; } /** * Mirrors `DOMNodeRemoved` event. */ export interface ChildNodeRemovedEvent { /** * Parent id. */ parentNodeId: NodeId; /** * Id of the node that has been removed. */ nodeId: NodeId; } /** * Called when distribution is changed. */ export interface DistributedNodesUpdatedEvent { /** * Insertion point where distributed nodes were updated. */ insertionPointId: NodeId; /** * Distributed nodes for given insertion point. */ distributedNodes: BackendNode[]; } /** * Fired when `Element`'s inline style is modified via a CSS property modification. */ export interface InlineStyleInvalidatedEvent { /** * Ids of the nodes for which the inline styles have been invalidated. */ nodeIds: NodeId[]; } /** * Called when a pseudo element is added to an element. */ export interface PseudoElementAddedEvent { /** * Pseudo element's parent element id. */ parentId: NodeId; /** * The added pseudo element. */ pseudoElement: Node; } /** * Called when a pseudo element is removed from an element. */ export interface PseudoElementRemovedEvent { /** * Pseudo element's parent element id. */ parentId: NodeId; /** * The removed pseudo element id. */ pseudoElementId: NodeId; } /** * Fired when backend wants to provide client with the missing DOM structure. This happens upon * most of the calls requesting node ids. */ export interface SetChildNodesEvent { /** * Parent node id to populate with children. */ parentId: NodeId; /** * Child nodes array. */ nodes: Node[]; } /** * Called when shadow root is popped from the element. */ export interface ShadowRootPoppedEvent { /** * Host element id. */ hostId: NodeId; /** * Shadow root id. */ rootId: NodeId; } /** * Called when shadow root is pushed into the element. */ export interface ShadowRootPushedEvent { /** * Host element id. */ hostId: NodeId; /** * Shadow root. */ root: Node; } } /** * DOM debugging allows setting breakpoints on particular DOM operations and events. JavaScript * execution will stop on these operations as if there was a regular breakpoint set. */ export namespace DOMDebugger { /** * DOM breakpoint type. */ export type DOMBreakpointType = | "subtree-modified" | "attribute-modified" | "node-removed"; /** * CSP Violation type. */ export type CSPViolationType = | "trustedtype-sink-violation" | "trustedtype-policy-violation"; /** * Object event listener. */ export interface EventListener { /** * `EventListener`'s type. */ type: string; /** * `EventListener`'s useCapture. */ useCapture: boolean; /** * `EventListener`'s passive flag. */ passive: boolean; /** * `EventListener`'s once flag. */ once: boolean; /** * Script id of the handler code. */ scriptId: Runtime.ScriptId; /** * Line number in the script (0-based). */ lineNumber: integer; /** * Column number in the script (0-based). */ columnNumber: integer; /** * Event handler function value. */ handler?: Runtime.RemoteObject; /** * Event original handler function value. */ originalHandler?: Runtime.RemoteObject; /** * Node the listener is added to (if any). */ backendNodeId?: DOM.BackendNodeId; } export interface GetEventListenersRequest { /** * Identifier of the object to return listeners for. */ objectId: Runtime.RemoteObjectId; /** * The maximum depth at which Node children should be retrieved, defaults to 1. Use -1 for the * entire subtree or provide an integer larger than 0. */ depth?: integer; /** * Whether or not iframes and shadow roots should be traversed when returning the subtree * (default is false). Reports listeners for all contexts if pierce is enabled. */ pierce?: boolean; } export interface GetEventListenersResponse { /** * Array of relevant listeners. */ listeners: EventListener[]; } export interface RemoveDOMBreakpointRequest { /** * Identifier of the node to remove breakpoint from. */ nodeId: DOM.NodeId; /** * Type of the breakpoint to remove. */ type: DOMBreakpointType; } export interface RemoveEventListenerBreakpointRequest { /** * Event name. */ eventName: string; /** * EventTarget interface name. */ targetName?: string; } export interface RemoveInstrumentationBreakpointRequest { /** * Instrumentation name to stop on. */ eventName: string; } export interface RemoveXHRBreakpointRequest { /** * Resource URL substring. */ url: string; } export interface SetBreakOnCSPViolationRequest { /** * CSP Violations to stop upon. */ violationTypes: CSPViolationType[]; } export interface SetDOMBreakpointRequest { /** * Identifier of the node to set breakpoint on. */ nodeId: DOM.NodeId; /** * Type of the operation to stop upon. */ type: DOMBreakpointType; } export interface SetEventListenerBreakpointRequest { /** * DOM Event name to stop on (any DOM event will do). */ eventName: string; /** * EventTarget interface name to stop on. If equal to `"*"` or not provided, will stop on any * EventTarget. */ targetName?: string; } export interface SetInstrumentationBreakpointRequest { /** * Instrumentation name to stop on. */ eventName: string; } export interface SetXHRBreakpointRequest { /** * Resource URL substring. All XHRs having this substring in the URL will get stopped upon. */ url: string; } } /** * EventBreakpoints permits setting breakpoints on particular operations and * events in targets that run JavaScript but do not have a DOM. * JavaScript execution will stop on these operations as if there was a regular * breakpoint set. */ export namespace EventBreakpoints { export interface SetInstrumentationBreakpointRequest { /** * Instrumentation name to stop on. */ eventName: string; } export interface RemoveInstrumentationBreakpointRequest { /** * Instrumentation name to stop on. */ eventName: string; } } /** * This domain facilitates obtaining document snapshots with DOM, layout, and style information. */ export namespace DOMSnapshot { /** * A Node in the DOM tree. */ export interface DOMNode { /** * `Node`'s nodeType. */ nodeType: integer; /** * `Node`'s nodeName. */ nodeName: string; /** * `Node`'s nodeValue. */ nodeValue: string; /** * Only set for textarea elements, contains the text value. */ textValue?: string; /** * Only set for input elements, contains the input's associated text value. */ inputValue?: string; /** * Only set for radio and checkbox input elements, indicates if the element has been checked */ inputChecked?: boolean; /** * Only set for option elements, indicates if the element has been selected */ optionSelected?: boolean; /** * `Node`'s id, corresponds to DOM.Node.backendNodeId. */ backendNodeId: DOM.BackendNodeId; /** * The indexes of the node's child nodes in the `domNodes` array returned by `getSnapshot`, if * any. */ childNodeIndexes?: integer[]; /** * Attributes of an `Element` node. */ attributes?: NameValue[]; /** * Indexes of pseudo elements associated with this node in the `domNodes` array returned by * `getSnapshot`, if any. */ pseudoElementIndexes?: integer[]; /** * The index of the node's related layout tree node in the `layoutTreeNodes` array returned by * `getSnapshot`, if any. */ layoutNodeIndex?: integer; /** * Document URL that `Document` or `FrameOwner` node points to. */ documentURL?: string; /** * Base URL that `Document` or `FrameOwner` node uses for URL completion. */ baseURL?: string; /** * Only set for documents, contains the document's content language. */ contentLanguage?: string; /** * Only set for documents, contains the document's character set encoding. */ documentEncoding?: string; /** * `DocumentType` node's publicId. */ publicId?: string; /** * `DocumentType` node's systemId. */ systemId?: string; /** * Frame ID for frame owner elements and also for the document node. */ frameId?: Page.FrameId; /** * The index of a frame owner element's content document in the `domNodes` array returned by * `getSnapshot`, if any. */ contentDocumentIndex?: integer; /** * Type of a pseudo element node. */ pseudoType?: DOM.PseudoType; /** * Shadow root type. */ shadowRootType?: DOM.ShadowRootType; /** * Whether this DOM node responds to mouse clicks. This includes nodes that have had click * event listeners attached via JavaScript as well as anchor tags that naturally navigate when * clicked. */ isClickable?: boolean; /** * Details of the node's event listeners, if any. */ eventListeners?: DOMDebugger.EventListener[]; /** * The selected url for nodes with a srcset attribute. */ currentSourceURL?: string; /** * The url of the script (if any) that generates this node. */ originURL?: string; /** * Scroll offsets, set when this node is a Document. */ scrollOffsetX?: number; scrollOffsetY?: number; } /** * Details of post layout rendered text positions. The exact layout should not be regarded as * stable and may change between versions. */ export interface InlineTextBox { /** * The bounding box in document coordinates. Note that scroll offset of the document is ignored. */ boundingBox: DOM.Rect; /** * The starting index in characters, for this post layout textbox substring. Characters that * would be represented as a surrogate pair in UTF-16 have length 2. */ startCharacterIndex: integer; /** * The number of characters in this post layout textbox substring. Characters that would be * represented as a surrogate pair in UTF-16 have length 2. */ numCharacters: integer; } /** * Details of an element in the DOM tree with a LayoutObject. */ export interface LayoutTreeNode { /** * The index of the related DOM node in the `domNodes` array returned by `getSnapshot`. */ domNodeIndex: integer; /** * The bounding box in document coordinates. Note that scroll offset of the document is ignored. */ boundingBox: DOM.Rect; /** * Contents of the LayoutText, if any. */ layoutText?: string; /** * The post-layout inline text nodes, if any. */ inlineTextNodes?: InlineTextBox[]; /** * Index into the `computedStyles` array returned by `getSnapshot`. */ styleIndex?: integer; /** * Global paint order index, which is determined by the stacking order of the nodes. Nodes * that are painted together will have the same index. Only provided if includePaintOrder in * getSnapshot was true. */ paintOrder?: integer; /** * Set to true to indicate the element begins a new stacking context. */ isStackingContext?: boolean; } /** * A subset of the full ComputedStyle as defined by the request whitelist. */ export interface ComputedStyle { /** * Name/value pairs of computed style properties. */ properties: NameValue[]; } /** * A name/value pair. */ export interface NameValue { /** * Attribute/property name. */ name: string; /** * Attribute/property value. */ value: string; } /** * Index of the string in the strings table. */ export type StringIndex = integer; /** * Index of the string in the strings table. */ export type ArrayOfStrings = StringIndex[]; /** * Data that is only present on rare nodes. */ export interface RareStringData { index: integer[]; value: StringIndex[]; } export interface RareBooleanData { index: integer[]; } export interface RareIntegerData { index: integer[]; value: integer[]; } export type Rectangle = number[]; /** * Document snapshot. */ export interface DocumentSnapshot { /** * Document URL that `Document` or `FrameOwner` node points to. */ documentURL: StringIndex; /** * Document title. */ title: StringIndex; /** * Base URL that `Document` or `FrameOwner` node uses for URL completion. */ baseURL: StringIndex; /** * Contains the document's content language. */ contentLanguage: StringIndex; /** * Contains the document's character set encoding. */ encodingName: StringIndex; /** * `DocumentType` node's publicId. */ publicId: StringIndex; /** * `DocumentType` node's systemId. */ systemId: StringIndex; /** * Frame ID for frame owner elements and also for the document node. */ frameId: StringIndex; /** * A table with dom nodes. */ nodes: NodeTreeSnapshot; /** * The nodes in the layout tree. */ layout: LayoutTreeSnapshot; /** * The post-layout inline text nodes. */ textBoxes: TextBoxSnapshot; /** * Horizontal scroll offset. */ scrollOffsetX?: number; /** * Vertical scroll offset. */ scrollOffsetY?: number; /** * Document content width. */ contentWidth?: number; /** * Document content height. */ contentHeight?: number; } /** * Table containing nodes. */ export interface NodeTreeSnapshot { /** * Parent node index. */ parentIndex?: integer[]; /** * `Node`'s nodeType. */ nodeType?: integer[]; /** * Type of the shadow root the `Node` is in. String values are equal to the `ShadowRootType` enum. */ shadowRootType?: RareStringData; /** * `Node`'s nodeName. */ nodeName?: StringIndex[]; /** * `Node`'s nodeValue. */ nodeValue?: StringIndex[]; /** * `Node`'s id, corresponds to DOM.Node.backendNodeId. */ backendNodeId?: DOM.BackendNodeId[]; /** * Attributes of an `Element` node. Flatten name, value pairs. */ attributes?: ArrayOfStrings[]; /** * Only set for textarea elements, contains the text value. */ textValue?: RareStringData; /** * Only set for input elements, contains the input's associated text value. */ inputValue?: RareStringData; /** * Only set for radio and checkbox input elements, indicates if the element has been checked */ inputChecked?: RareBooleanData; /** * Only set for option elements, indicates if the element has been selected */ optionSelected?: RareBooleanData; /** * The index of the document in the list of the snapshot documents. */ contentDocumentIndex?: RareIntegerData; /** * Type of a pseudo element node. */ pseudoType?: RareStringData; /** * Pseudo element identifier for this node. Only present if there is a * valid pseudoType. */ pseudoIdentifier?: RareStringData; /** * Whether this DOM node responds to mouse clicks. This includes nodes that have had click * event listeners attached via JavaScript as well as anchor tags that naturally navigate when * clicked. */ isClickable?: RareBooleanData; /** * The selected url for nodes with a srcset attribute. */ currentSourceURL?: RareStringData; /** * The url of the script (if any) that generates this node. */ originURL?: RareStringData; } /** * Table of details of an element in the DOM tree with a LayoutObject. */ export interface LayoutTreeSnapshot { /** * Index of the corresponding node in the `NodeTreeSnapshot` array returned by `captureSnapshot`. */ nodeIndex: integer[]; /** * Array of indexes specifying computed style strings, filtered according to the `computedStyles` parameter passed to `captureSnapshot`. */ styles: ArrayOfStrings[]; /** * The absolute position bounding box. */ bounds: Rectangle[]; /** * Contents of the LayoutText, if any. */ text: StringIndex[]; /** * Stacking context information. */ stackingContexts: RareBooleanData; /** * Global paint order index, which is determined by the stacking order of the nodes. Nodes * that are painted together will have the same index. Only provided if includePaintOrder in * captureSnapshot was true. */ paintOrders?: integer[]; /** * The offset rect of nodes. Only available when includeDOMRects is set to true */ offsetRects?: Rectangle[]; /** * The scroll rect of nodes. Only available when includeDOMRects is set to true */ scrollRects?: Rectangle[]; /** * The client rect of nodes. Only available when includeDOMRects is set to true */ clientRects?: Rectangle[]; /** * The list of background colors that are blended with colors of overlapping elements. */ blendedBackgroundColors?: StringIndex[]; /** * The list of computed text opacities. */ textColorOpacities?: number[]; } /** * Table of details of the post layout rendered text positions. The exact layout should not be regarded as * stable and may change between versions. */ export interface TextBoxSnapshot { /** * Index of the layout tree node that owns this box collection. */ layoutIndex: integer[]; /** * The absolute position bounding box. */ bounds: Rectangle[]; /** * The starting index in characters, for this post layout textbox substring. Characters that * would be represented as a surrogate pair in UTF-16 have length 2. */ start: integer[]; /** * The number of characters in this post layout textbox substring. Characters that would be * represented as a surrogate pair in UTF-16 have length 2. */ length: integer[]; } export interface GetSnapshotRequest { /** * Whitelist of computed styles to return. */ computedStyleWhitelist: string[]; /** * Whether or not to retrieve details of DOM listeners (default false). */ includeEventListeners?: boolean; /** * Whether to determine and include the paint order index of LayoutTreeNodes (default false). */ includePaintOrder?: boolean; /** * Whether to include UA shadow tree in the snapshot (default false). */ includeUserAgentShadowTree?: boolean; } export interface GetSnapshotResponse { /** * The nodes in the DOM tree. The DOMNode at index 0 corresponds to the root document. */ domNodes: DOMNode[]; /** * The nodes in the layout tree. */ layoutTreeNodes: LayoutTreeNode[]; /** * Whitelisted ComputedStyle properties for each node in the layout tree. */ computedStyles: ComputedStyle[]; } export interface CaptureSnapshotRequest { /** * Whitelist of computed styles to return. */ computedStyles: string[]; /** * Whether to include layout object paint orders into the snapshot. */ includePaintOrder?: boolean; /** * Whether to include DOM rectangles (offsetRects, clientRects, scrollRects) into the snapshot */ includeDOMRects?: boolean; /** * Whether to include blended background colors in the snapshot (default: false). * Blended background color is achieved by blending background colors of all elements * that overlap with the current element. */ includeBlendedBackgroundColors?: boolean; /** * Whether to include text color opacity in the snapshot (default: false). * An element might have the opacity property set that affects the text color of the element. * The final text color opacity is computed based on the opacity of all overlapping elements. */ includeTextColorOpacities?: boolean; } export interface CaptureSnapshotResponse { /** * The nodes in the DOM tree. The DOMNode at index 0 corresponds to the root document. */ documents: DocumentSnapshot[]; /** * Shared string table that all string properties refer to with indexes. */ strings: string[]; } } /** * Query and modify DOM storage. */ export namespace DOMStorage { export type SerializedStorageKey = string; /** * DOM Storage identifier. */ export interface StorageId { /** * Security origin for the storage. */ securityOrigin?: string; /** * Represents a key by which DOM Storage keys its CachedStorageAreas */ storageKey?: SerializedStorageKey; /** * Whether the storage is local storage (not session storage). */ isLocalStorage: boolean; } /** * DOM Storage item. */ export type Item = string[]; export interface ClearRequest { storageId: StorageId; } export interface GetDOMStorageItemsRequest { storageId: StorageId; } export interface GetDOMStorageItemsResponse { entries: Item[]; } export interface RemoveDOMStorageItemRequest { storageId: StorageId; key: string; } export interface SetDOMStorageItemRequest { storageId: StorageId; key: string; value: string; } export interface DomStorageItemAddedEvent { storageId: StorageId; key: string; newValue: string; } export interface DomStorageItemRemovedEvent { storageId: StorageId; key: string; } export interface DomStorageItemUpdatedEvent { storageId: StorageId; key: string; oldValue: string; newValue: string; } export interface DomStorageItemsClearedEvent { storageId: StorageId; } } export namespace Database { /** * Unique identifier of Database object. */ export type DatabaseId = string; /** * Database object. */ export interface Database { /** * Database ID. */ id: DatabaseId; /** * Database domain. */ domain: string; /** * Database name. */ name: string; /** * Database version. */ version: string; } /** * Database error. */ export interface Error { /** * Error message. */ message: string; /** * Error code. */ code: integer; } export interface ExecuteSQLRequest { databaseId: DatabaseId; query: string; } export interface ExecuteSQLResponse { columnNames?: string[]; values?: any[]; sqlError?: Error; } export interface GetDatabaseTableNamesRequest { databaseId: DatabaseId; } export interface GetDatabaseTableNamesResponse { tableNames: string[]; } export interface AddDatabaseEvent { database: Database; } } export namespace DeviceOrientation { export interface SetDeviceOrientationOverrideRequest { /** * Mock alpha */ alpha: number; /** * Mock beta */ beta: number; /** * Mock gamma */ gamma: number; } } /** * This domain emulates different environments for the page. */ export namespace Emulation { export const enum ScreenOrientationType { PortraitPrimary = "portraitPrimary", PortraitSecondary = "portraitSecondary", LandscapePrimary = "landscapePrimary", LandscapeSecondary = "landscapeSecondary", } /** * Screen orientation. */ export interface ScreenOrientation { /** * Orientation type. (ScreenOrientationType enum) */ type: | "portraitPrimary" | "portraitSecondary" | "landscapePrimary" | "landscapeSecondary"; /** * Orientation angle. */ angle: integer; } export const enum DisplayFeatureOrientation { Vertical = "vertical", Horizontal = "horizontal", } export interface DisplayFeature { /** * Orientation of a display feature in relation to screen (DisplayFeatureOrientation enum) */ orientation: "vertical" | "horizontal"; /** * The offset from the screen origin in either the x (for vertical * orientation) or y (for horizontal orientation) direction. */ offset: integer; /** * A display feature may mask content such that it is not physically * displayed - this length along with the offset describes this area. * A display feature that only splits content will have a 0 mask_length. */ maskLength: integer; } export interface MediaFeature { name: string; value: string; } /** * advance: If the scheduler runs out of immediate work, the virtual time base may fast forward to * allow the next delayed task (if any) to run; pause: The virtual time base may not advance; * pauseIfNetworkFetchesPending: The virtual time base may not advance if there are any pending * resource fetches. */ export type VirtualTimePolicy = | "advance" | "pause" | "pauseIfNetworkFetchesPending"; /** * Used to specify User Agent Cient Hints to emulate. See https://wicg.github.io/ua-client-hints */ export interface UserAgentBrandVersion { brand: string; version: string; } /** * Used to specify User Agent Cient Hints to emulate. See https://wicg.github.io/ua-client-hints * Missing optional values will be filled in by the target with what it would normally use. */ export interface UserAgentMetadata { brands?: UserAgentBrandVersion[]; fullVersionList?: UserAgentBrandVersion[]; fullVersion?: string; platform: string; platformVersion: string; architecture: string; model: string; mobile: boolean; bitness?: string; wow64?: boolean; } /** * Enum of image types that can be disabled. */ export type DisabledImageType = "avif" | "jxl" | "webp"; export interface CanEmulateResponse { /** * True if emulation is supported. */ result: boolean; } export interface SetFocusEmulationEnabledRequest { /** * Whether to enable to disable focus emulation. */ enabled: boolean; } export interface SetAutoDarkModeOverrideRequest { /** * Whether to enable or disable automatic dark mode. * If not specified, any existing override will be cleared. */ enabled?: boolean; } export interface SetCPUThrottlingRateRequest { /** * Throttling rate as a slowdown factor (1 is no throttle, 2 is 2x slowdown, etc). */ rate: number; } export interface SetDefaultBackgroundColorOverrideRequest { /** * RGBA of the default background color. If not specified, any existing override will be * cleared. */ color?: DOM.RGBA; } export interface SetDeviceMetricsOverrideRequest { /** * Overriding width value in pixels (minimum 0, maximum 10000000). 0 disables the override. */ width: integer; /** * Overriding height value in pixels (minimum 0, maximum 10000000). 0 disables the override. */ height: integer; /** * Overriding device scale factor value. 0 disables the override. */ deviceScaleFactor: number; /** * Whether to emulate mobile device. This includes viewport meta tag, overlay scrollbars, text * autosizing and more. */ mobile: boolean; /** * Scale to apply to resulting view image. */ scale?: number; /** * Overriding screen width value in pixels (minimum 0, maximum 10000000). */ screenWidth?: integer; /** * Overriding screen height value in pixels (minimum 0, maximum 10000000). */ screenHeight?: integer; /** * Overriding view X position on screen in pixels (minimum 0, maximum 10000000). */ positionX?: integer; /** * Overriding view Y position on screen in pixels (minimum 0, maximum 10000000). */ positionY?: integer; /** * Do not set visible view size, rely upon explicit setVisibleSize call. */ dontSetVisibleSize?: boolean; /** * Screen orientation override. */ screenOrientation?: ScreenOrientation; /** * If set, the visible area of the page will be overridden to this viewport. This viewport * change is not observed by the page, e.g. viewport-relative elements do not change positions. */ viewport?: Page.Viewport; /** * If set, the display feature of a multi-segment screen. If not set, multi-segment support * is turned-off. */ displayFeature?: DisplayFeature; } export interface SetScrollbarsHiddenRequest { /** * Whether scrollbars should be always hidden. */ hidden: boolean; } export interface SetDocumentCookieDisabledRequest { /** * Whether document.coookie API should be disabled. */ disabled: boolean; } export const enum SetEmitTouchEventsForMouseRequestConfiguration { Mobile = "mobile", Desktop = "desktop", } export interface SetEmitTouchEventsForMouseRequest { /** * Whether touch emulation based on mouse input should be enabled. */ enabled: boolean; /** * Touch/gesture events configuration. Default: current platform. (SetEmitTouchEventsForMouseRequestConfiguration enum) */ configuration?: "mobile" | "desktop"; } export interface SetEmulatedMediaRequest { /** * Media type to emulate. Empty string disables the override. */ media?: string; /** * Media features to emulate. */ features?: MediaFeature[]; } export const enum SetEmulatedVisionDeficiencyRequestType { None = "none", Achromatopsia = "achromatopsia", BlurredVision = "blurredVision", Deuteranopia = "deuteranopia", Protanopia = "protanopia", Tritanopia = "tritanopia", } export interface SetEmulatedVisionDeficiencyRequest { /** * Vision deficiency to emulate. (SetEmulatedVisionDeficiencyRequestType enum) */ type: | "none" | "achromatopsia" | "blurredVision" | "deuteranopia" | "protanopia" | "tritanopia"; } export interface SetGeolocationOverrideRequest { /** * Mock latitude */ latitude?: number; /** * Mock longitude */ longitude?: number; /** * Mock accuracy */ accuracy?: number; } export interface SetIdleOverrideRequest { /** * Mock isUserActive */ isUserActive: boolean; /** * Mock isScreenUnlocked */ isScreenUnlocked: boolean; } export interface SetNavigatorOverridesRequest { /** * The platform navigator.platform should return. */ platform: string; } export interface SetPageScaleFactorRequest { /** * Page scale factor. */ pageScaleFactor: number; } export interface SetScriptExecutionDisabledRequest { /** * Whether script execution should be disabled in the page. */ value: boolean; } export interface SetTouchEmulationEnabledRequest { /** * Whether the touch event emulation should be enabled. */ enabled: boolean; /** * Maximum touch points supported. Defaults to one. */ maxTouchPoints?: integer; } export interface SetVirtualTimePolicyRequest { policy: VirtualTimePolicy; /** * If set, after this many virtual milliseconds have elapsed virtual time will be paused and a * virtualTimeBudgetExpired event is sent. */ budget?: number; /** * If set this specifies the maximum number of tasks that can be run before virtual is forced * forwards to prevent deadlock. */ maxVirtualTimeTaskStarvationCount?: integer; /** * If set, base::Time::Now will be overridden to initially return this value. */ initialVirtualTime?: Network.TimeSinceEpoch; } export interface SetVirtualTimePolicyResponse { /** * Absolute timestamp at which virtual time was first enabled (up time in milliseconds). */ virtualTimeTicksBase: number; } export interface SetLocaleOverrideRequest { /** * ICU style C locale (e.g. "en_US"). If not specified or empty, disables the override and * restores default host system locale. */ locale?: string; } export interface SetTimezoneOverrideRequest { /** * The timezone identifier. If empty, disables the override and * restores default host system timezone. */ timezoneId: string; } export interface SetVisibleSizeRequest { /** * Frame width (DIP). */ width: integer; /** * Frame height (DIP). */ height: integer; } export interface SetDisabledImageTypesRequest { /** * Image types to disable. */ imageTypes: DisabledImageType[]; } export interface SetHardwareConcurrencyOverrideRequest { /** * Hardware concurrency to report */ hardwareConcurrency: integer; } export interface SetUserAgentOverrideRequest { /** * User agent to use. */ userAgent: string; /** * Browser langugage to emulate. */ acceptLanguage?: string; /** * The platform navigator.platform should return. */ platform?: string; /** * To be sent in Sec-CH-UA-* headers and returned in navigator.userAgentData */ userAgentMetadata?: UserAgentMetadata; } export interface SetAutomationOverrideRequest { /** * Whether the override should be enabled. */ enabled: boolean; } } /** * This domain provides experimental commands only supported in headless mode. */ export namespace HeadlessExperimental { export const enum ScreenshotParamsFormat { Jpeg = "jpeg", Png = "png", } /** * Encoding options for a screenshot. */ export interface ScreenshotParams { /** * Image compression format (defaults to png). (ScreenshotParamsFormat enum) */ format?: "jpeg" | "png"; /** * Compression quality from range [0..100] (jpeg only). */ quality?: integer; } export interface BeginFrameRequest { /** * Timestamp of this BeginFrame in Renderer TimeTicks (milliseconds of uptime). If not set, * the current time will be used. */ frameTimeTicks?: number; /** * The interval between BeginFrames that is reported to the compositor, in milliseconds. * Defaults to a 60 frames/second interval, i.e. about 16.666 milliseconds. */ interval?: number; /** * Whether updates should not be committed and drawn onto the display. False by default. If * true, only side effects of the BeginFrame will be run, such as layout and animations, but * any visual updates may not be visible on the display or in screenshots. */ noDisplayUpdates?: boolean; /** * If set, a screenshot of the frame will be captured and returned in the response. Otherwise, * no screenshot will be captured. Note that capturing a screenshot can fail, for example, * during renderer initialization. In such a case, no screenshot data will be returned. */ screenshot?: ScreenshotParams; } export interface BeginFrameResponse { /** * Whether the BeginFrame resulted in damage and, thus, a new frame was committed to the * display. Reported for diagnostic uses, may be removed in the future. */ hasDamage: boolean; /** * Base64-encoded image data of the screenshot, if one was requested and successfully taken. (Encoded as a base64 string when passed over JSON) */ screenshotData?: string; } /** * Issued when the target starts or stops needing BeginFrames. * Deprecated. Issue beginFrame unconditionally instead and use result from * beginFrame to detect whether the frames were suppressed. */ export interface NeedsBeginFramesChangedEvent { /** * True if BeginFrames are needed, false otherwise. */ needsBeginFrames: boolean; } } /** * Input/Output operations for streams produced by DevTools. */ export namespace IO { /** * This is either obtained from another method or specified as `blob:&lt;uuid&gt;` where * `&lt;uuid&gt` is an UUID of a Blob. */ export type StreamHandle = string; export interface CloseRequest { /** * Handle of the stream to close. */ handle: StreamHandle; } export interface ReadRequest { /** * Handle of the stream to read. */ handle: StreamHandle; /** * Seek to the specified offset before reading (if not specificed, proceed with offset * following the last read). Some types of streams may only support sequential reads. */ offset?: integer; /** * Maximum number of bytes to read (left upon the agent discretion if not specified). */ size?: integer; } export interface ReadResponse { /** * Set if the data is base64-encoded */ base64Encoded?: boolean; /** * Data that were read. */ data: string; /** * Set if the end-of-file condition occurred while reading. */ eof: boolean; } export interface ResolveBlobRequest { /** * Object id of a Blob object wrapper. */ objectId: Runtime.RemoteObjectId; } export interface ResolveBlobResponse { /** * UUID of the specified Blob. */ uuid: string; } } export namespace IndexedDB { /** * Database with an array of object stores. */ export interface DatabaseWithObjectStores { /** * Database name. */ name: string; /** * Database version (type is not 'integer', as the standard * requires the version number to be 'unsigned long long') */ version: number; /** * Object stores in this database. */ objectStores: ObjectStore[]; } /** * Object store. */ export interface ObjectStore { /** * Object store name. */ name: string; /** * Object store key path. */ keyPath: KeyPath; /** * If true, object store has auto increment flag set. */ autoIncrement: boolean; /** * Indexes in this object store. */ indexes: ObjectStoreIndex[]; } /** * Object store index. */ export interface ObjectStoreIndex { /** * Index name. */ name: string; /** * Index key path. */ keyPath: KeyPath; /** * If true, index is unique. */ unique: boolean; /** * If true, index allows multiple entries for a key. */ multiEntry: boolean; } export const enum KeyType { Number = "number", String = "string", Date = "date", Array = "array", } /** * Key. */ export interface Key { /** * Key type. (KeyType enum) */ type: "number" | "string" | "date" | "array"; /** * Number value. */ number?: number; /** * String value. */ string?: string; /** * Date value. */ date?: number; /** * Array value. */ array?: Key[]; } /** * Key range. */ export interface KeyRange { /** * Lower bound. */ lower?: Key; /** * Upper bound. */ upper?: Key; /** * If true lower bound is open. */ lowerOpen: boolean; /** * If true upper bound is open. */ upperOpen: boolean; } /** * Data entry. */ export interface DataEntry { /** * Key object. */ key: Runtime.RemoteObject; /** * Primary key object. */ primaryKey: Runtime.RemoteObject; /** * Value object. */ value: Runtime.RemoteObject; } export const enum KeyPathType { Null = "null", String = "string", Array = "array", } /** * Key path. */ export interface KeyPath { /** * Key path type. (KeyPathType enum) */ type: "null" | "string" | "array"; /** * String value. */ string?: string; /** * Array value. */ array?: string[]; } export interface ClearObjectStoreRequest { /** * Security origin. */ securityOrigin: string; /** * Database name. */ databaseName: string; /** * Object store name. */ objectStoreName: string; } export interface DeleteDatabaseRequest { /** * Security origin. */ securityOrigin: string; /** * Database name. */ databaseName: string; } export interface DeleteObjectStoreEntriesRequest { securityOrigin: string; databaseName: string; objectStoreName: string; /** * Range of entry keys to delete */ keyRange: KeyRange; } export interface RequestDataRequest { /** * Security origin. */ securityOrigin: string; /** * Database name. */ databaseName: string; /** * Object store name. */ objectStoreName: string; /** * Index name, empty string for object store data requests. */ indexName: string; /** * Number of records to skip. */ skipCount: integer; /** * Number of records to fetch. */ pageSize: integer; /** * Key range. */ keyRange?: KeyRange; } export interface RequestDataResponse { /** * Array of object store data entries. */ objectStoreDataEntries: DataEntry[]; /** * If true, there are more entries to fetch in the given range. */ hasMore: boolean; } export interface GetMetadataRequest { /** * Security origin. */ securityOrigin: string; /** * Database name. */ databaseName: string; /** * Object store name. */ objectStoreName: string; } export interface GetMetadataResponse { /** * the entries count */ entriesCount: number; /** * the current value of key generator, to become the next inserted * key into the object store. Valid if objectStore.autoIncrement * is true. */ keyGeneratorValue: number; } export interface RequestDatabaseRequest { /** * Security origin. */ securityOrigin: string; /** * Database name. */ databaseName: string; } export interface RequestDatabaseResponse { /** * Database with an array of object stores. */ databaseWithObjectStores: DatabaseWithObjectStores; } export interface RequestDatabaseNamesRequest { /** * Security origin. */ securityOrigin: string; } export interface RequestDatabaseNamesResponse { /** * Database names for origin. */ databaseNames: string[]; } } export namespace Input { export interface TouchPoint { /** * X coordinate of the event relative to the main frame's viewport in CSS pixels. */ x: number; /** * Y coordinate of the event relative to the main frame's viewport in CSS pixels. 0 refers to * the top of the viewport and Y increases as it proceeds towards the bottom of the viewport. */ y: number; /** * X radius of the touch area (default: 1.0). */ radiusX?: number; /** * Y radius of the touch area (default: 1.0). */ radiusY?: number; /** * Rotation angle (default: 0.0). */ rotationAngle?: number; /** * Force (default: 1.0). */ force?: number; /** * The normalized tangential pressure, which has a range of [-1,1] (default: 0). */ tangentialPressure?: number; /** * The plane angle between the Y-Z plane and the plane containing both the stylus axis and the Y axis, in degrees of the range [-90,90], a positive tiltX is to the right (default: 0) */ tiltX?: integer; /** * The plane angle between the X-Z plane and the plane containing both the stylus axis and the X axis, in degrees of the range [-90,90], a positive tiltY is towards the user (default: 0). */ tiltY?: integer; /** * The clockwise rotation of a pen stylus around its own major axis, in degrees in the range [0,359] (default: 0). */ twist?: integer; /** * Identifier used to track touch sources between events, must be unique within an event. */ id?: number; } export type GestureSourceType = "default" | "touch" | "mouse"; export type MouseButton = | "none" | "left" | "middle" | "right" | "back" | "forward"; /** * UTC time in seconds, counted from January 1, 1970. */ export type TimeSinceEpoch = number; export interface DragDataItem { /** * Mime type of the dragged data. */ mimeType: string; /** * Depending of the value of `mimeType`, it contains the dragged link, * text, HTML markup or any other data. */ data: string; /** * Title associated with a link. Only valid when `mimeType` == "text/uri-list". */ title?: string; /** * Stores the base URL for the contained markup. Only valid when `mimeType` * == "text/html". */ baseURL?: string; } export interface DragData { items: DragDataItem[]; /** * List of filenames that should be included when dropping */ files?: string[]; /** * Bit field representing allowed drag operations. Copy = 1, Link = 2, Move = 16 */ dragOperationsMask: integer; } export const enum DispatchDragEventRequestType { DragEnter = "dragEnter", DragOver = "dragOver", Drop = "drop", DragCancel = "dragCancel", } export interface DispatchDragEventRequest { /** * Type of the drag event. (DispatchDragEventRequestType enum) */ type: "dragEnter" | "dragOver" | "drop" | "dragCancel"; /** * X coordinate of the event relative to the main frame's viewport in CSS pixels. */ x: number; /** * Y coordinate of the event relative to the main frame's viewport in CSS pixels. 0 refers to * the top of the viewport and Y increases as it proceeds towards the bottom of the viewport. */ y: number; data: DragData; /** * Bit field representing pressed modifier keys. Alt=1, Ctrl=2, Meta/Command=4, Shift=8 * (default: 0). */ modifiers?: integer; } export const enum DispatchKeyEventRequestType { KeyDown = "keyDown", KeyUp = "keyUp", RawKeyDown = "rawKeyDown", Char = "char", } export interface DispatchKeyEventRequest { /** * Type of the key event. (DispatchKeyEventRequestType enum) */ type: "keyDown" | "keyUp" | "rawKeyDown" | "char"; /** * Bit field representing pressed modifier keys. Alt=1, Ctrl=2, Meta/Command=4, Shift=8 * (default: 0). */ modifiers?: integer; /** * Time at which the event occurred. */ timestamp?: TimeSinceEpoch; /** * Text as generated by processing a virtual key code with a keyboard layout. Not needed for * for `keyUp` and `rawKeyDown` events (default: "") */ text?: string; /** * Text that would have been generated by the keyboard if no modifiers were pressed (except for * shift). Useful for shortcut (accelerator) key handling (default: ""). */ unmodifiedText?: string; /** * Unique key identifier (e.g., 'U+0041') (default: ""). */ keyIdentifier?: string; /** * Unique DOM defined string value for each physical key (e.g., 'KeyA') (default: ""). */ code?: string; /** * Unique DOM defined string value describing the meaning of the key in the context of active * modifiers, keyboard layout, etc (e.g., 'AltGr') (default: ""). */ key?: string; /** * Windows virtual key code (default: 0). */ windowsVirtualKeyCode?: integer; /** * Native virtual key code (default: 0). */ nativeVirtualKeyCode?: integer; /** * Whether the event was generated from auto repeat (default: false). */ autoRepeat?: boolean; /** * Whether the event was generated from the keypad (default: false). */ isKeypad?: boolean; /** * Whether the event was a system key event (default: false). */ isSystemKey?: boolean; /** * Whether the event was from the left or right side of the keyboard. 1=Left, 2=Right (default: * 0). */ location?: integer; /** * Editing commands to send with the key event (e.g., 'selectAll') (default: []). * These are related to but not equal the command names used in `document.execCommand` and NSStandardKeyBindingResponding. * See https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/core/editing/commands/editor_command_names.h for valid command names. */ commands?: string[]; } export interface InsertTextRequest { /** * The text to insert. */ text: string; } export interface ImeSetCompositionRequest { /** * The text to insert */ text: string; /** * selection start */ selectionStart: integer; /** * selection end */ selectionEnd: integer; /** * replacement start */ replacementStart?: integer; /** * replacement end */ replacementEnd?: integer; } export const enum DispatchMouseEventRequestType { MousePressed = "mousePressed", MouseReleased = "mouseReleased", MouseMoved = "mouseMoved", MouseWheel = "mouseWheel", } export const enum DispatchMouseEventRequestPointerType { Mouse = "mouse", Pen = "pen", } export interface DispatchMouseEventRequest { /** * Type of the mouse event. (DispatchMouseEventRequestType enum) */ type: "mousePressed" | "mouseReleased" | "mouseMoved" | "mouseWheel"; /** * X coordinate of the event relative to the main frame's viewport in CSS pixels. */ x: number; /** * Y coordinate of the event relative to the main frame's viewport in CSS pixels. 0 refers to * the top of the viewport and Y increases as it proceeds towards the bottom of the viewport. */ y: number; /** * Bit field representing pressed modifier keys. Alt=1, Ctrl=2, Meta/Command=4, Shift=8 * (default: 0). */ modifiers?: integer; /** * Time at which the event occurred. */ timestamp?: TimeSinceEpoch; /** * Mouse button (default: "none"). */ button?: MouseButton; /** * A number indicating which buttons are pressed on the mouse when a mouse event is triggered. * Left=1, Right=2, Middle=4, Back=8, Forward=16, None=0. */ buttons?: integer; /** * Number of times the mouse button was clicked (default: 0). */ clickCount?: integer; /** * The normalized pressure, which has a range of [0,1] (default: 0). */ force?: number; /** * The normalized tangential pressure, which has a range of [-1,1] (default: 0). */ tangentialPressure?: number; /** * The plane angle between the Y-Z plane and the plane containing both the stylus axis and the Y axis, in degrees of the range [-90,90], a positive tiltX is to the right (default: 0). */ tiltX?: integer; /** * The plane angle between the X-Z plane and the plane containing both the stylus axis and the X axis, in degrees of the range [-90,90], a positive tiltY is towards the user (default: 0). */ tiltY?: integer; /** * The clockwise rotation of a pen stylus around its own major axis, in degrees in the range [0,359] (default: 0). */ twist?: integer; /** * X delta in CSS pixels for mouse wheel event (default: 0). */ deltaX?: number; /** * Y delta in CSS pixels for mouse wheel event (default: 0). */ deltaY?: number; /** * Pointer type (default: "mouse"). (DispatchMouseEventRequestPointerType enum) */ pointerType?: "mouse" | "pen"; } export const enum DispatchTouchEventRequestType { TouchStart = "touchStart", TouchEnd = "touchEnd", TouchMove = "touchMove", TouchCancel = "touchCancel", } export interface DispatchTouchEventRequest { /** * Type of the touch event. TouchEnd and TouchCancel must not contain any touch points, while * TouchStart and TouchMove must contains at least one. (DispatchTouchEventRequestType enum) */ type: "touchStart" | "touchEnd" | "touchMove" | "touchCancel"; /** * Active touch points on the touch device. One event per any changed point (compared to * previous touch event in a sequence) is generated, emulating pressing/moving/releasing points * one by one. */ touchPoints: TouchPoint[]; /** * Bit field representing pressed modifier keys. Alt=1, Ctrl=2, Meta/Command=4, Shift=8 * (default: 0). */ modifiers?: integer; /** * Time at which the event occurred. */ timestamp?: TimeSinceEpoch; } export const enum EmulateTouchFromMouseEventRequestType { MousePressed = "mousePressed", MouseReleased = "mouseReleased", MouseMoved = "mouseMoved", MouseWheel = "mouseWheel", } export interface EmulateTouchFromMouseEventRequest { /** * Type of the mouse event. (EmulateTouchFromMouseEventRequestType enum) */ type: "mousePressed" | "mouseReleased" | "mouseMoved" | "mouseWheel"; /** * X coordinate of the mouse pointer in DIP. */ x: integer; /** * Y coordinate of the mouse pointer in DIP. */ y: integer; /** * Mouse button. Only "none", "left", "right" are supported. */ button: MouseButton; /** * Time at which the event occurred (default: current time). */ timestamp?: TimeSinceEpoch; /** * X delta in DIP for mouse wheel event (default: 0). */ deltaX?: number; /** * Y delta in DIP for mouse wheel event (default: 0). */ deltaY?: number; /** * Bit field representing pressed modifier keys. Alt=1, Ctrl=2, Meta/Command=4, Shift=8 * (default: 0). */ modifiers?: integer; /** * Number of times the mouse button was clicked (default: 0). */ clickCount?: integer; } export interface SetIgnoreInputEventsRequest { /** * Ignores input events processing when set to true. */ ignore: boolean; } export interface SetInterceptDragsRequest { enabled: boolean; } export interface SynthesizePinchGestureRequest { /** * X coordinate of the start of the gesture in CSS pixels. */ x: number; /** * Y coordinate of the start of the gesture in CSS pixels. */ y: number; /** * Relative scale factor after zooming (>1.0 zooms in, <1.0 zooms out). */ scaleFactor: number; /** * Relative pointer speed in pixels per second (default: 800). */ relativeSpeed?: integer; /** * Which type of input events to be generated (default: 'default', which queries the platform * for the preferred input type). */ gestureSourceType?: GestureSourceType; } export interface SynthesizeScrollGestureRequest { /** * X coordinate of the start of the gesture in CSS pixels. */ x: number; /** * Y coordinate of the start of the gesture in CSS pixels. */ y: number; /** * The distance to scroll along the X axis (positive to scroll left). */ xDistance?: number; /** * The distance to scroll along the Y axis (positive to scroll up). */ yDistance?: number; /** * The number of additional pixels to scroll back along the X axis, in addition to the given * distance. */ xOverscroll?: number; /** * The number of additional pixels to scroll back along the Y axis, in addition to the given * distance. */ yOverscroll?: number; /** * Prevent fling (default: true). */ preventFling?: boolean; /** * Swipe speed in pixels per second (default: 800). */ speed?: integer; /** * Which type of input events to be generated (default: 'default', which queries the platform * for the preferred input type). */ gestureSourceType?: GestureSourceType; /** * The number of times to repeat the gesture (default: 0). */ repeatCount?: integer; /** * The number of milliseconds delay between each repeat. (default: 250). */ repeatDelayMs?: integer; /** * The name of the interaction markers to generate, if not empty (default: ""). */ interactionMarkerName?: string; } export interface SynthesizeTapGestureRequest { /** * X coordinate of the start of the gesture in CSS pixels. */ x: number; /** * Y coordinate of the start of the gesture in CSS pixels. */ y: number; /** * Duration between touchdown and touchup events in ms (default: 50). */ duration?: integer; /** * Number of times to perform the tap (e.g. 2 for double tap, default: 1). */ tapCount?: integer; /** * Which type of input events to be generated (default: 'default', which queries the platform * for the preferred input type). */ gestureSourceType?: GestureSourceType; } /** * Emitted only when `Input.setInterceptDrags` is enabled. Use this data with `Input.dispatchDragEvent` to * restore normal drag and drop behavior. */ export interface DragInterceptedEvent { data: DragData; } } export namespace Inspector { /** * Fired when remote debugging connection is about to be terminated. Contains detach reason. */ export interface DetachedEvent { /** * The reason why connection has been terminated. */ reason: string; } } export namespace LayerTree { /** * Unique Layer identifier. */ export type LayerId = string; /** * Unique snapshot identifier. */ export type SnapshotId = string; export const enum ScrollRectType { RepaintsOnScroll = "RepaintsOnScroll", TouchEventHandler = "TouchEventHandler", WheelEventHandler = "WheelEventHandler", } /** * Rectangle where scrolling happens on the main thread. */ export interface ScrollRect { /** * Rectangle itself. */ rect: DOM.Rect; /** * Reason for rectangle to force scrolling on the main thread (ScrollRectType enum) */ type: "RepaintsOnScroll" | "TouchEventHandler" | "WheelEventHandler"; } /** * Sticky position constraints. */ export interface StickyPositionConstraint { /** * Layout rectangle of the sticky element before being shifted */ stickyBoxRect: DOM.Rect; /** * Layout rectangle of the containing block of the sticky element */ containingBlockRect: DOM.Rect; /** * The nearest sticky layer that shifts the sticky box */ nearestLayerShiftingStickyBox?: LayerId; /** * The nearest sticky layer that shifts the containing block */ nearestLayerShiftingContainingBlock?: LayerId; } /** * Serialized fragment of layer picture along with its offset within the layer. */ export interface PictureTile { /** * Offset from owning layer left boundary */ x: number; /** * Offset from owning layer top boundary */ y: number; /** * Base64-encoded snapshot data. (Encoded as a base64 string when passed over JSON) */ picture: string; } /** * Information about a compositing layer. */ export interface Layer { /** * The unique id for this layer. */ layerId: LayerId; /** * The id of parent (not present for root). */ parentLayerId?: LayerId; /** * The backend id for the node associated with this layer. */ backendNodeId?: DOM.BackendNodeId; /** * Offset from parent layer, X coordinate. */ offsetX: number; /** * Offset from parent layer, Y coordinate. */ offsetY: number; /** * Layer width. */ width: number; /** * Layer height. */ height: number; /** * Transformation matrix for layer, default is identity matrix */ transform?: number[]; /** * Transform anchor point X, absent if no transform specified */ anchorX?: number; /** * Transform anchor point Y, absent if no transform specified */ anchorY?: number; /** * Transform anchor point Z, absent if no transform specified */ anchorZ?: number; /** * Indicates how many time this layer has painted. */ paintCount: integer; /** * Indicates whether this layer hosts any content, rather than being used for * transform/scrolling purposes only. */ drawsContent: boolean; /** * Set if layer is not visible. */ invisible?: boolean; /** * Rectangles scrolling on main thread only. */ scrollRects?: ScrollRect[]; /** * Sticky position constraint information */ stickyPositionConstraint?: StickyPositionConstraint; } /** * Array of timings, one per paint step. */ export type PaintProfile = number[]; export interface CompositingReasonsRequest { /** * The id of the layer for which we want to get the reasons it was composited. */ layerId: LayerId; } export interface CompositingReasonsResponse { /** * A list of strings specifying reasons for the given layer to become composited. */ compositingReasons: string[]; /** * A list of strings specifying reason IDs for the given layer to become composited. */ compositingReasonIds: string[]; } export interface LoadSnapshotRequest { /** * An array of tiles composing the snapshot. */ tiles: PictureTile[]; } export interface LoadSnapshotResponse { /** * The id of the snapshot. */ snapshotId: SnapshotId; } export interface MakeSnapshotRequest { /** * The id of the layer. */ layerId: LayerId; } export interface MakeSnapshotResponse { /** * The id of the layer snapshot. */ snapshotId: SnapshotId; } export interface ProfileSnapshotRequest { /** * The id of the layer snapshot. */ snapshotId: SnapshotId; /** * The maximum number of times to replay the snapshot (1, if not specified). */ minRepeatCount?: integer; /** * The minimum duration (in seconds) to replay the snapshot. */ minDuration?: number; /** * The clip rectangle to apply when replaying the snapshot. */ clipRect?: DOM.Rect; } export interface ProfileSnapshotResponse { /** * The array of paint profiles, one per run. */ timings: PaintProfile[]; } export interface ReleaseSnapshotRequest { /** * The id of the layer snapshot. */ snapshotId: SnapshotId; } export interface ReplaySnapshotRequest { /** * The id of the layer snapshot. */ snapshotId: SnapshotId; /** * The first step to replay from (replay from the very start if not specified). */ fromStep?: integer; /** * The last step to replay to (replay till the end if not specified). */ toStep?: integer; /** * The scale to apply while replaying (defaults to 1). */ scale?: number; } export interface ReplaySnapshotResponse { /** * A data: URL for resulting image. */ dataURL: string; } export interface SnapshotCommandLogRequest { /** * The id of the layer snapshot. */ snapshotId: SnapshotId; } export interface SnapshotCommandLogResponse { /** * The array of canvas function calls. */ commandLog: any[]; } export interface LayerPaintedEvent { /** * The id of the painted layer. */ layerId: LayerId; /** * Clip rectangle. */ clip: DOM.Rect; } export interface LayerTreeDidChangeEvent { /** * Layer tree, absent if not in the comspositing mode. */ layers?: Layer[]; } } /** * Provides access to log entries. */ export namespace Log { export const enum LogEntrySource { XML = "xml", Javascript = "javascript", Network = "network", Storage = "storage", Appcache = "appcache", Rendering = "rendering", Security = "security", Deprecation = "deprecation", Worker = "worker", Violation = "violation", Intervention = "intervention", Recommendation = "recommendation", Other = "other", } export const enum LogEntryLevel { Verbose = "verbose", Info = "info", Warning = "warning", Error = "error", } export const enum LogEntryCategory { Cors = "cors", } /** * Log entry. */ export interface LogEntry { /** * Log entry source. (LogEntrySource enum) */ source: | "xml" | "javascript" | "network" | "storage" | "appcache" | "rendering" | "security" | "deprecation" | "worker" | "violation" | "intervention" | "recommendation" | "other"; /** * Log entry severity. (LogEntryLevel enum) */ level: "verbose" | "info" | "warning" | "error"; /** * Logged text. */ text: string; /** * (LogEntryCategory enum) */ category?: "cors"; /** * Timestamp when this entry was added. */ timestamp: Runtime.Timestamp; /** * URL of the resource if known. */ url?: string; /** * Line number in the resource. */ lineNumber?: integer; /** * JavaScript stack trace. */ stackTrace?: Runtime.StackTrace; /** * Identifier of the network request associated with this entry. */ networkRequestId?: Network.RequestId; /** * Identifier of the worker associated with this entry. */ workerId?: string; /** * Call arguments. */ args?: Runtime.RemoteObject[]; } export const enum ViolationSettingName { LongTask = "longTask", LongLayout = "longLayout", BlockedEvent = "blockedEvent", BlockedParser = "blockedParser", DiscouragedAPIUse = "discouragedAPIUse", Handler = "handler", RecurringHandler = "recurringHandler", } /** * Violation configuration setting. */ export interface ViolationSetting { /** * Violation type. (ViolationSettingName enum) */ name: | "longTask" | "longLayout" | "blockedEvent" | "blockedParser" | "discouragedAPIUse" | "handler" | "recurringHandler"; /** * Time threshold to trigger upon. */ threshold: number; } export interface StartViolationsReportRequest { /** * Configuration for violations. */ config: ViolationSetting[]; } /** * Issued when new message was logged. */ export interface EntryAddedEvent { /** * The entry. */ entry: LogEntry; } } export namespace Memory { /** * Memory pressure level. */ export type PressureLevel = "moderate" | "critical"; /** * Heap profile sample. */ export interface SamplingProfileNode { /** * Size of the sampled allocation. */ size: number; /** * Total bytes attributed to this sample. */ total: number; /** * Execution stack at the point of allocation. */ stack: string[]; } /** * Array of heap profile samples. */ export interface SamplingProfile { samples: SamplingProfileNode[]; modules: Module[]; } /** * Executable module information */ export interface Module { /** * Name of the module. */ name: string; /** * UUID of the module. */ uuid: string; /** * Base address where the module is loaded into memory. Encoded as a decimal * or hexadecimal (0x prefixed) string. */ baseAddress: string; /** * Size of the module in bytes. */ size: number; } export interface GetDOMCountersResponse { documents: integer; nodes: integer; jsEventListeners: integer; } export interface SetPressureNotificationsSuppressedRequest { /** * If true, memory pressure notifications will be suppressed. */ suppressed: boolean; } export interface SimulatePressureNotificationRequest { /** * Memory pressure level of the notification. */ level: PressureLevel; } export interface StartSamplingRequest { /** * Average number of bytes between samples. */ samplingInterval?: integer; /** * Do not randomize intervals between samples. */ suppressRandomness?: boolean; } export interface GetAllTimeSamplingProfileResponse { profile: SamplingProfile; } export interface GetBrowserSamplingProfileResponse { profile: SamplingProfile; } export interface GetSamplingProfileResponse { profile: SamplingProfile; } } /** * Network domain allows tracking network activities of the page. It exposes information about http, * file, data and other requests and responses, their headers, bodies, timing, etc. */ export namespace Network { /** * Resource type as it was perceived by the rendering engine. */ export type ResourceType = | "Document" | "Stylesheet" | "Image" | "Media" | "Font" | "Script" | "TextTrack" | "XHR" | "Fetch" | "EventSource" | "WebSocket" | "Manifest" | "SignedExchange" | "Ping" | "CSPViolationReport" | "Preflight" | "Other"; /** * Unique loader identifier. */ export type LoaderId = string; /** * Unique request identifier. */ export type RequestId = string; /** * Unique intercepted request identifier. */ export type InterceptionId = string; /** * Network level fetch failure reason. */ export type ErrorReason = | "Failed" | "Aborted" | "TimedOut" | "AccessDenied" | "ConnectionClosed" | "ConnectionReset" | "ConnectionRefused" | "ConnectionAborted" | "ConnectionFailed" | "NameNotResolved" | "InternetDisconnected" | "AddressUnreachable" | "BlockedByClient" | "BlockedByResponse"; /** * UTC time in seconds, counted from January 1, 1970. */ export type TimeSinceEpoch = number; /** * Monotonically increasing time in seconds since an arbitrary point in the past. */ export type MonotonicTime = number; /** * Request / response headers as keys / values of JSON object. */ export interface Headers { [key: string]: string; } /** * The underlying connection technology that the browser is supposedly using. */ export type ConnectionType = | "none" | "cellular2g" | "cellular3g" | "cellular4g" | "bluetooth" | "ethernet" | "wifi" | "wimax" | "other"; /** * Represents the cookie's 'SameSite' status: * https://tools.ietf.org/html/draft-west-first-party-cookies */ export type CookieSameSite = "Strict" | "Lax" | "None"; /** * Represents the cookie's 'Priority' status: * https://tools.ietf.org/html/draft-west-cookie-priority-00 */ export type CookiePriority = "Low" | "Medium" | "High"; /** * Represents the source scheme of the origin that originally set the cookie. * A value of "Unset" allows protocol clients to emulate legacy cookie scope for the scheme. * This is a temporary ability and it will be removed in the future. */ export type CookieSourceScheme = "Unset" | "NonSecure" | "Secure"; /** * Timing information for the request. */ export interface ResourceTiming { /** * Timing's requestTime is a baseline in seconds, while the other numbers are ticks in * milliseconds relatively to this requestTime. */ requestTime: number; /** * Started resolving proxy. */ proxyStart: number; /** * Finished resolving proxy. */ proxyEnd: number; /** * Started DNS address resolve. */ dnsStart: number; /** * Finished DNS address resolve. */ dnsEnd: number; /** * Started connecting to the remote host. */ connectStart: number; /** * Connected to the remote host. */ connectEnd: number; /** * Started SSL handshake. */ sslStart: number; /** * Finished SSL handshake. */ sslEnd: number; /** * Started running ServiceWorker. */ workerStart: number; /** * Finished Starting ServiceWorker. */ workerReady: number; /** * Started fetch event. */ workerFetchStart: number; /** * Settled fetch event respondWith promise. */ workerRespondWithSettled: number; /** * Started sending request. */ sendStart: number; /** * Finished sending request. */ sendEnd: number; /** * Time the server started pushing request. */ pushStart: number; /** * Time the server finished pushing request. */ pushEnd: number; /** * Finished receiving response headers. */ receiveHeadersEnd: number; } /** * Loading priority of a resource request. */ export type ResourcePriority = | "VeryLow" | "Low" | "Medium" | "High" | "VeryHigh"; /** * Post data entry for HTTP request */ export interface PostDataEntry { bytes?: string; } export const enum RequestReferrerPolicy { UnsafeUrl = "unsafe-url", NoReferrerWhenDowngrade = "no-referrer-when-downgrade", NoReferrer = "no-referrer", Origin = "origin", OriginWhenCrossOrigin = "origin-when-cross-origin", SameOrigin = "same-origin", StrictOrigin = "strict-origin", StrictOriginWhenCrossOrigin = "strict-origin-when-cross-origin", } /** * HTTP request data. */ export interface Request { /** * Request URL (without fragment). */ url: string; /** * Fragment of the requested URL starting with hash, if present. */ urlFragment?: string; /** * HTTP request method. */ method: string; /** * HTTP request headers. */ headers: Headers; /** * HTTP POST request data. */ postData?: string; /** * True when the request has POST data. Note that postData might still be omitted when this flag is true when the data is too long. */ hasPostData?: boolean; /** * Request body elements. This will be converted from base64 to binary */ postDataEntries?: PostDataEntry[]; /** * The mixed content type of the request. */ mixedContentType?: Security.MixedContentType; /** * Priority of the resource request at the time request is sent. */ initialPriority: ResourcePriority; /** * The referrer policy of the request, as defined in https://www.w3.org/TR/referrer-policy/ (RequestReferrerPolicy enum) */ referrerPolicy: | "unsafe-url" | "no-referrer-when-downgrade" | "no-referrer" | "origin" | "origin-when-cross-origin" | "same-origin" | "strict-origin" | "strict-origin-when-cross-origin"; /** * Whether is loaded via link preload. */ isLinkPreload?: boolean; /** * Set for requests when the TrustToken API is used. Contains the parameters * passed by the developer (e.g. via "fetch") as understood by the backend. */ trustTokenParams?: TrustTokenParams; /** * True if this resource request is considered to be the 'same site' as the * request correspondinfg to the main frame. */ isSameSite?: boolean; } /** * Details of a signed certificate timestamp (SCT). */ export interface SignedCertificateTimestamp { /** * Validation status. */ status: string; /** * Origin. */ origin: string; /** * Log name / description. */ logDescription: string; /** * Log ID. */ logId: string; /** * Issuance date. Unlike TimeSinceEpoch, this contains the number of * milliseconds since January 1, 1970, UTC, not the number of seconds. */ timestamp: number; /** * Hash algorithm. */ hashAlgorithm: string; /** * Signature algorithm. */ signatureAlgorithm: string; /** * Signature data. */ signatureData: string; } /** * Security details about a request. */ export interface SecurityDetails { /** * Protocol name (e.g. "TLS 1.2" or "QUIC"). */ protocol: string; /** * Key Exchange used by the connection, or the empty string if not applicable. */ keyExchange: string; /** * (EC)DH group used by the connection, if applicable. */ keyExchangeGroup?: string; /** * Cipher name. */ cipher: string; /** * TLS MAC. Note that AEAD ciphers do not have separate MACs. */ mac?: string; /** * Certificate ID value. */ certificateId: Security.CertificateId; /** * Certificate subject name. */ subjectName: string; /** * Subject Alternative Name (SAN) DNS names and IP addresses. */ sanList: string[]; /** * Name of the issuing CA. */ issuer: string; /** * Certificate valid from date. */ validFrom: TimeSinceEpoch; /** * Certificate valid to (expiration) date */ validTo: TimeSinceEpoch; /** * List of signed certificate timestamps (SCTs). */ signedCertificateTimestampList: SignedCertificateTimestamp[]; /** * Whether the request complied with Certificate Transparency policy */ certificateTransparencyCompliance: CertificateTransparencyCompliance; } /** * Whether the request complied with Certificate Transparency policy. */ export type CertificateTransparencyCompliance = | "unknown" | "not-compliant" | "compliant"; /** * The reason why request was blocked. */ export type BlockedReason = | "other" | "csp" | "mixed-content" | "origin" | "inspector" | "subresource-filter" | "content-type" | "coep-frame-resource-needs-coep-header" | "coop-sandboxed-iframe-cannot-navigate-to-coop-page" | "corp-not-same-origin" | "corp-not-same-origin-after-defaulted-to-same-origin-by-coep" | "corp-not-same-site"; /** * The reason why request was blocked. */ export type CorsError = | "DisallowedByMode" | "InvalidResponse" | "WildcardOriginNotAllowed" | "MissingAllowOriginHeader" | "MultipleAllowOriginValues" | "InvalidAllowOriginValue" | "AllowOriginMismatch" | "InvalidAllowCredentials" | "CorsDisabledScheme" | "PreflightInvalidStatus" | "PreflightDisallowedRedirect" | "PreflightWildcardOriginNotAllowed" | "PreflightMissingAllowOriginHeader" | "PreflightMultipleAllowOriginValues" | "PreflightInvalidAllowOriginValue" | "PreflightAllowOriginMismatch" | "PreflightInvalidAllowCredentials" | "PreflightMissingAllowExternal" | "PreflightInvalidAllowExternal" | "PreflightMissingAllowPrivateNetwork" | "PreflightInvalidAllowPrivateNetwork" | "InvalidAllowMethodsPreflightResponse" | "InvalidAllowHeadersPreflightResponse" | "MethodDisallowedByPreflightResponse" | "HeaderDisallowedByPreflightResponse" | "RedirectContainsCredentials" | "InsecurePrivateNetwork" | "InvalidPrivateNetworkAccess" | "UnexpectedPrivateNetworkAccess" | "NoCorsRedirectModeNotFollow"; export interface CorsErrorStatus { corsError: CorsError; failedParameter: string; } /** * Source of serviceworker response. */ export type ServiceWorkerResponseSource = | "cache-storage" | "http-cache" | "fallback-code" | "network"; export const enum TrustTokenParamsRefreshPolicy { UseCached = "UseCached", Refresh = "Refresh", } /** * Determines what type of Trust Token operation is executed and * depending on the type, some additional parameters. The values * are specified in third_party/blink/renderer/core/fetch/trust_token.idl. */ export interface TrustTokenParams { type: TrustTokenOperationType; /** * Only set for "token-redemption" type and determine whether * to request a fresh SRR or use a still valid cached SRR. (TrustTokenParamsRefreshPolicy enum) */ refreshPolicy: "UseCached" | "Refresh"; /** * Origins of issuers from whom to request tokens or redemption * records. */ issuers?: string[]; } export type TrustTokenOperationType = "Issuance" | "Redemption" | "Signing"; /** * HTTP response data. */ export interface Response { /** * Response URL. This URL can be different from CachedResource.url in case of redirect. */ url: string; /** * HTTP response status code. */ status: integer; /** * HTTP response status text. */ statusText: string; /** * HTTP response headers. */ headers: Headers; /** * HTTP response headers text. This has been replaced by the headers in Network.responseReceivedExtraInfo. */ headersText?: string; /** * Resource mimeType as determined by the browser. */ mimeType: string; /** * Refined HTTP request headers that were actually transmitted over the network. */ requestHeaders?: Headers; /** * HTTP request headers text. This has been replaced by the headers in Network.requestWillBeSentExtraInfo. */ requestHeadersText?: string; /** * Specifies whether physical connection was actually reused for this request. */ connectionReused: boolean; /** * Physical connection id that was actually used for this request. */ connectionId: number; /** * Remote IP address. */ remoteIPAddress?: string; /** * Remote port. */ remotePort?: integer; /** * Specifies that the request was served from the disk cache. */ fromDiskCache?: boolean; /** * Specifies that the request was served from the ServiceWorker. */ fromServiceWorker?: boolean; /** * Specifies that the request was served from the prefetch cache. */ fromPrefetchCache?: boolean; /** * Total number of bytes received for this request so far. */ encodedDataLength: number; /** * Timing information for the given request. */ timing?: ResourceTiming; /** * Response source of response from ServiceWorker. */ serviceWorkerResponseSource?: ServiceWorkerResponseSource; /** * The time at which the returned response was generated. */ responseTime?: TimeSinceEpoch; /** * Cache Storage Cache Name. */ cacheStorageCacheName?: string; /** * Protocol used to fetch this request. */ protocol?: string; /** * Security state of the request resource. */ securityState: Security.SecurityState; /** * Security details for the request. */ securityDetails?: SecurityDetails; } /** * WebSocket request data. */ export interface WebSocketRequest { /** * HTTP request headers. */ headers: Headers; } /** * WebSocket response data. */ export interface WebSocketResponse { /** * HTTP response status code. */ status: integer; /** * HTTP response status text. */ statusText: string; /** * HTTP response headers. */ headers: Headers; /** * HTTP response headers text. */ headersText?: string; /** * HTTP request headers. */ requestHeaders?: Headers; /** * HTTP request headers text. */ requestHeadersText?: string; } /** * WebSocket message data. This represents an entire WebSocket message, not just a fragmented frame as the name suggests. */ export interface WebSocketFrame { /** * WebSocket message opcode. */ opcode: number; /** * WebSocket message mask. */ mask: boolean; /** * WebSocket message payload data. * If the opcode is 1, this is a text message and payloadData is a UTF-8 string. * If the opcode isn't 1, then payloadData is a base64 encoded string representing binary data. */ payloadData: string; } /** * Information about the cached resource. */ export interface CachedResource { /** * Resource URL. This is the url of the original network request. */ url: string; /** * Type of this resource. */ type: ResourceType; /** * Cached response data. */ response?: Response; /** * Cached response body size. */ bodySize: number; } export const enum InitiatorType { Parser = "parser", Script = "script", Preload = "preload", SignedExchange = "SignedExchange", Preflight = "preflight", Other = "other", } /** * Information about the request initiator. */ export interface Initiator { /** * Type of this initiator. (InitiatorType enum) */ type: | "parser" | "script" | "preload" | "SignedExchange" | "preflight" | "other"; /** * Initiator JavaScript stack trace, set for Script only. */ stack?: Runtime.StackTrace; /** * Initiator URL, set for Parser type or for Script type (when script is importing module) or for SignedExchange type. */ url?: string; /** * Initiator line number, set for Parser type or for Script type (when script is importing * module) (0-based). */ lineNumber?: number; /** * Initiator column number, set for Parser type or for Script type (when script is importing * module) (0-based). */ columnNumber?: number; /** * Set if another request triggered this request (e.g. preflight). */ requestId?: RequestId; } /** * Cookie object */ export interface Cookie { /** * Cookie name. */ name: string; /** * Cookie value. */ value: string; /** * Cookie domain. */ domain: string; /** * Cookie path. */ path: string; /** * Cookie expiration date as the number of seconds since the UNIX epoch. */ expires: number; /** * Cookie size. */ size: integer; /** * True if cookie is http-only. */ httpOnly: boolean; /** * True if cookie is secure. */ secure: boolean; /** * True in case of session cookie. */ session: boolean; /** * Cookie SameSite type. */ sameSite?: CookieSameSite; /** * Cookie Priority */ priority: CookiePriority; /** * True if cookie is SameParty. */ sameParty: boolean; /** * Cookie source scheme type. */ sourceScheme: CookieSourceScheme; /** * Cookie source port. Valid values are {-1, [1, 65535]}, -1 indicates an unspecified port. * An unspecified port value allows protocol clients to emulate legacy cookie scope for the port. * This is a temporary ability and it will be removed in the future. */ sourcePort: integer; /** * Cookie partition key. The site of the top-level URL the browser was visiting at the start * of the request to the endpoint that set the cookie. */ partitionKey?: string; /** * True if cookie partition key is opaque. */ partitionKeyOpaque?: boolean; } /** * Types of reasons why a cookie may not be stored from a response. */ export type SetCookieBlockedReason = | "SecureOnly" | "SameSiteStrict" | "SameSiteLax" | "SameSiteUnspecifiedTreatedAsLax" | "SameSiteNoneInsecure" | "UserPreferences" | "SyntaxError" | "SchemeNotSupported" | "OverwriteSecure" | "InvalidDomain" | "InvalidPrefix" | "UnknownError" | "SchemefulSameSiteStrict" | "SchemefulSameSiteLax" | "SchemefulSameSiteUnspecifiedTreatedAsLax" | "SamePartyFromCrossPartyContext" | "SamePartyConflictsWithOtherAttributes" | "NameValuePairExceedsMaxSize"; /** * Types of reasons why a cookie may not be sent with a request. */ export type CookieBlockedReason = | "SecureOnly" | "NotOnPath" | "DomainMismatch" | "SameSiteStrict" | "SameSiteLax" | "SameSiteUnspecifiedTreatedAsLax" | "SameSiteNoneInsecure" | "UserPreferences" | "UnknownError" | "SchemefulSameSiteStrict" | "SchemefulSameSiteLax" | "SchemefulSameSiteUnspecifiedTreatedAsLax" | "SamePartyFromCrossPartyContext" | "NameValuePairExceedsMaxSize"; /** * A cookie which was not stored from a response with the corresponding reason. */ export interface BlockedSetCookieWithReason { /** * The reason(s) this cookie was blocked. */ blockedReasons: SetCookieBlockedReason[]; /** * The string representing this individual cookie as it would appear in the header. * This is not the entire "cookie" or "set-cookie" header which could have multiple cookies. */ cookieLine: string; /** * The cookie object which represents the cookie which was not stored. It is optional because * sometimes complete cookie information is not available, such as in the case of parsing * errors. */ cookie?: Cookie; } /** * A cookie with was not sent with a request with the corresponding reason. */ export interface BlockedCookieWithReason { /** * The reason(s) the cookie was blocked. */ blockedReasons: CookieBlockedReason[]; /** * The cookie object representing the cookie which was not sent. */ cookie: Cookie; } /** * Cookie parameter object */ export interface CookieParam { /** * Cookie name. */ name: string; /** * Cookie value. */ value: string; /** * The request-URI to associate with the setting of the cookie. This value can affect the * default domain, path, source port, and source scheme values of the created cookie. */ url?: string; /** * Cookie domain. */ domain?: string; /** * Cookie path. */ path?: string; /** * True if cookie is secure. */ secure?: boolean; /** * True if cookie is http-only. */ httpOnly?: boolean; /** * Cookie SameSite type. */ sameSite?: CookieSameSite; /** * Cookie expiration date, session cookie if not set */ expires?: TimeSinceEpoch; /** * Cookie Priority. */ priority?: CookiePriority; /** * True if cookie is SameParty. */ sameParty?: boolean; /** * Cookie source scheme type. */ sourceScheme?: CookieSourceScheme; /** * Cookie source port. Valid values are {-1, [1, 65535]}, -1 indicates an unspecified port. * An unspecified port value allows protocol clients to emulate legacy cookie scope for the port. * This is a temporary ability and it will be removed in the future. */ sourcePort?: integer; /** * Cookie partition key. The site of the top-level URL the browser was visiting at the start * of the request to the endpoint that set the cookie. * If not set, the cookie will be set as not partitioned. */ partitionKey?: string; } export const enum AuthChallengeSource { Server = "Server", Proxy = "Proxy", } /** * Authorization challenge for HTTP status code 401 or 407. */ export interface AuthChallenge { /** * Source of the authentication challenge. (AuthChallengeSource enum) */ source?: "Server" | "Proxy"; /** * Origin of the challenger. */ origin: string; /** * The authentication scheme used, such as basic or digest */ scheme: string; /** * The realm of the challenge. May be empty. */ realm: string; } export const enum AuthChallengeResponseResponse { Default = "Default", CancelAuth = "CancelAuth", ProvideCredentials = "ProvideCredentials", } /** * Response to an AuthChallenge. */ export interface AuthChallengeResponse { /** * The decision on what to do in response to the authorization challenge. Default means * deferring to the default behavior of the net stack, which will likely either the Cancel * authentication or display a popup dialog box. (AuthChallengeResponseResponse enum) */ response: "Default" | "CancelAuth" | "ProvideCredentials"; /** * The username to provide, possibly empty. Should only be set if response is * ProvideCredentials. */ username?: string; /** * The password to provide, possibly empty. Should only be set if response is * ProvideCredentials. */ password?: string; } /** * Stages of the interception to begin intercepting. Request will intercept before the request is * sent. Response will intercept after the response is received. */ export type InterceptionStage = "Request" | "HeadersReceived"; /** * Request pattern for interception. */ export interface RequestPattern { /** * Wildcards (`'*'` -> zero or more, `'?'` -> exactly one) are allowed. Escape character is * backslash. Omitting is equivalent to `"*"`. */ urlPattern?: string; /** * If set, only requests for matching resource types will be intercepted. */ resourceType?: ResourceType; /** * Stage at which to begin intercepting requests. Default is Request. */ interceptionStage?: InterceptionStage; } /** * Information about a signed exchange signature. * https://wicg.github.io/webpackage/draft-yasskin-httpbis-origin-signed-exchanges-impl.html#rfc.section.3.1 */ export interface SignedExchangeSignature { /** * Signed exchange signature label. */ label: string; /** * The hex string of signed exchange signature. */ signature: string; /** * Signed exchange signature integrity. */ integrity: string; /** * Signed exchange signature cert Url. */ certUrl?: string; /** * The hex string of signed exchange signature cert sha256. */ certSha256?: string; /** * Signed exchange signature validity Url. */ validityUrl: string; /** * Signed exchange signature date. */ date: integer; /** * Signed exchange signature expires. */ expires: integer; /** * The encoded certificates. */ certificates?: string[]; } /** * Information about a signed exchange header. * https://wicg.github.io/webpackage/draft-yasskin-httpbis-origin-signed-exchanges-impl.html#cbor-representation */ export interface SignedExchangeHeader { /** * Signed exchange request URL. */ requestUrl: string; /** * Signed exchange response code. */ responseCode: integer; /** * Signed exchange response headers. */ responseHeaders: Headers; /** * Signed exchange response signature. */ signatures: SignedExchangeSignature[]; /** * Signed exchange header integrity hash in the form of "sha256-<base64-hash-value>". */ headerIntegrity: string; } /** * Field type for a signed exchange related error. */ export type SignedExchangeErrorField = | "signatureSig" | "signatureIntegrity" | "signatureCertUrl" | "signatureCertSha256" | "signatureValidityUrl" | "signatureTimestamps"; /** * Information about a signed exchange response. */ export interface SignedExchangeError { /** * Error message. */ message: string; /** * The index of the signature which caused the error. */ signatureIndex?: integer; /** * The field which caused the error. */ errorField?: SignedExchangeErrorField; } /** * Information about a signed exchange response. */ export interface SignedExchangeInfo { /** * The outer response of signed HTTP exchange which was received from network. */ outerResponse: Response; /** * Information about the signed exchange header. */ header?: SignedExchangeHeader; /** * Security details for the signed exchange header. */ securityDetails?: SecurityDetails; /** * Errors occurred while handling the signed exchagne. */ errors?: SignedExchangeError[]; } /** * List of content encodings supported by the backend. */ export type ContentEncoding = "deflate" | "gzip" | "br"; export type PrivateNetworkRequestPolicy = | "Allow" | "BlockFromInsecureToMorePrivate" | "WarnFromInsecureToMorePrivate" | "PreflightBlock" | "PreflightWarn"; export type IPAddressSpace = "Local" | "Private" | "Public" | "Unknown"; export interface ConnectTiming { /** * Timing's requestTime is a baseline in seconds, while the other numbers are ticks in * milliseconds relatively to this requestTime. Matches ResourceTiming's requestTime for * the same request (but not for redirected requests). */ requestTime: number; } export interface ClientSecurityState { initiatorIsSecureContext: boolean; initiatorIPAddressSpace: IPAddressSpace; privateNetworkRequestPolicy: PrivateNetworkRequestPolicy; } export type CrossOriginOpenerPolicyValue = | "SameOrigin" | "SameOriginAllowPopups" | "RestrictProperties" | "UnsafeNone" | "SameOriginPlusCoep" | "RestrictPropertiesPlusCoep"; export interface CrossOriginOpenerPolicyStatus { value: CrossOriginOpenerPolicyValue; reportOnlyValue: CrossOriginOpenerPolicyValue; reportingEndpoint?: string; reportOnlyReportingEndpoint?: string; } export type CrossOriginEmbedderPolicyValue = | "None" | "Credentialless" | "RequireCorp"; export interface CrossOriginEmbedderPolicyStatus { value: CrossOriginEmbedderPolicyValue; reportOnlyValue: CrossOriginEmbedderPolicyValue; reportingEndpoint?: string; reportOnlyReportingEndpoint?: string; } export interface SecurityIsolationStatus { coop?: CrossOriginOpenerPolicyStatus; coep?: CrossOriginEmbedderPolicyStatus; } /** * The status of a Reporting API report. */ export type ReportStatus = | "Queued" | "Pending" | "MarkedForRemoval" | "Success"; export type ReportId = string; /** * An object representing a report generated by the Reporting API. */ export interface ReportingApiReport { id: ReportId; /** * The URL of the document that triggered the report. */ initiatorUrl: string; /** * The name of the endpoint group that should be used to deliver the report. */ destination: string; /** * The type of the report (specifies the set of data that is contained in the report body). */ type: string; /** * When the report was generated. */ timestamp: Network.TimeSinceEpoch; /** * How many uploads deep the related request was. */ depth: integer; /** * The number of delivery attempts made so far, not including an active attempt. */ completedAttempts: integer; body: any; status: ReportStatus; } export interface ReportingApiEndpoint { /** * The URL of the endpoint to which reports may be delivered. */ url: string; /** * Name of the endpoint group. */ groupName: string; } /** * An object providing the result of a network resource load. */ export interface LoadNetworkResourcePageResult { success: boolean; /** * Optional values used for error reporting. */ netError?: number; netErrorName?: string; httpStatusCode?: number; /** * If successful, one of the following two fields holds the result. */ stream?: IO.StreamHandle; /** * Response headers. */ headers?: Network.Headers; } /** * An options object that may be extended later to better support CORS, * CORB and streaming. */ export interface LoadNetworkResourceOptions { disableCache: boolean; includeCredentials: boolean; } export interface SetAcceptedEncodingsRequest { /** * List of accepted content encodings. */ encodings: ContentEncoding[]; } export interface CanClearBrowserCacheResponse { /** * True if browser cache can be cleared. */ result: boolean; } export interface CanClearBrowserCookiesResponse { /** * True if browser cookies can be cleared. */ result: boolean; } export interface CanEmulateNetworkConditionsResponse { /** * True if emulation of network conditions is supported. */ result: boolean; } export interface ContinueInterceptedRequestRequest { interceptionId: InterceptionId; /** * If set this causes the request to fail with the given reason. Passing `Aborted` for requests * marked with `isNavigationRequest` also cancels the navigation. Must not be set in response * to an authChallenge. */ errorReason?: ErrorReason; /** * If set the requests completes using with the provided base64 encoded raw response, including * HTTP status line and headers etc... Must not be set in response to an authChallenge. (Encoded as a base64 string when passed over JSON) */ rawResponse?: string; /** * If set the request url will be modified in a way that's not observable by page. Must not be * set in response to an authChallenge. */ url?: string; /** * If set this allows the request method to be overridden. Must not be set in response to an * authChallenge. */ method?: string; /** * If set this allows postData to be set. Must not be set in response to an authChallenge. */ postData?: string; /** * If set this allows the request headers to be changed. Must not be set in response to an * authChallenge. */ headers?: Headers; /** * Response to a requestIntercepted with an authChallenge. Must not be set otherwise. */ authChallengeResponse?: AuthChallengeResponse; } export interface DeleteCookiesRequest { /** * Name of the cookies to remove. */ name: string; /** * If specified, deletes all the cookies with the given name where domain and path match * provided URL. */ url?: string; /** * If specified, deletes only cookies with the exact domain. */ domain?: string; /** * If specified, deletes only cookies with the exact path. */ path?: string; } export interface EmulateNetworkConditionsRequest { /** * True to emulate internet disconnection. */ offline: boolean; /** * Minimum latency from request sent to response headers received (ms). */ latency: number; /** * Maximal aggregated download throughput (bytes/sec). -1 disables download throttling. */ downloadThroughput: number; /** * Maximal aggregated upload throughput (bytes/sec). -1 disables upload throttling. */ uploadThroughput: number; /** * Connection type if known. */ connectionType?: ConnectionType; } export interface EnableRequest { /** * Buffer size in bytes to use when preserving network payloads (XHRs, etc). */ maxTotalBufferSize?: integer; /** * Per-resource buffer size in bytes to use when preserving network payloads (XHRs, etc). */ maxResourceBufferSize?: integer; /** * Longest post body size (in bytes) that would be included in requestWillBeSent notification */ maxPostDataSize?: integer; } export interface GetAllCookiesResponse { /** * Array of cookie objects. */ cookies: Cookie[]; } export interface GetCertificateRequest { /** * Origin to get certificate for. */ origin: string; } export interface GetCertificateResponse { tableNames: string[]; } export interface GetCookiesRequest { /** * The list of URLs for which applicable cookies will be fetched. * If not specified, it's assumed to be set to the list containing * the URLs of the page and all of its subframes. */ urls?: string[]; } export interface GetCookiesResponse { /** * Array of cookie objects. */ cookies: Cookie[]; } export interface GetResponseBodyRequest { /** * Identifier of the network request to get content for. */ requestId: RequestId; } export interface GetResponseBodyResponse { /** * Response body. */ body: string; /** * True, if content was sent as base64. */ base64Encoded: boolean; } export interface GetRequestPostDataRequest { /** * Identifier of the network request to get content for. */ requestId: RequestId; } export interface GetRequestPostDataResponse { /** * Request body string, omitting files from multipart requests */ postData: string; } export interface GetResponseBodyForInterceptionRequest { /** * Identifier for the intercepted request to get body for. */ interceptionId: InterceptionId; } export interface GetResponseBodyForInterceptionResponse { /** * Response body. */ body: string; /** * True, if content was sent as base64. */ base64Encoded: boolean; } export interface TakeResponseBodyForInterceptionAsStreamRequest { interceptionId: InterceptionId; } export interface TakeResponseBodyForInterceptionAsStreamResponse { stream: IO.StreamHandle; } export interface ReplayXHRRequest { /** * Identifier of XHR to replay. */ requestId: RequestId; } export interface SearchInResponseBodyRequest { /** * Identifier of the network response to search. */ requestId: RequestId; /** * String to search for. */ query: string; /** * If true, search is case sensitive. */ caseSensitive?: boolean; /** * If true, treats string parameter as regex. */ isRegex?: boolean; } export interface SearchInResponseBodyResponse { /** * List of search matches. */ result: Debugger.SearchMatch[]; } export interface SetBlockedURLsRequest { /** * URL patterns to block. Wildcards ('*') are allowed. */ urls: string[]; } export interface SetBypassServiceWorkerRequest { /** * Bypass service worker and load from network. */ bypass: boolean; } export interface SetCacheDisabledRequest { /** * Cache disabled state. */ cacheDisabled: boolean; } export interface SetCookieRequest { /** * Cookie name. */ name: string; /** * Cookie value. */ value: string; /** * The request-URI to associate with the setting of the cookie. This value can affect the * default domain, path, source port, and source scheme values of the created cookie. */ url?: string; /** * Cookie domain. */ domain?: string; /** * Cookie path. */ path?: string; /** * True if cookie is secure. */ secure?: boolean; /** * True if cookie is http-only. */ httpOnly?: boolean; /** * Cookie SameSite type. */ sameSite?: CookieSameSite; /** * Cookie expiration date, session cookie if not set */ expires?: TimeSinceEpoch; /** * Cookie Priority type. */ priority?: CookiePriority; /** * True if cookie is SameParty. */ sameParty?: boolean; /** * Cookie source scheme type. */ sourceScheme?: CookieSourceScheme; /** * Cookie source port. Valid values are {-1, [1, 65535]}, -1 indicates an unspecified port. * An unspecified port value allows protocol clients to emulate legacy cookie scope for the port. * This is a temporary ability and it will be removed in the future. */ sourcePort?: integer; /** * Cookie partition key. The site of the top-level URL the browser was visiting at the start * of the request to the endpoint that set the cookie. * If not set, the cookie will be set as not partitioned. */ partitionKey?: string; } export interface SetCookieResponse { /** * Always set to true. If an error occurs, the response indicates protocol error. */ success: boolean; } export interface SetCookiesRequest { /** * Cookies to be set. */ cookies: CookieParam[]; } export interface SetExtraHTTPHeadersRequest { /** * Map with extra HTTP headers. */ headers: Headers; } export interface SetAttachDebugStackRequest { /** * Whether to attach a page script stack for debugging purpose. */ enabled: boolean; } export interface SetRequestInterceptionRequest { /** * Requests matching any of these patterns will be forwarded and wait for the corresponding * continueInterceptedRequest call. */ patterns: RequestPattern[]; } export interface SetUserAgentOverrideRequest { /** * User agent to use. */ userAgent: string; /** * Browser langugage to emulate. */ acceptLanguage?: string; /** * The platform navigator.platform should return. */ platform?: string; /** * To be sent in Sec-CH-UA-* headers and returned in navigator.userAgentData */ userAgentMetadata?: Emulation.UserAgentMetadata; } export interface GetSecurityIsolationStatusRequest { /** * If no frameId is provided, the status of the target is provided. */ frameId?: Page.FrameId; } export interface GetSecurityIsolationStatusResponse { status: SecurityIsolationStatus; } export interface EnableReportingApiRequest { /** * Whether to enable or disable events for the Reporting API */ enable: boolean; } export interface LoadNetworkResourceRequest { /** * Frame id to get the resource for. Mandatory for frame targets, and * should be omitted for worker targets. */ frameId?: Page.FrameId; /** * URL of the resource to get content for. */ url: string; /** * Options for the request. */ options: LoadNetworkResourceOptions; } export interface LoadNetworkResourceResponse { resource: LoadNetworkResourcePageResult; } /** * Fired when data chunk was received over the network. */ export interface DataReceivedEvent { /** * Request identifier. */ requestId: RequestId; /** * Timestamp. */ timestamp: MonotonicTime; /** * Data chunk length. */ dataLength: integer; /** * Actual bytes received (might be less than dataLength for compressed encodings). */ encodedDataLength: integer; } /** * Fired when EventSource message is received. */ export interface EventSourceMessageReceivedEvent { /** * Request identifier. */ requestId: RequestId; /** * Timestamp. */ timestamp: MonotonicTime; /** * Message type. */ eventName: string; /** * Message identifier. */ eventId: string; /** * Message content. */ data: string; } /** * Fired when HTTP request has failed to load. */ export interface LoadingFailedEvent { /** * Request identifier. */ requestId: RequestId; /** * Timestamp. */ timestamp: MonotonicTime; /** * Resource type. */ type: ResourceType; /** * User friendly error message. */ errorText: string; /** * True if loading was canceled. */ canceled?: boolean; /** * The reason why loading was blocked, if any. */ blockedReason?: BlockedReason; /** * The reason why loading was blocked by CORS, if any. */ corsErrorStatus?: CorsErrorStatus; } /** * Fired when HTTP request has finished loading. */ export interface LoadingFinishedEvent { /** * Request identifier. */ requestId: RequestId; /** * Timestamp. */ timestamp: MonotonicTime; /** * Total number of bytes received for this request. */ encodedDataLength: number; /** * Set when 1) response was blocked by Cross-Origin Read Blocking and also * 2) this needs to be reported to the DevTools console. */ shouldReportCorbBlocking?: boolean; } /** * Details of an intercepted HTTP request, which must be either allowed, blocked, modified or * mocked. * Deprecated, use Fetch.requestPaused instead. */ export interface RequestInterceptedEvent { /** * Each request the page makes will have a unique id, however if any redirects are encountered * while processing that fetch, they will be reported with the same id as the original fetch. * Likewise if HTTP authentication is needed then the same fetch id will be used. */ interceptionId: InterceptionId; request: Request; /** * The id of the frame that initiated the request. */ frameId: Page.FrameId; /** * How the requested resource will be used. */ resourceType: ResourceType; /** * Whether this is a navigation request, which can abort the navigation completely. */ isNavigationRequest: boolean; /** * Set if the request is a navigation that will result in a download. * Only present after response is received from the server (i.e. HeadersReceived stage). */ isDownload?: boolean; /** * Redirect location, only sent if a redirect was intercepted. */ redirectUrl?: string; /** * Details of the Authorization Challenge encountered. If this is set then * continueInterceptedRequest must contain an authChallengeResponse. */ authChallenge?: AuthChallenge; /** * Response error if intercepted at response stage or if redirect occurred while intercepting * request. */ responseErrorReason?: ErrorReason; /** * Response code if intercepted at response stage or if redirect occurred while intercepting * request or auth retry occurred. */ responseStatusCode?: integer; /** * Response headers if intercepted at the response stage or if redirect occurred while * intercepting request or auth retry occurred. */ responseHeaders?: Headers; /** * If the intercepted request had a corresponding requestWillBeSent event fired for it, then * this requestId will be the same as the requestId present in the requestWillBeSent event. */ requestId?: RequestId; } /** * Fired if request ended up loading from cache. */ export interface RequestServedFromCacheEvent { /** * Request identifier. */ requestId: RequestId; } /** * Fired when page is about to send HTTP request. */ export interface RequestWillBeSentEvent { /** * Request identifier. */ requestId: RequestId; /** * Loader identifier. Empty string if the request is fetched from worker. */ loaderId: LoaderId; /** * URL of the document this request is loaded for. */ documentURL: string; /** * Request data. */ request: Request; /** * Timestamp. */ timestamp: MonotonicTime; /** * Timestamp. */ wallTime: TimeSinceEpoch; /** * Request initiator. */ initiator: Initiator; /** * In the case that redirectResponse is populated, this flag indicates whether * requestWillBeSentExtraInfo and responseReceivedExtraInfo events will be or were emitted * for the request which was just redirected. */ redirectHasExtraInfo: boolean; /** * Redirect response data. */ redirectResponse?: Response; /** * Type of this resource. */ type?: ResourceType; /** * Frame identifier. */ frameId?: Page.FrameId; /** * Whether the request is initiated by a user gesture. Defaults to false. */ hasUserGesture?: boolean; } /** * Fired when resource loading priority is changed */ export interface ResourceChangedPriorityEvent { /** * Request identifier. */ requestId: RequestId; /** * New priority */ newPriority: ResourcePriority; /** * Timestamp. */ timestamp: MonotonicTime; } /** * Fired when a signed exchange was received over the network */ export interface SignedExchangeReceivedEvent { /** * Request identifier. */ requestId: RequestId; /** * Information about the signed exchange response. */ info: SignedExchangeInfo; } /** * Fired when HTTP response is available. */ export interface ResponseReceivedEvent { /** * Request identifier. */ requestId: RequestId; /** * Loader identifier. Empty string if the request is fetched from worker. */ loaderId: LoaderId; /** * Timestamp. */ timestamp: MonotonicTime; /** * Resource type. */ type: ResourceType; /** * Response data. */ response: Response; /** * Indicates whether requestWillBeSentExtraInfo and responseReceivedExtraInfo events will be * or were emitted for this request. */ hasExtraInfo: boolean; /** * Frame identifier. */ frameId?: Page.FrameId; } /** * Fired when WebSocket is closed. */ export interface WebSocketClosedEvent { /** * Request identifier. */ requestId: RequestId; /** * Timestamp. */ timestamp: MonotonicTime; } /** * Fired upon WebSocket creation. */ export interface WebSocketCreatedEvent { /** * Request identifier. */ requestId: RequestId; /** * WebSocket request URL. */ url: string; /** * Request initiator. */ initiator?: Initiator; } /** * Fired when WebSocket message error occurs. */ export interface WebSocketFrameErrorEvent { /** * Request identifier. */ requestId: RequestId; /** * Timestamp. */ timestamp: MonotonicTime; /** * WebSocket error message. */ errorMessage: string; } /** * Fired when WebSocket message is received. */ export interface WebSocketFrameReceivedEvent { /** * Request identifier. */ requestId: RequestId; /** * Timestamp. */ timestamp: MonotonicTime; /** * WebSocket response data. */ response: WebSocketFrame; } /** * Fired when WebSocket message is sent. */ export interface WebSocketFrameSentEvent { /** * Request identifier. */ requestId: RequestId; /** * Timestamp. */ timestamp: MonotonicTime; /** * WebSocket response data. */ response: WebSocketFrame; } /** * Fired when WebSocket handshake response becomes available. */ export interface WebSocketHandshakeResponseReceivedEvent { /** * Request identifier. */ requestId: RequestId; /** * Timestamp. */ timestamp: MonotonicTime; /** * WebSocket response data. */ response: WebSocketResponse; } /** * Fired when WebSocket is about to initiate handshake. */ export interface WebSocketWillSendHandshakeRequestEvent { /** * Request identifier. */ requestId: RequestId; /** * Timestamp. */ timestamp: MonotonicTime; /** * UTC Timestamp. */ wallTime: TimeSinceEpoch; /** * WebSocket request data. */ request: WebSocketRequest; } /** * Fired upon WebTransport creation. */ export interface WebTransportCreatedEvent { /** * WebTransport identifier. */ transportId: RequestId; /** * WebTransport request URL. */ url: string; /** * Timestamp. */ timestamp: MonotonicTime; /** * Request initiator. */ initiator?: Initiator; } /** * Fired when WebTransport handshake is finished. */ export interface WebTransportConnectionEstablishedEvent { /** * WebTransport identifier. */ transportId: RequestId; /** * Timestamp. */ timestamp: MonotonicTime; } /** * Fired when WebTransport is disposed. */ export interface WebTransportClosedEvent { /** * WebTransport identifier. */ transportId: RequestId; /** * Timestamp. */ timestamp: MonotonicTime; } /** * Fired when additional information about a requestWillBeSent event is available from the * network stack. Not every requestWillBeSent event will have an additional * requestWillBeSentExtraInfo fired for it, and there is no guarantee whether requestWillBeSent * or requestWillBeSentExtraInfo will be fired first for the same request. */ export interface RequestWillBeSentExtraInfoEvent { /** * Request identifier. Used to match this information to an existing requestWillBeSent event. */ requestId: RequestId; /** * A list of cookies potentially associated to the requested URL. This includes both cookies sent with * the request and the ones not sent; the latter are distinguished by having blockedReason field set. */ associatedCookies: BlockedCookieWithReason[]; /** * Raw request headers as they will be sent over the wire. */ headers: Headers; /** * Connection timing information for the request. */ connectTiming: ConnectTiming; /** * The client security state set for the request. */ clientSecurityState?: ClientSecurityState; } /** * Fired when additional information about a responseReceived event is available from the network * stack. Not every responseReceived event will have an additional responseReceivedExtraInfo for * it, and responseReceivedExtraInfo may be fired before or after responseReceived. */ export interface ResponseReceivedExtraInfoEvent { /** * Request identifier. Used to match this information to another responseReceived event. */ requestId: RequestId; /** * A list of cookies which were not stored from the response along with the corresponding * reasons for blocking. The cookies here may not be valid due to syntax errors, which * are represented by the invalid cookie line string instead of a proper cookie. */ blockedCookies: BlockedSetCookieWithReason[]; /** * Raw response headers as they were received over the wire. */ headers: Headers; /** * The IP address space of the resource. The address space can only be determined once the transport * established the connection, so we can't send it in `requestWillBeSentExtraInfo`. */ resourceIPAddressSpace: IPAddressSpace; /** * The status code of the response. This is useful in cases the request failed and no responseReceived * event is triggered, which is the case for, e.g., CORS errors. This is also the correct status code * for cached requests, where the status in responseReceived is a 200 and this will be 304. */ statusCode: integer; /** * Raw response header text as it was received over the wire. The raw text may not always be * available, such as in the case of HTTP/2 or QUIC. */ headersText?: string; } export const enum TrustTokenOperationDoneEventStatus { Ok = "Ok", InvalidArgument = "InvalidArgument", FailedPrecondition = "FailedPrecondition", ResourceExhausted = "ResourceExhausted", AlreadyExists = "AlreadyExists", Unavailable = "Unavailable", BadResponse = "BadResponse", InternalError = "InternalError", UnknownError = "UnknownError", FulfilledLocally = "FulfilledLocally", } /** * Fired exactly once for each Trust Token operation. Depending on * the type of the operation and whether the operation succeeded or * failed, the event is fired before the corresponding request was sent * or after the response was received. */ export interface TrustTokenOperationDoneEvent { /** * Detailed success or error status of the operation. * 'AlreadyExists' also signifies a successful operation, as the result * of the operation already exists und thus, the operation was abort * preemptively (e.g. a cache hit). (TrustTokenOperationDoneEventStatus enum) */ status: | "Ok" | "InvalidArgument" | "FailedPrecondition" | "ResourceExhausted" | "AlreadyExists" | "Unavailable" | "BadResponse" | "InternalError" | "UnknownError" | "FulfilledLocally"; type: TrustTokenOperationType; requestId: RequestId; /** * Top level origin. The context in which the operation was attempted. */ topLevelOrigin?: string; /** * Origin of the issuer in case of a "Issuance" or "Redemption" operation. */ issuerOrigin?: string; /** * The number of obtained Trust Tokens on a successful "Issuance" operation. */ issuedTokenCount?: integer; } /** * Fired once when parsing the .wbn file has succeeded. * The event contains the information about the web bundle contents. */ export interface SubresourceWebBundleMetadataReceivedEvent { /** * Request identifier. Used to match this information to another event. */ requestId: RequestId; /** * A list of URLs of resources in the subresource Web Bundle. */ urls: string[]; } /** * Fired once when parsing the .wbn file has failed. */ export interface SubresourceWebBundleMetadataErrorEvent { /** * Request identifier. Used to match this information to another event. */ requestId: RequestId; /** * Error message */ errorMessage: string; } /** * Fired when handling requests for resources within a .wbn file. * Note: this will only be fired for resources that are requested by the webpage. */ export interface SubresourceWebBundleInnerResponseParsedEvent { /** * Request identifier of the subresource request */ innerRequestId: RequestId; /** * URL of the subresource resource. */ innerRequestURL: string; /** * Bundle request identifier. Used to match this information to another event. * This made be absent in case when the instrumentation was enabled only * after webbundle was parsed. */ bundleRequestId?: RequestId; } /** * Fired when request for resources within a .wbn file failed. */ export interface SubresourceWebBundleInnerResponseErrorEvent { /** * Request identifier of the subresource request */ innerRequestId: RequestId; /** * URL of the subresource resource. */ innerRequestURL: string; /** * Error message */ errorMessage: string; /** * Bundle request identifier. Used to match this information to another event. * This made be absent in case when the instrumentation was enabled only * after webbundle was parsed. */ bundleRequestId?: RequestId; } /** * Is sent whenever a new report is added. * And after 'enableReportingApi' for all existing reports. */ export interface ReportingApiReportAddedEvent { report: ReportingApiReport; } export interface ReportingApiReportUpdatedEvent { report: ReportingApiReport; } export interface ReportingApiEndpointsChangedForOriginEvent { /** * Origin of the document(s) which configured the endpoints. */ origin: string; endpoints: ReportingApiEndpoint[]; } } /** * This domain provides various functionality related to drawing atop the inspected page. */ export namespace Overlay { /** * Configuration data for drawing the source order of an elements children. */ export interface SourceOrderConfig { /** * the color to outline the givent element in. */ parentOutlineColor: DOM.RGBA; /** * the color to outline the child elements in. */ childOutlineColor: DOM.RGBA; } /** * Configuration data for the highlighting of Grid elements. */ export interface GridHighlightConfig { /** * Whether the extension lines from grid cells to the rulers should be shown (default: false). */ showGridExtensionLines?: boolean; /** * Show Positive line number labels (default: false). */ showPositiveLineNumbers?: boolean; /** * Show Negative line number labels (default: false). */ showNegativeLineNumbers?: boolean; /** * Show area name labels (default: false). */ showAreaNames?: boolean; /** * Show line name labels (default: false). */ showLineNames?: boolean; /** * Show track size labels (default: false). */ showTrackSizes?: boolean; /** * The grid container border highlight color (default: transparent). */ gridBorderColor?: DOM.RGBA; /** * The cell border color (default: transparent). Deprecated, please use rowLineColor and columnLineColor instead. */ cellBorderColor?: DOM.RGBA; /** * The row line color (default: transparent). */ rowLineColor?: DOM.RGBA; /** * The column line color (default: transparent). */ columnLineColor?: DOM.RGBA; /** * Whether the grid border is dashed (default: false). */ gridBorderDash?: boolean; /** * Whether the cell border is dashed (default: false). Deprecated, please us rowLineDash and columnLineDash instead. */ cellBorderDash?: boolean; /** * Whether row lines are dashed (default: false). */ rowLineDash?: boolean; /** * Whether column lines are dashed (default: false). */ columnLineDash?: boolean; /** * The row gap highlight fill color (default: transparent). */ rowGapColor?: DOM.RGBA; /** * The row gap hatching fill color (default: transparent). */ rowHatchColor?: DOM.RGBA; /** * The column gap highlight fill color (default: transparent). */ columnGapColor?: DOM.RGBA; /** * The column gap hatching fill color (default: transparent). */ columnHatchColor?: DOM.RGBA; /** * The named grid areas border color (Default: transparent). */ areaBorderColor?: DOM.RGBA; /** * The grid container background color (Default: transparent). */ gridBackgroundColor?: DOM.RGBA; } /** * Configuration data for the highlighting of Flex container elements. */ export interface FlexContainerHighlightConfig { /** * The style of the container border */ containerBorder?: LineStyle; /** * The style of the separator between lines */ lineSeparator?: LineStyle; /** * The style of the separator between items */ itemSeparator?: LineStyle; /** * Style of content-distribution space on the main axis (justify-content). */ mainDistributedSpace?: BoxStyle; /** * Style of content-distribution space on the cross axis (align-content). */ crossDistributedSpace?: BoxStyle; /** * Style of empty space caused by row gaps (gap/row-gap). */ rowGapSpace?: BoxStyle; /** * Style of empty space caused by columns gaps (gap/column-gap). */ columnGapSpace?: BoxStyle; /** * Style of the self-alignment line (align-items). */ crossAlignment?: LineStyle; } /** * Configuration data for the highlighting of Flex item elements. */ export interface FlexItemHighlightConfig { /** * Style of the box representing the item's base size */ baseSizeBox?: BoxStyle; /** * Style of the border around the box representing the item's base size */ baseSizeBorder?: LineStyle; /** * Style of the arrow representing if the item grew or shrank */ flexibilityArrow?: LineStyle; } export const enum LineStylePattern { Dashed = "dashed", Dotted = "dotted", } /** * Style information for drawing a line. */ export interface LineStyle { /** * The color of the line (default: transparent) */ color?: DOM.RGBA; /** * The line pattern (default: solid) (LineStylePattern enum) */ pattern?: "dashed" | "dotted"; } /** * Style information for drawing a box. */ export interface BoxStyle { /** * The background color for the box (default: transparent) */ fillColor?: DOM.RGBA; /** * The hatching color for the box (default: transparent) */ hatchColor?: DOM.RGBA; } export type ContrastAlgorithm = "aa" | "aaa" | "apca"; /** * Configuration data for the highlighting of page elements. */ export interface HighlightConfig { /** * Whether the node info tooltip should be shown (default: false). */ showInfo?: boolean; /** * Whether the node styles in the tooltip (default: false). */ showStyles?: boolean; /** * Whether the rulers should be shown (default: false). */ showRulers?: boolean; /** * Whether the a11y info should be shown (default: true). */ showAccessibilityInfo?: boolean; /** * Whether the extension lines from node to the rulers should be shown (default: false). */ showExtensionLines?: boolean; /** * The content box highlight fill color (default: transparent). */ contentColor?: DOM.RGBA; /** * The padding highlight fill color (default: transparent). */ paddingColor?: DOM.RGBA; /** * The border highlight fill color (default: transparent). */ borderColor?: DOM.RGBA; /** * The margin highlight fill color (default: transparent). */ marginColor?: DOM.RGBA; /** * The event target element highlight fill color (default: transparent). */ eventTargetColor?: DOM.RGBA; /** * The shape outside fill color (default: transparent). */ shapeColor?: DOM.RGBA; /** * The shape margin fill color (default: transparent). */ shapeMarginColor?: DOM.RGBA; /** * The grid layout color (default: transparent). */ cssGridColor?: DOM.RGBA; /** * The color format used to format color styles (default: hex). */ colorFormat?: ColorFormat; /** * The grid layout highlight configuration (default: all transparent). */ gridHighlightConfig?: GridHighlightConfig; /** * The flex container highlight configuration (default: all transparent). */ flexContainerHighlightConfig?: FlexContainerHighlightConfig; /** * The flex item highlight configuration (default: all transparent). */ flexItemHighlightConfig?: FlexItemHighlightConfig; /** * The contrast algorithm to use for the contrast ratio (default: aa). */ contrastAlgorithm?: ContrastAlgorithm; /** * The container query container highlight configuration (default: all transparent). */ containerQueryContainerHighlightConfig?: ContainerQueryContainerHighlightConfig; } export type ColorFormat = "rgb" | "hsl" | "hwb" | "hex"; /** * Configurations for Persistent Grid Highlight */ export interface GridNodeHighlightConfig { /** * A descriptor for the highlight appearance. */ gridHighlightConfig: GridHighlightConfig; /** * Identifier of the node to highlight. */ nodeId: DOM.NodeId; } export interface FlexNodeHighlightConfig { /** * A descriptor for the highlight appearance of flex containers. */ flexContainerHighlightConfig: FlexContainerHighlightConfig; /** * Identifier of the node to highlight. */ nodeId: DOM.NodeId; } export interface ScrollSnapContainerHighlightConfig { /** * The style of the snapport border (default: transparent) */ snapportBorder?: LineStyle; /** * The style of the snap area border (default: transparent) */ snapAreaBorder?: LineStyle; /** * The margin highlight fill color (default: transparent). */ scrollMarginColor?: DOM.RGBA; /** * The padding highlight fill color (default: transparent). */ scrollPaddingColor?: DOM.RGBA; } export interface ScrollSnapHighlightConfig { /** * A descriptor for the highlight appearance of scroll snap containers. */ scrollSnapContainerHighlightConfig: ScrollSnapContainerHighlightConfig; /** * Identifier of the node to highlight. */ nodeId: DOM.NodeId; } /** * Configuration for dual screen hinge */ export interface HingeConfig { /** * A rectangle represent hinge */ rect: DOM.Rect; /** * The content box highlight fill color (default: a dark color). */ contentColor?: DOM.RGBA; /** * The content box highlight outline color (default: transparent). */ outlineColor?: DOM.RGBA; } export interface ContainerQueryHighlightConfig { /** * A descriptor for the highlight appearance of container query containers. */ containerQueryContainerHighlightConfig: ContainerQueryContainerHighlightConfig; /** * Identifier of the container node to highlight. */ nodeId: DOM.NodeId; } export interface ContainerQueryContainerHighlightConfig { /** * The style of the container border. */ containerBorder?: LineStyle; /** * The style of the descendants' borders. */ descendantBorder?: LineStyle; } export interface IsolatedElementHighlightConfig { /** * A descriptor for the highlight appearance of an element in isolation mode. */ isolationModeHighlightConfig: IsolationModeHighlightConfig; /** * Identifier of the isolated element to highlight. */ nodeId: DOM.NodeId; } export interface IsolationModeHighlightConfig { /** * The fill color of the resizers (default: transparent). */ resizerColor?: DOM.RGBA; /** * The fill color for resizer handles (default: transparent). */ resizerHandleColor?: DOM.RGBA; /** * The fill color for the mask covering non-isolated elements (default: transparent). */ maskColor?: DOM.RGBA; } export type InspectMode = | "searchForNode" | "searchForUAShadowDOM" | "captureAreaScreenshot" | "showDistances" | "none"; export interface GetHighlightObjectForTestRequest { /** * Id of the node to get highlight object for. */ nodeId: DOM.NodeId; /** * Whether to include distance info. */ includeDistance?: boolean; /** * Whether to include style info. */ includeStyle?: boolean; /** * The color format to get config with (default: hex). */ colorFormat?: ColorFormat; /** * Whether to show accessibility info (default: true). */ showAccessibilityInfo?: boolean; } export interface GetHighlightObjectForTestResponse { /** * Highlight data for the node. */ highlight: any; } export interface GetGridHighlightObjectsForTestRequest { /** * Ids of the node to get highlight object for. */ nodeIds: DOM.NodeId[]; } export interface GetGridHighlightObjectsForTestResponse { /** * Grid Highlight data for the node ids provided. */ highlights: any; } export interface GetSourceOrderHighlightObjectForTestRequest { /** * Id of the node to highlight. */ nodeId: DOM.NodeId; } export interface GetSourceOrderHighlightObjectForTestResponse { /** * Source order highlight data for the node id provided. */ highlight: any; } export interface HighlightFrameRequest { /** * Identifier of the frame to highlight. */ frameId: Page.FrameId; /** * The content box highlight fill color (default: transparent). */ contentColor?: DOM.RGBA; /** * The content box highlight outline color (default: transparent). */ contentOutlineColor?: DOM.RGBA; } export interface HighlightNodeRequest { /** * A descriptor for the highlight appearance. */ highlightConfig: HighlightConfig; /** * Identifier of the node to highlight. */ nodeId?: DOM.NodeId; /** * Identifier of the backend node to highlight. */ backendNodeId?: DOM.BackendNodeId; /** * JavaScript object id of the node to be highlighted. */ objectId?: Runtime.RemoteObjectId; /** * Selectors to highlight relevant nodes. */ selector?: string; } export interface HighlightQuadRequest { /** * Quad to highlight */ quad: DOM.Quad; /** * The highlight fill color (default: transparent). */ color?: DOM.RGBA; /** * The highlight outline color (default: transparent). */ outlineColor?: DOM.RGBA; } export interface HighlightRectRequest { /** * X coordinate */ x: integer; /** * Y coordinate */ y: integer; /** * Rectangle width */ width: integer; /** * Rectangle height */ height: integer; /** * The highlight fill color (default: transparent). */ color?: DOM.RGBA; /** * The highlight outline color (default: transparent). */ outlineColor?: DOM.RGBA; } export interface HighlightSourceOrderRequest { /** * A descriptor for the appearance of the overlay drawing. */ sourceOrderConfig: SourceOrderConfig; /** * Identifier of the node to highlight. */ nodeId?: DOM.NodeId; /** * Identifier of the backend node to highlight. */ backendNodeId?: DOM.BackendNodeId; /** * JavaScript object id of the node to be highlighted. */ objectId?: Runtime.RemoteObjectId; } export interface SetInspectModeRequest { /** * Set an inspection mode. */ mode: InspectMode; /** * A descriptor for the highlight appearance of hovered-over nodes. May be omitted if `enabled * == false`. */ highlightConfig?: HighlightConfig; } export interface SetShowAdHighlightsRequest { /** * True for showing ad highlights */ show: boolean; } export interface SetPausedInDebuggerMessageRequest { /** * The message to display, also triggers resume and step over controls. */ message?: string; } export interface SetShowDebugBordersRequest { /** * True for showing debug borders */ show: boolean; } export interface SetShowFPSCounterRequest { /** * True for showing the FPS counter */ show: boolean; } export interface SetShowGridOverlaysRequest { /** * An array of node identifiers and descriptors for the highlight appearance. */ gridNodeHighlightConfigs: GridNodeHighlightConfig[]; } export interface SetShowFlexOverlaysRequest { /** * An array of node identifiers and descriptors for the highlight appearance. */ flexNodeHighlightConfigs: FlexNodeHighlightConfig[]; } export interface SetShowScrollSnapOverlaysRequest { /** * An array of node identifiers and descriptors for the highlight appearance. */ scrollSnapHighlightConfigs: ScrollSnapHighlightConfig[]; } export interface SetShowContainerQueryOverlaysRequest { /** * An array of node identifiers and descriptors for the highlight appearance. */ containerQueryHighlightConfigs: ContainerQueryHighlightConfig[]; } export interface SetShowPaintRectsRequest { /** * True for showing paint rectangles */ result: boolean; } export interface SetShowLayoutShiftRegionsRequest { /** * True for showing layout shift regions */ result: boolean; } export interface SetShowScrollBottleneckRectsRequest { /** * True for showing scroll bottleneck rects */ show: boolean; } export interface SetShowHitTestBordersRequest { /** * True for showing hit-test borders */ show: boolean; } export interface SetShowWebVitalsRequest { show: boolean; } export interface SetShowViewportSizeOnResizeRequest { /** * Whether to paint size or not. */ show: boolean; } export interface SetShowHingeRequest { /** * hinge data, null means hideHinge */ hingeConfig?: HingeConfig; } export interface SetShowIsolatedElementsRequest { /** * An array of node identifiers and descriptors for the highlight appearance. */ isolatedElementHighlightConfigs: IsolatedElementHighlightConfig[]; } /** * Fired when the node should be inspected. This happens after call to `setInspectMode` or when * user manually inspects an element. */ export interface InspectNodeRequestedEvent { /** * Id of the node to inspect. */ backendNodeId: DOM.BackendNodeId; } /** * Fired when the node should be highlighted. This happens after call to `setInspectMode`. */ export interface NodeHighlightRequestedEvent { nodeId: DOM.NodeId; } /** * Fired when user asks to capture screenshot of some area on the page. */ export interface ScreenshotRequestedEvent { /** * Viewport to capture, in device independent pixels (dip). */ viewport: Page.Viewport; } } /** * Actions and events related to the inspected page belong to the page domain. */ export namespace Page { /** * Unique frame identifier. */ export type FrameId = string; /** * Indicates whether a frame has been identified as an ad. */ export type AdFrameType = "none" | "child" | "root"; export type AdFrameExplanation = | "ParentIsAd" | "CreatedByAdScript" | "MatchedBlockingRule"; /** * Indicates whether a frame has been identified as an ad and why. */ export interface AdFrameStatus { adFrameType: AdFrameType; explanations?: AdFrameExplanation[]; } /** * Identifies the bottom-most script which caused the frame to be labelled * as an ad. */ export interface AdScriptId { /** * Script Id of the bottom-most script which caused the frame to be labelled * as an ad. */ scriptId: Runtime.ScriptId; /** * Id of adScriptId's debugger. */ debuggerId: Runtime.UniqueDebuggerId; } /** * Indicates whether the frame is a secure context and why it is the case. */ export type SecureContextType = | "Secure" | "SecureLocalhost" | "InsecureScheme" | "InsecureAncestor"; /** * Indicates whether the frame is cross-origin isolated and why it is the case. */ export type CrossOriginIsolatedContextType = | "Isolated" | "NotIsolated" | "NotIsolatedFeatureDisabled"; export type GatedAPIFeatures = | "SharedArrayBuffers" | "SharedArrayBuffersTransferAllowed" | "PerformanceMeasureMemory" | "PerformanceProfile"; /** * All Permissions Policy features. This enum should match the one defined * in third_party/blink/renderer/core/permissions_policy/permissions_policy_features.json5. */ export type PermissionsPolicyFeature = | "accelerometer" | "ambient-light-sensor" | "attribution-reporting" | "autoplay" | "bluetooth" | "browsing-topics" | "camera" | "ch-dpr" | "ch-device-memory" | "ch-downlink" | "ch-ect" | "ch-prefers-color-scheme" | "ch-rtt" | "ch-save-data" | "ch-ua" | "ch-ua-arch" | "ch-ua-bitness" | "ch-ua-platform" | "ch-ua-model" | "ch-ua-mobile" | "ch-ua-full" | "ch-ua-full-version" | "ch-ua-full-version-list" | "ch-ua-platform-version" | "ch-ua-reduced" | "ch-ua-wow64" | "ch-viewport-height" | "ch-viewport-width" | "ch-width" | "clipboard-read" | "clipboard-write" | "cross-origin-isolated" | "direct-sockets" | "display-capture" | "document-domain" | "encrypted-media" | "execution-while-out-of-viewport" | "execution-while-not-rendered" | "federated-credentials" | "focus-without-user-activation" | "fullscreen" | "frobulate" | "gamepad" | "geolocation" | "gyroscope" | "hid" | "idle-detection" | "interest-cohort" | "join-ad-interest-group" | "keyboard-map" | "local-fonts" | "magnetometer" | "microphone" | "midi" | "otp-credentials" | "payment" | "picture-in-picture" | "publickey-credentials-get" | "run-ad-auction" | "screen-wake-lock" | "serial" | "shared-autofill" | "storage-access-api" | "sync-xhr" | "trust-token-redemption" | "usb" | "vertical-scroll" | "web-share" | "window-placement" | "xr-spatial-tracking"; /** * Reason for a permissions policy feature to be disabled. */ export type PermissionsPolicyBlockReason = | "Header" | "IframeAttribute" | "InFencedFrameTree" | "InIsolatedApp"; export interface PermissionsPolicyBlockLocator { frameId: FrameId; blockReason: PermissionsPolicyBlockReason; } export interface PermissionsPolicyFeatureState { feature: PermissionsPolicyFeature; allowed: boolean; locator?: PermissionsPolicyBlockLocator; } /** * Origin Trial(https://www.chromium.org/blink/origin-trials) support. * Status for an Origin Trial token. */ export type OriginTrialTokenStatus = | "Success" | "NotSupported" | "Insecure" | "Expired" | "WrongOrigin" | "InvalidSignature" | "Malformed" | "WrongVersion" | "FeatureDisabled" | "TokenDisabled" | "FeatureDisabledForUser" | "UnknownTrial"; /** * Status for an Origin Trial. */ export type OriginTrialStatus = | "Enabled" | "ValidTokenNotProvided" | "OSNotSupported" | "TrialNotAllowed"; export type OriginTrialUsageRestriction = "None" | "Subset"; export interface OriginTrialToken { origin: string; matchSubDomains: boolean; trialName: string; expiryTime: Network.TimeSinceEpoch; isThirdParty: boolean; usageRestriction: OriginTrialUsageRestriction; } export interface OriginTrialTokenWithStatus { rawTokenText: string; /** * `parsedToken` is present only when the token is extractable and * parsable. */ parsedToken?: OriginTrialToken; status: OriginTrialTokenStatus; } export interface OriginTrial { trialName: string; status: OriginTrialStatus; tokensWithStatus: OriginTrialTokenWithStatus[]; } /** * Information about the Frame on the page. */ export interface Frame { /** * Frame unique identifier. */ id: FrameId; /** * Parent frame identifier. */ parentId?: FrameId; /** * Identifier of the loader associated with this frame. */ loaderId: Network.LoaderId; /** * Frame's name as specified in the tag. */ name?: string; /** * Frame document's URL without fragment. */ url: string; /** * Frame document's URL fragment including the '#'. */ urlFragment?: string; /** * Frame document's registered domain, taking the public suffixes list into account. * Extracted from the Frame's url. * Example URLs: http://www.google.com/file.html -> "google.com" * http://a.b.co.uk/file.html -> "b.co.uk" */ domainAndRegistry: string; /** * Frame document's security origin. */ securityOrigin: string; /** * Frame document's mimeType as determined by the browser. */ mimeType: string; /** * If the frame failed to load, this contains the URL that could not be loaded. Note that unlike url above, this URL may contain a fragment. */ unreachableUrl?: string; /** * Indicates whether this frame was tagged as an ad and why. */ adFrameStatus?: AdFrameStatus; /** * Indicates whether the main document is a secure context and explains why that is the case. */ secureContextType: SecureContextType; /** * Indicates whether this is a cross origin isolated context. */ crossOriginIsolatedContextType: CrossOriginIsolatedContextType; /** * Indicated which gated APIs / features are available. */ gatedAPIFeatures: GatedAPIFeatures[]; } /** * Information about the Resource on the page. */ export interface FrameResource { /** * Resource URL. */ url: string; /** * Type of this resource. */ type: Network.ResourceType; /** * Resource mimeType as determined by the browser. */ mimeType: string; /** * last-modified timestamp as reported by server. */ lastModified?: Network.TimeSinceEpoch; /** * Resource content size. */ contentSize?: number; /** * True if the resource failed to load. */ failed?: boolean; /** * True if the resource was canceled during loading. */ canceled?: boolean; } /** * Information about the Frame hierarchy along with their cached resources. */ export interface FrameResourceTree { /** * Frame information for this tree item. */ frame: Frame; /** * Child frames. */ childFrames?: FrameResourceTree[]; /** * Information about frame resources. */ resources: FrameResource[]; } /** * Information about the Frame hierarchy. */ export interface FrameTree { /** * Frame information for this tree item. */ frame: Frame; /** * Child frames. */ childFrames?: FrameTree[]; } /** * Unique script identifier. */ export type ScriptIdentifier = string; /** * Transition type. */ export type TransitionType = | "link" | "typed" | "address_bar" | "auto_bookmark" | "auto_subframe" | "manual_subframe" | "generated" | "auto_toplevel" | "form_submit" | "reload" | "keyword" | "keyword_generated" | "other"; /** * Navigation history entry. */ export interface NavigationEntry { /** * Unique id of the navigation history entry. */ id: integer; /** * URL of the navigation history entry. */ url: string; /** * URL that the user typed in the url bar. */ userTypedURL: string; /** * Title of the navigation history entry. */ title: string; /** * Transition type. */ transitionType: TransitionType; } /** * Screencast frame metadata. */ export interface ScreencastFrameMetadata { /** * Top offset in DIP. */ offsetTop: number; /** * Page scale factor. */ pageScaleFactor: number; /** * Device screen width in DIP. */ deviceWidth: number; /** * Device screen height in DIP. */ deviceHeight: number; /** * Position of horizontal scroll in CSS pixels. */ scrollOffsetX: number; /** * Position of vertical scroll in CSS pixels. */ scrollOffsetY: number; /** * Frame swap timestamp. */ timestamp?: Network.TimeSinceEpoch; } /** * Javascript dialog type. */ export type DialogType = "alert" | "confirm" | "prompt" | "beforeunload"; /** * Error while paring app manifest. */ export interface AppManifestError { /** * Error message. */ message: string; /** * If criticial, this is a non-recoverable parse error. */ critical: integer; /** * Error line. */ line: integer; /** * Error column. */ column: integer; } /** * Parsed app manifest properties. */ export interface AppManifestParsedProperties { /** * Computed scope value */ scope: string; } /** * Layout viewport position and dimensions. */ export interface LayoutViewport { /** * Horizontal offset relative to the document (CSS pixels). */ pageX: integer; /** * Vertical offset relative to the document (CSS pixels). */ pageY: integer; /** * Width (CSS pixels), excludes scrollbar if present. */ clientWidth: integer; /** * Height (CSS pixels), excludes scrollbar if present. */ clientHeight: integer; } /** * Visual viewport position, dimensions, and scale. */ export interface VisualViewport { /** * Horizontal offset relative to the layout viewport (CSS pixels). */ offsetX: number; /** * Vertical offset relative to the layout viewport (CSS pixels). */ offsetY: number; /** * Horizontal offset relative to the document (CSS pixels). */ pageX: number; /** * Vertical offset relative to the document (CSS pixels). */ pageY: number; /** * Width (CSS pixels), excludes scrollbar if present. */ clientWidth: number; /** * Height (CSS pixels), excludes scrollbar if present. */ clientHeight: number; /** * Scale relative to the ideal viewport (size at width=device-width). */ scale: number; /** * Page zoom factor (CSS to device independent pixels ratio). */ zoom?: number; } /** * Viewport for capturing screenshot. */ export interface Viewport { /** * X offset in device independent pixels (dip). */ x: number; /** * Y offset in device independent pixels (dip). */ y: number; /** * Rectangle width in device independent pixels (dip). */ width: number; /** * Rectangle height in device independent pixels (dip). */ height: number; /** * Page scale factor. */ scale: number; } /** * Generic font families collection. */ export interface FontFamilies { /** * The standard font-family. */ standard?: string; /** * The fixed font-family. */ fixed?: string; /** * The serif font-family. */ serif?: string; /** * The sansSerif font-family. */ sansSerif?: string; /** * The cursive font-family. */ cursive?: string; /** * The fantasy font-family. */ fantasy?: string; /** * The math font-family. */ math?: string; } /** * Font families collection for a script. */ export interface ScriptFontFamilies { /** * Name of the script which these font families are defined for. */ script: string; /** * Generic font families collection for the script. */ fontFamilies: FontFamilies; } /** * Default font sizes. */ export interface FontSizes { /** * Default standard font size. */ standard?: integer; /** * Default fixed font size. */ fixed?: integer; } export type ClientNavigationReason = | "formSubmissionGet" | "formSubmissionPost" | "httpHeaderRefresh" | "scriptInitiated" | "metaTagRefresh" | "pageBlockInterstitial" | "reload" | "anchorClick"; export type ClientNavigationDisposition = | "currentTab" | "newTab" | "newWindow" | "download"; export interface InstallabilityErrorArgument { /** * Argument name (e.g. name:'minimum-icon-size-in-pixels'). */ name: string; /** * Argument value (e.g. value:'64'). */ value: string; } /** * The installability error */ export interface InstallabilityError { /** * The error id (e.g. 'manifest-missing-suitable-icon'). */ errorId: string; /** * The list of error arguments (e.g. {name:'minimum-icon-size-in-pixels', value:'64'}). */ errorArguments: InstallabilityErrorArgument[]; } /** * The referring-policy used for the navigation. */ export type ReferrerPolicy = | "noReferrer" | "noReferrerWhenDowngrade" | "origin" | "originWhenCrossOrigin" | "sameOrigin" | "strictOrigin" | "strictOriginWhenCrossOrigin" | "unsafeUrl"; /** * Per-script compilation cache parameters for `Page.produceCompilationCache` */ export interface CompilationCacheParams { /** * The URL of the script to produce a compilation cache entry for. */ url: string; /** * A hint to the backend whether eager compilation is recommended. * (the actual compilation mode used is upon backend discretion). */ eager?: boolean; } /** * The type of a frameNavigated event. */ export type NavigationType = "Navigation" | "BackForwardCacheRestore"; /** * List of not restored reasons for back-forward cache. */ export type BackForwardCacheNotRestoredReason = | "NotPrimaryMainFrame" | "BackForwardCacheDisabled" | "RelatedActiveContentsExist" | "HTTPStatusNotOK" | "SchemeNotHTTPOrHTTPS" | "Loading" | "WasGrantedMediaAccess" | "DisableForRenderFrameHostCalled" | "DomainNotAllowed" | "HTTPMethodNotGET" | "SubframeIsNavigating" | "Timeout" | "CacheLimit" | "JavaScriptExecution" | "RendererProcessKilled" | "RendererProcessCrashed" | "SchedulerTrackedFeatureUsed" | "ConflictingBrowsingInstance" | "CacheFlushed" | "ServiceWorkerVersionActivation" | "SessionRestored" | "ServiceWorkerPostMessage" | "EnteredBackForwardCacheBeforeServiceWorkerHostAdded" | "RenderFrameHostReused_SameSite" | "RenderFrameHostReused_CrossSite" | "ServiceWorkerClaim" | "IgnoreEventAndEvict" | "HaveInnerContents" | "TimeoutPuttingInCache" | "BackForwardCacheDisabledByLowMemory" | "BackForwardCacheDisabledByCommandLine" | "NetworkRequestDatapipeDrainedAsBytesConsumer" | "NetworkRequestRedirected" | "NetworkRequestTimeout" | "NetworkExceedsBufferLimit" | "NavigationCancelledWhileRestoring" | "NotMostRecentNavigationEntry" | "BackForwardCacheDisabledForPrerender" | "UserAgentOverrideDiffers" | "ForegroundCacheLimit" | "BrowsingInstanceNotSwapped" | "BackForwardCacheDisabledForDelegate" | "UnloadHandlerExistsInMainFrame" | "UnloadHandlerExistsInSubFrame" | "ServiceWorkerUnregistration" | "CacheControlNoStore" | "CacheControlNoStoreCookieModified" | "CacheControlNoStoreHTTPOnlyCookieModified" | "NoResponseHead" | "Unknown" | "ActivationNavigationsDisallowedForBug1234857" | "ErrorDocument" | "FencedFramesEmbedder" | "WebSocket" | "WebTransport" | "WebRTC" | "MainResourceHasCacheControlNoStore" | "MainResourceHasCacheControlNoCache" | "SubresourceHasCacheControlNoStore" | "SubresourceHasCacheControlNoCache" | "ContainsPlugins" | "DocumentLoaded" | "DedicatedWorkerOrWorklet" | "OutstandingNetworkRequestOthers" | "OutstandingIndexedDBTransaction" | "RequestedNotificationsPermission" | "RequestedMIDIPermission" | "RequestedAudioCapturePermission" | "RequestedVideoCapturePermission" | "RequestedBackForwardCacheBlockedSensors" | "RequestedBackgroundWorkPermission" | "BroadcastChannel" | "IndexedDBConnection" | "WebXR" | "SharedWorker" | "WebLocks" | "WebHID" | "WebShare" | "RequestedStorageAccessGrant" | "WebNfc" | "OutstandingNetworkRequestFetch" | "OutstandingNetworkRequestXHR" | "AppBanner" | "Printing" | "WebDatabase" | "PictureInPicture" | "Portal" | "SpeechRecognizer" | "IdleManager" | "PaymentManager" | "SpeechSynthesis" | "KeyboardLock" | "WebOTPService" | "OutstandingNetworkRequestDirectSocket" | "InjectedJavascript" | "InjectedStyleSheet" | "Dummy" | "ContentSecurityHandler" | "ContentWebAuthenticationAPI" | "ContentFileChooser" | "ContentSerial" | "ContentFileSystemAccess" | "ContentMediaDevicesDispatcherHost" | "ContentWebBluetooth" | "ContentWebUSB" | "ContentMediaSessionService" | "ContentScreenReader" | "EmbedderPopupBlockerTabHelper" | "EmbedderSafeBrowsingTriggeredPopupBlocker" | "EmbedderSafeBrowsingThreatDetails" | "EmbedderAppBannerManager" | "EmbedderDomDistillerViewerSource" | "EmbedderDomDistillerSelfDeletingRequestDelegate" | "EmbedderOomInterventionTabHelper" | "EmbedderOfflinePage" | "EmbedderChromePasswordManagerClientBindCredentialManager" | "EmbedderPermissionRequestManager" | "EmbedderModalDialog" | "EmbedderExtensions" | "EmbedderExtensionMessaging" | "EmbedderExtensionMessagingForOpenPort" | "EmbedderExtensionSentMessageToCachedFrame"; /** * Types of not restored reasons for back-forward cache. */ export type BackForwardCacheNotRestoredReasonType = | "SupportPending" | "PageSupportNeeded" | "Circumstantial"; export interface BackForwardCacheNotRestoredExplanation { /** * Type of the reason */ type: BackForwardCacheNotRestoredReasonType; /** * Not restored reason */ reason: BackForwardCacheNotRestoredReason; /** * Context associated with the reason. The meaning of this context is * dependent on the reason: * - EmbedderExtensionSentMessageToCachedFrame: the extension ID. */ context?: string; } export interface BackForwardCacheNotRestoredExplanationTree { /** * URL of each frame */ url: string; /** * Not restored reasons of each frame */ explanations: BackForwardCacheNotRestoredExplanation[]; /** * Array of children frame */ children: BackForwardCacheNotRestoredExplanationTree[]; } /** * List of FinalStatus reasons for Prerender2. */ export type PrerenderFinalStatus = | "Activated" | "Destroyed" | "LowEndDevice" | "CrossOriginRedirect" | "CrossOriginNavigation" | "InvalidSchemeRedirect" | "InvalidSchemeNavigation" | "InProgressNavigation" | "NavigationRequestBlockedByCsp" | "MainFrameNavigation" | "MojoBinderPolicy" | "RendererProcessCrashed" | "RendererProcessKilled" | "Download" | "TriggerDestroyed" | "NavigationNotCommitted" | "NavigationBadHttpStatus" | "ClientCertRequested" | "NavigationRequestNetworkError" | "MaxNumOfRunningPrerendersExceeded" | "CancelAllHostsForTesting" | "DidFailLoad" | "Stop" | "SslCertificateError" | "LoginAuthRequested" | "UaChangeRequiresReload" | "BlockedByClient" | "AudioOutputDeviceRequested" | "MixedContent" | "TriggerBackgrounded" | "EmbedderTriggeredAndSameOriginRedirected" | "EmbedderTriggeredAndCrossOriginRedirected" | "EmbedderTriggeredAndDestroyed"; export interface AddScriptToEvaluateOnLoadRequest { scriptSource: string; } export interface AddScriptToEvaluateOnLoadResponse { /** * Identifier of the added script. */ identifier: ScriptIdentifier; } export interface AddScriptToEvaluateOnNewDocumentRequest { source: string; /** * If specified, creates an isolated world with the given name and evaluates given script in it. * This world name will be used as the ExecutionContextDescription::name when the corresponding * event is emitted. */ worldName?: string; /** * Specifies whether command line API should be available to the script, defaults * to false. */ includeCommandLineAPI?: boolean; } export interface AddScriptToEvaluateOnNewDocumentResponse { /** * Identifier of the added script. */ identifier: ScriptIdentifier; } export const enum CaptureScreenshotRequestFormat { Jpeg = "jpeg", Png = "png", Webp = "webp", } export interface CaptureScreenshotRequest { /** * Image compression format (defaults to png). (CaptureScreenshotRequestFormat enum) */ format?: "jpeg" | "png" | "webp"; /** * Compression quality from range [0..100] (jpeg only). */ quality?: integer; /** * Capture the screenshot of a given region only. */ clip?: Viewport; /** * Capture the screenshot from the surface, rather than the view. Defaults to true. */ fromSurface?: boolean; /** * Capture the screenshot beyond the viewport. Defaults to false. */ captureBeyondViewport?: boolean; } export interface CaptureScreenshotResponse { /** * Base64-encoded image data. (Encoded as a base64 string when passed over JSON) */ data: string; } export const enum CaptureSnapshotRequestFormat { MHTML = "mhtml", } export interface CaptureSnapshotRequest { /** * Format (defaults to mhtml). (CaptureSnapshotRequestFormat enum) */ format?: "mhtml"; } export interface CaptureSnapshotResponse { /** * Serialized page data. */ data: string; } export interface CreateIsolatedWorldRequest { /** * Id of the frame in which the isolated world should be created. */ frameId: FrameId; /** * An optional name which is reported in the Execution Context. */ worldName?: string; /** * Whether or not universal access should be granted to the isolated world. This is a powerful * option, use with caution. */ grantUniveralAccess?: boolean; } export interface CreateIsolatedWorldResponse { /** * Execution context of the isolated world. */ executionContextId: Runtime.ExecutionContextId; } export interface DeleteCookieRequest { /** * Name of the cookie to remove. */ cookieName: string; /** * URL to match cooke domain and path. */ url: string; } export interface GetAppManifestResponse { /** * Manifest location. */ url: string; errors: AppManifestError[]; /** * Manifest content. */ data?: string; /** * Parsed manifest properties */ parsed?: AppManifestParsedProperties; } export interface GetInstallabilityErrorsResponse { installabilityErrors: InstallabilityError[]; } export interface GetManifestIconsResponse { primaryIcon?: string; } export interface GetAppIdResponse { /** * App id, either from manifest's id attribute or computed from start_url */ appId?: string; /** * Recommendation for manifest's id attribute to match current id computed from start_url */ recommendedId?: string; } export interface GetCookiesResponse { /** * Array of cookie objects. */ cookies: Network.Cookie[]; } export interface GetFrameTreeResponse { /** * Present frame tree structure. */ frameTree: FrameTree; } export interface GetLayoutMetricsResponse { /** * Deprecated metrics relating to the layout viewport. Is in device pixels. Use `cssLayoutViewport` instead. */ layoutViewport: LayoutViewport; /** * Deprecated metrics relating to the visual viewport. Is in device pixels. Use `cssVisualViewport` instead. */ visualViewport: VisualViewport; /** * Deprecated size of scrollable area. Is in DP. Use `cssContentSize` instead. */ contentSize: DOM.Rect; /** * Metrics relating to the layout viewport in CSS pixels. */ cssLayoutViewport: LayoutViewport; /** * Metrics relating to the visual viewport in CSS pixels. */ cssVisualViewport: VisualViewport; /** * Size of scrollable area in CSS pixels. */ cssContentSize: DOM.Rect; } export interface GetNavigationHistoryResponse { /** * Index of the current navigation history entry. */ currentIndex: integer; /** * Array of navigation history entries. */ entries: NavigationEntry[]; } export interface GetResourceContentRequest { /** * Frame id to get resource for. */ frameId: FrameId; /** * URL of the resource to get content for. */ url: string; } export interface GetResourceContentResponse { /** * Resource content. */ content: string; /** * True, if content was served as base64. */ base64Encoded: boolean; } export interface GetResourceTreeResponse { /** * Present frame / resource tree structure. */ frameTree: FrameResourceTree; } export interface HandleJavaScriptDialogRequest { /** * Whether to accept or dismiss the dialog. */ accept: boolean; /** * The text to enter into the dialog prompt before accepting. Used only if this is a prompt * dialog. */ promptText?: string; } export interface NavigateRequest { /** * URL to navigate the page to. */ url: string; /** * Referrer URL. */ referrer?: string; /** * Intended transition type. */ transitionType?: TransitionType; /** * Frame id to navigate, if not specified navigates the top frame. */ frameId?: FrameId; /** * Referrer-policy used for the navigation. */ referrerPolicy?: ReferrerPolicy; } export interface NavigateResponse { /** * Frame id that has navigated (or failed to navigate) */ frameId: FrameId; /** * Loader identifier. This is omitted in case of same-document navigation, * as the previously committed loaderId would not change. */ loaderId?: Network.LoaderId; /** * User friendly error message, present if and only if navigation has failed. */ errorText?: string; } export interface NavigateToHistoryEntryRequest { /** * Unique id of the entry to navigate to. */ entryId: integer; } export const enum PrintToPDFRequestTransferMode { ReturnAsBase64 = "ReturnAsBase64", ReturnAsStream = "ReturnAsStream", } export interface PrintToPDFRequest { /** * Paper orientation. Defaults to false. */ landscape?: boolean; /** * Display header and footer. Defaults to false. */ displayHeaderFooter?: boolean; /** * Print background graphics. Defaults to false. */ printBackground?: boolean; /** * Scale of the webpage rendering. Defaults to 1. */ scale?: number; /** * Paper width in inches. Defaults to 8.5 inches. */ paperWidth?: number; /** * Paper height in inches. Defaults to 11 inches. */ paperHeight?: number; /** * Top margin in inches. Defaults to 1cm (~0.4 inches). */ marginTop?: number; /** * Bottom margin in inches. Defaults to 1cm (~0.4 inches). */ marginBottom?: number; /** * Left margin in inches. Defaults to 1cm (~0.4 inches). */ marginLeft?: number; /** * Right margin in inches. Defaults to 1cm (~0.4 inches). */ marginRight?: number; /** * Paper ranges to print, one based, e.g., '1-5, 8, 11-13'. Pages are * printed in the document order, not in the order specified, and no * more than once. * Defaults to empty string, which implies the entire document is printed. * The page numbers are quietly capped to actual page count of the * document, and ranges beyond the end of the document are ignored. * If this results in no pages to print, an error is reported. * It is an error to specify a range with start greater than end. */ pageRanges?: string; /** * HTML template for the print header. Should be valid HTML markup with following * classes used to inject printing values into them: * - `date`: formatted print date * - `title`: document title * - `url`: document location * - `pageNumber`: current page number * - `totalPages`: total pages in the document * * For example, `<span class=title></span>` would generate span containing the title. */ headerTemplate?: string; /** * HTML template for the print footer. Should use the same format as the `headerTemplate`. */ footerTemplate?: string; /** * Whether or not to prefer page size as defined by css. Defaults to false, * in which case the content will be scaled to fit the paper size. */ preferCSSPageSize?: boolean; /** * return as stream (PrintToPDFRequestTransferMode enum) */ transferMode?: "ReturnAsBase64" | "ReturnAsStream"; } export interface PrintToPDFResponse { /** * Base64-encoded pdf data. Empty if |returnAsStream| is specified. (Encoded as a base64 string when passed over JSON) */ data: string; /** * A handle of the stream that holds resulting PDF data. */ stream?: IO.StreamHandle; } export interface ReloadRequest { /** * If true, browser cache is ignored (as if the user pressed Shift+refresh). */ ignoreCache?: boolean; /** * If set, the script will be injected into all frames of the inspected page after reload. * Argument will be ignored if reloading dataURL origin. */ scriptToEvaluateOnLoad?: string; } export interface RemoveScriptToEvaluateOnLoadRequest { identifier: ScriptIdentifier; } export interface RemoveScriptToEvaluateOnNewDocumentRequest { identifier: ScriptIdentifier; } export interface ScreencastFrameAckRequest { /** * Frame number. */ sessionId: integer; } export interface SearchInResourceRequest { /** * Frame id for resource to search in. */ frameId: FrameId; /** * URL of the resource to search in. */ url: string; /** * String to search for. */ query: string; /** * If true, search is case sensitive. */ caseSensitive?: boolean; /** * If true, treats string parameter as regex. */ isRegex?: boolean; } export interface SearchInResourceResponse { /** * List of search matches. */ result: Debugger.SearchMatch[]; } export interface SetAdBlockingEnabledRequest { /** * Whether to block ads. */ enabled: boolean; } export interface SetBypassCSPRequest { /** * Whether to bypass page CSP. */ enabled: boolean; } export interface GetPermissionsPolicyStateRequest { frameId: FrameId; } export interface GetPermissionsPolicyStateResponse { states: PermissionsPolicyFeatureState[]; } export interface GetOriginTrialsRequest { frameId: FrameId; } export interface GetOriginTrialsResponse { originTrials: OriginTrial[]; } export interface SetDeviceMetricsOverrideRequest { /** * Overriding width value in pixels (minimum 0, maximum 10000000). 0 disables the override. */ width: integer; /** * Overriding height value in pixels (minimum 0, maximum 10000000). 0 disables the override. */ height: integer; /** * Overriding device scale factor value. 0 disables the override. */ deviceScaleFactor: number; /** * Whether to emulate mobile device. This includes viewport meta tag, overlay scrollbars, text * autosizing and more. */ mobile: boolean; /** * Scale to apply to resulting view image. */ scale?: number; /** * Overriding screen width value in pixels (minimum 0, maximum 10000000). */ screenWidth?: integer; /** * Overriding screen height value in pixels (minimum 0, maximum 10000000). */ screenHeight?: integer; /** * Overriding view X position on screen in pixels (minimum 0, maximum 10000000). */ positionX?: integer; /** * Overriding view Y position on screen in pixels (minimum 0, maximum 10000000). */ positionY?: integer; /** * Do not set visible view size, rely upon explicit setVisibleSize call. */ dontSetVisibleSize?: boolean; /** * Screen orientation override. */ screenOrientation?: Emulation.ScreenOrientation; /** * The viewport dimensions and scale. If not set, the override is cleared. */ viewport?: Viewport; } export interface SetDeviceOrientationOverrideRequest { /** * Mock alpha */ alpha: number; /** * Mock beta */ beta: number; /** * Mock gamma */ gamma: number; } export interface SetFontFamiliesRequest { /** * Specifies font families to set. If a font family is not specified, it won't be changed. */ fontFamilies: FontFamilies; /** * Specifies font families to set for individual scripts. */ forScripts?: ScriptFontFamilies[]; } export interface SetFontSizesRequest { /** * Specifies font sizes to set. If a font size is not specified, it won't be changed. */ fontSizes: FontSizes; } export interface SetDocumentContentRequest { /** * Frame id to set HTML for. */ frameId: FrameId; /** * HTML content to set. */ html: string; } export const enum SetDownloadBehaviorRequestBehavior { Deny = "deny", Allow = "allow", Default = "default", } export interface SetDownloadBehaviorRequest { /** * Whether to allow all or deny all download requests, or use default Chrome behavior if * available (otherwise deny). (SetDownloadBehaviorRequestBehavior enum) */ behavior: "deny" | "allow" | "default"; /** * The default path to save downloaded files to. This is required if behavior is set to 'allow' */ downloadPath?: string; } export interface SetGeolocationOverrideRequest { /** * Mock latitude */ latitude?: number; /** * Mock longitude */ longitude?: number; /** * Mock accuracy */ accuracy?: number; } export interface SetLifecycleEventsEnabledRequest { /** * If true, starts emitting lifecycle events. */ enabled: boolean; } export const enum SetTouchEmulationEnabledRequestConfiguration { Mobile = "mobile", Desktop = "desktop", } export interface SetTouchEmulationEnabledRequest { /** * Whether the touch event emulation should be enabled. */ enabled: boolean; /** * Touch/gesture events configuration. Default: current platform. (SetTouchEmulationEnabledRequestConfiguration enum) */ configuration?: "mobile" | "desktop"; } export const enum StartScreencastRequestFormat { Jpeg = "jpeg", Png = "png", } export interface StartScreencastRequest { /** * Image compression format. (StartScreencastRequestFormat enum) */ format?: "jpeg" | "png"; /** * Compression quality from range [0..100]. */ quality?: integer; /** * Maximum screenshot width. */ maxWidth?: integer; /** * Maximum screenshot height. */ maxHeight?: integer; /** * Send every n-th frame. */ everyNthFrame?: integer; } export const enum SetWebLifecycleStateRequestState { Frozen = "frozen", Active = "active", } export interface SetWebLifecycleStateRequest { /** * Target lifecycle state (SetWebLifecycleStateRequestState enum) */ state: "frozen" | "active"; } export interface ProduceCompilationCacheRequest { scripts: CompilationCacheParams[]; } export interface AddCompilationCacheRequest { url: string; /** * Base64-encoded data (Encoded as a base64 string when passed over JSON) */ data: string; } export const enum SetSPCTransactionModeRequestMode { None = "none", Autoaccept = "autoaccept", Autoreject = "autoreject", } export interface SetSPCTransactionModeRequest { /** * (SetSPCTransactionModeRequestMode enum) */ mode: "none" | "autoaccept" | "autoreject"; } export interface GenerateTestReportRequest { /** * Message to be displayed in the report. */ message: string; /** * Specifies the endpoint group to deliver the report to. */ group?: string; } export interface SetInterceptFileChooserDialogRequest { enabled: boolean; } export interface DomContentEventFiredEvent { timestamp: Network.MonotonicTime; } export const enum FileChooserOpenedEventMode { SelectSingle = "selectSingle", SelectMultiple = "selectMultiple", } /** * Emitted only when `page.interceptFileChooser` is enabled. */ export interface FileChooserOpenedEvent { /** * Id of the frame containing input node. */ frameId: FrameId; /** * Input mode. (FileChooserOpenedEventMode enum) */ mode: "selectSingle" | "selectMultiple"; /** * Input node id. Only present for file choosers opened via an <input type="file"> element. */ backendNodeId?: DOM.BackendNodeId; } /** * Fired when frame has been attached to its parent. */ export interface FrameAttachedEvent { /** * Id of the frame that has been attached. */ frameId: FrameId; /** * Parent frame identifier. */ parentFrameId: FrameId; /** * JavaScript stack trace of when frame was attached, only set if frame initiated from script. */ stack?: Runtime.StackTrace; /** * Identifies the bottom-most script which caused the frame to be labelled * as an ad. Only sent if frame is labelled as an ad and id is available. */ adScriptId?: AdScriptId; } /** * Fired when frame no longer has a scheduled navigation. */ export interface FrameClearedScheduledNavigationEvent { /** * Id of the frame that has cleared its scheduled navigation. */ frameId: FrameId; } export const enum FrameDetachedEventReason { Remove = "remove", Swap = "swap", } /** * Fired when frame has been detached from its parent. */ export interface FrameDetachedEvent { /** * Id of the frame that has been detached. */ frameId: FrameId; /** * (FrameDetachedEventReason enum) */ reason: "remove" | "swap"; } /** * Fired once navigation of the frame has completed. Frame is now associated with the new loader. */ export interface FrameNavigatedEvent { /** * Frame object. */ frame: Frame; type: NavigationType; } /** * Fired when opening document to write to. */ export interface DocumentOpenedEvent { /** * Frame object. */ frame: Frame; } /** * Fired when a renderer-initiated navigation is requested. * Navigation may still be cancelled after the event is issued. */ export interface FrameRequestedNavigationEvent { /** * Id of the frame that is being navigated. */ frameId: FrameId; /** * The reason for the navigation. */ reason: ClientNavigationReason; /** * The destination URL for the requested navigation. */ url: string; /** * The disposition for the navigation. */ disposition: ClientNavigationDisposition; } /** * Fired when frame schedules a potential navigation. */ export interface FrameScheduledNavigationEvent { /** * Id of the frame that has scheduled a navigation. */ frameId: FrameId; /** * Delay (in seconds) until the navigation is scheduled to begin. The navigation is not * guaranteed to start. */ delay: number; /** * The reason for the navigation. */ reason: ClientNavigationReason; /** * The destination URL for the scheduled navigation. */ url: string; } /** * Fired when frame has started loading. */ export interface FrameStartedLoadingEvent { /** * Id of the frame that has started loading. */ frameId: FrameId; } /** * Fired when frame has stopped loading. */ export interface FrameStoppedLoadingEvent { /** * Id of the frame that has stopped loading. */ frameId: FrameId; } /** * Fired when page is about to start a download. * Deprecated. Use Browser.downloadWillBegin instead. */ export interface DownloadWillBeginEvent { /** * Id of the frame that caused download to begin. */ frameId: FrameId; /** * Global unique identifier of the download. */ guid: string; /** * URL of the resource being downloaded. */ url: string; /** * Suggested file name of the resource (the actual name of the file saved on disk may differ). */ suggestedFilename: string; } export const enum DownloadProgressEventState { InProgress = "inProgress", Completed = "completed", Canceled = "canceled", } /** * Fired when download makes progress. Last call has |done| == true. * Deprecated. Use Browser.downloadProgress instead. */ export interface DownloadProgressEvent { /** * Global unique identifier of the download. */ guid: string; /** * Total expected bytes to download. */ totalBytes: number; /** * Total bytes received. */ receivedBytes: number; /** * Download status. (DownloadProgressEventState enum) */ state: "inProgress" | "completed" | "canceled"; } /** * Fired when a JavaScript initiated dialog (alert, confirm, prompt, or onbeforeunload) has been * closed. */ export interface JavascriptDialogClosedEvent { /** * Whether dialog was confirmed. */ result: boolean; /** * User input in case of prompt. */ userInput: string; } /** * Fired when a JavaScript initiated dialog (alert, confirm, prompt, or onbeforeunload) is about to * open. */ export interface JavascriptDialogOpeningEvent { /** * Frame url. */ url: string; /** * Message that will be displayed by the dialog. */ message: string; /** * Dialog type. */ type: DialogType; /** * True iff browser is capable showing or acting on the given dialog. When browser has no * dialog handler for given target, calling alert while Page domain is engaged will stall * the page execution. Execution can be resumed via calling Page.handleJavaScriptDialog. */ hasBrowserHandler: boolean; /** * Default dialog prompt. */ defaultPrompt?: string; } /** * Fired for top level page lifecycle events such as navigation, load, paint, etc. */ export interface LifecycleEventEvent { /** * Id of the frame. */ frameId: FrameId; /** * Loader identifier. Empty string if the request is fetched from worker. */ loaderId: Network.LoaderId; name: string; timestamp: Network.MonotonicTime; } /** * Fired for failed bfcache history navigations if BackForwardCache feature is enabled. Do * not assume any ordering with the Page.frameNavigated event. This event is fired only for * main-frame history navigation where the document changes (non-same-document navigations), * when bfcache navigation fails. */ export interface BackForwardCacheNotUsedEvent { /** * The loader id for the associated navgation. */ loaderId: Network.LoaderId; /** * The frame id of the associated frame. */ frameId: FrameId; /** * Array of reasons why the page could not be cached. This must not be empty. */ notRestoredExplanations: BackForwardCacheNotRestoredExplanation[]; /** * Tree structure of reasons why the page could not be cached for each frame. */ notRestoredExplanationsTree?: BackForwardCacheNotRestoredExplanationTree; } /** * Fired when a prerender attempt is completed. */ export interface PrerenderAttemptCompletedEvent { /** * The frame id of the frame initiating prerendering. */ initiatingFrameId: FrameId; prerenderingUrl: string; finalStatus: PrerenderFinalStatus; } export interface LoadEventFiredEvent { timestamp: Network.MonotonicTime; } /** * Fired when same-document navigation happens, e.g. due to history API usage or anchor navigation. */ export interface NavigatedWithinDocumentEvent { /** * Id of the frame. */ frameId: FrameId; /** * Frame's new url. */ url: string; } /** * Compressed image data requested by the `startScreencast`. */ export interface ScreencastFrameEvent { /** * Base64-encoded compressed image. (Encoded as a base64 string when passed over JSON) */ data: string; /** * Screencast frame metadata. */ metadata: ScreencastFrameMetadata; /** * Frame number. */ sessionId: integer; } /** * Fired when the page with currently enabled screencast was shown or hidden `. */ export interface ScreencastVisibilityChangedEvent { /** * True if the page is visible. */ visible: boolean; } /** * Fired when a new window is going to be opened, via window.open(), link click, form submission, * etc. */ export interface WindowOpenEvent { /** * The URL for the new window. */ url: string; /** * Window name. */ windowName: string; /** * An array of enabled window features. */ windowFeatures: string[]; /** * Whether or not it was triggered by user gesture. */ userGesture: boolean; } /** * Issued for every compilation cache generated. Is only available * if Page.setGenerateCompilationCache is enabled. */ export interface CompilationCacheProducedEvent { url: string; /** * Base64-encoded data (Encoded as a base64 string when passed over JSON) */ data: string; } } export namespace Performance { /** * Run-time execution metric. */ export interface Metric { /** * Metric name. */ name: string; /** * Metric value. */ value: number; } export const enum EnableRequestTimeDomain { TimeTicks = "timeTicks", ThreadTicks = "threadTicks", } export interface EnableRequest { /** * Time domain to use for collecting and reporting duration metrics. (EnableRequestTimeDomain enum) */ timeDomain?: "timeTicks" | "threadTicks"; } export const enum SetTimeDomainRequestTimeDomain { TimeTicks = "timeTicks", ThreadTicks = "threadTicks", } export interface SetTimeDomainRequest { /** * Time domain (SetTimeDomainRequestTimeDomain enum) */ timeDomain: "timeTicks" | "threadTicks"; } export interface GetMetricsResponse { /** * Current values for run-time metrics. */ metrics: Metric[]; } /** * Current values of the metrics. */ export interface MetricsEvent { /** * Current values of the metrics. */ metrics: Metric[]; /** * Timestamp title. */ title: string; } } /** * Reporting of performance timeline events, as specified in * https://w3c.github.io/performance-timeline/#dom-performanceobserver. */ export namespace PerformanceTimeline { /** * See https://github.com/WICG/LargestContentfulPaint and largest_contentful_paint.idl */ export interface LargestContentfulPaint { renderTime: Network.TimeSinceEpoch; loadTime: Network.TimeSinceEpoch; /** * The number of pixels being painted. */ size: number; /** * The id attribute of the element, if available. */ elementId?: string; /** * The URL of the image (may be trimmed). */ url?: string; nodeId?: DOM.BackendNodeId; } export interface LayoutShiftAttribution { previousRect: DOM.Rect; currentRect: DOM.Rect; nodeId?: DOM.BackendNodeId; } /** * See https://wicg.github.io/layout-instability/#sec-layout-shift and layout_shift.idl */ export interface LayoutShift { /** * Score increment produced by this event. */ value: number; hadRecentInput: boolean; lastInputTime: Network.TimeSinceEpoch; sources: LayoutShiftAttribution[]; } export interface TimelineEvent { /** * Identifies the frame that this event is related to. Empty for non-frame targets. */ frameId: Page.FrameId; /** * The event type, as specified in https://w3c.github.io/performance-timeline/#dom-performanceentry-entrytype * This determines which of the optional "details" fiedls is present. */ type: string; /** * Name may be empty depending on the type. */ name: string; /** * Time in seconds since Epoch, monotonically increasing within document lifetime. */ time: Network.TimeSinceEpoch; /** * Event duration, if applicable. */ duration?: number; lcpDetails?: LargestContentfulPaint; layoutShiftDetails?: LayoutShift; } export interface EnableRequest { /** * The types of event to report, as specified in * https://w3c.github.io/performance-timeline/#dom-performanceentry-entrytype * The specified filter overrides any previous filters, passing empty * filter disables recording. * Note that not all types exposed to the web platform are currently supported. */ eventTypes: string[]; } /** * Sent when a performance timeline event is added. See reportPerformanceTimeline method. */ export interface TimelineEventAddedEvent { event: TimelineEvent; } } /** * Security */ export namespace Security { /** * An internal certificate ID value. */ export type CertificateId = integer; /** * A description of mixed content (HTTP resources on HTTPS pages), as defined by * https://www.w3.org/TR/mixed-content/#categories */ export type MixedContentType = | "blockable" | "optionally-blockable" | "none"; /** * The security level of a page or resource. */ export type SecurityState = | "unknown" | "neutral" | "insecure" | "secure" | "info" | "insecure-broken"; /** * Details about the security state of the page certificate. */ export interface CertificateSecurityState { /** * Protocol name (e.g. "TLS 1.2" or "QUIC"). */ protocol: string; /** * Key Exchange used by the connection, or the empty string if not applicable. */ keyExchange: string; /** * (EC)DH group used by the connection, if applicable. */ keyExchangeGroup?: string; /** * Cipher name. */ cipher: string; /** * TLS MAC. Note that AEAD ciphers do not have separate MACs. */ mac?: string; /** * Page certificate. */ certificate: string[]; /** * Certificate subject name. */ subjectName: string; /** * Name of the issuing CA. */ issuer: string; /** * Certificate valid from date. */ validFrom: Network.TimeSinceEpoch; /** * Certificate valid to (expiration) date */ validTo: Network.TimeSinceEpoch; /** * The highest priority network error code, if the certificate has an error. */ certificateNetworkError?: string; /** * True if the certificate uses a weak signature aglorithm. */ certificateHasWeakSignature: boolean; /** * True if the certificate has a SHA1 signature in the chain. */ certificateHasSha1Signature: boolean; /** * True if modern SSL */ modernSSL: boolean; /** * True if the connection is using an obsolete SSL protocol. */ obsoleteSslProtocol: boolean; /** * True if the connection is using an obsolete SSL key exchange. */ obsoleteSslKeyExchange: boolean; /** * True if the connection is using an obsolete SSL cipher. */ obsoleteSslCipher: boolean; /** * True if the connection is using an obsolete SSL signature. */ obsoleteSslSignature: boolean; } export type SafetyTipStatus = "badReputation" | "lookalike"; export interface SafetyTipInfo { /** * Describes whether the page triggers any safety tips or reputation warnings. Default is unknown. */ safetyTipStatus: SafetyTipStatus; /** * The URL the safety tip suggested ("Did you mean?"). Only filled in for lookalike matches. */ safeUrl?: string; } /** * Security state information about the page. */ export interface VisibleSecurityState { /** * The security level of the page. */ securityState: SecurityState; /** * Security state details about the page certificate. */ certificateSecurityState?: CertificateSecurityState; /** * The type of Safety Tip triggered on the page. Note that this field will be set even if the Safety Tip UI was not actually shown. */ safetyTipInfo?: SafetyTipInfo; /** * Array of security state issues ids. */ securityStateIssueIds: string[]; } /** * An explanation of an factor contributing to the security state. */ export interface SecurityStateExplanation { /** * Security state representing the severity of the factor being explained. */ securityState: SecurityState; /** * Title describing the type of factor. */ title: string; /** * Short phrase describing the type of factor. */ summary: string; /** * Full text explanation of the factor. */ description: string; /** * The type of mixed content described by the explanation. */ mixedContentType: MixedContentType; /** * Page certificate. */ certificate: string[]; /** * Recommendations to fix any issues. */ recommendations?: string[]; } /** * Information about insecure content on the page. */ export interface InsecureContentStatus { /** * Always false. */ ranMixedContent: boolean; /** * Always false. */ displayedMixedContent: boolean; /** * Always false. */ containedMixedForm: boolean; /** * Always false. */ ranContentWithCertErrors: boolean; /** * Always false. */ displayedContentWithCertErrors: boolean; /** * Always set to unknown. */ ranInsecureContentStyle: SecurityState; /** * Always set to unknown. */ displayedInsecureContentStyle: SecurityState; } /** * The action to take when a certificate error occurs. continue will continue processing the * request and cancel will cancel the request. */ export type CertificateErrorAction = "continue" | "cancel"; export interface SetIgnoreCertificateErrorsRequest { /** * If true, all certificate errors will be ignored. */ ignore: boolean; } export interface HandleCertificateErrorRequest { /** * The ID of the event. */ eventId: integer; /** * The action to take on the certificate error. */ action: CertificateErrorAction; } export interface SetOverrideCertificateErrorsRequest { /** * If true, certificate errors will be overridden. */ override: boolean; } /** * There is a certificate error. If overriding certificate errors is enabled, then it should be * handled with the `handleCertificateError` command. Note: this event does not fire if the * certificate error has been allowed internally. Only one client per target should override * certificate errors at the same time. */ export interface CertificateErrorEvent { /** * The ID of the event. */ eventId: integer; /** * The type of the error. */ errorType: string; /** * The url that was requested. */ requestURL: string; } /** * The security state of the page changed. */ export interface VisibleSecurityStateChangedEvent { /** * Security state information about the page. */ visibleSecurityState: VisibleSecurityState; } /** * The security state of the page changed. No longer being sent. */ export interface SecurityStateChangedEvent { /** * Security state. */ securityState: SecurityState; /** * True if the page was loaded over cryptographic transport such as HTTPS. */ schemeIsCryptographic: boolean; /** * Previously a list of explanations for the security state. Now always * empty. */ explanations: SecurityStateExplanation[]; /** * Information about insecure content on the page. */ insecureContentStatus: InsecureContentStatus; /** * Overrides user-visible description of the state. Always omitted. */ summary?: string; } } export namespace ServiceWorker { export type RegistrationID = string; /** * ServiceWorker registration. */ export interface ServiceWorkerRegistration { registrationId: RegistrationID; scopeURL: string; isDeleted: boolean; } export type ServiceWorkerVersionRunningStatus = | "stopped" | "starting" | "running" | "stopping"; export type ServiceWorkerVersionStatus = | "new" | "installing" | "installed" | "activating" | "activated" | "redundant"; /** * ServiceWorker version. */ export interface ServiceWorkerVersion { versionId: string; registrationId: RegistrationID; scriptURL: string; runningStatus: ServiceWorkerVersionRunningStatus; status: ServiceWorkerVersionStatus; /** * The Last-Modified header value of the main script. */ scriptLastModified?: number; /** * The time at which the response headers of the main script were received from the server. * For cached script it is the last time the cache entry was validated. */ scriptResponseTime?: number; controlledClients?: Target.TargetID[]; targetId?: Target.TargetID; } /** * ServiceWorker error message. */ export interface ServiceWorkerErrorMessage { errorMessage: string; registrationId: RegistrationID; versionId: string; sourceURL: string; lineNumber: integer; columnNumber: integer; } export interface DeliverPushMessageRequest { origin: string; registrationId: RegistrationID; data: string; } export interface DispatchSyncEventRequest { origin: string; registrationId: RegistrationID; tag: string; lastChance: boolean; } export interface DispatchPeriodicSyncEventRequest { origin: string; registrationId: RegistrationID; tag: string; } export interface InspectWorkerRequest { versionId: string; } export interface SetForceUpdateOnPageLoadRequest { forceUpdateOnPageLoad: boolean; } export interface SkipWaitingRequest { scopeURL: string; } export interface StartWorkerRequest { scopeURL: string; } export interface StopWorkerRequest { versionId: string; } export interface UnregisterRequest { scopeURL: string; } export interface UpdateRegistrationRequest { scopeURL: string; } export interface WorkerErrorReportedEvent { errorMessage: ServiceWorkerErrorMessage; } export interface WorkerRegistrationUpdatedEvent { registrations: ServiceWorkerRegistration[]; } export interface WorkerVersionUpdatedEvent { versions: ServiceWorkerVersion[]; } } export namespace Storage { export type SerializedStorageKey = string; /** * Enum of possible storage types. */ export type StorageType = | "appcache" | "cookies" | "file_systems" | "indexeddb" | "local_storage" | "shader_cache" | "websql" | "service_workers" | "cache_storage" | "interest_groups" | "all" | "other"; /** * Usage for a storage type. */ export interface UsageForType { /** * Name of storage type. */ storageType: StorageType; /** * Storage usage (bytes). */ usage: number; } /** * Pair of issuer origin and number of available (signed, but not used) Trust * Tokens from that issuer. */ export interface TrustTokens { issuerOrigin: string; count: number; } /** * Enum of interest group access types. */ export type InterestGroupAccessType = | "join" | "leave" | "update" | "bid" | "win"; /** * Ad advertising element inside an interest group. */ export interface InterestGroupAd { renderUrl: string; metadata?: string; } /** * The full details of an interest group. */ export interface InterestGroupDetails { ownerOrigin: string; name: string; expirationTime: Network.TimeSinceEpoch; joiningOrigin: string; biddingUrl?: string; biddingWasmHelperUrl?: string; updateUrl?: string; trustedBiddingSignalsUrl?: string; trustedBiddingSignalsKeys: string[]; userBiddingSignals?: string; ads: InterestGroupAd[]; adComponents: InterestGroupAd[]; } export interface GetStorageKeyForFrameRequest { frameId: Page.FrameId; } export interface GetStorageKeyForFrameResponse { storageKey: SerializedStorageKey; } export interface ClearDataForOriginRequest { /** * Security origin. */ origin: string; /** * Comma separated list of StorageType to clear. */ storageTypes: string; } export interface GetCookiesRequest { /** * Browser context to use when called on the browser endpoint. */ browserContextId?: Browser.BrowserContextID; } export interface GetCookiesResponse { /** * Array of cookie objects. */ cookies: Network.Cookie[]; } export interface SetCookiesRequest { /** * Cookies to be set. */ cookies: Network.CookieParam[]; /** * Browser context to use when called on the browser endpoint. */ browserContextId?: Browser.BrowserContextID; } export interface ClearCookiesRequest { /** * Browser context to use when called on the browser endpoint. */ browserContextId?: Browser.BrowserContextID; } export interface GetUsageAndQuotaRequest { /** * Security origin. */ origin: string; } export interface GetUsageAndQuotaResponse { /** * Storage usage (bytes). */ usage: number; /** * Storage quota (bytes). */ quota: number; /** * Whether or not the origin has an active storage quota override */ overrideActive: boolean; /** * Storage usage per type (bytes). */ usageBreakdown: UsageForType[]; } export interface OverrideQuotaForOriginRequest { /** * Security origin. */ origin: string; /** * The quota size (in bytes) to override the original quota with. * If this is called multiple times, the overridden quota will be equal to * the quotaSize provided in the final call. If this is called without * specifying a quotaSize, the quota will be reset to the default value for * the specified origin. If this is called multiple times with different * origins, the override will be maintained for each origin until it is * disabled (called without a quotaSize). */ quotaSize?: number; } export interface TrackCacheStorageForOriginRequest { /** * Security origin. */ origin: string; } export interface TrackIndexedDBForOriginRequest { /** * Security origin. */ origin: string; } export interface UntrackCacheStorageForOriginRequest { /** * Security origin. */ origin: string; } export interface UntrackIndexedDBForOriginRequest { /** * Security origin. */ origin: string; } export interface GetTrustTokensResponse { tokens: TrustTokens[]; } export interface ClearTrustTokensRequest { issuerOrigin: string; } export interface ClearTrustTokensResponse { /** * True if any tokens were deleted, false otherwise. */ didDeleteTokens: boolean; } export interface GetInterestGroupDetailsRequest { ownerOrigin: string; name: string; } export interface GetInterestGroupDetailsResponse { details: InterestGroupDetails; } export interface SetInterestGroupTrackingRequest { enable: boolean; } /** * A cache's contents have been modified. */ export interface CacheStorageContentUpdatedEvent { /** * Origin to update. */ origin: string; /** * Name of cache in origin. */ cacheName: string; } /** * A cache has been added/deleted. */ export interface CacheStorageListUpdatedEvent { /** * Origin to update. */ origin: string; } /** * The origin's IndexedDB object store has been modified. */ export interface IndexedDBContentUpdatedEvent { /** * Origin to update. */ origin: string; /** * Database to update. */ databaseName: string; /** * ObjectStore to update. */ objectStoreName: string; } /** * The origin's IndexedDB database list has been modified. */ export interface IndexedDBListUpdatedEvent { /** * Origin to update. */ origin: string; } /** * One of the interest groups was accessed by the associated page. */ export interface InterestGroupAccessedEvent { accessTime: Network.TimeSinceEpoch; type: InterestGroupAccessType; ownerOrigin: string; name: string; } } /** * The SystemInfo domain defines methods and events for querying low-level system information. */ export namespace SystemInfo { /** * Describes a single graphics processor (GPU). */ export interface GPUDevice { /** * PCI ID of the GPU vendor, if available; 0 otherwise. */ vendorId: number; /** * PCI ID of the GPU device, if available; 0 otherwise. */ deviceId: number; /** * Sub sys ID of the GPU, only available on Windows. */ subSysId?: number; /** * Revision of the GPU, only available on Windows. */ revision?: number; /** * String description of the GPU vendor, if the PCI ID is not available. */ vendorString: string; /** * String description of the GPU device, if the PCI ID is not available. */ deviceString: string; /** * String description of the GPU driver vendor. */ driverVendor: string; /** * String description of the GPU driver version. */ driverVersion: string; } /** * Describes the width and height dimensions of an entity. */ export interface Size { /** * Width in pixels. */ width: integer; /** * Height in pixels. */ height: integer; } /** * Describes a supported video decoding profile with its associated minimum and * maximum resolutions. */ export interface VideoDecodeAcceleratorCapability { /** * Video codec profile that is supported, e.g. VP9 Profile 2. */ profile: string; /** * Maximum video dimensions in pixels supported for this |profile|. */ maxResolution: Size; /** * Minimum video dimensions in pixels supported for this |profile|. */ minResolution: Size; } /** * Describes a supported video encoding profile with its associated maximum * resolution and maximum framerate. */ export interface VideoEncodeAcceleratorCapability { /** * Video codec profile that is supported, e.g H264 Main. */ profile: string; /** * Maximum video dimensions in pixels supported for this |profile|. */ maxResolution: Size; /** * Maximum encoding framerate in frames per second supported for this * |profile|, as fraction's numerator and denominator, e.g. 24/1 fps, * 24000/1001 fps, etc. */ maxFramerateNumerator: integer; maxFramerateDenominator: integer; } /** * YUV subsampling type of the pixels of a given image. */ export type SubsamplingFormat = "yuv420" | "yuv422" | "yuv444"; /** * Image format of a given image. */ export type ImageType = "jpeg" | "webp" | "unknown"; /** * Describes a supported image decoding profile with its associated minimum and * maximum resolutions and subsampling. */ export interface ImageDecodeAcceleratorCapability { /** * Image coded, e.g. Jpeg. */ imageType: ImageType; /** * Maximum supported dimensions of the image in pixels. */ maxDimensions: Size; /** * Minimum supported dimensions of the image in pixels. */ minDimensions: Size; /** * Optional array of supported subsampling formats, e.g. 4:2:0, if known. */ subsamplings: SubsamplingFormat[]; } /** * Provides information about the GPU(s) on the system. */ export interface GPUInfo { /** * The graphics devices on the system. any 0 is the primary GPU. */ devices: GPUDevice[]; /** * An optional dictionary of additional GPU related attributes. */ auxAttributes?: any; /** * An optional dictionary of graphics features and their status. */ featureStatus?: any; /** * An optional array of GPU driver bug workarounds. */ driverBugWorkarounds: string[]; /** * Supported accelerated video decoding capabilities. */ videoDecoding: VideoDecodeAcceleratorCapability[]; /** * Supported accelerated video encoding capabilities. */ videoEncoding: VideoEncodeAcceleratorCapability[]; /** * Supported accelerated image decoding capabilities. */ imageDecoding: ImageDecodeAcceleratorCapability[]; } /** * Represents process info. */ export interface ProcessInfo { /** * Specifies process type. */ type: string; /** * Specifies process id. */ id: integer; /** * Specifies cumulative CPU usage in seconds across all threads of the * process since the process start. */ cpuTime: number; } export interface GetInfoResponse { /** * Information about the GPUs on the system. */ gpu: GPUInfo; /** * A platform-dependent description of the model of the machine. On Mac OS, this is, for * example, 'MacBookPro'. Will be the empty string if not supported. */ modelName: string; /** * A platform-dependent description of the version of the machine. On Mac OS, this is, for * example, '10.1'. Will be the empty string if not supported. */ modelVersion: string; /** * The command line string used to launch the browser. Will be the empty string if not * supported. */ commandLine: string; } export interface GetProcessInfoResponse { /** * An array of process info blocks. */ processInfo: ProcessInfo[]; } } /** * Supports additional targets discovery and allows to attach to them. */ export namespace Target { export type TargetID = string; /** * Unique identifier of attached debugging session. */ export type SessionID = string; export interface TargetInfo { targetId: TargetID; type: string; title: string; url: string; /** * Whether the target has an attached client. */ attached: boolean; /** * Opener target Id */ openerId?: TargetID; /** * Whether the target has access to the originating window. */ canAccessOpener: boolean; /** * Frame id of originating window (is only set if target has an opener). */ openerFrameId?: Page.FrameId; browserContextId?: Browser.BrowserContextID; } export interface RemoteLocation { host: string; port: integer; } export interface ActivateTargetRequest { targetId: TargetID; } export interface AttachToTargetRequest { targetId: TargetID; /** * Enables "flat" access to the session via specifying sessionId attribute in the commands. * We plan to make this the default, deprecate non-flattened mode, * and eventually retire it. See crbug.com/991325. */ flatten?: boolean; } export interface AttachToTargetResponse { /** * Id assigned to the session. */ sessionId: SessionID; } export interface AttachToBrowserTargetResponse { /** * Id assigned to the session. */ sessionId: SessionID; } export interface CloseTargetRequest { targetId: TargetID; } export interface CloseTargetResponse { /** * Always set to true. If an error occurs, the response indicates protocol error. */ success: boolean; } export interface ExposeDevToolsProtocolRequest { targetId: TargetID; /** * Binding name, 'cdp' if not specified. */ bindingName?: string; } export interface CreateBrowserContextRequest { /** * If specified, disposes this context when debugging session disconnects. */ disposeOnDetach?: boolean; /** * Proxy server, similar to the one passed to --proxy-server */ proxyServer?: string; /** * Proxy bypass list, similar to the one passed to --proxy-bypass-list */ proxyBypassList?: string; /** * An optional list of origins to grant unlimited cross-origin access to. * Parts of the URL other than those constituting origin are ignored. */ originsWithUniversalNetworkAccess?: string[]; } export interface CreateBrowserContextResponse { /** * The id of the context created. */ browserContextId: Browser.BrowserContextID; } export interface GetBrowserContextsResponse { /** * An array of browser context ids. */ browserContextIds: Browser.BrowserContextID[]; } export interface CreateTargetRequest { /** * The initial URL the page will be navigated to. An empty string indicates about:blank. */ url: string; /** * Frame width in DIP (headless chrome only). */ width?: integer; /** * Frame height in DIP (headless chrome only). */ height?: integer; /** * The browser context to create the page in. */ browserContextId?: Browser.BrowserContextID; /** * Whether BeginFrames for this target will be controlled via DevTools (headless chrome only, * not supported on MacOS yet, false by default). */ enableBeginFrameControl?: boolean; /** * Whether to create a new Window or Tab (chrome-only, false by default). */ newWindow?: boolean; /** * Whether to create the target in background or foreground (chrome-only, * false by default). */ background?: boolean; } export interface CreateTargetResponse { /** * The id of the page opened. */ targetId: TargetID; } export interface DetachFromTargetRequest { /** * Session to detach. */ sessionId?: SessionID; /** * Deprecated. */ targetId?: TargetID; } export interface DisposeBrowserContextRequest { browserContextId: Browser.BrowserContextID; } export interface GetTargetInfoRequest { targetId?: TargetID; } export interface GetTargetInfoResponse { targetInfo: TargetInfo; } export interface GetTargetsResponse { /** * The list of targets. */ targetInfos: TargetInfo[]; } export interface SendMessageToTargetRequest { message: string; /** * Identifier of the session. */ sessionId?: SessionID; /** * Deprecated. */ targetId?: TargetID; } export interface SetAutoAttachRequest { /** * Whether to auto-attach to related targets. */ autoAttach: boolean; /** * Whether to pause new targets when attaching to them. Use `Runtime.runIfWaitingForDebugger` * to run paused targets. */ waitForDebuggerOnStart: boolean; /** * Enables "flat" access to the session via specifying sessionId attribute in the commands. * We plan to make this the default, deprecate non-flattened mode, * and eventually retire it. See crbug.com/991325. */ flatten?: boolean; } export interface AutoAttachRelatedRequest { targetId: TargetID; /** * Whether to pause new targets when attaching to them. Use `Runtime.runIfWaitingForDebugger` * to run paused targets. */ waitForDebuggerOnStart: boolean; } export interface SetDiscoverTargetsRequest { /** * Whether to discover available targets. */ discover: boolean; } export interface SetRemoteLocationsRequest { /** * List of remote locations. */ locations: RemoteLocation[]; } /** * Issued when attached to target because of auto-attach or `attachToTarget` command. */ export interface AttachedToTargetEvent { /** * Identifier assigned to the session used to send/receive messages. */ sessionId: SessionID; targetInfo: TargetInfo; waitingForDebugger: boolean; } /** * Issued when detached from target for any reason (including `detachFromTarget` command). Can be * issued multiple times per target if multiple sessions have been attached to it. */ export interface DetachedFromTargetEvent { /** * Detached session identifier. */ sessionId: SessionID; /** * Deprecated. */ targetId?: TargetID; } /** * Notifies about a new protocol message received from the session (as reported in * `attachedToTarget` event). */ export interface ReceivedMessageFromTargetEvent { /** * Identifier of a session which sends a message. */ sessionId: SessionID; message: string; /** * Deprecated. */ targetId?: TargetID; } /** * Issued when a possible inspection target is created. */ export interface TargetCreatedEvent { targetInfo: TargetInfo; } /** * Issued when a target is destroyed. */ export interface TargetDestroyedEvent { targetId: TargetID; } /** * Issued when a target has crashed. */ export interface TargetCrashedEvent { targetId: TargetID; /** * Termination status type. */ status: string; /** * Termination error code. */ errorCode: integer; } /** * Issued when some information about a target has changed. This only happens between * `targetCreated` and `targetDestroyed`. */ export interface TargetInfoChangedEvent { targetInfo: TargetInfo; } } /** * The Tethering domain defines methods and events for browser port binding. */ export namespace Tethering { export interface BindRequest { /** * Port number to bind. */ port: integer; } export interface UnbindRequest { /** * Port number to unbind. */ port: integer; } /** * Informs that port was successfully bound and got a specified connection id. */ export interface AcceptedEvent { /** * Port number that was successfully bound. */ port: integer; /** * Connection id to be used. */ connectionId: string; } } export namespace Tracing { /** * Configuration for memory dump. Used only when "memory-infra" category is enabled. */ export interface MemoryDumpConfig { [key: string]: string; } export const enum TraceConfigRecordMode { RecordUntilFull = "recordUntilFull", RecordContinuously = "recordContinuously", RecordAsMuchAsPossible = "recordAsMuchAsPossible", EchoToConsole = "echoToConsole", } export interface TraceConfig { /** * Controls how the trace buffer stores data. (TraceConfigRecordMode enum) */ recordMode?: | "recordUntilFull" | "recordContinuously" | "recordAsMuchAsPossible" | "echoToConsole"; /** * Size of the trace buffer in kilobytes. If not specified or zero is passed, a default value * of 200 MB would be used. */ traceBufferSizeInKb?: number; /** * Turns on JavaScript stack sampling. */ enableSampling?: boolean; /** * Turns on system tracing. */ enableSystrace?: boolean; /** * Turns on argument filter. */ enableArgumentFilter?: boolean; /** * Included category filters. */ includedCategories?: string[]; /** * Excluded category filters. */ excludedCategories?: string[]; /** * Configuration to synthesize the delays in tracing. */ syntheticDelays?: string[]; /** * Configuration for memory dump triggers. Used only when "memory-infra" category is enabled. */ memoryDumpConfig?: MemoryDumpConfig; } /** * Data format of a trace. Can be either the legacy JSON format or the * protocol buffer format. Note that the JSON format will be deprecated soon. */ export type StreamFormat = "json" | "proto"; /** * Compression type to use for traces returned via streams. */ export type StreamCompression = "none" | "gzip"; /** * Details exposed when memory request explicitly declared. * Keep consistent with memory_dump_request_args.h and * memory_instrumentation.mojom */ export type MemoryDumpLevelOfDetail = "background" | "light" | "detailed"; /** * Backend type to use for tracing. `chrome` uses the Chrome-integrated * tracing service and is supported on all platforms. `system` is only * supported on Chrome OS and uses the Perfetto system tracing service. * `auto` chooses `system` when the perfettoConfig provided to Tracing.start * specifies at least one non-Chrome data source; otherwise uses `chrome`. */ export type TracingBackend = "auto" | "chrome" | "system"; export interface GetCategoriesResponse { /** * A list of supported tracing categories. */ categories: string[]; } export interface RecordClockSyncMarkerRequest { /** * The ID of this clock sync marker */ syncId: string; } export interface RequestMemoryDumpRequest { /** * Enables more deterministic results by forcing garbage collection */ deterministic?: boolean; /** * Specifies level of details in memory dump. Defaults to "detailed". */ levelOfDetail?: MemoryDumpLevelOfDetail; } export interface RequestMemoryDumpResponse { /** * GUID of the resulting global memory dump. */ dumpGuid: string; /** * True iff the global memory dump succeeded. */ success: boolean; } export const enum StartRequestTransferMode { ReportEvents = "ReportEvents", ReturnAsStream = "ReturnAsStream", } export interface StartRequest { /** * Category/tag filter */ categories?: string; /** * Tracing options */ options?: string; /** * If set, the agent will issue bufferUsage events at this interval, specified in milliseconds */ bufferUsageReportingInterval?: number; /** * Whether to report trace events as series of dataCollected events or to save trace to a * stream (defaults to `ReportEvents`). (StartRequestTransferMode enum) */ transferMode?: "ReportEvents" | "ReturnAsStream"; /** * Trace data format to use. This only applies when using `ReturnAsStream` * transfer mode (defaults to `json`). */ streamFormat?: StreamFormat; /** * Compression format to use. This only applies when using `ReturnAsStream` * transfer mode (defaults to `none`) */ streamCompression?: StreamCompression; traceConfig?: TraceConfig; /** * Base64-encoded serialized perfetto.protos.TraceConfig protobuf message * When specified, the parameters `categories`, `options`, `traceConfig` * are ignored. (Encoded as a base64 string when passed over JSON) */ perfettoConfig?: string; /** * Backend type (defaults to `auto`) */ tracingBackend?: TracingBackend; } export interface BufferUsageEvent { /** * A number in range [0..1] that indicates the used size of event buffer as a fraction of its * total size. */ percentFull?: number; /** * An approximate number of events in the trace log. */ eventCount?: number; /** * A number in range [0..1] that indicates the used size of event buffer as a fraction of its * total size. */ value?: number; } /** * Contains an bucket of collected trace events. When tracing is stopped collected events will be * send as a sequence of dataCollected events followed by tracingComplete event. */ export interface DataCollectedEvent { value: any[]; } /** * Signals that tracing is stopped and there is no trace buffers pending flush, all data were * delivered via dataCollected events. */ export interface TracingCompleteEvent { /** * Indicates whether some trace data is known to have been lost, e.g. because the trace ring * buffer wrapped around. */ dataLossOccurred: boolean; /** * A handle of the stream that holds resulting trace data. */ stream?: IO.StreamHandle; /** * Trace data format of returned stream. */ traceFormat?: StreamFormat; /** * Compression format of returned stream. */ streamCompression?: StreamCompression; } } /** * A domain for letting clients substitute browser's network layer with client code. */ export namespace Fetch { /** * Unique request identifier. */ export type RequestId = string; /** * Stages of the request to handle. Request will intercept before the request is * sent. Response will intercept after the response is received (but before response * body is received). */ export type RequestStage = "Request" | "Response"; export interface RequestPattern { /** * Wildcards (`'*'` -> zero or more, `'?'` -> exactly one) are allowed. Escape character is * backslash. Omitting is equivalent to `"*"`. */ urlPattern?: string; /** * If set, only requests for matching resource types will be intercepted. */ resourceType?: Network.ResourceType; /** * Stage at which to begin intercepting requests. Default is Request. */ requestStage?: RequestStage; } /** * Response HTTP header entry */ export interface HeaderEntry { name: string; value: string; } export const enum AuthChallengeSource { Server = "Server", Proxy = "Proxy", } /** * Authorization challenge for HTTP status code 401 or 407. */ export interface AuthChallenge { /** * Source of the authentication challenge. (AuthChallengeSource enum) */ source?: "Server" | "Proxy"; /** * Origin of the challenger. */ origin: string; /** * The authentication scheme used, such as basic or digest */ scheme: string; /** * The realm of the challenge. May be empty. */ realm: string; } export const enum AuthChallengeResponseResponse { Default = "Default", CancelAuth = "CancelAuth", ProvideCredentials = "ProvideCredentials", } /** * Response to an AuthChallenge. */ export interface AuthChallengeResponse { /** * The decision on what to do in response to the authorization challenge. Default means * deferring to the default behavior of the net stack, which will likely either the Cancel * authentication or display a popup dialog box. (AuthChallengeResponseResponse enum) */ response: "Default" | "CancelAuth" | "ProvideCredentials"; /** * The username to provide, possibly empty. Should only be set if response is * ProvideCredentials. */ username?: string; /** * The password to provide, possibly empty. Should only be set if response is * ProvideCredentials. */ password?: string; } export interface EnableRequest { /** * If specified, only requests matching any of these patterns will produce * fetchRequested event and will be paused until clients response. If not set, * all requests will be affected. */ patterns?: RequestPattern[]; /** * If true, authRequired events will be issued and requests will be paused * expecting a call to continueWithAuth. */ handleAuthRequests?: boolean; } export interface FailRequestRequest { /** * An id the client received in requestPaused event. */ requestId: RequestId; /** * Causes the request to fail with the given reason. */ errorReason: Network.ErrorReason; } export interface FulfillRequestRequest { /** * An id the client received in requestPaused event. */ requestId: RequestId; /** * An HTTP response code. */ responseCode: integer; /** * Response headers. */ responseHeaders?: HeaderEntry[]; /** * Alternative way of specifying response headers as a \0-separated * series of name: value pairs. Prefer the above method unless you * need to represent some non-UTF8 values that can't be transmitted * over the protocol as text. (Encoded as a base64 string when passed over JSON) */ binaryResponseHeaders?: string; /** * A response body. If absent, original response body will be used if * the request is intercepted at the response stage and empty body * will be used if the request is intercepted at the request stage. (Encoded as a base64 string when passed over JSON) */ body?: string; /** * A textual representation of responseCode. * If absent, a standard phrase matching responseCode is used. */ responsePhrase?: string; } export interface ContinueRequestRequest { /** * An id the client received in requestPaused event. */ requestId: RequestId; /** * If set, the request url will be modified in a way that's not observable by page. */ url?: string; /** * If set, the request method is overridden. */ method?: string; /** * If set, overrides the post data in the request. (Encoded as a base64 string when passed over JSON) */ postData?: string; /** * If set, overrides the request headers. */ headers?: HeaderEntry[]; /** * If set, overrides response interception behavior for this request. */ interceptResponse?: boolean; } export interface ContinueWithAuthRequest { /** * An id the client received in authRequired event. */ requestId: RequestId; /** * Response to with an authChallenge. */ authChallengeResponse: AuthChallengeResponse; } export interface ContinueResponseRequest { /** * An id the client received in requestPaused event. */ requestId: RequestId; /** * An HTTP response code. If absent, original response code will be used. */ responseCode?: integer; /** * A textual representation of responseCode. * If absent, a standard phrase matching responseCode is used. */ responsePhrase?: string; /** * Response headers. If absent, original response headers will be used. */ responseHeaders?: HeaderEntry[]; /** * Alternative way of specifying response headers as a \0-separated * series of name: value pairs. Prefer the above method unless you * need to represent some non-UTF8 values that can't be transmitted * over the protocol as text. (Encoded as a base64 string when passed over JSON) */ binaryResponseHeaders?: string; } export interface GetResponseBodyRequest { /** * Identifier for the intercepted request to get body for. */ requestId: RequestId; } export interface GetResponseBodyResponse { /** * Response body. */ body: string; /** * True, if content was sent as base64. */ base64Encoded: boolean; } export interface TakeResponseBodyAsStreamRequest { requestId: RequestId; } export interface TakeResponseBodyAsStreamResponse { stream: IO.StreamHandle; } /** * Issued when the domain is enabled and the request URL matches the * specified filter. The request is paused until the client responds * with one of continueRequest, failRequest or fulfillRequest. * The stage of the request can be determined by presence of responseErrorReason * and responseStatusCode -- the request is at the response stage if either * of these fields is present and in the request stage otherwise. */ export interface RequestPausedEvent { /** * Each request the page makes will have a unique id. */ requestId: RequestId; /** * The details of the request. */ request: Network.Request; /** * The id of the frame that initiated the request. */ frameId: Page.FrameId; /** * How the requested resource will be used. */ resourceType: Network.ResourceType; /** * Response error if intercepted at response stage. */ responseErrorReason?: Network.ErrorReason; /** * Response code if intercepted at response stage. */ responseStatusCode?: integer; /** * Response status text if intercepted at response stage. */ responseStatusText?: string; /** * Response headers if intercepted at the response stage. */ responseHeaders?: HeaderEntry[]; /** * If the intercepted request had a corresponding Network.requestWillBeSent event fired for it, * then this networkId will be the same as the requestId present in the requestWillBeSent event. */ networkId?: RequestId; } /** * Issued when the domain is enabled with handleAuthRequests set to true. * The request is paused until client responds with continueWithAuth. */ export interface AuthRequiredEvent { /** * Each request the page makes will have a unique id. */ requestId: RequestId; /** * The details of the request. */ request: Network.Request; /** * The id of the frame that initiated the request. */ frameId: Page.FrameId; /** * How the requested resource will be used. */ resourceType: Network.ResourceType; /** * Details of the Authorization Challenge encountered. * If this is set, client should respond with continueRequest that * contains AuthChallengeResponse. */ authChallenge: AuthChallenge; } } /** * This domain allows inspection of Web Audio API. * https://webaudio.github.io/web-audio-api/ */ export namespace WebAudio { /** * An unique ID for a graph object (AudioContext, AudioNode, AudioParam) in Web Audio API */ export type GraphObjectId = string; /** * Enum of BaseAudioContext types */ export type ContextType = "realtime" | "offline"; /** * Enum of AudioContextState from the spec */ export type ContextState = "suspended" | "running" | "closed"; /** * Enum of AudioNode types */ export type NodeType = string; /** * Enum of AudioNode::ChannelCountMode from the spec */ export type ChannelCountMode = "clamped-max" | "explicit" | "max"; /** * Enum of AudioNode::ChannelInterpretation from the spec */ export type ChannelInterpretation = "discrete" | "speakers"; /** * Enum of AudioParam types */ export type ParamType = string; /** * Enum of AudioParam::AutomationRate from the spec */ export type AutomationRate = "a-rate" | "k-rate"; /** * Fields in AudioContext that change in real-time. */ export interface ContextRealtimeData { /** * The current context time in second in BaseAudioContext. */ currentTime: number; /** * The time spent on rendering graph divided by render quantum duration, * and multiplied by 100. 100 means the audio renderer reached the full * capacity and glitch may occur. */ renderCapacity: number; /** * A running mean of callback interval. */ callbackIntervalMean: number; /** * A running variance of callback interval. */ callbackIntervalVariance: number; } /** * Protocol object for BaseAudioContext */ export interface BaseAudioContext { contextId: GraphObjectId; contextType: ContextType; contextState: ContextState; realtimeData?: ContextRealtimeData; /** * Platform-dependent callback buffer size. */ callbackBufferSize: number; /** * Number of output channels supported by audio hardware in use. */ maxOutputChannelCount: number; /** * Context sample rate. */ sampleRate: number; } /** * Protocol object for AudioListener */ export interface AudioListener { listenerId: GraphObjectId; contextId: GraphObjectId; } /** * Protocol object for AudioNode */ export interface AudioNode { nodeId: GraphObjectId; contextId: GraphObjectId; nodeType: NodeType; numberOfInputs: number; numberOfOutputs: number; channelCount: number; channelCountMode: ChannelCountMode; channelInterpretation: ChannelInterpretation; } /** * Protocol object for AudioParam */ export interface AudioParam { paramId: GraphObjectId; nodeId: GraphObjectId; contextId: GraphObjectId; paramType: ParamType; rate: AutomationRate; defaultValue: number; minValue: number; maxValue: number; } export interface GetRealtimeDataRequest { contextId: GraphObjectId; } export interface GetRealtimeDataResponse { realtimeData: ContextRealtimeData; } /** * Notifies that a new BaseAudioContext has been created. */ export interface ContextCreatedEvent { context: BaseAudioContext; } /** * Notifies that an existing BaseAudioContext will be destroyed. */ export interface ContextWillBeDestroyedEvent { contextId: GraphObjectId; } /** * Notifies that existing BaseAudioContext has changed some properties (id stays the same).. */ export interface ContextChangedEvent { context: BaseAudioContext; } /** * Notifies that the construction of an AudioListener has finished. */ export interface AudioListenerCreatedEvent { listener: AudioListener; } /** * Notifies that a new AudioListener has been created. */ export interface AudioListenerWillBeDestroyedEvent { contextId: GraphObjectId; listenerId: GraphObjectId; } /** * Notifies that a new AudioNode has been created. */ export interface AudioNodeCreatedEvent { node: AudioNode; } /** * Notifies that an existing AudioNode has been destroyed. */ export interface AudioNodeWillBeDestroyedEvent { contextId: GraphObjectId; nodeId: GraphObjectId; } /** * Notifies that a new AudioParam has been created. */ export interface AudioParamCreatedEvent { param: AudioParam; } /** * Notifies that an existing AudioParam has been destroyed. */ export interface AudioParamWillBeDestroyedEvent { contextId: GraphObjectId; nodeId: GraphObjectId; paramId: GraphObjectId; } /** * Notifies that two AudioNodes are connected. */ export interface NodesConnectedEvent { contextId: GraphObjectId; sourceId: GraphObjectId; destinationId: GraphObjectId; sourceOutputIndex?: number; destinationInputIndex?: number; } /** * Notifies that AudioNodes are disconnected. The destination can be null, and it means all the outgoing connections from the source are disconnected. */ export interface NodesDisconnectedEvent { contextId: GraphObjectId; sourceId: GraphObjectId; destinationId: GraphObjectId; sourceOutputIndex?: number; destinationInputIndex?: number; } /** * Notifies that an AudioNode is connected to an AudioParam. */ export interface NodeParamConnectedEvent { contextId: GraphObjectId; sourceId: GraphObjectId; destinationId: GraphObjectId; sourceOutputIndex?: number; } /** * Notifies that an AudioNode is disconnected to an AudioParam. */ export interface NodeParamDisconnectedEvent { contextId: GraphObjectId; sourceId: GraphObjectId; destinationId: GraphObjectId; sourceOutputIndex?: number; } } /** * This domain allows configuring virtual authenticators to test the WebAuthn * API. */ export namespace WebAuthn { export type AuthenticatorId = string; export type AuthenticatorProtocol = "u2f" | "ctap2"; export type Ctap2Version = "ctap2_0" | "ctap2_1"; export type AuthenticatorTransport = | "usb" | "nfc" | "ble" | "cable" | "internal"; export interface VirtualAuthenticatorOptions { protocol: AuthenticatorProtocol; /** * Defaults to ctap2_0. Ignored if |protocol| == u2f. */ ctap2Version?: Ctap2Version; transport: AuthenticatorTransport; /** * Defaults to false. */ hasResidentKey?: boolean; /** * Defaults to false. */ hasUserVerification?: boolean; /** * If set to true, the authenticator will support the largeBlob extension. * https://w3c.github.io/webauthn#largeBlob * Defaults to false. */ hasLargeBlob?: boolean; /** * If set to true, the authenticator will support the credBlob extension. * https://fidoalliance.org/specs/fido-v2.1-rd-20201208/fido-client-to-authenticator-protocol-v2.1-rd-20201208.html#sctn-credBlob-extension * Defaults to false. */ hasCredBlob?: boolean; /** * If set to true, the authenticator will support the minPinLength extension. * https://fidoalliance.org/specs/fido-v2.1-ps-20210615/fido-client-to-authenticator-protocol-v2.1-ps-20210615.html#sctn-minpinlength-extension * Defaults to false. */ hasMinPinLength?: boolean; /** * If set to true, tests of user presence will succeed immediately. * Otherwise, they will not be resolved. Defaults to true. */ automaticPresenceSimulation?: boolean; /** * Sets whether User Verification succeeds or fails for an authenticator. * Defaults to false. */ isUserVerified?: boolean; } export interface Credential { credentialId: string; isResidentCredential: boolean; /** * Relying Party ID the credential is scoped to. Must be set when adding a * credential. */ rpId?: string; /** * The ECDSA P-256 private key in PKCS#8 format. (Encoded as a base64 string when passed over JSON) */ privateKey: string; /** * An opaque byte sequence with a maximum size of 64 bytes mapping the * credential to a specific user. (Encoded as a base64 string when passed over JSON) */ userHandle?: string; /** * Signature counter. This is incremented by one for each successful * assertion. * See https://w3c.github.io/webauthn/#signature-counter */ signCount: integer; /** * The large blob associated with the credential. * See https://w3c.github.io/webauthn/#sctn-large-blob-extension (Encoded as a base64 string when passed over JSON) */ largeBlob?: string; } export interface EnableRequest { /** * Whether to enable the WebAuthn user interface. Enabling the UI is * recommended for debugging and demo purposes, as it is closer to the real * experience. Disabling the UI is recommended for automated testing. * Supported at the embedder's discretion if UI is available. * Defaults to false. */ enableUI?: boolean; } export interface AddVirtualAuthenticatorRequest { options: VirtualAuthenticatorOptions; } export interface AddVirtualAuthenticatorResponse { authenticatorId: AuthenticatorId; } export interface RemoveVirtualAuthenticatorRequest { authenticatorId: AuthenticatorId; } export interface AddCredentialRequest { authenticatorId: AuthenticatorId; credential: Credential; } export interface GetCredentialRequest { authenticatorId: AuthenticatorId; credentialId: string; } export interface GetCredentialResponse { credential: Credential; } export interface GetCredentialsRequest { authenticatorId: AuthenticatorId; } export interface GetCredentialsResponse { credentials: Credential[]; } export interface RemoveCredentialRequest { authenticatorId: AuthenticatorId; credentialId: string; } export interface ClearCredentialsRequest { authenticatorId: AuthenticatorId; } export interface SetUserVerifiedRequest { authenticatorId: AuthenticatorId; isUserVerified: boolean; } export interface SetAutomaticPresenceSimulationRequest { authenticatorId: AuthenticatorId; enabled: boolean; } } /** * This domain allows detailed inspection of media elements */ export namespace Media { /** * Players will get an ID that is unique within the agent context. */ export type PlayerId = string; export type Timestamp = number; export const enum PlayerMessageLevel { Error = "error", Warning = "warning", Info = "info", Debug = "debug", } /** * Have one type per entry in MediaLogRecord::Type * Corresponds to kMessage */ export interface PlayerMessage { /** * Keep in sync with MediaLogMessageLevel * We are currently keeping the message level 'error' separate from the * PlayerError type because right now they represent different things, * this one being a DVLOG(ERROR) style log message that gets printed * based on what log level is selected in the UI, and the other is a * representation of a media::PipelineStatus object. Soon however we're * going to be moving away from using PipelineStatus for errors and * introducing a new error type which should hopefully let us integrate * the error log level into the PlayerError type. (PlayerMessageLevel enum) */ level: "error" | "warning" | "info" | "debug"; message: string; } /** * Corresponds to kMediaPropertyChange */ export interface PlayerProperty { name: string; value: string; } /** * Corresponds to kMediaEventTriggered */ export interface PlayerEvent { timestamp: Timestamp; value: string; } /** * Represents logged source line numbers reported in an error. * NOTE: file and line are from chromium c++ implementation code, not js. */ export interface PlayerErrorSourceLocation { file: string; line: integer; } /** * Corresponds to kMediaError */ export interface PlayerError { errorType: string; /** * Code is the numeric enum entry for a specific set of error codes, such * as PipelineStatusCodes in media/base/pipeline_status.h */ code: integer; /** * A trace of where this error was caused / where it passed through. */ stack: PlayerErrorSourceLocation[]; /** * Errors potentially have a root cause error, ie, a DecoderError might be * caused by an WindowsError */ cause: PlayerError[]; /** * Extra data attached to an error, such as an HRESULT, Video Codec, etc. */ data: any; } /** * This can be called multiple times, and can be used to set / override / * remove player properties. A null propValue indicates removal. */ export interface PlayerPropertiesChangedEvent { playerId: PlayerId; properties: PlayerProperty[]; } /** * Send events as a list, allowing them to be batched on the browser for less * congestion. If batched, events must ALWAYS be in chronological order. */ export interface PlayerEventsAddedEvent { playerId: PlayerId; events: PlayerEvent[]; } /** * Send a list of any messages that need to be delivered. */ export interface PlayerMessagesLoggedEvent { playerId: PlayerId; messages: PlayerMessage[]; } /** * Send a list of any errors that need to be delivered. */ export interface PlayerErrorsRaisedEvent { playerId: PlayerId; errors: PlayerError[]; } /** * Called whenever a player is created, or when a new agent joins and receives * a list of active players. If an agent is restored, it will receive the full * list of player ids and all events again. */ export interface PlayersCreatedEvent { players: PlayerId[]; } }}
export default Protocol;