diff --git a/DEPS b/DEPS index f1d2408..e10d77e 100644 --- a/DEPS +++ b/DEPS
@@ -306,15 +306,15 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling Skia # and whatever else without interference from each other. - 'skia_revision': '0908f546bfd9e369787d100811fd27d40f09f317', + 'skia_revision': '7c6b9495b415e59d866df8d10f930b1d34654887', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling V8 # and whatever else without interference from each other. - 'v8_revision': '34503e45094863db86a81e71dd4e9ebe0011d986', + 'v8_revision': '802e4aead6e7cf7f12b406e2cdb389334f7d3e3d', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling ANGLE # and whatever else without interference from each other. - 'angle_revision': '1bdb403899f2040a7b816b3261f13a48914d439c', + 'angle_revision': '9a70fc9046644c2a3b4bb1ea9f0e56fe19473941', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling SwiftShader # and whatever else without interference from each other. @@ -421,7 +421,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling feed # and whatever else without interference from each other. - 'dawn_revision': 'cdfcfcabd1400a1552ba7d3c6a92dbb28a83fd76', + 'dawn_revision': 'b268f525fc231d4f545ae9a40f002b46276bdd17', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling feed # and whatever else without interference from each other. @@ -497,7 +497,7 @@ # If you change this, also update the libc++ revision in # //buildtools/deps_revisions.gni. - 'libcxx_revision': '0ec946fa26f0ad25ad366e5f7acdec2ab8ceed2a', + 'libcxx_revision': '9e4e987c282a170f6daf8b3c8b52d101d2346f68', # GN CIPD package version. 'gn_version': 'git_revision:92e63272dc04ee7cc1eaae2633c25da06e4f9c03', @@ -821,7 +821,7 @@ 'src/clank': { 'url': Var('chrome_git') + '/clank/internal/apps.git' + '@' + - 'bdc4d4d785d044cf585fb255b69f7283eed1f721', + 'bd44c4cb90445bd38f361c33924f84a375e17f6f', 'condition': 'checkout_android and checkout_src_internal', }, @@ -1221,7 +1221,7 @@ Var('chromium_git') + '/devtools/devtools-frontend' + '@' + Var('devtools_frontend_revision'), 'src/third_party/devtools-frontend-internal': { - 'url': Var('chrome_git') + '/devtools/devtools-internal.git' + '@' + '5884a35e7f4cccefa590f690f1021d013b8bb06e', + 'url': Var('chrome_git') + '/devtools/devtools-internal.git' + '@' + '831ddb26c27ea70c10a67d34ddf4bd41276e667f', 'condition': 'checkout_src_internal', }, @@ -1831,7 +1831,7 @@ 'dep_type': 'cipd', }, - 'src/third_party/vulkan-deps': '{chromium_git}/vulkan-deps@2e96f5c2b566dc69b5f30295c85f5e6a19af60e5', + 'src/third_party/vulkan-deps': '{chromium_git}/vulkan-deps@860dca03b6e71b58e85a6fd261f40e487355008f', 'src/third_party/vulkan_memory_allocator': Var('chromium_git') + '/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator.git' + '@' + '56300b29fbfcc693ee6609ddad3fdd5b7a449a21', @@ -1871,7 +1871,7 @@ Var('chromium_git') + '/external/github.com/gpuweb/cts.git' + '@' + '6e75f19212e3deaebd5bd8542fe10a6fdedc0cdf', 'src/third_party/webrtc': - Var('webrtc_git') + '/src.git' + '@' + '5116ad58b15b7d56aecc377d06765c3200242b3e', + Var('webrtc_git') + '/src.git' + '@' + '2561dd307eaedb9baa8c0cde1fec26d627b777cf', # Wuffs' canonical repository is at github.com/google/wuffs, but we use # Skia's mirror of Wuffs, the same as in upstream Skia's DEPS file. @@ -1994,7 +1994,7 @@ 'packages': [ { 'package': 'chromeos_internal/apps/help_app/app', - 'version': 'SufN-kJqrnG5Gw46X9isgCkTtra-eoQF1DbloYnNgloC', + 'version': 'C2OtPysCbdQzrD5sPsG1pmOCxVEF4X0lY_a5DxsHzRIC', }, ], 'condition': 'checkout_chromeos and checkout_src_internal', @@ -2005,7 +2005,7 @@ 'packages': [ { 'package': 'chromeos_internal/apps/media_app/app', - 'version': 'iPP8IL6nqAxTXfcYLGP7X3EhX_Oe5VBD1NaoQBgaE2kC', + 'version': 'uCWInBZeShewO9ae6l-kt9I2thnc1yytoKUmv1J2gJ0C', }, ], 'condition': 'checkout_chromeos and checkout_src_internal', @@ -2038,7 +2038,7 @@ 'packages': [ { 'package': 'chromeos_internal/apps/projector_app/app', - 'version': 'yYKCrEgbq_ihHbGGhEs7ZNHlIcVOEOrUP6cZ64T3DasC', + 'version': 'Tf7tTFqaVGMj9g4gukXW1U76mI_hVII_fp4C9L2g5c8C', }, ], 'condition': 'checkout_chromeos and checkout_src_internal', @@ -4028,7 +4028,7 @@ 'src/ios_internal': { 'url': Var('chrome_git') + '/chrome/ios_internal.git' + '@' + - '48a0c3d37606ddb07e381e1239ac760e88096f1a', + 'c55e94d4564fb697d3d83fe9fcbafaffce2e139e', 'condition': 'checkout_ios and checkout_src_internal', },
diff --git a/buildtools/deps_revisions.gni b/buildtools/deps_revisions.gni index c3b6e476..a031801 100644 --- a/buildtools/deps_revisions.gni +++ b/buildtools/deps_revisions.gni
@@ -5,5 +5,5 @@ declare_args() { # Used to cause full rebuilds on libc++ rolls. This should be kept in sync # with the libcxx_revision vars in //DEPS. - libcxx_revision = "0ec946fa26f0ad25ad366e5f7acdec2ab8ceed2a" + libcxx_revision = "9e4e987c282a170f6daf8b3c8b52d101d2346f68" }
diff --git a/chrome/VERSION b/chrome/VERSION index e0acd2e7..378a02e9 100644 --- a/chrome/VERSION +++ b/chrome/VERSION
@@ -1,4 +1,4 @@ MAJOR=121 MINOR=0 -BUILD=6149 +BUILD=6151 PATCH=0
diff --git a/chrome/android/profiles/arm.newest.txt b/chrome/android/profiles/arm.newest.txt index 994a5d66..157b166 100644 --- a/chrome/android/profiles/arm.newest.txt +++ b/chrome/android/profiles/arm.newest.txt
@@ -1 +1 @@ -chromeos-chrome-arm-121.0.6146.0_rc-r1-merged.afdo.bz2 +chromeos-chrome-arm-121.0.6148.0_rc-r1-merged.afdo.bz2
diff --git a/chrome/android/profiles/newest.txt b/chrome/android/profiles/newest.txt index d9489d06..b36cf90c 100644 --- a/chrome/android/profiles/newest.txt +++ b/chrome/android/profiles/newest.txt
@@ -1 +1 @@ -chromeos-chrome-amd64-121.0.6146.0_rc-r1-merged.afdo.bz2 +chromeos-chrome-amd64-121.0.6148.0_rc-r1-merged.afdo.bz2
diff --git a/chrome/app/resources/chromium_strings_sk.xtb b/chrome/app/resources/chromium_strings_sk.xtb index 97b31c24..4056ab8 100644 --- a/chrome/app/resources/chromium_strings_sk.xtb +++ b/chrome/app/resources/chromium_strings_sk.xtb
@@ -38,7 +38,9 @@ <translation id="1715127912119967311">Chromium odosiela vaše interakcie s nimi Googlu, aby pomohol tieto funkcie zlepšovať. Tieto údaje môžu čítať, spracúvať a označovať poznámkami kontrolóri.</translation> <translation id="17264556997921157">Môžete si prezrieť témy záujmu, pomocou ktorých vám weby zobrazujú reklamy, a odstrániť ich. Chromium odhaduje záujmy na základe nedávnej histórie prehliadania.</translation> <translation id="1733725117201708356">Chromium čoskoro odstráni dáta prehliadania</translation> +<translation id="1736443181683099871">Chromium sa pokúsi inovovať navigácie na HTTPS</translation> <translation id="1745121272106313518">Chromium sa reštartuje o <ph name="REMAINING_TIME" /></translation> +<translation id="1749104137266986751">Keď HTTPS nie je k dispozícii, Chromium bude bez upozornenia používať nezabezpečené pripojenie</translation> <translation id="1774152462503052664">Povoliť prehliadaču Chromium spustenie na pozadí</translation> <translation id="1779356040007214683">Z dôvodu vyššej bezpečnosti prehliadača Chromium sme zakázali niektoré rozšírenia, ktoré nedodáva <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> a mohli byť pridané bez vášho vedomia.</translation> <translation id="1808667845054772817">Preinštalovať prehliadač Chromium</translation> @@ -126,6 +128,7 @@ <translation id="3286538390144397061">Reštartovať</translation> <translation id="328888136576916638">Chýbajú kľúče rozhrania Google API. Niektoré funkcie prehliadača Google Chromium budú zakázané.</translation> <translation id="3296368748942286671">Po zatvorení prehliadača Chromium ponechať spustené aplikácie na pozadí</translation> +<translation id="3313189106987092621">Chromium vás bude pred načítaním webu používajúceho nezabezpečené pripojenie upozorňovať</translation> <translation id="3350761136195634146">Profil prehliadača Chromium s týmto účtom už existuje</translation> <translation id="3387527074123400161">Chromium OS</translation> <translation id="3406848076815591792">Chcete prepnúť na existujúci profil prehliadača Chromium?</translation> @@ -223,6 +226,7 @@ <translation id="5224391634244552924">Žiadne uložené heslá. Chromium môže skontrolovať heslá, keď ich uložíte.</translation> <translation id="5252179775517634216">Používateľ <ph name="EXISTING_USER" /> je už do tohto profilu prehliadača Chromium prihlásený. Týmto sa vytvorí nový profil prehliadača Chromium pre <ph name="USER_EMAIL_ADDRESS" /></translation> <translation id="5277894862589591112">Ak chcete zmeny použiť, spustite Chromium znova</translation> +<translation id="5294316920224716406">Pri prehliadaní v režime inkognito vás bude Chromium pred načítaním webu používajúceho nezabezpečené pripojenie upozorňovať</translation> <translation id="5296845517486664001">Keď sú zapnuté skúšobné obdobia a ak vás Chromium náhodne zapojil do aktívneho skúšobného obdobia, vaša história prehliadania ovplyvňuje zobrazované reklamy a záujmy, ktoré sú odhadnuté nižšie. Chromium priebežne odstraňuje vaše záujmy každý mesiac, aby tak chránil vaše súkromie.</translation> <translation id="5352264705793813212">Prehliadač Chromium našiel niekoľko bezpečnostných odporúčaní, ktoré by ste si mali pozrieť</translation> <translation id="5358375970380395591">Prihlasujete sa pomocou spravovaného účtu a jeho správcovi dávate kontrolu nad vaším profilom Chromium. Vaše údaje prehliadača Chromium, ako sú aplikácie, záložky, história, heslá a iné nastavenia, sa natrvalo priradia k účtu <ph name="USER_NAME" />. Tieto údaje budete môcť odstrániť len pomocou panela Dashboard v Účtoch Google, ale nebudete ich môcť priradiť k inému účtu. <ph name="LEARN_MORE" /></translation>
diff --git a/chrome/app/resources/generated_resources_sk.xtb b/chrome/app/resources/generated_resources_sk.xtb index f39783f..0fc171e 100644 --- a/chrome/app/resources/generated_resources_sk.xtb +++ b/chrome/app/resources/generated_resources_sk.xtb
@@ -581,6 +581,7 @@ <translation id="1461041542809785877">Výkonnosť</translation> <translation id="1461177659295855031">Presunúť do priečinka panela so záložkami</translation> <translation id="1461288887896722288">Práve ste sa prihlásili do spravovaného účtu. Ak vytvoríte nový spravovaný profil, budete mať prístup k niektorým zdrojom prepojeným s týmto účtom.</translation> +<translation id="1461868306585780092">Upozorňovať pred použitím nezabezpečených pripojení</translation> <translation id="146219525117638703">Stav ONC</translation> <translation id="146220085323579959">Internet je odpojený. Skontrolujte svoje pripojenie k Internetu a skúste znova.</translation> <translation id="1462480037563370607">Manuálne pridanie webov</translation> @@ -1560,6 +1561,7 @@ <translation id="2180620921879609685">Blokovať obsah na akejkoľvek stránke</translation> <translation id="2181821976797666341">Pravidlá</translation> <translation id="2182058453334755893">Skopírované do schránky</translation> +<translation id="2182419606502127232">Zahrnúť moje denníky servera</translation> <translation id="2183570493397356669">Tlačidlo Pokračovať je deaktivované</translation> <translation id="2184515124301515068">Povoľte Chromu vyberať, kedy môžu weby prehrať zvuk (odporúčané)</translation> <translation id="2186206192313702726">Google Lens</translation> @@ -1753,6 +1755,7 @@ <translation id="2323018538045954000">Uložené siete Wi-Fi</translation> <translation id="2325444234681128157">Zapamätať si heslo</translation> <translation id="2326188115274135041">Potvrdením kódu PIN zapnite automatické odomykanie</translation> +<translation id="2326906096734221931">Otvoriť nastavenia aplikácie</translation> <translation id="2326931316514688470">&Znova načítať aplikáciu</translation> <translation id="2327492829706409234">Povoliť aplikáciu</translation> <translation id="2327920026543055248">Zadajte <ph name="CHARACTER" />. znak z <ph name="TOTAL" /></translation> @@ -3890,6 +3893,7 @@ <translation id="399788104667917863">Pripnúť na panel s nástrojmi</translation> <translation id="3998976413398910035">Spravovať tlačiarne</translation> <translation id="4001540981461989979">Zvýrazniť kurzor myši pri pohybe</translation> +<translation id="4002347779798688515">Stiahnutý profil sa možno nebude dať použiť, keď je poskytovateľ mobilnej siete uzamknutý. Ak potrebujete podporu, kontaktujte svojho poskytovateľa.</translation> <translation id="4002440992267487163">Nastavenie kódu PIN</translation> <translation id="4005817994523282006">Metóda zisťovania časového pásma</translation> <translation id="4007856537951125667">Skryť skratky</translation> @@ -5426,6 +5430,7 @@ <translation id="5261683757250193089">Otvoriť v Internetovom obchode</translation> <translation id="5261799091118902550">Tento súbor môže byť vírus alebo malvér. Môžete ho odoslať Googlu, ktorý skontroluje, či je bezpečný.</translation> <translation id="5262784498883614021">Automaticky pripojiť k sieti</translation> +<translation id="5263656105659419083">Na bočný panel sa ľahko vrátite kliknutím na Pripnúť vpravo hore</translation> <translation id="5264148714798105376">Môže to chvíľu trvať.</translation> <translation id="5264252276333215551">Ak chcete aplikáciu spustiť v režime verejného terminálu, pripojte sa k internetu.</translation> <translation id="5265797726250773323">Pri inštalácii sa vyskytla chyba</translation> @@ -5573,6 +5578,7 @@ <translation id="5388567882092991136">{NUM_SITES,plural, =1{Bol nájdený 1 web s množstvom upozornení}few{Boli nájdené {NUM_SITES} weby s množstvom upozornení}many{Found {NUM_SITES} sites with lots of notifications}other{Bolo nájdených {NUM_SITES} webov s množstvom upozornení}}</translation> <translation id="5388885445722491159">Spárované</translation> <translation id="5389626883706033615">Weby majú zablokované žiadať vás o používanie informácií, ktoré o vás uložili</translation> +<translation id="5389794555912875905">Zobrazovať upozornenia pred prejdením na nezabezpečené weby (odporúčané)</translation> <translation id="5390112241331447203">Zahŕňať súbor system_logs.txt odosielaný v hláseniach spätnej väzby</translation> <translation id="5390677308841849479">Tmavočervená a oranžová</translation> <translation id="5390743329570580756">Odoslať pre</translation> @@ -5856,6 +5862,7 @@ <translation id="5608580678041221894">Oblasť orezania môžete upraviť alebo presunúť klepnutím na nasledujúce klávesy</translation> <translation id="5609231933459083978">Aplikácia je pravdepodobne neplatná.</translation> <translation id="561030196642865721">Na tomto webe sú povolené súbory cookie tretích strán</translation> +<translation id="561236229031062396"><ph name="SHORTCUT_NAME" />, <ph name="APP_FULL_NAME" /></translation> <translation id="5612734644261457353">Je nám ľúto, stále sa nedarí overiť vaše heslo. Poznámka: Ak ste nedávno zmenili heslo, vaše nové heslo bude použité až po odhlásení. Použite svoje staré heslo.</translation> <translation id="5614190747811328134">Oznámenie pre používateľa</translation> <translation id="5614553682702429503">Uložiť heslo?</translation> @@ -6210,6 +6217,7 @@ <translation id="5901089233978050985">Prepnúť na zaznamenávanú kartu</translation> <translation id="5901494423252125310">Dvierka tlačiarne sú otvorené</translation> <translation id="5901630391730855834">Žltá</translation> +<translation id="5902892210366342391">Zobrazovať upozornenia pred prejdením na nezabezpečené weby v režime inkognito</translation> <translation id="5904614460720589786"><ph name="APP_NAME" /> sa nepodarilo nastaviť pre problém s konfiguráciou. Kontaktujte správcu. Kód chyby: <ph name="ERROR_CODE" />.</translation> <translation id="5906655207909574370">Aktualizácia je takmer hotová! Dokončite ju reštartovaním zariadenia.</translation> <translation id="5906732635754427568">Dáta priradené k danej aplikácii budú odstránené z tohto zariadenia.</translation> @@ -6747,6 +6755,7 @@ <translation id="6333170995003625229">Vašu e‑mailovú adresu alebo heslo sa nepodarilo overiť. Skúste sa prihlásiť znova.</translation> <translation id="6334267141726449402">Skopírujte a odošlite tento odkaz používateľovi, aby mohol zhromažďovať denníky.</translation> <translation id="6336038146639916978">Doména <ph name="MANAGER" /> deaktivovala ladenie ADB. Vaše zariadenie <ph name="DEVICE_TYPE" /> sa o 24 hodín resetuje. Zálohujte všetky súbory, ktoré si chcete ponechať.</translation> +<translation id="6336194758029258346">Jazyk aplikácie</translation> <translation id="6337543438445391085">V údajoch môžu byť stále zahrnuté niektoré osobné údaje. Nezabudnite skontrolovať exportované súbory.</translation> <translation id="6338968693068997776">Pridajte zariadenie USB</translation> <translation id="6339668969738228384">Vytvoriť nový profil pre používateľa <ph name="USER_EMAIL_ADDRESS" /></translation> @@ -7256,6 +7265,7 @@ <translation id="676158322851696513">„<ph name="EXTENSION_NAME" />“</translation> <translation id="6761623907967804682">Dáta webov v zariadení nie sú povolené</translation> <translation id="6762833852331690540">Zapnuté</translation> +<translation id="6762861159308991328">V nastaveniach aplikácie môžete zmeniť, ako sa odkazy otvárajú</translation> <translation id="676560328519657314">Vaše spôsoby platby v službe Google Pay</translation> <translation id="6766488013065406604">Prejsť do Správcu hesiel Google</translation> <translation id="6767566652486411142">Vybrať iný jazyk…</translation> @@ -7471,6 +7481,7 @@ <translation id="6912007319859991306">Kód PIN mobilnej SIM karty</translation> <translation id="6912380255120084882">Vyskúšajte iné zariadenie</translation> <translation id="691289340230098384">Predvoľby titulkov</translation> +<translation id="6914812290245989348">Nezobrazovať upozornenia pred prejdením na nezabezpečené weby</translation> <translation id="6916590542764765824">Spravovať rozšírenia</translation> <translation id="6918677045355889289">Vyžaduje sa aktualizácia systému Chrome OS</translation> <translation id="6919354101107095996">Skúste sa na webe prihlásiť. Potom položku stiahnite znova.</translation> @@ -8953,6 +8964,7 @@ <translation id="8076835018653442223">Prístup k miestnym súborom vo vašom zariadení zakázal správca</translation> <translation id="8077120325605624147">Všetky weby, ktoré navštívite, vám môžu zobrazovať ľubovoľné reklamy</translation> <translation id="8077579734294125741">Ďalšie profily Chromu</translation> +<translation id="80790299200510644">Vyhľadávanie podľa obrázkov</translation> <translation id="80798452873915119">Weby môžu žiadať o povolenie spravovať okná na všetkých obrazovkách</translation> <translation id="8080028325999236607">Zavrieť všetky karty</translation> <translation id="808089508890593134">Google</translation>
diff --git a/chrome/app/resources/google_chrome_strings_sk.xtb b/chrome/app/resources/google_chrome_strings_sk.xtb index 405c6e3..64d3f6d7 100644 --- a/chrome/app/resources/google_chrome_strings_sk.xtb +++ b/chrome/app/resources/google_chrome_strings_sk.xtb
@@ -99,6 +99,7 @@ <translation id="2556847002339236023">Ak sa Chrome nebude používať <ph name="TIMEOUT_DURATION" />, vaša organizácia ho zavrie. Dáta prehliadania boli odstránené. Môže to zahŕňať históriu, automatické dopĺňanie a stiahnuté súbory.</translation> <translation id="2559253115192232574">Neskôr môže web, ktorý navštívite, požiadať Chrome o vaše záujmy, aby vám mohol prispôsobiť zobrazované reklamy. Chrome môže zdieľať až tri záujmy.</translation> <translation id="2563121210305478421">Chcete Chrome znova spustiť?</translation> +<translation id="2569974318947988067">Chrome sa pokúsi inovovať navigácie na HTTPS</translation> <translation id="2574930892358684005">Používateľ <ph name="EXISTING_USER" /> je už do tohto profilu Chromu prihlásený. Ak chcete oddeliť svoje prehliadanie, Chrome vám môže vytvoriť vlastný profil.</translation> <translation id="2580411288591421699">Nie je možné nainštalovať rovnakú verziu prehliadača Google Chrome, ako je aktuálne spustená verzia. Zavrite Google Chrome a skúste znova.</translation> <translation id="2586406160782125153">Táto akcia odstráni zo zariadenia údaje prehliadania. Ak budete chcieť svoje údaje neskôr opäť načítať, prihláste sa do Chromu ako používateľ <ph name="USER_EMAIL" />.</translation> @@ -215,6 +216,7 @@ <translation id="4335235004908507846">Chrome vás môže chrániť pred porušeniami ochrany údajov, škodlivými rozšíreniami a ďalšími hrozbami</translation> <translation id="4343195214584226067">Rozšírenie <ph name="EXTENSION_NAME" /> bolo pridané do Chromu</translation> <translation id="4384570495110188418">Chrome nemôže skontrolovať heslá, pretože ste sa neprihlásili</translation> +<translation id="4389991535395284064">Pri prehliadaní v režime inkognito vás bude Chrome pred načítaním webu používajúceho nezabezpečené pripojenie upozorňovať</translation> <translation id="4393248995085527349">Ak chcete dostávať budúce aktualizácie prehliadača Google Chrome, musíte používať systém macOS 10.15 alebo novší. V tomto počítači používate macOS 10.13.</translation> <translation id="4427306783828095590">Rozšírená ochrana efektívnejšie blokuje phishing aj malvér</translation> <translation id="4450664632294415862">Chrome – prihlásenie do siete – <ph name="PAGE_TITLE" /></translation> @@ -387,6 +389,7 @@ <translation id="7426611252293106642">Google Chrome nemusí fungovať správne, pretože v tejto verzii systému Linux už nie je podporovaný</translation> <translation id="7449333426561673451">{COUNT,plural, =1{Vaša organizácia Chrome automaticky zavrie, keď sa nebude používať jednu minútu.}few{Vaša organizácia Chrome automaticky zavrie, keď sa nebude používať # minúty.}many{Vaša organizácia Chrome automaticky zavrie, keď sa nebude používať # minúty.}other{Vaša organizácia Chrome automaticky zavrie, keď sa nebude používať # minút.}}</translation> <translation id="7452987490177144319">{COUNT,plural, =1{Vaša organizácia automaticky odstráni dáta prehliadania, keď sa Chrome nebude používať jednu minútu. Môže v nich byť zahrnutá história, automatické dopĺňanie a stiahnuté súbory. Vaše karty zostanú otvorené.}few{Vaša organizácia automaticky odstráni dáta prehliadania, keď sa Chrome nebude používať # minúty. Môže v nich byť zahrnutá história, automatické dopĺňanie a stiahnuté súbory. Vaše karty zostanú otvorené.}many{Vaša organizácia automaticky odstráni dáta prehliadania, keď sa Chrome nebude používať # minúty. Môže v nich byť zahrnutá história, automatické dopĺňanie a stiahnuté súbory. Vaše karty zostanú otvorené.}other{Vaša organizácia automaticky odstráni dáta prehliadania, keď sa Chrome nebude používať # minút. Môže v nich byť zahrnutá história, automatické dopĺňanie a stiahnuté súbory. Vaše karty zostanú otvorené.}}</translation> +<translation id="7477130805345743099">Chrome vás bude pred načítaním webu používajúceho nezabezpečené pripojenie upozorňovať</translation> <translation id="7481213027396403996">Získajte najsilnejšie zabezpečenie Chromu</translation> <translation id="7535429826459677826">Google Chrome verzie pre vývojárov</translation> <translation id="7583399374488819119">Inštalátor aplikácie <ph name="COMPANY_NAME" /></translation> @@ -478,6 +481,7 @@ <translation id="8922193594870374009">Ak chcete zo zariadenia <ph name="ORIGIN" /> odoslať číslo do svojho telefónu s Androidom, prihláste sa v oboch zariadeniach do Chromu.</translation> <translation id="8986207147630327271">Do tohto prehliadača pridávate pracovný profil a svojmu správcovi udeľujete kontrolu iba nad ním.</translation> <translation id="8989968390305463310">Vaša história prehliadania ovplyvňuje zobrazované reklamy a záujmy, ktoré sú odhadnuté nižšie. Chrome priebežne automaticky odstraňuje vaše záujmy každý mesiac, aby tak chránil vaše súkromie. Záujmy sa môžu obnoviť, pokiaľ ich neodstránite.</translation> +<translation id="8999117580775242387">Keď HTTPS nie je k dispozícii, Chrome bude bez upozornenia používať nezabezpečené pripojenie</translation> <translation id="8999208279178790196">{0,plural, =0{Je k dispozícii aktualizácia Chromu}=1{Je k dispozícii aktualizácia Chromu}few{Aktualizácia Chromu je k dispozícii už # dni}many{Aktualizácia Chromu je k dispozícii už # dňa}other{Aktualizácia Chromu je k dispozícii už # dní}}</translation> <translation id="9053892488859122171">Systém Chrome OS Flex</translation> <translation id="9054037008353851982">Aktualizujete opätovným spustením (karty sa znova otvoria)</translation>
diff --git a/chrome/browser/optimization_guide/optimization_guide_keyed_service.cc b/chrome/browser/optimization_guide/optimization_guide_keyed_service.cc index 8988442f..f2366da 100644 --- a/chrome/browser/optimization_guide/optimization_guide_keyed_service.cc +++ b/chrome/browser/optimization_guide/optimization_guide_keyed_service.cc
@@ -311,7 +311,9 @@ profile->IsOffTheRecord(), profile->GetPrefs()); - if (browser_context_ && !browser_context_->IsOffTheRecord() && + if (base::FeatureList::IsEnabled( + optimization_guide::features::kOptimizationGuideModelExecution) && + browser_context_ && !browser_context_->IsOffTheRecord() && !profile->IsGuestSession()) { model_execution_features_controller_ = std::make_unique<optimization_guide::ModelExecutionFeaturesController>(
diff --git a/chrome/browser/optimization_guide/optimization_guide_keyed_service_browsertest.cc b/chrome/browser/optimization_guide/optimization_guide_keyed_service_browsertest.cc index a47aff0..f2d27484 100644 --- a/chrome/browser/optimization_guide/optimization_guide_keyed_service_browsertest.cc +++ b/chrome/browser/optimization_guide/optimization_guide_keyed_service_browsertest.cc
@@ -160,6 +160,7 @@ // Enable visibility of tab organization feature. scoped_feature_list_.InitWithFeatures( {optimization_guide::features::kOptimizationHints, + optimization_guide::features::kOptimizationGuideModelExecution, optimization_guide::features::internal:: kTabOrganizationSettingsVisibility}, {}); @@ -319,6 +320,9 @@ ->IsSettingVisible(feature); } + protected: + base::test::ScopedFeatureList scoped_feature_list_; + private: std::unique_ptr<net::test_server::HttpResponse> HandleRequest( const net::test_server::HttpRequest& request) { @@ -345,7 +349,6 @@ std::unique_ptr<network::TestNetworkConnectionTracker> network_connection_tracker_; - base::test::ScopedFeatureList scoped_feature_list_; optimization_guide::testing::TestHintsComponentCreator test_hints_component_creator_; std::unique_ptr<OptimizationGuideConsumerWebContentsObserver> consumer_; @@ -1193,6 +1196,57 @@ } #endif +// Test the visibility of features with `kOptimizationGuideModelExecution` +// enabled or disabled. +class OptimizationGuideKeyedServiceBrowserWithModelExecutionFeatureDisabledTest + : public testing::WithParamInterface<bool>, + public OptimizationGuideKeyedServiceBrowserTest { + public: + OptimizationGuideKeyedServiceBrowserWithModelExecutionFeatureDisabledTest() + : OptimizationGuideKeyedServiceBrowserTest() { + // Enable visibility of tab organization feature. + scoped_feature_list_.Reset(); + + if (ShouldFeatureBeEnabled()) { + scoped_feature_list_.InitWithFeatures( + {optimization_guide::features::kOptimizationHints, + // Enabled. + optimization_guide::features::kOptimizationGuideModelExecution, + optimization_guide::features::internal:: + kTabOrganizationSettingsVisibility}, + {}); + } else { + scoped_feature_list_.InitWithFeatures( + {optimization_guide::features::kOptimizationHints, + optimization_guide::features::internal:: + kTabOrganizationSettingsVisibility}, + // Disabled. + {optimization_guide::features::kOptimizationGuideModelExecution}); + } + } + + bool ShouldFeatureBeEnabled() const { return GetParam(); } +}; + +INSTANTIATE_TEST_SUITE_P( + All, + OptimizationGuideKeyedServiceBrowserWithModelExecutionFeatureDisabledTest, + testing::Bool()); + +IN_PROC_BROWSER_TEST_P( + OptimizationGuideKeyedServiceBrowserWithModelExecutionFeatureDisabledTest, + SettingsNotVisible) { + EnableSignIn(); + + EXPECT_FALSE( + IsSettingVisible(optimization_guide::proto::ModelExecutionFeature:: + MODEL_EXECUTION_FEATURE_WALLPAPER_SEARCH)); + + EXPECT_EQ(ShouldFeatureBeEnabled(), + IsSettingVisible(optimization_guide::proto::ModelExecutionFeature:: + MODEL_EXECUTION_FEATURE_TAB_ORGANIZATION)); +} + class OptimizationGuideKeyedServicePermissionsCheckDisabledTest : public OptimizationGuideKeyedServiceBrowserTest { public:
diff --git a/chrome/browser/ui/ash/desks/chrome_saved_desk_delegate.cc b/chrome/browser/ui/ash/desks/chrome_saved_desk_delegate.cc index 354bb75..d4c3d38 100644 --- a/chrome/browser/ui/ash/desks/chrome_saved_desk_delegate.cc +++ b/chrome/browser/ui/ash/desks/chrome_saved_desk_delegate.cc
@@ -255,7 +255,10 @@ const app_restore::RestoreData* full_restore_data = full_restore::FullRestoreSaveHandler::GetInstance()->GetRestoreData( user_profile->GetPath()); - DCHECK(full_restore_data); + if (!full_restore_data) { + std::move(callback).Run({}); + return; + } const std::string app_id = full_restore::GetAppId(window); // TODO: b/296445956 - Implement a long term fix for saving the arc ghost
diff --git a/chrome/browser/ui/ash/desks/chrome_saved_desk_delegate_unittest.cc b/chrome/browser/ui/ash/desks/chrome_saved_desk_delegate_unittest.cc index 4560a12..9ccb0631 100644 --- a/chrome/browser/ui/ash/desks/chrome_saved_desk_delegate_unittest.cc +++ b/chrome/browser/ui/ash/desks/chrome_saved_desk_delegate_unittest.cc
@@ -59,7 +59,6 @@ public: MockBrowserManager() : BrowserManager(std::unique_ptr<crosapi::BrowserLoader>(), nullptr) {} - MOCK_METHOD(bool, IsRunning, (), (const, override)); MOCK_METHOD(void, GetBrowserInformation, (const std::string&, @@ -67,12 +66,6 @@ (override)); }; -void ReturnEmptyGetBrowserInformation( - const std::string& window_unique_id, - crosapi::BrowserManager::GetBrowserInformationCallback callback) { - // Returns empty lacros browser information. - std::move(callback).Run({}); -} } // namespace class ChromeSavedDeskDelegateTest : public testing::Test { @@ -132,10 +125,6 @@ return chrome_saved_desk_delegate_.get(); } - content::BrowserTaskEnvironment& task_environment() { - return task_environment_; - } - MockBrowserManager& mock_browser_manager() { return *mock_browser_manager_; } full_restore::FullRestoreSaveHandler* GetSaveHandler( @@ -187,12 +176,6 @@ // get lacros window information. SaveWindowInfo(window.get(), kActivationIndex1); - EXPECT_CALL(mock_browser_manager(), IsRunning()).WillOnce(Return(true)); - EXPECT_CALL(mock_browser_manager(), GetBrowserInformation(_, _)) - .WillOnce(Invoke(ReturnEmptyGetBrowserInformation)); - - task_environment().RunUntilIdle(); - base::test::TestFuture<std::unique_ptr<app_restore::AppLaunchInfo>> future; chrome_saved_desk_delegate()->GetAppLaunchDataForSavedDesk( window.get(), future.GetCallback());
diff --git a/chrome/build/android-arm32.pgo.txt b/chrome/build/android-arm32.pgo.txt index 7f5f616e..0fcca74 100644 --- a/chrome/build/android-arm32.pgo.txt +++ b/chrome/build/android-arm32.pgo.txt
@@ -1 +1 @@ -chrome-android32-main-1700910362-a857e9a172ed3ee505f32bdf7ae51ed5d2b35b95.profdata +chrome-android32-main-1700998322-ce6dd7b53f31d6d19151a45fc41ddbf6f0318f55.profdata
diff --git a/chrome/build/android-arm64.pgo.txt b/chrome/build/android-arm64.pgo.txt index 285dbe1..5b5577ec 100644 --- a/chrome/build/android-arm64.pgo.txt +++ b/chrome/build/android-arm64.pgo.txt
@@ -1 +1 @@ -chrome-android64-main-1700910362-1d91086723a8334eed79fdde969366318ab242d5.profdata +chrome-android64-main-1700998322-58eb7f25ad9827c3a024d5402ed823e0e0616a5c.profdata
diff --git a/chrome/build/linux.pgo.txt b/chrome/build/linux.pgo.txt index e9e7e162..359e8537 100644 --- a/chrome/build/linux.pgo.txt +++ b/chrome/build/linux.pgo.txt
@@ -1 +1 @@ -chrome-linux-main-1700910362-fc1717e60943e3e89093de0ef98a4e1d0e1abb54.profdata +chrome-linux-main-1700978206-5768dc024463ee3c26ca94d5df67d5c364ed27f0.profdata
diff --git a/chrome/build/mac-arm.pgo.txt b/chrome/build/mac-arm.pgo.txt index bb41fa0..2315449 100644 --- a/chrome/build/mac-arm.pgo.txt +++ b/chrome/build/mac-arm.pgo.txt
@@ -1 +1 @@ -chrome-mac-arm-main-1700920416-580ffb63ebb383e119d9673d74ae3bfe4bc905af.profdata +chrome-mac-arm-main-1701007083-aed66938e7104fac03aeff85d04c54767f5df9a6.profdata
diff --git a/chrome/build/mac.pgo.txt b/chrome/build/mac.pgo.txt index 9714d6d..f8107f2 100644 --- a/chrome/build/mac.pgo.txt +++ b/chrome/build/mac.pgo.txt
@@ -1 +1 @@ -chrome-mac-main-1700910362-068a46e9e5c1d0f1480bf842a48724b7e923cd1d.profdata +chrome-mac-main-1700998322-d5fcaf23130f97293cedc22a8a3516d478a574cd.profdata
diff --git a/chrome/build/win-arm64.pgo.txt b/chrome/build/win-arm64.pgo.txt index 6e49672..787f523 100644 --- a/chrome/build/win-arm64.pgo.txt +++ b/chrome/build/win-arm64.pgo.txt
@@ -1 +1 @@ -chrome-win-arm64-main-1700910362-38d42641ceb32cc2359e7183c9660bb62cb16b97.profdata +chrome-win-arm64-main-1700998322-40e76fac3419cd57dcd8bc5abd35a7554aa6ca76.profdata
diff --git a/chrome/build/win32.pgo.txt b/chrome/build/win32.pgo.txt index 3e9b7252..2f2b110c 100644 --- a/chrome/build/win32.pgo.txt +++ b/chrome/build/win32.pgo.txt
@@ -1 +1 @@ -chrome-win32-main-1700902363-f30eed405aebc115c98f1b660c6a2d82e9331b77.profdata +chrome-win32-main-1700998322-144b63df6e5128034c7b548170f0624949e54b39.profdata
diff --git a/chrome/build/win64.pgo.txt b/chrome/build/win64.pgo.txt index 694e3e3..ce52112 100644 --- a/chrome/build/win64.pgo.txt +++ b/chrome/build/win64.pgo.txt
@@ -1 +1 @@ -chrome-win64-main-1700902363-aba0e546f170b4c09d986d0c7fc1bc753ff1eb30.profdata +chrome-win64-main-1700998322-f5d75546e053c4a16b52c241302bc911e5211b77.profdata
diff --git a/chromeos/CHROMEOS_LKGM b/chromeos/CHROMEOS_LKGM index 0c9e5b4..e7910ca6 100644 --- a/chromeos/CHROMEOS_LKGM +++ b/chromeos/CHROMEOS_LKGM
@@ -1 +1 @@ -15689.0.0 \ No newline at end of file +15690.0.0 \ No newline at end of file
diff --git a/chromeos/profiles/arm-exp.afdo.newest.txt b/chromeos/profiles/arm-exp.afdo.newest.txt index dd44bb7c..9ed9382 100644 --- a/chromeos/profiles/arm-exp.afdo.newest.txt +++ b/chromeos/profiles/arm-exp.afdo.newest.txt
@@ -1 +1 @@ -chromeos-chrome-arm-exp-121-6126.0-1700479769-benchmark-121.0.6145.0-r1-redacted.afdo.xz +chromeos-chrome-arm-exp-121-6126.0-1700479769-benchmark-121.0.6148.0-r1-redacted.afdo.xz
diff --git a/chromeos/profiles/arm.afdo.newest.txt b/chromeos/profiles/arm.afdo.newest.txt index 7c3c3389..0dc19f35 100644 --- a/chromeos/profiles/arm.afdo.newest.txt +++ b/chromeos/profiles/arm.afdo.newest.txt
@@ -1 +1 @@ -chromeos-chrome-arm-none-121-6099.25-1700484597-benchmark-121.0.6145.0-r1-redacted.afdo.xz +chromeos-chrome-arm-none-121-6099.25-1700484597-benchmark-121.0.6148.0-r1-redacted.afdo.xz
diff --git a/chromeos/profiles/atom.afdo.newest.txt b/chromeos/profiles/atom.afdo.newest.txt index 13c6095..f5fc119 100644 --- a/chromeos/profiles/atom.afdo.newest.txt +++ b/chromeos/profiles/atom.afdo.newest.txt
@@ -1 +1 @@ -chromeos-chrome-amd64-atom-121-6126.0-1700479769-benchmark-121.0.6145.0-r1-redacted.afdo.xz +chromeos-chrome-amd64-atom-121-6126.0-1700479769-benchmark-121.0.6146.0-r1-redacted.afdo.xz
diff --git a/chromeos/profiles/bigcore.afdo.newest.txt b/chromeos/profiles/bigcore.afdo.newest.txt index eca0946..d909287a 100644 --- a/chromeos/profiles/bigcore.afdo.newest.txt +++ b/chromeos/profiles/bigcore.afdo.newest.txt
@@ -1 +1 @@ -chromeos-chrome-amd64-bigcore-121-6099.25-1700476772-benchmark-121.0.6145.0-r1-redacted.afdo.xz +chromeos-chrome-amd64-bigcore-121-6099.25-1700476772-benchmark-121.0.6148.0-r1-redacted.afdo.xz
diff --git a/clank b/clank index bdc4d4d..bd44c4c 160000 --- a/clank +++ b/clank
@@ -1 +1 @@ -Subproject commit bdc4d4d785d044cf585fb255b69f7283eed1f721 +Subproject commit bd44c4cb90445bd38f361c33924f84a375e17f6f
diff --git a/components/app_restore/lacros_save_handler.cc b/components/app_restore/lacros_save_handler.cc index c385b7e8..fee16fc 100644 --- a/components/app_restore/lacros_save_handler.cc +++ b/components/app_restore/lacros_save_handler.cc
@@ -82,6 +82,11 @@ uint32_t browser_session_id = static_cast<uint32_t>(window->GetProperty(app_restore::kWindowIdKey)); + // Ephemeral windows have a`browser_session_id` of 0 by default. + if (!browser_session_id) { + return; + } + auto it = window_candidates_.find(lacros_window_id); if (it != window_candidates_.end() && it->second.window_id != browser_session_id) {
diff --git a/components/certificate_transparency/data/log_list.json b/components/certificate_transparency/data/log_list.json index 1392913..defbcb00 100644 --- a/components/certificate_transparency/data/log_list.json +++ b/components/certificate_transparency/data/log_list.json
@@ -1,6 +1,6 @@ { - "version": "26.55", - "log_list_timestamp": "2023-11-25T12:54:40Z", + "version": "27.1", + "log_list_timestamp": "2023-11-26T12:54:39Z", "operators": [ { "name": "Google", @@ -47,8 +47,8 @@ "url": "https://ct.googleapis.com/logs/us1/argon2025h1/", "mmd": 86400, "state": { - "qualified": { - "timestamp": "2023-09-15T23:09:45Z" + "usable": { + "timestamp": "2023-11-26T12:00:00Z" } }, "temporal_interval": { @@ -63,8 +63,8 @@ "url": "https://ct.googleapis.com/logs/us1/argon2025h2/", "mmd": 86400, "state": { - "qualified": { - "timestamp": "2023-09-15T23:09:45Z" + "usable": { + "timestamp": "2023-11-26T12:00:00Z" } }, "temporal_interval": { @@ -111,8 +111,8 @@ "url": "https://ct.googleapis.com/logs/eu1/xenon2025h1/", "mmd": 86400, "state": { - "qualified": { - "timestamp": "2023-09-15T23:09:45Z" + "usable": { + "timestamp": "2023-11-26T12:00:00Z" } }, "temporal_interval": { @@ -127,8 +127,8 @@ "url": "https://ct.googleapis.com/logs/eu1/xenon2025h2/", "mmd": 86400, "state": { - "qualified": { - "timestamp": "2023-09-15T23:09:45Z" + "usable": { + "timestamp": "2023-11-26T12:00:00Z" } }, "temporal_interval": { @@ -326,8 +326,8 @@ "url": "https://sabre2024h1.ct.sectigo.com/", "mmd": 86400, "state": { - "qualified": { - "timestamp": "2023-09-15T23:09:45Z" + "usable": { + "timestamp": "2023-11-26T12:00:00Z" } }, "temporal_interval": { @@ -342,8 +342,8 @@ "url": "https://sabre2024h2.ct.sectigo.com/", "mmd": 86400, "state": { - "qualified": { - "timestamp": "2023-09-15T23:09:45Z" + "usable": { + "timestamp": "2023-11-26T12:00:00Z" } }, "temporal_interval": { @@ -358,8 +358,8 @@ "url": "https://sabre2025h1.ct.sectigo.com/", "mmd": 86400, "state": { - "qualified": { - "timestamp": "2023-09-15T23:09:45Z" + "usable": { + "timestamp": "2023-11-26T12:00:00Z" } }, "temporal_interval": { @@ -374,8 +374,8 @@ "url": "https://sabre2025h2.ct.sectigo.com/", "mmd": 86400, "state": { - "qualified": { - "timestamp": "2023-09-15T23:09:45Z" + "usable": { + "timestamp": "2023-11-26T12:00:00Z" } }, "temporal_interval": { @@ -402,8 +402,8 @@ "url": "https://mammoth2024h1.ct.sectigo.com/", "mmd": 86400, "state": { - "qualified": { - "timestamp": "2023-09-15T23:09:45Z" + "usable": { + "timestamp": "2023-11-26T12:00:00Z" } }, "temporal_interval": { @@ -418,8 +418,8 @@ "url": "https://mammoth2024h2.ct.sectigo.com/", "mmd": 86400, "state": { - "qualified": { - "timestamp": "2023-09-15T23:09:45Z" + "usable": { + "timestamp": "2023-11-26T12:00:00Z" } }, "temporal_interval": { @@ -434,8 +434,8 @@ "url": "https://mammoth2025h1.ct.sectigo.com/", "mmd": 86400, "state": { - "qualified": { - "timestamp": "2023-09-15T23:09:45Z" + "usable": { + "timestamp": "2023-11-26T12:00:00Z" } }, "temporal_interval": { @@ -450,8 +450,8 @@ "url": "https://mammoth2025h2.ct.sectigo.com/", "mmd": 86400, "state": { - "qualified": { - "timestamp": "2023-09-15T23:09:45Z" + "usable": { + "timestamp": "2023-11-26T12:00:00Z" } }, "temporal_interval": { @@ -522,8 +522,8 @@ "url": "https://oak.ct.letsencrypt.org/2025h1/", "mmd": 86400, "state": { - "qualified": { - "timestamp": "2023-09-15T23:09:45Z" + "usable": { + "timestamp": "2023-11-26T12:00:00Z" } }, "temporal_interval": { @@ -538,8 +538,8 @@ "url": "https://oak.ct.letsencrypt.org/2025h2/", "mmd": 86400, "state": { - "qualified": { - "timestamp": "2023-09-15T23:09:45Z" + "usable": { + "timestamp": "2023-11-26T12:00:00Z" } }, "temporal_interval": { @@ -594,8 +594,8 @@ "url": "https://ct2025-a.trustasia.com/log2025a/", "mmd": 86400, "state": { - "qualified": { - "timestamp": "2023-09-15T23:09:45Z" + "usable": { + "timestamp": "2023-11-26T12:00:00Z" } }, "temporal_interval": { @@ -610,8 +610,8 @@ "url": "https://ct2025-b.trustasia.com/log2025b/", "mmd": 86400, "state": { - "qualified": { - "timestamp": "2023-09-15T23:09:45Z" + "usable": { + "timestamp": "2023-11-26T12:00:00Z" } }, "temporal_interval": {
diff --git a/components/viz/service/display_embedder/skia_output_device_buffer_queue.cc b/components/viz/service/display_embedder/skia_output_device_buffer_queue.cc index a169716..0778477 100644 --- a/components/viz/service/display_embedder/skia_output_device_buffer_queue.cc +++ b/components/viz/service/display_embedder/skia_output_device_buffer_queue.cc
@@ -441,8 +441,18 @@ // number of fences at the end of each raster task at the ShareImage // level is costly. Thus, at this point, the gpu tasks have been // dispatched and it's safe to create just a single fence. - if (!current_frame_fence) + if (!current_frame_fence) { + // The GL fence below needs context to be current. + // + // SkiaOutputSurfaceImpl::SwapBuffers() - one of the methods in the call + // stack of to SkiaOutputDeviceBufferQueue::ScheduleOverlays() - used to + // schedule a MakeCurrent call. For power consumption and performance + // reasons, we delay the call to MakeCurrent 'till it is known to + // be needed. + context_state_->MakeCurrent(nullptr); + current_frame_fence = gl::GLFence::CreateForGpuFence()->GetGpuFence(); + } // Dup the fence - it must be inserted into each shared image before // ScopedReadAccess is created.
diff --git a/components/viz/service/display_embedder/skia_output_surface_impl.cc b/components/viz/service/display_embedder/skia_output_surface_impl.cc index 4d4882b..ba44f3d6 100644 --- a/components/viz/service/display_embedder/skia_output_surface_impl.cc +++ b/components/viz/service/display_embedder/skia_output_surface_impl.cc
@@ -751,8 +751,10 @@ /*is_for_render_pass=*/false, raw_draw_if_possible); } -DBG_FLAG_FBOOL("skia_gpu.swap_buffers.force_disable_makecurrent", - force_disable_makecurrent) +#if BUILDFLAG(IS_CHROMEOS_LACROS) +DBG_FLAG_FBOOL("skia_gpu.swap_buffers.force_calling_makecurrent", + force_makecurrent) +#endif void SkiaOutputSurfaceImpl::SwapBuffers(OutputSurfaceFrame frame) { DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); @@ -780,7 +782,19 @@ auto callback = base::BindOnce(&SkiaOutputSurfaceImplOnGpu::SwapBuffers, base::Unretained(impl_on_gpu_.get()), std::move(frame)); - bool make_current = !force_disable_makecurrent(); + bool make_current = +#if BUILDFLAG(IS_CHROMEOS_LACROS) + // Normally we don't need MakeCurrent for SwapBuffers, but it is done + // historically and there are edge cases too. + // For lacros, we do not call MakeCurrent here, and delay it where + // appropriated. + // + // TODO(crbug.com/1494032): Extend that approach for other platforms. + force_makecurrent(); // Defaults to false. +#else + true; +#endif + EnqueueGpuTask(std::move(callback), std::move(resource_sync_tokens_), make_current, /*need_framebuffer=*/!dependency_->IsOffscreen());
diff --git a/content/test/gpu/gpu_tests/test_expectations/webgl_conformance_expectations.txt b/content/test/gpu/gpu_tests/test_expectations/webgl_conformance_expectations.txt index d240129..054044fe 100644 --- a/content/test/gpu/gpu_tests/test_expectations/webgl_conformance_expectations.txt +++ b/content/test/gpu/gpu_tests/test_expectations/webgl_conformance_expectations.txt
@@ -708,10 +708,6 @@ ##################### -crbug.com/1446435 [ chromeos lacros-chrome chromeos-board-jacuzzi arm angle-opengles passthrough ] conformance/extensions/angle-instanced-arrays-out-of-bounds.html [ Failure ] -crbug.com/1446435 [ chromeos lacros-chrome chromeos-board-jacuzzi passthrough ] conformance/glsl/bugs/constant-precision-qualifier.html [ Failure ] -crbug.com/1446435 [ chromeos lacros-chrome chromeos-board-jacuzzi passthrough ] conformance/limits/gl-max-texture-dimensions.html [ Failure ] -crbug.com/1446435 [ chromeos lacros-chrome chromeos-board-jacuzzi passthrough ] conformance/misc/shader-precision-format.html [ Failure ] crbug.com/1481267 [ chromeos lacros-chrome chromeos-board-octopus passthrough ] conformance/textures/misc/texture-size-limit.html [ Failure ] ###########################
diff --git a/extensions/strings/extensions_strings_sk.xtb b/extensions/strings/extensions_strings_sk.xtb index 423ac588..6728488 100644 --- a/extensions/strings/extensions_strings_sk.xtb +++ b/extensions/strings/extensions_strings_sk.xtb
@@ -8,6 +8,7 @@ <translation id="1420684932347524586">Generovanie náhodného súkromného kľúča RSA žiaľ zlyhalo.</translation> <translation id="1445572445564823378">Toto rozšírenie spomaľuje prehliadač <ph name="PRODUCT_NAME" />. Ak chcete obnoviť výkonnosť prehliadača <ph name="PRODUCT_NAME" />, zakážte ho.</translation> <translation id="1468038450257740950">Rozhranie WebGL nie je podporované.</translation> +<translation id="1610570795592207282">Pre skript sa nepodarilo načítať súbor css „<ph name="RELATIVE_PATH" />“.</translation> <translation id="1803557475693955505">Nepodarilo sa načítať stránku na pozadí „<ph name="BACKGROUND_PAGE" />“.</translation> <translation id="2159915644201199628">Nepodarilo sa dekódovať obrázok: <ph name="IMAGE_NAME" /></translation> <translation id="2350172092385603347">Lokalizácia sa použila, parameter default_locale však nebol v manifeste určený.</translation> @@ -31,6 +32,7 @@ <translation id="4988792151665380515">Exportovanie verejného kľúča zlyhalo.</translation> <translation id="5026754133087629784">Webview: <ph name="WEBVIEW_TAG_NAME" /></translation> <translation id="5098647635849512368">Absolútnu cestu k adresáru na zbalenie nie je možné nájsť.</translation> +<translation id="5160071981665899014">Pre skript sa nepodarilo načítať súbor javascript „<ph name="RELATIVE_PATH" />“.</translation> <translation id="5356315618422219272">Značka appview: <ph name="APPVIEW_TAG_NAME" /></translation> <translation id="5436430103864390185">Tvarované okná nie sú podporované.</translation> <translation id="5456409301717116725">Toto rozšírenie obsahuje súbor kľúča <ph name="KEY_PATH" />. Pravdepodobne to nechcete urobiť.</translation>
diff --git a/infra/config/generated/testing/variants.pyl b/infra/config/generated/testing/variants.pyl index b534a93..74845fbe 100644 --- a/infra/config/generated/testing/variants.pyl +++ b/infra/config/generated/testing/variants.pyl
@@ -70,16 +70,16 @@ }, 'LACROS_VERSION_SKEW_CANARY': { 'identifier': 'Lacros version skew testing ash canary', - 'description': 'Run with ash-chrome version 121.0.6147.0', + 'description': 'Run with ash-chrome version 121.0.6149.0', 'args': [ - '--ash-chrome-path-override=../../lacros_version_skew_tests_v121.0.6147.0/test_ash_chrome', + '--ash-chrome-path-override=../../lacros_version_skew_tests_v121.0.6149.0/test_ash_chrome', ], 'swarming': { 'cipd_packages': [ { 'cipd_package': 'chromium/testing/linux-ash-chromium/x86_64/ash.zip', - 'location': 'lacros_version_skew_tests_v121.0.6147.0', - 'revision': 'version:121.0.6147.0', + 'location': 'lacros_version_skew_tests_v121.0.6149.0', + 'revision': 'version:121.0.6149.0', }, ], },
diff --git a/infra/config/targets/lacros-version-skew-variants.json b/infra/config/targets/lacros-version-skew-variants.json index 3aa3ee15..f974e845 100644 --- a/infra/config/targets/lacros-version-skew-variants.json +++ b/infra/config/targets/lacros-version-skew-variants.json
@@ -1,16 +1,16 @@ { "LACROS_VERSION_SKEW_CANARY": { "args": [ - "--ash-chrome-path-override=../../lacros_version_skew_tests_v121.0.6147.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v121.0.6149.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 121.0.6147.0", + "description": "Run with ash-chrome version 121.0.6149.0", "identifier": "Lacros version skew testing ash canary", "swarming": { "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v121.0.6147.0", - "revision": "version:121.0.6147.0" + "location": "lacros_version_skew_tests_v121.0.6149.0", + "revision": "version:121.0.6149.0" } ] }
diff --git a/ios/chrome/app/strings/resources/ios_strings_sk.xtb b/ios/chrome/app/strings/resources/ios_strings_sk.xtb index 2ecb89e9..9765b58 100644 --- a/ios/chrome/app/strings/resources/ios_strings_sk.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_sk.xtb
@@ -819,6 +819,7 @@ <translation id="5300589172476337783">Zobraziť</translation> <translation id="5317780077021120954">Uložiť</translation> <translation id="5318298563956633672">Tento výrobok už sledujete.</translation> +<translation id="5329451663851195956">Obnovíte potiahnutím nadol.</translation> <translation id="5339316356165661760">Zapnúť synchronizáciu</translation> <translation id="5345598430982201510">Nikdy nezisťovať zásielky automaticky</translation> <translation id="5345660046352249607">{COUNT,plural, =1{Chcete sledovať túto zásielku?}few{Chcete sledovať {COUNT} zásielky?}many{Track {COUNT} Packages?}other{Chcete sledovať {COUNT} zásielok?}}</translation>
diff --git a/ios_internal b/ios_internal index 48a0c3d..c55e94d 160000 --- a/ios_internal +++ b/ios_internal
@@ -1 +1 @@ -Subproject commit 48a0c3d37606ddb07e381e1239ac760e88096f1a +Subproject commit c55e94d4564fb697d3d83fe9fcbafaffce2e139e
diff --git a/net/http/transport_security_state_static.pins b/net/http/transport_security_state_static.pins index bf3374d..f2671165 100644 --- a/net/http/transport_security_state_static.pins +++ b/net/http/transport_security_state_static.pins
@@ -43,9 +43,9 @@ # hash function for preloaded entries again (we have already done so once). # -# Last updated: 2023-11-25 12:54 UTC +# Last updated: 2023-11-26 12:54 UTC PinsListTimestamp -1700916880 +1701003279 TestSPKI sha256/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
diff --git a/net/http/transport_security_state_static_pins.json b/net/http/transport_security_state_static_pins.json index a86cc95..f4d9ad8 100644 --- a/net/http/transport_security_state_static_pins.json +++ b/net/http/transport_security_state_static_pins.json
@@ -31,7 +31,7 @@ // the 'static_spki_hashes' and 'bad_static_spki_hashes' fields in 'pinsets' // refer to, and the timestamp at which the pins list was last updated. // -// Last updated: 2023-11-25 12:54 UTC +// Last updated: 2023-11-26 12:54 UTC // { "pinsets": [
diff --git a/testing/buildbot/chromium.chromiumos.json b/testing/buildbot/chromium.chromiumos.json index 37147e0..9eb5a07 100644 --- a/testing/buildbot/chromium.chromiumos.json +++ b/testing/buildbot/chromium.chromiumos.json
@@ -6122,9 +6122,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter;../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v121.0.6147.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v121.0.6149.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 121.0.6147.0", + "description": "Run with ash-chrome version 121.0.6149.0", "isolate_profile_data": true, "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -6134,8 +6134,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v121.0.6147.0", - "revision": "version:121.0.6147.0" + "location": "lacros_version_skew_tests_v121.0.6149.0", + "revision": "version:121.0.6149.0" } ], "dimensions": { @@ -6272,9 +6272,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.filter;../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v121.0.6147.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v121.0.6149.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 121.0.6147.0", + "description": "Run with ash-chrome version 121.0.6149.0", "isolate_profile_data": true, "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -6284,8 +6284,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v121.0.6147.0", - "revision": "version:121.0.6147.0" + "location": "lacros_version_skew_tests_v121.0.6149.0", + "revision": "version:121.0.6149.0" } ], "dimensions": {
diff --git a/testing/buildbot/chromium.coverage.json b/testing/buildbot/chromium.coverage.json index 4a6724b..ab7bd0b 100644 --- a/testing/buildbot/chromium.coverage.json +++ b/testing/buildbot/chromium.coverage.json
@@ -20593,9 +20593,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter;../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v121.0.6147.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v121.0.6149.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 121.0.6147.0", + "description": "Run with ash-chrome version 121.0.6149.0", "isolate_profile_data": true, "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -20605,8 +20605,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v121.0.6147.0", - "revision": "version:121.0.6147.0" + "location": "lacros_version_skew_tests_v121.0.6149.0", + "revision": "version:121.0.6149.0" } ], "dimensions": { @@ -20743,9 +20743,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.filter;../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v121.0.6147.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v121.0.6149.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 121.0.6147.0", + "description": "Run with ash-chrome version 121.0.6149.0", "isolate_profile_data": true, "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -20755,8 +20755,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v121.0.6147.0", - "revision": "version:121.0.6147.0" + "location": "lacros_version_skew_tests_v121.0.6149.0", + "revision": "version:121.0.6149.0" } ], "dimensions": {
diff --git a/testing/buildbot/chromium.fyi.json b/testing/buildbot/chromium.fyi.json index 55ae3ff..2d6ee910 100644 --- a/testing/buildbot/chromium.fyi.json +++ b/testing/buildbot/chromium.fyi.json
@@ -43731,9 +43731,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter;../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v121.0.6147.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v121.0.6149.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 121.0.6147.0", + "description": "Run with ash-chrome version 121.0.6149.0", "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" }, @@ -43742,8 +43742,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v121.0.6147.0", - "revision": "version:121.0.6147.0" + "location": "lacros_version_skew_tests_v121.0.6149.0", + "revision": "version:121.0.6149.0" } ], "dimensions": { @@ -43881,9 +43881,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.filter;../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v121.0.6147.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v121.0.6149.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 121.0.6147.0", + "description": "Run with ash-chrome version 121.0.6149.0", "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" }, @@ -43892,8 +43892,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v121.0.6147.0", - "revision": "version:121.0.6147.0" + "location": "lacros_version_skew_tests_v121.0.6149.0", + "revision": "version:121.0.6149.0" } ], "dimensions": { @@ -45205,9 +45205,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter;../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v121.0.6147.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v121.0.6149.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 121.0.6147.0", + "description": "Run with ash-chrome version 121.0.6149.0", "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" }, @@ -45216,8 +45216,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v121.0.6147.0", - "revision": "version:121.0.6147.0" + "location": "lacros_version_skew_tests_v121.0.6149.0", + "revision": "version:121.0.6149.0" } ], "dimensions": { @@ -45355,9 +45355,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.filter;../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v121.0.6147.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v121.0.6149.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 121.0.6147.0", + "description": "Run with ash-chrome version 121.0.6149.0", "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" }, @@ -45366,8 +45366,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v121.0.6147.0", - "revision": "version:121.0.6147.0" + "location": "lacros_version_skew_tests_v121.0.6149.0", + "revision": "version:121.0.6149.0" } ], "dimensions": { @@ -46065,9 +46065,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter;../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v121.0.6147.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v121.0.6149.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 121.0.6147.0", + "description": "Run with ash-chrome version 121.0.6149.0", "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" }, @@ -46076,8 +46076,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v121.0.6147.0", - "revision": "version:121.0.6147.0" + "location": "lacros_version_skew_tests_v121.0.6149.0", + "revision": "version:121.0.6149.0" } ], "dimensions": {
diff --git a/testing/buildbot/chromium.memory.json b/testing/buildbot/chromium.memory.json index 53f6448e..9781238 100644 --- a/testing/buildbot/chromium.memory.json +++ b/testing/buildbot/chromium.memory.json
@@ -16312,12 +16312,12 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter;../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v121.0.6147.0/test_ash_chrome", + "--ash-chrome-path-override=../../lacros_version_skew_tests_v121.0.6149.0/test_ash_chrome", "--test-launcher-print-test-stdio=always", "--combine-ash-logs-on-bots", "--asan-symbolize-output" ], - "description": "Run with ash-chrome version 121.0.6147.0", + "description": "Run with ash-chrome version 121.0.6149.0", "isolate_profile_data": true, "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -16327,8 +16327,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v121.0.6147.0", - "revision": "version:121.0.6147.0" + "location": "lacros_version_skew_tests_v121.0.6149.0", + "revision": "version:121.0.6149.0" } ], "dimensions": { @@ -16482,12 +16482,12 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.filter;../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v121.0.6147.0/test_ash_chrome", + "--ash-chrome-path-override=../../lacros_version_skew_tests_v121.0.6149.0/test_ash_chrome", "--test-launcher-print-test-stdio=always", "--combine-ash-logs-on-bots", "--asan-symbolize-output" ], - "description": "Run with ash-chrome version 121.0.6147.0", + "description": "Run with ash-chrome version 121.0.6149.0", "isolate_profile_data": true, "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -16497,8 +16497,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v121.0.6147.0", - "revision": "version:121.0.6147.0" + "location": "lacros_version_skew_tests_v121.0.6149.0", + "revision": "version:121.0.6149.0" } ], "dimensions": {
diff --git a/testing/buildbot/variants.pyl b/testing/buildbot/variants.pyl index b534a93..74845fbe 100644 --- a/testing/buildbot/variants.pyl +++ b/testing/buildbot/variants.pyl
@@ -70,16 +70,16 @@ }, 'LACROS_VERSION_SKEW_CANARY': { 'identifier': 'Lacros version skew testing ash canary', - 'description': 'Run with ash-chrome version 121.0.6147.0', + 'description': 'Run with ash-chrome version 121.0.6149.0', 'args': [ - '--ash-chrome-path-override=../../lacros_version_skew_tests_v121.0.6147.0/test_ash_chrome', + '--ash-chrome-path-override=../../lacros_version_skew_tests_v121.0.6149.0/test_ash_chrome', ], 'swarming': { 'cipd_packages': [ { 'cipd_package': 'chromium/testing/linux-ash-chromium/x86_64/ash.zip', - 'location': 'lacros_version_skew_tests_v121.0.6147.0', - 'revision': 'version:121.0.6147.0', + 'location': 'lacros_version_skew_tests_v121.0.6149.0', + 'revision': 'version:121.0.6149.0', }, ], },
diff --git a/third_party/angle b/third_party/angle index 1bdb403..9a70fc9 160000 --- a/third_party/angle +++ b/third_party/angle
@@ -1 +1 @@ -Subproject commit 1bdb403899f2040a7b816b3261f13a48914d439c +Subproject commit 9a70fc9046644c2a3b4bb1ea9f0e56fe19473941
diff --git a/third_party/blink/renderer/bindings/core/v8/js_event_handler_for_content_attribute.h b/third_party/blink/renderer/bindings/core/v8/js_event_handler_for_content_attribute.h index f2bd9801..fcae3137 100644 --- a/third_party/blink/renderer/bindings/core/v8/js_event_handler_for_content_attribute.h +++ b/third_party/blink/renderer/bindings/core/v8/js_event_handler_for_content_attribute.h
@@ -51,7 +51,7 @@ // In case of the content scripts, Blink runs script in the main world instead // of the isolated world for the content script by design. DOMWrapperWorld& GetWorld() const override { - return DOMWrapperWorld::MainWorld(); + return DOMWrapperWorld::MainWorld(isolate_); } private:
diff --git a/third_party/blink/renderer/bindings/core/v8/script_controller.cc b/third_party/blink/renderer/bindings/core/v8/script_controller.cc index 641d2998..5065659 100644 --- a/third_party/blink/renderer/bindings/core/v8/script_controller.cc +++ b/third_party/blink/renderer/bindings/core/v8/script_controller.cc
@@ -122,12 +122,12 @@ } void ScriptController::DisableEval(const String& error_message) { - SetEvalForWorld(DOMWrapperWorld::MainWorld(), false /* allow_eval */, - error_message); + SetEvalForWorld(DOMWrapperWorld::MainWorld(GetIsolate()), + false /* allow_eval */, error_message); } void ScriptController::SetWasmEvalErrorMessage(const String& error_message) { - SetWasmEvalErrorMessageForWorld(DOMWrapperWorld::MainWorld(), + SetWasmEvalErrorMessageForWorld(DOMWrapperWorld::MainWorld(GetIsolate()), /*allow_eval=*/false, error_message); }
diff --git a/third_party/blink/renderer/bindings/core/v8/v8_binding_for_core.h b/third_party/blink/renderer/bindings/core/v8/v8_binding_for_core.h index 3b720391..ac1843a 100644 --- a/third_party/blink/renderer/bindings/core/v8/v8_binding_for_core.h +++ b/third_party/blink/renderer/bindings/core/v8/v8_binding_for_core.h
@@ -91,11 +91,11 @@ PAINT = 4, }; -#define ENTER_EMBEDDER_STATE(isolate, frame, state) \ - v8::HandleScope scope(isolate); \ - v8::Local<v8::Context> v8_context = \ - ToV8ContextMaybeEmpty(frame, DOMWrapperWorld::MainWorld()); \ - v8::EmbedderStateScope embedder_state( \ +#define ENTER_EMBEDDER_STATE(isolate, frame, state) \ + v8::HandleScope scope(isolate); \ + v8::Local<v8::Context> v8_context = \ + ToV8ContextMaybeEmpty(frame, DOMWrapperWorld::MainWorld(isolate)); \ + v8::EmbedderStateScope embedder_state( \ isolate, v8_context, static_cast<v8::EmbedderStateTag>(state)); template <typename CallbackInfo, typename T>
diff --git a/third_party/blink/renderer/core/exported/web_plugin_container_impl.cc b/third_party/blink/renderer/core/exported/web_plugin_container_impl.cc index a02f1cd3..84cfb2e 100644 --- a/third_party/blink/renderer/core/exported/web_plugin_container_impl.cc +++ b/third_party/blink/renderer/core/exported/web_plugin_container_impl.cc
@@ -551,8 +551,7 @@ if (!context || !context->CanExecuteScripts(kNotAboutToExecuteScript)) return v8::Local<v8::Object>(); - ScriptState* script_state = - ToScriptState(context, DOMWrapperWorld::MainWorld()); + ScriptState* script_state = ToScriptStateForMainWorld(context); if (!script_state) return v8::Local<v8::Object>();
diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc index 5987aaa..f060333 100644 --- a/third_party/blink/renderer/core/frame/local_frame.cc +++ b/third_party/blink/renderer/core/frame/local_frame.cc
@@ -2886,9 +2886,10 @@ // into the omnibox. See https://crbug.com/1082900 NotifyUserActivation( mojom::blink::UserActivationNotificationType::kInteraction, false); - DomWindow()->GetScriptController().ExecuteJavaScriptURL( + auto* window = DomWindow(); + window->GetScriptController().ExecuteJavaScriptURL( url, network::mojom::CSPDisposition::DO_NOT_CHECK, - &DOMWrapperWorld::MainWorld()); + &DOMWrapperWorld::MainWorld(window->GetIsolate())); } void LocalFrame::RequestExecuteScript( @@ -2905,7 +2906,7 @@ ExecuteScriptPolicy execute_script_policy; CHECK(!IsProvisional()); if (world_id == DOMWrapperWorld::kMainWorldId) { - world = &DOMWrapperWorld::MainWorld(); + world = &DOMWrapperWorld::MainWorld(ToIsolate(this)); execute_script_policy = ExecuteScriptPolicy::kDoNotExecuteScriptWhenScriptsDisabled; } else {
diff --git a/third_party/blink/renderer/core/html/html_document.cc b/third_party/blink/renderer/core/html/html_document.cc index 37061e49..7674326b 100644 --- a/third_party/blink/renderer/core/html/html_document.cc +++ b/third_party/blink/renderer/core/html/html_document.cc
@@ -98,7 +98,7 @@ named_item_counts_.insert(name); if (LocalDOMWindow* window = domWindow()) { window->GetScriptController() - .WindowProxy(DOMWrapperWorld::MainWorld()) + .WindowProxy(DOMWrapperWorld::MainWorld(window->GetIsolate())) ->NamedItemAdded(this, name); } } @@ -109,7 +109,7 @@ named_item_counts_.erase(name); if (LocalDOMWindow* window = domWindow()) { window->GetScriptController() - .WindowProxy(DOMWrapperWorld::MainWorld()) + .WindowProxy(DOMWrapperWorld::MainWorld(window->GetIsolate())) ->NamedItemRemoved(this, name); } }
diff --git a/third_party/blink/renderer/core/loader/frame_loader.cc b/third_party/blink/renderer/core/loader/frame_loader.cc index 3714d4c..76e7cc3 100644 --- a/third_party/blink/renderer/core/loader/frame_loader.cc +++ b/third_party/blink/renderer/core/loader/frame_loader.cc
@@ -1607,9 +1607,10 @@ // and relying on the number of created window proxies. Settings* settings = frame_->GetSettings(); if (settings && settings->GetForceMainWorldInitialization()) { + auto* window = frame_->DomWindow(); // Forcibly instantiate WindowProxy. - frame_->DomWindow()->GetScriptController().WindowProxy( - DOMWrapperWorld::MainWorld()); + window->GetScriptController().WindowProxy( + DOMWrapperWorld::MainWorld(window->GetIsolate())); } frame_->GetIdlenessDetector()->DidDropNavigation(); } @@ -1684,7 +1685,8 @@ LocalDOMWindow* window = frame_->DomWindow(); if (settings && settings->GetForceMainWorldInitialization()) { // Forcibly instantiate WindowProxy, even if script is disabled. - window->GetScriptController().WindowProxy(DOMWrapperWorld::MainWorld()); + window->GetScriptController().WindowProxy( + DOMWrapperWorld::MainWorld(window->GetIsolate())); } probe::DidClearDocumentOfWindowObject(frame_.Get()); if (!window->CanExecuteScripts(kNotAboutToExecuteScript))
diff --git a/third_party/blink/renderer/core/messaging/message_port.cc b/third_party/blink/renderer/core/messaging/message_port.cc index 5d7780c4..2f2a5b6 100644 --- a/third_party/blink/renderer/core/messaging/message_port.cc +++ b/third_party/blink/renderer/core/messaging/message_port.cc
@@ -361,8 +361,7 @@ // We cannot check `content->GetCurrentWorld()->IsMainWorld()` here, as the // v8::Context may still be empty (and hence // ExecutionContext::GetCurrentWorld returns null). - if (ScriptState* script_state = - ToScriptState(context, DOMWrapperWorld::MainWorld())) { + if (ScriptState* script_state = ToScriptStateForMainWorld(context)) { CHECK(ThreadScheduler::Current()); if (auto* tracker = ThreadScheduler::Current()->GetTaskAttributionTracker()) {
diff --git a/third_party/blink/renderer/core/navigation_api/navigation_api.cc b/third_party/blink/renderer/core/navigation_api/navigation_api.cc index 14cdd73b..0671c7b 100644 --- a/third_party/blink/renderer/core/navigation_api/navigation_api.cc +++ b/third_party/blink/renderer/core/navigation_api/navigation_api.cc
@@ -962,7 +962,7 @@ blink::CaptureSourceLocation(isolate, message, window_); ErrorEvent* event = ErrorEvent::Create( ToCoreStringWithNullCheck(isolate, message->Get()), std::move(location), - value, &DOMWrapperWorld::MainWorld()); + value, &DOMWrapperWorld::MainWorld(isolate)); event->SetType(event_type_names::kNavigateerror); DispatchEvent(*event);
diff --git a/third_party/blink/renderer/core/page/page.cc b/third_party/blink/renderer/core/page/page.cc index 3a3268f5..acbb1d23 100644 --- a/third_party/blink/renderer/core/page/page.cc +++ b/third_party/blink/renderer/core/page/page.cc
@@ -851,7 +851,7 @@ if (auto* window = DynamicTo<LocalDOMWindow>(frame->DomWindow())) { // Forcibly instantiate WindowProxy. window->GetScriptController().WindowProxy( - DOMWrapperWorld::MainWorld()); + DOMWrapperWorld::MainWorld(window->GetIsolate())); } } break;
diff --git a/third_party/blink/renderer/core/script/detect_javascript_frameworks.cc b/third_party/blink/renderer/core/script/detect_javascript_frameworks.cc index 9dc8fe4f..15efc675 100644 --- a/third_party/blink/renderer/core/script/detect_javascript_frameworks.cc +++ b/third_party/blink/renderer/core/script/detect_javascript_frameworks.cc
@@ -341,7 +341,8 @@ AtomicString detected_ng_version; if (!document.documentElement()) return; - DOMDataStore& dom_data_store = DOMWrapperWorld::MainWorld().DomDataStore(); + DOMDataStore& dom_data_store = + DOMWrapperWorld::MainWorld(isolate).DomDataStore(); for (Element& element : ElementTraversal::InclusiveDescendantsOf(*document.documentElement())) { CheckAttributeMatches(element, result, detected_ng_version);
diff --git a/third_party/blink/renderer/core/speculation_rules/document_rule_predicate.cc b/third_party/blink/renderer/core/speculation_rules/document_rule_predicate.cc index 20168e6..106f119 100644 --- a/third_party/blink/renderer/core/speculation_rules/document_rule_predicate.cc +++ b/third_party/blink/renderer/core/speculation_rules/document_rule_predicate.cc
@@ -186,10 +186,9 @@ // For each pattern of predicate’s patterns: for (const auto& pattern : patterns_) { // Match given pattern and href. If the result is not null, return true. - if (pattern->test( - ToScriptState(execution_context_, DOMWrapperWorld::MainWorld()), - MakeGarbageCollected<V8URLPatternInput>(href), - ASSERT_NO_EXCEPTION)) { + if (pattern->test(ToScriptStateForMainWorld(execution_context_), + MakeGarbageCollected<V8URLPatternInput>(href), + ASSERT_NO_EXCEPTION)) { return true; } }
diff --git a/third_party/blink/renderer/core/trustedtypes/trusted_types_util.cc b/third_party/blink/renderer/core/trustedtypes/trusted_types_util.cc index 256cdf9..6f759a9 100644 --- a/third_party/blink/renderer/core/trustedtypes/trusted_types_util.cc +++ b/third_party/blink/renderer/core/trustedtypes/trusted_types_util.cc
@@ -268,8 +268,7 @@ // we are not executing a source String, but an already compiled callback // function. v8::HandleScope handle_scope(context->GetIsolate()); - ScriptState::Scope script_state_scope( - ToScriptState(context, DOMWrapperWorld::MainWorld())); + ScriptState::Scope script_state_scope(ToScriptStateForMainWorld(context)); ExceptionState exception_state( context->GetIsolate(), ExceptionContextType::kUnknown, element_name_for_exception, attribute_name_for_exception);
diff --git a/third_party/blink/web_tests/ChromeTestExpectations b/third_party/blink/web_tests/ChromeTestExpectations index a6f62f4..1f527fc7 100644 --- a/third_party/blink/web_tests/ChromeTestExpectations +++ b/third_party/blink/web_tests/ChromeTestExpectations
@@ -12,13 +12,8 @@ external/wpt/webdriver/tests/classic/perform_actions/wheel.py [ Failure ] # Flaky output external/wpt/webdriver/tests/bidi/input/perform_actions/invalid.py [ Failure Timeout ] # Flaky output external/wpt/webdriver/tests/classic/find_element_from_shadow_root/find.py [ Failure Timeout ] # Flaky output -external/wpt/webdriver/tests/bidi/browsing_context/capture_screenshot/frame.py [ Failure ] # Flaky output external/wpt/webdriver/tests/classic/element_click/navigate.py [ Failure ] # Flaky output external/wpt/webdriver/tests/bidi/input/perform_actions/wheel.py [ Failure ] # Flaky output -external/wpt/webdriver/tests/bidi/browsing_context/handle_user_prompt/handle_user_prompt.py [ Timeout ] -external/wpt/webdriver/tests/bidi/browsing_context/navigation_started/navigation_started.py [ Timeout ] -external/wpt/webdriver/tests/bidi/browsing_context/print/invalid.py [ Timeout ] -external/wpt/webdriver/tests/bidi/browsing_context/user_prompt_opened/user_prompt_opened.py [ Timeout ] external/wpt/webdriver/tests/bidi/network/add_intercept/invalid.py [ Timeout ] external/wpt/webdriver/tests/bidi/network/add_intercept/phases.py [ Timeout ] external/wpt/webdriver/tests/bidi/network/remove_intercept/remove_intercept.py [ Timeout ] @@ -28,9 +23,17 @@ crbug.com/626703 external/wpt/webdriver/tests/bidi/network/add_intercept/phase_auth_required.py [ Timeout ] crbug.com/626703 external/wpt/webdriver/tests/bidi/network/auth_required/auth_required.py [ Timeout ] external/wpt/webdriver/tests/bidi/network/add_intercept/url_patterns.py [ Timeout ] +external/wpt/webdriver/tests/bidi/browsing_context/capture_screenshot/frame.py [ Failure ] # Flaky output +external/wpt/webdriver/tests/bidi/browsing_context/handle_user_prompt/handle_user_prompt.py [ Timeout ] +external/wpt/webdriver/tests/bidi/browsing_context/navigation_started/navigation_started.py [ Timeout ] +external/wpt/webdriver/tests/bidi/browsing_context/print/invalid.py [ Timeout ] +external/wpt/webdriver/tests/bidi/browsing_context/user_prompt_opened/user_prompt_opened.py [ Timeout ] external/wpt/webdriver/tests/bidi/browsing_context/capture_screenshot/format.py [ Failure ] external/wpt/webdriver/tests/bidi/browsing_context/capture_screenshot/invalid.py [ Failure ] external/wpt/webdriver/tests/bidi/browsing_context/capture_screenshot/origin.py [ Failure ] +external/wpt/webdriver/tests/bidi/browsing_context/traverse_history/context.py [ Failure ] +external/wpt/webdriver/tests/bidi/browsing_context/traverse_history/delta.py [ Failure ] +external/wpt/webdriver/tests/bidi/browsing_context/traverse_history/invalid.py [ Failure ] # Chrome specific failures crbug.com/1499775 external/wpt/css/css-text/text-transform/text-transform-capitalize-014.html [ Failure Pass ]
diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/web_tests/TestExpectations index 78552f5..3ee7d7d 100644 --- a/third_party/blink/web_tests/TestExpectations +++ b/third_party/blink/web_tests/TestExpectations
@@ -7116,5 +7116,5 @@ crbug.com/1495671 [ Win ] external/wpt/webmessaging/with-ports/020.html [ Failure Pass ] # Gardener 2023-11-24 -crbug.com/1504652 [ Mac ] external/wpt/long-animation-frame/tentative/loaf-iframe.html [ Timeout Pass ] +crbug.com/1504652 [ Mac ] external/wpt/long-animation-frame/tentative/loaf-iframe.html [ Pass Timeout ] crbug.com/1503086 external/wpt/html/semantics/invokers/invoketarget-on-audio-behavior.tentative.html [ Failure Pass Timeout ]
diff --git a/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_8.json b/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_8.json index c6f2834..0dae889 100644 --- a/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_8.json +++ b/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_8.json
@@ -103593,7 +103593,7 @@ ] ], "xyz-003.html": [ - "5b99771d1c0a9ee0baec61c514969af80d7350cf", + "d9f3326c582343b6ebaf181ba57f4eb2e706bc33", [ null, [ @@ -103602,7 +103602,23 @@ "==" ] ], - {} + { + "fuzzy": [ + [ + null, + [ + [ + 0, + 1 + ], + [ + 0, + 18432 + ] + ] + ] + ] + } ] ], "xyz-004.html": [ @@ -103723,7 +103739,7 @@ ] ], "xyz-d65-003.html": [ - "4dc5e127ef20915e8d28cfc4f4d54935ff886b68", + "d5e5cda1f16809b1d8c0a22572ae2a316d3a30cb", [ null, [ @@ -103732,7 +103748,23 @@ "==" ] ], - {} + { + "fuzzy": [ + [ + null, + [ + [ + 0, + 1 + ], + [ + 0, + 18432 + ] + ] + ] + ] + } ] ], "xyz-d65-004.html": [ @@ -337602,6 +337634,14 @@ [] ] }, + "signs-abs-computed-expected.txt": [ + "3421b47828cce80bffbd8a465bba7d6b5c5e2822", + [] + ], + "signs-abs-invalid-expected.txt": [ + "8c83fbb9da613079bf2a2e0aa3085b68eba8d993", + [] + ], "support": { "1x1-green.png": [ "b98ca0ba0a03c580ac339e4a3653539cfa8edc71", @@ -389405,7 +389445,7 @@ [] ], "urltestdata.json": [ - "46248d132331c1d67a04f6992711ae8ab2d3f717", + "69767a20db90bf4d6b37fb6ade5cf2ea5d6686be", [] ] }, @@ -389498,6 +389538,10 @@ "b92b53ee45cd98933a3c2fbcf404478eb8f66a06", [] ], + "urlpattern-hasregexpgroups-tests.js": [ + "4be886e4a5390d7d43356d853cc00c7bbb23d361", + [] + ], "urlpatterntestdata.json": [ "058079bb6d17ace15e7cf6505dc966ea2de0ee45", [] @@ -390418,7 +390462,7 @@ [] ], "property-list.js": [ - "32b857c30ed5852ae8d027219dd473c46a94bc19", + "39a92c7498df4902b5502602a796518143ad4d41", [] ], "property-types.js": [ @@ -391756,7 +391800,7 @@ ], "bidi": { "__init__.py": [ - "fd2f704d3e5c4e4e26bb8107306012c59085e39a", + "9c976d4a674cc2912909695a62014a317cced331", [] ], "browsing_context": { @@ -391772,7 +391816,7 @@ }, "capture_screenshot": { "__init__.py": [ - "18f64fb518917f6a5054089338fc4a53967d1fa0", + "32d44104d510de8221d43d9c3262cc6b31ae2238", [] ] }, @@ -391896,6 +391940,12 @@ [] ] }, + "traverse_history": { + "__init__.py": [ + "1227831549182075b71ed81d80161ff639b54f49", + [] + ] + }, "user_prompt_closed": { "__init__.py": [ "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", @@ -399366,7 +399416,7 @@ ] ], "Blob-stream.any.js": [ - "87710a171a9752416f47596f59d2dc6313d9bd34", + "453144cac964a627bb2a004d435887b15ddc96d3", [ "FileAPI/blob/Blob-stream.any.html", { @@ -446809,21 +446859,21 @@ ] ], "grid-self-baseline-not-applied-if-sizing-cyclic-dependency-001.html": [ - "723f3d3090299573b4598b44c8d2a83a25947bb4", + "d6526d7995cf80c63af5f2f9fc21da502bbd4264", [ null, {} ] ], "grid-self-baseline-not-applied-if-sizing-cyclic-dependency-002.html": [ - "462daece10b8b3541ef29acf39bc6afc9dfd289d", + "ad989b98a63ea57419565f1587e4b3f12f97b376", [ null, {} ] ], "grid-self-baseline-not-applied-if-sizing-cyclic-dependency-003.html": [ - "d50263320ce2fd7e5448648c08e7d0a044978488", + "3d688ad15f903bbc96c30cf7a58f232029570905", [ null, {} @@ -465573,14 +465623,14 @@ ] ], "signs-abs-computed.html": [ - "9b8ec89e2a98729deadcbb3e07f700c4eaca6372", + "73b1e0d1c326673d9e2628efed4f2e716ddf2202", [ null, {} ] ], "signs-abs-invalid.html": [ - "15b058d0c42bade38f083838eaaabadc64410627", + "ccb94c21c232ebdc547f818bbbb5c4cd8935ace4", [ null, {} @@ -637488,6 +637538,69 @@ } ] ], + "urlpattern-hasregexpgroups.any.js": [ + "33133d2511b065ca94cc5e793066cc8111b4d6e6", + [ + "urlpattern/urlpattern-hasregexpgroups.any.html", + { + "script_metadata": [ + [ + "global", + "window,worker" + ], + [ + "script", + "resources/urlpattern-hasregexpgroups-tests.js" + ] + ] + } + ], + [ + "urlpattern/urlpattern-hasregexpgroups.any.serviceworker.html", + { + "script_metadata": [ + [ + "global", + "window,worker" + ], + [ + "script", + "resources/urlpattern-hasregexpgroups-tests.js" + ] + ] + } + ], + [ + "urlpattern/urlpattern-hasregexpgroups.any.sharedworker.html", + { + "script_metadata": [ + [ + "global", + "window,worker" + ], + [ + "script", + "resources/urlpattern-hasregexpgroups-tests.js" + ] + ] + } + ], + [ + "urlpattern/urlpattern-hasregexpgroups.any.worker.html", + { + "script_metadata": [ + [ + "global", + "window,worker" + ], + [ + "script", + "resources/urlpattern-hasregexpgroups-tests.js" + ] + ] + } + ] + ], "urlpattern.any.js": [ "7d47d22609bf8eb14386b0363e36b86f77b2780d", [ @@ -669559,6 +669672,21 @@ "websockets/opening-handshake/005.html?wss", {} ] + ], + "006.html": [ + "304069037cce7e4d6906843484a0257337862488", + [ + "websockets/opening-handshake/006.html?default", + { + "timeout": "long" + } + ], + [ + "websockets/opening-handshake/006.html?wss", + { + "timeout": "long" + } + ] ] }, "referrer.any.js": [ @@ -695306,7 +695434,14 @@ ] ], "clip.py": [ - "1916cb9b7fa0a555a977129f041b49227148cb58", + "4e37c4714c3ae27e4bb1bfe968cf2d81618b654e", + [ + null, + {} + ] + ], + "format.py": [ + "7401d94a3ecccd23659274243d2dbd1eb0dcdf7c", [ null, {} @@ -695320,7 +695455,14 @@ ] ], "invalid.py": [ - "9eb459afb5d4295f39938c92915f75caf8ef210a", + "58481c4e7ad4464f107dc8bb11ad2def93e7c67d", + [ + null, + {} + ] + ], + "origin.py": [ + "7161d3633630caff7a946cf9c2bdb78b9b21ac5d", [ null, {} @@ -695680,6 +695822,29 @@ ] ] }, + "traverse_history": { + "context.py": [ + "7635c0e9ddd8a4413cc5aeb8af4ff4bbe5ae574a", + [ + null, + {} + ] + ], + "delta.py": [ + "05f4d99544fc850d8a9a325fe2e0eed49dbdf768", + [ + null, + {} + ] + ], + "invalid.py": [ + "abb0d69c937d0a052f95431a674a3cfc45914a29", + [ + null, + {} + ] + ] + }, "user_prompt_closed": { "user_prompt_closed.py": [ "68a0eed1922ea8a5520190f7babb85f315719c70",
diff --git a/third_party/blink/web_tests/external/wpt/FileAPI/blob/Blob-stream.any.js b/third_party/blink/web_tests/external/wpt/FileAPI/blob/Blob-stream.any.js index 87710a1..453144c 100644 --- a/third_party/blink/web_tests/external/wpt/FileAPI/blob/Blob-stream.any.js +++ b/third_party/blink/web_tests/external/wpt/FileAPI/blob/Blob-stream.any.js
@@ -70,7 +70,18 @@ await garbageCollect(); const chunks = await read_all_chunks(stream, { perform_gc: true }); assert_array_equals(chunks, input_arr); -}, "Blob.stream() garbage collection of blob shouldn't break stream" + +}, "Blob.stream() garbage collection of blob shouldn't break stream " + + "consumption") + +promise_test(async() => { + const input_arr = [8, 241, 48, 123, 151]; + const typed_arr = new Uint8Array(input_arr); + let blob = new Blob([typed_arr]); + const chunksPromise = read_all_chunks(blob.stream()); + // It somehow matters to do GC here instead of doing `perform_gc: true` + await garbageCollect(); + assert_array_equals(await chunksPromise, input_arr); +}, "Blob.stream() garbage collection of stream shouldn't break stream " + "consumption") promise_test(async () => {
diff --git a/third_party/blink/web_tests/external/wpt/css/css-color/xyz-003.html b/third_party/blink/web_tests/external/wpt/css/css-color/xyz-003.html index 5b99771..d9f3326 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-color/xyz-003.html +++ b/third_party/blink/web_tests/external/wpt/css/css-color/xyz-003.html
@@ -4,6 +4,7 @@ <link rel="author" title="Sam Weinig" href="mailto:weinig@apple.com"> <link rel="help" href="https://drafts.csswg.org/css-color-4/#valdef-color-xyz"> <link rel="match" href="xyz-003-ref.html"> +<meta name="fuzzy" content="maxDifference=0-1;totalPixels=0-18432"> <meta name="assert" content="xyz with no alpha"> <style> body { background-color: grey; }
diff --git a/third_party/blink/web_tests/external/wpt/css/css-color/xyz-d65-003.html b/third_party/blink/web_tests/external/wpt/css/css-color/xyz-d65-003.html index 4dc5e127..d5e5cda 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-color/xyz-d65-003.html +++ b/third_party/blink/web_tests/external/wpt/css/css-color/xyz-d65-003.html
@@ -4,6 +4,7 @@ <link rel="author" title="Sam Weinig" href="mailto:weinig@apple.com"> <link rel="help" href="https://drafts.csswg.org/css-color-4/#valdef-color-xyz"> <link rel="match" href="xyz-d65-003-ref.html"> +<meta name="fuzzy" content="maxDifference=0-1;totalPixels=0-18432"> <meta name="assert" content="xyz-d65 with no alpha"> <style> body { background-color: grey; }
diff --git a/third_party/blink/web_tests/external/wpt/css/css-grid/alignment/grid-self-baseline-not-applied-if-sizing-cyclic-dependency-001.html b/third_party/blink/web_tests/external/wpt/css/css-grid/alignment/grid-self-baseline-not-applied-if-sizing-cyclic-dependency-001.html index 723f3d3..d6526d7 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-grid/alignment/grid-self-baseline-not-applied-if-sizing-cyclic-dependency-001.html +++ b/third_party/blink/web_tests/external/wpt/css/css-grid/alignment/grid-self-baseline-not-applied-if-sizing-cyclic-dependency-001.html
@@ -17,7 +17,7 @@ position: relative; border: solid; text-orientation: sideways; - font-family: Ahem; + font: 15px/1 Ahem; } .columns { grid-template-columns: 100px 100px; } @@ -66,27 +66,27 @@ <div style="height: 200px"> <pre>min-content-sized rows - items with relative height</pre> <div class="inline-grid alignItemsBaseline columns min-content-rows"> - <div class="firstRowFirstColumn" data-offset-x="0" data-offset-y="0" data-expected-width="100" data-expected-height="80">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div> - <div class="firstRowSecondColumn height200Percent" data-offset-x="100" data-offset-y="0" data-expected-width="100" data-expected-height="160"></div> - <div class="autoRowAutoColumnSpanning2 height25" data-offset-x="0" data-offset-y="80" data-expected-width="200" data-expected-height="25"></div> + <div class="firstRowFirstColumn" data-offset-x="0" data-offset-y="0" data-expected-width="100" data-expected-height="75">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div> + <div class="firstRowSecondColumn height200Percent" data-offset-x="100" data-offset-y="0" data-expected-width="100" data-expected-height="150"></div> + <div class="autoRowAutoColumnSpanning2 height25" data-offset-x="0" data-offset-y="75" data-expected-width="200" data-expected-height="25"></div> </div> </div> <div style="height: 200px"> <pre>max-content-sized rows - items with relative height</pre> <div class="inline-grid alignItemsBaseline columns max-content-rows"> - <div class="firstRowFirstColumn" data-offset-x="0" data-offset-y="0" data-expected-width="100" data-expected-height="80">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div> - <div class="firstRowSecondColumn height200Percent" data-offset-x="100" data-offset-y="0" data-expected-width="100" data-expected-height="160"></div> - <div class="autoRowAutoColumnSpanning2 height25" data-offset-x="0" data-offset-y="80" data-expected-width="200" data-expected-height="25"></div> + <div class="firstRowFirstColumn" data-offset-x="0" data-offset-y="0" data-expected-width="100" data-expected-height="75">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div> + <div class="firstRowSecondColumn height200Percent" data-offset-x="100" data-offset-y="0" data-expected-width="100" data-expected-height="150"></div> + <div class="autoRowAutoColumnSpanning2 height25" data-offset-x="0" data-offset-y="75" data-expected-width="200" data-expected-height="25"></div> </div> </div> <div style="height: 200px"> <pre>fit-content-sized rows - items with relative height</pre> <div class="inline-grid alignItemsBaseline columns fit-content-rows"> - <div class="firstRowFirstColumn" data-offset-x="0" data-offset-y="0" data-expected-width="100" data-expected-height="80">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div> - <div class="firstRowSecondColumn height200Percent" data-offset-x="100" data-offset-y="0" data-expected-width="100" data-expected-height="160"></div> - <div class="autoRowAutoColumnSpanning2 height25" data-offset-x="0" data-offset-y="80" data-expected-width="200" data-expected-height="25"></div> + <div class="firstRowFirstColumn" data-offset-x="0" data-offset-y="0" data-expected-width="100" data-expected-height="75">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div> + <div class="firstRowSecondColumn height200Percent" data-offset-x="100" data-offset-y="0" data-expected-width="100" data-expected-height="150"></div> + <div class="autoRowAutoColumnSpanning2 height25" data-offset-x="0" data-offset-y="75" data-expected-width="200" data-expected-height="25"></div> </div> </div> @@ -120,27 +120,27 @@ <div style="height: 250px"> <pre>min-content-sized columns - items with relative width</pre> <div class="inline-grid justifyItemsBaseline rows min-content-columns"> - <div class="firstRowFirstColumn verticalRL" data-offset-x="0" data-offset-y="0" data-expected-width="80" data-expected-height="100">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div> - <div class="secondRowFirstColumn verticalRL width200Percent" data-offset-x="0" data-offset-y="100" data-expected-width="160" data-expected-height="100"></div> - <div class="firstRowSpanning2AutoColumn verticalRL width25" data-offset-x="80" data-offset-y="0" data-expected-width="25" data-expected-height="200"></div> + <div class="firstRowFirstColumn verticalRL" data-offset-x="0" data-offset-y="0" data-expected-width="75" data-expected-height="100">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div> + <div class="secondRowFirstColumn verticalRL width200Percent" data-offset-x="0" data-offset-y="100" data-expected-width="150" data-expected-height="100"></div> + <div class="firstRowSpanning2AutoColumn verticalRL width25" data-offset-x="75" data-offset-y="0" data-expected-width="25" data-expected-height="200"></div> </div> </div> <div style="height: 250px"> <pre>max-content-sized columns - items with relative width</pre> <div class="inline-grid justifyItemsBaseline rows max-content-columns"> - <div class="firstRowFirstColumn verticalRL" data-offset-x="0" data-offset-y="0" data-expected-width="80" data-expected-height="100">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div> - <div class="secondRowFirstColumn verticalRL width200Percent" data-offset-x="0" data-offset-y="100" data-expected-width="160" data-expected-height="100"></div> - <div class="firstRowSpanning2AutoColumn verticalRL width25" data-offset-x="80" data-offset-y="0" data-expected-width="25" data-expected-height="200"></div> + <div class="firstRowFirstColumn verticalRL" data-offset-x="0" data-offset-y="0" data-expected-width="75" data-expected-height="100">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div> + <div class="secondRowFirstColumn verticalRL width200Percent" data-offset-x="0" data-offset-y="100" data-expected-width="150" data-expected-height="100"></div> + <div class="firstRowSpanning2AutoColumn verticalRL width25" data-offset-x="75" data-offset-y="0" data-expected-width="25" data-expected-height="200"></div> </div> </div> <div style="height: 250px"> <pre>fit-content-sized columns - items with relative width</pre> <div class="inline-grid justifyItemsBaseline rows fit-content-columns"> - <div class="firstRowFirstColumn verticalRL" data-offset-x="0" data-offset-y="0" data-expected-width="80" data-expected-height="100">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div> - <div class="secondRowFirstColumn verticalRL width200Percent" data-offset-x="0" data-offset-y="100" data-expected-width="160" data-expected-height="100"></div> - <div class="firstRowSpanning2AutoColumn verticalRL width25" data-offset-x="80" data-offset-y="0" data-expected-width="25" data-expected-height="200"></div> + <div class="firstRowFirstColumn verticalRL" data-offset-x="0" data-offset-y="0" data-expected-width="75" data-expected-height="100">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div> + <div class="secondRowFirstColumn verticalRL width200Percent" data-offset-x="0" data-offset-y="100" data-expected-width="150" data-expected-height="100"></div> + <div class="firstRowSpanning2AutoColumn verticalRL width25" data-offset-x="75" data-offset-y="0" data-expected-width="25" data-expected-height="200"></div> </div> </div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-grid/alignment/grid-self-baseline-not-applied-if-sizing-cyclic-dependency-002.html b/third_party/blink/web_tests/external/wpt/css/css-grid/alignment/grid-self-baseline-not-applied-if-sizing-cyclic-dependency-002.html index 462daec..ad989b98 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-grid/alignment/grid-self-baseline-not-applied-if-sizing-cyclic-dependency-002.html +++ b/third_party/blink/web_tests/external/wpt/css/css-grid/alignment/grid-self-baseline-not-applied-if-sizing-cyclic-dependency-002.html
@@ -17,7 +17,7 @@ position: relative; border: solid; text-orientation: sideways; - font-family: Ahem; + font: 15px/1 Ahem; } .columns { grid-template-columns: 100px 100px; } @@ -60,45 +60,45 @@ <!-- NOTE: previously this test was asserting some "cyclic" behaviour where an item would switch baseline alignment participation - this is no longer the case per spec. --> <pre>auto-sized rows - horizonal grid and verticalLR item - column-axis baseline</pre> <div class="inline-grid alignItemsBaseline columns height200"> - <div class="firstRowFirstColumn bigFont paddingBottom" data-offset-x="0" data-offset-y="97" data-expected-width="100" data-expected-height="75">É</div> - <div class="firstRowSecondColumn verticalLR" data-offset-x="100" data-offset-y="0" data-expected-width="100" data-expected-height="137">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div> - <div class="autoRowAutoColumnSpanning2 height25" data-offset-x="0" data-offset-y="137" data-expected-width="200" data-expected-height="25"></div> + <div class="firstRowFirstColumn bigFont paddingBottom" data-offset-x="0" data-offset-y="95" data-expected-width="100" data-expected-height="75">É</div> + <div class="firstRowSecondColumn verticalLR" data-offset-x="100" data-offset-y="0" data-expected-width="100" data-expected-height="135">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div> + <div class="autoRowAutoColumnSpanning2 height25" data-offset-x="0" data-offset-y="135" data-expected-width="200" data-expected-height="25"></div> </div> <pre>min-content-sized rows - horizonal grid and verticalLR item - column-axis baseline</pre> <div class="inline-grid alignItemsBaseline columns min-content-rows"> - <div class="firstRowFirstColumn bigFont paddingBottom" data-offset-x="0" data-offset-y="59" data-expected-width="100" data-expected-height="75">É</div> - <div class="firstRowSecondColumn verticalLR" data-offset-x="100" data-offset-y="0" data-expected-width="100" data-expected-height="99">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div> - <div class="autoRowAutoColumnSpanning2 height25" data-offset-x="0" data-offset-y="99" data-expected-width="200" data-expected-height="25"></div> + <div class="firstRowFirstColumn bigFont paddingBottom" data-offset-x="0" data-offset-y="55" data-expected-width="100" data-expected-height="75">É</div> + <div class="firstRowSecondColumn verticalLR" data-offset-x="100" data-offset-y="0" data-expected-width="100" data-expected-height="95">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div> + <div class="autoRowAutoColumnSpanning2 height25" data-offset-x="0" data-offset-y="95" data-expected-width="200" data-expected-height="25"></div> </div> <pre>max-content-sized rows - horizonal grid and verticalLR item - column-axis baseline</pre> <div class="inline-grid alignItemsBaseline columns max-content-rows"> - <div class="firstRowFirstColumn bigFont paddingBottom" data-offset-x="0" data-offset-y="59" data-expected-width="100" data-expected-height="75">É</div> - <div class="firstRowSecondColumn verticalLR" data-offset-x="100" data-offset-y="0" data-expected-width="100" data-expected-height="99">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div> - <div class="autoRowAutoColumnSpanning2 height25" data-offset-x="0" data-offset-y="99" data-expected-width="200" data-expected-height="25"></div> + <div class="firstRowFirstColumn bigFont paddingBottom" data-offset-x="0" data-offset-y="55" data-expected-width="100" data-expected-height="75">É</div> + <div class="firstRowSecondColumn verticalLR" data-offset-x="100" data-offset-y="0" data-expected-width="100" data-expected-height="95">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div> + <div class="autoRowAutoColumnSpanning2 height25" data-offset-x="0" data-offset-y="95" data-expected-width="200" data-expected-height="25"></div> </div> <pre>fit-content-sized rows - horizonal grid and verticalLR item - column-axis baseline</pre> <div class="inline-grid alignItemsBaseline columns fit-content-rows"> - <div class="firstRowFirstColumn bigFont paddingBottom" data-offset-x="0" data-offset-y="59" data-expected-width="100" data-expected-height="75">É</div> - <div class="firstRowSecondColumn verticalLR" data-offset-x="100" data-offset-y="0" data-expected-width="100" data-expected-height="99">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div> - <div class="autoRowAutoColumnSpanning2 height25" data-offset-x="0" data-offset-y="99" data-expected-width="200" data-expected-height="25"></div> + <div class="firstRowFirstColumn bigFont paddingBottom" data-offset-x="0" data-offset-y="55" data-expected-width="100" data-expected-height="75">É</div> + <div class="firstRowSecondColumn verticalLR" data-offset-x="100" data-offset-y="0" data-expected-width="100" data-expected-height="95">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div> + <div class="autoRowAutoColumnSpanning2 height25" data-offset-x="0" data-offset-y="95" data-expected-width="200" data-expected-height="25"></div> </div> <pre>flex-sized rows - horizonal grid and verticalLR item - column-axis baseline</pre> <div class="inline-grid alignItemsBaseline columns flex-rows"> - <div class="firstRowFirstColumn bigFont paddingBottom" data-offset-x="0" data-offset-y="59" data-expected-width="100" data-expected-height="75">É</div> - <div class="firstRowSecondColumn verticalLR" data-offset-x="100" data-offset-y="0" data-expected-width="100" data-expected-height="99">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div> - <div class="autoRowAutoColumnSpanning2 height25" data-offset-x="0" data-offset-y="99" data-expected-width="200" data-expected-height="25"></div> + <div class="firstRowFirstColumn bigFont paddingBottom" data-offset-x="0" data-offset-y="55" data-expected-width="100" data-expected-height="75">É</div> + <div class="firstRowSecondColumn verticalLR" data-offset-x="100" data-offset-y="0" data-expected-width="100" data-expected-height="95">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div> + <div class="autoRowAutoColumnSpanning2 height25" data-offset-x="0" data-offset-y="95" data-expected-width="200" data-expected-height="25"></div> </div> <pre>max-flex-sized rows - horizonal grid and verticalLR item - column-axis baseline<br>baseline is not applied initially, but orthogonal items force repeating the track sizing and height is not indefinite in that phase.</pre> <!-- https://github.com/w3c/csswg-drafts/issues/3046 --> <div class="inline-grid alignItemsBaseline columns auto-rows"> - <div class="firstRowFirstColumn bigFont paddingBottom" data-offset-x="0" data-offset-y="59" data-expected-width="100" data-expected-height="75">É</div> - <div class="firstRowSecondColumn verticalLR" data-offset-x="100" data-offset-y="0" data-expected-width="100" data-expected-height="99">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div> - <div class="autoRowAutoColumnSpanning2 height25" data-offset-x="0" data-offset-y="99" data-expected-width="200" data-expected-height="25"></div> + <div class="firstRowFirstColumn bigFont paddingBottom" data-offset-x="0" data-offset-y="55" data-expected-width="100" data-expected-height="75">É</div> + <div class="firstRowSecondColumn verticalLR" data-offset-x="100" data-offset-y="0" data-expected-width="100" data-expected-height="95">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div> + <div class="autoRowAutoColumnSpanning2 height25" data-offset-x="0" data-offset-y="95" data-expected-width="200" data-expected-height="25"></div> </div> <pre>auto-sized columns - horizontal grid item - row-axis baseline</pre> @@ -111,37 +111,37 @@ <pre>min-content-sized columns - horizontal grid item - row-axis baseline</pre> <div class="inline-grid justifyItemsBaseline rows min-content-columns"> <div class="firstRowFirstColumn bigFont verticalLR paddingLeft" data-offset-x="0" data-offset-y="0" data-expected-width="75" data-expected-height="100">É</div> - <div class="secondRowFirstColumn" data-offset-x="35" data-offset-y="100" data-expected-width="99" data-expected-height="100">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div> - <div class="firstRowSpanning2AutoColumn width25" data-offset-x="99" data-offset-y="0" data-expected-width="25" data-expected-height="200"></div> + <div class="secondRowFirstColumn" data-offset-x="35" data-offset-y="100" data-expected-width="95" data-expected-height="100">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div> + <div class="firstRowSpanning2AutoColumn width25" data-offset-x="95" data-offset-y="0" data-expected-width="25" data-expected-height="200"></div> </div> <pre>max-content-sized columns - horizontal grid item - row-axis baseline</pre> <div class="inline-grid justifyItemsBaseline rows max-content-columns"> <div class="firstRowFirstColumn bigFont verticalLR paddingLeft" data-offset-x="0" data-offset-y="0" data-expected-width="75" data-expected-height="100">É</div> - <div class="secondRowFirstColumn" data-offset-x="35" data-offset-y="100" data-expected-width="416" data-expected-height="100">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div> - <div class="firstRowSpanning2AutoColumn width25" data-offset-x="451" data-offset-y="0" data-expected-width="25" data-expected-height="200"></div> + <div class="secondRowFirstColumn" data-offset-x="35" data-offset-y="100" data-expected-width="390" data-expected-height="100">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div> + <div class="firstRowSpanning2AutoColumn width25" data-offset-x="425" data-offset-y="0" data-expected-width="25" data-expected-height="200"></div> </div> <pre>fit-content-sized columns - horizontal grid item - row-axis baseline</pre> <div class="inline-grid justifyItemsBaseline rows fit-content-columns"> <div class="firstRowFirstColumn bigFont verticalLR paddingLeft" data-offset-x="0" data-offset-y="0" data-expected-width="75" data-expected-height="100">É</div> - <div class="secondRowFirstColumn" data-offset-x="35" data-offset-y="100" data-expected-width="416" data-expected-height="100">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div> - <div class="firstRowSpanning2AutoColumn width25" data-offset-x="451" data-offset-y="0" data-expected-width="25" data-expected-height="200"></div> + <div class="secondRowFirstColumn" data-offset-x="35" data-offset-y="100" data-expected-width="390" data-expected-height="100">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div> + <div class="firstRowSpanning2AutoColumn width25" data-offset-x="425" data-offset-y="0" data-expected-width="25" data-expected-height="200"></div> </div> <pre>flex-sized columns - horizontal grid item - row-axis baseline</pre> <div class="inline-grid justifyItemsBaseline rows flex-columns"> <div class="firstRowFirstColumn bigFont verticalLR paddingLeft" data-offset-x="0" data-offset-y="0" data-expected-width="75" data-expected-height="100">É</div> - <div class="secondRowFirstColumn" data-offset-x="35" data-offset-y="100" data-expected-width="416" data-expected-height="100">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div> - <div class="firstRowSpanning2AutoColumn width25" data-offset-x="451" data-offset-y="0" data-expected-width="25" data-expected-height="200"></div> + <div class="secondRowFirstColumn" data-offset-x="35" data-offset-y="100" data-expected-width="390" data-expected-height="100">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div> + <div class="firstRowSpanning2AutoColumn width25" data-offset-x="425" data-offset-y="0" data-expected-width="25" data-expected-height="200"></div> </div> <pre>max-flex-sized columns - horizontal grid item - row-axis baseline<br>baseline is not applied initially, but orthogonal items force repeating the track sizing and height is not indefinite in that phase.</pre> <!-- https://github.com/w3c/csswg-drafts/issues/3046 --> <div class="inline-grid justifyItemsBaseline auto-rows max-flex-columns"> <div class="firstRowFirstColumn bigFont verticalLR paddingLeft" data-offset-x="0" data-offset-y="0" data-expected-width="75" data-expected-height="50">É</div> - <div class="secondRowFirstColumn verticalLR" data-offset-x="32" data-offset-y="50" data-expected-width="80" data-expected-height="100">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div> - <div class="firstRowSpanning2AutoColumn width25" data-offset-x="112" data-offset-y="0" data-expected-width="25" data-expected-height="150"></div> + <div class="secondRowFirstColumn verticalLR" data-offset-x="32" data-offset-y="50" data-expected-width="75" data-expected-height="100">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div> + <div class="firstRowSpanning2AutoColumn width25" data-offset-x="107" data-offset-y="0" data-expected-width="25" data-expected-height="150"></div> </div> <pre>auto-sized rows - verticalLR grid and horizontal item - column-axis baseline</pre> @@ -154,52 +154,52 @@ <pre>min-content-sized rows - verticalLR grid and horizontal item - column-axis baseline</pre> <div class="inline-grid verticalLR alignItemsBaseline columns min-content-rows"> <div class="firstRowFirstColumn bigFont paddingLeft" data-offset-x="0" data-offset-y="0" data-expected-width="75" data-expected-height="100">É</div> - <div class="firstRowSecondColumn horizontalTB" data-offset-x="35" data-offset-y="100" data-expected-width="99" data-expected-height="100">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div> - <div class="autoRowAutoColumnSpanning2 width25" data-offset-x="99" data-offset-y="0" data-expected-width="25" data-expected-height="200"></div> + <div class="firstRowSecondColumn horizontalTB" data-offset-x="35" data-offset-y="100" data-expected-width="95" data-expected-height="100">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div> + <div class="autoRowAutoColumnSpanning2 width25" data-offset-x="95" data-offset-y="0" data-expected-width="25" data-expected-height="200"></div> </div> <pre>max-content-sized rows - verticalLR grid and horizontal item - column-axis baseline</pre> <div class="inline-grid verticalLR alignItemsBaseline columns max-content-rows"> <div class="firstRowFirstColumn bigFont paddingLeft" data-offset-x="0" data-offset-y="0" data-expected-width="75" data-expected-height="100">É</div> - <div class="firstRowSecondColumn horizontalTB" data-offset-x="35" data-offset-y="100" data-expected-width="416" data-expected-height="100">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div> - <div class="autoRowAutoColumnSpanning2 width25" data-offset-x="451" data-offset-y="0" data-expected-width="25" data-expected-height="200"></div> + <div class="firstRowSecondColumn horizontalTB" data-offset-x="35" data-offset-y="100" data-expected-width="390" data-expected-height="100">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div> + <div class="autoRowAutoColumnSpanning2 width25" data-offset-x="425" data-offset-y="0" data-expected-width="25" data-expected-height="200"></div> </div> <pre>fit-content-sized rows - verticalLR grid and horizontal item - column-axis baseline</pre> <div class="inline-grid verticalLR alignItemsBaseline columns fit-content-rows"> <div class="firstRowFirstColumn bigFont paddingLeft" data-offset-x="0" data-offset-y="0" data-expected-width="75" data-expected-height="100">É</div> - <div class="firstRowSecondColumn horizontalTB" data-offset-x="35" data-offset-y="100" data-expected-width="416" data-expected-height="100">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div> - <div class="autoRowAutoColumnSpanning2 width25" data-offset-x="451" data-offset-y="0" data-expected-width="25" data-expected-height="200"></div> + <div class="firstRowSecondColumn horizontalTB" data-offset-x="35" data-offset-y="100" data-expected-width="390" data-expected-height="100">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div> + <div class="autoRowAutoColumnSpanning2 width25" data-offset-x="425" data-offset-y="0" data-expected-width="25" data-expected-height="200"></div> </div> <pre>flex-sized rows - verticalLR grid and horizontal item - column-axis baseline</pre> <div class="inline-grid verticalLR alignItemsBaseline columns flex-rows"> <div class="firstRowFirstColumn bigFont paddingLeft" data-offset-x="0" data-offset-y="0" data-expected-width="75" data-expected-height="100">É</div> - <div class="firstRowSecondColumn horizontalTB" data-offset-x="35" data-offset-y="100" data-expected-width="416" data-expected-height="100">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div> - <div class="autoRowAutoColumnSpanning2 width25" data-offset-x="451" data-offset-y="0" data-expected-width="25" data-expected-height="200"></div> + <div class="firstRowSecondColumn horizontalTB" data-offset-x="35" data-offset-y="100" data-expected-width="390" data-expected-height="100">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div> + <div class="autoRowAutoColumnSpanning2 width25" data-offset-x="425" data-offset-y="0" data-expected-width="25" data-expected-height="200"></div> </div> <pre>max-flex-sized rows - verticalLR grid and horizontal item - column-axis baseline<br>baseline is not applied initially, but orthogonal items force repeating the track sizing and height is not indefinite in that phase.</pre> <!-- https://github.com/w3c/csswg-drafts/issues/3046 --> <div class="inline-grid verticalLR alignItemsBaseline auto-columns max-flex-rows"> <div class="firstRowFirstColumn bigFont" data-offset-x="0" data-offset-y="0" data-expected-width="50" data-expected-height="50">É</div> - <div class="firstRowSecondColumn horizontalBT" data-offset-x="7" data-offset-y="50" data-expected-width="80" data-expected-height="100">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div> - <div class="autoRowAutoColumnSpanning2 width25" data-offset-x="87" data-offset-y="0" data-expected-width="25" data-expected-height="150"></div> + <div class="firstRowSecondColumn horizontalBT" data-offset-x="7" data-offset-y="50" data-expected-width="75" data-expected-height="100">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div> + <div class="autoRowAutoColumnSpanning2 width25" data-offset-x="82" data-offset-y="0" data-expected-width="25" data-expected-height="150"></div> </div> <pre>auto-sized rows - verticalRL grid and horizontal item - column-axis baseline</pre> <pre>baseline alignment is not supported, because the RL items do not share an alignment context with the LR items</pre> <div class="inline-grid verticalRL alignItemsBaseline columns width200"> - <div class="firstRowFirstColumn bigFont paddingLeft" data-offset-x="28" data-offset-y="0" data-expected-width="75" data-expected-height="100">É</div> - <div class="firstRowSecondColumn horizontalTB" data-offset-x="63" data-offset-y="100" data-expected-width="137" data-expected-height="100">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div> - <div class="autoRowAutoColumnSpanning2 width25" data-offset-x="38" data-offset-y="0" data-expected-width="25" data-expected-height="200"></div> + <div class="firstRowFirstColumn bigFont paddingLeft" data-offset-x="30" data-offset-y="0" data-expected-width="75" data-expected-height="100">É</div> + <div class="firstRowSecondColumn horizontalTB" data-offset-x="65" data-offset-y="100" data-expected-width="135" data-expected-height="100">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div> + <div class="autoRowAutoColumnSpanning2 width25" data-offset-x="40" data-offset-y="0" data-expected-width="25" data-expected-height="200"></div> </div> <pre>min-content-sized rows - verticalRL grid and horizontal item - column-axis baseline</pre> <pre>baseline alignment is not supported, because the RL items do not share an alignment context with the LR items</pre> <div class="inline-grid verticalRL alignItemsBaseline columns min-content-rows"> <div class="firstRowFirstColumn bigFont paddingLeft" data-offset-x="-10" data-offset-y="0" data-expected-width="75" data-expected-height="100">É</div> - <div class="firstRowSecondColumn horizontalTB" data-offset-x="25" data-offset-y="100" data-expected-width="99" data-expected-height="100">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div> + <div class="firstRowSecondColumn horizontalTB" data-offset-x="25" data-offset-y="100" data-expected-width="95" data-expected-height="100">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div> <div class="autoRowAutoColumnSpanning2 width25" data-offset-x="0" data-offset-y="0" data-expected-width="25" data-expected-height="200"></div> </div> @@ -207,7 +207,7 @@ <pre>baseline alignment is not supported, because the RL items do not share an alignment context with the LR items</pre> <div class="inline-grid verticalRL alignItemsBaseline columns max-content-rows"> <div class="firstRowFirstColumn bigFont paddingLeft" data-offset-x="-10" data-offset-y="0" data-expected-width="75" data-expected-height="100">É</div> - <div class="firstRowSecondColumn horizontalTB" data-offset-x="25" data-offset-y="100" data-expected-width="99" data-expected-height="100">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div> + <div class="firstRowSecondColumn horizontalTB" data-offset-x="25" data-offset-y="100" data-expected-width="95" data-expected-height="100">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div> <div class="autoRowAutoColumnSpanning2 width25" data-offset-x="0" data-offset-y="0" data-expected-width="25" data-expected-height="200"></div> </div> @@ -215,7 +215,7 @@ <pre>baseline alignment is not supported, because the RL items do not share an alignment context with the LR items</pre> <div class="inline-grid verticalRL alignItemsBaseline auto-columns fit-content-rows"> <div class="firstRowFirstColumn bigFont paddingLeft" data-offset-x="-10" data-offset-y="0" data-expected-width="75" data-expected-height="50">É</div> - <div class="firstRowSecondColumn horizontalTB" data-offset-x="25" data-offset-y="50" data-expected-width="99" data-expected-height="100">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div> + <div class="firstRowSecondColumn horizontalTB" data-offset-x="25" data-offset-y="50" data-expected-width="95" data-expected-height="100">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div> <div class="autoRowAutoColumnSpanning2 width25" data-offset-x="0" data-offset-y="0" data-expected-width="25" data-expected-height="150"></div> </div> @@ -223,7 +223,7 @@ <pre>baseline alignment is not supported, because the RL items do not share an alignment context with the LR items</pre> <div class="inline-grid verticalRL alignItemsBaseline auto-columns flex-rows"> <div class="firstRowFirstColumn bigFont paddingLeft" data-offset-x="-10" data-offset-y="0" data-expected-width="75" data-expected-height="50">É</div> - <div class="firstRowSecondColumn horizontalTB" data-offset-x="25" data-offset-y="50" data-expected-width="99" data-expected-height="100">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div> + <div class="firstRowSecondColumn horizontalTB" data-offset-x="25" data-offset-y="50" data-expected-width="95" data-expected-height="100">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div> <div class="autoRowAutoColumnSpanning2 width25" data-offset-x="0" data-offset-y="0" data-expected-width="25" data-expected-height="150"></div> </div> @@ -231,7 +231,7 @@ <pre>baseline alignment is not supported, because the RL items do not share an alignment context with the LR items</pre> <div class="inline-grid verticalRL alignItemsBaseline auto-columns max-flex-rows"> <div class="firstRowFirstColumn bigFont paddingLeft" data-offset-x="-10" data-offset-y="0" data-expected-width="75" data-expected-height="50">É</div> - <div class="firstRowSecondColumn horizontalTB" data-offset-x="25" data-offset-y="50" data-expected-width="99" data-expected-height="100">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div> + <div class="firstRowSecondColumn horizontalTB" data-offset-x="25" data-offset-y="50" data-expected-width="95" data-expected-height="100">ÉÉ É ÉÉ ÉÉÉÉ É ÉÉ ÉÉÉ ÉÉ É</div> <div class="autoRowAutoColumnSpanning2 width25" data-offset-x="0" data-offset-y="0" data-expected-width="25" data-expected-height="150"></div> </div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-grid/alignment/grid-self-baseline-not-applied-if-sizing-cyclic-dependency-003.html b/third_party/blink/web_tests/external/wpt/css/css-grid/alignment/grid-self-baseline-not-applied-if-sizing-cyclic-dependency-003.html index d502633..3d688ad 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-grid/alignment/grid-self-baseline-not-applied-if-sizing-cyclic-dependency-003.html +++ b/third_party/blink/web_tests/external/wpt/css/css-grid/alignment/grid-self-baseline-not-applied-if-sizing-cyclic-dependency-003.html
@@ -19,7 +19,7 @@ display: inline-grid; background: grey; text-orientation: sideways; - font-family: Ahem; + font: 15px/1 Ahem; } .row { grid: minmax(0px, 1fr) / auto 50px 100px } .column { grid: auto 50px 100px / minmax(0px, 1fr); }
diff --git a/third_party/blink/web_tests/external/wpt/css/css-values/signs-abs-computed-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-values/signs-abs-computed-expected.txt new file mode 100644 index 0000000..3421b47 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-values/signs-abs-computed-expected.txt
@@ -0,0 +1,6 @@ +This is a testharness.js-based test. +Found 1 FAIL, 0 TIMEOUT, 0 NOTRUN. +[FAIL] calc((1em + 1px) * (sign(1em - 10px - 10%) + 1)) should be used-value-equivalent to 21px + assert_equals: calc((1em + 1px) * (sign(1em - 10px - 10%) + 1)) and 21px serialize to the same thing in used values. expected "21px" but got "42px" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/external/wpt/css/css-values/signs-abs-computed.html b/third_party/blink/web_tests/external/wpt/css/css-values/signs-abs-computed.html index 9b8ec89..73b1e0d1 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-values/signs-abs-computed.html +++ b/third_party/blink/web_tests/external/wpt/css/css-values/signs-abs-computed.html
@@ -47,6 +47,8 @@ test_math_used('calc(10px + abs(10%))', '20px', {type:'length'}); test_math_used('abs(-10px)', '10px', {type:'length'}); test_math_used('abs(-10%)', '10px', {type:'length'}); +// (20px + 1px) * (sign(20px - 10px - 10px) + 1) +test_math_used('calc((1em + 1px) * (sign(1em - 10px - 10%) + 1))', '21px', {type:'length'}); // Test sign for zero test_zero('calc(sign(-0))', {is_negative: true});
diff --git a/third_party/blink/web_tests/external/wpt/css/css-values/signs-abs-invalid-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-values/signs-abs-invalid-expected.txt new file mode 100644 index 0000000..8c83fbb9 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-values/signs-abs-invalid-expected.txt
@@ -0,0 +1,6 @@ +This is a testharness.js-based test. +Found 1 FAIL, 0 TIMEOUT, 0 NOTRUN. +[FAIL] e.style['font-weight'] = "sign(10%)" should not set the property value + assert_equals: expected "" but got "sign(10%)" +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/external/wpt/css/css-values/signs-abs-invalid.html b/third_party/blink/web_tests/external/wpt/css/css-values/signs-abs-invalid.html index 15b058d..ccb94c2 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-values/signs-abs-invalid.html +++ b/third_party/blink/web_tests/external/wpt/css/css-values/signs-abs-invalid.html
@@ -8,7 +8,16 @@ <script src="../support/parsing-testcommon.js"></script> <script> function test_invalid_number(value) { - test_invalid_value('opacity', value); + test_invalid_value('font-weight', value); +} + +function test_invalid_length_percentage(value) { + test_invalid_value('margin-left', value); + test_invalid_length(value); +} + +function test_invalid_length(value) { + test_invalid_value('tab-size', value); } // Syntax checking @@ -24,6 +33,13 @@ test_invalid_number('abs(1 2)'); test_invalid_number('abs(1, , 2)'); test_invalid_number('abs(1, 2)'); +test_invalid_number('abs(1, 1%)'); +test_invalid_number('abs(1, 0px)'); +test_invalid_number('abs(1, 0s)'); +test_invalid_number('abs(1, 0deg)'); +test_invalid_number('abs(1, 0Hz)'); +test_invalid_number('abs(1, 0dpi)'); +test_invalid_number('abs(1, 0fr)'); test_invalid_number('sign()'); test_invalid_number('sign( )'); test_invalid_number('sign(,)'); @@ -36,6 +52,13 @@ test_invalid_number('sign(1 2)'); test_invalid_number('sign(1, , 2)'); test_invalid_number('sign(1, 2)'); +test_invalid_number('sign(1, 1%)'); +test_invalid_number('sign(1, 0px)'); +test_invalid_number('sign(1, 0s)'); +test_invalid_number('sign(1, 0deg)'); +test_invalid_number('sign(1, 0Hz)'); +test_invalid_number('sign(1, 0dpi)'); +test_invalid_number('sign(1, 0fr)'); // Type checking test_invalid_number('abs(0px)'); @@ -44,18 +67,11 @@ test_invalid_number('abs(0Hz)'); test_invalid_number('abs(0dpi)'); test_invalid_number('abs(0fr)'); -test_invalid_number('abs(1, 1%)'); -test_invalid_number('abs(1, 0px)'); -test_invalid_number('abs(1, 0s)'); -test_invalid_number('abs(1, 0deg)'); -test_invalid_number('abs(1, 0Hz)'); -test_invalid_number('abs(1, 0dpi)'); -test_invalid_number('abs(1, 0fr)'); -test_invalid_number('sign(1, 1%)'); -test_invalid_number('sign(1, 0px)'); -test_invalid_number('sign(1, 0s)'); -test_invalid_number('sign(1, 0deg)'); -test_invalid_number('sign(1, 0Hz)'); -test_invalid_number('sign(1, 0dpi)'); -test_invalid_number('sign(1, 0fr)'); -</script> \ No newline at end of file +test_invalid_number('abs(1%)'); +test_invalid_number('sign(10px + 5rad)'); +test_invalid_number('sign(10%)'); +test_invalid_length('abs(10%)'); +test_invalid_length('1px * sign(10%)'); +test_invalid_length('1px * sign(1em + 10%)'); +test_invalid_length_percentage('1px * sign(10px + 5rad)'); +</script>
diff --git a/third_party/blink/web_tests/external/wpt/url/resources/urltestdata.json b/third_party/blink/web_tests/external/wpt/url/resources/urltestdata.json index 46248d1..69767a2 100644 --- a/third_party/blink/web_tests/external/wpt/url/resources/urltestdata.json +++ b/third_party/blink/web_tests/external/wpt/url/resources/urltestdata.json
@@ -9678,8 +9678,8 @@ "protocol": "file:", "username": "", "password": "", - "host": "", - "hostname": "", + "host": "a", + "hostname": "a", "port": "", "pathname": "/", "search": "",
diff --git a/third_party/blink/web_tests/external/wpt/web-animations/animation-model/animation-types/property-list.js b/third_party/blink/web_tests/external/wpt/web-animations/animation-model/animation-types/property-list.js index 32b857c3..39a92c7 100644 --- a/third_party/blink/web_tests/external/wpt/web-animations/animation-model/animation-types/property-list.js +++ b/third_party/blink/web_tests/external/wpt/web-animations/animation-model/animation-types/property-list.js
@@ -1435,6 +1435,12 @@ types: [ ] }, + 'view-transition-name': { + // https://drafts.csswg.org/css-view-transitions/#propdef-view-transition-name + types: [ + { type: 'discrete', options: [ [ 'none', 'header' ] ] }, + ] + }, 'visibility': { // https://drafts.csswg.org/css2/visufx.html#propdef-visibility types: [ 'visibility' ]
diff --git a/third_party/blink/web_tests/external/wpt/webdriver/tests/bidi/__init__.py b/third_party/blink/web_tests/external/wpt/webdriver/tests/bidi/__init__.py index fd2f704d..9c976d4 100644 --- a/third_party/blink/web_tests/external/wpt/webdriver/tests/bidi/__init__.py +++ b/third_party/blink/web_tests/external/wpt/webdriver/tests/bidi/__init__.py
@@ -20,8 +20,9 @@ if type(expected) is dict: # Actual dict can have more keys as part of the forwards-compat design. - assert expected.keys() <= actual.keys(), \ - f"Key set should be present: {set(expected.keys()) - set(actual.keys())}" + assert ( + expected.keys() <= actual.keys() + ), f"Key set should be present: {set(expected.keys()) - set(actual.keys())}" for key in expected.keys(): recursive_compare(expected[key], actual[key]) return @@ -88,7 +89,8 @@ return window.devicePixelRatio; }""", target=ContextTarget(context["context"]), - await_promise=False) + await_promise=False, + ) return result["value"] @@ -122,6 +124,22 @@ return remote_mapping_to_dict(result["value"]) +async def get_document_dimensions(bidi_session, context: str): + expression = """ + ({ + height: document.documentElement.scrollHeight, + width: document.documentElement.scrollWidth, + }); + """ + result = await bidi_session.script.evaluate( + expression=expression, + target=ContextTarget(context["context"]), + await_promise=False, + ) + + return remote_mapping_to_dict(result["value"]) + + def remote_mapping_to_dict(js_object) -> Dict: obj = {} for key, value in js_object:
diff --git a/third_party/blink/web_tests/external/wpt/webdriver/tests/bidi/browsing_context/capture_screenshot/__init__.py b/third_party/blink/web_tests/external/wpt/webdriver/tests/bidi/browsing_context/capture_screenshot/__init__.py index 18f64fb..32d4410 100644 --- a/third_party/blink/web_tests/external/wpt/webdriver/tests/bidi/browsing_context/capture_screenshot/__init__.py +++ b/third_party/blink/web_tests/external/wpt/webdriver/tests/bidi/browsing_context/capture_screenshot/__init__.py
@@ -1,6 +1,7 @@ from math import floor from ... import ( get_device_pixel_ratio, + get_document_dimensions, get_element_dimensions, get_viewport_dimensions, remote_mapping_to_dict, @@ -72,6 +73,18 @@ return (floor(viewport["width"] * dpr), floor(viewport["height"] * dpr)) +async def get_physical_document_dimensions(bidi_session, context): + """Get the physical dimensions of the context's document. + + :param bidi_session: BiDiSession + :param context: Browsing context ID + :returns: Tuple of (int, int) containing document width, document height. + """ + document = await get_document_dimensions(bidi_session, context) + dpr = await get_device_pixel_ratio(bidi_session, context) + return (floor(document["width"] * dpr), floor(document["height"] * dpr)) + + async def get_reference_screenshot(bidi_session, inline, context, html): """Get the reference screenshot for the given context and html.
diff --git a/third_party/blink/web_tests/external/wpt/webdriver/tests/bidi/browsing_context/capture_screenshot/clip.py b/third_party/blink/web_tests/external/wpt/webdriver/tests/bidi/browsing_context/capture_screenshot/clip.py index 1916cb9b..4e37c47 100644 --- a/third_party/blink/web_tests/external/wpt/webdriver/tests/bidi/browsing_context/capture_screenshot/clip.py +++ b/third_party/blink/web_tests/external/wpt/webdriver/tests/bidi/browsing_context/capture_screenshot/clip.py
@@ -1,8 +1,12 @@ import pytest -from tests.support.image import png_dimensions + +import webdriver.bidi.error as error from webdriver.bidi.modules.browsing_context import ElementOptions, BoxOptions from webdriver.bidi.modules.script import ContextTarget +from tests.support.image import png_dimensions + + from . import ( get_element_coordinates, get_physical_element_dimensions, @@ -65,7 +69,7 @@ assert comparison.equal() -async def test_clip_viewport(bidi_session, top_context, inline, compare_png_bidi): +async def test_clip_box(bidi_session, top_context, inline, compare_png_bidi): url = inline("<input>") await bidi_session.browsing_context.navigate( context=top_context["context"], url=url, wait="complete" @@ -150,9 +154,7 @@ assert comparison.equal() -async def test_clip_viewport_scroll_to( - bidi_session, top_context, inline, compare_png_bidi -): +async def test_clip_box_scroll_to(bidi_session, top_context, inline, compare_png_bidi): element_styles = "background-color: black; width: 50px; height:50px;" # Render an element inside of viewport for the reference. @@ -208,7 +210,7 @@ assert comparison.equal() -async def test_clip_viewport_partially_visible( +async def test_clip_box_partially_visible( bidi_session, top_context, inline, compare_png_bidi ): viewport_dimensions = await get_viewport_dimensions(bidi_session, top_context) @@ -259,3 +261,44 @@ comparison = await compare_png_bidi(reference_data, new_data) assert comparison.equal() + + +async def test_clip_box_outside_of_window_viewport(bidi_session, top_context): + viewport_dimensions = await get_viewport_dimensions(bidi_session, top_context) + + with pytest.raises(error.UnableToCaptureScreenException): + await bidi_session.browsing_context.capture_screenshot( + context=top_context["context"], + clip=BoxOptions( + x=viewport_dimensions["width"], + y=viewport_dimensions["height"], + width=1, + height=1, + ), + ) + + +async def test_clip_element_outside_of_window_viewport( + bidi_session, top_context, inline +): + viewport_dimensions = await get_viewport_dimensions(bidi_session, top_context) + + element_styles = "background-color: black; width: 50px; height:50px;" + # Render element outside of viewport. + url = inline( + f"""<div style="{element_styles} margin-top: {viewport_dimensions["height"]}px"></div>""" + ) + await bidi_session.browsing_context.navigate( + context=top_context["context"], url=url, wait="complete" + ) + element = await bidi_session.script.evaluate( + await_promise=False, + expression="document.querySelector('div')", + target=ContextTarget(top_context["context"]), + ) + + with pytest.raises(error.UnableToCaptureScreenException): + await bidi_session.browsing_context.capture_screenshot( + context=top_context["context"], + clip=ElementOptions(element=element), + )
diff --git a/third_party/blink/web_tests/external/wpt/webdriver/tests/bidi/browsing_context/capture_screenshot/format.py b/third_party/blink/web_tests/external/wpt/webdriver/tests/bidi/browsing_context/capture_screenshot/format.py new file mode 100644 index 0000000..7401d94 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/webdriver/tests/bidi/browsing_context/capture_screenshot/format.py
@@ -0,0 +1,39 @@ +import pytest + +from webdriver.bidi.modules.browsing_context import FormatOptions + + +@pytest.mark.asyncio +async def test_format_type(bidi_session, top_context, inline): + await bidi_session.browsing_context.navigate( + context=top_context["context"], + url=inline("<div style='margin-top:2000px'>foo</div>"), + wait="complete") + + png_screenshot = await bidi_session.browsing_context.capture_screenshot( + context=top_context["context"], + format=FormatOptions(type="image/png")) + jpeg_screenshot = await bidi_session.browsing_context.capture_screenshot( + context=top_context["context"], + format=FormatOptions(type="image/jpeg")) + + assert png_screenshot != jpeg_screenshot + + +@pytest.mark.asyncio +async def test_format_quality(bidi_session, top_context, inline): + await bidi_session.browsing_context.navigate( + context=top_context["context"], + url=inline("<div style='margin-top:2000px'>foo</div>"), + wait="complete") + + jpeg_quality_screenshot = await bidi_session.browsing_context.capture_screenshot( + context=top_context["context"], + format=FormatOptions(type="image/jpeg",quality=0.1)) + jpeg_high_quality_screenshot = await bidi_session.browsing_context.capture_screenshot( + context=top_context["context"], + format=FormatOptions(type="image/jpeg",quality=1)) + + assert jpeg_quality_screenshot != jpeg_high_quality_screenshot + + assert len(jpeg_high_quality_screenshot) > len(jpeg_quality_screenshot)
diff --git a/third_party/blink/web_tests/external/wpt/webdriver/tests/bidi/browsing_context/capture_screenshot/invalid.py b/third_party/blink/web_tests/external/wpt/webdriver/tests/bidi/browsing_context/capture_screenshot/invalid.py index 9eb459a..58481c4e 100644 --- a/third_party/blink/web_tests/external/wpt/webdriver/tests/bidi/browsing_context/capture_screenshot/invalid.py +++ b/third_party/blink/web_tests/external/wpt/webdriver/tests/bidi/browsing_context/capture_screenshot/invalid.py
@@ -1,9 +1,11 @@ import pytest -from ... import get_viewport_dimensions - import webdriver.bidi.error as error -from webdriver.bidi.modules.browsing_context import ElementOptions, BoxOptions +from webdriver.bidi.modules.browsing_context import ( + BoxOptions, + ElementOptions, + FormatOptions, +) from webdriver.bidi.modules.script import ContextTarget pytestmark = pytest.mark.asyncio @@ -83,7 +85,7 @@ @pytest.mark.parametrize("value", [None, False, "foo", {}, []]) -async def test_params_clip_viewport_x_invalid_type(bidi_session, top_context, value): +async def test_params_clip_box_x_invalid_type(bidi_session, top_context, value): with pytest.raises(error.InvalidArgumentException): await bidi_session.browsing_context.capture_screenshot( context=top_context["context"], @@ -92,7 +94,7 @@ @pytest.mark.parametrize("value", [None, False, "foo", {}, []]) -async def test_params_clip_viewport_y_invalid_type(bidi_session, top_context, value): +async def test_params_clip_box_y_invalid_type(bidi_session, top_context, value): with pytest.raises(error.InvalidArgumentException): await bidi_session.browsing_context.capture_screenshot( context=top_context["context"], @@ -101,9 +103,7 @@ @pytest.mark.parametrize("value", [None, False, "foo", {}, []]) -async def test_params_clip_viewport_width_invalid_type( - bidi_session, top_context, value -): +async def test_params_clip_box_width_invalid_type(bidi_session, top_context, value): with pytest.raises(error.InvalidArgumentException): await bidi_session.browsing_context.capture_screenshot( context=top_context["context"], @@ -112,9 +112,7 @@ @pytest.mark.parametrize("value", [None, False, "foo", {}, []]) -async def test_params_clip_viewport_height_invalid_type( - bidi_session, top_context, value -): +async def test_params_clip_box_height_invalid_type(bidi_session, top_context, value): with pytest.raises(error.InvalidArgumentException): await bidi_session.browsing_context.capture_screenshot( context=top_context["context"], @@ -122,7 +120,7 @@ ) -async def test_params_clip_viewport_dimensions_invalid_value(bidi_session, top_context): +async def test_params_clip_box_dimensions_invalid_value(bidi_session, top_context): with pytest.raises(error.UnableToCaptureScreenException): await bidi_session.browsing_context.capture_screenshot( context=top_context["context"], @@ -130,44 +128,15 @@ ) -async def test_params_clip_viewport_outside_of_window_viewport( - bidi_session, top_context -): - viewport_dimensions = await get_viewport_dimensions(bidi_session, top_context) - - with pytest.raises(error.UnableToCaptureScreenException): +async def test_params_origin_invalid_value(bidi_session, top_context): + with pytest.raises(error.InvalidArgumentException): await bidi_session.browsing_context.capture_screenshot( - context=top_context["context"], - clip=BoxOptions( - x=viewport_dimensions["width"], - y=viewport_dimensions["height"], - width=1, - height=1, - ), + context=top_context["context"], origin="page" ) -async def test_params_clip_element_outside_of_window_viewport( - bidi_session, top_context, inline -): - viewport_dimensions = await get_viewport_dimensions(bidi_session, top_context) - - element_styles = "background-color: black; width: 50px; height:50px;" - # Render element outside of viewport. - url = inline( - f"""<div style="{element_styles} margin-top: {viewport_dimensions["height"]}px"></div>""" - ) - await bidi_session.browsing_context.navigate( - context=top_context["context"], url=url, wait="complete" - ) - element = await bidi_session.script.evaluate( - await_promise=False, - expression="document.querySelector('div')", - target=ContextTarget(top_context["context"]), - ) - - with pytest.raises(error.UnableToCaptureScreenException): +async def test_params_format_invalid_value(bidi_session, top_context): + with pytest.raises(error.InvalidArgumentException): await bidi_session.browsing_context.capture_screenshot( - context=top_context["context"], - clip=ElementOptions(element=element), + context=top_context["context"], format=FormatOptions(type="image/invalid") )
diff --git a/third_party/blink/web_tests/external/wpt/webdriver/tests/bidi/browsing_context/capture_screenshot/origin.py b/third_party/blink/web_tests/external/wpt/webdriver/tests/bidi/browsing_context/capture_screenshot/origin.py new file mode 100644 index 0000000..7161d36 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/webdriver/tests/bidi/browsing_context/capture_screenshot/origin.py
@@ -0,0 +1,56 @@ +import pytest + +from tests.support.image import png_dimensions + +from . import get_physical_document_dimensions, get_physical_viewport_dimensions + + +@pytest.mark.asyncio +async def test_origin(bidi_session, top_context, inline): + await bidi_session.browsing_context.navigate( + context=top_context["context"], + url=inline("<div style='margin-top:2000px'>foo</div>"), + wait="complete", + ) + + viewport_dimensions = await get_physical_viewport_dimensions( + bidi_session, top_context + ) + document_dimensions = await get_physical_document_dimensions( + bidi_session, top_context + ) + assert not viewport_dimensions == document_dimensions + + document_screenshot = await bidi_session.browsing_context.capture_screenshot( + context=top_context["context"], origin="document" + ) + viewport_screenshot = await bidi_session.browsing_context.capture_screenshot( + context=top_context["context"], origin="viewport" + ) + + assert png_dimensions(document_screenshot) == document_dimensions + assert png_dimensions(viewport_screenshot) == viewport_dimensions + + +@pytest.mark.asyncio +@pytest.mark.parametrize("origin", ["document", "viewport"]) +async def test_origin_consistency(bidi_session, top_context, inline, origin): + await bidi_session.browsing_context.navigate( + context=top_context["context"], + url=inline("<div style='margin-top:2000px'>foo</div>"), + wait="complete", + ) + screenshot_a = await bidi_session.browsing_context.capture_screenshot( + context=top_context["context"], origin=origin + ) + + await bidi_session.browsing_context.navigate( + context=top_context["context"], + url=inline("<div style='margin-top:2000px'>foo</div>"), + wait="complete", + ) + screenshot_b = await bidi_session.browsing_context.capture_screenshot( + context=top_context["context"], origin=origin + ) + + assert screenshot_a == screenshot_b
diff --git a/third_party/blink/web_tests/external/wpt/webdriver/tests/bidi/browsing_context/traverse_history/__init__.py b/third_party/blink/web_tests/external/wpt/webdriver/tests/bidi/browsing_context/traverse_history/__init__.py new file mode 100644 index 0000000..12278315 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/webdriver/tests/bidi/browsing_context/traverse_history/__init__.py
@@ -0,0 +1,4 @@ +async def get_url_for_context(bidi_session, context): + contexts = await bidi_session.browsing_context.get_tree(root=context) + + return contexts[0]["url"]
diff --git a/third_party/blink/web_tests/external/wpt/webdriver/tests/bidi/browsing_context/traverse_history/context.py b/third_party/blink/web_tests/external/wpt/webdriver/tests/bidi/browsing_context/traverse_history/context.py new file mode 100644 index 0000000..7635c0e --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/webdriver/tests/bidi/browsing_context/traverse_history/context.py
@@ -0,0 +1,66 @@ +import pytest + +import webdriver.bidi.error as error + +from . import get_url_for_context + + +pytestmark = pytest.mark.asyncio + + +async def test_params_context_invalid_value(bidi_session): + with pytest.raises(error.NoSuchFrameException): + await bidi_session.browsing_context.traverse_history(context="foo", delta=1) + + +async def test_top_level_contexts(bidi_session, top_context, new_tab, inline): + pages = [ + inline("<div>page 1</div>"), + inline("<div>page 2</div>"), + ] + for page in pages: + for context in [top_context["context"], new_tab["context"]]: + await bidi_session.browsing_context.navigate( + context=context, url=page, wait="complete" + ) + assert await get_url_for_context(bidi_session, context) == page + + await bidi_session.browsing_context.traverse_history( + context=new_tab["context"], delta=-1 + ) + + assert await get_url_for_context(bidi_session, top_context["context"]) == pages[1] + assert await get_url_for_context(bidi_session, new_tab["context"]) == pages[0] + + +@pytest.mark.parametrize("domain", ["", "alt"], ids=["same_origin", "cross_origin"]) +async def test_iframe(bidi_session, new_tab, inline, domain): + iframe_url_1 = inline("page 1") + page_url = inline(f"<iframe src='{iframe_url_1}'></iframe>", domain=domain) + + await bidi_session.browsing_context.navigate( + context=new_tab["context"], url=page_url, wait="complete" + ) + assert await get_url_for_context(bidi_session, new_tab["context"]) == page_url + + contexts = await bidi_session.browsing_context.get_tree(root=new_tab["context"]) + iframe_context = contexts[0]["children"][0] + + iframe_url_2 = inline("page 2") + await bidi_session.browsing_context.navigate( + context=iframe_context["context"], url=iframe_url_2, wait="complete" + ) + assert ( + await get_url_for_context(bidi_session, iframe_context["context"]) + == iframe_url_2 + ) + + await bidi_session.browsing_context.traverse_history( + context=iframe_context["context"], delta=-1 + ) + + assert await get_url_for_context(bidi_session, new_tab["context"]) == page_url + assert ( + await get_url_for_context(bidi_session, iframe_context["context"]) + == iframe_url_1 + )
diff --git a/third_party/blink/web_tests/external/wpt/webdriver/tests/bidi/browsing_context/traverse_history/delta.py b/third_party/blink/web_tests/external/wpt/webdriver/tests/bidi/browsing_context/traverse_history/delta.py new file mode 100644 index 0000000..05f4d99 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/webdriver/tests/bidi/browsing_context/traverse_history/delta.py
@@ -0,0 +1,162 @@ +from pathlib import Path + +import pytest + +import webdriver.bidi.error as error +from webdriver.bidi.modules.script import ContextTarget + +from . import get_url_for_context + + +pytestmark = pytest.mark.asyncio + + +@pytest.mark.parametrize("value", [-2, 1]) +async def test_delta_invalid_value(bidi_session, new_tab, inline, value): + page = inline("<div>page 1</div>") + await bidi_session.browsing_context.navigate( + context=new_tab["context"], url=page, wait="complete" + ) + assert await get_url_for_context(bidi_session, new_tab["context"]) == page + + with pytest.raises(error.NoSuchHistoryEntryException): + await bidi_session.browsing_context.traverse_history( + context=new_tab["context"], delta=value + ) + + +async def test_delta_0(bidi_session, new_tab, inline): + page = inline("<div>page 1</div>") + await bidi_session.browsing_context.navigate( + context=new_tab["context"], url=page, wait="complete" + ) + assert await get_url_for_context(bidi_session, new_tab["context"]) == page + + await bidi_session.browsing_context.traverse_history( + context=new_tab["context"], delta=0 + ) + + # Check that url didn't change + assert await get_url_for_context(bidi_session, new_tab["context"]) == page + + +async def test_delta_forward_and_back(bidi_session, new_tab, inline): + pages = [ + inline("<div>page 1</div>"), + inline("<div>page 2</div>"), + inline("<div>page 3</div>"), + ] + for page in pages: + await bidi_session.browsing_context.navigate( + context=new_tab["context"], url=page, wait="complete" + ) + assert await get_url_for_context(bidi_session, new_tab["context"]) == page + + await bidi_session.browsing_context.traverse_history( + context=new_tab["context"], delta=-2 + ) + + assert await get_url_for_context(bidi_session, new_tab["context"]) == pages[0] + + await bidi_session.browsing_context.traverse_history( + context=new_tab["context"], delta=2 + ) + + assert await get_url_for_context(bidi_session, new_tab["context"]) == pages[2] + + +async def test_navigate_in_the_same_document(bidi_session, new_tab, url): + page_url = "/webdriver/tests/bidi/browsing_context/support/empty.html" + pages = [ + url(page_url), + url(page_url + "#foo"), + url(page_url + "#bar"), + ] + for page in pages: + await bidi_session.browsing_context.navigate( + context=new_tab["context"], url=page, wait="complete" + ) + assert await get_url_for_context(bidi_session, new_tab["context"]) == page + + await bidi_session.browsing_context.traverse_history( + context=new_tab["context"], delta=-1 + ) + + assert await get_url_for_context(bidi_session, new_tab["context"]) == pages[1] + + await bidi_session.browsing_context.traverse_history( + context=new_tab["context"], delta=1 + ) + + assert await get_url_for_context(bidi_session, new_tab["context"]) == pages[2] + + +async def test_history_push_state(bidi_session, new_tab, url): + page_url = url("/webdriver/tests/bidi/browsing_context/support/empty.html") + await bidi_session.browsing_context.navigate( + context=new_tab["context"], url=page_url, wait="complete" + ) + assert await get_url_for_context(bidi_session, new_tab["context"]) == page_url + + pages = [ + f"{page_url}#foo", + f"{page_url}#bar", + ] + for page in pages: + await bidi_session.script.call_function( + function_declaration="""(url) => { + history.pushState(null, null, url); + }""", + arguments=[ + {"type": "string", "value": page}, + ], + await_promise=False, + target=ContextTarget(new_tab["context"]), + ) + assert await get_url_for_context(bidi_session, new_tab["context"]) == page + + await bidi_session.browsing_context.traverse_history( + context=new_tab["context"], delta=-1 + ) + + assert await get_url_for_context(bidi_session, new_tab["context"]) == pages[0] + + await bidi_session.browsing_context.traverse_history( + context=new_tab["context"], delta=1 + ) + + assert await get_url_for_context(bidi_session, new_tab["context"]) == pages[1] + + +@pytest.mark.parametrize( + "pages", + [ + ["data:text/html,<p>foo</p>", "data:text/html,<p>bar</p>"], + [ + f"{Path(__file__).parents[1].as_uri()}/support/empty.html", + f"{Path(__file__).parents[1].as_uri()}/support/other.html", + ], + ], + ids=[ + "data url", + "file url", + ], +) +async def test_navigate_special_protocols(bidi_session, new_tab, pages): + for page in pages: + await bidi_session.browsing_context.navigate( + context=new_tab["context"], url=page, wait="complete" + ) + assert await get_url_for_context(bidi_session, new_tab["context"]) == page + + await bidi_session.browsing_context.traverse_history( + context=new_tab["context"], delta=-1 + ) + + assert await get_url_for_context(bidi_session, new_tab["context"]) == pages[0] + + await bidi_session.browsing_context.traverse_history( + context=new_tab["context"], delta=1 + ) + + assert await get_url_for_context(bidi_session, new_tab["context"]) == pages[1]
diff --git a/third_party/blink/web_tests/external/wpt/webdriver/tests/bidi/browsing_context/traverse_history/invalid.py b/third_party/blink/web_tests/external/wpt/webdriver/tests/bidi/browsing_context/traverse_history/invalid.py new file mode 100644 index 0000000..abb0d69 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/webdriver/tests/bidi/browsing_context/traverse_history/invalid.py
@@ -0,0 +1,29 @@ +import pytest + +import webdriver.bidi.error as error + + +pytestmark = pytest.mark.asyncio + + +MAX_INT = 9007199254740991 +MIN_INT = -MAX_INT + + +@pytest.mark.parametrize("value", [None, False, 42, {}, []]) +async def test_params_context_invalid_type(bidi_session, value): + with pytest.raises(error.InvalidArgumentException): + await bidi_session.browsing_context.traverse_history( + context=value, + delta=1 + ) + + +@pytest.mark.parametrize( + "value", [None, False, "foo", 1.5, MIN_INT - 1, MAX_INT + 1, {}, []] +) +async def test_params_delta_invalid_type(bidi_session, top_context, value): + with pytest.raises(error.InvalidArgumentException): + await bidi_session.browsing_context.traverse_history( + context=top_context["context"], delta=value + )
diff --git a/third_party/blink/web_tests/external/wpt/websockets/opening-handshake/006.html b/third_party/blink/web_tests/external/wpt/websockets/opening-handshake/006.html new file mode 100644 index 0000000..3040690 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/websockets/opening-handshake/006.html
@@ -0,0 +1,58 @@ +<!doctype html> +<title>WebSockets: Serialized connection attempts</title> +<meta name="timeout" content="long"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="../constants.sub.js"></script> +<meta name="variant" content="?default"> +<meta name="variant" content="?wss"> +<div id="log"></div> +<script> +async_test(function(t) { + const paths = ['/invalid1', '/invalid2', '/invalid3', '/echo']; // /echo is valid + let currentTestIndex = 0; + let isPreviousConnectionClosed = true; + + function testNextPath() { + if (currentTestIndex < paths.length) { + t.step(function() { + assert_true(isPreviousConnectionClosed, "Previous connection should be closed before attempting a new one"); + isPreviousConnectionClosed = false; + + const path = paths[currentTestIndex]; + const ws = new WebSocket(SCHEME_DOMAIN_PORT + path); + + ws.onclose = t.step_func(function(e) { + if (path !== '/echo') { + assert_false(e.wasClean, "Connection should fail uncleanly for path: " + path); + } else { + assert_true(e.wasClean, "Connection to /echo should close cleanly"); + } + isPreviousConnectionClosed = true; + currentTestIndex++; + t.step_timeout(testNextPath, 0); // Schedule the next test + }); + + ws.onopen = t.step_func(function() { + if (path === '/echo') { + assert_true(true, "Connection to /echo should succeed"); + ws.close(); + } else { + t.unreached_func("Invalid path should not succeed"); + } + }); + + ws.onerror = t.step_func(function() { + if (path === '/echo') { + t.unreached_func("Connection to /echo should not encounter an error"); + } // otherwise failure is expected + }); + }); + } else { + t.done(); + } + } + + testNextPath(); +}); +</script>
diff --git a/third_party/blink/web_tests/flag-specific/highdpi/external/wpt/url/a-element_include=file-expected.txt b/third_party/blink/web_tests/flag-specific/highdpi/external/wpt/url/a-element_include=file-expected.txt index 756c8f39..3033c411 100644 --- a/third_party/blink/web_tests/flag-specific/highdpi/external/wpt/url/a-element_include=file-expected.txt +++ b/third_party/blink/web_tests/flag-specific/highdpi/external/wpt/url/a-element_include=file-expected.txt
@@ -1,5 +1,5 @@ This is a testharness.js-based test. -Found 46 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 45 FAIL, 0 TIMEOUT, 0 NOTRUN. [FAIL] Parsing: <file:c:\\foo\\bar.html> against <file:///tmp/mock/path> assert_equals: href expected "file:///c:/foo/bar.html" but got "file:///tmp/mock/c:/foo/bar.html" [FAIL] Parsing: < File:c|////foo\\bar.html> against <file:///tmp/mock/path> @@ -90,7 +90,5 @@ assert_unreached: Expected URL to fail parsing Reached unreachable code [FAIL] Parsing: </\\//\\/a/../> against <file:///> assert_equals: href expected "file://////" but got "file:///" -[FAIL] Parsing: <//a/../> against <file:///> - assert_equals: host expected "" but got "a" Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/platform/linux-chrome/external/wpt/css/css-values/signs-abs-computed-expected.txt b/third_party/blink/web_tests/platform/linux-chrome/external/wpt/css/css-values/signs-abs-computed-expected.txt new file mode 100644 index 0000000..5b37deb --- /dev/null +++ b/third_party/blink/web_tests/platform/linux-chrome/external/wpt/css/css-values/signs-abs-computed-expected.txt
@@ -0,0 +1,4 @@ +This is a testharness.js-based test. +All subtests passed and are omitted for brevity. +See https://chromium.googlesource.com/chromium/src/+/HEAD/docs/testing/writing_web_tests.md#Text-Test-Baselines for details. +Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/platform/linux/external/wpt/url/a-element-xhtml_include=file-expected.txt b/third_party/blink/web_tests/platform/linux/external/wpt/url/a-element-xhtml_include=file-expected.txt index 756c8f39..3033c411 100644 --- a/third_party/blink/web_tests/platform/linux/external/wpt/url/a-element-xhtml_include=file-expected.txt +++ b/third_party/blink/web_tests/platform/linux/external/wpt/url/a-element-xhtml_include=file-expected.txt
@@ -1,5 +1,5 @@ This is a testharness.js-based test. -Found 46 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 45 FAIL, 0 TIMEOUT, 0 NOTRUN. [FAIL] Parsing: <file:c:\\foo\\bar.html> against <file:///tmp/mock/path> assert_equals: href expected "file:///c:/foo/bar.html" but got "file:///tmp/mock/c:/foo/bar.html" [FAIL] Parsing: < File:c|////foo\\bar.html> against <file:///tmp/mock/path> @@ -90,7 +90,5 @@ assert_unreached: Expected URL to fail parsing Reached unreachable code [FAIL] Parsing: </\\//\\/a/../> against <file:///> assert_equals: href expected "file://////" but got "file:///" -[FAIL] Parsing: <//a/../> against <file:///> - assert_equals: host expected "" but got "a" Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/platform/linux/external/wpt/url/a-element_include=file-expected.txt b/third_party/blink/web_tests/platform/linux/external/wpt/url/a-element_include=file-expected.txt index 756c8f39..3033c411 100644 --- a/third_party/blink/web_tests/platform/linux/external/wpt/url/a-element_include=file-expected.txt +++ b/third_party/blink/web_tests/platform/linux/external/wpt/url/a-element_include=file-expected.txt
@@ -1,5 +1,5 @@ This is a testharness.js-based test. -Found 46 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 45 FAIL, 0 TIMEOUT, 0 NOTRUN. [FAIL] Parsing: <file:c:\\foo\\bar.html> against <file:///tmp/mock/path> assert_equals: href expected "file:///c:/foo/bar.html" but got "file:///tmp/mock/c:/foo/bar.html" [FAIL] Parsing: < File:c|////foo\\bar.html> against <file:///tmp/mock/path> @@ -90,7 +90,5 @@ assert_unreached: Expected URL to fail parsing Reached unreachable code [FAIL] Parsing: </\\//\\/a/../> against <file:///> assert_equals: href expected "file://////" but got "file:///" -[FAIL] Parsing: <//a/../> against <file:///> - assert_equals: host expected "" but got "a" Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/platform/linux/external/wpt/url/url-constructor.any.worker_include=file-expected.txt b/third_party/blink/web_tests/platform/linux/external/wpt/url/url-constructor.any.worker_include=file-expected.txt index a859ae0..d30c346 100644 --- a/third_party/blink/web_tests/platform/linux/external/wpt/url/url-constructor.any.worker_include=file-expected.txt +++ b/third_party/blink/web_tests/platform/linux/external/wpt/url/url-constructor.any.worker_include=file-expected.txt
@@ -1,5 +1,5 @@ This is a testharness.js-based test. -Found 46 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 45 FAIL, 0 TIMEOUT, 0 NOTRUN. [FAIL] Parsing: <file:c:\\foo\\bar.html> against <file:///tmp/mock/path> assert_equals: href expected "file:///c:/foo/bar.html" but got "file:///tmp/mock/c:/foo/bar.html" [FAIL] Parsing: < File:c|////foo\\bar.html> against <file:///tmp/mock/path> @@ -90,7 +90,5 @@ assert_throws_js: function "function() {\n new URL(expected.input, base);\n }" did not throw [FAIL] Parsing: </\\//\\/a/../> against <file:///> assert_equals: href expected "file://////" but got "file:///" -[FAIL] Parsing: <//a/../> against <file:///> - assert_equals: host expected "" but got "a" Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/platform/linux/external/wpt/url/url-constructor.any_include=file-expected.txt b/third_party/blink/web_tests/platform/linux/external/wpt/url/url-constructor.any_include=file-expected.txt index a859ae0..d30c346 100644 --- a/third_party/blink/web_tests/platform/linux/external/wpt/url/url-constructor.any_include=file-expected.txt +++ b/third_party/blink/web_tests/platform/linux/external/wpt/url/url-constructor.any_include=file-expected.txt
@@ -1,5 +1,5 @@ This is a testharness.js-based test. -Found 46 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 45 FAIL, 0 TIMEOUT, 0 NOTRUN. [FAIL] Parsing: <file:c:\\foo\\bar.html> against <file:///tmp/mock/path> assert_equals: href expected "file:///c:/foo/bar.html" but got "file:///tmp/mock/c:/foo/bar.html" [FAIL] Parsing: < File:c|////foo\\bar.html> against <file:///tmp/mock/path> @@ -90,7 +90,5 @@ assert_throws_js: function "function() {\n new URL(expected.input, base);\n }" did not throw [FAIL] Parsing: </\\//\\/a/../> against <file:///> assert_equals: href expected "file://////" but got "file:///" -[FAIL] Parsing: <//a/../> against <file:///> - assert_equals: host expected "" but got "a" Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/platform/mac/external/wpt/url/a-element-xhtml_include=file-expected.txt b/third_party/blink/web_tests/platform/mac/external/wpt/url/a-element-xhtml_include=file-expected.txt index 756c8f39..3033c411 100644 --- a/third_party/blink/web_tests/platform/mac/external/wpt/url/a-element-xhtml_include=file-expected.txt +++ b/third_party/blink/web_tests/platform/mac/external/wpt/url/a-element-xhtml_include=file-expected.txt
@@ -1,5 +1,5 @@ This is a testharness.js-based test. -Found 46 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 45 FAIL, 0 TIMEOUT, 0 NOTRUN. [FAIL] Parsing: <file:c:\\foo\\bar.html> against <file:///tmp/mock/path> assert_equals: href expected "file:///c:/foo/bar.html" but got "file:///tmp/mock/c:/foo/bar.html" [FAIL] Parsing: < File:c|////foo\\bar.html> against <file:///tmp/mock/path> @@ -90,7 +90,5 @@ assert_unreached: Expected URL to fail parsing Reached unreachable code [FAIL] Parsing: </\\//\\/a/../> against <file:///> assert_equals: href expected "file://////" but got "file:///" -[FAIL] Parsing: <//a/../> against <file:///> - assert_equals: host expected "" but got "a" Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/platform/mac/external/wpt/url/a-element_include=file-expected.txt b/third_party/blink/web_tests/platform/mac/external/wpt/url/a-element_include=file-expected.txt index 756c8f39..3033c411 100644 --- a/third_party/blink/web_tests/platform/mac/external/wpt/url/a-element_include=file-expected.txt +++ b/third_party/blink/web_tests/platform/mac/external/wpt/url/a-element_include=file-expected.txt
@@ -1,5 +1,5 @@ This is a testharness.js-based test. -Found 46 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 45 FAIL, 0 TIMEOUT, 0 NOTRUN. [FAIL] Parsing: <file:c:\\foo\\bar.html> against <file:///tmp/mock/path> assert_equals: href expected "file:///c:/foo/bar.html" but got "file:///tmp/mock/c:/foo/bar.html" [FAIL] Parsing: < File:c|////foo\\bar.html> against <file:///tmp/mock/path> @@ -90,7 +90,5 @@ assert_unreached: Expected URL to fail parsing Reached unreachable code [FAIL] Parsing: </\\//\\/a/../> against <file:///> assert_equals: href expected "file://////" but got "file:///" -[FAIL] Parsing: <//a/../> against <file:///> - assert_equals: host expected "" but got "a" Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/platform/mac/external/wpt/url/url-constructor.any.worker_include=file-expected.txt b/third_party/blink/web_tests/platform/mac/external/wpt/url/url-constructor.any.worker_include=file-expected.txt index a859ae0..d30c346 100644 --- a/third_party/blink/web_tests/platform/mac/external/wpt/url/url-constructor.any.worker_include=file-expected.txt +++ b/third_party/blink/web_tests/platform/mac/external/wpt/url/url-constructor.any.worker_include=file-expected.txt
@@ -1,5 +1,5 @@ This is a testharness.js-based test. -Found 46 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 45 FAIL, 0 TIMEOUT, 0 NOTRUN. [FAIL] Parsing: <file:c:\\foo\\bar.html> against <file:///tmp/mock/path> assert_equals: href expected "file:///c:/foo/bar.html" but got "file:///tmp/mock/c:/foo/bar.html" [FAIL] Parsing: < File:c|////foo\\bar.html> against <file:///tmp/mock/path> @@ -90,7 +90,5 @@ assert_throws_js: function "function() {\n new URL(expected.input, base);\n }" did not throw [FAIL] Parsing: </\\//\\/a/../> against <file:///> assert_equals: href expected "file://////" but got "file:///" -[FAIL] Parsing: <//a/../> against <file:///> - assert_equals: host expected "" but got "a" Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/platform/mac/external/wpt/url/url-constructor.any_include=file-expected.txt b/third_party/blink/web_tests/platform/mac/external/wpt/url/url-constructor.any_include=file-expected.txt index a859ae0..d30c346 100644 --- a/third_party/blink/web_tests/platform/mac/external/wpt/url/url-constructor.any_include=file-expected.txt +++ b/third_party/blink/web_tests/platform/mac/external/wpt/url/url-constructor.any_include=file-expected.txt
@@ -1,5 +1,5 @@ This is a testharness.js-based test. -Found 46 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 45 FAIL, 0 TIMEOUT, 0 NOTRUN. [FAIL] Parsing: <file:c:\\foo\\bar.html> against <file:///tmp/mock/path> assert_equals: href expected "file:///c:/foo/bar.html" but got "file:///tmp/mock/c:/foo/bar.html" [FAIL] Parsing: < File:c|////foo\\bar.html> against <file:///tmp/mock/path> @@ -90,7 +90,5 @@ assert_throws_js: function "function() {\n new URL(expected.input, base);\n }" did not throw [FAIL] Parsing: </\\//\\/a/../> against <file:///> assert_equals: href expected "file://////" but got "file:///" -[FAIL] Parsing: <//a/../> against <file:///> - assert_equals: host expected "" but got "a" Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/url/a-element-xhtml_include=file-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/url/a-element-xhtml_include=file-expected.txt index 954c6bed..f2f12b9 100644 --- a/third_party/blink/web_tests/platform/win/external/wpt/url/a-element-xhtml_include=file-expected.txt +++ b/third_party/blink/web_tests/platform/win/external/wpt/url/a-element-xhtml_include=file-expected.txt
@@ -1,5 +1,5 @@ This is a testharness.js-based test. -Found 54 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 53 FAIL, 0 TIMEOUT, 0 NOTRUN. [FAIL] Parsing: <file:/example.com/> against <http://example.org/foo/bar> assert_equals: href expected "file:///example.com/" but got "file://example.com/" [FAIL] Parsing: <file:c:\\foo\\bar.html> against <file:///tmp/mock/path> @@ -106,7 +106,5 @@ assert_unreached: Expected URL to fail parsing Reached unreachable code [FAIL] Parsing: </\\//\\/a/../> against <file:///> assert_equals: href expected "file://////" but got "file://a/" -[FAIL] Parsing: <//a/../> against <file:///> - assert_equals: host expected "" but got "a" Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/url/a-element_include=file-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/url/a-element_include=file-expected.txt index 954c6bed..f2f12b9 100644 --- a/third_party/blink/web_tests/platform/win/external/wpt/url/a-element_include=file-expected.txt +++ b/third_party/blink/web_tests/platform/win/external/wpt/url/a-element_include=file-expected.txt
@@ -1,5 +1,5 @@ This is a testharness.js-based test. -Found 54 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 53 FAIL, 0 TIMEOUT, 0 NOTRUN. [FAIL] Parsing: <file:/example.com/> against <http://example.org/foo/bar> assert_equals: href expected "file:///example.com/" but got "file://example.com/" [FAIL] Parsing: <file:c:\\foo\\bar.html> against <file:///tmp/mock/path> @@ -106,7 +106,5 @@ assert_unreached: Expected URL to fail parsing Reached unreachable code [FAIL] Parsing: </\\//\\/a/../> against <file:///> assert_equals: href expected "file://////" but got "file://a/" -[FAIL] Parsing: <//a/../> against <file:///> - assert_equals: host expected "" but got "a" Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/url/url-constructor.any.worker_include=file-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/url/url-constructor.any.worker_include=file-expected.txt index 0b771414..15fdff8 100644 --- a/third_party/blink/web_tests/platform/win/external/wpt/url/url-constructor.any.worker_include=file-expected.txt +++ b/third_party/blink/web_tests/platform/win/external/wpt/url/url-constructor.any.worker_include=file-expected.txt
@@ -1,5 +1,5 @@ This is a testharness.js-based test. -Found 54 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 53 FAIL, 0 TIMEOUT, 0 NOTRUN. [FAIL] Parsing: <file:/example.com/> against <http://example.org/foo/bar> assert_equals: href expected "file:///example.com/" but got "file://example.com/" [FAIL] Parsing: <file:c:\\foo\\bar.html> against <file:///tmp/mock/path> @@ -106,7 +106,5 @@ assert_throws_js: function "function() {\n new URL(expected.input, base);\n }" did not throw [FAIL] Parsing: </\\//\\/a/../> against <file:///> assert_equals: href expected "file://////" but got "file://a/" -[FAIL] Parsing: <//a/../> against <file:///> - assert_equals: host expected "" but got "a" Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/url/url-constructor.any_include=file-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/url/url-constructor.any_include=file-expected.txt index 0b771414..15fdff8 100644 --- a/third_party/blink/web_tests/platform/win/external/wpt/url/url-constructor.any_include=file-expected.txt +++ b/third_party/blink/web_tests/platform/win/external/wpt/url/url-constructor.any_include=file-expected.txt
@@ -1,5 +1,5 @@ This is a testharness.js-based test. -Found 54 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 53 FAIL, 0 TIMEOUT, 0 NOTRUN. [FAIL] Parsing: <file:/example.com/> against <http://example.org/foo/bar> assert_equals: href expected "file:///example.com/" but got "file://example.com/" [FAIL] Parsing: <file:c:\\foo\\bar.html> against <file:///tmp/mock/path> @@ -106,7 +106,5 @@ assert_throws_js: function "function() {\n new URL(expected.input, base);\n }" did not throw [FAIL] Parsing: </\\//\\/a/../> against <file:///> assert_equals: href expected "file://////" but got "file://a/" -[FAIL] Parsing: <//a/../> against <file:///> - assert_equals: host expected "" but got "a" Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/virtual/css-sign-related-functions-disabled/external/wpt/css/css-values/signs-abs-computed-expected.txt b/third_party/blink/web_tests/virtual/css-sign-related-functions-disabled/external/wpt/css/css-values/signs-abs-computed-expected.txt index b9a7406..25213e93 100644 --- a/third_party/blink/web_tests/virtual/css-sign-related-functions-disabled/external/wpt/css/css-values/signs-abs-computed-expected.txt +++ b/third_party/blink/web_tests/virtual/css-sign-related-functions-disabled/external/wpt/css/css-values/signs-abs-computed-expected.txt
@@ -1,5 +1,5 @@ This is a testharness.js-based test. -Found 204 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 205 FAIL, 0 TIMEOUT, 0 NOTRUN. [FAIL] abs(1) should be used-value-equivalent to 1 assert_not_equals: abs(1) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto" [FAIL] sign(1) should be used-value-equivalent to 1 @@ -40,6 +40,8 @@ assert_not_equals: abs(-10px) isn't valid in 'margin-left'; got the default value instead. got disallowed value "0px" [FAIL] abs(-10%) should be used-value-equivalent to 10px assert_not_equals: abs(-10%) isn't valid in 'margin-left'; got the default value instead. got disallowed value "0px" +[FAIL] calc((1em + 1px) * (sign(1em - 10px - 10%) + 1)) should be used-value-equivalent to 21px + assert_not_equals: calc((1em + 1px) * (sign(1em - 10px - 10%) + 1)) isn't valid in 'margin-left'; got the default value instead. got disallowed value "0px" [FAIL] calc(calc(sign(-0))) should be used-value-equivalent to 0 assert_not_equals: calc(calc(sign(-0))) isn't valid in 'z-index'; got the default value instead. got disallowed value "auto" [FAIL] clamp(-1, calc( 1 / sign(calc(sign(-0)))), 1) should be used-value-equivalent to -1
diff --git a/third_party/blink/web_tests/virtual/css-sign-related-functions-disabled/external/wpt/css/css-values/signs-abs-invalid-expected.txt b/third_party/blink/web_tests/virtual/css-sign-related-functions-disabled/external/wpt/css/css-values/signs-abs-invalid-expected.txt new file mode 100644 index 0000000..5b37deb --- /dev/null +++ b/third_party/blink/web_tests/virtual/css-sign-related-functions-disabled/external/wpt/css/css-values/signs-abs-invalid-expected.txt
@@ -0,0 +1,4 @@ +This is a testharness.js-based test. +All subtests passed and are omitted for brevity. +See https://chromium.googlesource.com/chromium/src/+/HEAD/docs/testing/writing_web_tests.md#Text-Test-Baselines for details. +Harness: the test ran to completion.
diff --git a/third_party/dawn b/third_party/dawn index cdfcfca..b268f52 160000 --- a/third_party/dawn +++ b/third_party/dawn
@@ -1 +1 @@ -Subproject commit cdfcfcabd1400a1552ba7d3c6a92dbb28a83fd76 +Subproject commit b268f525fc231d4f545ae9a40f002b46276bdd17
diff --git a/third_party/devtools-frontend-internal b/third_party/devtools-frontend-internal index 5884a35..831ddb2 160000 --- a/third_party/devtools-frontend-internal +++ b/third_party/devtools-frontend-internal
@@ -1 +1 @@ -Subproject commit 5884a35e7f4cccefa590f690f1021d013b8bb06e +Subproject commit 831ddb26c27ea70c10a67d34ddf4bd41276e667f
diff --git a/third_party/libc++/src b/third_party/libc++/src index 0ec946f..9e4e987 160000 --- a/third_party/libc++/src +++ b/third_party/libc++/src
@@ -1 +1 @@ -Subproject commit 0ec946fa26f0ad25ad366e5f7acdec2ab8ceed2a +Subproject commit 9e4e987c282a170f6daf8b3c8b52d101d2346f68
diff --git a/third_party/skia b/third_party/skia index 0908f54..7c6b949 160000 --- a/third_party/skia +++ b/third_party/skia
@@ -1 +1 @@ -Subproject commit 0908f546bfd9e369787d100811fd27d40f09f317 +Subproject commit 7c6b9495b415e59d866df8d10f930b1d34654887
diff --git a/third_party/vulkan-deps b/third_party/vulkan-deps index 2e96f5c..860dca0 160000 --- a/third_party/vulkan-deps +++ b/third_party/vulkan-deps
@@ -1 +1 @@ -Subproject commit 2e96f5c2b566dc69b5f30295c85f5e6a19af60e5 +Subproject commit 860dca03b6e71b58e85a6fd261f40e487355008f
diff --git a/third_party/webrtc b/third_party/webrtc index 5116ad5..2561dd3 160000 --- a/third_party/webrtc +++ b/third_party/webrtc
@@ -1 +1 @@ -Subproject commit 5116ad58b15b7d56aecc377d06765c3200242b3e +Subproject commit 2561dd307eaedb9baa8c0cde1fec26d627b777cf
diff --git a/ui/base/x/x11_util.cc b/ui/base/x/x11_util.cc index a6e8119..2f750c2 100644 --- a/ui/base/x/x11_util.cc +++ b/ui/base/x/x11_util.cc
@@ -61,61 +61,6 @@ constexpr int kNetWMStateAdd = 1; constexpr int kNetWMStateRemove = 0; -bool SupportsEWMH() { - static bool supports_ewmh = false; - static bool supports_ewmh_cached = false; - if (!supports_ewmh_cached) { - supports_ewmh_cached = true; - - x11::Window wm_window = x11::Window::None; - if (!x11::Connection::Get()->GetPropertyAs( - GetX11RootWindow(), x11::GetAtom("_NET_SUPPORTING_WM_CHECK"), - &wm_window)) { - supports_ewmh = false; - return false; - } - - // It's possible that a window manager started earlier in this X session - // left a stale _NET_SUPPORTING_WM_CHECK property when it was replaced by a - // non-EWMH window manager, so we trap errors in the following requests to - // avoid crashes (issue 23860). - - // EWMH requires the supporting-WM window to also have a - // _NET_SUPPORTING_WM_CHECK property pointing to itself (to avoid a stale - // property referencing an ID that's been recycled for another window), so - // we check that too. - x11::Window wm_window_property = x11::Window::None; - supports_ewmh = x11::Connection::Get()->GetPropertyAs( - wm_window, x11::GetAtom("_NET_SUPPORTING_WM_CHECK"), - &wm_window_property) && - wm_window_property == wm_window; - } - - return supports_ewmh; -} - -bool GetWindowManagerName(std::string* wm_name) { - DCHECK(wm_name); - if (!SupportsEWMH()) { - return false; - } - - x11::Window wm_window = x11::Window::None; - if (!x11::Connection::Get()->GetPropertyAs( - GetX11RootWindow(), x11::GetAtom("_NET_SUPPORTING_WM_CHECK"), - &wm_window)) { - return false; - } - - std::vector<char> str; - if (!x11::Connection::Get()->GetArrayProperty( - wm_window, x11::GetAtom("_NET_WM_NAME"), &str)) { - return false; - } - wm_name->assign(str.data(), str.size()); - return true; -} - // Returns whether the X11 Screen Saver Extension can be used to disable the // screen saver. bool IsX11ScreenSaverAvailable() { @@ -412,7 +357,8 @@ bool GetCustomFramePrefDefault() { // _NET_WM_MOVERESIZE is needed for frame-drag-initiated window movement. - if (!WmSupportsHint(x11::GetAtom("_NET_WM_MOVERESIZE"))) { + if (!x11::Connection::Get()->WmSupportsHint( + x11::GetAtom("_NET_WM_MOVERESIZE"))) { return false; } @@ -471,8 +417,8 @@ } WindowManagerName GuessWindowManager() { - std::string name; - if (!GetWindowManagerName(&name)) { + std::string name = x11::Connection::Get()->GetWmName(); + if (name.empty()) { return WM_UNNAMED; } // These names are taken from the WMs' source code. @@ -546,11 +492,8 @@ } std::string GuessWindowManagerName() { - std::string name; - if (GetWindowManagerName(&name)) { - return name; - } - return "Unknown"; + std::string name = x11::Connection::Get()->GetWmName(); + return name.empty() ? "Unknown" : name; } UMALinuxWindowManager GetWindowManagerUMA() { @@ -611,7 +554,7 @@ // absence of _NET_WM_STATE_FULLSCREEN in _NET_WM_STATE to determine // whether we're fullscreen. x11::Atom fullscreen_atom = x11::GetAtom("_NET_WM_STATE_FULLSCREEN"); - if (WmSupportsHint(fullscreen_atom)) { + if (x11::Connection::Get()->WmSupportsHint(fullscreen_atom)) { std::vector<x11::Atom> atom_properties; if (x11::Connection::Get()->GetArrayProperty( window, x11::GetAtom("_NET_WM_STATE"), &atom_properties)) { @@ -646,21 +589,6 @@ return true; } -bool WmSupportsHint(x11::Atom atom) { - if (!SupportsEWMH()) { - return false; - } - - std::vector<x11::Atom> supported_atoms; - if (!x11::Connection::Get()->GetArrayProperty(GetX11RootWindow(), - x11::GetAtom("_NET_SUPPORTED"), - &supported_atoms)) { - return false; - } - - return base::Contains(supported_atoms, atom); -} - gfx::ICCProfile GetICCProfileForMonitor(int monitor) { gfx::ICCProfile icc_profile; if (base::CommandLine::ForCurrentProcess()->HasSwitch(switches::kHeadless)) {
diff --git a/ui/base/x/x11_util.h b/ui/base/x/x11_util.h index 938b3c1c..d6d83d6 100644 --- a/ui/base/x/x11_util.h +++ b/ui/base/x/x11_util.h
@@ -234,9 +234,6 @@ // is called an equal number of times with |suspend| set to false. COMPONENT_EXPORT(UI_BASE_X) bool SuspendX11ScreenSaver(bool suspend); -// Returns true if the window manager supports the given hint. -COMPONENT_EXPORT(UI_BASE_X) bool WmSupportsHint(x11::Atom atom); - // Returns the ICCProfile corresponding to |monitor| using XGetWindowProperty. COMPONENT_EXPORT(UI_BASE_X) gfx::ICCProfile GetICCProfileForMonitor(int monitor);
diff --git a/ui/chromeos/translations/ui_chromeos_strings_af.xtb b/ui/chromeos/translations/ui_chromeos_strings_af.xtb index 9e753e2..347d4c7 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_af.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_af.xtb
@@ -1041,6 +1041,7 @@ <translation id="8949925099261528566">Gekoppel, geen internet nie</translation> <translation id="8965697826696209160">Daar is nie genoeg spasie nie.</translation> <translation id="8970887620466824814">Iets is fout.</translation> +<translation id="8971742885766657349">Sinkronisering – <ph name="PERCENT" />%</translation> <translation id="8997962250644902079">Chinees- (tradisioneel) Pinjin</translation> <translation id="8998871447376656508">Daar is nie genoeg spasie in jou Google Drive beskikbaar om die oplaai te voltooi nie.</translation> <translation id="9003940392834790328">Netwerk <ph name="NETWORK_INDEX" /> van <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="CONNECTION_STATUS" />, seinsterkte <ph name="SIGNAL_STRENGTH" />%, deur jou administrateur bestuur, besonderhede</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_am.xtb b/ui/chromeos/translations/ui_chromeos_strings_am.xtb index 6704e4a..5024176 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_am.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_am.xtb
@@ -1041,6 +1041,7 @@ <translation id="8949925099261528566">ተገናኝቷል፣ ምንም በይነመረብ የለም</translation> <translation id="8965697826696209160">በቂ ቦታ የለም።</translation> <translation id="8970887620466824814">የሆነ ችግር ተፈጥሯል።</translation> +<translation id="8971742885766657349">በማስመር ላይ - <ph name="PERCENT" />%</translation> <translation id="8997962250644902079">የቻይንኛ (ተለምዷዊ) ፒንዪን</translation> <translation id="8998871447376656508">ሰቀላውን ለማጠናቀቅ በእርስዎ Google Drive ውስጥ በቂ ቦታ የለም።</translation> <translation id="9003940392834790328">አውታረ መረብ <ph name="NETWORK_INDEX" /> ከ<ph name="NETWORK_COUNT" />፣ <ph name="NETWORK_NAME" />፣ <ph name="CONNECTION_STATUS" />፣ የሲግናል ጥንካሬ <ph name="SIGNAL_STRENGTH" />%፣ በአስተዳዳሪ የሚተዳደር፣ ዝርዝሮች</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ar.xtb b/ui/chromeos/translations/ui_chromeos_strings_ar.xtb index 41e335ed..e7443cd 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_ar.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_ar.xtb
@@ -1041,6 +1041,7 @@ <translation id="8949925099261528566">تم الاتصال بالشبكة ولكنها غير متصلة بالإنترنت.</translation> <translation id="8965697826696209160">ليست هناك مساحة كافية.</translation> <translation id="8970887620466824814">حدث خطأ.</translation> +<translation id="8971742885766657349">جارٍ المزامنة - %<ph name="PERCENT" /></translation> <translation id="8997962250644902079">الصينية (التقليدية) باستخدام لوحة مفاتيح Pinyin</translation> <translation id="8998871447376656508">لا تتوفّر مساحة كافية في Google Drive لإكمال التحميل.</translation> <translation id="9003940392834790328">الشبكة <ph name="NETWORK_INDEX" /> من <ph name="NETWORK_COUNT" />، الشبكة <ph name="NETWORK_NAME" />، حالة الاتصال <ph name="CONNECTION_STATUS" />، قوة الإشارة <ph name="SIGNAL_STRENGTH" />%، يديرها المشرف، التفاصيل</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_as.xtb b/ui/chromeos/translations/ui_chromeos_strings_as.xtb index 277d3f1..eacc578 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_as.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_as.xtb
@@ -1041,6 +1041,7 @@ <translation id="8949925099261528566">সংযোজিত, ইণ্টাৰনেট নাই</translation> <translation id="8965697826696209160">পৰ্যাপ্ত খালী ঠাই নাই।</translation> <translation id="8970887620466824814">কিবা ভুল হ’ল।</translation> +<translation id="8971742885766657349">ছিংক কৰি থকা হৈছে - <ph name="PERCENT" />%</translation> <translation id="8997962250644902079">চীনা (পৰম্পৰাগত) পিনয়িন</translation> <translation id="8998871447376656508">আপল'ডটো সম্পূৰ্ণ কৰিবলৈ আপোনাৰ Google Driveত পৰ্যাপ্ত পৰিমাণৰ খালী ঠাই নাই।</translation> <translation id="9003940392834790328"><ph name="NETWORK_COUNT" />টা নেটৱৰ্কৰ <ph name="NETWORK_INDEX" />, <ph name="NETWORK_NAME" />, <ph name="CONNECTION_STATUS" />, ছিগনেলৰ ক্ষমতা <ph name="SIGNAL_STRENGTH" />%, আপোনাৰ প্ৰশাসকে পৰিচালনা কৰে, সবিশেষ</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_az.xtb b/ui/chromeos/translations/ui_chromeos_strings_az.xtb index cbd81664..7c1da34 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_az.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_az.xtb
@@ -1039,6 +1039,7 @@ <translation id="8949925099261528566">Qoşuludur, internet yoxdur</translation> <translation id="8965697826696209160">Yer çatmır.</translation> <translation id="8970887620466824814">Xəta baş verdi.</translation> +<translation id="8971742885766657349">Sinxronlaşdırılır - <ph name="PERCENT" />%</translation> <translation id="8997962250644902079">Çin dili (Ənənəvi) Pinyin</translation> <translation id="8998871447376656508">Yükləməni tamamlamaq üçün Google Diskinizdə kifayət qədər boş yer yoxdur.</translation> <translation id="9003940392834790328"><ph name="NETWORK_INDEX" />/<ph name="NETWORK_COUNT" /> şəbəkə, <ph name="NETWORK_NAME" />, <ph name="CONNECTION_STATUS" />, Siqnal Gücü <ph name="SIGNAL_STRENGTH" />%, Administratorunuz tərəfindən idarə olunur, Detallar</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_be.xtb b/ui/chromeos/translations/ui_chromeos_strings_be.xtb index 997b851..7cf44901 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_be.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_be.xtb
@@ -1041,6 +1041,7 @@ <translation id="8949925099261528566">Падключана, доступу да інтэрнэту няма</translation> <translation id="8965697826696209160">Недастаткова месца.</translation> <translation id="8970887620466824814">Нешта пайшло не так.</translation> +<translation id="8971742885766657349">Сінхранізацыя: <ph name="PERCENT" />%</translation> <translation id="8997962250644902079">Кітайская (традыцыйная, піньінь)</translation> <translation id="8998871447376656508">Не ўдалося завяршыць запампоўванне: на Google Дыску недастаткова свабоднага месца.</translation> <translation id="9003940392834790328">Сетка <ph name="NETWORK_INDEX" /> з <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="CONNECTION_STATUS" />, магутнасць сігналу – <ph name="SIGNAL_STRENGTH" />%, знаходзіцца пад кіраваннем адміністратара, падрабязныя звесткі</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_bg.xtb b/ui/chromeos/translations/ui_chromeos_strings_bg.xtb index 28abf9d..414079c 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_bg.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_bg.xtb
@@ -1041,6 +1041,7 @@ <translation id="8949925099261528566">Установена е връзка – няма достъп до интернет</translation> <translation id="8965697826696209160">Няма достатъчно място.</translation> <translation id="8970887620466824814">Нещо се обърка.</translation> +<translation id="8971742885766657349">Синхронизиране – <ph name="PERCENT" />%</translation> <translation id="8997962250644902079">Китайски (традиционен, пинин)</translation> <translation id="8998871447376656508">Няма достатъчно свободно място в Google Диск за завършване на качването.</translation> <translation id="9003940392834790328">Мрежа <ph name="NETWORK_INDEX" /> от <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="CONNECTION_STATUS" />, сила на сигнала <ph name="SIGNAL_STRENGTH" />%, управлява се от администратора ви, подробности</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_bn.xtb b/ui/chromeos/translations/ui_chromeos_strings_bn.xtb index 6ab9cf6..abf1362 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_bn.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_bn.xtb
@@ -1040,6 +1040,7 @@ <translation id="8949925099261528566">কানেক্ট করা আছে, ইন্টারনেট নেই</translation> <translation id="8965697826696209160">সেখানে যথেষ্ট স্থান নেই৷</translation> <translation id="8970887620466824814">কিছু সমস্যা হয়েছে।</translation> +<translation id="8971742885766657349">সিঙ্ক করা হচ্ছে - <ph name="PERCENT" />%</translation> <translation id="8997962250644902079">চীনা (ঐতিহ্যবাহী) পিনইন</translation> <translation id="8998871447376656508">আপলোড সম্পূর্ণ করার জন্য আপনার Google Drive-এ পর্যাপ্ত ফ্রি স্পেস নেই।</translation> <translation id="9003940392834790328"><ph name="NETWORK_COUNT" />টির মধ্যে <ph name="NETWORK_INDEX" /> নম্বর নেটওয়ার্ক, <ph name="NETWORK_NAME" />, <ph name="CONNECTION_STATUS" />, সিগন্যাল: <ph name="SIGNAL_STRENGTH" />%, আপনার অ্যাডমিনিস্ট্রেটর ম্যানেজ করে, বিবরণ</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_bs.xtb b/ui/chromeos/translations/ui_chromeos_strings_bs.xtb index 38fce76..7acca02 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_bs.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_bs.xtb
@@ -1041,6 +1041,7 @@ <translation id="8949925099261528566">Povezano, nema internetske veze</translation> <translation id="8965697826696209160">Nema dovoljno prostora.</translation> <translation id="8970887620466824814">Nešto nije uredu.</translation> +<translation id="8971742885766657349">Sinhroniziranje – <ph name="PERCENT" />%</translation> <translation id="8997962250644902079">kineski (tradicionalni) pinyin</translation> <translation id="8998871447376656508">Na vašem Google Disku nema dovoljno prostora da se dovrši otpremanje.</translation> <translation id="9003940392834790328">Mreža <ph name="NETWORK_INDEX" /> od <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="CONNECTION_STATUS" />, jačina signala <ph name="SIGNAL_STRENGTH" />%, upravlja vaš administrator, detalji</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_de.xtb b/ui/chromeos/translations/ui_chromeos_strings_de.xtb index 2e05dc1e..bf62b918 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_de.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_de.xtb
@@ -1041,6 +1041,7 @@ <translation id="8949925099261528566">Verbunden, kein Internet</translation> <translation id="8965697826696209160">Nicht genügend Speicherplatz.</translation> <translation id="8970887620466824814">Es gab ein Problem.</translation> +<translation id="8971742885766657349">Wird synchronisiert – <ph name="PERCENT" /> %</translation> <translation id="8997962250644902079">Chinesisch (traditionell) (Pinyin)</translation> <translation id="8998871447376656508">In deinem Google Drive ist nicht genügend freier Speicherplatz vorhanden, um den Upload abzuschließen.</translation> <translation id="9003940392834790328">Netzwerk <ph name="NETWORK_INDEX" /> von <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="CONNECTION_STATUS" />, Signalstärke bei <ph name="SIGNAL_STRENGTH" /> %, von deinem Administrator verwaltet, Details</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_en-GB.xtb b/ui/chromeos/translations/ui_chromeos_strings_en-GB.xtb index 4c07555..a75c5c4 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_en-GB.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_en-GB.xtb
@@ -1041,6 +1041,7 @@ <translation id="8949925099261528566">Connected, no Internet</translation> <translation id="8965697826696209160">There is not enough space.</translation> <translation id="8970887620466824814">Something went wrong.</translation> +<translation id="8971742885766657349">Syncing – <ph name="PERCENT" />%</translation> <translation id="8997962250644902079">Chinese (Traditional) Pinyin</translation> <translation id="8998871447376656508">There is not enough free space in your Google Drive to complete the upload.</translation> <translation id="9003940392834790328">Network <ph name="NETWORK_INDEX" /> of <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="CONNECTION_STATUS" />, signal strength <ph name="SIGNAL_STRENGTH" />%, managed by your administrator, details</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_es-419.xtb b/ui/chromeos/translations/ui_chromeos_strings_es-419.xtb index 7ac077f..91f80b2 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_es-419.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_es-419.xtb
@@ -1041,6 +1041,7 @@ <translation id="8949925099261528566">Conectado, pero sin conexión a Internet</translation> <translation id="8965697826696209160">No hay suficiente espacio.</translation> <translation id="8970887620466824814">Se produjo un error</translation> +<translation id="8971742885766657349">Sincronizando <ph name="PERCENT" />%</translation> <translation id="8997962250644902079">Chino tradicional (Pinyin)</translation> <translation id="8998871447376656508">No hay suficiente espacio libre en Google Drive para completar la carga.</translation> <translation id="9003940392834790328">Red <ph name="NETWORK_INDEX" /> de <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="CONNECTION_STATUS" />, intensidad de la señal: <ph name="SIGNAL_STRENGTH" />%, administrada por tu administrador, detalles</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_fil.xtb b/ui/chromeos/translations/ui_chromeos_strings_fil.xtb index d6f5b37..aca078c 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_fil.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_fil.xtb
@@ -1041,6 +1041,7 @@ <translation id="8949925099261528566">Nakakonekta, walang internet</translation> <translation id="8965697826696209160">Walang sapat na espasyo.</translation> <translation id="8970887620466824814">Nagkaproblema.</translation> +<translation id="8971742885766657349">Nagsi-sync - <ph name="PERCENT" />%</translation> <translation id="8997962250644902079">Chinese (Traditional) Pinyin</translation> <translation id="8998871447376656508">Walang sapat na bakanteng espasyo sa iyong Google Drive para makumpleto ang pag-upload.</translation> <translation id="9003940392834790328">Network <ph name="NETWORK_INDEX" /> sa <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="CONNECTION_STATUS" />, Lakas ng Signal <ph name="SIGNAL_STRENGTH" />%, Pinapamahalaan ng iyong Administrator, Mga Detalye</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_fr-CA.xtb b/ui/chromeos/translations/ui_chromeos_strings_fr-CA.xtb index e5ac89b..4810824c 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_fr-CA.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_fr-CA.xtb
@@ -1043,6 +1043,7 @@ <translation id="8949925099261528566">Connecté, aucun accès Internet</translation> <translation id="8965697826696209160">Il n'y a pas suffisamment d'espace.</translation> <translation id="8970887620466824814">Une erreur s'est produite.</translation> +<translation id="8971742885766657349">Synchronisation en cours… – <ph name="PERCENT" /> %</translation> <translation id="8997962250644902079">Chinois (traditionnel, Pinyin)</translation> <translation id="8998871447376656508">Il n'y a pas assez d'espace libre dans votre Google Disque pour terminer le téléversement.</translation> <translation id="9003940392834790328">Réseau <ph name="NETWORK_INDEX" /> sur <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="CONNECTION_STATUS" />, force du signal : <ph name="SIGNAL_STRENGTH" /> %, géré par votre administrateur, détails</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_hi.xtb b/ui/chromeos/translations/ui_chromeos_strings_hi.xtb index 307ba34..e5d44e88 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_hi.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_hi.xtb
@@ -1041,6 +1041,7 @@ <translation id="8949925099261528566">कनेक्ट हो गया, लेकिन इंटरनेट नहीं है</translation> <translation id="8965697826696209160">काफ़ी स्थान नहीं है.</translation> <translation id="8970887620466824814">कुछ गड़बड़ी हुई.</translation> +<translation id="8971742885766657349">सिंक हो रहा है - <ph name="PERCENT" />%</translation> <translation id="8997962250644902079">चाइनीज़ (परंपरागत) पिनयिन</translation> <translation id="8998871447376656508">अपलोड को पूरा करने के लिए, आपके Google Drive में ज़रूरत के मुताबिक खाली जगह नहीं है.</translation> <translation id="9003940392834790328"><ph name="NETWORK_COUNT" /> में से <ph name="NETWORK_INDEX" /> नेटवर्क, <ph name="NETWORK_NAME" />, <ph name="CONNECTION_STATUS" />, सिग्नल की क्षमता <ph name="SIGNAL_STRENGTH" />%, आपका एडमिन प्रबंधित करता है, जानकारी</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_hr.xtb b/ui/chromeos/translations/ui_chromeos_strings_hr.xtb index 2c746d35..e2e8a82 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_hr.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_hr.xtb
@@ -1041,6 +1041,7 @@ <translation id="8949925099261528566">Povezano, bez interneta</translation> <translation id="8965697826696209160">Nema dovoljno prostora.</translation> <translation id="8970887620466824814">Nešto nije u redu.</translation> +<translation id="8971742885766657349">Sinkronizacija – <ph name="PERCENT" />%</translation> <translation id="8997962250644902079">kineski (tradicionalni) pinyin</translation> <translation id="8998871447376656508">Nema dovoljno slobodnog prostora na Google disku da biste dovršili prijenos.</translation> <translation id="9003940392834790328">Mreža <ph name="NETWORK_INDEX" /> od <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="CONNECTION_STATUS" />, jačina signala <ph name="SIGNAL_STRENGTH" />%, upravlja administrator, pojedinosti</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_hu.xtb b/ui/chromeos/translations/ui_chromeos_strings_hu.xtb index 3b9f09d9..951287a 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_hu.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_hu.xtb
@@ -1041,6 +1041,7 @@ <translation id="8949925099261528566">Csatlakozva, nincs internet-hozzáférés</translation> <translation id="8965697826696209160">Nincs elég tárhely.</translation> <translation id="8970887620466824814">Hiba történt.</translation> +<translation id="8971742885766657349">Szinkronizálás – <ph name="PERCENT" />%</translation> <translation id="8997962250644902079">kínai (hagyományos) pinjin</translation> <translation id="8998871447376656508">Nincs elég szabad tárhelye a Google Drive-on a feltöltés befejezéséhez.</translation> <translation id="9003940392834790328"><ph name="NETWORK_INDEX" />. hálózat (összesen <ph name="NETWORK_COUNT" />), <ph name="NETWORK_NAME" />, <ph name="CONNECTION_STATUS" />, jelerősség: <ph name="SIGNAL_STRENGTH" />%, a rendszergazdája kezeli, részletek</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_hy.xtb b/ui/chromeos/translations/ui_chromeos_strings_hy.xtb index 84cdc5a..7a6a5c73 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_hy.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_hy.xtb
@@ -1041,6 +1041,7 @@ <translation id="8949925099261528566">Միացած է, սակայն ինտերնետ կապ չկա</translation> <translation id="8965697826696209160">Բավարար տարածք չկա:</translation> <translation id="8970887620466824814">Սխալ առաջացավ:</translation> +<translation id="8971742885766657349">Համաժամացում – <ph name="PERCENT" />%</translation> <translation id="8997962250644902079">չինարեն փինյին (ավանդական)</translation> <translation id="8998871447376656508">Վերբեռնումն ավարտելու համար ձեր Google Drive-ում բավարար ազատ տարածք չկա։</translation> <translation id="9003940392834790328">Ցանց <ph name="NETWORK_INDEX" />՝ <ph name="NETWORK_COUNT" />-ից, <ph name="NETWORK_NAME" />, <ph name="CONNECTION_STATUS" />, ազդանշանի ուժգնությունը՝ <ph name="SIGNAL_STRENGTH" />%, կառավարվում է ձեր ադմինիստրատորի կողմից, մանրամասներ</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_id.xtb b/ui/chromeos/translations/ui_chromeos_strings_id.xtb index 5ad6907..57ab828 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_id.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_id.xtb
@@ -1041,6 +1041,7 @@ <translation id="8949925099261528566">Terhubung, tidak ada internet</translation> <translation id="8965697826696209160">Ruang tidak cukup.</translation> <translation id="8970887620466824814">Terjadi error.</translation> +<translation id="8971742885766657349">Menyinkronkan - <ph name="PERCENT" />%</translation> <translation id="8997962250644902079">Pinyin (Aksara Tradisional) China</translation> <translation id="8998871447376656508">Ruang penyimpanan di Google Drive tidak cukup untuk menyelesaikan upload.</translation> <translation id="9003940392834790328">Jaringan <ph name="NETWORK_INDEX" /> dari <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="CONNECTION_STATUS" />, Kekuatan Sinyal <ph name="SIGNAL_STRENGTH" />%, Dikelola oleh Administrator Anda, Detail</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_is.xtb b/ui/chromeos/translations/ui_chromeos_strings_is.xtb index cff84ec..aebab5ff 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_is.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_is.xtb
@@ -1046,6 +1046,7 @@ <translation id="8949925099261528566">Tengt, enginn netaðgangur</translation> <translation id="8965697826696209160">Ekki er nægilegt pláss.</translation> <translation id="8970887620466824814">Eitthvað fór úrskeiðis.</translation> +<translation id="8971742885766657349">Samstillir – <ph name="PERCENT" />%</translation> <translation id="8997962250644902079">Kínverska (hefðbundin) Pinyin</translation> <translation id="8998871447376656508">Ekki er nægt pláss á Google Drive til að ljúka við upphleðsluna.</translation> <translation id="9003940392834790328">Netkerfi <ph name="NETWORK_INDEX" /> af <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="CONNECTION_STATUS" />, <ph name="SIGNAL_STRENGTH" />% sendistyrkur, stjórnað af kerfisstjóra, upplýsingar</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_it.xtb b/ui/chromeos/translations/ui_chromeos_strings_it.xtb index a5edcad9..a8c80c65 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_it.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_it.xtb
@@ -1040,6 +1040,7 @@ <translation id="8949925099261528566">Connesso, senza Internet</translation> <translation id="8965697826696209160">Spazio insufficiente.</translation> <translation id="8970887620466824814">C'è stato un problema.</translation> +<translation id="8971742885766657349">Sincronizzazione: <ph name="PERCENT" />%</translation> <translation id="8997962250644902079">Cinese (tradizionale) Pinyin</translation> <translation id="8998871447376656508">Spazio libero su Google Drive non sufficiente per completare il caricamento.</translation> <translation id="9003940392834790328">Rete <ph name="NETWORK_INDEX" /> di <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="CONNECTION_STATUS" />, intensità del segnale <ph name="SIGNAL_STRENGTH" />%, gestita dall'amministratore, dettagli</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_iw.xtb b/ui/chromeos/translations/ui_chromeos_strings_iw.xtb index 7736538..f3a511dc 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_iw.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_iw.xtb
@@ -1042,6 +1042,7 @@ <translation id="8949925099261528566">יש חיבור, אין אינטרנט</translation> <translation id="8965697826696209160">אין מספיק שטח.</translation> <translation id="8970887620466824814">משהו השתבש.</translation> +<translation id="8971742885766657349">מתבצע סנכרון – <ph name="PERCENT" />%</translation> <translation id="8997962250644902079">סינית (מסורתית) Pinyin</translation> <translation id="8998871447376656508">אין מספיק מקום פנוי ב-Google Drive כדי להשלים את ההעלאה.</translation> <translation id="9003940392834790328">רשת <ph name="NETWORK_INDEX" /> מתוך <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="CONNECTION_STATUS" />, עוצמת האות: <ph name="SIGNAL_STRENGTH" />%, הרשת מנוהלת על ידי מנהל המערכת שלך, פרטים</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ja.xtb b/ui/chromeos/translations/ui_chromeos_strings_ja.xtb index d1b5a05..3cc0f4b 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_ja.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_ja.xtb
@@ -1041,6 +1041,7 @@ <translation id="8949925099261528566">接続済み、インターネット接続なし</translation> <translation id="8965697826696209160">空き容量が不足しています。</translation> <translation id="8970887620466824814">エラーが発生しました。</translation> +<translation id="8971742885766657349">同期しています - <ph name="PERCENT" />%</translation> <translation id="8997962250644902079">中国語(繁体)(ピンイン)</translation> <translation id="8998871447376656508">Google ドライブに十分な空き容量がないため、アップロードを完了できません。</translation> <translation id="9003940392834790328"><ph name="NETWORK_INDEX" /> 番目のネットワーク(全 <ph name="NETWORK_COUNT" /> 件)、<ph name="NETWORK_NAME" />、<ph name="CONNECTION_STATUS" />、信号強度 <ph name="SIGNAL_STRENGTH" />%、管理者によって管理、詳細</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ka.xtb b/ui/chromeos/translations/ui_chromeos_strings_ka.xtb index 1884930e..0effa563 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_ka.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_ka.xtb
@@ -1041,6 +1041,7 @@ <translation id="8949925099261528566">დაკავშირებულია, ინტერნეტის გარეშე</translation> <translation id="8965697826696209160">საკმარისი ადგილი არ არის.</translation> <translation id="8970887620466824814">წარმოიქმნა შეფერხება.</translation> +<translation id="8971742885766657349">მიმდინარეობს სინქრონიზაცია — <ph name="PERCENT" />%</translation> <translation id="8997962250644902079">ჩინური (ტრადიციული) პინ-ინი</translation> <translation id="8998871447376656508">თქვენს Google Drive-ზე არ არის საკმარისი თავისუფალი მეხსიერება ატვირთვის შესასრულებლად.</translation> <translation id="9003940392834790328">ქსელი <ph name="NETWORK_INDEX" />/<ph name="NETWORK_COUNT" />-დან, <ph name="NETWORK_NAME" />, <ph name="CONNECTION_STATUS" />, სიგნალის სიძლიერე: <ph name="SIGNAL_STRENGTH" />%, მართავს თქვენი ადმინისტრატორი, დეტალები</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_pt-BR.xtb b/ui/chromeos/translations/ui_chromeos_strings_pt-BR.xtb index 0876149..3ebbbf2 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_pt-BR.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_pt-BR.xtb
@@ -1046,6 +1046,7 @@ <translation id="8949925099261528566">Conectada, sem Internet</translation> <translation id="8965697826696209160">Não há espaço suficiente.</translation> <translation id="8970887620466824814">Algo deu errado.</translation> +<translation id="8971742885766657349">Sincronizando (<ph name="PERCENT" />%)</translation> <translation id="8997962250644902079">Chinês (tradicional, pinyin)</translation> <translation id="8998871447376656508">Não há espaço livre suficiente no seu Google Drive para concluir o upload.</translation> <translation id="9003940392834790328">Rede <ph name="NETWORK_INDEX" /> de <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="CONNECTION_STATUS" />, intensidade do sinal em <ph name="SIGNAL_STRENGTH" />%, gerenciada pelo seu administrador, detalhes</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_pt-PT.xtb b/ui/chromeos/translations/ui_chromeos_strings_pt-PT.xtb index d320b2d..7c21a395 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_pt-PT.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_pt-PT.xtb
@@ -1046,6 +1046,7 @@ <translation id="8949925099261528566">Ligação estabelecida, sem Internet</translation> <translation id="8965697826696209160">Não existe espaço suficiente.</translation> <translation id="8970887620466824814">Ocorreu um erro.</translation> +<translation id="8971742885766657349">A sincronizar - <ph name="PERCENT" />%</translation> <translation id="8997962250644902079">Pinyin chinês (tradicional)</translation> <translation id="8998871447376656508">Não existe espaço livre suficiente no Google Drive para concluir o carregamento.</translation> <translation id="9003940392834790328">Rede <ph name="NETWORK_INDEX" /> de <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="CONNECTION_STATUS" />, intensidade do sinal: <ph name="SIGNAL_STRENGTH" />%, gerida pelo administrador, detalhes</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ro.xtb b/ui/chromeos/translations/ui_chromeos_strings_ro.xtb index 7e20c6d..a8417b8 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_ro.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_ro.xtb
@@ -1041,6 +1041,7 @@ <translation id="8949925099261528566">Conectat, fără internet</translation> <translation id="8965697826696209160">Nu există spațiu suficient.</translation> <translation id="8970887620466824814">A apărut o eroare.</translation> +<translation id="8971742885766657349">Se sincronizează – <ph name="PERCENT" /> %</translation> <translation id="8997962250644902079">Chineză (tradițională) Pinyin</translation> <translation id="8998871447376656508">Nu există spațiu liber suficient în Google Drive pentru a finaliza încărcarea.</translation> <translation id="9003940392834790328">Rețeaua <ph name="NETWORK_INDEX" /> din <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="CONNECTION_STATUS" />, puterea semnalului: <ph name="SIGNAL_STRENGTH" /> %, gestionată de administratorul tău, detalii</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ru.xtb b/ui/chromeos/translations/ui_chromeos_strings_ru.xtb index ddf56df..591db6f 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_ru.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_ru.xtb
@@ -1041,6 +1041,7 @@ <translation id="8949925099261528566">Подключено, без доступа к интернету</translation> <translation id="8965697826696209160">Недостаточно свободного места.</translation> <translation id="8970887620466824814">Произошла ошибка</translation> +<translation id="8971742885766657349">Синхронизация: <ph name="PERCENT" /> %</translation> <translation id="8997962250644902079">Китайский (традиционный), пиньинь</translation> <translation id="8998871447376656508">Не удалось завершить загрузку. На Google Диске недостаточно свободного места.</translation> <translation id="9003940392834790328">Сеть <ph name="NETWORK_INDEX" /> из <ph name="NETWORK_COUNT" />, название – "<ph name="NETWORK_NAME" />", статус подключения – "<ph name="CONNECTION_STATUS" />", уровень сигнала – <ph name="SIGNAL_STRENGTH" /> %, под управлением администратора, подробная информация</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_si.xtb b/ui/chromeos/translations/ui_chromeos_strings_si.xtb index 51ea82ae..b73b980 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_si.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_si.xtb
@@ -1041,6 +1041,7 @@ <translation id="8949925099261528566">සම්බන්ධයි, අන්තර්ජාලය නැත</translation> <translation id="8965697826696209160">ප්රමාණවත් මතකයක් නැත.</translation> <translation id="8970887620466824814">යම් දෙයක් වැරදිණි</translation> +<translation id="8971742885766657349">සමමුහුර්ත කරමින් - <ph name="PERCENT" />%</translation> <translation id="8997962250644902079">චීන (සාම්ප්රදායික) පින්යින්</translation> <translation id="8998871447376656508">උඩුගත කිරීම සම්පූර්ණ කිරීමට ඔබේ Google Drive තුළ ප්රමාණවත් නිදහස් ඉඩ නැත.</translation> <translation id="9003940392834790328"><ph name="NETWORK_COUNT" />න් <ph name="NETWORK_INDEX" /> වැනි ජාලය, <ph name="NETWORK_NAME" />, <ph name="CONNECTION_STATUS" />, සංඥා ප්රබලතාව <ph name="SIGNAL_STRENGTH" />%, ඔබේ පරිපාලකයා විසින් කළමනාකරණය කරයි, විස්තර</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_sk.xtb b/ui/chromeos/translations/ui_chromeos_strings_sk.xtb index 59667b2a..ec0bee60 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_sk.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_sk.xtb
@@ -2,6 +2,7 @@ <!DOCTYPE translationbundle> <translationbundle lang="sk"> <translation id="1000498691615767391">Vyberte priečinok, ktorý chcete otvoriť</translation> +<translation id="1014208178561091457">Súbor <ph name="FILE_NAME" /> sa nepodarilo skopírovať, pretože je šifrovaný.</translation> <translation id="1047956942837015229">Prebieha odstraňovanie <ph name="COUNT" /> položiek...</translation> <translation id="1049926623896334335">Dokument aplikácie Word</translation> <translation id="1056775291175587022">Žiadne siete</translation> @@ -55,6 +56,7 @@ <translation id="1435838927755162558">Zdieľanie priečinka aplikáciou Parallels Desktop</translation> <translation id="1439919885608649279">Osoba s kvetinami</translation> <translation id="1458457385801829801">Odpojiť <ph name="TARGET_NAME" /></translation> +<translation id="146691674290220697">Niekoľko (<ph name="NUMBER_OF_FILES" />) súborov sa nepodarilo skopírovať, pretože sú šifrované.</translation> <translation id="1471718551822868769">Slovenská klávesnica</translation> <translation id="1482884275703521657">Fínska klávesnica</translation> <translation id="148466539719134488">Švajčiarska klávesnica</translation> @@ -276,6 +278,7 @@ <translation id="3253225298092156258">Nie je k dispozícii</translation> <translation id="3254434849914415189">Zvoľte pre súbory <ph name="FILE_TYPE" /> predvolenú aplikáciu:</translation> <translation id="3255159654094949700">Arabská klávesnica</translation> +<translation id="326396468955264502">Niekoľko (<ph name="NUMBER_OF_FILES" />) súborov sa nepodarilo presunúť, pretože sú šifrované.</translation> <translation id="3264582393905923483">Kontext</translation> <translation id="3272909651715601089"><ph name="PATH" /> sa nepodarilo otvoriť</translation> <translation id="3280431534455935878">Prebieha príprava</translation> @@ -313,6 +316,7 @@ <translation id="3523225005467146490">S virtuálnym počítačom <ph name="VM_NAME" /> bol zdieľaný 1 súbor</translation> <translation id="3524311639100184459">Upozornenie: Tieto súbory sú dočasné a môžu byť automaticky odstránené na uvoľnenie priestoru na disku. <ph name="BEGIN_LINK" />Ďalšie informácie<ph name="END_LINK" /></translation> <translation id="3527085408025491307">Priečinok</translation> +<translation id="3529424493985988200">Podrobnosti vám poskytne správca.</translation> <translation id="3548125359243647069">Príliš veľakrát bol zadaný nesprávny kód PIN.</translation> <translation id="3549797760399244642">Prejsť na adresu drive.google.com...</translation> <translation id="3553048479571901246">Ak chcete otvoriť súbory pomocou aplikácie <ph name="APP_NAME" />, najprv ich skopírujte do priečinka so súbormi systému Windows.</translation> @@ -701,6 +705,7 @@ <translation id="637062427944097960">Tento súbor je otvorený na inej pracovnej ploche. Ak ho chcete zobraziť, prejdite do profilu <ph name="USER_NAME" /> (<ph name="MAIL_ADDRESS" />).</translation> <translation id="6394388407447716302">Iba na čítanie</translation> <translation id="6395575651121294044">Počet položiek: <ph name="NUMBER_OF_FILES" /></translation> +<translation id="6407769893376380348">Súbor <ph name="FILE_NAME" /> sa nepodarilo presunúť, pretože je šifrovaný.</translation> <translation id="642282551015776456">Tento názov nie je možné použiť na pomenovanie súboru ani priečinka.</translation> <translation id="6423031066725912715">Vietnamská klávesnica s rozložením TCVN</translation> <translation id="6430271654280079150">Zostáva vám jeden pokus.</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_zh-CN.xtb b/ui/chromeos/translations/ui_chromeos_strings_zh-CN.xtb index a4b7158..26e3177e 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_zh-CN.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_zh-CN.xtb
@@ -1036,6 +1036,7 @@ <translation id="8949925099261528566">已连接,但无法访问互联网</translation> <translation id="8965697826696209160">空间不足。</translation> <translation id="8970887620466824814">出了点问题。</translation> +<translation id="8971742885766657349">正在同步 - 已完成 <ph name="PERCENT" />%</translation> <translation id="8997962250644902079">中文(繁体)拼音</translation> <translation id="8998871447376656508">您的 Google 云端硬盘中的可用空间不足,无法完成上传。</translation> <translation id="9003940392834790328">第 <ph name="NETWORK_INDEX" /> 个网络(共 <ph name="NETWORK_COUNT" /> 个),<ph name="NETWORK_NAME" />,<ph name="CONNECTION_STATUS" />,信号强度为 <ph name="SIGNAL_STRENGTH" />%,由您的管理员管理,详细信息</translation>
diff --git a/ui/chromeos/translations/ui_chromeos_strings_zu.xtb b/ui/chromeos/translations/ui_chromeos_strings_zu.xtb index 507c98c..150275f 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_zu.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_zu.xtb
@@ -1041,6 +1041,7 @@ <translation id="8949925099261528566">Kuxhunyiwe, ayikho i-inthanethi</translation> <translation id="8965697826696209160">Asikho isikhala esanele.</translation> <translation id="8970887620466824814">Okuthile akuhambanga kahle.</translation> +<translation id="8971742885766657349">Iyavumelanisa - <ph name="PERCENT" />%</translation> <translation id="8997962250644902079">Chinese (Traditional) Pinyin</translation> <translation id="8998871447376656508">Asikho isikhala esanele esikhululekile ku-Google Drive yakho ukuze uqedele ukulayisha.</translation> <translation id="9003940392834790328">Inethiwekhi <ph name="NETWORK_INDEX" /> ye-<ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="CONNECTION_STATUS" />, amandla esignali <ph name="SIGNAL_STRENGTH" />%, kuphethwe umlawuli wakho, imininingwane</translation>
diff --git a/ui/gfx/x/atom_cache.cc b/ui/gfx/x/atom_cache.cc index f7c7a8ea..f1cd9b4 100644 --- a/ui/gfx/x/atom_cache.cc +++ b/ui/gfx/x/atom_cache.cc
@@ -8,6 +8,7 @@ #include <vector> #include "base/check.h" +#include "base/logging.h" #include "base/memory/singleton.h" #include "ui/gfx/x/connection.h" #include "ui/gfx/x/future.h" @@ -36,8 +37,12 @@ "Abs MT Touch Minor", "Abs MT Tracking ID", "Abs Metrics Type", + "Abs Pressure", + "Abs Tilt X", + "Abs Tilt Y", + "Abs X", + "Abs Y", "CHECK", - "CHOME_SELECTION", "CHROME_SELECTION", "CHROMIUM_COMPOSITE_WINDOW", "CHROMIUM_TIMESTAMP", @@ -213,9 +218,10 @@ if (auto response = connection_->InternAtom(InternAtomRequest{.name = name}).Sync()) { atom = response->atom; - DUMP_WILL_BE_CHECK_GT(atom, x11::Atom::kLastPredefinedAtom) + CHECK_GT(atom, x11::Atom::kLastPredefinedAtom) << " Use x11::Atom::" << name << " instead of x11::GetAtom(\"" << name << "\")"; + LOG(ERROR) << "Add " << name << " to kAtomsToCache"; cached_atoms_.emplace( owned_strings_.emplace_back(std::make_unique<std::string>(name)) ->c_str(),
diff --git a/ui/gfx/x/connection.cc b/ui/gfx/x/connection.cc index 8bf7e9b..e9034ec7de 100644 --- a/ui/gfx/x/connection.cc +++ b/ui/gfx/x/connection.cc
@@ -25,6 +25,7 @@ #include "ui/gfx/x/event.h" #include "ui/gfx/x/glx.h" #include "ui/gfx/x/keyboard_state.h" +#include "ui/gfx/x/property_cache.h" #include "ui/gfx/x/randr.h" #include "ui/gfx/x/render.h" #include "ui/gfx/x/screensaver.h" @@ -85,6 +86,13 @@ RawError error_bytes_; }; +Window GetWindowPropertyAsWindow(const GetPropertyResponse& value) { + if (const Window* wm_window = PropertyCache::GetAs<Window>(value)) { + return *wm_window; + } + return Window::None; +} + } // namespace // static @@ -163,6 +171,13 @@ InitErrorParsers(); atom_cache_ = std::make_unique<AtomCache>(this); + + root_props_ = std::make_unique<PropertyCache>( + this, default_root(), + std::vector<Atom>{GetAtom("_NET_SUPPORTING_WM_CHECK"), + GetAtom("_NET_SUPPORTED")}, + base::BindRepeating(&Connection::OnRootPropertyChanged, + base::Unretained(this))); } Connection::~Connection() { @@ -289,10 +304,35 @@ return ScopedEventSelector(this, window, event_mask); } -Atom Connection::GetAtom(const char* name) { +Atom Connection::GetAtom(const char* name) const { return atom_cache_->GetAtom(name); } +std::string Connection::GetWmName() const { + if (WmSupportsEwmh()) { + size_t size; + if (const char* name = + wm_props_->GetAs<char>(GetAtom("_NET_WM_NAME"), &size)) { + std::string wm_name; + wm_name.assign(name, size); + return wm_name; + } + } + return std::string(); +} + +bool Connection::WmSupportsHint(Atom atom) const { + if (WmSupportsEwmh()) { + size_t size; + if (const Atom* supported = + root_props_->GetAs<Atom>(GetAtom("_NET_SUPPORTED"), &size)) { + const Atom* end = supported + size; + return std::find(supported, end, atom) != end; + } + } + return false; +} + Connection::Request::Request(ResponseCallback callback) : callback(std::move(callback)) { DUMP_WILL_BE_CHECK(this->callback); @@ -851,4 +891,31 @@ return xcb_generate_id(connection_.get()); } +void Connection::OnRootPropertyChanged(Atom property, + const GetPropertyResponse& value) { + Atom check_atom = GetAtom("_NET_SUPPORTING_WM_CHECK"); + if (property == check_atom) { + wm_props_.reset(); + Window wm_window = GetWindowPropertyAsWindow(value); + if (wm_window != Window::None) { + wm_props_ = std::make_unique<PropertyCache>( + this, wm_window, + std::vector<Atom>{check_atom, GetAtom("_NET_WM_NAME")}); + } + } +} + +bool Connection::WmSupportsEwmh() const { + Atom check_atom = GetAtom("_NET_SUPPORTING_WM_CHECK"); + Window wm_window = GetWindowPropertyAsWindow(root_props_->Get(check_atom)); + + if (!wm_props_) { + return false; + } + if (const x11::Window* wm_check = wm_props_->GetAs<Window>(check_atom)) { + return *wm_check == wm_window; + } + return false; +} + } // namespace x11
diff --git a/ui/gfx/x/connection.h b/ui/gfx/x/connection.h index 905862e..8694dfc 100644 --- a/ui/gfx/x/connection.h +++ b/ui/gfx/x/connection.h
@@ -29,6 +29,7 @@ class AtomCache; class Event; class KeyboardState; +class PropertyCache; class VisualManager; class WriteBuffer; @@ -425,7 +426,12 @@ ScopedEventSelector ScopedSelectEvent(Window window, EventMask event_mask); - Atom GetAtom(const char* name); + Atom GetAtom(const char* name) const; + + // Returns an empty string if there is no window manager or the WM is unnamed. + std::string GetWmName() const; + + bool WmSupportsHint(Atom atom) const; // The viz compositor thread hangs a PlatformEventSource off the connection so // that it gets destroyed at the appropriate time. @@ -500,6 +506,10 @@ uint32_t GenerateIdImpl(); + void OnRootPropertyChanged(Atom property, const GetPropertyResponse& value); + + bool WmSupportsEwmh() const; + std::string display_string_; int default_screen_id_ = 0; std::unique_ptr<xcb_connection_t, void (*)(xcb_connection_t*)> connection_ = { @@ -555,6 +565,9 @@ std::unique_ptr<VisualManager> visual_manager_; std::unique_ptr<AtomCache> atom_cache_; + + std::unique_ptr<PropertyCache> root_props_; + std::unique_ptr<PropertyCache> wm_props_; }; } // namespace x11
diff --git a/ui/ozone/platform/x11/test/x11_window_unittest.cc b/ui/ozone/platform/x11/test/x11_window_unittest.cc index 751d103b..c5cefaa 100644 --- a/ui/ozone/platform/x11/test/x11_window_unittest.cc +++ b/ui/ozone/platform/x11/test/x11_window_unittest.cc
@@ -324,7 +324,8 @@ EXPECT_FALSE(ShapeRectContainsPoint(shape_rects, 205, 15)); } - if (WmSupportsHint(x11::GetAtom("_NET_WM_STATE_MAXIMIZED_VERT"))) { + if (connection->WmSupportsHint( + x11::GetAtom("_NET_WM_STATE_MAXIMIZED_VERT"))) { // The shape should be changed to a rectangle which fills the entire screen // when |widget1| is maximized. { @@ -405,10 +406,10 @@ // Test that the widget reacts on changes in fullscreen state initiated by the // window manager (e.g. via a window manager accelerator key). TEST_F(X11WindowTest, MAYBE_WindowManagerTogglesFullscreen) { - if (!WmSupportsHint(x11::GetAtom("_NET_WM_STATE_FULLSCREEN"))) - return; - auto* connection = x11::Connection::Get(); + if (!connection->WmSupportsHint(x11::GetAtom("_NET_WM_STATE_FULLSCREEN"))) { + return; + } TestPlatformWindowDelegate delegate; ShapedX11ExtensionDelegate x11_extension_delegate;
diff --git a/ui/ozone/platform/x11/x11_window.cc b/ui/ozone/platform/x11/x11_window.cc index 86732cb8..f3a0e657 100644 --- a/ui/ozone/platform/x11/x11_window.cc +++ b/ui/ozone/platform/x11/x11_window.cc
@@ -788,7 +788,7 @@ // https://code.google.com/p/wmii/issues/detail?id=266 static bool wm_supports_active_window = GuessWindowManager() != WM_WMII && - WmSupportsHint(x11::GetAtom("_NET_ACTIVE_WINDOW")); + connection_->WmSupportsHint(x11::GetAtom("_NET_ACTIVE_WINDOW")); x11::Time timestamp = X11EventSource::GetInstance()->GetTimestamp(); @@ -1112,7 +1112,7 @@ return false; } } - return ui::WmSupportsHint(x11::GetAtom("_GTK_FRAME_EXTENTS")); + return connection_->WmSupportsHint(x11::GetAtom("_GTK_FRAME_EXTENTS")); } void X11Window::SetDecorationInsets(const gfx::Insets* insets_px) {
diff --git a/v8 b/v8 index 34503e4..802e4ae 160000 --- a/v8 +++ b/v8
@@ -1 +1 @@ -Subproject commit 34503e45094863db86a81e71dd4e9ebe0011d986 +Subproject commit 802e4aead6e7cf7f12b406e2cdb389334f7d3e3d