diff --git a/DEPS b/DEPS index 124194e..05a3c855 100644 --- a/DEPS +++ b/DEPS
@@ -275,11 +275,11 @@ # 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': '20a2f7b4d443f1a38a14e484617c5356d5fcd047', + 'skia_revision': 'd05aff78a0ed8b745fc14f390c6c06b9a2cb2a03', # 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': '54939cdc830d2fff9fd8588c27723212bfa500ef', + 'v8_revision': 'ba785873c41d2bd9d1788ee225f6a405dd638a3d', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling ANGLE # and whatever else without interference from each other. @@ -302,7 +302,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling Fuchsia sdk # and whatever else without interference from each other. - 'fuchsia_version': 'version:8.20220528.1.1', + 'fuchsia_version': 'version:8.20220529.2.1', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling google-toolbox-for-mac # and whatever else without interference from each other. @@ -354,7 +354,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling devtools-frontend # and whatever else without interference from each other. - 'devtools_frontend_revision': '8a28dfec425e431c831ee0497eec7e6b6c560500', + 'devtools_frontend_revision': '54f6ed90dab6ad21bb3f751d3ad04ce7411fc27a', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling libprotobuf-mutator # and whatever else without interference from each other. @@ -434,7 +434,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. - 'libcxxabi_revision': '8b1770bc550a6e9d62a18a4612e94bf7cccf5151', + 'libcxxabi_revision': '1a14c577528f5f8c860ac826384aa031f501e958', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling feed # and whatever else without interference from each other. @@ -841,7 +841,7 @@ 'packages': [ { 'package': 'chromium/rts/model/linux-amd64', - 'version': 'kfrkcQCITH-DfONjfv-WCKFiIMz9pDt-xEtATIgq838C', + 'version': 'mBk-JxbI_dvdb-NUDVixeOf97tA1vOg6H8aTfv4Z5ZYC', }, ], 'dep_type': 'cipd', @@ -852,7 +852,7 @@ 'packages': [ { 'package': 'chromium/rts/model/mac-amd64', - 'version': 'NmPms5_hKJTzLH57RlOpHV1gYZci6u8u-VFqCLfx0IYC', + 'version': 'rKZ_dg_3F7k8JUtV6vx_bj_LmY836Qf09Yb8rMcNPcwC', }, ], 'dep_type': 'cipd', @@ -863,7 +863,7 @@ 'packages': [ { 'package': 'chromium/rts/model/windows-amd64', - 'version': 'oHo3sxxUvWy9nko65nfOGtF639JCF8dFu-O6cpkmjLUC', + 'version': 'zIjrtgjSh_rEcXw3zfz69yh5aEEssZR5GUf30hbtSGAC', }, ], 'dep_type': 'cipd', @@ -920,7 +920,7 @@ 'packages': [ { 'package': 'chromium/third_party/androidx', - 'version': '_3gaSYtb8HQIr0ti1OnRCzzfyUDoYIHd9U7cGQk9Q5EC', + 'version': '_BgrtGL0M9mSNIBsFxZ4z69R1FN_czTV0jN8uTXnODkC', }, ], 'condition': 'checkout_android', @@ -1708,7 +1708,7 @@ Var('chromium_git') + '/external/github.com/gpuweb/cts.git' + '@' + '70091fdb8d3d037b8f2919eb63e5a2bf6444deb7', 'src/third_party/webrtc': - Var('webrtc_git') + '/src.git' + '@' + 'e0ad779aaa97bda74c4edd3c84c4fc872b9b8b10', + Var('webrtc_git') + '/src.git' + '@' + 'e4374a6020e6568fec7943dba811e5f37289a7ca', 'src/third_party/libgifcodec': Var('skia_git') + '/libgifcodec' + '@'+ Var('libgifcodec_revision'), @@ -1781,7 +1781,7 @@ Var('chromium_git') + '/v8/v8.git' + '@' + Var('v8_revision'), 'src-internal': { - 'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@b6c8bb85d2b0bc2710f5715e19ebe3c29936609b', + 'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@9d25e6fc918ffb282fd4ad0e4c874259cae3f267', 'condition': 'checkout_src_internal', }, @@ -1811,7 +1811,7 @@ 'packages': [ { 'package': 'chromeos_internal/apps/help_app/app', - 'version': '2cH_eZJ8Yeb55pBlbGm25zfTRUsKtrnjCvVH6vXhO50C', + 'version': 'RAGJFGUzieQLuZwQMW08I0z_nV1O9sB1QaV-hShpRCEC', }, ], 'condition': 'checkout_chromeos and checkout_src_internal', @@ -1822,7 +1822,7 @@ 'packages': [ { 'package': 'chromeos_internal/apps/media_app/app', - 'version': 'X95M0P0NjefqU8YMT7tK-d1uP-BXtEvqDKNG-S1mQgAC', + 'version': 'P4RsJ7B5KwOErrFWaBhBccR2lbGgQuN5SHwJCtGy7-sC', }, ], 'condition': 'checkout_chromeos and checkout_src_internal',
diff --git a/ash/strings/ash_strings_ms.xtb b/ash/strings/ash_strings_ms.xtb index 2654fbb4..517dae0 100644 --- a/ash/strings/ash_strings_ms.xtb +++ b/ash/strings/ash_strings_ms.xtb
@@ -252,6 +252,7 @@ <translation id="243878895369688216">Dibuka semalam</translation> <translation id="2441427462554639370">Rakaman ditamatkan kerana ruang storan hampir habis</translation> <translation id="24452542372838207">Kembangkan pemberitahuan</translation> +<translation id="2449089818483227734">Bateri Lemah</translation> <translation id="2450205753526923158">Mod tangkapan skrin</translation> <translation id="2456008742792828469">Kalendar, <ph name="CURRENT_MONTH_YEAR" /></translation> <translation id="2473177541599297363">Sahkan Peleraian</translation> @@ -412,11 +413,13 @@ <translation id="3441920967307853524"><ph name="RECEIVED_BYTES" />/<ph name="TOTAL_BYTES" /></translation> <translation id="3445288400492335833"><ph name="MINUTES" /> min</translation> <translation id="3445925074670675829">Peranti USB-C</translation> +<translation id="3455468639467374593">Templat, <ph name="TEMPLATE_NAME" /></translation> <translation id="3465223694362104965">Papan kekunci lain telah disambungkan ke peranti ini sejak kali terakhir anda log masuk. Pastikan anda mempercayai papan kekunci ini sebelum anda menggunakannya.</translation> <translation id="3465356146291925647">Diurus oleh Pentadbir anda</translation> <translation id="3477079411857374384">Control-Shift-Space</translation> <translation id="3485319357743610354"><ph name="SECURITY_STATUS" />, <ph name="CONNECTION_STATUS" />, Kekuatan Isyarat <ph name="SIGNAL_STRENGTH" /></translation> <translation id="348799646910989694">Rak disembunyikan secara automatik</translation> +<translation id="3505066820268455558">Pengecasan Bateri</translation> <translation id="3509391053705095206">Tidak dapat menemukan telefon anda. Pastikan Bluetooth telefon anda dihidupkan.</translation> <translation id="3510164367642747937">Serlahkan kursor tetikus</translation> <translation id="3513798432020909783">Akaun diurus oleh <ph name="MANAGER_EMAIL" /></translation> @@ -457,6 +460,8 @@ <translation id="3633097874324966332">Buka tetapan Bluetooth untuk menggandingkan peranti anda</translation> <translation id="3638400994746983214">Togol skrin privasi. <ph name="STATE_TEXT" />.</translation> <translation id="3649505501900178324">Kemas kini terlewat</translation> +<translation id="3659814201068740063">Kira-kira <ph name="TIME_LEFT" /> lagi (<ph name="PERCENTAGE" />%). +Sambungkan peranti anda kepada sumber kuasa.</translation> <translation id="366222428570480733"><ph name="USER_EMAIL_ADDRESS" /> Pengguna terurus</translation> <translation id="36813544980941320">Rangkaian Wi-Fi akan dikongsi antara telefon anda dengan <ph name="DEVICE_NAME" /></translation> <translation id="3694122362646626770">Laman web</translation> @@ -512,6 +517,7 @@ <translation id="3962859241508114581">Lagu Sebelumnya</translation> <translation id="3969043077941541451">Mati</translation> <translation id="397105322502079400">Mengira...</translation> +<translation id="397726367135689299">Pengecasan bateri mungkin tidak boleh dipercayai.</translation> <translation id="3977512764614765090">Kuasa bateri pada tahap <ph name="PERCENTAGE" />% dan sedang dicas.</translation> <translation id="3986082989454912832">Jawab</translation> <translation id="3995138139523574647">Peranti USB-C (port belakang sebelah kanan)</translation> @@ -1039,6 +1045,7 @@ <translation id="7130207228079676353">KEMUNGKINAN BESAR</translation> <translation id="7131634465328662194">Anda akan dilog keluar secara automatik.</translation> <translation id="7143207342074048698">Menyambung</translation> +<translation id="7144942256906679589">Status bateri</translation> <translation id="7165278925115064263">Alt+Shift+K</translation> <translation id="7168224885072002358">Kembali kepada peleraian lama dalam <ph name="TIMEOUT_SECONDS" /></translation> <translation id="7180611975245234373">Muat semula</translation> @@ -1104,6 +1111,7 @@ <translation id="7593891976182323525">Search atau Shift</translation> <translation id="7600875258240007829">Lihat semua pemberitahuan</translation> <translation id="7607002721634913082">Dijeda</translation> +<translation id="7609951632080598826">Paparan kalendar, <ph name="DATE" />, <ph name="TIME" /></translation> <translation id="7611213136657090146">Kamera disambung semula.</translation> <translation id="7624117708979618027"><ph name="TEMPERATURE_F" />° F</translation> <translation id="7633755430369750696">Paparkan tetapan Kongsi Berdekatan.</translation> @@ -1229,6 +1237,7 @@ <translation id="8345019317483336363"><ph name="WINDOW_TITLE" /> tetingkap dipilih</translation> <translation id="8351131234907093545">Buat nota</translation> <translation id="8364673525741149932">Togol mod Shelf Party. <ph name="STATE_TEXT" /></translation> +<translation id="8369166482916924789">Meja yang disimpan, <ph name="SAVE_AND_RECALL_DESK_NAME" /></translation> <translation id="8371779926711439835">Maju satu huruf</translation> <translation id="8371991222807690464">Prestasi peranti persisian mungkin terhad dalam mod Tetamu</translation> <translation id="8374601332003098278">Tekan kekunci enter untuk merakam skrin separa</translation> @@ -1340,6 +1349,7 @@ <translation id="9000771174482730261">URUS STORAN</translation> <translation id="9017320285115481645">Masukkan kod akses ibu bapa Family Link.</translation> <translation id="9024331582947483881">skrin penuh</translation> +<translation id="9029736946581028033">Peranti akan dimatikan tidak lama lagi</translation> <translation id="9030319654231318877">Dimatikan sehingga matahari terbenam</translation> <translation id="9034924485347205037">Fail Linux</translation> <translation id="9047624247355796468">Buka tetapan untuk <ph name="NETWORK_NAME" /></translation> @@ -1369,6 +1379,7 @@ <translation id="9168436347345867845">Lakukan kemudian</translation> <translation id="9178475906033259337">Memaparkan 1 hasil carian untuk <ph name="QUERY" /></translation> <translation id="9179259655489829027">Ciri ini membolehkan anda mengakses dengan cepat mana-mana pengguna yang telah log masuk tanpa memerlukan kata laluan. Gunakan ciri ini dengan akaun yang dipercayai sahaja.</translation> +<translation id="9180906851711123156">Tekan Ctrl+W untuk tutup</translation> <translation id="9183456764293710005">Penggadang skrin penuh</translation> <translation id="9193626018745640770">Menghantar pada penerima yang tidak diketahui</translation> <translation id="9194617393863864469">Log masuk pengguna lain...</translation>
diff --git a/ash/strings/ash_strings_sl.xtb b/ash/strings/ash_strings_sl.xtb index 8d9a7abc..9385e23 100644 --- a/ash/strings/ash_strings_sl.xtb +++ b/ash/strings/ash_strings_sl.xtb
@@ -1060,6 +1060,7 @@ <translation id="7348093485538360975">Zaslonska tipkovnica</translation> <translation id="735745346212279324">Povezava z navideznim zasebnim omrežjem je prekinjena</translation> <translation id="7360036564632145207">S spremembo nastavitve zaščite dostopa do podatkov za zunanje dodatne opreme lahko optimizirate delovanje.</translation> +<translation id="736045644501761622">Nastavitev zaslonskega ozadja in sloga</translation> <translation id="7371404428569700291">Okno za snemanje</translation> <translation id="7377169924702866686">Tipka Caps Lock je vklopljena.</translation> <translation id="7377481913241237033">Povezava s kodo</translation> @@ -1294,6 +1295,7 @@ <translation id="8721053961083920564">Preklop glasnosti. <ph name="STATE_TEXT" /></translation> <translation id="8724318433625452070">Celozaslonski zajem</translation> <translation id="8734991477317290293">Morda poskuša beležiti vse, kar natipkate</translation> +<translation id="8735678380411481005">Barva osvetlitve tipkovnice</translation> <translation id="8735953464173050365">Prikaz nastavitev tipkovnice. Izbrana je tipkovnica <ph name="KEYBOARD_NAME" />.</translation> <translation id="8755498163081687682">Preverjanje identitete: Spletno mesto <ph name="ORIGIN_NAME" /> želi potrditi, ali ste to res vi.</translation> <translation id="875593634123171288">Prikaz nastavitev omrežja VPN</translation>
diff --git a/ash/strings/ash_strings_uz.xtb b/ash/strings/ash_strings_uz.xtb index 4347bb1..fc48717 100644 --- a/ash/strings/ash_strings_uz.xtb +++ b/ash/strings/ash_strings_uz.xtb
@@ -252,6 +252,7 @@ <translation id="243878895369688216">Kecha ochilgan</translation> <translation id="2441427462554639370">Xotirada juda kam joy qolgani uchun yozib olish tugatildi</translation> <translation id="24452542372838207">Bildirishnomani yoyish</translation> +<translation id="2449089818483227734">Batareya quvvati kam</translation> <translation id="2450205753526923158">Skrinshot rejimi</translation> <translation id="2456008742792828469">Taqvim, <ph name="CURRENT_MONTH_YEAR" /></translation> <translation id="2473177541599297363">Ekran hajmini tasdiqlash</translation> @@ -412,11 +413,13 @@ <translation id="3441920967307853524"><ph name="RECEIVED_BYTES" />/<ph name="TOTAL_BYTES" /></translation> <translation id="3445288400492335833"><ph name="MINUTES" /> daq</translation> <translation id="3445925074670675829">USB-C qurilma</translation> +<translation id="3455468639467374593">Andoza, <ph name="TEMPLATE_NAME" /></translation> <translation id="3465223694362104965">Oxirgi kirishingizdan keyin bu qurilmaga boshqa klaviatura ulangan. Foydalanishdan oldin bu klaviatura ishonchliligini tekshiring.</translation> <translation id="3465356146291925647">Administrator boshqaruvida</translation> <translation id="3477079411857374384">Ctrl + Shift + BO‘SHLIQ</translation> <translation id="3485319357743610354">Himoya: <ph name="SECURITY_STATUS" />, Ulanish: <ph name="CONNECTION_STATUS" />, Signal darajasi:<ph name="SIGNAL_STRENGTH" /></translation> <translation id="348799646910989694">Vaqtincha xotira avtomatik yopildi</translation> +<translation id="3505066820268455558">Battareya quvvatlanmoqda</translation> <translation id="3509391053705095206">Telefoningiz topilmadi. Telefoningizda Bluetooth yoniqligini tekshiring.</translation> <translation id="3510164367642747937">Sichqoncha kursori ajratib ko‘rsatilsin</translation> <translation id="3513798432020909783">Hisobni <ph name="MANAGER_EMAIL" /> boshqaradi</translation> @@ -457,6 +460,8 @@ <translation id="3633097874324966332">Qurilmangizni ulash uchun Bluetooth sozlamalarini oching</translation> <translation id="3638400994746983214">Maxfiylik ekraniga kirish/chiqish. <ph name="STATE_TEXT" />.</translation> <translation id="3649505501900178324">Qayta ishga tushirish zarur</translation> +<translation id="3659814201068740063">Taxminan <ph name="TIME_LEFT" /> qoldi (<ph name="PERCENTAGE" />%). +Qurilmani quvvat manbaiga ulang.</translation> <translation id="366222428570480733"><ph name="USER_EMAIL_ADDRESS" /> boshqariladigan hisob</translation> <translation id="36813544980941320">Telefoningiz va <ph name="DEVICE_NAME" /> qurilmangizda bitta Wi-Fi tarmoq ishlatiladi</translation> <translation id="3694122362646626770">Veb-saytlar</translation> @@ -511,6 +516,7 @@ <translation id="3962859241508114581">Avvalgi trek</translation> <translation id="3969043077941541451">Yoqilmagan</translation> <translation id="397105322502079400">Hisoblanmoqda...</translation> +<translation id="397726367135689299">Batareya quvvatlanishi kuchsiz boʻlishi mumkin.</translation> <translation id="3977512764614765090">Batareya <ph name="PERCENTAGE" />% va quvvatlanmoqda.</translation> <translation id="3986082989454912832">Javob berish</translation> <translation id="3995138139523574647">USB-C qurilma (o‘ng tomondagi orqa port)</translation> @@ -1038,6 +1044,7 @@ <translation id="7130207228079676353">ENG SEVIMLI</translation> <translation id="7131634465328662194">Seansingiz avtomatik yakunlanadi.</translation> <translation id="7143207342074048698">Ulanmoqda</translation> +<translation id="7144942256906679589">Batareya holati</translation> <translation id="7165278925115064263">Alt+Shift+K</translation> <translation id="7168224885072002358">Avvalgi ekran hajmiga qaytishga <ph name="TIMEOUT_SECONDS" /> qoldi.</translation> <translation id="7180611975245234373">Yangilash</translation> @@ -1104,6 +1111,7 @@ <translation id="7593891976182323525">Search yoki Shift</translation> <translation id="7600875258240007829">Barcha bildirishnomalarni ochish</translation> <translation id="7607002721634913082">Vaqtincha to‘xtatildi</translation> +<translation id="7609951632080598826">Taqvim shaklida, <ph name="DATE" />, <ph name="TIME" /></translation> <translation id="7611213136657090146">Kamera qayta ulandi.</translation> <translation id="7624117708979618027"><ph name="TEMPERATURE_F" />° F</translation> <translation id="7633755430369750696">Nearby Share sozlamalarini ochish.</translation> @@ -1229,6 +1237,7 @@ <translation id="8345019317483336363"><ph name="WINDOW_TITLE" /> oynasi tanlandi</translation> <translation id="8351131234907093545">Qayd yaratish</translation> <translation id="8364673525741149932">Shelf Party tugmasi. <ph name="STATE_TEXT" /></translation> +<translation id="8369166482916924789">Saqlangan ish stoli, <ph name="SAVE_AND_RECALL_DESK_NAME" /></translation> <translation id="8371779926711439835">Bitta harf oldinga</translation> <translation id="8371991222807690464">Mehmon rejimida tashqi qurilmalar samaradorligi cheklanishi mumkin</translation> <translation id="8374601332003098278">Ekranning bir qismini yozib olish uchun Enter tugmasini bosing</translation> @@ -1341,6 +1350,7 @@ <translation id="9000771174482730261">XOTIRANI BOSHQARISH</translation> <translation id="9017320285115481645">Family Link ota-ona kodini kiriting.</translation> <translation id="9024331582947483881">butun ekran</translation> +<translation id="9029736946581028033">Qurilma quvvati tez orada tugaydi</translation> <translation id="9030319654231318877">Quyosh botishigacha oʻchiq</translation> <translation id="9034924485347205037">Linux fayllari</translation> <translation id="9047624247355796468"><ph name="NETWORK_NAME" /> sozlamalarini ochish</translation> @@ -1370,6 +1380,7 @@ <translation id="9168436347345867845">Keyinroq</translation> <translation id="9178475906033259337"><ph name="QUERY" /> – 1 ta natija chiqdi</translation> <translation id="9179259655489829027">Bu funksiya kirish bajarilgan istalgan hisobga tez va parolsiz ruxsat beradi. Faqatgina ishonchli hisoblarga qo‘llang.</translation> +<translation id="9180906851711123156">Yopish uchun Ctrl+W tugmalarini bosing</translation> <translation id="9183456764293710005">Butun ekran rejimidagi lupa</translation> <translation id="9193626018745640770">Notanish qurilmaga translatsiya qilinmoqda</translation> <translation id="9194617393863864469">Boshqa hisobga kirish...</translation>
diff --git a/base/metrics/bucket_ranges.h b/base/metrics/bucket_ranges.h index a0ac6dcf..1fc540df 100644 --- a/base/metrics/bucket_ranges.h +++ b/base/metrics/bucket_ranges.h
@@ -94,7 +94,7 @@ // information is stored. This allows for the record to be created once and // re-used simply by having all histograms with the same ranges use the // same reference. - mutable std::atomic<int32_t> persistent_reference_{0}; + mutable std::atomic<uint32_t> persistent_reference_{0}; }; } // namespace base
diff --git a/base/metrics/histogram_base.cc b/base/metrics/histogram_base.cc index acd3950..c1036cf9 100644 --- a/base/metrics/histogram_base.cc +++ b/base/metrics/histogram_base.cc
@@ -104,16 +104,16 @@ } void HistogramBase::AddScaled(Sample value, int count, int scale) { - DCHECK_LT(0, scale); + DCHECK_GT(scale, 0); // Convert raw count and probabilistically round up/down if the remainder // is more than a random number [0, scale). This gives a more accurate // count when there are a large number of records. RandInt is "inclusive", // hence the -1 for the max value. - int64_t count_scaled = count / scale; + int count_scaled = count / scale; if (count - (count_scaled * scale) > base::RandInt(0, scale - 1)) - count_scaled += 1; - if (count_scaled == 0) + ++count_scaled; + if (count_scaled <= 0) return; AddCount(value, count_scaled);
diff --git a/base/metrics/histogram_base.h b/base/metrics/histogram_base.h index 54c0e56..ba2053e 100644 --- a/base/metrics/histogram_base.h +++ b/base/metrics/histogram_base.h
@@ -329,7 +329,7 @@ const char* const histogram_name_; // Additional information about the histogram. - std::atomic<uint32_t> flags_{0}; + std::atomic<int32_t> flags_{0}; }; } // namespace base
diff --git a/base/metrics/persistent_histogram_allocator.cc b/base/metrics/persistent_histogram_allocator.cc index 492d96e..f8fe4b0 100644 --- a/base/metrics/persistent_histogram_allocator.cc +++ b/base/metrics/persistent_histogram_allocator.cc
@@ -427,7 +427,7 @@ // next import (which will happen before the next histogram creation) // will know to skip it. // See also the comment in ImportHistogramsToStatisticsRecorder(). - subtle::NoBarrier_Store(&last_created_, histogram_ref); + last_created_.store(histogram_ref, std::memory_order_relaxed); return histogram; } @@ -505,7 +505,7 @@ } void PersistentHistogramAllocator::ClearLastCreatedReferenceForTesting() { - subtle::NoBarrier_Store(&last_created_, 0); + last_created_.store(0, std::memory_order_relaxed); } std::unique_ptr<HistogramBase> PersistentHistogramAllocator::CreateHistogram(
diff --git a/base/metrics/persistent_histogram_allocator.h b/base/metrics/persistent_histogram_allocator.h index 062474fc..748f7e0 100644 --- a/base/metrics/persistent_histogram_allocator.h +++ b/base/metrics/persistent_histogram_allocator.h
@@ -5,12 +5,12 @@ #ifndef BASE_METRICS_PERSISTENT_HISTOGRAM_ALLOCATOR_H_ #define BASE_METRICS_PERSISTENT_HISTOGRAM_ALLOCATOR_H_ +#include <atomic> #include <map> #include <memory> #include <string> #include <vector> -#include "base/atomicops.h" #include "base/base_export.h" #include "base/feature_list.h" #include "base/memory/raw_ptr.h" @@ -314,8 +314,8 @@ // Gets the reference of the last histogram created, used to avoid // trying to import what was just created. - PersistentHistogramAllocator::Reference last_created() { - return subtle::NoBarrier_Load(&last_created_); + Reference last_created() { + return last_created_.load(std::memory_order_relaxed); } // Gets the next histogram in persistent data based on iterator while @@ -350,8 +350,7 @@ // A reference to the last-created histogram in the allocator, used to avoid // trying to import what was just created. - // TODO(bcwhite): Change this to std::atomic<PMA::Reference> when available. - subtle::Atomic32 last_created_ = 0; + std::atomic<Reference> last_created_ = 0; };
diff --git a/base/metrics/persistent_memory_allocator.cc b/base/metrics/persistent_memory_allocator.cc index 9f53ff9d..c90bb634 100644 --- a/base/metrics/persistent_memory_allocator.cc +++ b/base/metrics/persistent_memory_allocator.cc
@@ -878,8 +878,10 @@ // having internal dereferences go through this same function, the allocator // is hardened against corruption. const volatile PersistentMemoryAllocator::BlockHeader* -PersistentMemoryAllocator::GetBlock(Reference ref, uint32_t type_id, - uint32_t size, bool queue_ok, +PersistentMemoryAllocator::GetBlock(Reference ref, + uint32_t type_id, + size_t size, + bool queue_ok, bool free_ok) const { // Handle special cases. if (ref == kReferenceQueue && queue_ok) @@ -929,7 +931,7 @@ const volatile void* PersistentMemoryAllocator::GetBlockData( Reference ref, uint32_t type_id, - uint32_t size) const { + size_t size) const { DCHECK(size > 0); const volatile BlockHeader* block = GetBlock(ref, type_id, size, false, false);
diff --git a/base/metrics/persistent_memory_allocator.h b/base/metrics/persistent_memory_allocator.h index fcc3539..92a599f 100644 --- a/base/metrics/persistent_memory_allocator.h +++ b/base/metrics/persistent_memory_allocator.h
@@ -661,24 +661,29 @@ Reference AllocateImpl(size_t size, uint32_t type_id); // Get the block header associated with a specific reference. - const volatile BlockHeader* GetBlock(Reference ref, uint32_t type_id, - uint32_t size, bool queue_ok, + const volatile BlockHeader* GetBlock(Reference ref, + uint32_t type_id, + size_t size, + bool queue_ok, bool free_ok) const; - volatile BlockHeader* GetBlock(Reference ref, uint32_t type_id, uint32_t size, - bool queue_ok, bool free_ok) { - return const_cast<volatile BlockHeader*>( - const_cast<const PersistentMemoryAllocator*>(this)->GetBlock( - ref, type_id, size, queue_ok, free_ok)); + volatile BlockHeader* GetBlock(Reference ref, + uint32_t type_id, + size_t size, + bool queue_ok, + bool free_ok) { + return const_cast<volatile BlockHeader*>( + const_cast<const PersistentMemoryAllocator*>(this)->GetBlock( + ref, type_id, size, queue_ok, free_ok)); } // Get the actual data within a block associated with a specific reference. - const volatile void* GetBlockData(Reference ref, uint32_t type_id, - uint32_t size) const; - volatile void* GetBlockData(Reference ref, uint32_t type_id, - uint32_t size) { - return const_cast<volatile void*>( - const_cast<const PersistentMemoryAllocator*>(this)->GetBlockData( - ref, type_id, size)); + const volatile void* GetBlockData(Reference ref, + uint32_t type_id, + size_t size) const; + volatile void* GetBlockData(Reference ref, uint32_t type_id, size_t size) { + return const_cast<volatile void*>( + const_cast<const PersistentMemoryAllocator*>(this)->GetBlockData( + ref, type_id, size)); } // Record an error in the internal histogram.
diff --git a/build/fuchsia/linux_internal.sdk.sha1 b/build/fuchsia/linux_internal.sdk.sha1 index d9598f0..d2ad884 100644 --- a/build/fuchsia/linux_internal.sdk.sha1 +++ b/build/fuchsia/linux_internal.sdk.sha1
@@ -1 +1 @@ -8.20220528.1.1 +8.20220529.1.1
diff --git a/cc/layers/picture_layer.cc b/cc/layers/picture_layer.cc index 09d5f09..b922bb7dd 100644 --- a/cc/layers/picture_layer.cc +++ b/cc/layers/picture_layer.cc
@@ -125,8 +125,7 @@ gfx::Size layer_size = bounds(); auto& recording_source = recording_source_.Write(*this); - // TODO(crbug/1308932): Remove toSkColor and make all SkColor4f. - recording_source->SetBackgroundColor(SafeOpaqueBackgroundColor().toSkColor()); + recording_source->SetBackgroundColor(SafeOpaqueBackgroundColor()); recording_source->SetRequiresClear( !contents_opaque() && !picture_layer_inputs_.client->FillsBoundsCompletely());
diff --git a/cc/layers/recording_source.cc b/cc/layers/recording_source.cc index fa34cfb..3d618c14 100644 --- a/cc/layers/recording_source.cc +++ b/cc/layers/recording_source.cc
@@ -115,8 +115,8 @@ slow_down_raster_scale_factor_for_debug_ = factor; } -void RecordingSource::SetBackgroundColor(SkColor background_color) { - background_color_ = SkColor4f::FromColor(background_color); +void RecordingSource::SetBackgroundColor(SkColor4f background_color) { + background_color_ = background_color; } void RecordingSource::SetRequiresClear(bool requires_clear) {
diff --git a/cc/layers/recording_source.h b/cc/layers/recording_source.h index 3d0d2aa..d0df0ac 100644 --- a/cc/layers/recording_source.h +++ b/cc/layers/recording_source.h
@@ -36,7 +36,7 @@ gfx::Size GetSize() const; void SetEmptyBounds(); void SetSlowdownRasterScaleFactor(int factor); - void SetBackgroundColor(SkColor background_color); + void SetBackgroundColor(SkColor4f background_color); void SetRequiresClear(bool requires_clear); void SetNeedsDisplayRect(const gfx::Rect& layer_rect);
diff --git a/cc/raster/raster_source_unittest.cc b/cc/raster/raster_source_unittest.cc index 1aacd3db..dd16a65 100644 --- a/cc/raster/raster_source_unittest.cc +++ b/cc/raster/raster_source_unittest.cc
@@ -268,7 +268,7 @@ std::unique_ptr<FakeRecordingSource> recording_source = FakeRecordingSource::CreateFilledRecordingSource(layer_bounds); - recording_source->SetBackgroundColor(SK_ColorBLACK); + recording_source->SetBackgroundColor(SkColors::kBlack); // Because the caller sets content opaque, it also promises that it // has at least filled in layer_bounds opaquely. @@ -302,7 +302,7 @@ SkBitmap bitmap; bitmap.allocN32Pixels(canvas_rect.width(), canvas_rect.height()); SkCanvas canvas(bitmap, SkSurfaceProps{}); - canvas.clear(SK_ColorTRANSPARENT); + canvas.clear(SkColors::kTransparent); raster->PlaybackToCanvas( &canvas, content_bounds, canvas_rect, canvas_rect, @@ -333,7 +333,7 @@ std::unique_ptr<FakeRecordingSource> recording_source = FakeRecordingSource::CreateFilledRecordingSource(layer_bounds); - recording_source->SetBackgroundColor(SK_ColorBLACK); + recording_source->SetBackgroundColor(SkColors::kBlack); // Because the caller sets content opaque, it also promises that it // has at least filled in layer_bounds opaquely. @@ -363,7 +363,7 @@ SkBitmap bitmap; bitmap.allocN32Pixels(canvas_rect.width(), canvas_rect.height()); SkCanvas canvas(bitmap, SkSurfaceProps{}); - canvas.clear(SK_ColorTRANSPARENT); + canvas.clear(SkColors::kTransparent); raster->PlaybackToCanvas( &canvas, content_bounds, canvas_rect, canvas_rect, @@ -393,7 +393,7 @@ std::unique_ptr<FakeRecordingSource> recording_source = FakeRecordingSource::CreateFilledRecordingSource(layer_bounds); - recording_source->SetBackgroundColor(SK_ColorGREEN); + recording_source->SetBackgroundColor(SkColors::kGreen); // First record everything as white. PaintFlags white_flags; @@ -467,7 +467,7 @@ std::unique_ptr<FakeRecordingSource> recording_source = FakeRecordingSource::CreateFilledRecordingSource(layer_bounds); - recording_source->SetBackgroundColor(SK_ColorGREEN); + recording_source->SetBackgroundColor(SkColors::kGreen); // First record everything as white. PaintFlags white_flags; @@ -558,7 +558,7 @@ std::unique_ptr<FakeRecordingSource> recording_source = FakeRecordingSource::CreateFilledRecordingSource(layer_bounds); - recording_source->SetBackgroundColor(SK_ColorGREEN); + recording_source->SetBackgroundColor(SkColors::kGreen); recording_source->SetRequiresClear(true); // First record everything as white. @@ -596,7 +596,7 @@ std::unique_ptr<FakeRecordingSource> recording_source_light = FakeRecordingSource::CreateFilledRecordingSource(layer_bounds); - recording_source_light->SetBackgroundColor(SK_ColorGREEN); + recording_source_light->SetBackgroundColor(SkColors::kGreen); recording_source_light->SetRequiresClear(true); // Record everything as a slightly lighter white. @@ -633,7 +633,7 @@ std::unique_ptr<FakeRecordingSource> recording_source = FakeRecordingSource::CreateFilledRecordingSource(layer_bounds); - recording_source->SetBackgroundColor(SK_ColorTRANSPARENT); + recording_source->SetBackgroundColor(SkColors::kTransparent); recording_source->SetRequiresClear(true); recording_source->Rerecord();
diff --git a/cc/tiles/tile_manager_unittest.cc b/cc/tiles/tile_manager_unittest.cc index 4a32d9b..3086adb 100644 --- a/cc/tiles/tile_manager_unittest.cc +++ b/cc/tiles/tile_manager_unittest.cc
@@ -1915,7 +1915,7 @@ std::unique_ptr<FakeRecordingSource> recording_source = FakeRecordingSource::CreateFilledRecordingSource(size); - recording_source->SetBackgroundColor(SK_ColorTRANSPARENT); + recording_source->SetBackgroundColor(SkColors::kTransparent); recording_source->SetRequiresClear(true); PaintFlags flags; flags.setColor(SK_ColorGREEN);
diff --git a/chrome/VERSION b/chrome/VERSION index 821d82f..148b1fd 100644 --- a/chrome/VERSION +++ b/chrome/VERSION
@@ -1,4 +1,4 @@ MAJOR=104 MINOR=0 -BUILD=5090 +BUILD=5092 PATCH=0
diff --git a/chrome/android/profiles/newest.txt b/chrome/android/profiles/newest.txt index 54e72de..dd5b699 100644 --- a/chrome/android/profiles/newest.txt +++ b/chrome/android/profiles/newest.txt
@@ -1 +1 @@ -chromeos-chrome-amd64-104.0.5072.0_rc-r1-merged.afdo.bz2 +chromeos-chrome-amd64-104.0.5087.0_rc-r1-merged.afdo.bz2
diff --git a/chrome/app/resources/chromium_strings_sl.xtb b/chrome/app/resources/chromium_strings_sl.xtb index 779425e..4dacdd6e 100644 --- a/chrome/app/resources/chromium_strings_sl.xtb +++ b/chrome/app/resources/chromium_strings_sl.xtb
@@ -61,6 +61,7 @@ <translation id="2583187216237139145">Podatke v Chromiumu, ki se ustvarijo med uporabo tega profila (na primer zaznamke, zgodovino, gesla in druge nastavitve), lahko odstrani skrbnik delovnega profila. <ph name="LEARN_MORE" /></translation> <translation id="2648074677641340862">Napaka v operacijskem sistemu med namestitvijo. Znova prenesite Chromium.</translation> <translation id="2661879430930417727">Če napravo souporabljate z drugimi, lahko prijatelji in sorodniki ločeno brskajo ter nastavijo Chromium tako, kot ga želijo.</translation> +<translation id="268602741124540128">Pozdravljeni v Chromiumu, <ph name="ACCOUNT_FIRST_NAME" /></translation> <translation id="2711502716910134313">Zavihek v Chromiumu</translation> <translation id="2718390899429598676">Zaradi večje varnosti bo Chromium šifriral vaše podatke.</translation> <translation id="2770231113462710648">Spremeni privzeti brskalnik na:</translation> @@ -119,9 +120,11 @@ <translation id="3830894615770080216">Sistem Chromium OS</translation> <translation id="3848258323044014972"><ph name="PAGE_TITLE" /> – Chromium</translation> <translation id="386822487697155367">Pomoč za Chromium OS</translation> +<translation id="3871664619793219264">Prenesite stvari za brskalnik Chromium iz računa <ph name="ACCOUNT_EMAIL" />.</translation> <translation id="388648406173476553">Prilagajanje in nadziranje Chromiuma. Nekaj morate preveriti – kliknite za podrobnosti.</translation> <translation id="3889543394854987837">Kliknite ime, da odprete Chromium in začnete brskati.</translation> <translation id="390528597099634151">Uporabnik <ph name="EXISTING_USER" /> je že prijavljen v ta profil v Chromiumu. Če želite ločiti brskanje, lahko Chromium za vas ustvari nov profil.</translation> +<translation id="391789666908693569">Vaš račun upravlja <ph name="MANAGER_NAME" />. Vaš skrbnik lahko vidi in upravlja ta profil za brskalnik Chromium s podatki vred, in sicer zaznamki, zgodovino ter gesli.</translation> <translation id="3945058413678539331">Chromium poskuša kopirati gesla. Če želite to omogočiti, vnesite geslo za Windows.</translation> <translation id="3962623956404948996">Chromium priporoča, da pregledate to datoteko, saj je morda nevarna.</translation> <translation id="3997429360543082038">O sistemu Chromium OS</translation>
diff --git a/chrome/app/resources/generated_resources_bg.xtb b/chrome/app/resources/generated_resources_bg.xtb index e87bacd..a48aba5 100644 --- a/chrome/app/resources/generated_resources_bg.xtb +++ b/chrome/app/resources/generated_resources_bg.xtb
@@ -2470,6 +2470,7 @@ <translation id="3348038390189153836">Установено бе изваждащо се устройство</translation> <translation id="3348131053948466246">Предложено е емоджи. За придвижване натиснете клавиша със стрелка нагоре или надолу, за вмъкване на предложението използвайте Enter.</translation> <translation id="3349933790966648062">Използвана памет</translation> +<translation id="3353786022389205125">Включете „Показване на заключения екран при излизане от спящ режим“ и опитайте отново</translation> <translation id="3354972872297836698">Сдвояването с устройството <ph name="DEVICE_NAME" /> не бе успешно. Изберете устройство, за да опитате отново.</translation> <translation id="3355936511340229503">Грешка във връзката</translation> <translation id="3356469410714175391">(Виртуалната карта е активирана)</translation> @@ -4945,6 +4946,7 @@ <translation id="5827733057563115968">Предвиждане на следващата дума</translation> <translation id="5828545842856466741">Добавяне на потребителски профил...</translation> <translation id="5828633471261496623">Отпечатва се...</translation> +<translation id="5830205393314753525"><ph name="APP_NAME" /> не може да се отвори</translation> <translation id="5830720307094128296">Запазване на страницата &като...</translation> <translation id="5832813618714645810">Потребителски профили</translation> <translation id="583281660410589416">Неизвестно</translation>
diff --git a/chrome/app/resources/generated_resources_en-GB.xtb b/chrome/app/resources/generated_resources_en-GB.xtb index 8edfeca..edd7d3d 100644 --- a/chrome/app/resources/generated_resources_en-GB.xtb +++ b/chrome/app/resources/generated_resources_en-GB.xtb
@@ -2481,6 +2481,7 @@ <translation id="3348038390189153836">Removable device detected</translation> <translation id="3348131053948466246">Emoji suggested. Press up or down to navigate, and enter to insert.</translation> <translation id="3349933790966648062">Memory footprint</translation> +<translation id="3353786022389205125">Turn on 'Show lock screen when waking from sleep' and try again</translation> <translation id="3354972872297836698">Couldn't pair to device <ph name="DEVICE_NAME" />; select device to try again</translation> <translation id="3355936511340229503">Connection error</translation> <translation id="3356469410714175391">(Virtual card enabled)</translation> @@ -4961,6 +4962,7 @@ <translation id="5827733057563115968">Next word prediction</translation> <translation id="5828545842856466741">Add profile…</translation> <translation id="5828633471261496623">Printing...</translation> +<translation id="5830205393314753525">Can't open <ph name="APP_NAME" /></translation> <translation id="5830720307094128296">Save Page &As...</translation> <translation id="5832813618714645810">Profiles</translation> <translation id="583281660410589416">Unknown</translation>
diff --git a/chrome/app/resources/generated_resources_ms.xtb b/chrome/app/resources/generated_resources_ms.xtb index 4b0c17c92..835747b 100644 --- a/chrome/app/resources/generated_resources_ms.xtb +++ b/chrome/app/resources/generated_resources_ms.xtb
@@ -849,6 +849,7 @@ <translation id="1794051631868188691">Jangan tunjukkan <ph name="MERCHANT" /></translation> <translation id="1794791083288629568">Hantar maklum balas untuk membantu kami menyelesaikan isu ini.</translation> <translation id="1795214765651529549">Gunakan Klasik</translation> +<translation id="1796105431091975902">Pilih Ansible Playbook untuk ditambah</translation> <translation id="1796588414813960292">Ciri yang memerlukan bunyi tidak akan berfungsi</translation> <translation id="1800502858278951817">Tiada sambungan telah meminta untuk membaca dan menukar <ph name="SITE_NAME" /></translation> <translation id="1802624026913571222">Tidur apabila penutup ditutup</translation> @@ -3047,6 +3048,7 @@ <translation id="389901847090970821">Pilih papan kekunci</translation> <translation id="3900966090527141178">Eksport kata laluan</translation> <translation id="3903187154317825986">Papan Kekunci Terbina Dalam</translation> +<translation id="3903191712482985591">Tambah panduan</translation> <translation id="3904326018476041253">Perkhidmatan Lokasi</translation> <translation id="3904849010307028014">Berdasarkan interaksi anda dengan laman, seperti kerap log masuk ke akaun, laman tersebut boleh mengeluarkan token amanah kepada penyemak imbas anda. Kemudian, jika laman lain yang anda lawati menyemak dan menemukan token amanah yang sah, laman tersebut lebih berkemungkinan untuk melayan anda seperti orang dan bukannya bot.</translation> <translation id="3905761538810670789">Baiki apl</translation> @@ -3656,6 +3658,7 @@ <translation id="4510479820467554003">Senarai akaun ibu bapa</translation> <translation id="451102079304155829">troli</translation> <translation id="4513872120116766993">Penulisan ramalan</translation> +<translation id="4513909579793564731">Gunakan panduan</translation> <translation id="4513946894732546136">Maklum balas</translation> <translation id="451407183922382411">Dikuasakan oleh <ph name="COMPANY_NAME" /></translation> <translation id="4514610446763173167">Togol video kepada main atau jeda</translation> @@ -5486,6 +5489,7 @@ <translation id="635609604405270300">Sentiasa hidupkan peranti</translation> <translation id="63566973648609420">Hanya orang yang tahu ungkapan laluan anda boleh membaca data anda yang disulitkan. Ungkapan laluan tidak dihantar atau disimpan oleh Google. Jika anda terlupa ungkapan laluan atau ingin menukar tetapan ini, anda perlu <ph name="BEGIN_LINK" />menetapkan semula penyegerakan<ph name="END_LINK" />.</translation> <translation id="6357305427698525450">Sesetengah pautan yang disokong masih akan dibuka dalam <ph name="APP_NAME" /> atau <ph name="APP_NAME_2" />.</translation> +<translation id="6357794994761110294">Tiada sambungan dibenarkan untuk membaca dan mengubah <ph name="SITE_NAME" /></translation> <translation id="6358884629796491903">Naga</translation> <translation id="6361850914223837199">Butiran ralat:</translation> <translation id="6362853299801475928">&Laporkan isu...</translation>
diff --git a/chrome/app/resources/generated_resources_my.xtb b/chrome/app/resources/generated_resources_my.xtb index e4242ec..34999b5 100644 --- a/chrome/app/resources/generated_resources_my.xtb +++ b/chrome/app/resources/generated_resources_my.xtb
@@ -2346,7 +2346,7 @@ <translation id="3210736980143419785">ဒေါင်းလုဒ်လုပ်ခြင်း အပြီးသတ်၍မရပါ</translation> <translation id="321084946921799184">အဝါနှင့် အဖြူ</translation> <translation id="321356136776075234">စက်ပစ္စည်း OU (ဥပမာ OU=Chromebooks၊DC=example၊DC=com)</translation> -<translation id="3214531106883826119"><ph name="BEGIN_BOLD" />မှတ်ချက်-<ph name="END_BOLD" /> ဆင်တူသောအသံ (သို့) အသံသွင်းချက်ဖြင့် <ph name="SUPERVISED_USER_NAME" /> ၏ ကိုယ်ပိုင်သီးသန့် ရလဒ်များကို ဝင်သုံးနိုင်သည်။</translation> +<translation id="3214531106883826119"><ph name="BEGIN_BOLD" />မှတ်ချက်-<ph name="END_BOLD" /> ဆင်တူသောအသံ (သို့) အသံသွင်းချက်ဖြင့် <ph name="SUPERVISED_USER_NAME" /> ၏ ကိုယ်ရေးကိုယ်တာ ရလဒ်များသို့ ဝင်ခွင့်ရသွားနိုင်ပါသည်။</translation> <translation id="3217843140356091325">ဖြတ်လမ်းလင့်ခ် ပြုလုပ်လိုပါသလား။</translation> <translation id="321834671654278338">Linux ပရိုဂရမ်ကို ဖယ်ရှားသည့်စနစ်</translation> <translation id="3220943972464248773">သင့်စကားဝှက်များကို စင့်ခ်လုပ်ရန် သင်ဖြစ်ကြောင်း အတည်ပြုပါ</translation> @@ -2538,7 +2538,7 @@ <translation id="3417836307470882032">စစ်တပ်သုံး အချိန်</translation> <translation id="3420501302812554910">အတွင်းပိုင်း လုံခြုံရေးကီးကို ပြင်ဆင်သတ်မှတ်ရန် လိုအပ်သည်</translation> <translation id="3421387094817716717">Elliptic Curve အများသုံးကီး</translation> -<translation id="3421672904902642628"><ph name="BEGIN_BOLD" />မှတ်ချက်-<ph name="END_BOLD" /> ဆင်တူသောအသံ (သို့) အသံဖမ်းခြင်းဖြင့် သင်၏ကိုယ်ပိုင်သီးသန့် ရလဒ်များ (သို့) သင့် Assistant ကို သုံးခွင့်ရနိုင်ပါသည်။</translation> +<translation id="3421672904902642628"><ph name="BEGIN_BOLD" />မှတ်ချက်-<ph name="END_BOLD" /> ဆင်တူသောအသံ (သို့) အသံသွင်းချက်ဖြင့် သင်၏ကိုယ်ပိုင်ရေးကိုယ်တာ ရလဒ်များ (သို့) သင့် Assistant သို့ ဝင်ခွင့်ရသွားနိုင်ပါသည်။</translation> <translation id="3422291238483866753">ဝဘ်ဆိုက်က သင့်ပတ်ဝန်းကျင်၏ 3D မြေပုံဆွဲခြင်း သို့မဟုတ် ကင်မရာအနေအထား ခြေရာခံခြင်းတို့ ပြုလုပ်လိုသည့်အခါ မေးမြန်းရန် (အကြံပြုထားသည်)</translation> <translation id="3423463006624419153">သင်၏ '<ph name="PHONE_NAME_1" />' နှင့် '<ph name="PHONE_NAME_2" />' ပေါ်တွင်−</translation> <translation id="3423858849633684918"><ph name="PRODUCT_NAME" /> ကိုကျေးဇူးပြု၍ ပြန်လည်စတင်ပါ</translation> @@ -5185,7 +5185,7 @@ <translation id="6059276912018042191">လတ်တလော Chrome တဘ်များ</translation> <translation id="6059652578941944813">လက်မှတ် အဆင့်ဆင့်</translation> <translation id="6063284707309177505">QR ကုဒ် ပြုလုပ်ရန်</translation> -<translation id="6063847492705284550"><ph name="BEGIN_BOLD" />မှတ်ချက်-<ph name="END_BOLD" /> ဆင်တူသောအသံ (သို့) အသံသွင်းချက်ဖြင့် <ph name="SUPERVISED_USER_NAME" /> ၏ ကိုယ်ပိုင်သီးသန့် ရလဒ်များကို ဝင်သုံးနိုင်သည်။ ဘက်ထရီချွေတာရန် ဤစက်ကို ပါဝါ ရင်းမြစ်နှင့် ချိတ်ဆက်ထားသည့်အခါတွင်သာ “Ok Google” ကို ဖွင့်ရန်<ph name="SUPERVISED_USER_NAME" /> ၏ Assistant ဆက်တင်များတွင် ရွေးနိုင်သည်။</translation> +<translation id="6063847492705284550"><ph name="BEGIN_BOLD" />မှတ်ချက်-<ph name="END_BOLD" /> ဆင်တူသောအသံ (သို့) အသံသွင်းချက်ဖြင့် <ph name="SUPERVISED_USER_NAME" /> ၏ ကိုယ်ရေးကိုယ်တာ ရလဒ်များသို့ ဝင်ခွင့်ရသွားနိုင်ပါသည်။ ဘက်ထရီချွေတာရန် ဤစက်ကို ပါဝါနှင့် ချိတ်ဆက်ထားသည့်အခါတွင်သာ “Ok Google” ကို ဖွင့်ရန်<ph name="SUPERVISED_USER_NAME" /> ၏ Assistant ဆက်တင်များတွင် ရွေးနိုင်သည်။</translation> <translation id="6064217302520318294">ဖန်သားပြင်လော့ခ်</translation> <translation id="6065145031947216733">ကြည့်ရှုမှုကို သီးခြားခွဲထုတ်မလား။</translation> <translation id="6065289257230303064">လက်မှတ် အကြောင်းအရာ ဒါရိုက်ထရီ အချင်းလက္ခဏာများ</translation> @@ -6992,7 +6992,7 @@ <translation id="7850717413915978159"><ph name="BEGIN_PARAGRAPH1" />သင့် ChromeOS စက်များအား အလိုအလျောက် အစီရင်ခံစာများ ပို့ခွင့်ပြုခြင်းဖြင့် ChromeOS ၏ ပြင်ဆင်ရမည့်အပိုင်းနှင့် ပိုမိုကောင်းမွန်အောင် ပြုလုပ်ရမည့်အပိုင်းတို့ကို ဦးစားပေးလုပ်ဆောင်နိုင်ရန် ကျွန်ုပ်တို့အား အကူအညီပေးပါသည်။ ဤအစီရင်ခံစာများတွင် ChromeOS ရပ်တန့်သွားချိန်၊ သင်အသုံးပြုသော ဝန်ဆောင်မှုများနှင့် ပုံမှန်သင်အသုံးပြုသော မှတ်ဉာဏ်ပမာဏနှင့် Android အက်ပ် အမှားရှာဖွေမှုနှင့် သုံးစွဲမှုဒေတာကဲ့သို့ အချက်များ ပါဝင်နိုင်သည်။ ပေါင်းစည်းထားသည့် ဒေတာအချို့သည်လည်း Google app များနှင့် Android ဆော့ဖ်ဝဲရေးသူများကဲ့သို့ ပါတနာများကို ကူညီပေးပါမည်။<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />သင့် ChromeOS စက် ဆက်တင်များတွင် ဤအစီရင်ခံစာများ ခွင့်ပြုခြင်းကို အချိန်မရွေး စတင်နိုင်ပါသည် သို့မဟုတ် ရပ်တန့်နိုင်ပါသည်။ သင်သည် ဒိုမိန်း စီမံခန့်ခွဲသူဖြစ်ပါက ဤဆက်တင်ကို စီမံခန့်ခွဲသူ ကွန်ဆိုးလ်တွင် ပြောင်းနိုင်ပါသည်။<ph name="END_PARAGRAPH2" /> <ph name="BEGIN_PARAGRAPH3" />သင့် Google Account အတွက် ‘ဝဘ်နှင့်အက်ပ်လုပ်ဆောင်ချက်’ ဆက်တင်ကို ဖွင့်ထားပါက Android ဒေတာကို Google Account တွင် သိမ်းထားနိုင်ပါသည်။ သင့်ဒေတာများ ကြည့်ခြင်း၊ ဖျက်ခြင်းနှင့် အကောင့်ဆက်တင်များ ပြောင်းခြင်းတို့ကို account.google.com တွင် လုပ်ဆောင်နိုင်သည်။<ph name="END_PARAGRAPH3" /></translation> -<translation id="7851021205959621355"><ph name="BEGIN_BOLD" />မှတ်ချက်-<ph name="END_BOLD" /> ဆင်တူသောအသံ (သို့) အသံဖမ်းခြင်းဖြင့် သင်၏ကိုယ်ပိုင်သီးသန့် ရလဒ်များ (သို့) သင့် Assistant ကို သုံးခွင့်ရနိုင်ပါသည်။ ဘက်ထရီချွေတာရန် ဤစက်ကို ပါဝါ ရင်းမြစ်နှင့် ချိတ်ဆက်ထားသည့်အခါတွင်သာ “Ok Google” ကို ဖွင့်ရန် သင့် Assistant ဆက်တင်များတွင် ရွေးနိုင်သည်။</translation> +<translation id="7851021205959621355"><ph name="BEGIN_BOLD" />မှတ်ချက်-<ph name="END_BOLD" /> ဆင်တူသောအသံ (သို့) အသံသွင်းချက်ဖြင့် သင်၏ကိုယ်ရေးကိုယ်တာ ရလဒ်များ (သို့) သင့် Assistant သို့ ဝင်ခွင့်ရသွားနိုင်ပါသည်။ ဘက်ထရီချွေတာရန် ဤစက်ကို ပါဝါနှင့် ချိတ်ဆက်ထားသည့်အခါတွင်သာ “Ok Google” ကို ဖွင့်ရန် Assistant ဆက်တင်များတွင် ရွေးနိုင်သည်။</translation> <translation id="7851457902707056880">လက်မှတ်ထိုး ဝင်မှုကို အကောင့် ပိုင်ရှင် အတွက်သာ ကန့်သတ်ထားသည်။ စက်သည် စက္ကန့် ၃၀ အတွင်းမှာ အလိုအလျောက် ပြန်ဖွင့်လိမ့်မည်။</translation> <translation id="7851716364080026749">ကင်မရာနှင့် မိုက်ခရိုဖုန်း အသုံးပြုမှုကို အမြဲတမ်း ပိတ်ဆို့ရန်</translation> <translation id="7851720427268294554">IPP ပါဆာ</translation>
diff --git a/chrome/app/resources/generated_resources_sl.xtb b/chrome/app/resources/generated_resources_sl.xtb index 161a314..1547ed63 100644 --- a/chrome/app/resources/generated_resources_sl.xtb +++ b/chrome/app/resources/generated_resources_sl.xtb
@@ -1021,6 +1021,7 @@ <translation id="1944921356641260203">Najdena je bila posodobitev</translation> <translation id="1947136734041527201">Omogoča prijavo na spletnih mestih z računom, ki ga imate pri storitvi za identiteto.</translation> <translation id="1949584741547056205">Hitri odgovori</translation> +<translation id="1949849604471335579">Prilagajanje zaslonskega ozadja, ohranjevalnika zaslona, barv poudarka in drugega</translation> <translation id="1951012854035635156">Pomočnik</translation> <translation id="1954597385941141174">Spletna mesta lahko zahtevajo vzpostavitev povezave z napravami USB</translation> <translation id="1954813140452229842">Napaka pri vpenjanju datotečnega sredstva v skupni rabi. Preverite poverilnice in poskusite znova.</translation> @@ -1052,6 +1053,7 @@ <translation id="1981434377190976112">Branje vseh vaših podatkov na vseh spletnih mestih</translation> <translation id="1984417487208496350">Brez zaščite (ni priporočljivo)</translation> <translation id="1987317783729300807">Računi</translation> +<translation id="1987574314042117472">Izberite in namestite priljubljene aplikacije</translation> <translation id="1988259784461813694">Zahteva</translation> <translation id="1989112275319619282">Brskanje</translation> <translation id="1989903373608997757">Vedno uporabi</translation> @@ -1117,6 +1119,7 @@ <translation id="2048554637254265991">Napaka pri zagonu upravitelja vsebnikov. Poskusite znova.</translation> <translation id="2048653237708779538">Dejanje ni na voljo</translation> <translation id="2050339315714019657">Pokončno</translation> +<translation id="2052572566310583903">Nameščeno v vaših drugih napravah</translation> <translation id="2053312383184521053">Podatki o stanju nedejavnosti</translation> <translation id="2054240652864153171">Želite izbrisati podatke spletnega mesta <ph name="SITE_NAME" />, razdeljenega na <ph name="PARTITION_SITE_NAME" />?</translation> <translation id="2055585478631012616">Odjavljeni boste s teh spletnih mest, vključno s tistimi na odprtih zavihkih</translation> @@ -1279,6 +1282,7 @@ <translation id="2191754378957563929">Vklopljeno</translation> <translation id="2192505247865591433">Iz:</translation> <translation id="2193365732679659387">Nastavitve zaupanja</translation> +<translation id="2194554416429452547">Med preizkusi Chrome raziskuje načine, kako omejiti neželeno vsebino, prevare in deljenja med spletnimi mesti. Chrome prav tako <ph name="ESTIMATE_INTERESTS_LINK" />, ki jih spletna mesta lahko uporabijo pri prikazovanju oglasov. Zanimanja lahko upravljate v nastavitvah.</translation> <translation id="2194856509914051091">Kaj morate upoštevati</translation> <translation id="2195331105963583686">Po tem datumu boste še vedno lahko uporabljali to napravo <ph name="DEVICE_TYPE" />, vendar ne bo več prejemala samodejnih posodobitev programske opreme in varnostnih posodobitev.</translation> <translation id="2195729137168608510">E-poštna zaščita</translation> @@ -1886,6 +1890,7 @@ <translation id="2749836841884031656">SIM</translation> <translation id="2749881179542288782">Preverjanje slovnice in črkovanja</translation> <translation id="2753677631968972007">Ročno nadziranje dovoljenj za spletna mesta.</translation> +<translation id="2754825024506485820">V Trgovini Google Play najdite aplikacije, ki jih potrebujete, od aplikacij za storilnost do razvedrila. Aplikacije lahko namestite kadar koli.</translation> <translation id="2755349111255270002">Ponastavite to napravo <ph name="DEVICE_TYPE" />.</translation> <translation id="2755367719610958252">Upravljanje funkcij za ljudi s posebnimi potrebami</translation> <translation id="275662540872599901">zaslon je izklopljen</translation> @@ -1962,6 +1967,7 @@ <translation id="2815693974042551705">Mapa z zaznamki</translation> <translation id="2816319641769218778">Če želite shraniti gesla v račun Google, vklopite sinhronizacijo.</translation> <translation id="2816628817680324566">Dovolite, da to spletno mesto prepozna vaš varnostni ključ?</translation> +<translation id="2817435998497102771">Nastavitev zaslonskega ozadja in sloga</translation> <translation id="2818476747334107629">Podrobnosti tiskalnika</translation> <translation id="2819167288942847344">Uporabite prednastavljene vrednosti za okna v telefonu in tabličnem računalniku ali okna, ki jim je mogoče spremeniti velikost, če želite preprečiti, da bi aplikacija delovala nepravilno.</translation> <translation id="2820957248982571256">Iskanje ...</translation> @@ -2855,6 +2861,7 @@ <translation id="3727144509609414201">Razpoložljiva omrežja Wi-Fi</translation> <translation id="3727187387656390258">Preglej pojavno okno</translation> <translation id="372722114124766626">Samo enkrat</translation> +<translation id="3727332897090187514">Opomba ni dodana</translation> <translation id="3727473233247516571">Podokvir v predpomnilniku za hitro obnovitev strani: <ph name="BACK_FORWARD_CACHE_PAGE_URL" /></translation> <translation id="3728188878314831180">Zrcaljenje obvestil iz telefona</translation> <translation id="3728681439294129328">Konfiguriranje omrežnega naslova</translation> @@ -3190,6 +3197,7 @@ <translation id="4031527940632463547">Tipala so blokirana</translation> <translation id="4033415645631238123">Prijava s funkcijo Smart Lock ni več na voljo. Odklepanje s funkcijo Smart Lock je še vedno mogoče.</translation> <translation id="4033471457476425443">Dodaj novo mapo</translation> +<translation id="4033711848170683365">S tem boste iz te naprave trajno izbrisali podatke o brskanju. Račune Google v tem profilu morda uporabljajo druge aplikacije v napravi <ph name="DEVICE_TYPE" />. Te račune lahko odstranite v <ph name="BEGIN_LINK" /><ph name="SETTING_SECTION" /> > <ph name="ACCOUNTS_SECTION" /><ph name="END_LINK" />.</translation> <translation id="4033963223187371752">Varna spletna mesta morda vdelajo vsebino, kot so slike ali spletni okvirji, ki niso varni.</translation> <translation id="4034824040120875894">Tiskalnik</translation> <translation id="4035758313003622889">&Upravitelj opravil</translation> @@ -3468,6 +3476,7 @@ <translation id="4314815835985389558">Upravljanje sinhronizacije</translation> <translation id="4315933848520197627">Prekinitev povezave z računom</translation> <translation id="4316850752623536204">Spletno mesto razvijalca</translation> +<translation id="4317733381297736564">Nakupi v aplikaciji</translation> <translation id="4317820549299924617">Preverjanje ni uspelo</translation> <translation id="4320177379694898372">Ni internetne povezave</translation> <translation id="4322394346347055525">Zapri druge zavihke</translation> @@ -4051,6 +4060,7 @@ <translation id="4893522937062257019">Na zaklenjenem zaslonu</translation> <translation id="4897496410259333978">Če želite več informacij, se obrnite na skrbnika.</translation> <translation id="4898011734382862273">Potrdilo »<ph name="CERTIFICATE_NAME" />« predstavlja overitelja potrdil</translation> +<translation id="4899696330053002588">Vsebuje oglase</translation> <translation id="489985760463306091">Če želite dokončati odstranjevanje škodljive programske opreme, znova zaženite računalnik</translation> <translation id="4900392736118574277">Začetna stran je bila spremenjena v <ph name="URL" />.</translation> <translation id="490051679772058907"><ph name="REFRESH_RATE" /> Hz – prepleteno</translation> @@ -4424,6 +4434,7 @@ <translation id="52912272896845572">Datoteka z zasebnim ključem je neveljavna.</translation> <translation id="5291739252352359682">Samodejno ustvari podnapise za predstavnost v Chromu (trenutno na voljo v angleščini). Zvok in podnapisi se obdelujejo lokalno in ne zapustijo naprave.</translation> <translation id="529175790091471945">Formatiraj to napravo</translation> +<translation id="5292862864186939732">Želite dovoliti, da se »<ph name="EXTENSION_NAME" />« vedno izvaja na <ph name="ORIGIN" />?</translation> <translation id="529296195492126134">Kratkotrajni način ni podprt. Obrnite se na skrbnika.</translation> <translation id="5293170712604732402">Ponastavitev nastavitev na privzete nastavitve</translation> <translation id="5294097441441645251">Začeti se mora z majhnim znakom ali podčrtajem</translation> @@ -5183,6 +5194,7 @@ <translation id="6054961935262556546">Spremeni vidnost</translation> <translation id="6055171183283175969">Vnesli ste napačno geslo.</translation> <translation id="6055392876709372977">PKCS #1 SHA-256 s šifriranjem RSA</translation> +<translation id="6055544610007596637">Namestite aplikacije za napravo <ph name="DEVICE_TYPE" /> v Trgovini Google Play</translation> <translation id="6056710589053485679">Znova naloži z običajnim načinom</translation> <translation id="6057312498756061228">Ta datoteka je prevelika za varnostno preverjanje. Odpreti je mogoče datoteke do 50 MB.</translation> <translation id="6057381398996433816">Temu spletnemu mestu je preprečena uporaba tipal gibanja in svetlobe.</translation> @@ -6161,6 +6173,7 @@ <translation id="7002055706763150362">Če želite nastaviti Smart Lock za Chromebook, se mora Google prepričati, da ste to res vi – vnesite geslo, če želite začeti.</translation> <translation id="7003339318920871147">Spletne zbirke podatkov</translation> <translation id="7003454175711353260">{COUNT,plural, =1{{COUNT} datoteka}one{{COUNT} datoteka}two{{COUNT} datoteki}few{{COUNT} datoteke}other{{COUNT} datotek}}</translation> +<translation id="7003705861991657723">Alfa</translation> <translation id="7003723821785740825">Nastavitev hitrejšega načina odklepanja naprave</translation> <translation id="7003844668372540529">Neznan izdelek <ph name="PRODUCT_ID" /> dobavitelja <ph name="VENDOR_NAME" /></translation> <translation id="7004402701596653846">Spletno mesto lahko uporablja MIDI</translation> @@ -6177,6 +6190,7 @@ <translation id="7008815993384338777">Trenutno ni gostovanja</translation> <translation id="7009709314043432820"><ph name="APP_NAME" /> uporablja vašo kamero.</translation> <translation id="701080569351381435">Ogled izvorne kode</translation> +<translation id="7011797924920577670">ocenjuje vaša zanimanja</translation> <translation id="7014174261166285193">Namestitev ni uspela.</translation> <translation id="7014480873681694324">Odstrani označitev</translation> <translation id="7017004637493394352">Znova izgovorite »Ok Google«</translation> @@ -6244,6 +6258,7 @@ <translation id="7082568314107259011"><ph name="NETWORK_NAME" /> upravlja skrbnik</translation> <translation id="7085389578340536476">Dovolite, da Chrome snema zvok?</translation> <translation id="708550780726587276">(ni konfigurirano)</translation> +<translation id="7086531709814430567">Želite dovoliti, da se te razširitve vedno izvajajo na <ph name="ORIGIN" />?</translation> <translation id="7086672505018440886">Vključi Chromove dnevniške datoteke v arhiv.</translation> <translation id="7088434364990739311">Zagon preverjanja posodobitve ni uspel (koda napake <ph name="ERROR" />).</translation> <translation id="7088674813905715446">Skrbnik je to napravo umaknil iz uporabe. Če jo želite omogočiti za včlanitev, naj jo skrbnik preklopi v stanje čakanja.</translation> @@ -8380,6 +8395,7 @@ <translation id="9215742531438648683">Odstranjevanje Trgovine Google Play</translation> <translation id="9218430445555521422">Nastavi za privzeti brskalnik</translation> <translation id="9218842937876577955"><ph name="APP_NAME" /> (aplikacija ni podprta)</translation> +<translation id="9219582468404818260">Pomagajte nam oblikovati boljši splet</translation> <translation id="9220525904950070496">Odstranitev računa</translation> <translation id="9220820413868316583">Dvignite prst, nato poskusite znova.</translation> <translation id="923467487918828349">Pokaži vse</translation>
diff --git a/chrome/app/resources/generated_resources_uz.xtb b/chrome/app/resources/generated_resources_uz.xtb index 6e4b754..2de65574 100644 --- a/chrome/app/resources/generated_resources_uz.xtb +++ b/chrome/app/resources/generated_resources_uz.xtb
@@ -836,6 +836,7 @@ <translation id="1794051631868188691"><ph name="MERCHANT" /> hech qachon chiqarilmasin</translation> <translation id="1794791083288629568">Muammoni bartaraf etishga yordam beruvchi fikrlar yuborish.</translation> <translation id="1795214765651529549">Klassik mavzu ishlatilsin</translation> +<translation id="1796105431091975902">Kiritiladigan Ansible Pleybukni tanlang</translation> <translation id="1796588414813960292">Ovozdan foydalanadigan funksiyalar ishlamaydi</translation> <translation id="1800502858278951817">Hech qaysi kengaytma <ph name="SITE_NAME" /> saytini oʻqish va oʻzgartirishga ruxsat olishga urinmagan</translation> <translation id="1802624026913571222">Muqova yopilganda uyqu rejimiga oʻtish</translation> @@ -3041,6 +3042,7 @@ <translation id="389901847090970821">Klaviaturani tanlang</translation> <translation id="3900966090527141178">Parollarni eksport qilish</translation> <translation id="3903187154317825986">Ichki klaviatura</translation> +<translation id="3903191712482985591">Pleybukni kiritish</translation> <translation id="3904326018476041253">Joylashuvni aniqlash xizmatlari</translation> <translation id="3904849010307028014">Doim hisobga kirish kabi saytdagi harakatlaringiz asosida sayt brauzerga ishonch tokenini taqdim qilishi mumkin. Keyinroq siz ochadigan boshqa saytlar ishonch tokeni yaroqliligini tekshirish orqali sizning bot emas shaxs ekanligingizni aniqlay oladi.</translation> <translation id="3905761538810670789">Ilovani ta’mirlash</translation> @@ -3652,6 +3654,7 @@ <translation id="4510479820467554003">Ota-ona hisoblari roʻyxati</translation> <translation id="451102079304155829">savatchalar</translation> <translation id="4513872120116766993">Matn kiritishda takliflar</translation> +<translation id="4513909579793564731">Pleybuk sozlamalarini tadbiq qilish</translation> <translation id="4513946894732546136">Fikr-mulohaza</translation> <translation id="451407183922382411"><ph name="COMPANY_NAME" /> asosida ishlaydi</translation> <translation id="4514610446763173167">Videoni ijro yoki pauza qilish</translation> @@ -5485,6 +5488,7 @@ <translation id="635609604405270300">Qurilma yoniq tursin</translation> <translation id="63566973648609420">Shifrlangan ma’lumotlaringizni faqat kodli iborani biladiganlar ko‘ra oladi. Bu iborani Google bilmaydi va o‘z serverlarida saqlamaydi. Agar kodli iborani unutsangiz yoki bu sozlamani o‘zgaritrmoqchi bo‘lsangiz <ph name="BEGIN_LINK" />sinxronizatsiya sozlamalarini qayta tiklashingiz<ph name="END_LINK" /> lozim.</translation> <translation id="6357305427698525450">Ayrim tegishli havolalar <ph name="APP_NAME" /> yoki <ph name="APP_NAME_2" /> ilovalarida ochilaveradi.</translation> +<translation id="6357794994761110294">Hech qaysi kengaytmaga <ph name="SITE_NAME" /> saytini oʻqish va oʻzgartirishga ruxsat berilmagan</translation> <translation id="6358884629796491903">Ajdar</translation> <translation id="6361850914223837199">Xatolik tafsilotlari:</translation> <translation id="6362853299801475928">&Muammo haqida xabar qilish</translation>
diff --git a/chrome/browser/apps/app_service/app_service_proxy_base.cc b/chrome/browser/apps/app_service/app_service_proxy_base.cc index 04ba0e9..4a883546 100644 --- a/chrome/browser/apps/app_service/app_service_proxy_base.cc +++ b/chrome/browser/apps/app_service/app_service_proxy_base.cc
@@ -702,6 +702,13 @@ void AppServiceProxyBase::RemoveSupportedLinksPreference( const std::string& app_id) { DCHECK(!app_id.empty()); + + if (preferred_apps_impl_) { + preferred_apps_impl_->RemoveSupportedLinksPreference( + app_registry_cache_.GetAppType(app_id), app_id); + return; + } + if (app_service_.is_connected()) { app_service_->RemoveSupportedLinksPreference( ConvertAppTypeToMojomAppType(app_registry_cache_.GetAppType(app_id)),
diff --git a/chrome/browser/apps/app_service/publisher_host.cc b/chrome/browser/apps/app_service/publisher_host.cc index 680687b..58fe800 100644 --- a/chrome/browser/apps/app_service/publisher_host.cc +++ b/chrome/browser/apps/app_service/publisher_host.cc
@@ -9,7 +9,6 @@ #include "chrome/browser/apps/app_service/app_service_proxy.h" #include "chrome/browser/apps/app_service/publishers/extension_apps.h" #include "chrome/browser/web_applications/app_service/web_apps.h" -#include "chrome/common/chrome_features.h" #if BUILDFLAG(IS_CHROMEOS_ASH) #include "chrome/browser/apps/app_service/browser_app_instance_registry.h" @@ -113,11 +112,9 @@ std::make_unique<ExtensionAppsChromeOs>(proxy_, AppType::kChromeApp); chrome_apps_->Initialize(); - if (base::FeatureList::IsEnabled(features::kAppServiceExtension)) { - extension_apps_ = - std::make_unique<ExtensionAppsChromeOs>(proxy_, AppType::kExtension); - extension_apps_->Initialize(); - } + extension_apps_ = + std::make_unique<ExtensionAppsChromeOs>(proxy_, AppType::kExtension); + extension_apps_->Initialize(); if (!g_omit_plugin_vm_apps_for_testing_) { plugin_vm_apps_ = std::make_unique<PluginVmApps>(proxy_);
diff --git a/chrome/browser/ash/BUILD.gn b/chrome/browser/ash/BUILD.gn index a98a0f5..a250072 100644 --- a/chrome/browser/ash/BUILD.gn +++ b/chrome/browser/ash/BUILD.gn
@@ -1067,6 +1067,7 @@ "//chrome/common/net", "//chromeos/ash/components/dbus/services", "//chromeos/ash/components/dbus/upstart", + "//chromeos/ash/components/network/portal_detector", "//chromeos/components/cdm_factory_daemon:cdm_factory_daemon_browser", "//chromeos/components/local_search_service/public/cpp", "//chromeos/components/onc",
diff --git a/chrome/browser/ash/chrome_browser_main_parts_ash.cc b/chrome/browser/ash/chrome_browser_main_parts_ash.cc index d434f405..502349e 100644 --- a/chrome/browser/ash/chrome_browser_main_parts_ash.cc +++ b/chrome/browser/ash/chrome_browser_main_parts_ash.cc
@@ -197,6 +197,7 @@ #include "chrome/common/logging_chrome.h" #include "chrome/common/pref_names.h" #include "chromeos/ash/components/dbus/services/cros_dbus_service.h" +#include "chromeos/ash/components/network/portal_detector/network_portal_detector_stub.h" #include "chromeos/components/chromebox_for_meetings/buildflags/buildflags.h" // PLATFORM_CFM #include "chromeos/components/local_search_service/public/cpp/local_search_service_proxy_factory.h" #include "chromeos/components/sensors/ash/sensor_hal_dispatcher.h" @@ -213,7 +214,6 @@ #include "chromeos/network/fast_transition_observer.h" #include "chromeos/network/network_cert_loader.h" #include "chromeos/network/network_handler.h" -#include "chromeos/network/portal_detector/network_portal_detector_stub.h" #include "chromeos/network/system_token_cert_db_storage.h" #include "chromeos/services/cros_healthd/private/cpp/data_collector.h" #include "chromeos/services/cros_healthd/public/cpp/service_connection.h"
diff --git a/chrome/browser/ash/drive/drive_integration_service.cc b/chrome/browser/ash/drive/drive_integration_service.cc index 3d3fb6a..690cb47b 100644 --- a/chrome/browser/ash/drive/drive_integration_service.cc +++ b/chrome/browser/ash/drive/drive_integration_service.cc
@@ -40,7 +40,7 @@ #include "chrome/browser/profiles/profile.h" #include "chrome/browser/signin/identity_manager_factory.h" #include "chrome/common/pref_names.h" -#include "chromeos/network/portal_detector/network_portal_detector.h" +#include "chromeos/ash/components/network/portal_detector/network_portal_detector.h" #include "components/drive/drive_api_util.h" #include "components/drive/drive_notification_manager.h" #include "components/drive/drive_pref_names.h"
diff --git a/chrome/browser/ash/hats/hats_notification_controller.h b/chrome/browser/ash/hats/hats_notification_controller.h index 82f1199..c95ae10f 100644 --- a/chrome/browser/ash/hats/hats_notification_controller.h +++ b/chrome/browser/ash/hats/hats_notification_controller.h
@@ -8,7 +8,7 @@ #include "base/containers/flat_map.h" #include "base/gtest_prod_util.h" #include "base/memory/weak_ptr.h" -#include "chromeos/network/portal_detector/network_portal_detector.h" +#include "chromeos/ash/components/network/portal_detector/network_portal_detector.h" #include "ui/gfx/image/image_skia.h" #include "ui/message_center/public/cpp/notification_delegate.h"
diff --git a/chrome/browser/ash/hats/hats_notification_controller_unittest.cc b/chrome/browser/ash/hats/hats_notification_controller_unittest.cc index 87eff2b..ece874f 100644 --- a/chrome/browser/ash/hats/hats_notification_controller_unittest.cc +++ b/chrome/browser/ash/hats/hats_notification_controller_unittest.cc
@@ -13,9 +13,9 @@ #include "chrome/test/base/browser_with_test_window_test.h" #include "chrome/test/base/testing_browser_process.h" #include "chrome/test/base/testing_profile.h" +#include "chromeos/ash/components/network/portal_detector/mock_network_portal_detector.h" +#include "chromeos/ash/components/network/portal_detector/network_portal_detector.h" #include "chromeos/network/network_state.h" -#include "chromeos/network/portal_detector/mock_network_portal_detector.h" -#include "chromeos/network/portal_detector/network_portal_detector.h" #include "components/image_fetcher/core/request_metadata.h" #include "components/prefs/pref_service.h" #include "content/public/test/browser_task_environment.h"
diff --git a/chrome/browser/ash/login/app_mode/test/kiosk_base_test.h b/chrome/browser/ash/login/app_mode/test/kiosk_base_test.h index c8f1dfa..93568b4 100644 --- a/chrome/browser/ash/login/app_mode/test/kiosk_base_test.h +++ b/chrome/browser/ash/login/app_mode/test/kiosk_base_test.h
@@ -19,7 +19,7 @@ #include "chrome/browser/ash/login/test/oobe_base_test.h" #include "chrome/browser/ash/ownership/fake_owner_settings_service.h" #include "chrome/browser/ash/settings/scoped_cros_settings_test_helper.h" -#include "chromeos/network/portal_detector/network_portal_detector.h" +#include "chromeos/ash/components/network/portal_detector/network_portal_detector.h" #include "content/public/test/browser_test_utils.h" #include "extensions/common/extension.h" #include "extensions/common/mojom/manifest.mojom-shared.h"
diff --git a/chrome/browser/ash/login/app_mode/test/kiosk_device_owned_browsertest.cc b/chrome/browser/ash/login/app_mode/test/kiosk_device_owned_browsertest.cc index 18a4cea3..2064efe 100644 --- a/chrome/browser/ash/login/app_mode/test/kiosk_device_owned_browsertest.cc +++ b/chrome/browser/ash/login/app_mode/test/kiosk_device_owned_browsertest.cc
@@ -31,7 +31,7 @@ #include "chrome/browser/ui/browser_navigator_params.h" #include "chrome/browser/ui/settings_window_manager_chromeos.h" #include "chrome/browser/ui/webui/settings/chromeos/constants/routes.mojom-forward.h" -#include "chromeos/network/portal_detector/network_portal_detector.h" +#include "chromeos/ash/components/network/portal_detector/network_portal_detector.h" #include "content/public/browser/web_contents.h" #include "content/public/test/browser_test.h" #include "content/public/test/browser_test_utils.h"
diff --git a/chrome/browser/ash/login/enrollment/auto_enrollment_check_screen.h b/chrome/browser/ash/login/enrollment/auto_enrollment_check_screen.h index 16868c3..c1d352a8 100644 --- a/chrome/browser/ash/login/enrollment/auto_enrollment_check_screen.h +++ b/chrome/browser/ash/login/enrollment/auto_enrollment_check_screen.h
@@ -16,7 +16,7 @@ #include "chrome/browser/ash/login/screens/base_screen.h" #include "chrome/browser/ash/login/screens/error_screen.h" #include "chrome/browser/ash/login/screens/network_error.h" -#include "chromeos/network/portal_detector/network_portal_detector.h" +#include "chromeos/ash/components/network/portal_detector/network_portal_detector.h" namespace ash {
diff --git a/chrome/browser/ash/login/screens/error_screen.cc b/chrome/browser/ash/login/screens/error_screen.cc index e1e8356d..75bfbda 100644 --- a/chrome/browser/ash/login/screens/error_screen.cc +++ b/chrome/browser/ash/login/screens/error_screen.cc
@@ -32,12 +32,12 @@ #include "chrome/browser/ui/webui/chromeos/internet_detail_dialog.h" #include "chrome/browser/ui/webui/chromeos/login/error_screen_handler.h" #include "chrome/grit/browser_resources.h" +#include "chromeos/ash/components/network/portal_detector/network_portal_detector.h" +#include "chromeos/ash/components/network/portal_detector/network_portal_detector_strategy.h" #include "chromeos/dbus/power/power_manager_client.h" #include "chromeos/dbus/session_manager/session_manager_client.h" #include "chromeos/network/network_connection_handler.h" #include "chromeos/network/network_handler.h" -#include "chromeos/network/portal_detector/network_portal_detector.h" -#include "chromeos/network/portal_detector/network_portal_detector_strategy.h" #include "components/session_manager/core/session_manager.h" #include "components/web_modal/web_contents_modal_dialog_manager.h" #include "third_party/cros_system_api/dbus/service_constants.h"
diff --git a/chrome/browser/ash/login/screens/update_required_screen_unittest.cc b/chrome/browser/ash/login/screens/update_required_screen_unittest.cc index ac576a3..5da8fc931 100644 --- a/chrome/browser/ash/login/screens/update_required_screen_unittest.cc +++ b/chrome/browser/ash/login/screens/update_required_screen_unittest.cc
@@ -20,12 +20,12 @@ #include "chrome/browser/ui/webui/chromeos/login/fake_update_required_screen_handler.h" #include "chrome/test/base/scoped_testing_local_state.h" #include "chrome/test/base/testing_browser_process.h" +#include "chromeos/ash/components/network/portal_detector/mock_network_portal_detector.h" +#include "chromeos/ash/components/network/portal_detector/network_portal_detector.h" #include "chromeos/dbus/dbus_thread_manager.h" #include "chromeos/dbus/update_engine/fake_update_engine_client.h" #include "chromeos/dbus/update_engine/update_engine_client.h" #include "chromeos/network/network_handler_test_helper.h" -#include "chromeos/network/portal_detector/mock_network_portal_detector.h" -#include "chromeos/network/portal_detector/network_portal_detector.h" #include "content/public/test/browser_task_environment.h" #include "testing/gtest/include/gtest/gtest.h" #include "third_party/abseil-cpp/absl/types/optional.h"
diff --git a/chrome/browser/ash/login/screens/update_screen_unittest.cc b/chrome/browser/ash/login/screens/update_screen_unittest.cc index 89ebb29..f39adb6 100644 --- a/chrome/browser/ash/login/screens/update_screen_unittest.cc +++ b/chrome/browser/ash/login/screens/update_screen_unittest.cc
@@ -15,13 +15,13 @@ #include "chrome/browser/ash/login/wizard_context.h" #include "chrome/test/base/scoped_testing_local_state.h" #include "chrome/test/base/testing_browser_process.h" +#include "chromeos/ash/components/network/portal_detector/mock_network_portal_detector.h" +#include "chromeos/ash/components/network/portal_detector/network_portal_detector.h" #include "chromeos/dbus/dbus_thread_manager.h" #include "chromeos/dbus/power/fake_power_manager_client.h" #include "chromeos/dbus/update_engine/fake_update_engine_client.h" #include "chromeos/dbus/update_engine/update_engine_client.h" #include "chromeos/network/network_handler_test_helper.h" -#include "chromeos/network/portal_detector/mock_network_portal_detector.h" -#include "chromeos/network/portal_detector/network_portal_detector.h" #include "content/public/test/browser_task_environment.h" #include "testing/gtest/include/gtest/gtest.h" #include "third_party/abseil-cpp/absl/types/optional.h"
diff --git a/chrome/browser/ash/login/session/user_session_manager.cc b/chrome/browser/ash/login/session/user_session_manager.cc index cb32bea..94646de 100644 --- a/chrome/browser/ash/login/session/user_session_manager.cc +++ b/chrome/browser/ash/login/session/user_session_manager.cc
@@ -128,12 +128,12 @@ #include "chrome/common/logging_chrome.h" #include "chrome/common/pref_names.h" #include "chromeos/ash/components/assistant/buildflags.h" +#include "chromeos/ash/components/network/portal_detector/network_portal_detector.h" +#include "chromeos/ash/components/network/portal_detector/network_portal_detector_strategy.h" #include "chromeos/dbus/dbus_thread_manager.h" #include "chromeos/dbus/session_manager/session_manager_client.h" #include "chromeos/dbus/tpm_manager/tpm_manager.pb.h" #include "chromeos/dbus/tpm_manager/tpm_manager_client.h" -#include "chromeos/network/portal_detector/network_portal_detector.h" -#include "chromeos/network/portal_detector/network_portal_detector_strategy.h" #include "chromeos/ui/vector_icons/vector_icons.h" #include "components/account_id/account_id.h" #include "components/account_manager_core/account.h"
diff --git a/chrome/browser/ash/login/test/network_portal_detector_mixin.h b/chrome/browser/ash/login/test/network_portal_detector_mixin.h index f4438070..e329100 100644 --- a/chrome/browser/ash/login/test/network_portal_detector_mixin.h +++ b/chrome/browser/ash/login/test/network_portal_detector_mixin.h
@@ -6,7 +6,7 @@ #define CHROME_BROWSER_ASH_LOGIN_TEST_NETWORK_PORTAL_DETECTOR_MIXIN_H_ #include "chrome/test/base/mixin_based_in_process_browser_test.h" -#include "chromeos/network/portal_detector/network_portal_detector.h" +#include "chromeos/ash/components/network/portal_detector/network_portal_detector.h" // TODO(https://crbug.com/1164001): move to forward declaration. #include "chrome/browser/ash/net/network_portal_detector_test_impl.h"
diff --git a/chrome/browser/ash/login/ui/captive_portal_window_browsertest.cc b/chrome/browser/ash/login/ui/captive_portal_window_browsertest.cc index f4f2a28d..f8b31b4 100644 --- a/chrome/browser/ash/login/ui/captive_portal_window_browsertest.cc +++ b/chrome/browser/ash/login/ui/captive_portal_window_browsertest.cc
@@ -26,8 +26,8 @@ #include "chrome/browser/ui/webui/chromeos/login/error_screen_handler.h" #include "chrome/browser/ui/webui/chromeos/login/gaia_screen_handler.h" #include "chrome/test/base/in_process_browser_test.h" +#include "chromeos/ash/components/network/portal_detector/network_portal_detector.h" #include "chromeos/dbus/shill/fake_shill_manager_client.h" -#include "chromeos/network/portal_detector/network_portal_detector.h" #include "content/public/test/browser_test.h" namespace ash {
diff --git a/chrome/browser/ash/login/version_updater/version_updater.h b/chrome/browser/ash/login/version_updater/version_updater.h index a1888f1..cca3d9c 100644 --- a/chrome/browser/ash/login/version_updater/version_updater.h +++ b/chrome/browser/ash/login/version_updater/version_updater.h
@@ -13,8 +13,8 @@ #include "base/timer/timer.h" #include "chrome/browser/ash/login/screens/network_error.h" #include "chrome/browser/ash/login/version_updater/update_time_estimator.h" +#include "chromeos/ash/components/network/portal_detector/network_portal_detector.h" #include "chromeos/dbus/update_engine/update_engine_client.h" -#include "chromeos/network/portal_detector/network_portal_detector.h" // TODO(https://crbug.com/1164001): move to forward declaration when migrated. #include "chromeos/network/network_state.h"
diff --git a/chrome/browser/ash/login/version_updater/version_updater_unittest.cc b/chrome/browser/ash/login/version_updater/version_updater_unittest.cc index eb371de..6e75825f 100644 --- a/chrome/browser/ash/login/version_updater/version_updater_unittest.cc +++ b/chrome/browser/ash/login/version_updater/version_updater_unittest.cc
@@ -16,12 +16,12 @@ #include "chrome/browser/ash/net/network_portal_detector_test_impl.h" #include "chrome/test/base/scoped_testing_local_state.h" #include "chrome/test/base/testing_browser_process.h" +#include "chromeos/ash/components/network/portal_detector/mock_network_portal_detector.h" +#include "chromeos/ash/components/network/portal_detector/network_portal_detector.h" #include "chromeos/dbus/dbus_thread_manager.h" #include "chromeos/dbus/update_engine/fake_update_engine_client.h" #include "chromeos/dbus/update_engine/update_engine_client.h" #include "chromeos/network/network_handler_test_helper.h" -#include "chromeos/network/portal_detector/mock_network_portal_detector.h" -#include "chromeos/network/portal_detector/network_portal_detector.h" #include "content/public/test/browser_task_environment.h" #include "testing/gtest/include/gtest/gtest.h" #include "third_party/abseil-cpp/absl/types/optional.h"
diff --git a/chrome/browser/ash/login/wizard_controller.cc b/chrome/browser/ash/login/wizard_controller.cc index 81908ba..c4ffb72 100644 --- a/chrome/browser/ash/login/wizard_controller.cc +++ b/chrome/browser/ash/login/wizard_controller.cc
@@ -186,13 +186,13 @@ #include "chrome/browser/ui/webui/help/help_utils_chromeos.h" #include "chrome/common/chrome_constants.h" #include "chrome/common/pref_names.h" +#include "chromeos/ash/components/network/portal_detector/network_portal_detector.h" #include "chromeos/dbus/dbus_thread_manager.h" #include "chromeos/dbus/session_manager/session_manager_client.h" #include "chromeos/network/network_handler.h" #include "chromeos/network/network_handler_callbacks.h" #include "chromeos/network/network_state.h" #include "chromeos/network/network_state_handler.h" -#include "chromeos/network/portal_detector/network_portal_detector.h" #include "chromeos/services/rollback_network_config/public/mojom/rollback_network_config.mojom.h" #include "components/crash/core/app/breakpad_linux.h" #include "components/crash/core/app/crashpad.h"
diff --git a/chrome/browser/ash/net/delay_network_call.cc b/chrome/browser/ash/net/delay_network_call.cc index c3983e0..2e5e4b0 100644 --- a/chrome/browser/ash/net/delay_network_call.cc +++ b/chrome/browser/ash/net/delay_network_call.cc
@@ -9,10 +9,10 @@ #include "base/bind.h" #include "base/callback.h" #include "base/logging.h" +#include "chromeos/ash/components/network/portal_detector/network_portal_detector.h" #include "chromeos/network/network_handler.h" #include "chromeos/network/network_state.h" #include "chromeos/network/network_state_handler.h" -#include "chromeos/network/portal_detector/network_portal_detector.h" #include "content/public/browser/browser_task_traits.h" #include "content/public/browser/browser_thread.h" #include "third_party/cros_system_api/dbus/service_constants.h"
diff --git a/chrome/browser/ash/net/network_portal_detector_impl.h b/chrome/browser/ash/net/network_portal_detector_impl.h index e3cb200..5c20c6f 100644 --- a/chrome/browser/ash/net/network_portal_detector_impl.h +++ b/chrome/browser/ash/net/network_portal_detector_impl.h
@@ -17,11 +17,11 @@ #include "base/observer_list.h" #include "base/sequence_checker.h" #include "base/time/time.h" +#include "chromeos/ash/components/network/portal_detector/network_portal_detector.h" +#include "chromeos/ash/components/network/portal_detector/network_portal_detector_strategy.h" // TODO(https://crbug.com/1164001): move to forward declaration. #include "chromeos/network/network_state.h" #include "chromeos/network/network_state_handler_observer.h" -#include "chromeos/network/portal_detector/network_portal_detector.h" -#include "chromeos/network/portal_detector/network_portal_detector_strategy.h" #include "components/captive_portal/core/captive_portal_detector.h" #include "components/captive_portal/core/captive_portal_types.h" #include "content/public/browser/notification_observer.h"
diff --git a/chrome/browser/ash/net/network_portal_detector_impl_browsertest.cc b/chrome/browser/ash/net/network_portal_detector_impl_browsertest.cc index f85bbbb..51ac5c8 100644 --- a/chrome/browser/ash/net/network_portal_detector_impl_browsertest.cc +++ b/chrome/browser/ash/net/network_portal_detector_impl_browsertest.cc
@@ -23,9 +23,9 @@ #include "chrome/browser/profiles/profile_manager.h" #include "chrome/browser/ui/ash/network/network_portal_notification_controller.h" #include "chrome/common/pref_names.h" +#include "chromeos/ash/components/network/portal_detector/network_portal_detector.h" +#include "chromeos/ash/components/network/portal_detector/network_portal_detector_strategy.h" #include "chromeos/dbus/shill/shill_service_client.h" -#include "chromeos/network/portal_detector/network_portal_detector.h" -#include "chromeos/network/portal_detector/network_portal_detector_strategy.h" #include "components/account_id/account_id.h" #include "components/captive_portal/core/captive_portal_testing_utils.h" #include "components/prefs/pref_service.h"
diff --git a/chrome/browser/ash/net/network_portal_detector_impl_unittest.cc b/chrome/browser/ash/net/network_portal_detector_impl_unittest.cc index 2148ad10..71172200 100644 --- a/chrome/browser/ash/net/network_portal_detector_impl_unittest.cc +++ b/chrome/browser/ash/net/network_portal_detector_impl_unittest.cc
@@ -25,6 +25,7 @@ #include "chrome/test/base/testing_profile.h" #include "chrome/test/base/testing_profile_manager.h" #include "chromeos/ash/components/dbus/concierge/concierge_client.h" +#include "chromeos/ash/components/network/portal_detector/network_portal_detector_strategy.h" #include "chromeos/dbus/dbus_thread_manager.h" #include "chromeos/dbus/shill/shill_device_client.h" #include "chromeos/dbus/shill/shill_service_client.h" @@ -32,7 +33,6 @@ #include "chromeos/network/network_handler_test_helper.h" #include "chromeos/network/network_state.h" #include "chromeos/network/network_state_handler.h" -#include "chromeos/network/portal_detector/network_portal_detector_strategy.h" #include "components/captive_portal/core/captive_portal_detector.h" #include "components/captive_portal/core/captive_portal_testing_utils.h" #include "components/user_manager/scoped_user_manager.h"
diff --git a/chrome/browser/ash/net/network_portal_detector_test_impl.h b/chrome/browser/ash/net/network_portal_detector_test_impl.h index 31ef335..f39b4f0 100644 --- a/chrome/browser/ash/net/network_portal_detector_test_impl.h +++ b/chrome/browser/ash/net/network_portal_detector_test_impl.h
@@ -12,7 +12,7 @@ #include "base/callback_forward.h" #include "base/observer_list.h" -#include "chromeos/network/portal_detector/network_portal_detector.h" +#include "chromeos/ash/components/network/portal_detector/network_portal_detector.h" namespace ash {
diff --git a/chrome/browser/autofill/autofill_interactive_uitest.cc b/chrome/browser/autofill/autofill_interactive_uitest.cc index 7eb649d..2fc7ad6c 100644 --- a/chrome/browser/autofill/autofill_interactive_uitest.cc +++ b/chrome/browser/autofill/autofill_interactive_uitest.cc
@@ -73,6 +73,7 @@ #include "content/public/test/browser_test.h" #include "content/public/test/browser_test_utils.h" #include "content/public/test/content_mock_cert_verifier.h" +#include "content/public/test/fenced_frame_test_util.h" #include "content/public/test/test_renderer_host.h" #include "content/public/test/test_utils.h" #include "content/public/test/url_loader_interceptor.h" @@ -2954,73 +2955,127 @@ } }; +enum class FrameType { kIFrame, kShadowDomFencedFrame, kMPArchFencedFrame }; + +class AutofillInteractiveFencedFrameTest + : public AutofillInteractiveIsolationTest, + public ::testing::WithParamInterface<FrameType> { + protected: + AutofillInteractiveFencedFrameTest() { + if (GetParam() != FrameType::kIFrame) { + scoped_feature_list_.InitWithFeatures( + {features::kAutofillEnableWithinFencedFrame}, {}); + fenced_frame_test_helper_ = std::make_unique< + content::test::FencedFrameTestHelper>( + GetParam() == FrameType::kShadowDomFencedFrame + ? content::test::FencedFrameTestHelper::FencedFrameType:: + kShadowDOM + : content::test::FencedFrameTestHelper::FencedFrameType::kMPArch); + } + } + ~AutofillInteractiveFencedFrameTest() override = default; + + content::RenderFrameHost* primary_main_frame_host() { + return GetWebContents()->GetMainFrame(); + } + + content::RenderFrameHost* LoadSubFrame(std::string relative_url) { + GURL frame_url = https_server()->GetURL( + "b.com", (GetParam() == FrameType::kIFrame ? "" : "/fenced_frames") + + relative_url); + switch (GetParam()) { + case FrameType::kIFrame: { + EXPECT_TRUE(content::NavigateIframeToURL(GetWebContents(), "crossFrame", + frame_url)); + // TODO(crbug.com/1323334) Use AutofillManager::OnFormParsed instead of + // DoNothingAndWait. + // Wait to make sure the cross-frame form is parsed. + DoNothingAndWait(base::Seconds(2)); + content::RenderFrameHost* cross_frame = + RenderFrameHostForName(GetWebContents(), "crossFrame"); + return cross_frame; + } + case FrameType::kShadowDomFencedFrame: + case FrameType::kMPArchFencedFrame: { + content::RenderFrameHost* cross_frame = + fenced_frame_test_helper_->CreateFencedFrame( + primary_main_frame_host(), frame_url); + // TODO(crbug.com/1323334) Use AutofillManager::OnFormParsed instead of + // DoNothingAndWait. + // Wait to make sure the cross-frame form is parsed. + DoNothingAndWait(base::Seconds(2)); + return cross_frame; + } + } + NOTREACHED(); + } + + private: + base::test::ScopedFeatureList scoped_feature_list_; + std::unique_ptr<content::test::FencedFrameTestHelper> + fenced_frame_test_helper_; +}; + // TODO(https://crbug.com/1175735): Check back if flakiness is fixed now. -IN_PROC_BROWSER_TEST_F(AutofillInteractiveIsolationTest, SimpleCrossSiteFill) { +IN_PROC_BROWSER_TEST_P(AutofillInteractiveFencedFrameTest, + SimpleCrossSiteFill) { test_delegate()->SetIgnoreBackToBackMessages( ObservedUiEvents::kPreviewFormData, true); CreateTestProfile(); - // Main frame is on a.com, iframe is on b.com. - GURL url = embedded_test_server()->GetURL( - "a.com", "/autofill/cross_origin_iframe.html"); + // Main frame is on a.com, iframe/fenced frame is on b.com. + GURL url = + https_server()->GetURL("a.com", "/autofill/cross_origin_iframe.html"); ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), url)); - GURL iframe_url = embedded_test_server()->GetURL( - "b.com", "/autofill/autofill_test_form.html"); - EXPECT_TRUE( - content::NavigateIframeToURL(GetWebContents(), "crossFrame", iframe_url)); + content::RenderFrameHost* cross_frame_host = + LoadSubFrame("/autofill/autofill_test_form.html"); + ASSERT_TRUE(cross_frame_host); - // Wait to make sure the cross-frame form is parsed. - DoNothingAndWait(base::Seconds(2)); - - // Let |test_delegate()| also observe autofill events in the iframe. - content::RenderFrameHost* cross_frame = - RenderFrameHostForName(GetWebContents(), "crossFrame"); - ASSERT_TRUE(cross_frame); ContentAutofillDriver* cross_driver = ContentAutofillDriverFactory::FromWebContents(GetWebContents()) - ->DriverForFrame(cross_frame); + ->DriverForFrame(cross_frame_host); ASSERT_TRUE(cross_driver); + // Let |test_delegate()| also observe autofill events in the iframe. static_cast<BrowserAutofillManager*>(cross_driver->autofill_manager()) ->SetTestDelegate(test_delegate()); ASSERT_TRUE(AutofillFlow(GetElementById("NAME_FIRST"), this, - {.execution_target = cross_frame})); - EXPECT_EQ("Milton", GetFieldValue(GetElementById("NAME_FIRST"), cross_frame)); + {.execution_target = cross_frame_host})); + EXPECT_EQ("Milton", + GetFieldValue(GetElementById("NAME_FIRST"), cross_frame_host)); } // This test verifies that credit card (payment card list) popup works when the -// form is inside an OOPIF. -IN_PROC_BROWSER_TEST_F(AutofillInteractiveTest, CrossSitePaymentForms) { +// form is inside an OOPIF/Fenced Frame. +IN_PROC_BROWSER_TEST_P(AutofillInteractiveFencedFrameTest, + CrossSitePaymentForms) { CreateTestCreditCart(); - // Main frame is on a.com, iframe is on b.com. + // Main frame is on a.com, iframe/fenced frame is on b.com. GURL url = https_server()->GetURL("a.com", "/autofill/cross_origin_iframe.html"); ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), url)); - GURL iframe_url = https_server()->GetURL( - "b.com", "/autofill/autofill_creditcard_form.html"); - EXPECT_TRUE( - content::NavigateIframeToURL(GetWebContents(), "crossFrame", iframe_url)); - // Let |test_delegate()| also observe autofill events in the iframe. - content::RenderFrameHost* cross_frame = - RenderFrameHostForName(GetWebContents(), "crossFrame"); - ASSERT_TRUE(cross_frame); + content::RenderFrameHost* cross_frame_host = + LoadSubFrame("/autofill/autofill_creditcard_form.html"); + ASSERT_TRUE(cross_frame_host); + ContentAutofillDriver* cross_driver = ContentAutofillDriverFactory::FromWebContents(GetWebContents()) - ->DriverForFrame(cross_frame); + ->DriverForFrame(cross_frame_host); ASSERT_TRUE(cross_driver); + // Let |test_delegate()| also observe autofill events in the iframe. static_cast<BrowserAutofillManager*>(cross_driver->autofill_manager()) ->SetTestDelegate(test_delegate()); auto Wait = [this]() { DoNothingAndWait(base::Seconds(2)); }; ASSERT_TRUE(AutofillFlow(GetElementById("CREDIT_CARD_NUMBER"), this, {.after_focus = base::BindLambdaForTesting(Wait), - .execution_target = cross_frame})); + .execution_target = cross_frame_host})); } // TODO(https://crbug.com/1175735): Check back if flakiness is fixed now. -IN_PROC_BROWSER_TEST_F(AutofillInteractiveIsolationTest, +IN_PROC_BROWSER_TEST_P(AutofillInteractiveFencedFrameTest, DeletingFrameUnderSuggestion) { // TODO(crbug.com/1240482): the test expectations fail if the window gets CSD // and becomes smaller because of that. Investigate this and remove the line @@ -3029,43 +3084,54 @@ CreateTestProfile(); - // Main frame is on a.com, iframe is on b.com. - GURL url = embedded_test_server()->GetURL( - "a.com", "/autofill/cross_origin_iframe.html"); + // Main frame is on a.com, fenced frame is on b.com. + GURL url = + https_server()->GetURL("a.com", "/autofill/cross_origin_iframe.html"); ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), url)); - GURL iframe_url = embedded_test_server()->GetURL( - "b.com", "/autofill/autofill_test_form.html"); - EXPECT_TRUE( - content::NavigateIframeToURL(GetWebContents(), "crossFrame", iframe_url)); - // Let |test_delegate()| also observe autofill events in the iframe. - content::RenderFrameHost* cross_frame = - RenderFrameHostForName(GetWebContents(), "crossFrame"); - ASSERT_TRUE(cross_frame); + content::RenderFrameHost* cross_frame_host = + LoadSubFrame("/autofill/autofill_test_form.html"); + ASSERT_TRUE(cross_frame_host); + + // We need the fencedframe element to have id set to a known value + if (GetParam() != FrameType::kIFrame) { + ASSERT_TRUE(content::ExecuteScript( + GetWebContents(), + "document.getElementsByTagName('fencedframe')[0].id = 'crossFF';")); + } + ContentAutofillDriver* cross_driver = ContentAutofillDriverFactory::FromWebContents(GetWebContents()) - ->DriverForFrame(cross_frame); + ->DriverForFrame(cross_frame_host); ASSERT_TRUE(cross_driver); + // Let |test_delegate()| also observe autofill events in the iframe. static_cast<BrowserAutofillManager*>(cross_driver->autofill_manager()) ->SetTestDelegate(test_delegate()); - // Focus the form in the iframe and simulate choosing a suggestion via - // keyboard. + // Focus the form in the iframe/fenced frame and simulate choosing a + // suggestion via keyboard. ASSERT_TRUE( AutofillFlow(GetElementById("NAME_FIRST"), this, - {.do_accept = false, .execution_target = cross_frame})); + {.do_accept = false, .execution_target = cross_frame_host})); // Do not accept the suggestion yet, to keep the pop-up shown. EXPECT_TRUE(IsPopupShown()); - // Delete the iframe. - std::string script_delete = - R"(document.body.removeChild(document.getElementById('crossFrame')))"; + // Delete the iframe/fenced frame. + std::string script_delete = base::StringPrintf( + "document.body.removeChild(document.getElementById('%s'))", + GetParam() == FrameType::kIFrame ? "crossFrame" : "crossFF"); ASSERT_TRUE(content::ExecuteScript(GetWebContents(), script_delete)); // The popup should have disappeared with the iframe. EXPECT_FALSE(IsPopupShown()); } +INSTANTIATE_TEST_SUITE_P(AutofillInteractiveTest, + AutofillInteractiveFencedFrameTest, + ::testing::Values(FrameType::kMPArchFencedFrame, + FrameType::kIFrame, + FrameType::kShadowDomFencedFrame)); + // Test fixture for refill behavior. // // BrowserAutofillManager only executes a refill if it happens within the time
diff --git a/chrome/browser/chromeos/BUILD.gn b/chrome/browser/chromeos/BUILD.gn index e273165..c434d2e 100644 --- a/chrome/browser/chromeos/BUILD.gn +++ b/chrome/browser/chromeos/BUILD.gn
@@ -268,6 +268,7 @@ "//chromeos/ash/components/dbus/upstart", "//chromeos/ash/components/hibernate:buildflags", "//chromeos/ash/components/memory", + "//chromeos/ash/components/network/portal_detector", "//chromeos/ash/components/scanning", "//chromeos/components/cdm_factory_daemon:cdm_factory_daemon_browser", "//chromeos/components/chromebox_for_meetings/buildflags", @@ -4175,6 +4176,7 @@ "//chromeos/ash/components/dbus/services:test_support", "//chromeos/ash/components/dbus/system_clock", "//chromeos/ash/components/dbus/upstart", + "//chromeos/ash/components/network/portal_detector:test_support", "//chromeos/ash/components/scanning", "//chromeos/components/sensors:test_support", "//chromeos/dbus:test_support",
diff --git a/chrome/browser/prerender/prerender_manager.cc b/chrome/browser/prerender/prerender_manager.cc index 2e27a282..3c35eb0 100644 --- a/chrome/browser/prerender/prerender_manager.cc +++ b/chrome/browser/prerender/prerender_manager.cc
@@ -21,6 +21,7 @@ #include "chrome/common/pref_names.h" #include "components/content_settings/core/browser/host_content_settings_map.h" #include "components/content_settings/core/common/content_settings.h" +#include "components/omnibox/browser/autocomplete_match.h" #include "components/omnibox/browser/base_search_provider.h" #include "components/prefs/pref_service.h" #include "components/search_engines/template_url.h" @@ -30,7 +31,10 @@ #include "content/public/browser/prerender_handle.h" #include "content/public/browser/replaced_navigation_entry_data.h" #include "content/public/browser/web_contents.h" +#include "content/public/browser/web_contents_observer.h" +#include "content/public/browser/web_contents_user_data.h" #include "net/base/url_util.h" +#include "url/gurl.h" namespace internal { const char kHistogramPrerenderPredictionStatusDefaultSearchEngine[] =
diff --git a/chrome/browser/prerender/prerender_manager.h b/chrome/browser/prerender/prerender_manager.h index 9f08acea..a3f0499 100644 --- a/chrome/browser/prerender/prerender_manager.h +++ b/chrome/browser/prerender/prerender_manager.h
@@ -10,6 +10,7 @@ #include "content/public/browser/web_contents.h" #include "content/public/browser/web_contents_observer.h" #include "content/public/browser/web_contents_user_data.h" +#include "url/gurl.h" namespace content { class NavigationHandle;
diff --git a/chrome/browser/sync/test/integration/secondary_account_helper.cc b/chrome/browser/sync/test/integration/secondary_account_helper.cc index b1fa53c..00e339a5 100644 --- a/chrome/browser/sync/test/integration/secondary_account_helper.cc +++ b/chrome/browser/sync/test/integration/secondary_account_helper.cc
@@ -16,10 +16,10 @@ #if BUILDFLAG(IS_CHROMEOS_ASH) #include "chrome/browser/ash/net/network_portal_detector_test_impl.h" +#include "chromeos/ash/components/network/portal_detector/network_portal_detector.h" #include "chromeos/network/network_handler.h" #include "chromeos/network/network_state.h" #include "chromeos/network/network_state_handler.h" -#include "chromeos/network/portal_detector/network_portal_detector.h" #endif // BUILDFLAG(IS_CHROMEOS_ASH) namespace secondary_account_helper {
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn index e7d9b4f..05968a07 100644 --- a/chrome/browser/ui/BUILD.gn +++ b/chrome/browser/ui/BUILD.gn
@@ -3109,6 +3109,7 @@ "//chromeos/ash/components/dbus/system_clock", "//chromeos/ash/components/dbus/upstart", "//chromeos/ash/components/human_presence", + "//chromeos/ash/components/network/portal_detector", "//chromeos/ash/resources", "//chromeos/components/local_search_service/public/cpp", "//chromeos/components/local_search_service/public/mojom",
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ms.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ms.xtb index 40a5010..a75fbb9 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ms.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ms.xtb
@@ -1076,6 +1076,7 @@ <translation id="6824899148643461612"><ph name="TAB_TITLE" />, tab, dipilih</translation> <translation id="6828070228333235514">Berhenti menjejaki harga</translation> <translation id="6833996806551876956">Percubaan Kotak Pasir Privasi</translation> +<translation id="6836206421467243968">Pulihkan kumpulan tab <ph name="TITLE_OF_GROUP" /> sebagai kumpulan tab latar baharu.</translation> <translation id="6846298663435243399">Memuatkan…</translation> <translation id="6850409657436465440">Muat turun anda masih berlangsung</translation> <translation id="6850830437481525139"><ph name="TAB_COUNT" /> tab telah ditutup</translation> @@ -1138,6 +1139,7 @@ <translation id="7187993566681480880">Memastikan anda selamat pada Chrome dan mungkin digunakan untuk meningkatkan keselamatan anda dalam apl Google yang lain apabila anda log masuk.</translation> <translation id="7191430249889272776">Tab dibuka di latar belakang.</translation> <translation id="7196215469483532480">Penjelasan panduan privasi dibuka pada ketinggian penuh</translation> +<translation id="7207760545532569765">Pulihkan <ph name="TAB_COUNT" /> tab sebagai tab latar baharu.</translation> <translation id="7208109991155904980">Reaksi dialihkan</translation> <translation id="7222235798733126207">Perkongsian terhad antara laman</translation> <translation id="7227218174981371415">{FILE_COUNT,plural, =1{1 muat turun belum selesai}other{# muat turun belum selesai}}</translation> @@ -1516,6 +1518,7 @@ <translation id="9148126808321036104">Log masuk semula</translation> <translation id="9155898266292537608">Anda juga boleh mencari dengan mengetik pantas pada perkataan</translation> <translation id="9158770349521403363">Kongsi kandungan sahaja</translation> +<translation id="9159716826369098114">Pulihkan kumpulan tab <ph name="TAB_COUNT" /> tab sebagai kumpulan tab latar baharu.</translation> <translation id="916446198114569890">URL yang anda lawati disimpan pada akaun Google anda</translation> <translation id="9169507124922466868">Sejarah navigasi separa terbuka</translation> <translation id="9187955620966010988">Reaksi dilaraskan</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_uz.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_uz.xtb index cc13672..dd5c70a9 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_uz.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_uz.xtb
@@ -1076,6 +1076,7 @@ <translation id="6824899148643461612">Varaq tanlandi: <ph name="TAB_TITLE" /></translation> <translation id="6828070228333235514">Narx kuzatuvini toʻxtatish</translation> <translation id="6833996806551876956">Privacy Sandbox sinov versiyasi</translation> +<translation id="6836206421467243968">Varaqlar guruhini (<ph name="TITLE_OF_GROUP" />) yangi fondagi varaqlar guruhi sifatida tiklash.</translation> <translation id="6846298663435243399">Yuklanmoqda…</translation> <translation id="6850409657436465440">Fayl hali ham yuklab olinmoqda</translation> <translation id="6850830437481525139"><ph name="TAB_COUNT" /> ta varaq yopildi</translation> @@ -1138,6 +1139,7 @@ <translation id="7187993566681480880">Hisobingizga kirganingizda Chrome va boshqa Google ilovalaridan xavfsiz foydalanishingizni taʼminlaydi.</translation> <translation id="7191430249889272776">Ichki oyna orqa fonda ochildi.</translation> <translation id="7196215469483532480">Maxfiylik qoʻllanmasi bildirgisi toʻliq hajmda ochildi</translation> +<translation id="7207760545532569765"><ph name="TAB_COUNT" /> ta varaqni fondagi varaqlar sifatida tiklash.</translation> <translation id="7208109991155904980">Munosabat koʻchdi</translation> <translation id="7222235798733126207">Saytlararo axborot ulashuvi cheklovi</translation> <translation id="7227218174981371415">{FILE_COUNT,plural, =1{1 ta fayl yuklab olinishi kutilmoqda...}other{# ta fayl yuklab olinishi kutilmoqda...}}</translation> @@ -1516,6 +1518,7 @@ <translation id="9148126808321036104">Qaytadan kiring</translation> <translation id="9155898266292537608">Shuningdek so‘z ustiga bosib qidirish mumkin</translation> <translation id="9158770349521403363">Faqat kontentni ulashish</translation> +<translation id="9159716826369098114">Varaqlar guruhini (<ph name="TAB_COUNT" />) yangi fondagi varaqlar guruhi sifatida tiklash.</translation> <translation id="916446198114569890">Tashrif qilingan URL manzillar Google hisobingizda saqlanadi</translation> <translation id="9169507124922466868">Sahifalar tarixi yarim hajmda ochildi</translation> <translation id="9187955620966010988">Munosabat tuzatildi</translation>
diff --git a/chrome/browser/ui/ash/chrome_browser_main_extra_parts_ash.cc b/chrome/browser/ui/ash/chrome_browser_main_extra_parts_ash.cc index 3bb742c1..629113f6 100644 --- a/chrome/browser/ui/ash/chrome_browser_main_extra_parts_ash.cc +++ b/chrome/browser/ui/ash/chrome_browser_main_extra_parts_ash.cc
@@ -60,10 +60,10 @@ #include "chrome/browser/ui/views/select_file_dialog_extension.h" #include "chrome/browser/ui/views/select_file_dialog_extension_factory.h" #include "chrome/browser/ui/views/tabs/tab_scrubber_chromeos.h" +#include "chromeos/ash/components/network/portal_detector/network_portal_detector.h" #include "chromeos/components/quick_answers/public/cpp/controller/quick_answers_controller.h" #include "chromeos/components/quick_answers/quick_answers_client.h" #include "chromeos/network/network_connect.h" -#include "chromeos/network/portal_detector/network_portal_detector.h" #include "chromeos/services/bluetooth_config/fast_pair_delegate.h" #include "chromeos/services/bluetooth_config/in_process_instance.h" #include "components/crash/core/common/crash_key.h"
diff --git a/chrome/browser/ui/ash/network/network_portal_notification_controller.h b/chrome/browser/ui/ash/network/network_portal_notification_controller.h index a4bc563..5036584 100644 --- a/chrome/browser/ui/ash/network/network_portal_notification_controller.h +++ b/chrome/browser/ui/ash/network/network_portal_notification_controller.h
@@ -8,7 +8,7 @@ #include <string> #include "base/memory/weak_ptr.h" -#include "chromeos/network/portal_detector/network_portal_detector.h" +#include "chromeos/ash/components/network/portal_detector/network_portal_detector.h" #include "components/session_manager/core/session_manager_observer.h" #include "ui/message_center/public/cpp/notification.h"
diff --git a/chrome/browser/ui/webui/chromeos/login/network_state_informer.h b/chrome/browser/ui/webui/chromeos/login/network_state_informer.h index 411481d..075dc7f9 100644 --- a/chrome/browser/ui/webui/chromeos/login/network_state_informer.h +++ b/chrome/browser/ui/webui/chromeos/login/network_state_informer.h
@@ -15,8 +15,8 @@ #include "base/observer_list.h" #include "chrome/browser/ash/login/screens/network_error.h" #include "chrome/browser/ash/login/ui/captive_portal_window_proxy.h" +#include "chromeos/ash/components/network/portal_detector/network_portal_detector.h" #include "chromeos/network/network_state_handler_observer.h" -#include "chromeos/network/portal_detector/network_portal_detector.h" namespace base { class Value;
diff --git a/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.h b/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.h index 0d8f8c68..664e717 100644 --- a/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.h +++ b/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.h
@@ -23,7 +23,7 @@ #include "chrome/browser/ui/webui/chromeos/login/base_webui_handler.h" #include "chrome/browser/ui/webui/chromeos/login/network_state_informer.h" #include "chrome/browser/ui/webui/chromeos/login/oobe_ui.h" -#include "chromeos/network/portal_detector/network_portal_detector.h" +#include "chromeos/ash/components/network/portal_detector/network_portal_detector.h" #include "components/user_manager/user_manager.h" #include "content/public/browser/notification_observer.h" #include "content/public/browser/notification_registrar.h"
diff --git a/chrome/browser/ui/webui/nearby_internals/OWNERS b/chrome/browser/ui/webui/nearby_internals/OWNERS index 4ecc015d..b76a3f65 100644 --- a/chrome/browser/ui/webui/nearby_internals/OWNERS +++ b/chrome/browser/ui/webui/nearby_internals/OWNERS
@@ -1,3 +1,2 @@ file://chrome/browser/nearby_sharing/OWNERS khorimoto@chromium.org -shanefitz@google.com
diff --git a/chrome/browser/webapps/web_app_offline_browsertest.cc b/chrome/browser/webapps/web_app_offline_browsertest.cc index faf05a1c..880c3e8 100644 --- a/chrome/browser/webapps/web_app_offline_browsertest.cc +++ b/chrome/browser/webapps/web_app_offline_browsertest.cc
@@ -25,6 +25,10 @@ #include "base/win/windows_version.h" #endif +#if BUILDFLAG(IS_CHROMEOS) +#include "chromeos/constants/chromeos_features.h" +#endif + namespace web_app { enum class PageFlagParam { @@ -212,7 +216,11 @@ WebAppOfflineDarkModeTest() { feature_list_.InitWithFeatures({features::kDesktopPWAsDefaultOfflinePage, blink::features::kWebAppEnableDarkMode}, - {}); + { +#if BUILDFLAG(IS_CHROMEOS) + chromeos::features::kDarkLightMode +#endif + }); } void SetUp() override {
diff --git a/chrome/build/linux.pgo.txt b/chrome/build/linux.pgo.txt index 826dadf3..52fd2d1 100644 --- a/chrome/build/linux.pgo.txt +++ b/chrome/build/linux.pgo.txt
@@ -1 +1 @@ -chrome-linux-main-1653738865-42809a41ca50b9125582fc5a460bb8afe428e76f.profdata +chrome-linux-main-1653868687-f3ebdb1b5e447a8e6345d2def98cadf518c38c24.profdata
diff --git a/chrome/build/mac.pgo.txt b/chrome/build/mac.pgo.txt index ae3aa3b..5e1646c 100644 --- a/chrome/build/mac.pgo.txt +++ b/chrome/build/mac.pgo.txt
@@ -1 +1 @@ -chrome-mac-main-1653738865-e86d159c50fe9803becd6a6c995dc9314a96947e.profdata +chrome-mac-main-1653845817-e60dcd3c8bd0bdebd9eeaf9fe5ff6b3c08892673.profdata
diff --git a/chrome/build/win32.pgo.txt b/chrome/build/win32.pgo.txt index b2be010f..7e26221 100644 --- a/chrome/build/win32.pgo.txt +++ b/chrome/build/win32.pgo.txt
@@ -1 +1 @@ -chrome-win32-main-1653738865-9a5cf909c21b271b8e0b23fe13f0030688c3d73e.profdata +chrome-win32-main-1653857657-444d1af0b053e96627578576f24bec7777612f86.profdata
diff --git a/chrome/build/win64.pgo.txt b/chrome/build/win64.pgo.txt index dd87282..403b3b2 100644 --- a/chrome/build/win64.pgo.txt +++ b/chrome/build/win64.pgo.txt
@@ -1 +1 @@ -chrome-win64-main-1653749916-1c8d23c8554410a9dba3c3303cb8f0dab46e36e0.profdata +chrome-win64-main-1653857657-fb61dce926405d7dddd23cf6bfd788a0aeba7efc.profdata
diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc index bebced1..98597f8 100644 --- a/chrome/common/chrome_features.cc +++ b/chrome/common/chrome_features.cc
@@ -70,8 +70,6 @@ // App Service related flags. See components/services/app_service/README.md. const base::Feature kAppServiceLoadIconWithoutMojom{ "AppServiceLoadIconWithoutMojom", base::FEATURE_ENABLED_BY_DEFAULT}; -const base::Feature kAppServiceExtension{"AppServiceExtension", - base::FEATURE_ENABLED_BY_DEFAULT}; #endif // !BUILDFLAG(IS_ANDROID) #if BUILDFLAG(IS_MAC)
diff --git a/chrome/common/chrome_features.h b/chrome/common/chrome_features.h index d83e3db..e87057d 100644 --- a/chrome/common/chrome_features.h +++ b/chrome/common/chrome_features.h
@@ -72,8 +72,6 @@ #if !BUILDFLAG(IS_ANDROID) COMPONENT_EXPORT(CHROME_FEATURES) extern const base::Feature kAppServiceLoadIconWithoutMojom; -COMPONENT_EXPORT(CHROME_FEATURES) -extern const base::Feature kAppServiceExtension; #endif // !BUILDFLAG(IS_ANDROID) #if BUILDFLAG(IS_MAC)
diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn index 8162f660..b0cae0c1 100644 --- a/chrome/test/BUILD.gn +++ b/chrome/test/BUILD.gn
@@ -4084,6 +4084,7 @@ "//chromeos/ash/components/dbus/system_proxy", "//chromeos/ash/components/dbus/system_proxy:system_proxy_proto", "//chromeos/ash/components/dbus/upstart", + "//chromeos/ash/components/network/portal_detector", "//chromeos/components/onc:test_support", "//chromeos/components/quick_answers/public/cpp:cpp", "//chromeos/components/remote_apps/mojom:mojom", @@ -9344,6 +9345,7 @@ if (is_chromeos) { deps += [ + "//chromeos/constants", "//chromeos/ui/base", "//chromeos/ui/frame", "//chromeos/ui/frame:test_support", @@ -9736,6 +9738,7 @@ "//ash/app_list:test_support", "//ash/components/arc:arc_test_support", "//ash/components/arc/mojom", + "//chromeos/ash/components/network/portal_detector", "//chromeos/printing", "//components/desks_storage", "//components/user_manager:test_support",
diff --git a/chrome/test/data/autofill/autofill_creditcard_form.html b/chrome/test/data/autofill/autofill_creditcard_form.html index 01660674..beabb09 100644 --- a/chrome/test/data/autofill/autofill_creditcard_form.html +++ b/chrome/test/data/autofill/autofill_creditcard_form.html
@@ -12,7 +12,7 @@ <tbody> <tr> <td> - <label for="nameoncard">Name on Card</label> + <label for="CREDIT_CARD_NAME_FULL">Name on Card</label> </td> <td> <input size="40" id="CREDIT_CARD_NAME_FULL"/> @@ -20,7 +20,7 @@ </tr> <tr> <td> - <label for="card_number">Card Number</label> + <label for="CREDIT_CARD_NUMBER">Card Number</label> </td> <td> <input size="40" id="CREDIT_CARD_NUMBER" name="card_number"/>
diff --git a/chrome/test/data/autofill/autofill_test_form.html b/chrome/test/data/autofill/autofill_test_form.html index a94d47e..25624cc 100644 --- a/chrome/test/data/autofill/autofill_test_form.html +++ b/chrome/test/data/autofill/autofill_test_form.html
@@ -10,15 +10,15 @@ <h3>Autofill Test Form</h3> <form name="testform" method="post" id="testform"> <p> - <label for="firstname">First Name:</label> <input type="text" id="NAME_FIRST"> - <label for="lastname">Last Name:</label> <input type="text" id="NAME_LAST"> - <label for="address">Address:</label> <input type="text" id="ADDRESS_HOME_LINE1"> - <label for="city">City:</label> <input type="text" id="ADDRESS_HOME_CITY" > - <label for="state">State:</label> <input type="text" id="ADDRESS_HOME_STATE" > - <label for="zip">Zip:</label> <input type="text" id="ADDRESS_HOME_ZIP" > - <label for="country">Country:</label> <input type="text" id="ADDRESS_HOME_COUNTRY" > - <label for="email">Email:</label> <input type="text" id="EMAIL_ADDRESS"> - <label for="phone">Phone:</label> <input type="text" id="PHONE_HOME_WHOLE_NUMBER"> + <label for="NAME_FIRST">First Name:</label> <input type="text" id="NAME_FIRST"> + <label for="NAME_LAST">Last Name:</label> <input type="text" id="NAME_LAST"> + <label for="ADDRESS_HOME_LINE1">Address:</label> <input type="text" id="ADDRESS_HOME_LINE1"> + <label for="ADDRESS_HOME_CITY">City:</label> <input type="text" id="ADDRESS_HOME_CITY" > + <label for="ADDRESS_HOME_STATE">State:</label> <input type="text" id="ADDRESS_HOME_STATE" > + <label for="ADDRESS_HOME_ZIP">Zip:</label> <input type="text" id="ADDRESS_HOME_ZIP" > + <label for="ADDRESS_HOME_COUNTRY">Country:</label> <input type="text" id="ADDRESS_HOME_COUNTRY" > + <label for="EMAIL_ADDRESS">Email:</label> <input type="text" id="EMAIL_ADDRESS"> + <label for="PHONE_HOME_WHOLE_NUMBER">Phone:</label> <input type="text" id="PHONE_HOME_WHOLE_NUMBER"> <input type="submit" value="send"> <input type="reset"> </p> </form>
diff --git a/chrome/test/data/fenced_frames/autofill/autofill_creditcard_form.html b/chrome/test/data/fenced_frames/autofill/autofill_creditcard_form.html new file mode 100644 index 0000000..beabb09 --- /dev/null +++ b/chrome/test/data/fenced_frames/autofill/autofill_creditcard_form.html
@@ -0,0 +1,43 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> +<!-- HTML credit card form used for testing Autofill preferences. --> +<html> + <head> + <title>Autofill Credit Card Test Form</title> + <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> + </head> + <body> + <p>Autofill Credit Card Test Form</p> + <form id="testform" method="post"> + <table> + <tbody> + <tr> + <td> + <label for="CREDIT_CARD_NAME_FULL">Name on Card</label> + </td> + <td> + <input size="40" id="CREDIT_CARD_NAME_FULL"/> + </td> + </tr> + <tr> + <td> + <label for="CREDIT_CARD_NUMBER">Card Number</label> + </td> + <td> + <input size="40" id="CREDIT_CARD_NUMBER" name="card_number"/> + </td> + </tr> + <tr> + <td> + <label>Expiration Date</label> + </td> + <td> + <input size="2" id="CREDIT_CARD_EXP_MONTH" name="ccmonth"> <input size="4" id="CREDIT_CARD_EXP_4_DIGIT_YEAR" name="ccyear"/> + </td> + </tr> + </tbody> + </table> + <input type="submit" value="Submit"> + </form> + </body> +</html> +
diff --git a/chrome/test/data/fenced_frames/autofill/autofill_creditcard_form.html.mock-http-headers b/chrome/test/data/fenced_frames/autofill/autofill_creditcard_form.html.mock-http-headers new file mode 100644 index 0000000..27f34d2 --- /dev/null +++ b/chrome/test/data/fenced_frames/autofill/autofill_creditcard_form.html.mock-http-headers
@@ -0,0 +1,2 @@ +HTTP/1.1 200 OK +Supports-Loading-Mode: fenced-frame
diff --git a/chrome/test/data/fenced_frames/autofill/autofill_test_form.html b/chrome/test/data/fenced_frames/autofill/autofill_test_form.html new file mode 100644 index 0000000..25624cc --- /dev/null +++ b/chrome/test/data/fenced_frames/autofill/autofill_test_form.html
@@ -0,0 +1,27 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> +<!-- Autofill generic test form. --> +<html> +<!-- The following call prevents the zoom-on-focus animation which caused test flakes. --> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <head> + <title>Autofill Test Form</title> + </head> + <body> + <h3>Autofill Test Form</h3> + <form name="testform" method="post" id="testform"> + <p> + <label for="NAME_FIRST">First Name:</label> <input type="text" id="NAME_FIRST"> + <label for="NAME_LAST">Last Name:</label> <input type="text" id="NAME_LAST"> + <label for="ADDRESS_HOME_LINE1">Address:</label> <input type="text" id="ADDRESS_HOME_LINE1"> + <label for="ADDRESS_HOME_CITY">City:</label> <input type="text" id="ADDRESS_HOME_CITY" > + <label for="ADDRESS_HOME_STATE">State:</label> <input type="text" id="ADDRESS_HOME_STATE" > + <label for="ADDRESS_HOME_ZIP">Zip:</label> <input type="text" id="ADDRESS_HOME_ZIP" > + <label for="ADDRESS_HOME_COUNTRY">Country:</label> <input type="text" id="ADDRESS_HOME_COUNTRY" > + <label for="EMAIL_ADDRESS">Email:</label> <input type="text" id="EMAIL_ADDRESS"> + <label for="PHONE_HOME_WHOLE_NUMBER">Phone:</label> <input type="text" id="PHONE_HOME_WHOLE_NUMBER"> + <input type="submit" value="send"> <input type="reset"> + </p> + </form> + </body> +</html> +
diff --git a/chrome/test/data/fenced_frames/autofill/autofill_test_form.html.mock-http-headers b/chrome/test/data/fenced_frames/autofill/autofill_test_form.html.mock-http-headers new file mode 100644 index 0000000..27f34d2 --- /dev/null +++ b/chrome/test/data/fenced_frames/autofill/autofill_test_form.html.mock-http-headers
@@ -0,0 +1,2 @@ +HTTP/1.1 200 OK +Supports-Loading-Mode: fenced-frame
diff --git a/chromeos/ash/components/network/portal_detector/BUILD.gn b/chromeos/ash/components/network/portal_detector/BUILD.gn new file mode 100644 index 0000000..1628a1af --- /dev/null +++ b/chromeos/ash/components/network/portal_detector/BUILD.gn
@@ -0,0 +1,37 @@ +# Copyright 2022 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +import("//build/config/chromeos/ui_mode.gni") + +assert(is_chromeos_ash, "Non-ChromeOS builds cannot depend on //chromeos/ash") + +source_set("portal_detector") { + configs += [ "//chromeos/network:network_config" ] + deps = [ + "//base", + "//chromeos/network", + "//components/device_event_log", + "//net", + ] + sources = [ + "network_portal_detector.cc", + "network_portal_detector.h", + "network_portal_detector_strategy.cc", + "network_portal_detector_strategy.h", + "network_portal_detector_stub.cc", + "network_portal_detector_stub.h", + ] +} + +source_set("test_support") { + testonly = true + deps = [ + ":portal_detector", + "//testing/gmock", + ] + sources = [ + "mock_network_portal_detector.cc", + "mock_network_portal_detector.h", + ] +}
diff --git a/chromeos/network/portal_detector/DIR_METADATA b/chromeos/ash/components/network/portal_detector/DIR_METADATA similarity index 100% rename from chromeos/network/portal_detector/DIR_METADATA rename to chromeos/ash/components/network/portal_detector/DIR_METADATA
diff --git a/chromeos/network/portal_detector/OWNERS b/chromeos/ash/components/network/portal_detector/OWNERS similarity index 100% rename from chromeos/network/portal_detector/OWNERS rename to chromeos/ash/components/network/portal_detector/OWNERS
diff --git a/chromeos/network/portal_detector/mock_network_portal_detector.cc b/chromeos/ash/components/network/portal_detector/mock_network_portal_detector.cc similarity index 79% rename from chromeos/network/portal_detector/mock_network_portal_detector.cc rename to chromeos/ash/components/network/portal_detector/mock_network_portal_detector.cc index e293578..da13bc0 100644 --- a/chromeos/network/portal_detector/mock_network_portal_detector.cc +++ b/chromeos/ash/components/network/portal_detector/mock_network_portal_detector.cc
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "chromeos/network/portal_detector/mock_network_portal_detector.h" +#include "chromeos/ash/components/network/portal_detector/mock_network_portal_detector.h" namespace chromeos {
diff --git a/chromeos/network/portal_detector/mock_network_portal_detector.h b/chromeos/ash/components/network/portal_detector/mock_network_portal_detector.h similarity index 79% rename from chromeos/network/portal_detector/mock_network_portal_detector.h rename to chromeos/ash/components/network/portal_detector/mock_network_portal_detector.h index 92d3e0d..3362f9b 100644 --- a/chromeos/network/portal_detector/mock_network_portal_detector.h +++ b/chromeos/ash/components/network/portal_detector/mock_network_portal_detector.h
@@ -2,10 +2,10 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef CHROMEOS_NETWORK_PORTAL_DETECTOR_MOCK_NETWORK_PORTAL_DETECTOR_H_ -#define CHROMEOS_NETWORK_PORTAL_DETECTOR_MOCK_NETWORK_PORTAL_DETECTOR_H_ +#ifndef CHROMEOS_ASH_COMPONENTS_NETWORK_PORTAL_DETECTOR_MOCK_NETWORK_PORTAL_DETECTOR_H_ +#define CHROMEOS_ASH_COMPONENTS_NETWORK_PORTAL_DETECTOR_MOCK_NETWORK_PORTAL_DETECTOR_H_ -#include "chromeos/network/portal_detector/network_portal_detector.h" +#include "chromeos/ash/components/network/portal_detector/network_portal_detector.h" #include "testing/gmock/include/gmock/gmock.h" namespace chromeos { @@ -42,4 +42,4 @@ using ::chromeos::MockNetworkPortalDetector; } // namespace ash -#endif // CHROMEOS_NETWORK_PORTAL_DETECTOR_MOCK_NETWORK_PORTAL_DETECTOR_H_ +#endif // CHROMEOS_ASH_COMPONENTS_NETWORK_PORTAL_DETECTOR_MOCK_NETWORK_PORTAL_DETECTOR_H_
diff --git a/chromeos/network/portal_detector/network_portal_detector.cc b/chromeos/ash/components/network/portal_detector/network_portal_detector.cc similarity index 96% rename from chromeos/network/portal_detector/network_portal_detector.cc rename to chromeos/ash/components/network/portal_detector/network_portal_detector.cc index 76edef72..0373557a 100644 --- a/chromeos/network/portal_detector/network_portal_detector.cc +++ b/chromeos/ash/components/network/portal_detector/network_portal_detector.cc
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "chromeos/network/portal_detector/network_portal_detector.h" +#include "chromeos/ash/components/network/portal_detector/network_portal_detector.h" #include "base/logging.h" #include "components/device_event_log/device_event_log.h"
diff --git a/chromeos/network/portal_detector/network_portal_detector.h b/chromeos/ash/components/network/portal_detector/network_portal_detector.h similarity index 94% rename from chromeos/network/portal_detector/network_portal_detector.h rename to chromeos/ash/components/network/portal_detector/network_portal_detector.h index b15a03b..cacc6475 100644 --- a/chromeos/network/portal_detector/network_portal_detector.h +++ b/chromeos/ash/components/network/portal_detector/network_portal_detector.h
@@ -2,15 +2,15 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef CHROMEOS_NETWORK_PORTAL_DETECTOR_NETWORK_PORTAL_DETECTOR_H_ -#define CHROMEOS_NETWORK_PORTAL_DETECTOR_NETWORK_PORTAL_DETECTOR_H_ +#ifndef CHROMEOS_ASH_COMPONENTS_NETWORK_PORTAL_DETECTOR_NETWORK_PORTAL_DETECTOR_H_ +#define CHROMEOS_ASH_COMPONENTS_NETWORK_PORTAL_DETECTOR_NETWORK_PORTAL_DETECTOR_H_ #include "base/component_export.h" #include "base/notreached.h" +#include "chromeos/ash/components/network/portal_detector/network_portal_detector_strategy.h" // TODO(https://crbug.com/1164001): forward declare NetworkState when moved to // chrome/browser/ash/. #include "chromeos/network/network_state.h" -#include "chromeos/network/portal_detector/network_portal_detector_strategy.h" namespace chromeos { @@ -145,4 +145,4 @@ } // namespace network_portal_detector } // namespace ash -#endif // CHROMEOS_NETWORK_PORTAL_DETECTOR_NETWORK_PORTAL_DETECTOR_H_ +#endif // CHROMEOS_ASH_COMPONENTS_NETWORK_PORTAL_DETECTOR_NETWORK_PORTAL_DETECTOR_H_
diff --git a/chromeos/network/portal_detector/network_portal_detector_strategy.cc b/chromeos/ash/components/network/portal_detector/network_portal_detector_strategy.cc similarity index 98% rename from chromeos/network/portal_detector/network_portal_detector_strategy.cc rename to chromeos/ash/components/network/portal_detector/network_portal_detector_strategy.cc index 79b23f3a..12538fa 100644 --- a/chromeos/network/portal_detector/network_portal_detector_strategy.cc +++ b/chromeos/ash/components/network/portal_detector/network_portal_detector_strategy.cc
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "chromeos/network/portal_detector/network_portal_detector_strategy.h" +#include "chromeos/ash/components/network/portal_detector/network_portal_detector_strategy.h" #include <memory>
diff --git a/chromeos/network/portal_detector/network_portal_detector_strategy.h b/chromeos/ash/components/network/portal_detector/network_portal_detector_strategy.h similarity index 93% rename from chromeos/network/portal_detector/network_portal_detector_strategy.h rename to chromeos/ash/components/network/portal_detector/network_portal_detector_strategy.h index 795df3f..a1c7885b 100644 --- a/chromeos/network/portal_detector/network_portal_detector_strategy.h +++ b/chromeos/ash/components/network/portal_detector/network_portal_detector_strategy.h
@@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef CHROMEOS_NETWORK_PORTAL_DETECTOR_NETWORK_PORTAL_DETECTOR_STRATEGY_H_ -#define CHROMEOS_NETWORK_PORTAL_DETECTOR_NETWORK_PORTAL_DETECTOR_STRATEGY_H_ +#ifndef CHROMEOS_ASH_COMPONENTS_NETWORK_PORTAL_DETECTOR_NETWORK_PORTAL_DETECTOR_STRATEGY_H_ +#define CHROMEOS_ASH_COMPONENTS_NETWORK_PORTAL_DETECTOR_NETWORK_PORTAL_DETECTOR_STRATEGY_H_ #include <memory> @@ -124,4 +124,4 @@ using ::chromeos::PortalDetectorStrategy; } -#endif // CHROMEOS_NETWORK_PORTAL_DETECTOR_NETWORK_PORTAL_DETECTOR_STRATEGY_H_ +#endif // CHROMEOS_ASH_COMPONENTS_NETWORK_PORTAL_DETECTOR_NETWORK_PORTAL_DETECTOR_STRATEGY_H_
diff --git a/chromeos/network/portal_detector/network_portal_detector_stub.cc b/chromeos/ash/components/network/portal_detector/network_portal_detector_stub.cc similarity index 92% rename from chromeos/network/portal_detector/network_portal_detector_stub.cc rename to chromeos/ash/components/network/portal_detector/network_portal_detector_stub.cc index 99489c81..817f1ba 100644 --- a/chromeos/network/portal_detector/network_portal_detector_stub.cc +++ b/chromeos/ash/components/network/portal_detector/network_portal_detector_stub.cc
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "chromeos/network/portal_detector/network_portal_detector_stub.h" +#include "chromeos/ash/components/network/portal_detector/network_portal_detector_stub.h" namespace chromeos {
diff --git a/chromeos/network/portal_detector/network_portal_detector_stub.h b/chromeos/ash/components/network/portal_detector/network_portal_detector_stub.h similarity index 76% rename from chromeos/network/portal_detector/network_portal_detector_stub.h rename to chromeos/ash/components/network/portal_detector/network_portal_detector_stub.h index 7be8d3b..00073ae 100644 --- a/chromeos/network/portal_detector/network_portal_detector_stub.h +++ b/chromeos/ash/components/network/portal_detector/network_portal_detector_stub.h
@@ -2,10 +2,10 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef CHROMEOS_NETWORK_PORTAL_DETECTOR_NETWORK_PORTAL_DETECTOR_STUB_H_ -#define CHROMEOS_NETWORK_PORTAL_DETECTOR_NETWORK_PORTAL_DETECTOR_STUB_H_ +#ifndef CHROMEOS_ASH_COMPONENTS_NETWORK_PORTAL_DETECTOR_NETWORK_PORTAL_DETECTOR_STUB_H_ +#define CHROMEOS_ASH_COMPONENTS_NETWORK_PORTAL_DETECTOR_NETWORK_PORTAL_DETECTOR_STUB_H_ -#include "chromeos/network/portal_detector/network_portal_detector.h" +#include "chromeos/ash/components/network/portal_detector/network_portal_detector.h" namespace chromeos { @@ -39,4 +39,4 @@ using ::chromeos::NetworkPortalDetectorStub; } -#endif // CHROMEOS_NETWORK_PORTAL_DETECTOR_NETWORK_PORTAL_DETECTOR_STUB_H_ +#endif // CHROMEOS_ASH_COMPONENTS_NETWORK_PORTAL_DETECTOR_NETWORK_PORTAL_DETECTOR_STUB_H_
diff --git a/chromeos/network/BUILD.gn b/chromeos/network/BUILD.gn index 5b5e8222..a146320 100644 --- a/chromeos/network/BUILD.gn +++ b/chromeos/network/BUILD.gn
@@ -162,12 +162,6 @@ "policy_certificate_provider.h", "policy_util.cc", "policy_util.h", - "portal_detector/network_portal_detector.cc", - "portal_detector/network_portal_detector.h", - "portal_detector/network_portal_detector_strategy.cc", - "portal_detector/network_portal_detector_strategy.h", - "portal_detector/network_portal_detector_stub.cc", - "portal_detector/network_portal_detector_stub.h", "profile_policies.cc", "profile_policies.h", "prohibited_technologies_handler.cc", @@ -235,8 +229,6 @@ "network_state_test_helper.h", "network_test_helper_base.cc", "network_test_helper_base.h", - "portal_detector/mock_network_portal_detector.cc", - "portal_detector/mock_network_portal_detector.h", "system_token_cert_db_storage_test_util.cc", "system_token_cert_db_storage_test_util.h", "test_cellular_esim_profile_handler.cc",
diff --git a/chromeos/profiles/atom.afdo.newest.txt b/chromeos/profiles/atom.afdo.newest.txt index ae1a300..ed491a7 100644 --- a/chromeos/profiles/atom.afdo.newest.txt +++ b/chromeos/profiles/atom.afdo.newest.txt
@@ -1 +1 @@ -chromeos-chrome-amd64-atom-104-5045.0-1652697047-benchmark-104.0.5072.0-r1-redacted.afdo.xz +chromeos-chrome-amd64-atom-104-5045.0-1653299350-benchmark-104.0.5087.0-r1-redacted.afdo.xz
diff --git a/chromeos/profiles/bigcore.afdo.newest.txt b/chromeos/profiles/bigcore.afdo.newest.txt index 463efb5..4a4cf35 100644 --- a/chromeos/profiles/bigcore.afdo.newest.txt +++ b/chromeos/profiles/bigcore.afdo.newest.txt
@@ -1 +1 @@ -chromeos-chrome-amd64-bigcore-104-5045.0-1652694334-benchmark-104.0.5072.0-r1-redacted.afdo.xz +chromeos-chrome-amd64-bigcore-104-5045.0-1653301582-benchmark-104.0.5087.0-r1-redacted.afdo.xz
diff --git a/chromeos/profiles/orderfile.newest.txt b/chromeos/profiles/orderfile.newest.txt index ff22bd0b..9007dbae 100644 --- a/chromeos/profiles/orderfile.newest.txt +++ b/chromeos/profiles/orderfile.newest.txt
@@ -1 +1 @@ -chromeos-chrome-orderfile-field-104-5045.0-1652697047-benchmark-104.0.5065.0-r1.orderfile.xz +chromeos-chrome-orderfile-field-104-5045.0-1652697047-benchmark-104.0.5072.0-r1.orderfile.xz
diff --git a/chromeos/strings/chromeos_strings_bg.xtb b/chromeos/strings/chromeos_strings_bg.xtb index 9a1917a9..6f143757 100644 --- a/chromeos/strings/chromeos_strings_bg.xtb +++ b/chromeos/strings/chromeos_strings_bg.xtb
@@ -491,6 +491,7 @@ <translation id="5478289488939624992">{ATTEMPTS_LEFT,plural, =1{Остава {0} опит}other{Остават {0} опита}}</translation> <translation id="5493614766091057239"><ph name="VERDICT" />: <ph name="PROBLEMS" /></translation> <translation id="5499114900554609492">Сканирането не бе изпълнено</translation> +<translation id="5499762266711462226">Цветът на клавиатурата е въз основа на тапета</translation> <translation id="5502931783115429516">Android не работи</translation> <translation id="5507300744274596613">Уверете се, че версията на Chrome OS е актуална</translation> <translation id="5519195206574732858">LTE</translation>
diff --git a/chromeos/strings/chromeos_strings_en-GB.xtb b/chromeos/strings/chromeos_strings_en-GB.xtb index 9b2f420..49444ba 100644 --- a/chromeos/strings/chromeos_strings_en-GB.xtb +++ b/chromeos/strings/chromeos_strings_en-GB.xtb
@@ -494,6 +494,7 @@ <translation id="5478289488939624992">{ATTEMPTS_LEFT,plural, =1{{0} attempt left}other{{0} attempts left}}</translation> <translation id="5493614766091057239"><ph name="VERDICT" />: <ph name="PROBLEMS" /></translation> <translation id="5499114900554609492">Couldn't complete scan</translation> +<translation id="5499762266711462226">Keyboard colour is based on the wallpaper</translation> <translation id="5502931783115429516">Android not running</translation> <translation id="5507300744274596613">Make sure that Chrome OS is up to date</translation> <translation id="5519195206574732858">LTE</translation>
diff --git a/chromeos/strings/chromeos_strings_ms.xtb b/chromeos/strings/chromeos_strings_ms.xtb index 10244f5..9fbfe87 100644 --- a/chromeos/strings/chromeos_strings_ms.xtb +++ b/chromeos/strings/chromeos_strings_ms.xtb
@@ -86,6 +86,7 @@ <translation id="1645954272419197032">Sila sahkan maklumat peranti</translation> <translation id="1662989795263954667">Dihentikan - Kehabisan dakwat</translation> <translation id="1668469839109562275">VPN terbina dalam</translation> +<translation id="1672499492233627739">Suapan video kamera web</translation> <translation id="1676557873873341166">Mengambil video</translation> <translation id="1703835215927279855">Surat</translation> <translation id="1706391837335750954">Pelerai DNS Ada</translation> @@ -216,6 +217,7 @@ <translation id="3008341117444806826">MUAT SEMULA</translation> <translation id="3009958530611748826">Pilih folder untuk menyimpan imbasan</translation> <translation id="3017079585324758401">Latar belakang</translation> +<translation id="3027578600144895987">Tutup kamera</translation> <translation id="3031560714565892478">Peranti ialah kamera video.</translation> <translation id="3054177598518735801"><ph name="CURRENT_VALUE" /> mA</translation> <translation id="3056720590588772262">Titik akhir</translation>
diff --git a/chromeos/strings/chromeos_strings_sl.xtb b/chromeos/strings/chromeos_strings_sl.xtb index afe854b..10d21d0 100644 --- a/chromeos/strings/chromeos_strings_sl.xtb +++ b/chromeos/strings/chromeos_strings_sl.xtb
@@ -234,6 +234,7 @@ <translation id="315738237743207937">Zaznan je bil prestrezni portal</translation> <translation id="3170673040743561620">Postavite dokument na optični bralnik.</translation> <translation id="3188257591659621405">Moje datoteke</translation> +<translation id="319101249942218879">Slika avatarja je spremenjena</translation> <translation id="3192947282887913208">Zvočne datoteke</translation> <translation id="3199982728237701504">Podajalnik dokumentov (dvostransko)</translation> <translation id="320091191259649613">Če bo težava prisotna še po posodobitvi, je bila komponenta morda šele nedavno označena kot ustrezna in še ni bila dodana v zbirko podatkov.</translation>
diff --git a/chromeos/strings/chromeos_strings_uz.xtb b/chromeos/strings/chromeos_strings_uz.xtb index ccd1f6b..193c753 100644 --- a/chromeos/strings/chromeos_strings_uz.xtb +++ b/chromeos/strings/chromeos_strings_uz.xtb
@@ -86,6 +86,7 @@ <translation id="1645954272419197032">Qurilma axborotini tasdiqlang</translation> <translation id="1662989795263954667">Toʻxtatildi – Siyoh tugadi</translation> <translation id="1668469839109562275">Ichki oʻrnatilgan VPN</translation> +<translation id="1672499492233627739">Veb kamera video tasmasi</translation> <translation id="1676557873873341166">Video yozib olinmoqda</translation> <translation id="1703835215927279855">Letter</translation> <translation id="1706391837335750954">DNS vositasi mavjud</translation> @@ -216,6 +217,7 @@ <translation id="3008341117444806826">YANGILASH</translation> <translation id="3009958530611748826">Saqlash uchun jild tanlang</translation> <translation id="3017079585324758401">Orqa fon</translation> +<translation id="3027578600144895987">Kamerani yopish</translation> <translation id="3031560714565892478">Qurilma — video kamera.</translation> <translation id="3054177598518735801"><ph name="CURRENT_VALUE" />mA</translation> <translation id="3056720590588772262">Oxirgi nuqta</translation>
diff --git a/components/certificate_transparency/data/log_list.json b/components/certificate_transparency/data/log_list.json index b143e80..6d27ffd 100644 --- a/components/certificate_transparency/data/log_list.json +++ b/components/certificate_transparency/data/log_list.json
@@ -1,6 +1,6 @@ { - "version": "9.26", - "log_list_timestamp": "2022-05-28T12:54:33Z", + "version": "9.27", + "log_list_timestamp": "2022-05-29T12:54:51Z", "operators": [ { "name": "Google",
diff --git a/components/performance_manager/metrics/metrics_collector.cc b/components/performance_manager/metrics/metrics_collector.cc index a0b08d0..b76d6a7 100644 --- a/components/performance_manager/metrics/metrics_collector.cc +++ b/components/performance_manager/metrics/metrics_collector.cc
@@ -5,9 +5,12 @@ #include "components/performance_manager/public/metrics/metrics_collector.h" #include <set> +#include <string> #include "base/metrics/field_trial_params.h" +#include "base/metrics/histogram_functions.h" #include "base/metrics/histogram_macros.h" +#include "base/notreached.h" #include "base/time/time.h" #include "components/performance_manager/public/graph/graph_operations.h" #include "components/performance_manager/public/graph/node_attached_data.h" @@ -15,6 +18,16 @@ namespace performance_manager { +namespace { + +void RecordProcessLifetime(const std::string& histogram_name, + base::TimeDelta lifetime) { + base::UmaHistogramCustomTimes(histogram_name, lifetime, base::Seconds(1), + base::Days(1), 100); +} + +} // namespace + class MetricsReportRecordHolder : public ExternalNodeAttachedDataImpl<MetricsReportRecordHolder> { public: @@ -96,24 +109,21 @@ graph_->GetUkmRecorder()); } +void MetricsCollector::OnProcessLifetimeChange( + const ProcessNode* process_node) { + // Ignore process creation. + if (!process_node->GetExitStatus().has_value()) + return; + + OnProcessDestroyed(process_node); +} + void MetricsCollector::OnBeforeProcessNodeRemoved( const ProcessNode* process_node) { - // Skip non-renderers. - if (process_node->GetProcessType() != content::PROCESS_TYPE_RENDERER) - return; - - const base::TimeDelta lifetime = - base::TimeTicks::Now() - process_node->GetLaunchTime(); - - // Do not record in the rare case system time was adjusted and now < launch - // time. This could also happen if the process was never launched. - if (lifetime <= base::TimeDelta()) - return; - - UMA_HISTOGRAM_CUSTOM_TIMES("Renderer.ProcessLifetime2.HighResolution", - lifetime, base::Seconds(1), base::Minutes(5), 100); - UMA_HISTOGRAM_CUSTOM_TIMES("Renderer.ProcessLifetime2.LowResolution", - lifetime, base::Seconds(1), base::Days(1), 100); + // If the ProcessNode is destroyed with a valid process handle, consider this + // the end of the process' life. + if (process_node->GetProcess().IsValid()) + OnProcessDestroyed(process_node); } void MetricsCollector::OnTitleUpdated(const PageNode* page_node) { @@ -185,4 +195,48 @@ first_title_updated.Reset(); } +void MetricsCollector::OnProcessDestroyed(const ProcessNode* process_node) { + if (process_node->GetProcessType() != content::PROCESS_TYPE_RENDERER) + return; + + base::TimeTicks now = base::TimeTicks::Now(); + base::TimeTicks launch_time = process_node->GetLaunchTime(); + + if (launch_time.is_null()) { + // Terminating a process quickly after initiating its launch (for example + // with FastShutdownIfPossible()) may result in receiving + // RenderProcessHostObserver::RenderProcessExited() without a corresponding + // RenderProcessHostCreationObserver::OnRenderProcessHostCreated(). In this + // case, GetLaunchTime() won't be set. It's correct to report a lifetime of + // 0 in this case. + launch_time = now; + } + + const base::TimeDelta lifetime = now - launch_time; + RecordProcessLifetime("Renderer.ProcessLifetime3", lifetime); + + ProcessNode::ContentTypes content_types = + process_node->GetHostedContentTypes(); + if (content_types.Has(ProcessNode::ContentType::kExtension)) { + RecordProcessLifetime("Renderer.ProcessLifetime3.Extension", lifetime); + } else if (!content_types.Has(ProcessNode::ContentType::kNavigatedFrame)) { + if (content_types.Has(ProcessNode::ContentType::kWorker)) { + RecordProcessLifetime("Renderer.ProcessLifetime3.Worker", lifetime); + } else if (content_types.Has(ProcessNode::ContentType::kMainFrame) || + content_types.Has(ProcessNode::ContentType::kSubframe)) { + RecordProcessLifetime("Renderer.ProcessLifetime3.Speculative", lifetime); + } else { + RecordProcessLifetime("Renderer.ProcessLifetime3.Empty", lifetime); + } + } else if (content_types.Has(ProcessNode::ContentType::kMainFrame)) { + RecordProcessLifetime("Renderer.ProcessLifetime3.MainFrame", lifetime); + } else if (content_types.Has(ProcessNode::ContentType::kAd)) { + RecordProcessLifetime("Renderer.ProcessLifetime3.Subframe_Ad", lifetime); + } else if (content_types.Has(ProcessNode::ContentType::kSubframe)) { + RecordProcessLifetime("Renderer.ProcessLifetime3.Subframe_NoAd", lifetime); + } else { + NOTREACHED(); + } +} + } // namespace performance_manager
diff --git a/components/performance_manager/metrics/metrics_collector_unittest.cc b/components/performance_manager/metrics/metrics_collector_unittest.cc index 3f2db71..eaa2eac 100644 --- a/components/performance_manager/metrics/metrics_collector_unittest.cc +++ b/components/performance_manager/metrics/metrics_collector_unittest.cc
@@ -13,10 +13,15 @@ #include "components/performance_manager/graph/process_node_impl.h" #include "components/performance_manager/test_support/graph_test_harness.h" #include "components/ukm/test_ukm_recorder.h" +#include "testing/gmock/include/gmock/gmock.h" #include "url/gurl.h" namespace performance_manager { +using ContentType = ProcessNode::ContentType; +using testing::ElementsAre; +using testing::Pair; + const base::TimeDelta kTestMetricsReportDelayTimeout = kMetricsReportDelayTimeout + base::Seconds(1); const char kHtmlMimeType[] = "text/html"; @@ -214,4 +219,171 @@ kTabFromBackgroundedToFirstFaviconUpdatedUMA, 1); } +TEST_F(MetricsCollectorTest, ProcessLifetime_LaunchAndExit) { + auto process_node = CreateNode<ProcessNodeImpl>(); + process_node->SetProcess(base::Process::Current(), base::TimeTicks::Now()); + process_node->SetProcessExitStatus(42); + EXPECT_THAT( + histogram_tester_.GetTotalCountsForPrefix("Renderer.ProcessLifetime3"), + ElementsAre(Pair("Renderer.ProcessLifetime3", 1), + Pair("Renderer.ProcessLifetime3.Empty", 1))); +} + +TEST_F(MetricsCollectorTest, ProcessLifetime_LaunchAndDelete) { + auto process_node = CreateNode<ProcessNodeImpl>(); + process_node->SetProcess(base::Process::Current(), base::TimeTicks::Now()); + process_node.reset(); + EXPECT_THAT( + histogram_tester_.GetTotalCountsForPrefix("Renderer.ProcessLifetime3"), + ElementsAre(Pair("Renderer.ProcessLifetime3", 1), + Pair("Renderer.ProcessLifetime3.Empty", 1))); +} + +TEST_F(MetricsCollectorTest, ProcessLifetime_ExitWithoutLaunch) { + auto process_node = CreateNode<ProcessNodeImpl>(); + process_node->SetProcessExitStatus(42); + EXPECT_THAT( + histogram_tester_.GetTotalCountsForPrefix("Renderer.ProcessLifetime3"), + ElementsAre(Pair("Renderer.ProcessLifetime3", 1), + Pair("Renderer.ProcessLifetime3.Empty", 1))); + histogram_tester_.ExpectUniqueTimeSample("Renderer.ProcessLifetime3", + base::TimeDelta(), 1); + histogram_tester_.ExpectUniqueTimeSample("Renderer.ProcessLifetime3.Empty", + base::TimeDelta(), 1); +} + +TEST_F(MetricsCollectorTest, ProcessLifetime_NoLaunchAndNoExit) { + auto process_node = CreateNode<ProcessNodeImpl>(); + process_node.reset(); + EXPECT_THAT( + histogram_tester_.GetTotalCountsForPrefix("Renderer.ProcessLifetime3"), + ElementsAre()); +} + +TEST_F(MetricsCollectorTest, ProcessLifetime_Extension) { + auto process_node = CreateNode<ProcessNodeImpl>(); + process_node->add_hosted_content_type(ContentType::kMainFrame); + process_node->add_hosted_content_type(ContentType::kExtension); + process_node->SetProcess(base::Process::Current(), base::TimeTicks::Now()); + process_node.reset(); + EXPECT_THAT( + histogram_tester_.GetTotalCountsForPrefix("Renderer.ProcessLifetime3"), + ElementsAre(Pair("Renderer.ProcessLifetime3", 1), + Pair("Renderer.ProcessLifetime3.Extension", 1))); +} + +TEST_F(MetricsCollectorTest, ProcessLifetime_Extension_Mixed) { + auto process_node = CreateNode<ProcessNodeImpl>(); + process_node->add_hosted_content_type(ContentType::kMainFrame); + process_node->add_hosted_content_type(ContentType::kExtension); + process_node->add_hosted_content_type(ContentType::kNavigatedFrame); + process_node->add_hosted_content_type(ContentType::kSubframe); + process_node->add_hosted_content_type(ContentType::kExtension); + process_node->add_hosted_content_type(ContentType::kWorker); + process_node->SetProcess(base::Process::Current(), base::TimeTicks::Now()); + process_node.reset(); + EXPECT_THAT( + histogram_tester_.GetTotalCountsForPrefix("Renderer.ProcessLifetime3"), + ElementsAre(Pair("Renderer.ProcessLifetime3", 1), + Pair("Renderer.ProcessLifetime3.Extension", 1))); +} + +TEST_F(MetricsCollectorTest, ProcessLifetime_Worker) { + auto process_node = CreateNode<ProcessNodeImpl>(); + process_node->add_hosted_content_type(ContentType::kWorker); + process_node->SetProcess(base::Process::Current(), base::TimeTicks::Now()); + process_node.reset(); + EXPECT_THAT( + histogram_tester_.GetTotalCountsForPrefix("Renderer.ProcessLifetime3"), + ElementsAre(Pair("Renderer.ProcessLifetime3", 1), + Pair("Renderer.ProcessLifetime3.Worker", 1))); +} + +TEST_F(MetricsCollectorTest, ProcessLifetime_Speculative) { + auto process_node = CreateNode<ProcessNodeImpl>(); + process_node->add_hosted_content_type(ContentType::kMainFrame); + process_node->add_hosted_content_type(ContentType::kSubframe); + process_node->SetProcess(base::Process::Current(), base::TimeTicks::Now()); + process_node.reset(); + EXPECT_THAT( + histogram_tester_.GetTotalCountsForPrefix("Renderer.ProcessLifetime3"), + ElementsAre(Pair("Renderer.ProcessLifetime3", 1), + Pair("Renderer.ProcessLifetime3.Speculative", 1))); +} + +TEST_F(MetricsCollectorTest, ProcessLifetime_Empty) { + auto process_node = CreateNode<ProcessNodeImpl>(); + process_node->SetProcess(base::Process::Current(), base::TimeTicks::Now()); + process_node.reset(); + EXPECT_THAT( + histogram_tester_.GetTotalCountsForPrefix("Renderer.ProcessLifetime3"), + ElementsAre(Pair("Renderer.ProcessLifetime3", 1), + Pair("Renderer.ProcessLifetime3.Empty", 1))); +} + +TEST_F(MetricsCollectorTest, ProcessLifetime_MainFrame) { + auto process_node = CreateNode<ProcessNodeImpl>(); + process_node->add_hosted_content_type(ContentType::kMainFrame); + process_node->add_hosted_content_type(ContentType::kNavigatedFrame); + process_node->SetProcess(base::Process::Current(), base::TimeTicks::Now()); + process_node.reset(); + EXPECT_THAT( + histogram_tester_.GetTotalCountsForPrefix("Renderer.ProcessLifetime3"), + ElementsAre(Pair("Renderer.ProcessLifetime3", 1), + Pair("Renderer.ProcessLifetime3.MainFrame", 1))); +} + +TEST_F(MetricsCollectorTest, ProcessLifetime_MainFrame_Mixed) { + auto process_node = CreateNode<ProcessNodeImpl>(); + process_node->add_hosted_content_type(ContentType::kMainFrame); + process_node->add_hosted_content_type(ContentType::kNavigatedFrame); + process_node->add_hosted_content_type(ContentType::kSubframe); + process_node->add_hosted_content_type(ContentType::kAd); + process_node->add_hosted_content_type(ContentType::kWorker); + process_node->SetProcess(base::Process::Current(), base::TimeTicks::Now()); + process_node.reset(); + EXPECT_THAT( + histogram_tester_.GetTotalCountsForPrefix("Renderer.ProcessLifetime3"), + ElementsAre(Pair("Renderer.ProcessLifetime3", 1), + Pair("Renderer.ProcessLifetime3.MainFrame", 1))); +} + +TEST_F(MetricsCollectorTest, ProcessLifetime_Subframe_Ad) { + auto process_node = CreateNode<ProcessNodeImpl>(); + process_node->add_hosted_content_type(ContentType::kSubframe); + process_node->add_hosted_content_type(ContentType::kAd); + process_node->add_hosted_content_type(ContentType::kNavigatedFrame); + process_node->SetProcess(base::Process::Current(), base::TimeTicks::Now()); + process_node.reset(); + EXPECT_THAT( + histogram_tester_.GetTotalCountsForPrefix("Renderer.ProcessLifetime3"), + ElementsAre(Pair("Renderer.ProcessLifetime3", 1), + Pair("Renderer.ProcessLifetime3.Subframe_Ad", 1))); +} + +TEST_F(MetricsCollectorTest, ProcessLifetime_Subframe_NoAd) { + auto process_node = CreateNode<ProcessNodeImpl>(); + process_node->add_hosted_content_type(ContentType::kSubframe); + process_node->add_hosted_content_type(ContentType::kNavigatedFrame); + process_node->SetProcess(base::Process::Current(), base::TimeTicks::Now()); + process_node.reset(); + EXPECT_THAT( + histogram_tester_.GetTotalCountsForPrefix("Renderer.ProcessLifetime3"), + ElementsAre(Pair("Renderer.ProcessLifetime3", 1), + Pair("Renderer.ProcessLifetime3.Subframe_NoAd", 1))); +} + +TEST_F(MetricsCollectorTest, ProcessLifetime_Subframe_NoAd_Mixed) { + auto process_node = CreateNode<ProcessNodeImpl>(); + process_node->add_hosted_content_type(ContentType::kSubframe); + process_node->add_hosted_content_type(ContentType::kNavigatedFrame); + process_node->add_hosted_content_type(ContentType::kWorker); + process_node->SetProcess(base::Process::Current(), base::TimeTicks::Now()); + process_node.reset(); + EXPECT_THAT( + histogram_tester_.GetTotalCountsForPrefix("Renderer.ProcessLifetime3"), + ElementsAre(Pair("Renderer.ProcessLifetime3", 1), + Pair("Renderer.ProcessLifetime3.Subframe_NoAd", 1))); +} + } // namespace performance_manager
diff --git a/components/performance_manager/public/metrics/metrics_collector.h b/components/performance_manager/public/metrics/metrics_collector.h index bca57824..7d501ac 100644 --- a/components/performance_manager/public/metrics/metrics_collector.h +++ b/components/performance_manager/public/metrics/metrics_collector.h
@@ -52,6 +52,7 @@ void OnTitleUpdated(const PageNode* page_node) override; // ProcessNodeObserver implementation: + void OnProcessLifetimeChange(const ProcessNode* process_node) override; void OnBeforeProcessNodeRemoved(const ProcessNode* process_node) override; protected: @@ -98,7 +99,9 @@ bool ShouldReportMetrics(const PageNode* page_node); void UpdateUkmSourceIdForPage(const PageNode* page_node, ukm::SourceId ukm_source_id); - void ResetMetricsReportRecord(const PageNode* page_nod); + void ResetMetricsReportRecord(const PageNode* page_node); + + void OnProcessDestroyed(const ProcessNode* process_node); // The graph to which this object belongs. raw_ptr<Graph> graph_ = nullptr;
diff --git a/components/services/app_service/app_service_mojom_impl.cc b/components/services/app_service/app_service_mojom_impl.cc index e1203e91..c76a80f 100644 --- a/components/services/app_service/app_service_mojom_impl.cc +++ b/components/services/app_service/app_service_mojom_impl.cc
@@ -291,7 +291,8 @@ apps::mojom::AppType app_type, const std::string& app_id) { if (preferred_apps_impl_) { - preferred_apps_impl_->RemoveSupportedLinksPreference(app_type, app_id); + preferred_apps_impl_->RemoveSupportedLinksPreference( + ConvertMojomAppTypToAppType(app_type), app_id); } }
diff --git a/components/services/app_service/public/cpp/preferred_apps_impl.cc b/components/services/app_service/public/cpp/preferred_apps_impl.cc index 9e46a6e..be301ba 100644 --- a/components/services/app_service/public/cpp/preferred_apps_impl.cc +++ b/components/services/app_service/public/cpp/preferred_apps_impl.cc
@@ -135,7 +135,7 @@ } void PreferredAppsImpl::RemoveSupportedLinksPreference( - apps::mojom::AppType app_type, + AppType app_type, const std::string& app_id) { RunAfterPreferredAppsReady( base::BindOnce(&PreferredAppsImpl::RemoveSupportedLinksPreferenceImpl, @@ -389,9 +389,8 @@ } } void PreferredAppsImpl::RemoveSupportedLinksPreferenceImpl( - apps::mojom::AppType mojom_app_type, + AppType app_type, const std::string& app_id) { - AppType app_type = ConvertMojomAppTypToAppType(mojom_app_type); if (!host_->HasPublisher(app_type)) { return; }
diff --git a/components/services/app_service/public/cpp/preferred_apps_impl.h b/components/services/app_service/public/cpp/preferred_apps_impl.h index f775345..546c41a 100644 --- a/components/services/app_service/public/cpp/preferred_apps_impl.h +++ b/components/services/app_service/public/cpp/preferred_apps_impl.h
@@ -83,7 +83,7 @@ apps::mojom::AppType app_type, const std::string& app_id, std::vector<apps::mojom::IntentFilterPtr> all_link_filters); - void RemoveSupportedLinksPreference(apps::mojom::AppType app_type, + void RemoveSupportedLinksPreference(AppType app_type, const std::string& app_id); const PreferredAppsList& preferred_apps_list() const { @@ -125,7 +125,7 @@ apps::mojom::AppType app_type, const std::string& app_id, std::vector<apps::mojom::IntentFilterPtr> all_link_filters); - void RemoveSupportedLinksPreferenceImpl(apps::mojom::AppType app_type, + void RemoveSupportedLinksPreferenceImpl(AppType app_type, const std::string& app_id); // `host_` owns `this`.
diff --git a/components/strings/components_strings_bg.xtb b/components/strings/components_strings_bg.xtb index e4db976..dcafa15 100644 --- a/components/strings/components_strings_bg.xtb +++ b/components/strings/components_strings_bg.xtb
@@ -482,6 +482,7 @@ <translation id="2215963164070968490">Кучета</translation> <translation id="2218879909401188352">Понастоящем извършители на атака срещу <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" /> могат да инсталират опасни приложения, които да повредят устройството ви, да добавят скрити такси към сметката ви за мобилни услуги или да откраднат личната ви информация. <ph name="BEGIN_LEARN_MORE_LINK" />Научете повече<ph name="END_LEARN_MORE_LINK" /></translation> <translation id="2219658597883514593">Рестартиране на урока</translation> +<translation id="2219735899272417925">Изисква се нулиране на устройството</translation> <translation id="2224337661447660594">Няма достъп до интернет</translation> <translation id="2230458221926704099">Поправете връзката си посредством <ph name="BEGIN_LINK" />приложението за диагностика<ph name="END_LINK" /></translation> <translation id="2239100178324503013">Изпращане сега</translation>
diff --git a/components/strings/components_strings_en-GB.xtb b/components/strings/components_strings_en-GB.xtb index ef39feec..ed77c33 100644 --- a/components/strings/components_strings_en-GB.xtb +++ b/components/strings/components_strings_en-GB.xtb
@@ -483,6 +483,7 @@ <translation id="2215963164070968490">Dogs</translation> <translation id="2218879909401188352">Attackers currently on <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" /> could install dangerous apps that damage your device, add hidden charges to your mobile bill or steal your personal information. <ph name="BEGIN_LEARN_MORE_LINK" />Learn more<ph name="END_LEARN_MORE_LINK" /></translation> <translation id="2219658597883514593">Restart tutorial</translation> +<translation id="2219735899272417925">Device reset required</translation> <translation id="2224337661447660594">No Internet</translation> <translation id="2230458221926704099">Fix your connection using the <ph name="BEGIN_LINK" />diagnostics app<ph name="END_LINK" /></translation> <translation id="2239100178324503013">Send now</translation>
diff --git a/components/subresource_filter/content/browser/ad_tagging_browser_test_utils.cc b/components/subresource_filter/content/browser/ad_tagging_browser_test_utils.cc index fb7520ea..138c50a 100644 --- a/components/subresource_filter/content/browser/ad_tagging_browser_test_utils.cc +++ b/components/subresource_filter/content/browser/ad_tagging_browser_test_utils.cc
@@ -36,7 +36,9 @@ std::string ad_type = ad_script ? "Ad" : ""; RenderFrameHost* previous_most_recent_fenced_frame = - FencedFrameTestHelper::GetMostRecentlyAddedFencedFrame(rfh); + is_fenced_frame + ? FencedFrameTestHelper::GetMostRecentlyAddedFencedFrame(rfh) + : nullptr; if (is_prerender) { // TODO(bokan): We must avoid using a TestNavigationObserver if executing
diff --git a/content/browser/fenced_frame/fenced_frame_browsertest.cc b/content/browser/fenced_frame/fenced_frame_browsertest.cc index caab0239..b940005 100644 --- a/content/browser/fenced_frame/fenced_frame_browsertest.cc +++ b/content/browser/fenced_frame/fenced_frame_browsertest.cc
@@ -1047,11 +1047,8 @@ protected: FencedFrameNestedFrameBrowserTest() { if (std::get<1>(GetParam())) { - feature_list_.InitWithFeaturesAndParameters( - {{blink::features::kFencedFrames, - {{"implementation_type", "shadow_dom"}}}, - {features::kPrivacySandboxAdsAPIsOverride, {}}}, - {/* disabled_features */}); + fenced_frame_helper_ = std::make_unique<test::FencedFrameTestHelper>( + test::FencedFrameTestHelper::FencedFrameType::kShadowDOM); } else { fenced_frame_helper_ = std::make_unique<test::FencedFrameTestHelper>(); } @@ -1104,27 +1101,8 @@ "/fenced_frames/title1.html?depth=" + base::NumberToString(depth)); if (IsFencedFrameType(type)) { - if (fenced_frame_helper_) { - return static_cast<RenderFrameHostImpl*>( - fenced_frame_helper_->CreateFencedFrame(parent, url)); - } - // FencedFrameTestHelper only supports the MPArch version of fenced - // frames. So need to maually create a fenced frame for the ShadowDOM - // version. - constexpr char kAddFencedFrameScript[] = R"({ - frame = document.createElement('fencedframe'); - document.body.appendChild(frame); - })"; - EXPECT_TRUE(ExecJs(parent, kAddFencedFrameScript)); - constexpr char kNavigateFencedFrameScript[] = R"({ - document.body.getElementsByTagName('fencedframe')[0].src = $1; - })"; - RenderFrameHostImpl* rfh = static_cast<RenderFrameHostImpl*>( - parent->child_at(0)->current_frame_host()); - TestFrameNavigationObserver observer(rfh); - EXPECT_TRUE(ExecJs(parent, JsReplace(kNavigateFencedFrameScript, url))); - observer.Wait(); - return static_cast<RenderFrameHostImpl*>(ChildFrameAt(parent, 0)); + return static_cast<RenderFrameHostImpl*>( + fenced_frame_helper_->CreateFencedFrame(parent, url)); } EXPECT_TRUE(ExecJs(parent, JsReplace(kAddIframeScript, url)));
diff --git a/content/public/test/fenced_frame_test_util.cc b/content/public/test/fenced_frame_test_util.cc index ddf4e79..6f075ae 100644 --- a/content/public/test/fenced_frame_test_util.cc +++ b/content/public/test/fenced_frame_test_util.cc
@@ -35,11 +35,20 @@ } // namespace -FencedFrameTestHelper::FencedFrameTestHelper() { - scoped_feature_list_.InitWithFeaturesAndParameters( - {{blink::features::kFencedFrames, {{"implementation_type", "mparch"}}}, - {features::kPrivacySandboxAdsAPIsOverride, {}}}, - {/* disabled_features */}); +FencedFrameTestHelper::FencedFrameTestHelper(FencedFrameType type) + : type_(type) { + if (type == FencedFrameType::kMPArch) { + scoped_feature_list_.InitWithFeaturesAndParameters( + {{blink::features::kFencedFrames, {{"implementation_type", "mparch"}}}, + {features::kPrivacySandboxAdsAPIsOverride, {}}}, + {/* disabled_features */}); + } else { + scoped_feature_list_.InitWithFeaturesAndParameters( + {{blink::features::kFencedFrames, + {{"implementation_type", "shadow_dom"}}}, + {features::kPrivacySandboxAdsAPIsOverride, {}}}, + {/* disabled_features */}); + } } FencedFrameTestHelper::~FencedFrameTestHelper() = default; @@ -52,25 +61,37 @@ "fenced_frame_parent", fenced_frame_parent, "url", url); RenderFrameHostImpl* fenced_frame_parent_rfh = static_cast<RenderFrameHostImpl*>(fenced_frame_parent); + RenderFrameHostImpl* fenced_frame_rfh; + if (type_ == FencedFrameType::kMPArch) { + size_t previous_fenced_frame_count = + fenced_frame_parent_rfh->GetFencedFrames().size(); - size_t previous_fenced_frame_count = - fenced_frame_parent_rfh->GetFencedFrames().size(); + EXPECT_TRUE(ExecJs(fenced_frame_parent_rfh, + JsReplace(kAddFencedFrameScript), + EvalJsOptions::EXECUTE_SCRIPT_NO_USER_GESTURE)); - EXPECT_TRUE(ExecJs(fenced_frame_parent_rfh, JsReplace(kAddFencedFrameScript), - EvalJsOptions::EXECUTE_SCRIPT_NO_USER_GESTURE)); + std::vector<FencedFrame*> fenced_frames = + fenced_frame_parent_rfh->GetFencedFrames(); + EXPECT_EQ(previous_fenced_frame_count + 1, fenced_frames.size()); - std::vector<FencedFrame*> fenced_frames = - fenced_frame_parent_rfh->GetFencedFrames(); - EXPECT_EQ(previous_fenced_frame_count + 1, fenced_frames.size()); - - FencedFrame* fenced_frame = fenced_frames.back(); - // It is possible that we got the did stop loading notification because the - // fenced frame was actually being destroyed. Check to make sure that's not - // the case. TODO(crbug.com/1123606): Consider weakly referencing the fenced - // frame if the removal-and-stop-loading scenario is a useful one to test. - EXPECT_EQ(previous_fenced_frame_count + 1, - fenced_frame_parent_rfh->GetFencedFrames().size()); - return NavigateFrameInFencedFrameTree(fenced_frame->GetInnerRoot(), url, + FencedFrame* fenced_frame = fenced_frames.back(); + // It is possible that we got the did stop loading notification because the + // fenced frame was actually being destroyed. Check to make sure that's not + // the case. TODO(crbug.com/1123606): Consider weakly referencing the fenced + // frame if the removal-and-stop-loading scenario is a useful one to test. + EXPECT_EQ(previous_fenced_frame_count + 1, + fenced_frame_parent_rfh->GetFencedFrames().size()); + fenced_frame_rfh = fenced_frame->GetInnerRoot(); + } else { + EXPECT_TRUE(ExecJs(fenced_frame_parent_rfh, + JsReplace(kAddFencedFrameScript), + EvalJsOptions::EXECUTE_SCRIPT_NO_USER_GESTURE)); + fenced_frame_rfh = static_cast<RenderFrameHostImpl*>( + fenced_frame_parent_rfh + ->child_at(fenced_frame_parent_rfh->child_count() - 1) + ->current_frame_host()); + } + return NavigateFrameInFencedFrameTree(fenced_frame_rfh, url, expected_error_code); } @@ -108,12 +129,27 @@ // static RenderFrameHost* FencedFrameTestHelper::GetMostRecentlyAddedFencedFrame( RenderFrameHost* rfh) { - std::vector<FencedFrame*> fenced_frames = - static_cast<RenderFrameHostImpl*>(rfh)->GetFencedFrames(); - if (fenced_frames.empty()) + if (blink::features::kFencedFramesImplementationTypeParam.Get() == + blink::features::FencedFramesImplementationType::kMPArch) { + std::vector<FencedFrame*> fenced_frames = + static_cast<RenderFrameHostImpl*>(rfh)->GetFencedFrames(); + if (fenced_frames.empty()) + return nullptr; + return fenced_frames.back()->GetInnerRoot(); + } + if (blink::features::kFencedFramesImplementationTypeParam.Get() == + blink::features::FencedFramesImplementationType::kShadowDOM) { + RenderFrameHostImpl* parent_rfh = static_cast<RenderFrameHostImpl*>(rfh); + for (size_t i = 0, ff_index = parent_rfh->child_count() - 1; + i < parent_rfh->child_count(); ++i, --ff_index) { + RenderFrameHost* child_rfh = + parent_rfh->child_at(ff_index)->current_frame_host(); + if (child_rfh->IsFencedFrameRoot()) + return child_rfh; + } return nullptr; - - return fenced_frames.back()->GetInnerRoot(); + } + return nullptr; } GURL CreateFencedFrameURLMapping(RenderFrameHost* rfh, const GURL& url) {
diff --git a/content/public/test/fenced_frame_test_util.h b/content/public/test/fenced_frame_test_util.h index c5c31a3..0025d3b 100644 --- a/content/public/test/fenced_frame_test_util.h +++ b/content/public/test/fenced_frame_test_util.h
@@ -18,11 +18,13 @@ namespace test { // Browser tests can use this class to more conveniently leverage fenced frames. -// Note that this only applies to the MPArch version of fenced frames, and not -// fenced frames based on the ShadowDOM architecture. +// Note that this applies to both the MPArch and ShadowDOM version of fenced +// frames. class FencedFrameTestHelper { public: - FencedFrameTestHelper(); + enum class FencedFrameType { kShadowDOM, kMPArch }; + explicit FencedFrameTestHelper( + FencedFrameType type = FencedFrameType::kMPArch); ~FencedFrameTestHelper(); FencedFrameTestHelper(const FencedFrameTestHelper&) = delete; FencedFrameTestHelper& operator=(const FencedFrameTestHelper&) = delete; @@ -58,10 +60,12 @@ // Returns the last created fenced frame. This can be used by embedders who // must create fenced frames from script but need to get the fence frame's // inner root RenderFrameHost. + // This method will return nullptr if no fenced frames were created. static RenderFrameHost* GetMostRecentlyAddedFencedFrame(RenderFrameHost* rfh); private: base::test::ScopedFeatureList scoped_feature_list_; + FencedFrameType type_; }; // This helper method creates a fenced frame urn to url mapping and returns the
diff --git a/extensions/browser/api/networking_private/BUILD.gn b/extensions/browser/api/networking_private/BUILD.gn index 693e4b58..cf1cd750 100644 --- a/extensions/browser/api/networking_private/BUILD.gn +++ b/extensions/browser/api/networking_private/BUILD.gn
@@ -61,6 +61,7 @@ "networking_private_event_router_chromeos.cc", ] deps += [ + "//chromeos/ash/components/network/portal_detector", "//chromeos/components/onc", "//chromeos/login/login_state", "//chromeos/network",
diff --git a/extensions/browser/api/networking_private/networking_private_chromeos.cc b/extensions/browser/api/networking_private/networking_private_chromeos.cc index 554c7ce..4a3ba73d 100644 --- a/extensions/browser/api/networking_private/networking_private_chromeos.cc +++ b/extensions/browser/api/networking_private/networking_private_chromeos.cc
@@ -14,6 +14,7 @@ #include "base/values.h" #include "chromeos/ash/components/network/onc/network_onc_utils.h" #include "chromeos/ash/components/network/onc/onc_translator.h" +#include "chromeos/ash/components/network/portal_detector/network_portal_detector.h" #include "chromeos/components/onc/onc_signature.h" #include "chromeos/login/login_state/login_state.h" #include "chromeos/network/device_state.h" @@ -26,7 +27,6 @@ #include "chromeos/network/network_state.h" #include "chromeos/network/network_state_handler.h" #include "chromeos/network/network_util.h" -#include "chromeos/network/portal_detector/network_portal_detector.h" #include "components/onc/onc_constants.h" #include "components/proxy_config/proxy_prefs.h" #include "content/public/browser/browser_context.h"
diff --git a/ios/chrome/app/strings/resources/ios_strings_ms.xtb b/ios/chrome/app/strings/resources/ios_strings_ms.xtb index 9fc67a1a..74e5dd2 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ms.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ms.xtb
@@ -250,6 +250,7 @@ Lihat arahan enjin carian anda untuk memadamkan sejarah carian anda, jika berkenaan.</translation> <translation id="3080525922482950719">Anda boleh menyimpan halaman untuk dibaca kemudian atau secara luar talian</translation> <translation id="3081338492074632642">Pastikan kata laluan yang anda simpan sepadan dengan kata laluan anda untuk <ph name="WEBSITE" /></translation> +<translation id="3103603146121354983">Autolengkap Kata Laluan</translation> <translation id="3112556859945124369">Tandakan...</translation> <translation id="3122484138405575719"><ph name="BEGIN_LINK" />Lihat Item Yang Boleh Anda Segerakkan<ph name="END_LINK" />.</translation> <translation id="3131206671572504478">Sekat Semua</translation> @@ -661,6 +662,7 @@ Cuba gunakan kata laluan yang unik untuk setiap laman.</translation> <translation id="650279896687777322">Ketahui Lebih Lanjut...</translation> +<translation id="6510072653668207258">Ingatkan Saya Kemudian</translation> <translation id="651505212789431520">Batalkan Penyegerakan? Anda boleh menghidupkan penyegerakan pada bila-bila masa dalam Tetapan.</translation> <translation id="6524918542306337007">Mod Inkognito Tidak Tersedia</translation> <translation id="6530992499366869131">Beri Amaran Kepada Anda jika Kata Laluan Terdedah dalam Pelanggaran Data</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_uz.xtb b/ios/chrome/app/strings/resources/ios_strings_uz.xtb index bb6f657..15e4ac22 100644 --- a/ios/chrome/app/strings/resources/ios_strings_uz.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_uz.xtb
@@ -250,6 +250,7 @@ Imkon boʻlsa, qidiruv tarixini qanday tozalash haqidagi qidiruv tizimi koʻrsatmalarini oching.</translation> <translation id="3080525922482950719">Sahifalarni keyinroq yoki oflayn mutolaa qilish uchun saqlashingiz mumkin</translation> <translation id="3081338492074632642">Saqlayotgan parolingiz <ph name="WEBSITE" /> uchun mos kelishini tekshiring</translation> +<translation id="3103603146121354983">Parollarni avtomatik kiritish</translation> <translation id="3112556859945124369">Belgilash…</translation> <translation id="3122484138405575719"><ph name="BEGIN_LINK" />Nimalarni sinxronlash mumkin<ph name="END_LINK" /></translation> <translation id="3131206671572504478">Hammasini bloklash</translation> @@ -661,6 +662,7 @@ Har bir sayt uchun alohida parol ishlating.</translation> <translation id="650279896687777322">Batafsil...</translation> +<translation id="6510072653668207258">Keyinroq eslatilsin</translation> <translation id="651505212789431520">Sinxronizatsiya bekor qilinsinmi? Sinxronizatsiyani istalgan vaqtda Sozlamalardan yoqish mumkin.</translation> <translation id="6524918542306337007">Inkognito rejimi ishlamayapti</translation> <translation id="6530992499366869131">Parolim oshkor etilganda ogohlantirilsin</translation>
diff --git a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.ios.zip.sha1 b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.ios.zip.sha1 index d73c1e7..926fe014 100644 --- a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.ios.zip.sha1 +++ b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.ios.zip.sha1
@@ -1 +1 @@ -ab44cf1ff98006f57b4920cf2616f895c18f4c4e \ No newline at end of file +f50ad10b4d9207c5eb42bdcd46680c7a0ae8c89c \ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.iossimulator.zip.sha1 b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.iossimulator.zip.sha1 index fe1738c7..47e80ad2 100644 --- a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.iossimulator.zip.sha1 +++ b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.iossimulator.zip.sha1
@@ -1 +1 @@ -1c8433ff373a896dbb1399f86340f2630fcd7a8d \ No newline at end of file +10419ff61376fcaf3a3e7e69c5d0c90cff7dca66 \ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.ios.zip.sha1 b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.ios.zip.sha1 index 26669b47..e8dc57c 100644 --- a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.ios.zip.sha1 +++ b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.ios.zip.sha1
@@ -1 +1 @@ -6186a9f909bbc6bf3bc44d4bf9e6f1cf290905f1 \ No newline at end of file +8585721cea4e80ae98924723dea48a202ccb2586 \ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.iossimulator.zip.sha1 b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.iossimulator.zip.sha1 index 95938731..d3081b1 100644 --- a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.iossimulator.zip.sha1 +++ b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.iossimulator.zip.sha1
@@ -1 +1 @@ -ac36ebce7483ed4434dd181188531c76b0d360e0 \ No newline at end of file +dbadb508fc68454469e22f355a01de6240e15714 \ No newline at end of file
diff --git a/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.ios.zip.sha1 b/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.ios.zip.sha1 index 9c36140..2b168d5 100644 --- a/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.ios.zip.sha1 +++ b/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.ios.zip.sha1
@@ -1 +1 @@ -19ca25ffd0ebc82035ded6f73162c2a643fdcd70 \ No newline at end of file +9347181c2b2317dddbad23b1091f7d968e2b98d1 \ No newline at end of file
diff --git a/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.iossimulator.zip.sha1 b/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.iossimulator.zip.sha1 index e0ac15f5..fbc80eae 100644 --- a/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.iossimulator.zip.sha1 +++ b/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.iossimulator.zip.sha1
@@ -1 +1 @@ -a4a6c0684095ee00f7e36863fe2abdea5f60f8f2 \ No newline at end of file +d34e4841bf4289b1f1284bab52c7fc2451f8835d \ No newline at end of file
diff --git a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.ios.zip.sha1 b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.ios.zip.sha1 index e2b4620..d02ba8c8 100644 --- a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.ios.zip.sha1 +++ b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.ios.zip.sha1
@@ -1 +1 @@ -f6f4023250bfe97b0f858304197dad37a433f735 \ No newline at end of file +ae056876cced57265ecf6f955faa9c7b896ab21f \ No newline at end of file
diff --git a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.iossimulator.zip.sha1 b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.iossimulator.zip.sha1 index 9ebcc2f2..9c54e4a 100644 --- a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.iossimulator.zip.sha1 +++ b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.iossimulator.zip.sha1
@@ -1 +1 @@ -c173b14b0a89a9bc9db6cbb407880308244045b9 \ No newline at end of file +4027327213cff89a221cae6cd518256f6ef27b38 \ No newline at end of file
diff --git a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.ios.zip.sha1 b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.ios.zip.sha1 index bbd9d88..02146a2 100644 --- a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.ios.zip.sha1 +++ b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.ios.zip.sha1
@@ -1 +1 @@ -51f6ab9f56735daff38dd7a43a6b24a84498151c \ No newline at end of file +117c529c5c72be62501873c9f5ca6c25f1137840 \ No newline at end of file
diff --git a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.iossimulator.zip.sha1 b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.iossimulator.zip.sha1 index 8f5033d..7f1dbec 100644 --- a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.iossimulator.zip.sha1 +++ b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.iossimulator.zip.sha1
@@ -1 +1 @@ -a830df8732b7f202ddef3b36cec65c9017d45713 \ No newline at end of file +c0d7937230eec117c0b98d5079b27fd2d80493b5 \ No newline at end of file
diff --git a/net/http/http_cache_transaction.cc b/net/http/http_cache_transaction.cc index e89c745..2dd2dc6e 100644 --- a/net/http/http_cache_transaction.cc +++ b/net/http/http_cache_transaction.cc
@@ -52,6 +52,7 @@ #include "net/http/http_log_util.h" #include "net/http/http_network_session.h" #include "net/http/http_request_info.h" +#include "net/http/http_status_code.h" #include "net/http/http_util.h" #include "net/http/webfonts_histogram.h" #include "net/log/net_log_event_type.h" @@ -1508,7 +1509,7 @@ } entry_ = new_entry_; - DCHECK_NE(response_.headers->response_code(), 304); + DCHECK_NE(response_.headers->response_code(), net::HTTP_NOT_MODIFIED); DCHECK(cache_->CanTransactionWriteResponseHeaders( entry_, this, partial_ != nullptr, false)); TransitionToState(STATE_CACHE_WRITE_RESPONSE); @@ -1582,7 +1583,8 @@ // the following logic is put in place to defer such requests to the // network. The cache should not be storing multi gigabyte resources. See // http://crbug.com/89567. - if ((truncated_ || response_.headers->response_code() == 206) && + if ((truncated_ || + response_.headers->response_code() == net::HTTP_PARTIAL_CONTENT) && !range_requested_ && full_response_length > std::numeric_limits<int32_t>::max()) { DCHECK(!partial_); @@ -1865,8 +1867,9 @@ DCHECK(!new_response_); const HttpResponseInfo* new_response = network_trans_->GetResponseInfo(); - if (new_response->headers->response_code() == 401 || - new_response->headers->response_code() == 407) { + if (new_response->headers->response_code() == net::HTTP_UNAUTHORIZED || + new_response->headers->response_code() == + net::HTTP_PROXY_AUTHENTICATION_REQUIRED) { SetAuthResponse(*new_response); if (!reading_) { TransitionToState(STATE_FINISH_HEADERS); @@ -1958,7 +1961,8 @@ request_->is_subframe_document_resource); } - if (new_response_->headers->response_code() == 416 && + if (new_response_->headers->response_code() == + net::HTTP_REQUESTED_RANGE_NOT_SATISFIABLE && (method_ == "GET" || method_ == "POST")) { // If there is an active entry it may be destroyed with this transaction. SetResponse(*new_response_); @@ -1968,7 +1972,8 @@ // Are we expecting a response to a conditional query? if (mode_ == READ_WRITE || mode_ == UPDATE) { - if (new_response->headers->response_code() == 304 || handling_206_) { + if (new_response->headers->response_code() == net::HTTP_NOT_MODIFIED || + handling_206_) { UpdateCacheEntryStatus(CacheEntryStatus::ENTRY_VALIDATED); TransitionToState(STATE_UPDATE_CACHED_RESPONSE); return OK; @@ -2147,7 +2152,7 @@ // Invalidate any current entry with a successful response if this transaction // cannot write to this entry. This transaction then continues to read from // the network without writing to the backend. - bool is_match = response_.headers->response_code() == 304; + bool is_match = response_.headers->response_code() == net::HTTP_NOT_MODIFIED; if (entry_ && !cache_->CanTransactionWriteResponseHeaders( entry_, this, partial_ != nullptr, is_match)) { done_headers_create_new_entry_ = true; @@ -2657,7 +2662,8 @@ int HttpCache::Transaction::BeginCacheRead() { // We don't support any combination of LOAD_ONLY_FROM_CACHE and byte ranges. // TODO(jkarlin): Either handle this case or DCHECK. - if (response_.headers->response_code() == 206 || partial_) { + if (response_.headers->response_code() == net::HTTP_PARTIAL_CONTENT || + partial_) { NOTREACHED(); TransitionToState(STATE_FINISH_HEADERS); return ERR_CACHE_MISS; @@ -2698,8 +2704,8 @@ response_.stale_revalidate_timeout.is_null(); } - if (method_ == "HEAD" && - (truncated_ || response_.headers->response_code() == 206)) { + if (method_ == "HEAD" && (truncated_ || response_.headers->response_code() == + net::HTTP_PARTIAL_CONTENT)) { DCHECK(!partial_); if (skip_validation) { DCHECK(!reading_); @@ -2763,7 +2769,7 @@ if (partial_) return DoRestartPartialRequest(); - DCHECK_NE(206, response_.headers->response_code()); + DCHECK_NE(net::HTTP_PARTIAL_CONTENT, response_.headers->response_code()); } TransitionToState(STATE_SEND_REQUEST); } @@ -2773,7 +2779,8 @@ int HttpCache::Transaction::BeginPartialCacheValidation() { DCHECK_EQ(mode_, READ_WRITE); - if (response_.headers->response_code() != 206 && !partial_ && !truncated_) + if (response_.headers->response_code() != net::HTTP_PARTIAL_CONTENT && + !partial_ && !truncated_) return BeginCacheValidation(); // Partial requests should not be recorded in histograms. @@ -2806,7 +2813,7 @@ return DoRestartPartialRequest(); } - if (response_.headers->response_code() == 206) + if (response_.headers->response_code() == net::HTTP_PARTIAL_CONTENT) is_sparse_ = true; if (!partial_->IsRequestedRangeOK()) { @@ -2843,7 +2850,7 @@ int HttpCache::Transaction::BeginExternallyConditionalizedRequest() { DCHECK_EQ(UPDATE, mode_); - if (response_.headers->response_code() != 200 || truncated_ || + if (response_.headers->response_code() != net::HTTP_OK || truncated_ || !ExternallyConditionalizedValidationHeadersMatchEntry()) { // The externally conditionalized request is not a validation request // for our existing cache entry. Proceed with caching disabled. @@ -2968,8 +2975,8 @@ DCHECK(response_.headers.get()); // This only makes sense for cached 200 or 206 responses. - if (response_.headers->response_code() != 200 && - response_.headers->response_code() != 206) { + if (response_.headers->response_code() != net::HTTP_OK && + response_.headers->response_code() != net::HTTP_PARTIAL_CONTENT) { return false; } @@ -3009,7 +3016,7 @@ if (!IsResponseConditionalizable(&etag_value, &last_modified_value)) return false; - DCHECK(response_.headers->response_code() != 206 || + DCHECK(response_.headers->response_code() != net::HTTP_PARTIAL_CONTENT || response_.headers->HasStrongValidators()); if (vary_mismatch_) { @@ -3122,7 +3129,7 @@ bool HttpCache::Transaction::ValidatePartialResponse() { const HttpResponseHeaders* headers = new_response_->headers.get(); int response_code = headers->response_code(); - bool partial_response = (response_code == 206); + bool partial_response = (response_code == net::HTTP_PARTIAL_CONTENT); handling_206_ = false; if (!entry_ || method_ != "GET") @@ -3133,11 +3140,11 @@ // server is ok with the request, delete the entry, otherwise just ignore // this request DCHECK(!reading_); - if (partial_response || response_code == 200) { + if (partial_response || response_code == net::HTTP_OK) { DoomPartialEntry(true); mode_ = NONE; } else { - if (response_code == 304) { + if (response_code == net::HTTP_NOT_MODIFIED) { // Change the response code of the request to be 416 (Requested range // not satisfiable). SetResponse(*new_response_); @@ -3157,14 +3164,16 @@ } // TODO(rvargas): Do we need to consider other results here?. - bool failure = response_code == 200 || response_code == 416; + bool failure = response_code == net::HTTP_OK || + response_code == net::HTTP_REQUESTED_RANGE_NOT_SATISFIABLE; if (partial_->IsCurrentRangeCached()) { // We asked for "If-None-Match: " so a 206 means a new object. if (partial_response) failure = true; - if (response_code == 304 && partial_->ResponseHeadersOK(headers)) + if (response_code == net::HTTP_NOT_MODIFIED && + partial_->ResponseHeadersOK(headers)) return true; } else { // We asked for "If-Range: " so a 206 means just another range. @@ -3182,8 +3191,9 @@ // If the server sends 200, just store it. If it sends an error, redirect // or something else, we may store the response as long as we didn't have // anything already stored. - if (response_code == 200 || - (!truncated_ && response_code != 304 && response_code != 416)) { + if (response_code == net::HTTP_OK || + (!truncated_ && response_code != net::HTTP_NOT_MODIFIED && + response_code != net::HTTP_REQUESTED_RANGE_NOT_SATISFIABLE)) { // The server is sending something else, and we can save it. DCHECK((truncated_ && !partial_->IsLastRange()) || range_requested_); partial_.reset(); @@ -3290,7 +3300,7 @@ } void HttpCache::Transaction::FixHeadersForHead() { - if (response_.headers->response_code() == 206) { + if (response_.headers->response_code() == net::HTTP_PARTIAL_CONTENT) { response_.headers->RemoveHeader("Content-Range"); response_.headers->ReplaceStatusLine("HTTP/1.1 200 OK"); } @@ -3308,8 +3318,9 @@ if (partial_) { if (truncated_ || is_sparse_ || - (!invalid_range_ && (response_.headers->response_code() == 200 || - response_.headers->response_code() == 206))) { + (!invalid_range_ && + (response_.headers->response_code() == net::HTTP_OK || + response_.headers->response_code() == net::HTTP_PARTIAL_CONTENT))) { // We are going to return the saved response headers to the caller, so // we may need to adjust them first. In cases we are handling a range // request to a regular entry, we want the response to be a 200 or 206, @@ -3381,7 +3392,7 @@ } if (truncated) - DCHECK_EQ(200, response.headers->response_code()); + DCHECK_EQ(net::HTTP_OK, response.headers->response_code()); // When writing headers, we normally only write the non-transient headers. bool skip_transient_headers = true; @@ -3876,7 +3887,8 @@ std::string mime_type; base::CompareCase insensitive_ascii = base::CompareCase::INSENSITIVE_ASCII; if (headers.GetContentLength() > kMaxContentSize && - headers.response_code() != 304 && headers.GetMimeType(&mime_type) && + headers.response_code() != net::HTTP_NOT_MODIFIED && + headers.GetMimeType(&mime_type) && (base::StartsWith(mime_type, "video", insensitive_ascii) || base::StartsWith(mime_type, "audio", insensitive_ascii))) { disable_caching = true;
diff --git a/net/http/http_cache_writers.cc b/net/http/http_cache_writers.cc index 5569cb7..80a39e5 100644 --- a/net/http/http_cache_writers.cc +++ b/net/http/http_cache_writers.cc
@@ -21,6 +21,7 @@ #include "net/disk_cache/disk_cache.h" #include "net/http/http_cache_transaction.h" #include "net/http/http_response_info.h" +#include "net/http/http_status_code.h" #include "net/http/partial_data.h" namespace net { @@ -46,8 +47,9 @@ // Return false if the response code sent by the server is garbled. // Both 200 and 304 are valid since concurrent writing is supported. - if (!is_partial && (response_info->headers->response_code() != 200 && - response_info->headers->response_code() != 304)) { + if (!is_partial && + (response_info->headers->response_code() != net::HTTP_OK && + response_info->headers->response_code() != net::HTTP_NOT_MODIFIED)) { return false; }
diff --git a/net/http/http_response_headers.cc b/net/http/http_response_headers.cc index 3c164476..927da3f 100644 --- a/net/http/http_response_headers.cc +++ b/net/http/http_response_headers.cc
@@ -31,6 +31,7 @@ #include "net/base/parse_number.h" #include "net/http/http_byte_range.h" #include "net/http/http_log_util.h" +#include "net/http/http_status_code.h" #include "net/http/http_util.h" #include "net/log/net_log_capture_mode.h" #include "net/log/net_log_values.h" @@ -263,8 +264,8 @@ } void HttpResponseHeaders::Update(const HttpResponseHeaders& new_headers) { - DCHECK(new_headers.response_code() == 304 || - new_headers.response_code() == 206); + DCHECK(new_headers.response_code() == net::HTTP_NOT_MODIFIED || + new_headers.response_code() == net::HTTP_PARTIAL_CONTENT); // Copy up to the null byte. This just copies the status line. std::string new_raw_headers(raw_headers_.c_str()); @@ -707,7 +708,7 @@ if (p == line_end) { DVLOG(1) << "missing response status; assuming 200 OK"; raw_headers_.append(" 200 OK"); - response_code_ = 200; + response_code_ = net::HTTP_OK; return; } @@ -722,7 +723,7 @@ if (p == code) { DVLOG(1) << "missing response status number; assuming 200"; raw_headers_.append(" 200"); - response_code_ = 200; + response_code_ = net::HTTP_OK; return; } raw_headers_.push_back(' '); @@ -972,8 +973,11 @@ bool HttpResponseHeaders::IsRedirectResponseCode(int response_code) { // Users probably want to see 300 (multiple choice) pages, so we don't count // them as redirects that need to be followed. - return (response_code == 301 || response_code == 302 || - response_code == 303 || response_code == 307 || response_code == 308); + return (response_code == net::HTTP_MOVED_PERMANENTLY || + response_code == net::HTTP_FOUND || + response_code == net::HTTP_SEE_OTHER || + response_code == net::HTTP_TEMPORARY_REDIRECT || + response_code == net::HTTP_PERMANENT_REDIRECT); } // From RFC 2616 section 13.2.4: @@ -1101,8 +1105,9 @@ // https://datatracker.ietf.org/doc/draft-reschke-http-status-308/ is an // experimental RFC that adds 308 permanent redirect as well, for which "any // future references ... SHOULD use one of the returned URIs." - if ((response_code_ == 200 || response_code_ == 203 || - response_code_ == 206) && + if ((response_code_ == net::HTTP_OK || + response_code_ == net::HTTP_NON_AUTHORITATIVE_INFORMATION || + response_code_ == net::HTTP_PARTIAL_CONTENT) && !must_revalidate) { // TODO(darin): Implement a smarter heuristic. Time last_modified_value; @@ -1116,8 +1121,10 @@ } // These responses are implicitly fresh (unless otherwise overruled): - if (response_code_ == 300 || response_code_ == 301 || response_code_ == 308 || - response_code_ == 410) { + if (response_code_ == net::HTTP_MULTIPLE_CHOICES || + response_code_ == net::HTTP_MOVED_PERMANENTLY || + response_code_ == net::HTTP_PERMANENT_REDIRECT || + response_code_ == net::HTTP_GONE) { lifetimes.freshness = base::TimeDelta::Max(); lifetimes.staleness = base::TimeDelta(); // It should never be stale. return lifetimes;
diff --git a/net/http/http_stream_parser.cc b/net/http/http_stream_parser.cc index e9cfa31..72ad2d8c 100644 --- a/net/http/http_stream_parser.cc +++ b/net/http/http_stream_parser.cc
@@ -25,6 +25,7 @@ #include "net/http/http_request_info.h" #include "net/http/http_response_headers.h" #include "net/http/http_response_info.h" +#include "net/http/http_status_code.h" #include "net/http/http_util.h" #include "net/log/net_log_event_type.h" #include "net/socket/ssl_client_socket.h" @@ -913,7 +914,7 @@ response_body_length_ = -1; // Record the timing of the 103 Early Hints response for the experiment // (https://crbug.com/1093693). - if (response_->headers->response_code() == 103 && + if (response_->headers->response_code() == net::HTTP_EARLY_HINTS && first_early_hints_time_.is_null()) { first_early_hints_time_ = current_response_start_time_; } @@ -1088,9 +1089,9 @@ response_body_length_ = 0; } else { switch (response_->headers->response_code()) { - case 204: // No Content - case 205: // Reset Content - case 304: // Not Modified + case net::HTTP_NO_CONTENT: // No Content + case net::HTTP_RESET_CONTENT: // Reset Content + case net::HTTP_NOT_MODIFIED: // Not Modified response_body_length_ = 0; break; }
diff --git a/net/http/partial_data.cc b/net/http/partial_data.cc index 3f76d09..1c7a8c47 100644 --- a/net/http/partial_data.cc +++ b/net/http/partial_data.cc
@@ -17,6 +17,7 @@ #include "net/base/net_errors.h" #include "net/disk_cache/disk_cache.h" #include "net/http/http_response_headers.h" +#include "net/http/http_status_code.h" #include "net/http/http_util.h" namespace net { @@ -226,7 +227,7 @@ return true; } - sparse_entry_ = (headers->response_code() == 206); + sparse_entry_ = (headers->response_code() == net::HTTP_PARTIAL_CONTENT); if (writing_in_progress || sparse_entry_) { // |writing_in_progress| means another Transaction is still fetching the @@ -292,7 +293,7 @@ } bool PartialData::ResponseHeadersOK(const HttpResponseHeaders* headers) { - if (headers->response_code() == 304) { + if (headers->response_code() == net::HTTP_NOT_MODIFIED) { if (!byte_range_.IsValid() || truncated_) return true;
diff --git a/testing/buildbot/chromium.android.fyi.json b/testing/buildbot/chromium.android.fyi.json index 5c965b1e..1f343f2 100644 --- a/testing/buildbot/chromium.android.fyi.json +++ b/testing/buildbot/chromium.android.fyi.json
@@ -8240,15 +8240,15 @@ { "args": [ "--additional-apk=apks/WebLayerShellSystemWebView.apk", + "--webview-apk-path=apks/SystemWebView.apk", "--test-runner-outdir", ".", + "--client-outdir", + "../../weblayer_instrumentation_test_M102/out/Release", "--implementation-outdir", ".", "--test-expectations", "../../weblayer/browser/android/javatests/skew/expectations.txt", - "--webview-apk-path=apks/SystemWebView.apk", - "--client-outdir", - "../../weblayer_instrumentation_test_M102/out/Release", "--client-version=102", "--gs-results-bucket=chromium-result-details", "--recover-devices", @@ -8274,7 +8274,7 @@ { "cipd_package": "chromium/testing/weblayer-x86", "location": "weblayer_instrumentation_test_M102", - "revision": "version:102.0.5005.88" + "revision": "version:102.0.5005.90" }, { "cipd_package": "infra/tools/luci/logdog/butler/${platform}", @@ -8325,15 +8325,15 @@ { "args": [ "--additional-apk=apks/WebLayerShellSystemWebView.apk", + "--webview-apk-path=apks/SystemWebView.apk", "--test-runner-outdir", ".", + "--client-outdir", + "../../weblayer_instrumentation_test_M103/out/Release", "--implementation-outdir", ".", "--test-expectations", "../../weblayer/browser/android/javatests/skew/expectations.txt", - "--webview-apk-path=apks/SystemWebView.apk", - "--client-outdir", - "../../weblayer_instrumentation_test_M103/out/Release", "--client-version=103", "--gs-results-bucket=chromium-result-details", "--recover-devices", @@ -8359,7 +8359,7 @@ { "cipd_package": "chromium/testing/weblayer-x86", "location": "weblayer_instrumentation_test_M103", - "revision": "version:103.0.5060.28" + "revision": "version:103.0.5060.30" }, { "cipd_package": "infra/tools/luci/logdog/butler/${platform}", @@ -8750,15 +8750,15 @@ { "args": [ "--additional-apk=apks/WebLayerShellSystemWebView.apk", + "--webview-apk-path=apks/AOSP_SystemWebView.apk", "--test-runner-outdir", ".", "--client-outdir", ".", - "--test-expectations", - "../../weblayer/browser/android/javatests/skew/expectations.txt", - "--webview-apk-path=apks/AOSP_SystemWebView.apk", "--implementation-outdir", "../../weblayer_instrumentation_test_M102/out/Release", + "--test-expectations", + "../../weblayer/browser/android/javatests/skew/expectations.txt", "--impl-version=102", "--gs-results-bucket=chromium-result-details", "--recover-devices", @@ -8784,7 +8784,7 @@ { "cipd_package": "chromium/testing/weblayer-x86", "location": "weblayer_instrumentation_test_M102", - "revision": "version:102.0.5005.88" + "revision": "version:102.0.5005.90" }, { "cipd_package": "infra/tools/luci/logdog/butler/${platform}", @@ -8835,15 +8835,15 @@ { "args": [ "--additional-apk=apks/WebLayerShellSystemWebView.apk", + "--webview-apk-path=apks/AOSP_SystemWebView.apk", "--test-runner-outdir", ".", "--client-outdir", ".", - "--test-expectations", - "../../weblayer/browser/android/javatests/skew/expectations.txt", - "--webview-apk-path=apks/AOSP_SystemWebView.apk", "--implementation-outdir", "../../weblayer_instrumentation_test_M103/out/Release", + "--test-expectations", + "../../weblayer/browser/android/javatests/skew/expectations.txt", "--impl-version=103", "--gs-results-bucket=chromium-result-details", "--recover-devices", @@ -8869,7 +8869,7 @@ { "cipd_package": "chromium/testing/weblayer-x86", "location": "weblayer_instrumentation_test_M103", - "revision": "version:103.0.5060.28" + "revision": "version:103.0.5060.30" }, { "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
diff --git a/testing/buildbot/chromium.android.json b/testing/buildbot/chromium.android.json index 80a3ba06..ef9a3f5 100644 --- a/testing/buildbot/chromium.android.json +++ b/testing/buildbot/chromium.android.json
@@ -46214,15 +46214,15 @@ { "args": [ "--additional-apk=apks/WebLayerShellSystemWebView.apk", + "--webview-apk-path=apks/SystemWebView.apk", "--test-runner-outdir", ".", + "--client-outdir", + "../../weblayer_instrumentation_test_M102/out/Release", "--implementation-outdir", ".", "--test-expectations", "../../weblayer/browser/android/javatests/skew/expectations.txt", - "--webview-apk-path=apks/SystemWebView.apk", - "--client-outdir", - "../../weblayer_instrumentation_test_M102/out/Release", "--client-version=102", "--gs-results-bucket=chromium-result-details", "--recover-devices", @@ -46248,7 +46248,7 @@ { "cipd_package": "chromium/testing/weblayer-x86", "location": "weblayer_instrumentation_test_M102", - "revision": "version:102.0.5005.88" + "revision": "version:102.0.5005.90" }, { "cipd_package": "infra/tools/luci/logdog/butler/${platform}", @@ -46299,15 +46299,15 @@ { "args": [ "--additional-apk=apks/WebLayerShellSystemWebView.apk", + "--webview-apk-path=apks/SystemWebView.apk", "--test-runner-outdir", ".", + "--client-outdir", + "../../weblayer_instrumentation_test_M103/out/Release", "--implementation-outdir", ".", "--test-expectations", "../../weblayer/browser/android/javatests/skew/expectations.txt", - "--webview-apk-path=apks/SystemWebView.apk", - "--client-outdir", - "../../weblayer_instrumentation_test_M103/out/Release", "--client-version=103", "--gs-results-bucket=chromium-result-details", "--recover-devices", @@ -46333,7 +46333,7 @@ { "cipd_package": "chromium/testing/weblayer-x86", "location": "weblayer_instrumentation_test_M103", - "revision": "version:103.0.5060.28" + "revision": "version:103.0.5060.30" }, { "cipd_package": "infra/tools/luci/logdog/butler/${platform}", @@ -46724,15 +46724,15 @@ { "args": [ "--additional-apk=apks/WebLayerShellSystemWebView.apk", + "--webview-apk-path=apks/AOSP_SystemWebView.apk", "--test-runner-outdir", ".", "--client-outdir", ".", - "--test-expectations", - "../../weblayer/browser/android/javatests/skew/expectations.txt", - "--webview-apk-path=apks/AOSP_SystemWebView.apk", "--implementation-outdir", "../../weblayer_instrumentation_test_M102/out/Release", + "--test-expectations", + "../../weblayer/browser/android/javatests/skew/expectations.txt", "--impl-version=102", "--gs-results-bucket=chromium-result-details", "--recover-devices", @@ -46758,7 +46758,7 @@ { "cipd_package": "chromium/testing/weblayer-x86", "location": "weblayer_instrumentation_test_M102", - "revision": "version:102.0.5005.88" + "revision": "version:102.0.5005.90" }, { "cipd_package": "infra/tools/luci/logdog/butler/${platform}", @@ -46809,15 +46809,15 @@ { "args": [ "--additional-apk=apks/WebLayerShellSystemWebView.apk", + "--webview-apk-path=apks/AOSP_SystemWebView.apk", "--test-runner-outdir", ".", "--client-outdir", ".", - "--test-expectations", - "../../weblayer/browser/android/javatests/skew/expectations.txt", - "--webview-apk-path=apks/AOSP_SystemWebView.apk", "--implementation-outdir", "../../weblayer_instrumentation_test_M103/out/Release", + "--test-expectations", + "../../weblayer/browser/android/javatests/skew/expectations.txt", "--impl-version=103", "--gs-results-bucket=chromium-result-details", "--recover-devices", @@ -46843,7 +46843,7 @@ { "cipd_package": "chromium/testing/weblayer-x86", "location": "weblayer_instrumentation_test_M103", - "revision": "version:103.0.5060.28" + "revision": "version:103.0.5060.30" }, { "cipd_package": "infra/tools/luci/logdog/butler/${platform}", @@ -47238,15 +47238,15 @@ { "args": [ "--additional-apk=apks/ChromePublic.apk", + "--webview-apk-path=apks/SystemWebView.apk", "--test-runner-outdir", ".", + "--client-outdir", + "../../weblayer_instrumentation_test_M102/out/Release", "--implementation-outdir", ".", "--test-expectations", "../../weblayer/browser/android/javatests/skew/expectations.txt", - "--webview-apk-path=apks/SystemWebView.apk", - "--client-outdir", - "../../weblayer_instrumentation_test_M102/out/Release", "--client-version=102", "--gs-results-bucket=chromium-result-details", "--recover-devices", @@ -47272,7 +47272,7 @@ { "cipd_package": "chromium/testing/weblayer-x86", "location": "weblayer_instrumentation_test_M102", - "revision": "version:102.0.5005.88" + "revision": "version:102.0.5005.90" }, { "cipd_package": "infra/tools/luci/logdog/butler/${platform}", @@ -47323,15 +47323,15 @@ { "args": [ "--additional-apk=apks/ChromePublic.apk", + "--webview-apk-path=apks/SystemWebView.apk", "--test-runner-outdir", ".", + "--client-outdir", + "../../weblayer_instrumentation_test_M103/out/Release", "--implementation-outdir", ".", "--test-expectations", "../../weblayer/browser/android/javatests/skew/expectations.txt", - "--webview-apk-path=apks/SystemWebView.apk", - "--client-outdir", - "../../weblayer_instrumentation_test_M103/out/Release", "--client-version=103", "--gs-results-bucket=chromium-result-details", "--recover-devices", @@ -47357,7 +47357,7 @@ { "cipd_package": "chromium/testing/weblayer-x86", "location": "weblayer_instrumentation_test_M103", - "revision": "version:103.0.5060.28" + "revision": "version:103.0.5060.30" }, { "cipd_package": "infra/tools/luci/logdog/butler/${platform}", @@ -47748,15 +47748,15 @@ { "args": [ "--additional-apk=apks/ChromePublic.apk", + "--webview-apk-path=apks/AOSP_SystemWebView.apk", "--test-runner-outdir", ".", "--client-outdir", ".", - "--test-expectations", - "../../weblayer/browser/android/javatests/skew/expectations.txt", - "--webview-apk-path=apks/AOSP_SystemWebView.apk", "--implementation-outdir", "../../weblayer_instrumentation_test_M102/out/Release", + "--test-expectations", + "../../weblayer/browser/android/javatests/skew/expectations.txt", "--impl-version=102", "--gs-results-bucket=chromium-result-details", "--recover-devices", @@ -47782,7 +47782,7 @@ { "cipd_package": "chromium/testing/weblayer-x86", "location": "weblayer_instrumentation_test_M102", - "revision": "version:102.0.5005.88" + "revision": "version:102.0.5005.90" }, { "cipd_package": "infra/tools/luci/logdog/butler/${platform}", @@ -47833,15 +47833,15 @@ { "args": [ "--additional-apk=apks/ChromePublic.apk", + "--webview-apk-path=apks/AOSP_SystemWebView.apk", "--test-runner-outdir", ".", "--client-outdir", ".", - "--test-expectations", - "../../weblayer/browser/android/javatests/skew/expectations.txt", - "--webview-apk-path=apks/AOSP_SystemWebView.apk", "--implementation-outdir", "../../weblayer_instrumentation_test_M103/out/Release", + "--test-expectations", + "../../weblayer/browser/android/javatests/skew/expectations.txt", "--impl-version=103", "--gs-results-bucket=chromium-result-details", "--recover-devices", @@ -47867,7 +47867,7 @@ { "cipd_package": "chromium/testing/weblayer-x86", "location": "weblayer_instrumentation_test_M103", - "revision": "version:103.0.5060.28" + "revision": "version:103.0.5060.30" }, { "cipd_package": "infra/tools/luci/logdog/butler/${platform}", @@ -48330,15 +48330,15 @@ { "args": [ "--additional-apk=apks/WebLayerShellSystemWebView.apk", + "--webview-apk-path=apks/SystemWebView.apk", "--test-runner-outdir", ".", + "--client-outdir", + "../../weblayer_instrumentation_test_M102/out/Release", "--implementation-outdir", ".", "--test-expectations", "../../weblayer/browser/android/javatests/skew/expectations.txt", - "--webview-apk-path=apks/SystemWebView.apk", - "--client-outdir", - "../../weblayer_instrumentation_test_M102/out/Release", "--client-version=102", "--gs-results-bucket=chromium-result-details", "--recover-devices", @@ -48364,7 +48364,7 @@ { "cipd_package": "chromium/testing/weblayer-x86", "location": "weblayer_instrumentation_test_M102", - "revision": "version:102.0.5005.88" + "revision": "version:102.0.5005.90" }, { "cipd_package": "infra/tools/luci/logdog/butler/${platform}", @@ -48415,15 +48415,15 @@ { "args": [ "--additional-apk=apks/WebLayerShellSystemWebView.apk", + "--webview-apk-path=apks/SystemWebView.apk", "--test-runner-outdir", ".", + "--client-outdir", + "../../weblayer_instrumentation_test_M103/out/Release", "--implementation-outdir", ".", "--test-expectations", "../../weblayer/browser/android/javatests/skew/expectations.txt", - "--webview-apk-path=apks/SystemWebView.apk", - "--client-outdir", - "../../weblayer_instrumentation_test_M103/out/Release", "--client-version=103", "--gs-results-bucket=chromium-result-details", "--recover-devices", @@ -48449,7 +48449,7 @@ { "cipd_package": "chromium/testing/weblayer-x86", "location": "weblayer_instrumentation_test_M103", - "revision": "version:103.0.5060.28" + "revision": "version:103.0.5060.30" }, { "cipd_package": "infra/tools/luci/logdog/butler/${platform}", @@ -48840,15 +48840,15 @@ { "args": [ "--additional-apk=apks/WebLayerShellSystemWebView.apk", + "--webview-apk-path=apks/SystemWebView.apk", "--test-runner-outdir", ".", "--client-outdir", ".", - "--test-expectations", - "../../weblayer/browser/android/javatests/skew/expectations.txt", - "--webview-apk-path=apks/SystemWebView.apk", "--implementation-outdir", "../../weblayer_instrumentation_test_M102/out/Release", + "--test-expectations", + "../../weblayer/browser/android/javatests/skew/expectations.txt", "--impl-version=102", "--gs-results-bucket=chromium-result-details", "--recover-devices", @@ -48874,7 +48874,7 @@ { "cipd_package": "chromium/testing/weblayer-x86", "location": "weblayer_instrumentation_test_M102", - "revision": "version:102.0.5005.88" + "revision": "version:102.0.5005.90" }, { "cipd_package": "infra/tools/luci/logdog/butler/${platform}", @@ -48925,15 +48925,15 @@ { "args": [ "--additional-apk=apks/WebLayerShellSystemWebView.apk", + "--webview-apk-path=apks/SystemWebView.apk", "--test-runner-outdir", ".", "--client-outdir", ".", - "--test-expectations", - "../../weblayer/browser/android/javatests/skew/expectations.txt", - "--webview-apk-path=apks/SystemWebView.apk", "--implementation-outdir", "../../weblayer_instrumentation_test_M103/out/Release", + "--test-expectations", + "../../weblayer/browser/android/javatests/skew/expectations.txt", "--impl-version=103", "--gs-results-bucket=chromium-result-details", "--recover-devices", @@ -48959,7 +48959,7 @@ { "cipd_package": "chromium/testing/weblayer-x86", "location": "weblayer_instrumentation_test_M103", - "revision": "version:103.0.5060.28" + "revision": "version:103.0.5060.30" }, { "cipd_package": "infra/tools/luci/logdog/butler/${platform}", @@ -49422,15 +49422,15 @@ { "args": [ "--additional-apk=apks/WebLayerShellSystemWebView.apk", + "--webview-apk-path=apks/SystemWebView.apk", "--test-runner-outdir", ".", + "--client-outdir", + "../../weblayer_instrumentation_test_M102/out/Release", "--implementation-outdir", ".", "--test-expectations", "../../weblayer/browser/android/javatests/skew/expectations.txt", - "--webview-apk-path=apks/SystemWebView.apk", - "--client-outdir", - "../../weblayer_instrumentation_test_M102/out/Release", "--client-version=102", "--gs-results-bucket=chromium-result-details", "--recover-devices", @@ -49456,7 +49456,7 @@ { "cipd_package": "chromium/testing/weblayer-x86", "location": "weblayer_instrumentation_test_M102", - "revision": "version:102.0.5005.88" + "revision": "version:102.0.5005.90" }, { "cipd_package": "infra/tools/luci/logdog/butler/${platform}", @@ -49507,15 +49507,15 @@ { "args": [ "--additional-apk=apks/WebLayerShellSystemWebView.apk", + "--webview-apk-path=apks/SystemWebView.apk", "--test-runner-outdir", ".", + "--client-outdir", + "../../weblayer_instrumentation_test_M103/out/Release", "--implementation-outdir", ".", "--test-expectations", "../../weblayer/browser/android/javatests/skew/expectations.txt", - "--webview-apk-path=apks/SystemWebView.apk", - "--client-outdir", - "../../weblayer_instrumentation_test_M103/out/Release", "--client-version=103", "--gs-results-bucket=chromium-result-details", "--recover-devices", @@ -49541,7 +49541,7 @@ { "cipd_package": "chromium/testing/weblayer-x86", "location": "weblayer_instrumentation_test_M103", - "revision": "version:103.0.5060.28" + "revision": "version:103.0.5060.30" }, { "cipd_package": "infra/tools/luci/logdog/butler/${platform}", @@ -49932,15 +49932,15 @@ { "args": [ "--additional-apk=apks/WebLayerShellSystemWebView.apk", + "--webview-apk-path=apks/SystemWebView.apk", "--test-runner-outdir", ".", "--client-outdir", ".", - "--test-expectations", - "../../weblayer/browser/android/javatests/skew/expectations.txt", - "--webview-apk-path=apks/SystemWebView.apk", "--implementation-outdir", "../../weblayer_instrumentation_test_M102/out/Release", + "--test-expectations", + "../../weblayer/browser/android/javatests/skew/expectations.txt", "--impl-version=102", "--gs-results-bucket=chromium-result-details", "--recover-devices", @@ -49966,7 +49966,7 @@ { "cipd_package": "chromium/testing/weblayer-x86", "location": "weblayer_instrumentation_test_M102", - "revision": "version:102.0.5005.88" + "revision": "version:102.0.5005.90" }, { "cipd_package": "infra/tools/luci/logdog/butler/${platform}", @@ -50017,15 +50017,15 @@ { "args": [ "--additional-apk=apks/WebLayerShellSystemWebView.apk", + "--webview-apk-path=apks/SystemWebView.apk", "--test-runner-outdir", ".", "--client-outdir", ".", - "--test-expectations", - "../../weblayer/browser/android/javatests/skew/expectations.txt", - "--webview-apk-path=apks/SystemWebView.apk", "--implementation-outdir", "../../weblayer_instrumentation_test_M103/out/Release", + "--test-expectations", + "../../weblayer/browser/android/javatests/skew/expectations.txt", "--impl-version=103", "--gs-results-bucket=chromium-result-details", "--recover-devices", @@ -50051,7 +50051,7 @@ { "cipd_package": "chromium/testing/weblayer-x86", "location": "weblayer_instrumentation_test_M103", - "revision": "version:103.0.5060.28" + "revision": "version:103.0.5060.30" }, { "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
diff --git a/testing/buildbot/chromium.chromiumos.json b/testing/buildbot/chromium.chromiumos.json index 5dda26c2..141ba98 100644 --- a/testing/buildbot/chromium.chromiumos.json +++ b/testing/buildbot/chromium.chromiumos.json
@@ -5865,21 +5865,21 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v104.0.5088.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v104.0.5091.0/test_ash_chrome" ], "isolate_profile_data": true, "merge": { "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" }, - "name": "interactive_ui_tests Lacros version skew testing ash 104.0.5088.0", + "name": "interactive_ui_tests Lacros version skew testing ash 104.0.5091.0", "swarming": { "can_use_on_swarming_builders": true, "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v104.0.5088.0", - "revision": "version:104.0.5088.0" + "location": "lacros_version_skew_tests_v104.0.5091.0", + "revision": "version:104.0.5091.0" } ], "dimension_sets": [ @@ -5892,7 +5892,7 @@ }, "test": "interactive_ui_tests", "test_id_prefix": "ninja://chrome/test:interactive_ui_tests/", - "variant_id": "Lacros version skew testing ash 104.0.5088.0" + "variant_id": "Lacros version skew testing ash 104.0.5091.0" }, { "isolate_profile_data": true, @@ -6030,21 +6030,21 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v104.0.5088.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v104.0.5091.0/test_ash_chrome" ], "isolate_profile_data": true, "merge": { "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" }, - "name": "lacros_chrome_browsertests Lacros version skew testing ash 104.0.5088.0", + "name": "lacros_chrome_browsertests Lacros version skew testing ash 104.0.5091.0", "swarming": { "can_use_on_swarming_builders": true, "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v104.0.5088.0", - "revision": "version:104.0.5088.0" + "location": "lacros_version_skew_tests_v104.0.5091.0", + "revision": "version:104.0.5091.0" } ], "dimension_sets": [ @@ -6056,7 +6056,7 @@ }, "test": "lacros_chrome_browsertests", "test_id_prefix": "ninja://chrome/test:lacros_chrome_browsertests/", - "variant_id": "Lacros version skew testing ash 104.0.5088.0" + "variant_id": "Lacros version skew testing ash 104.0.5091.0" }, { "args": [ @@ -6176,21 +6176,21 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v104.0.5088.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v104.0.5091.0/test_ash_chrome" ], "isolate_profile_data": true, "merge": { "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" }, - "name": "lacros_chrome_browsertests_run_in_series Lacros version skew testing ash 104.0.5088.0", + "name": "lacros_chrome_browsertests_run_in_series Lacros version skew testing ash 104.0.5091.0", "swarming": { "can_use_on_swarming_builders": true, "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v104.0.5088.0", - "revision": "version:104.0.5088.0" + "location": "lacros_version_skew_tests_v104.0.5091.0", + "revision": "version:104.0.5091.0" } ], "dimension_sets": [ @@ -6202,7 +6202,7 @@ }, "test": "lacros_chrome_browsertests_run_in_series", "test_id_prefix": "ninja://chrome/test:lacros_chrome_browsertests_run_in_series/", - "variant_id": "Lacros version skew testing ash 104.0.5088.0" + "variant_id": "Lacros version skew testing ash 104.0.5091.0" }, { "isolate_profile_data": true,
diff --git a/testing/buildbot/chromium.fyi.json b/testing/buildbot/chromium.fyi.json index cf1a10c..78980a4a 100644 --- a/testing/buildbot/chromium.fyi.json +++ b/testing/buildbot/chromium.fyi.json
@@ -88037,21 +88037,21 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v104.0.5088.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v104.0.5091.0/test_ash_chrome" ], "isolate_profile_data": true, "merge": { "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" }, - "name": "interactive_ui_tests Lacros version skew testing ash 104.0.5088.0", + "name": "interactive_ui_tests Lacros version skew testing ash 104.0.5091.0", "swarming": { "can_use_on_swarming_builders": true, "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v104.0.5088.0", - "revision": "version:104.0.5088.0" + "location": "lacros_version_skew_tests_v104.0.5091.0", + "revision": "version:104.0.5091.0" } ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", @@ -88059,7 +88059,7 @@ }, "test": "interactive_ui_tests", "test_id_prefix": "ninja://chrome/test:interactive_ui_tests/", - "variant_id": "Lacros version skew testing ash 104.0.5088.0" + "variant_id": "Lacros version skew testing ash 104.0.5091.0" }, { "isolate_profile_data": true, @@ -88172,28 +88172,28 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v104.0.5088.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v104.0.5091.0/test_ash_chrome" ], "isolate_profile_data": true, "merge": { "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" }, - "name": "lacros_chrome_browsertests Lacros version skew testing ash 104.0.5088.0", + "name": "lacros_chrome_browsertests Lacros version skew testing ash 104.0.5091.0", "swarming": { "can_use_on_swarming_builders": true, "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v104.0.5088.0", - "revision": "version:104.0.5088.0" + "location": "lacros_version_skew_tests_v104.0.5091.0", + "revision": "version:104.0.5091.0" } ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, "test": "lacros_chrome_browsertests", "test_id_prefix": "ninja://chrome/test:lacros_chrome_browsertests/", - "variant_id": "Lacros version skew testing ash 104.0.5088.0" + "variant_id": "Lacros version skew testing ash 104.0.5091.0" }, { "args": [ @@ -88293,28 +88293,28 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v104.0.5088.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v104.0.5091.0/test_ash_chrome" ], "isolate_profile_data": true, "merge": { "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" }, - "name": "lacros_chrome_browsertests_run_in_series Lacros version skew testing ash 104.0.5088.0", + "name": "lacros_chrome_browsertests_run_in_series Lacros version skew testing ash 104.0.5091.0", "swarming": { "can_use_on_swarming_builders": true, "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v104.0.5088.0", - "revision": "version:104.0.5088.0" + "location": "lacros_version_skew_tests_v104.0.5091.0", + "revision": "version:104.0.5091.0" } ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" }, "test": "lacros_chrome_browsertests_run_in_series", "test_id_prefix": "ninja://chrome/test:lacros_chrome_browsertests_run_in_series/", - "variant_id": "Lacros version skew testing ash 104.0.5088.0" + "variant_id": "Lacros version skew testing ash 104.0.5091.0" }, { "isolate_profile_data": true, @@ -89652,20 +89652,20 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v104.0.5088.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v104.0.5091.0/test_ash_chrome" ], "merge": { "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" }, - "name": "interactive_ui_tests Lacros version skew testing ash 104.0.5088.0", + "name": "interactive_ui_tests Lacros version skew testing ash 104.0.5091.0", "swarming": { "can_use_on_swarming_builders": true, "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v104.0.5088.0", - "revision": "version:104.0.5088.0" + "location": "lacros_version_skew_tests_v104.0.5091.0", + "revision": "version:104.0.5091.0" } ], "dimension_sets": [ @@ -89679,7 +89679,7 @@ }, "test": "interactive_ui_tests", "test_id_prefix": "ninja://chrome/test:interactive_ui_tests/", - "variant_id": "Lacros version skew testing ash 104.0.5088.0" + "variant_id": "Lacros version skew testing ash 104.0.5091.0" }, { "merge": { @@ -89817,20 +89817,20 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v104.0.5088.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v104.0.5091.0/test_ash_chrome" ], "merge": { "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" }, - "name": "lacros_chrome_browsertests Lacros version skew testing ash 104.0.5088.0", + "name": "lacros_chrome_browsertests Lacros version skew testing ash 104.0.5091.0", "swarming": { "can_use_on_swarming_builders": true, "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v104.0.5088.0", - "revision": "version:104.0.5088.0" + "location": "lacros_version_skew_tests_v104.0.5091.0", + "revision": "version:104.0.5091.0" } ], "dimension_sets": [ @@ -89843,7 +89843,7 @@ }, "test": "lacros_chrome_browsertests", "test_id_prefix": "ninja://chrome/test:lacros_chrome_browsertests/", - "variant_id": "Lacros version skew testing ash 104.0.5088.0" + "variant_id": "Lacros version skew testing ash 104.0.5091.0" }, { "args": [ @@ -89963,20 +89963,20 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v104.0.5088.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v104.0.5091.0/test_ash_chrome" ], "merge": { "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" }, - "name": "lacros_chrome_browsertests_run_in_series Lacros version skew testing ash 104.0.5088.0", + "name": "lacros_chrome_browsertests_run_in_series Lacros version skew testing ash 104.0.5091.0", "swarming": { "can_use_on_swarming_builders": true, "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v104.0.5088.0", - "revision": "version:104.0.5088.0" + "location": "lacros_version_skew_tests_v104.0.5091.0", + "revision": "version:104.0.5091.0" } ], "dimension_sets": [ @@ -89989,7 +89989,7 @@ }, "test": "lacros_chrome_browsertests_run_in_series", "test_id_prefix": "ninja://chrome/test:lacros_chrome_browsertests_run_in_series/", - "variant_id": "Lacros version skew testing ash 104.0.5088.0" + "variant_id": "Lacros version skew testing ash 104.0.5091.0" }, { "merge": { @@ -91485,20 +91485,20 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v104.0.5088.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v104.0.5091.0/test_ash_chrome" ], "merge": { "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" }, - "name": "interactive_ui_tests Lacros version skew testing ash 104.0.5088.0", + "name": "interactive_ui_tests Lacros version skew testing ash 104.0.5091.0", "swarming": { "can_use_on_swarming_builders": true, "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v104.0.5088.0", - "revision": "version:104.0.5088.0" + "location": "lacros_version_skew_tests_v104.0.5091.0", + "revision": "version:104.0.5091.0" } ], "dimension_sets": [ @@ -91512,7 +91512,7 @@ }, "test": "interactive_ui_tests", "test_id_prefix": "ninja://chrome/test:interactive_ui_tests/", - "variant_id": "Lacros version skew testing ash 104.0.5088.0" + "variant_id": "Lacros version skew testing ash 104.0.5091.0" }, { "merge": { @@ -91650,20 +91650,20 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v104.0.5088.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v104.0.5091.0/test_ash_chrome" ], "merge": { "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" }, - "name": "lacros_chrome_browsertests Lacros version skew testing ash 104.0.5088.0", + "name": "lacros_chrome_browsertests Lacros version skew testing ash 104.0.5091.0", "swarming": { "can_use_on_swarming_builders": true, "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v104.0.5088.0", - "revision": "version:104.0.5088.0" + "location": "lacros_version_skew_tests_v104.0.5091.0", + "revision": "version:104.0.5091.0" } ], "dimension_sets": [ @@ -91676,7 +91676,7 @@ }, "test": "lacros_chrome_browsertests", "test_id_prefix": "ninja://chrome/test:lacros_chrome_browsertests/", - "variant_id": "Lacros version skew testing ash 104.0.5088.0" + "variant_id": "Lacros version skew testing ash 104.0.5091.0" }, { "args": [ @@ -91796,20 +91796,20 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v104.0.5088.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v104.0.5091.0/test_ash_chrome" ], "merge": { "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" }, - "name": "lacros_chrome_browsertests_run_in_series Lacros version skew testing ash 104.0.5088.0", + "name": "lacros_chrome_browsertests_run_in_series Lacros version skew testing ash 104.0.5091.0", "swarming": { "can_use_on_swarming_builders": true, "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v104.0.5088.0", - "revision": "version:104.0.5088.0" + "location": "lacros_version_skew_tests_v104.0.5091.0", + "revision": "version:104.0.5091.0" } ], "dimension_sets": [ @@ -91822,7 +91822,7 @@ }, "test": "lacros_chrome_browsertests_run_in_series", "test_id_prefix": "ninja://chrome/test:lacros_chrome_browsertests_run_in_series/", - "variant_id": "Lacros version skew testing ash 104.0.5088.0" + "variant_id": "Lacros version skew testing ash 104.0.5091.0" }, { "merge": { @@ -92557,20 +92557,20 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v104.0.5088.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v104.0.5091.0/test_ash_chrome" ], "merge": { "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" }, - "name": "interactive_ui_tests Lacros version skew testing ash 104.0.5088.0", + "name": "interactive_ui_tests Lacros version skew testing ash 104.0.5091.0", "swarming": { "can_use_on_swarming_builders": true, "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v104.0.5088.0", - "revision": "version:104.0.5088.0" + "location": "lacros_version_skew_tests_v104.0.5091.0", + "revision": "version:104.0.5091.0" } ], "dimension_sets": [ @@ -92583,7 +92583,7 @@ }, "test": "interactive_ui_tests", "test_id_prefix": "ninja://chrome/test:interactive_ui_tests/", - "variant_id": "Lacros version skew testing ash 104.0.5088.0" + "variant_id": "Lacros version skew testing ash 104.0.5091.0" } ] },
diff --git a/testing/buildbot/variants.pyl b/testing/buildbot/variants.pyl index c392bf6..f69594a 100644 --- a/testing/buildbot/variants.pyl +++ b/testing/buildbot/variants.pyl
@@ -22,15 +22,15 @@ }, 'LACROS_VERSION_SKEW_CANARY': { 'args': [ - '--ash-chrome-path-override=../../lacros_version_skew_tests_v104.0.5088.0/test_ash_chrome', + '--ash-chrome-path-override=../../lacros_version_skew_tests_v104.0.5091.0/test_ash_chrome', ], - 'identifier': 'Lacros version skew testing ash 104.0.5088.0', + 'identifier': 'Lacros version skew testing ash 104.0.5091.0', 'swarming': { 'cipd_packages': [ { 'cipd_package': 'chromium/testing/linux-ash-chromium/x86_64/ash.zip', - 'location': 'lacros_version_skew_tests_v104.0.5088.0', - 'revision': 'version:104.0.5088.0', + 'location': 'lacros_version_skew_tests_v104.0.5091.0', + 'revision': 'version:104.0.5091.0', }, ], }, @@ -462,16 +462,16 @@ }, 'WEBLAYER_10_AND_M_IMPL_SKEW_TESTS_NTH_MILESTONE': { 'args': [ + '--webview-apk-path=apks/AOSP_SystemWebView.apk', '--test-runner-outdir', '.', '--client-outdir', '.', - '--test-expectations', - '../../weblayer/browser/android/javatests/skew/expectations.txt', - '--webview-apk-path=apks/AOSP_SystemWebView.apk', '--implementation-outdir', '../../weblayer_instrumentation_test_M103/out/Release', - '--impl-version=103' + '--test-expectations', + '../../weblayer/browser/android/javatests/skew/expectations.txt', + '--impl-version=103', ], 'identifier': 'with_impl_from_103', 'swarming': { @@ -479,23 +479,23 @@ { 'cipd_package': 'chromium/testing/weblayer-x86', 'location': 'weblayer_instrumentation_test_M103', - 'revision': 'version:103.0.5060.28' + 'revision': 'version:103.0.5060.30', } - ] - } + ], + }, }, 'WEBLAYER_10_AND_M_IMPL_SKEW_TESTS_NTH_MINUS_ONE_MILESTONE': { 'args': [ + '--webview-apk-path=apks/AOSP_SystemWebView.apk', '--test-runner-outdir', '.', '--client-outdir', '.', - '--test-expectations', - '../../weblayer/browser/android/javatests/skew/expectations.txt', - '--webview-apk-path=apks/AOSP_SystemWebView.apk', '--implementation-outdir', '../../weblayer_instrumentation_test_M102/out/Release', - '--impl-version=102' + '--test-expectations', + '../../weblayer/browser/android/javatests/skew/expectations.txt', + '--impl-version=102', ], 'identifier': 'with_impl_from_102', 'swarming': { @@ -503,10 +503,10 @@ { 'cipd_package': 'chromium/testing/weblayer-x86', 'location': 'weblayer_instrumentation_test_M102', - 'revision': 'version:102.0.5005.88' + 'revision': 'version:102.0.5005.90', } - ] - } + ], + }, }, 'WEBLAYER_10_AND_M_IMPL_SKEW_TESTS_NTH_MINUS_TWO_MILESTONE': { 'args': [ @@ -606,16 +606,16 @@ }, 'WEBLAYER_IMPL_SKEW_TESTS_NTH_MILESTONE': { 'args': [ + '--webview-apk-path=apks/SystemWebView.apk', '--test-runner-outdir', '.', '--client-outdir', '.', - '--test-expectations', - '../../weblayer/browser/android/javatests/skew/expectations.txt', - '--webview-apk-path=apks/SystemWebView.apk', '--implementation-outdir', '../../weblayer_instrumentation_test_M103/out/Release', - '--impl-version=103' + '--test-expectations', + '../../weblayer/browser/android/javatests/skew/expectations.txt', + '--impl-version=103', ], 'identifier': 'with_impl_from_103', 'swarming': { @@ -623,23 +623,23 @@ { 'cipd_package': 'chromium/testing/weblayer-x86', 'location': 'weblayer_instrumentation_test_M103', - 'revision': 'version:103.0.5060.28' + 'revision': 'version:103.0.5060.30', } - ] - } + ], + }, }, 'WEBLAYER_IMPL_SKEW_TESTS_NTH_MINUS_ONE_MILESTONE': { 'args': [ + '--webview-apk-path=apks/SystemWebView.apk', '--test-runner-outdir', '.', '--client-outdir', '.', - '--test-expectations', - '../../weblayer/browser/android/javatests/skew/expectations.txt', - '--webview-apk-path=apks/SystemWebView.apk', '--implementation-outdir', '../../weblayer_instrumentation_test_M102/out/Release', - '--impl-version=102' + '--test-expectations', + '../../weblayer/browser/android/javatests/skew/expectations.txt', + '--impl-version=102', ], 'identifier': 'with_impl_from_102', 'swarming': { @@ -647,10 +647,10 @@ { 'cipd_package': 'chromium/testing/weblayer-x86', 'location': 'weblayer_instrumentation_test_M102', - 'revision': 'version:102.0.5005.88' + 'revision': 'version:102.0.5005.90', } - ] - } + ], + }, }, 'WEBLAYER_IMPL_SKEW_TESTS_NTH_MINUS_TWO_MILESTONE': { 'args': [ @@ -750,16 +750,16 @@ }, 'WEBLAYER_CLIENT_SKEW_TESTS_NTH_MILESTONE': { 'args': [ + '--webview-apk-path=apks/SystemWebView.apk', '--test-runner-outdir', '.', + '--client-outdir', + '../../weblayer_instrumentation_test_M103/out/Release', '--implementation-outdir', '.', '--test-expectations', '../../weblayer/browser/android/javatests/skew/expectations.txt', - '--webview-apk-path=apks/SystemWebView.apk', - '--client-outdir', - '../../weblayer_instrumentation_test_M103/out/Release', - '--client-version=103' + '--client-version=103', ], 'identifier': 'with_client_from_103', 'swarming': { @@ -767,23 +767,23 @@ { 'cipd_package': 'chromium/testing/weblayer-x86', 'location': 'weblayer_instrumentation_test_M103', - 'revision': 'version:103.0.5060.28' + 'revision': 'version:103.0.5060.30', } - ] - } + ], + }, }, 'WEBLAYER_CLIENT_SKEW_TESTS_NTH_MINUS_ONE_MILESTONE': { 'args': [ + '--webview-apk-path=apks/SystemWebView.apk', '--test-runner-outdir', '.', + '--client-outdir', + '../../weblayer_instrumentation_test_M102/out/Release', '--implementation-outdir', '.', '--test-expectations', '../../weblayer/browser/android/javatests/skew/expectations.txt', - '--webview-apk-path=apks/SystemWebView.apk', - '--client-outdir', - '../../weblayer_instrumentation_test_M102/out/Release', - '--client-version=102' + '--client-version=102', ], 'identifier': 'with_client_from_102', 'swarming': { @@ -791,10 +791,10 @@ { 'cipd_package': 'chromium/testing/weblayer-x86', 'location': 'weblayer_instrumentation_test_M102', - 'revision': 'version:102.0.5005.88' + 'revision': 'version:102.0.5005.90', } - ] - } + ], + }, }, 'WEBLAYER_CLIENT_SKEW_TESTS_NTH_MINUS_TWO_MILESTONE': { 'args': [
diff --git a/testing/variations/fieldtrial_testing_config.json b/testing/variations/fieldtrial_testing_config.json index 567a47d..fa19ac3 100644 --- a/testing/variations/fieldtrial_testing_config.json +++ b/testing/variations/fieldtrial_testing_config.json
@@ -3590,6 +3590,26 @@ ] } ], + "EnableSsePathForCopyLCharsX86": [ + { + "platforms": [ + "android", + "android_weblayer", + "chromeos", + "chromeos_lacros", + "linux", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "EnableSsePathForCopyLCharsX86" + ] + } + ] + } + ], "EnableSuggestedFiles": [ { "platforms": [
diff --git a/third_party/blink/renderer/core/display_lock/display_lock_context.cc b/third_party/blink/renderer/core/display_lock/display_lock_context.cc index b084d28e..2067cf23 100644 --- a/third_party/blink/renderer/core/display_lock/display_lock_context.cc +++ b/third_party/blink/renderer/core/display_lock/display_lock_context.cc
@@ -1218,17 +1218,6 @@ !state(RenderAffectingState::kAutoUnlockedForPrint) && !state(RenderAffectingState::kSubtreeHasTopLayerElement))); - // For shaping-deferred boxes, we'd like to unlock permanently. - if (IsShapingDeferred() && state_ != EContentVisibility::kVisible && - !should_be_locked && IsLocked()) { - SetRequestedState(EContentVisibility::kVisible); - // We need to change the document lifecycle explicitly because Unlock() - // inside the above SetRequestedState() didn't change the lifecycle. - // See CanDirtyStyle() check in Unlock(). - document_->Lifecycle().EnsureStateAtMost(DocumentLifecycle::kStyleClean); - return; - } - if (should_be_locked && !IsLocked()) Lock(); else if (!should_be_locked && IsLocked())
diff --git a/third_party/blink/renderer/core/editing/frame_selection.cc b/third_party/blink/renderer/core/editing/frame_selection.cc index 799fd37..67e40a6 100644 --- a/third_party/blink/renderer/core/editing/frame_selection.cc +++ b/third_party/blink/renderer/core/editing/frame_selection.cc
@@ -1305,9 +1305,9 @@ return layout_selection_->ComputeSelectionStatus(cursor); } -SelectionState FrameSelection::ComputeLayoutSelectionStateForCursor( +SelectionState FrameSelection::ComputePaintingSelectionStateForCursor( const NGInlineCursorPosition& position) const { - return layout_selection_->ComputeSelectionStateForCursor(position); + return layout_selection_->ComputePaintingSelectionStateForCursor(position); } SelectionState FrameSelection::ComputeLayoutSelectionStateForInlineTextBox(
diff --git a/third_party/blink/renderer/core/editing/frame_selection.h b/third_party/blink/renderer/core/editing/frame_selection.h index 76224bd..910beda2 100644 --- a/third_party/blink/renderer/core/editing/frame_selection.h +++ b/third_party/blink/renderer/core/editing/frame_selection.h
@@ -313,7 +313,7 @@ const LayoutText& text) const; LayoutSelectionStatus ComputeLayoutSelectionStatus( const NGInlineCursor& cursor) const; - SelectionState ComputeLayoutSelectionStateForCursor( + SelectionState ComputePaintingSelectionStateForCursor( const NGInlineCursorPosition& position) const; SelectionState ComputeLayoutSelectionStateForInlineTextBox( const InlineTextBox& text_box) const;
diff --git a/third_party/blink/renderer/core/editing/layout_selection.cc b/third_party/blink/renderer/core/editing/layout_selection.cc index 67858695..8fed85f 100644 --- a/third_party/blink/renderer/core/editing/layout_selection.cc +++ b/third_party/blink/renderer/core/editing/layout_selection.cc
@@ -571,6 +571,17 @@ return GetSelectionStateFor(To<LayoutText>(*position.GetLayoutObject())); } +static SelectionState GetPaintingSelectionStateFor( + const LayoutText& layout_text) { + if (const auto* text_fragment = DynamicTo<LayoutTextFragment>(layout_text)) { + Node* node = text_fragment->AssociatedTextNode(); + if (!node) + return SelectionState::kNone; + return node->GetLayoutObject()->GetSelectionStateForPaint(); + } + return layout_text.GetSelectionStateForPaint(); +} + bool LayoutSelection::IsSelected(const LayoutObject& layout_object) { if (const auto* layout_text = DynamicTo<LayoutText>(layout_object)) return GetSelectionStateFor(*layout_text) != SelectionState::kNone; @@ -764,7 +775,7 @@ } } -SelectionState LayoutSelection::ComputeSelectionStateForCursor( +SelectionState LayoutSelection::ComputePaintingSelectionStateForCursor( const NGInlineCursorPosition& position) const { if (!position) return SelectionState::kNone; @@ -782,7 +793,9 @@ // associated with the current cursor position. This state will allow us know // which offset comparisons are valid, and determine if the selection // endpoints fall within the current cursor position. - SelectionState state = GetSelectionStateFor(position); + + SelectionState state = + GetPaintingSelectionStateFor(To<LayoutText>(*position.GetLayoutObject())); return ComputeSelectionStateFromOffsets(state, start_offset, end_offset); } @@ -800,6 +813,54 @@ return ComputeSelectionStateFromOffsets(state, start_offset, end_offset); } +static void SetSelectionStateForPaint( + const EphemeralRangeInFlatTree& selection) { + const Node* start_node = nullptr; + const Node* end_node = nullptr; + for (Node& node : selection.Nodes()) { + LayoutObject* const layout_object = node.GetLayoutObject(); + if (!layout_object || !layout_object->CanBeSelectionLeaf()) + continue; + + // If there's a LayoutText without a FragmentItem, it won't be painted, so + // we skip the object for the purposes of determining the selection state + // during paint (i.e. if selection starts or ends on one of these, the + // adjacent node should be the one to get the actual kStart/kEnd state). + if (const auto* layout_text = DynamicTo<LayoutText>(layout_object)) { + if (!layout_text->FirstInlineFragmentItemIndex()) + continue; + } + + if (!start_node) { + DCHECK(!end_node); + start_node = end_node = &node; + continue; + } + + if (end_node != start_node) { + end_node->GetLayoutObject()->SetSelectionStateForPaint( + SelectionState::kInside); + } + end_node = &node; + } + + // No valid LayOutObject found. + if (!start_node) { + DCHECK(!end_node); + return; + } + + if (start_node == end_node) { + start_node->GetLayoutObject()->SetSelectionStateForPaint( + SelectionState::kStartAndEnd); + } else { + start_node->GetLayoutObject()->SetSelectionStateForPaint( + SelectionState::kStart); + end_node->GetLayoutObject()->SetSelectionStateForPaint( + SelectionState::kEnd); + } +} + static NewPaintRangeAndSelectedNodes CalcSelectionRangeAndSetSelectionState( const FrameSelection& frame_selection) { const SelectionInDOMTree& selection_in_dom = @@ -844,6 +905,8 @@ return {}; } + SetSelectionStateForPaint(selection); + // Compute offset. It has value iff start/end is text. const absl::optional<unsigned> start_offset = ComputeStartOffset( *start_node, selection.StartPosition().ToOffsetInAnchor());
diff --git a/third_party/blink/renderer/core/editing/layout_selection.h b/third_party/blink/renderer/core/editing/layout_selection.h index 2f01d163..7e77f8d 100644 --- a/third_party/blink/renderer/core/editing/layout_selection.h +++ b/third_party/blink/renderer/core/editing/layout_selection.h
@@ -62,7 +62,7 @@ // starts within the position (and ends elsewhere), where kStartAndEnd means // the selection both starts and ends within the position. This information is // used at paint time to determine the edges of the layout selection. - SelectionState ComputeSelectionStateForCursor( + SelectionState ComputePaintingSelectionStateForCursor( const NGInlineCursorPosition&) const; // Compute the layout selection state relative to the InlineTextBox.
diff --git a/third_party/blink/renderer/core/editing/layout_selection_test.cc b/third_party/blink/renderer/core/editing/layout_selection_test.cc index c5fb446..6d01487 100644 --- a/third_party/blink/renderer/core/editing/layout_selection_test.cc +++ b/third_party/blink/renderer/core/editing/layout_selection_test.cc
@@ -1045,12 +1045,12 @@ return Selection().ComputeLayoutSelectionStatus(cursor); } - SelectionState ComputeLayoutSelectionStateForCursor( + SelectionState ComputePaintingSelectionStateForCursor( const LayoutObject& layout_object) const { DCHECK(layout_object.IsText()); NGInlineCursor cursor; cursor.MoveTo(layout_object); - return Selection().ComputeLayoutSelectionStateForCursor(cursor.Current()); + return Selection().ComputePaintingSelectionStateForCursor(cursor.Current()); } void SetSelectionAndUpdateLayoutSelection(const std::string& selection_text) { @@ -1104,7 +1104,8 @@ GetDocument().body()->firstChild()->firstChild()->GetLayoutObject(); EXPECT_EQ(LayoutSelectionStatus(1u, 3u, SelectSoftLineBreak::kSelected), ComputeLayoutSelectionStatus(*foo)); - EXPECT_EQ(SelectionState::kStart, ComputeLayoutSelectionStateForCursor(*foo)); + EXPECT_EQ(SelectionState::kStart, + ComputePaintingSelectionStateForCursor(*foo)); LayoutObject* const bar = GetDocument() .body() ->firstChild() @@ -1113,7 +1114,7 @@ ->GetLayoutObject(); EXPECT_EQ(LayoutSelectionStatus(0u, 2u, SelectSoftLineBreak::kNotSelected), ComputeLayoutSelectionStatus(*bar)); - EXPECT_EQ(SelectionState::kEnd, ComputeLayoutSelectionStateForCursor(*bar)); + EXPECT_EQ(SelectionState::kEnd, ComputePaintingSelectionStateForCursor(*bar)); } TEST_F(NGLayoutSelectionTest, StartAndEndState) { @@ -1123,7 +1124,7 @@ EXPECT_EQ(LayoutSelectionStatus(1u, 3u, SelectSoftLineBreak::kNotSelected), ComputeLayoutSelectionStatus(*foo)); EXPECT_EQ(SelectionState::kStartAndEnd, - ComputeLayoutSelectionStateForCursor(*foo)); + ComputePaintingSelectionStateForCursor(*foo)); LayoutObject* const bar = GetDocument() .body() ->firstChild() @@ -1132,7 +1133,27 @@ ->GetLayoutObject(); EXPECT_EQ(LayoutSelectionStatus(0u, 0u, SelectSoftLineBreak::kNotSelected), ComputeLayoutSelectionStatus(*bar)); - EXPECT_EQ(SelectionState::kNone, ComputeLayoutSelectionStateForCursor(*bar)); + EXPECT_EQ(SelectionState::kNone, + ComputePaintingSelectionStateForCursor(*bar)); +} + +TEST_F(NGLayoutSelectionTest, UnpaintedStartAndEndState) { + SetSelectionAndUpdateLayoutSelection( + "<img width=10px height=10px>^<div>\n<span " + "id=selected>foo</span>\n</div>|<img width=10px height=10px>" + "<div id=trailing>bar</div>"); + LayoutObject* const foo = + GetElementById("selected")->firstChild()->GetLayoutObject(); + EXPECT_EQ(LayoutSelectionStatus(0u, 3u, SelectSoftLineBreak::kSelected), + ComputeLayoutSelectionStatus(*foo)); + EXPECT_EQ(SelectionState::kStartAndEnd, + ComputePaintingSelectionStateForCursor(*foo)); + LayoutObject* const bar = + GetElementById("trailing")->firstChild()->GetLayoutObject(); + EXPECT_EQ(LayoutSelectionStatus(0u, 0u, SelectSoftLineBreak::kNotSelected), + ComputeLayoutSelectionStatus(*bar)); + EXPECT_EQ(SelectionState::kNone, + ComputePaintingSelectionStateForCursor(*bar)); } TEST_F(NGLayoutSelectionTest, StartAndEndMultilineState) { @@ -1145,8 +1166,9 @@ cursor.MoveTo(*div_text); EXPECT_EQ(LayoutSelectionStatus(1u, 3u, SelectSoftLineBreak::kNotSelected), Selection().ComputeLayoutSelectionStatus(cursor)); - EXPECT_EQ(SelectionState::kStart, - Selection().ComputeLayoutSelectionStateForCursor(cursor.Current())); + EXPECT_EQ( + SelectionState::kStart, + Selection().ComputePaintingSelectionStateForCursor(cursor.Current())); // Move to 'bar' text. cursor.MoveToNext(); @@ -1154,8 +1176,9 @@ cursor.MoveToNext(); EXPECT_EQ(LayoutSelectionStatus(4u, 7u, SelectSoftLineBreak::kNotSelected), Selection().ComputeLayoutSelectionStatus(cursor)); - EXPECT_EQ(SelectionState::kInside, - Selection().ComputeLayoutSelectionStateForCursor(cursor.Current())); + EXPECT_EQ( + SelectionState::kInside, + Selection().ComputePaintingSelectionStateForCursor(cursor.Current())); // Move to 'baz' text. cursor.MoveToNext(); @@ -1163,8 +1186,9 @@ cursor.MoveToNext(); EXPECT_EQ(LayoutSelectionStatus(8u, 10u, SelectSoftLineBreak::kNotSelected), Selection().ComputeLayoutSelectionStatus(cursor)); - EXPECT_EQ(SelectionState::kEnd, - Selection().ComputeLayoutSelectionStateForCursor(cursor.Current())); + EXPECT_EQ( + SelectionState::kEnd, + Selection().ComputePaintingSelectionStateForCursor(cursor.Current())); } TEST_F(NGLayoutSelectionTest, BeforeStartAndAfterEndMultilineState) { @@ -1177,8 +1201,9 @@ cursor.MoveTo(*div_text); EXPECT_EQ(LayoutSelectionStatus(3u, 3u, SelectSoftLineBreak::kNotSelected), Selection().ComputeLayoutSelectionStatus(cursor)); - EXPECT_EQ(SelectionState::kNone, - Selection().ComputeLayoutSelectionStateForCursor(cursor.Current())); + EXPECT_EQ( + SelectionState::kNone, + Selection().ComputePaintingSelectionStateForCursor(cursor.Current())); // Move to 'bar' text. cursor.MoveToNext(); @@ -1186,8 +1211,9 @@ cursor.MoveToNext(); EXPECT_EQ(LayoutSelectionStatus(6u, 7u, SelectSoftLineBreak::kSelected), Selection().ComputeLayoutSelectionStatus(cursor)); - EXPECT_EQ(SelectionState::kStart, - Selection().ComputeLayoutSelectionStateForCursor(cursor.Current())); + EXPECT_EQ( + SelectionState::kStart, + Selection().ComputePaintingSelectionStateForCursor(cursor.Current())); LayoutObject* const second_div_text = GetDocument().body()->lastChild()->firstChild()->GetLayoutObject(); @@ -1196,7 +1222,7 @@ EXPECT_EQ(LayoutSelectionStatus(0u, 2u, SelectSoftLineBreak::kNotSelected), Selection().ComputeLayoutSelectionStatus(second_cursor)); EXPECT_EQ(SelectionState::kEnd, - Selection().ComputeLayoutSelectionStateForCursor( + Selection().ComputePaintingSelectionStateForCursor( second_cursor.Current())); // Move to 'quu' text. @@ -1206,7 +1232,7 @@ EXPECT_EQ(LayoutSelectionStatus(4u, 4u, SelectSoftLineBreak::kNotSelected), Selection().ComputeLayoutSelectionStatus(second_cursor)); EXPECT_EQ(SelectionState::kNone, - Selection().ComputeLayoutSelectionStateForCursor( + Selection().ComputePaintingSelectionStateForCursor( second_cursor.Current())); } @@ -1303,7 +1329,7 @@ EXPECT_EQ(LayoutSelectionStatus(3u, 4u, SelectSoftLineBreak::kNotSelected), ComputeLayoutSelectionStatus(*layout_br)); EXPECT_EQ(SelectionState::kStartAndEnd, - ComputeLayoutSelectionStateForCursor(*layout_br)); + ComputePaintingSelectionStateForCursor(*layout_br)); } // https://crbug.com/907186 @@ -1315,7 +1341,7 @@ EXPECT_EQ(LayoutSelectionStatus(3u, 4u, SelectSoftLineBreak::kSelected), ComputeLayoutSelectionStatus(*layout_wbr)); EXPECT_EQ(SelectionState::kInside, - ComputeLayoutSelectionStateForCursor(*layout_wbr)); + ComputePaintingSelectionStateForCursor(*layout_wbr)); } TEST_F(NGLayoutSelectionTest, SoftHyphen0to1) {
diff --git a/third_party/blink/renderer/core/layout/deferred_shaping_test.cc b/third_party/blink/renderer/core/layout/deferred_shaping_test.cc index 22370311..2e7a63c3 100644 --- a/third_party/blink/renderer/core/layout/deferred_shaping_test.cc +++ b/third_party/blink/renderer/core/layout/deferred_shaping_test.cc
@@ -158,23 +158,6 @@ EXPECT_TRUE(IsLocked("target")); } -TEST_F(DeferredShapingTest, NoAutoLock) { - SetBodyInnerHTML(R"HTML( -<div style="height:1800px"></div> -<div id="target">IFC</div> -)HTML"); - UpdateAllLifecyclePhasesForTest(); - EXPECT_TRUE(IsDefer("target")); - EXPECT_TRUE(IsLocked("target")); - - auto* context = GetElementById("target")->GetDisplayLockContext(); - context->NotifySubtreeGainedSelection(); - EXPECT_FALSE(IsLocked("target")); - - context->NotifySubtreeLostSelection(); - EXPECT_FALSE(IsLocked("target")); -} - TEST_F(DeferredShapingTest, ListMarkerCrash) { SetBodyInnerHTML(R"HTML( <div style="height:1800px"></div>
diff --git a/third_party/blink/renderer/core/layout/layout_object.h b/third_party/blink/renderer/core/layout/layout_object.h index e304a5d..ed3969b 100644 --- a/third_party/blink/renderer/core/layout/layout_object.h +++ b/third_party/blink/renderer/core/layout/layout_object.h
@@ -2749,6 +2749,15 @@ } bool CanUpdateSelectionOnRootLineBoxes() const; + SelectionState GetSelectionStateForPaint() const { + NOT_DESTROYED(); + return bitfields_.GetSelectionStateForPaint(); + } + void SetSelectionStateForPaint(SelectionState state) { + NOT_DESTROYED(); + bitfields_.SetSelectionStateForPaint(state); + } + // A single rectangle that encompasses all of the selected objects within this // object. Used to determine the tightest possible bounding box for the // selection. The rect is in the object's local physical coordinate space. @@ -3966,6 +3975,8 @@ needs_devtools_info_(false), positioned_state_(kIsStaticallyPositioned), selection_state_(static_cast<unsigned>(SelectionState::kNone)), + selection_state_for_paint_( + static_cast<unsigned>(SelectionState::kNone)), subtree_paint_property_update_reasons_( static_cast<unsigned>(SubtreePaintPropertyUpdateReason::kNone)), background_paint_location_(kBackgroundPaintInBorderBoxSpace), @@ -4314,7 +4325,15 @@ // This is the cached 'position' value of this object // (see ComputedStyle::position). unsigned positioned_state_ : 2; // PositionedState + + // `selection_state_` is direct mapping of the DOM selection into the + // respective LayoutObjects that `CanBeSelectionLeaf()`. + // `selection_state_for_paint_` is adjusted so that the state takes into + // account whether such a LayoutObject will be painted. If selection + // starts/ends in an object that is not painted, we won't be able to record + // the bounds for composited selection state that is pushed to cc. unsigned selection_state_ : 3; // SelectionState + unsigned selection_state_for_paint_ : 3; // SelectionState // Reasons for the full subtree invalidation. unsigned subtree_paint_property_update_reasons_ @@ -4374,6 +4393,14 @@ selection_state_ = static_cast<unsigned>(selection_state); } + ALWAYS_INLINE SelectionState GetSelectionStateForPaint() const { + return static_cast<SelectionState>(selection_state_for_paint_); + } + ALWAYS_INLINE void SetSelectionStateForPaint( + SelectionState selection_state) { + selection_state_for_paint_ = static_cast<unsigned>(selection_state); + } + ALWAYS_INLINE unsigned SubtreePaintPropertyUpdateReasons() const { return subtree_paint_property_update_reasons_; }
diff --git a/third_party/blink/renderer/core/layout/ng/inline/ng_inline_cursor.cc b/third_party/blink/renderer/core/layout/ng/inline/ng_inline_cursor.cc index a89d57e..3b31d02 100644 --- a/third_party/blink/renderer/core/layout/ng/inline/ng_inline_cursor.cc +++ b/third_party/blink/renderer/core/layout/ng/inline/ng_inline_cursor.cc
@@ -965,6 +965,20 @@ *this = cursor; } +void NGInlineCursor::MoveToParent() { + wtf_size_t count = 0; + if (UNLIKELY(!Current())) + return; + for (;;) { + MoveToPrevious(); + if (!Current()) + return; + ++count; + if (Current()->DescendantsCount() > count) + return; + } +} + void NGInlineCursor::MoveToContainingLine() { DCHECK(!Current().IsLineBox()); if (current_.item_) {
diff --git a/third_party/blink/renderer/core/layout/ng/inline/ng_inline_cursor.h b/third_party/blink/renderer/core/layout/ng/inline/ng_inline_cursor.h index 8af259c..a79650c 100644 --- a/third_party/blink/renderer/core/layout/ng/inline/ng_inline_cursor.h +++ b/third_party/blink/renderer/core/layout/ng/inline/ng_inline_cursor.h
@@ -407,6 +407,9 @@ // should be part of |this| cursor. void MoveTo(const NGInlineCursor& cursor); + // Move to the parent box or line box. + void MoveToParent(); + // Move to containing line box. It is error if the current position is line. void MoveToContainingLine();
diff --git a/third_party/blink/renderer/core/layout/ng/inline/ng_inline_cursor_test.cc b/third_party/blink/renderer/core/layout/ng/inline/ng_inline_cursor_test.cc index 29ee8e8e..9480814d 100644 --- a/third_party/blink/renderer/core/layout/ng/inline/ng_inline_cursor_test.cc +++ b/third_party/blink/renderer/core/layout/ng/inline/ng_inline_cursor_test.cc
@@ -170,6 +170,41 @@ EXPECT_EQ(line.GetLayoutBlockFlow(), cursor.GetLayoutBlockFlow()); } +TEST_P(NGInlineCursorTest, Parent) { + NGInlineCursor cursor = SetupCursor(R"HTML( + <style> + span { background: yellow; } /* Ensure not culled. */ + </style> + <body> + <div id="root"> + text1 + <span id="span1"> + span1 + <span></span> + <span id="span2"> + span2 + <span style="display: inline-block"></span> + <span id="span3"> + span3 + </span> + </span> + </span> + </div> + <body> +)HTML"); + cursor.MoveTo(*GetLayoutObjectByElementId("span3")); + ASSERT_TRUE(cursor); + Vector<AtomicString> ids; + for (;;) { + cursor.MoveToParent(); + if (!cursor) + break; + const auto* element = To<Element>(cursor.Current()->GetNode()); + ids.push_back(element->GetIdAttribute()); + } + EXPECT_THAT(ids, testing::ElementsAre("span2", "span1", "root")); +} + TEST_P(NGInlineCursorTest, ContainingLine) { // TDOO(yosin): Remove <style> once NGFragmentItem don't do culled inline. InsertStyleElement("a, b { background: gray; }");
diff --git a/third_party/blink/renderer/core/layout/ng/ng_ink_overflow.cc b/third_party/blink/renderer/core/layout/ng/ng_ink_overflow.cc index aa386f5..4aec708 100644 --- a/third_party/blink/renderer/core/layout/ng/ng_ink_overflow.cc +++ b/third_party/blink/renderer/core/layout/ng/ng_ink_overflow.cc
@@ -517,14 +517,14 @@ // Ideally we should pass MinimumThickness1(false) if this function is // called for NGFragmentItem::kSvgText. However it requires to add arguments // to some functions. - // We pass MinimumTHickness1(true) even for kSvgText. it's acceptable + // We pass MinimumThickness1(true) even for kSvgText. it's acceptable // because it just makes the resultant ink overflow slightly larger. const MinimumThickness1 kMinimumThicknessIsOne(true); TextDecorationInfo decoration_info( - offset, ink_overflow.Width(), style.GetFontBaseline(), style, scaled_font, + offset, ink_overflow.Width(), style, /* inline_context */ nullptr, - /* selection_text_decoration */ absl::nullopt, - /* decorating_box_style */ nullptr, kMinimumThicknessIsOne); + /* selection_text_decoration */ absl::nullopt, &scaled_font, + kMinimumThicknessIsOne); NGTextDecorationOffset decoration_offset(decoration_info.Style(), style, nullptr); const Vector<AppliedTextDecoration>& decorations =
diff --git a/third_party/blink/renderer/core/paint/inline_text_box_painter.cc b/third_party/blink/renderer/core/paint/inline_text_box_painter.cc index b9254b9..6b82da3 100644 --- a/third_party/blink/renderer/core/paint/inline_text_box_painter.cc +++ b/third_party/blink/renderer/core/paint/inline_text_box_painter.cc
@@ -428,9 +428,10 @@ selection_style.selection_text_decoration) : absl::nullopt; decoration_info.emplace( - local_origin, width, inline_text_box_.Root().BaselineType(), - style_to_use, style_to_use.GetFont(), /* inline_context */ nullptr, - selection_text_decoration, decorating_box_style); + local_origin, width, style_to_use, + /* inline_context */ nullptr, selection_text_decoration, + /* font_override */ nullptr, MinimumThickness1(true), 1.0f, + inline_text_box_.Root().BaselineType(), decorating_box_style); TextDecorationOffset decoration_offset(decoration_info->Style(), &inline_text_box_, decorating_box); text_painter.PaintDecorationsExceptLineThrough(
diff --git a/third_party/blink/renderer/core/paint/ng/ng_highlight_painter.cc b/third_party/blink/renderer/core/paint/ng/ng_highlight_painter.cc index 465137c7..0971f32 100644 --- a/third_party/blink/renderer/core/paint/ng/ng_highlight_painter.cc +++ b/third_party/blink/renderer/core/paint/ng/ng_highlight_painter.cc
@@ -216,7 +216,7 @@ const FrameSelection& frame_selection) : selection_status_( frame_selection.ComputeLayoutSelectionStatus(containing_block)), - state_(frame_selection.ComputeLayoutSelectionStateForCursor( + state_(frame_selection.ComputePaintingSelectionStateForCursor( containing_block.Current())), containing_block_(containing_block), box_offset_(box_offset),
diff --git a/third_party/blink/renderer/core/paint/ng/ng_text_combine_painter.cc b/third_party/blink/renderer/core/paint/ng/ng_text_combine_painter.cc index 4f214e5c..9eb2528f 100644 --- a/third_party/blink/renderer/core/paint/ng/ng_text_combine_painter.cc +++ b/third_party/blink/renderer/core/paint/ng/ng_text_combine_painter.cc
@@ -97,12 +97,9 @@ const TextPaintStyle& text_style) { // Setup arguments for painting text decorations const absl::optional<AppliedTextDecoration> selection_text_decoration; - const ComputedStyle* const decorating_box_style = nullptr; TextDecorationInfo decoration_info( - text_frame_rect_.offset, text_frame_rect_.size.width, - style_.GetFontBaseline(), style_, style_.GetFont(), - /* inline_context */ nullptr, selection_text_decoration, - decorating_box_style); + text_frame_rect_.offset, text_frame_rect_.size.width, style_, + /* inline_context */ nullptr, selection_text_decoration); const NGTextDecorationOffset decoration_offset(style_, style_, nullptr); const auto& applied_text_decorations = style_.AppliedTextDecorations();
diff --git a/third_party/blink/renderer/core/paint/ng/ng_text_decoration_painter.cc b/third_party/blink/renderer/core/paint/ng/ng_text_decoration_painter.cc index 5a9d1de..f34121c 100644 --- a/third_party/blink/renderer/core/paint/ng/ng_text_decoration_painter.cc +++ b/third_party/blink/renderer/core/paint/ng/ng_text_decoration_painter.cc
@@ -73,17 +73,15 @@ top *= scaling_factor / text_item_.SvgScalingFactor(); top -= scaled_font.PrimaryFont()->GetFontMetrics().FixedAscent(); result.emplace(PhysicalOffset(decoration_rect_.offset.left, top), - decoration_rect_.Width(), style.GetFontBaseline(), style, - scaled_font, text_painter_.InlineContext(), - effective_selection_decoration, - /* decorating_box_style */ nullptr, MinimumThickness1(false), - scaling_factor); + decoration_rect_.Width(), style, + text_painter_.InlineContext(), + effective_selection_decoration, &scaled_font, + MinimumThickness1(false), scaling_factor); } else { result.emplace( - decoration_rect_.offset, decoration_rect_.Width(), - style.GetFontBaseline(), style, text_item_.ScaledFont(), + decoration_rect_.offset, decoration_rect_.Width(), style, text_painter_.InlineContext(), effective_selection_decoration, - /* decorating_box_style */ nullptr, + &text_item_.ScaledFont(), MinimumThickness1(text_item_.Type() != NGFragmentItem::kSvgText)); } }
diff --git a/third_party/blink/renderer/core/paint/text_decoration_info.cc b/third_party/blink/renderer/core/paint/text_decoration_info.cc index 771d864..8f970411 100644 --- a/third_party/blink/renderer/core/paint/text_decoration_info.cc +++ b/third_party/blink/renderer/core/paint/text_decoration_info.cc
@@ -15,11 +15,13 @@ namespace { -static int kUndefinedDecorationIndex = -1; - static ResolvedUnderlinePosition ResolveUnderlinePosition( const ComputedStyle& style, - FontBaseline baseline_type) { + const absl::optional<FontBaseline>& baseline_type_override) { + const FontBaseline baseline_type = baseline_type_override + ? *baseline_type_override + : style.GetFontBaseline(); + // |auto| should resolve to |under| to avoid drawing through glyphs in // scripts where it would not be appropriate (e.g., ideographs.) // However, this has performance implications. For now, we only work with @@ -121,52 +123,77 @@ TextDecorationInfo::TextDecorationInfo( PhysicalOffset local_origin, LayoutUnit width, - FontBaseline baseline_type, - const ComputedStyle& style, - const Font& scaled_font, + const ComputedStyle& target_style, const NGInlinePaintContext* inline_context, const absl::optional<AppliedTextDecoration> selection_text_decoration, - const ComputedStyle* decorating_box_style, + const Font* font_override, MinimumThickness1 minimum_thickness1, - float scaling_factor) - : style_(style), + float scaling_factor, + absl::optional<FontBaseline> baseline_type_override, + const ComputedStyle* decorating_box_style) + : target_style_(target_style), selection_text_decoration_(selection_text_decoration), - baseline_type_(baseline_type), + font_override_(font_override && font_override != &target_style.GetFont() + ? font_override + : nullptr), + decorating_box_style_override_(decorating_box_style), + baseline_type_override_(baseline_type_override), + local_origin_(local_origin), width_(width), - font_data_(scaled_font.PrimaryFont()), - baseline_(font_data_ ? font_data_->GetFontMetrics().FloatAscent() : 0), - computed_font_size_(scaled_font.GetFontDescription().ComputedSize()), scaling_factor_(scaling_factor), - underline_position_(ResolveUnderlinePosition(style_, baseline_type_)), - local_origin_(gfx::PointF(local_origin)), minimum_thickness_is_one_(minimum_thickness1), - antialias_(ShouldSetDecorationAntialias(style)), - decoration_index_(kUndefinedDecorationIndex) { - DCHECK(font_data_); - - for (const AppliedTextDecoration& decoration : - style_.AppliedTextDecorations()) { - if (EnumHasFlags(decoration.Lines(), TextDecorationLine::kSpellingError) || - EnumHasFlags(decoration.Lines(), TextDecorationLine::kGrammarError)) { - // Spelling and grammar error thickness doesn't depend on the font size. -#if BUILDFLAG(IS_MAC) - applied_decorations_thickness_.push_back(2.f); -#else - applied_decorations_thickness_.push_back(1.f); -#endif - } else { - applied_decorations_thickness_.push_back(ComputeUnderlineThickness( - decoration.Thickness(), decorating_box_style)); - } - } - DCHECK_EQ(style_.AppliedTextDecorations().size(), - applied_decorations_thickness_.size()); + antialias_(ShouldSetDecorationAntialias(target_style)) { + UpdateForDecorationIndex(); } void TextDecorationInfo::SetDecorationIndex(int decoration_index) { DCHECK_LT(decoration_index, - static_cast<int>(applied_decorations_thickness_.size())); + static_cast<int>(target_style_.AppliedTextDecorations().size())); + if (decoration_index_ == decoration_index) + return; decoration_index_ = decoration_index; + UpdateForDecorationIndex(); +} + +// Update cached properties of |this| for the |decoration_index_|. +void TextDecorationInfo::UpdateForDecorationIndex() { + DCHECK_LT(decoration_index_, + static_cast<int>(target_style_.AppliedTextDecorations().size())); + applied_text_decoration_ = + &target_style_.AppliedTextDecorations()[decoration_index_]; + + // Compute the |ComputedStyle| of the decorating box. + // + // |decorating_box_style_override_| is intentionally ignored, as it is used + // only by the legacy, and the legacy uses it only when computing thickness. + // See |ComputeThickness|. + // + // TODO(crbug.com/1008951): Using |&target_style_| doesn't take decoration box + // into account. + const ComputedStyle* decorating_box_style = &target_style_; + DCHECK(decorating_box_style); + if (decorating_box_style != decorating_box_style_) { + decorating_box_style_ = decorating_box_style; + underline_position_ = ResolveUnderlinePosition(*decorating_box_style, + baseline_type_override_); + } + + // Compute the |Font| and its properties. + const Font* font = + font_override_ ? font_override_ : &decorating_box_style_->GetFont(); + DCHECK(font); + if (font != font_) { + font_ = font; + computed_font_size_ = font->GetFontDescription().ComputedSize(); + + const SimpleFontData* font_data = font->PrimaryFont(); + if (font_data != font_data_) { + font_data_ = font_data; + baseline_ = font_data ? font_data->GetFontMetrics().FloatAscent() : 0; + } + } + + resolved_thickness_ = ComputeThickness(); } void TextDecorationInfo::SetLineData(TextDecorationLine line, @@ -243,7 +270,8 @@ #endif } - return style_.AppliedTextDecorations()[decoration_index_].Style(); + DCHECK(applied_text_decoration_); + return applied_text_decoration_->Style(); } Color TextDecorationInfo::LineColor() const { @@ -258,17 +286,18 @@ // Find the matched normal and selection |AppliedTextDecoration| // and use the text-decoration-color from selection when it is. + DCHECK(applied_text_decoration_); if (selection_text_decoration_ && - style_.AppliedTextDecorations()[decoration_index_].Lines() == + applied_text_decoration_->Lines() == selection_text_decoration_.value().Lines()) { return selection_text_decoration_.value().GetColor(); } - return style_.AppliedTextDecorations()[decoration_index_].GetColor(); + return applied_text_decoration_->GetColor(); } gfx::PointF TextDecorationInfo::StartPoint() const { - return local_origin_ + gfx::Vector2dF(0, line_data_.line_offset); + return gfx::PointF(local_origin_) + gfx::Vector2dF(0, line_data_.line_offset); } float TextDecorationInfo::DoubleOffset() const { return line_data_.double_offset; @@ -278,9 +307,30 @@ return TextDecorationStyleToStrokeStyle(DecorationStyle()); } +float TextDecorationInfo::ComputeThickness() const { + DCHECK(applied_text_decoration_); + const AppliedTextDecoration& decoration = *applied_text_decoration_; + if (EnumHasFlags(decoration.Lines(), TextDecorationLine::kSpellingError) || + EnumHasFlags(decoration.Lines(), TextDecorationLine::kGrammarError)) { + // Spelling and grammar error thickness doesn't depend on the font size. +#if BUILDFLAG(IS_MAC) + return 2.f; +#else + return 1.f; +#endif + } + + // Use |decorating_box_style_override_| to compute thickness. It is used only + // by the legacy, and this matches the legacy behavior. + return ComputeUnderlineThickness(decoration.Thickness(), + decorating_box_style_override_ + ? decorating_box_style_override_ + : decorating_box_style_); +} + float TextDecorationInfo::ComputeUnderlineThickness( const TextDecorationThickness& applied_decoration_thickness, - const ComputedStyle* decorating_box_style) { + const ComputedStyle* decorating_box_style) const { const float minimum_thickness = minimum_thickness_is_one_ ? 1.0f : 0.0f; float thickness = 0; if ((underline_position_ ==
diff --git a/third_party/blink/renderer/core/paint/text_decoration_info.h b/third_party/blink/renderer/core/paint/text_decoration_info.h index cdf751be..699064e 100644 --- a/third_party/blink/renderer/core/paint/text_decoration_info.h +++ b/third_party/blink/renderer/core/paint/text_decoration_info.h
@@ -46,14 +46,15 @@ TextDecorationInfo( PhysicalOffset local_origin, LayoutUnit width, - FontBaseline baseline_type, - const ComputedStyle& style, - const Font& scaled_font, + const ComputedStyle& target_style, const NGInlinePaintContext* inline_context, const absl::optional<AppliedTextDecoration> selection_text_decoration, - const ComputedStyle* decorating_box_style, + const Font* font_override = nullptr, MinimumThickness1 minimum_thickness1 = MinimumThickness1(true), - float scaling_factor = 1.0f); + float scaling_factor = 1.0f, + // Following arguments are used only in legacy. They're deprecated. + absl::optional<FontBaseline> baseline_type_override = absl::nullopt, + const ComputedStyle* decorating_box_style = nullptr); // Set the decoration to use when painting and returning values. // Must be set before calling any other method, and can be called @@ -74,7 +75,7 @@ // These methods do not depend on SetDecorationIndex LayoutUnit Width() const { return width_; } float Baseline() const { return baseline_; } - const ComputedStyle& Style() const { return style_; } + const ComputedStyle& Style() const { return target_style_; } float ComputedFontSize() const { return computed_font_size_; } const SimpleFontData* FontData() const { return font_data_; } // Returns the scaling factor for the decoration. @@ -86,15 +87,13 @@ } bool ShouldAntialias() const { return antialias_; } float InkSkipClipUpper(float bounds_upper) const { - return -baseline_ + bounds_upper - local_origin_.y(); + return -baseline_ + bounds_upper - local_origin_.top.ToFloat(); } // SetDecorationIndex must be called before using these methods. ETextDecorationStyle DecorationStyle() const; Color LineColor() const; - float ResolvedThickness() const { - return applied_decorations_thickness_[decoration_index_]; - } + float ResolvedThickness() const { return resolved_thickness_; } enum StrokeStyle StrokeStyle() const; // SetLineData must be called before using the remaining methods. @@ -111,9 +110,10 @@ void SetHighlightOverrideColor(const absl::optional<Color>&); private: + float ComputeThickness() const; float ComputeUnderlineThickness( const TextDecorationThickness& applied_decoration_thickness, - const ComputedStyle* decorating_box_style); + const ComputedStyle* decorating_box_style) const; gfx::RectF BoundsForDottedOrDashed() const; gfx::RectF BoundsForWavy() const; @@ -127,20 +127,44 @@ line_data_.line == TextDecorationLine::kGrammarError; } - const ComputedStyle& style_; + void UpdateForDecorationIndex(); + + // The |ComputedStyle| of the target text/box to paint decorations for. + const ComputedStyle& target_style_; + // The |ComputedStyle| of the [decorating box]. Decorations are computed from + // this style. + // [decorating box]: https://drafts.csswg.org/css-text-decor-3/#decorating-box + const ComputedStyle* decorating_box_style_ = nullptr; + + // Decorating box properties for the current |decoration_index_|. + const AppliedTextDecoration* applied_text_decoration_ = nullptr; const absl::optional<AppliedTextDecoration> selection_text_decoration_; - const FontBaseline baseline_type_; + const Font* font_ = nullptr; + const SimpleFontData* font_data_ = nullptr; + + // These "overrides" fields force using the specified style or font instead + // of the one from the decorating box. Note that using them means that the + // [decorating box] is not supported. + const Font* const font_override_ = nullptr; + const ComputedStyle* const decorating_box_style_override_ = nullptr; + const absl::optional<FontBaseline> baseline_type_override_; + + // Geometry of the target text/box. + const PhysicalOffset local_origin_; const LayoutUnit width_; - const SimpleFontData* font_data_; - const float baseline_; - const float computed_font_size_; + + // Cached properties for the current |decoration_index_|. + float baseline_ = 0.f; + float computed_font_size_ = 0.f; + float resolved_thickness_ = 0.f; const float scaling_factor_; - ResolvedUnderlinePosition underline_position_; - gfx::PointF local_origin_; - const bool minimum_thickness_is_one_; - bool antialias_; - Vector<float> applied_decorations_thickness_; - int decoration_index_; + ResolvedUnderlinePosition underline_position_ = + ResolvedUnderlinePosition::kNearAlphabeticBaselineAuto; + + int decoration_index_ = 0; + + const bool minimum_thickness_is_one_ = false; + const bool antialias_ = false; struct LineData { TextDecorationLine line;
diff --git a/third_party/blink/renderer/modules/webgpu/gpu_render_pipeline.cc b/third_party/blink/renderer/modules/webgpu/gpu_render_pipeline.cc index 46e2297..366b7b1 100644 --- a/third_party/blink/renderer/modules/webgpu/gpu_render_pipeline.cc +++ b/third_party/blink/renderer/modules/webgpu/gpu_render_pipeline.cc
@@ -195,7 +195,11 @@ for (wtf_size_t i = 0; i < dawn_vertex->bufferCount; ++i) { const auto& maybe_buffer = descriptor->buffers()[i]; if (!maybe_buffer) { - // This buffer layout is empty + // This buffer layout is empty. + // Explicitly set VertexBufferNotUsed step mode to represent + // this slot is empty for Dawn, and continue the loop. + dawn_desc_info->buffers[i].stepMode = + WGPUVertexStepMode::WGPUVertexStepMode_VertexBufferNotUsed; continue; } const GPUVertexBufferLayout* buffer = maybe_buffer.Get();
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 index 4a755ea5..cf5de846 100644 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
@@ -2293,6 +2293,10 @@ implied_by: ["TestFeature"], }, { + // crbug.com/1008951 + name: "TextDecoratingBox", + }, + { name: "TextDetector", status: "experimental", },
diff --git a/third_party/blink/renderer/platform/wtf/BUILD.gn b/third_party/blink/renderer/platform/wtf/BUILD.gn index af1069c..421ece6 100644 --- a/third_party/blink/renderer/platform/wtf/BUILD.gn +++ b/third_party/blink/renderer/platform/wtf/BUILD.gn
@@ -239,6 +239,10 @@ ] } + if (!is_mac && (current_cpu == "x86" || current_cpu == "x64")) { + sources += [ "text/ascii_fast_path.cc" ] + } + if (is_win) { cflags = [ "/wd4068" ] # Unknown pragma.
diff --git a/third_party/blink/renderer/platform/wtf/text/ascii_fast_path.cc b/third_party/blink/renderer/platform/wtf/text/ascii_fast_path.cc new file mode 100644 index 0000000..d68f4a5 --- /dev/null +++ b/third_party/blink/renderer/platform/wtf/text/ascii_fast_path.cc
@@ -0,0 +1,11 @@ +// Copyright 2022 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "third_party/blink/renderer/platform/wtf/text/ascii_fast_path.h" + +namespace WTF { + +bool g_enable_sse_path_for_copy_lchars = false; + +} // namespace WTF
diff --git a/third_party/blink/renderer/platform/wtf/text/ascii_fast_path.h b/third_party/blink/renderer/platform/wtf/text/ascii_fast_path.h index 3c715cdf..a4dc1d3 100644 --- a/third_party/blink/renderer/platform/wtf/text/ascii_fast_path.h +++ b/third_party/blink/renderer/platform/wtf/text/ascii_fast_path.h
@@ -33,8 +33,12 @@ #include "third_party/blink/renderer/platform/wtf/text/wtf_uchar.h" #include "third_party/blink/renderer/platform/wtf/wtf_size_t.h" -#if BUILDFLAG(IS_MAC) && defined(ARCH_CPU_X86_FAMILY) +#if defined(ARCH_CPU_X86_FAMILY) #include <emmintrin.h> + +#if !BUILDFLAG(IS_MAC) +#include "third_party/blink/renderer/platform/wtf/wtf_export.h" +#endif #endif namespace WTF { @@ -187,10 +191,26 @@ return new_impl; } +#if !BUILDFLAG(IS_MAC) && defined(ARCH_CPU_X86_FAMILY) +// Controls whether CopyLCharsFromUCharSource() uses intrinsics. This is backed +// by a feature, but a variable is used as this code is performance sensitive. +WTF_EXPORT extern bool g_enable_sse_path_for_copy_lchars; +#endif + inline void CopyLCharsFromUCharSource(LChar* destination, const UChar* source, size_t length) { -#if BUILDFLAG(IS_MAC) && defined(ARCH_CPU_X86_FAMILY) +#if defined(ARCH_CPU_X86_FAMILY) +#if !BUILDFLAG(IS_MAC) + if (!g_enable_sse_path_for_copy_lchars) { + for (size_t i = 0; i < length; ++i) { + DCHECK(!(source[i] & 0xff00)); + destination[i] = static_cast<LChar>(source[i]); + } + return; + } +#endif + const uintptr_t kMemoryAccessSize = 16; // Memory accesses on 16 byte (128 bit) alignment const uintptr_t kMemoryAccessMask = kMemoryAccessSize - 1;
diff --git a/third_party/blink/renderer/platform/wtf/wtf.cc b/third_party/blink/renderer/platform/wtf/wtf.cc index 34126cf..9ebeb61 100644 --- a/third_party/blink/renderer/platform/wtf/wtf.cc +++ b/third_party/blink/renderer/platform/wtf/wtf.cc
@@ -42,11 +42,21 @@ #include "third_party/blink/renderer/platform/wtf/thread_specific.h" #include "third_party/blink/renderer/platform/wtf/threading.h" +#if !BUILDFLAG(IS_MAC) && defined(ARCH_CPU_X86_FAMILY) +#include "base/feature_list.h" +#include "third_party/blink/renderer/platform/wtf/text/ascii_fast_path.h" +#endif + namespace WTF { bool g_initialized; base::PlatformThreadId g_main_thread_identifier; +#if !BUILDFLAG(IS_MAC) && defined(ARCH_CPU_X86_FAMILY) +const base::Feature kEnableSsePathForCopyLCharsX86{ + "EnableSsePathForCopyLCharsX86", base::FEATURE_DISABLED_BY_DEFAULT}; +#endif + #if BUILDFLAG(IS_ANDROID) // On Android going through libc (gettid) is faster than runtime-lib emulation. bool IsMainThread() { @@ -71,6 +81,11 @@ #endif g_main_thread_identifier = CurrentThread(); +#if !BUILDFLAG(IS_MAC) && defined(ARCH_CPU_X86_FAMILY) + g_enable_sse_path_for_copy_lchars = + base::FeatureList::IsEnabled(kEnableSsePathForCopyLCharsX86); +#endif + Threading::Initialize(); // Force initialization of static DoubleToStringConverter converter variable
diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/web_tests/TestExpectations index 9216b9b..cc7a66b 100644 --- a/third_party/blink/web_tests/TestExpectations +++ b/third_party/blink/web_tests/TestExpectations
@@ -876,11 +876,6 @@ crbug.com/1299442 [ Mac11 ] virtual/off-main-thread-css-paint/external/wpt/css/css-paint-api/paint-arguments.https.html [ Failure ] crbug.com/1299442 [ Mac10.15 ] virtual/off-main-thread-css-paint/external/wpt/css/css-paint-api/registered-property-value-011.https.html [ Failure ] -# No explanation for this apart from different GPU back ends or the like. -# The tests could be moved to WPT and use fuzzy matching. -crbug.com/1329571 [ Mac11 ] paint/overflow/transformed-video-clipping.html [ Failure Pass ] -crbug.com/1329571 [ Linux ] paint/overflow/transformed-video-clipping.html [ Failure Pass ] - # ====== Paint team owned tests to here ====== # WPT speculative-parsing tests failing
diff --git a/third_party/blink/web_tests/paint/overflow/transformed-video-clipping-expected.html b/third_party/blink/web_tests/paint/overflow/transformed-video-clipping-expected.html new file mode 100644 index 0000000..6561309 --- /dev/null +++ b/third_party/blink/web_tests/paint/overflow/transformed-video-clipping-expected.html
@@ -0,0 +1,21 @@ +<!DOCTYPE html> +<style> +.fakeVideo { + transform-origin: center; + transform: scale(2.0); + height: 150px; + width: 300px; + border: 2px solid red; + background-color: white; +} +.outer { + overflow: hidden; + border: 1px solid black; + height: 150px; + width: 300px; +} +</style> +<div class="outer"> +<div class="fakeVideo"> +</div> +</div>
diff --git a/third_party/blink/web_tests/paint/overflow/transformed-video-clipping.html b/third_party/blink/web_tests/paint/overflow/transformed-video-clipping.html index 9c6dacb..27d840e 100644 --- a/third_party/blink/web_tests/paint/overflow/transformed-video-clipping.html +++ b/third_party/blink/web_tests/paint/overflow/transformed-video-clipping.html
@@ -10,7 +10,6 @@ border: 1px solid black; height: 150px; width: 300px; - border-radius: 4px; } </style> <div>
diff --git a/third_party/blink/web_tests/platform/generic/paint/overflow/transformed-video-clipping-expected.png b/third_party/blink/web_tests/platform/generic/paint/overflow/transformed-video-clipping-expected.png deleted file mode 100644 index adf69be..0000000 --- a/third_party/blink/web_tests/platform/generic/paint/overflow/transformed-video-clipping-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/paint/overflow/transformed-video-clipping-expected.png b/third_party/blink/web_tests/platform/linux/paint/overflow/transformed-video-clipping-expected.png deleted file mode 100644 index 7961c46..0000000 --- a/third_party/blink/web_tests/platform/linux/paint/overflow/transformed-video-clipping-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac11-arm64/paint/overflow/transformed-video-clipping-expected.png b/third_party/blink/web_tests/platform/mac-mac11-arm64/paint/overflow/transformed-video-clipping-expected.png deleted file mode 100644 index 7961c46..0000000 --- a/third_party/blink/web_tests/platform/mac-mac11-arm64/paint/overflow/transformed-video-clipping-expected.png +++ /dev/null Binary files differ
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml index 4741c27b..6ba15265 100644 --- a/tools/metrics/histograms/enums.xml +++ b/tools/metrics/histograms/enums.xml
@@ -42767,6 +42767,12 @@ <int value="32" label="Invalid archive contents"> EXIT_CODE_INVALID_ARCHIVE_CONTENTS </int> + <int value="33" label="Duplicate entry (explicit)"> + EXIT_CODE_INVALID_EXPLICIT_DUPLICATE_ENTRY + </int> + <int value="34" label="Duplicate entry (implicit)"> + EXIT_CODE_INVALID_IMPLICIT_DUPLICATE_ENTRY + </int> <int value="132" label="Terminated by SIGILL"> MINIJAIL_ERR_SIG_BASE (128) + SIGILL (4) from libminijail </int>
diff --git a/tools/metrics/histograms/metadata/apps/histograms.xml b/tools/metrics/histograms/metadata/apps/histograms.xml index 4392f72..ec38f3a 100644 --- a/tools/metrics/histograms/metadata/apps/histograms.xml +++ b/tools/metrics/histograms/metadata/apps/histograms.xml
@@ -1775,7 +1775,7 @@ </histogram> <histogram name="Apps.AppsCount.{AppType}" units="Apps" - expires_after="2022-07-01"> + expires_after="2023-06-01"> <owner>nancylingwang@chromium.org</owner> <owner>chromeos-apps-foundation-team@google.com</owner> <summary> @@ -1788,7 +1788,7 @@ </histogram> <histogram name="Apps.AppsCountPerInstallReason.{AppType}.{InstallReason}" - units="Apps" expires_after="2022-07-01"> + units="Apps" expires_after="2023-06-01"> <owner>nancylingwang@chromium.org</owner> <owner>chromeos-apps-foundation-team@google.com</owner> <summary> @@ -1957,7 +1957,7 @@ </histogram> <histogram name="Apps.DefaultAppLaunch{DefaultAppLaunchSource}" - enum="DefaultAppName" expires_after="2022-07-01"> + enum="DefaultAppName" expires_after="2023-06-01"> <owner>nancylingwang@chromium.org</owner> <owner>chromeos-apps-foundation-team@google.com</owner> <summary> @@ -2705,7 +2705,7 @@ </histogram> <histogram name="Apps.RunningDuration.{AppType}" units="ms" - expires_after="2022-07-01"> + expires_after="2023-06-01"> <owner>nancylingwang@chromium.org</owner> <owner>chromeos-apps-foundation-team@google.com</owner> <summary> @@ -2891,7 +2891,7 @@ </histogram> <histogram name="Apps.UsageTime.{AppType}" units="ms" - expires_after="2022-07-01"> + expires_after="2023-06-01"> <owner>nancylingwang@chromium.org</owner> <owner>chromeos-apps-foundation-team@google.com</owner> <summary> @@ -2902,7 +2902,7 @@ </histogram> <histogram name="Apps.UsageTimeV2.{AppTypeV2}" units="ms" - expires_after="2022-07-01"> + expires_after="2023-06-01"> <owner>nancylingwang@chromium.org</owner> <owner>chromeos-apps-foundation-team@google.com</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/renderer/histograms.xml b/tools/metrics/histograms/metadata/renderer/histograms.xml index ec9b9e96..9dec7d0 100644 --- a/tools/metrics/histograms/metadata/renderer/histograms.xml +++ b/tools/metrics/histograms/metadata/renderer/histograms.xml
@@ -22,9 +22,26 @@ <histograms> -<variants name="ProcessLifetimeResolution"> - <variant name="HighResolution" summary="Tops out at 5 minutes."/> - <variant name="LowResolution" summary="Tops out at 24 hours"/> +<variants name="RendererHostedContentType"> + <variant name="" summary="all renderers"/> + <variant name=".Empty" + summary="renderers that never hosted a frame or a worker"/> + <variant name=".Extension" + summary="renderers that hosted an extension background page"/> + <variant name=".MainFrame" + summary="renderers that hosted a navigated main frame"/> + <variant name=".Speculative" + summary="speculative renderers, i.e. renderers that hosted frames but + in which no navigation commit occured"/> + <variant name=".Subframe_Ad" + summary="renderers that hosted a navigated subframe (tagged as an ad), + but no main frame"/> + <variant name=".Subframe_NoAd" + summary="renderers that hosted a navigated subframe (not tagged as an + ad), but no main frame"/> + <variant name=".Worker" + summary="renderers that hosted a worker (service, dedicated or shared), + but no navigated frame"/> </variants> <histogram name="Renderer.BrowserLaunchToRunLoopStart" units="ms" @@ -378,15 +395,16 @@ </summary> </histogram> -<histogram name="Renderer.ProcessLifetime2.{Resolution}" units="ms" - expires_after="2023-02-28"> +<histogram name="Renderer.ProcessLifetime3{RendererHostedContentType}" + units="ms" expires_after="2023-02-28"> + <owner>fdoray@chromium.org</owner> <owner>olivierli@chromium.org</owner> <owner>catan-team@chromium.org</owner> <summary> - The total time for which a renderer process was live. Recorded when the - browser identifies the process as having gone away. + The time elapsed between the creation and destruction of a renderer. + Recorded for {RendererHostedContentType}. </summary> - <token key="Resolution" variants="ProcessLifetimeResolution"/> + <token key="RendererHostedContentType" variants="RendererHostedContentType"/> </histogram> <histogram name="Renderer.RenderThreadImpl.Init" units="ms"
diff --git a/tools/metrics/histograms/metadata/web_audio/histograms.xml b/tools/metrics/histograms/metadata/web_audio/histograms.xml index a9430772..5c5fb087 100644 --- a/tools/metrics/histograms/metadata/web_audio/histograms.xml +++ b/tools/metrics/histograms/metadata/web_audio/histograms.xml
@@ -25,6 +25,7 @@ <histogram name="WebAudio.AudioBuffer.Length" units="frames" expires_after="2022-11-13"> <owner>hongchan@chromium.org</owner> + <owner>mjwilson@chromium.org</owner> <summary> The length (in frames) requested by createBuffer(). Recorded for every call to createBuffer(). Probably many (tens or hundreds) per page. @@ -34,6 +35,7 @@ <histogram name="WebAudio.AudioBuffer.NumberOfChannels" units="units" expires_after="2022-12-31"> <owner>hongchan@chromium.org</owner> + <owner>mjwilson@chromium.org</owner> <owner>src/third_party/blink/renderer/modules/webaudio/OWNERS</owner> <summary> The number of channels requested by createBuffer(). Recorded for every call @@ -44,6 +46,7 @@ <histogram name="WebAudio.AudioBuffer.SampleRate384kHz" units="Hz" expires_after="2022-12-31"> <owner>hongchan@chromium.org</owner> + <owner>mjwilson@chromium.org</owner> <owner>src/third_party/blink/renderer/modules/webaudio/OWNERS</owner> <summary> The sample rate (in Hz) requested by createBuffer(). Recorded for every call @@ -54,6 +57,7 @@ <histogram name="WebAudio.AudioBuffer.SampleRateRatio384kHz" units="units" expires_after="2022-12-31"> <owner>hongchan@chromium.org</owner> + <owner>mjwilson@chromium.org</owner> <owner>src/third_party/blink/renderer/modules/webaudio/OWNERS</owner> <summary> The ratio of the buffer sample rate from createBuffer() to the context @@ -65,6 +69,7 @@ <histogram name="WebAudio.AudioContext.CreateTime" units="ms" expires_after="2022-08-12"> <owner>hongchan@chromium.org</owner> + <owner>mjwilson@chromium.org</owner> <owner>cduvall@chromium.org</owner> <summary> Measures the time it takes to create the AudioContext object. This is @@ -75,6 +80,7 @@ <histogram name="WebAudio.AudioContext.HardwareSampleRate" units="Hz" expires_after="2022-10-23"> <owner>hongchan@chromium.org</owner> + <owner>mjwilson@chromium.org</owner> <summary> The hardware sample rate (in Hz) used by an AudioContext. Recorded for every WebAudio AudioContext that is created; probably only one or two per page. @@ -84,6 +90,7 @@ <histogram name="WebAudio.AudioContext.latencyHintCategory" units="units" expires_after="2022-11-13"> <owner>hongchan@chromium.org</owner> + <owner>mjwilson@chromium.org</owner> <summary> If provided, the latencyHint option category of "interactive", "balanced", "playback", or "exact", in that @@ -96,6 +103,7 @@ <histogram name="WebAudio.AudioContext.latencyHintMilliSeconds" units="ms" expires_after="2022-11-13"> <owner>hongchan@chromium.org</owner> + <owner>mjwilson@chromium.org</owner> <summary> If the latencyHint is provided and is a floating-point number, the value in milliseconds is recorded. This is recorded for every AudioContext that is @@ -106,6 +114,7 @@ <histogram name="WebAudio.AudioContext.MaxChannelsAvailable" units="units" expires_after="2022-10-23"> <owner>hongchan@chromium.org</owner> + <owner>mjwilson@chromium.org</owner> <owner>src/third_party/blink/renderer/modules/webaudio/OWNERS</owner> <summary> The maximum number of (hardware) channels available in an AudioContext. @@ -117,6 +126,7 @@ <histogram name="WebAudio.AudioContextOptions.sampleRate" units="Hz" expires_after="2022-12-31"> <owner>hongchan@chromium.org</owner> + <owner>mjwilson@chromium.org</owner> <owner>src/third_party/blink/renderer/modules/webaudio/OWNERS</owner> <summary> The sample rate requested by developer to be used as the sample rate when @@ -128,6 +138,7 @@ <histogram name="WebAudio.AudioContextOptions.sampleRateRatio" units="units" expires_after="2022-10-23"> <owner>hongchan@chromium.org</owner> + <owner>mjwilson@chromium.org</owner> <owner>src/third_party/blink/renderer/modules/webaudio/OWNERS</owner> <summary> The ratio of the user-selected sample rate to the hardware sample rate of an @@ -139,6 +150,7 @@ <histogram name="WebAudio.AudioDestination.CallbackBufferSize" units="units" expires_after="2022-11-06"> <owner>hongchan@chromium.org</owner> + <owner>mjwilson@chromium.org</owner> <owner>src/third_party/blink/renderer/modules/webaudio/OWNERS</owner> <summary> The callback buffer size (in audio frames) for WebAudio rendering between @@ -151,6 +163,7 @@ <histogram name="WebAudio.AudioDestination.HardwareBufferSize" units="units" expires_after="2022-09-25"> <owner>hongchan@chromium.org</owner> + <owner>mjwilson@chromium.org</owner> <summary> The buffer size (in audio frames) for WebAudio rendering recommended by the audio hardware. Recorded for every WebAudio AudioContext that is created. @@ -160,6 +173,7 @@ <histogram name="WebAudio.AudioDestination.HardwareOutputLatency" units="ms" expires_after="2022-11-13"> <owner>hongchan@chromium.org</owner> + <owner>mjwilson@chromium.org</owner> <owner>src/third_party/blink/renderer/modules/webaudio/OWNERS</owner> <summary> The latency reported from the audio hardware. This number can be dynamic at @@ -171,6 +185,7 @@ <histogram name="WebAudio.Autoplay" enum="WebAudioAutoplayStatus" expires_after="2022-12-31"> <owner>hongchan@chromium.org</owner> + <owner>mjwilson@chromium.org</owner> <owner>src/third_party/blink/renderer/modules/webaudio/OWNERS</owner> <summary> The autoplay status of an AudioContext when destroyed. This include all @@ -182,6 +197,7 @@ <histogram name="WebAudio.Autoplay.CrossOrigin" enum="WebAudioAutoplayStatus" expires_after="2022-12-31"> <owner>hongchan@chromium.org</owner> + <owner>mjwilson@chromium.org</owner> <owner>src/third_party/blink/renderer/modules/webaudio/OWNERS</owner> <summary> The autoplay status of an AudioContext when destroyed in a cross-origin @@ -192,6 +208,7 @@ <histogram name="WebAudio.Autoplay.UnlockType" enum="WebAudioAutoplayUnlockType" expires_after="2022-12-31"> <owner>hongchan@chromium.org</owner> + <owner>mjwilson@chromium.org</owner> <owner>src/third_party/blink/renderer/modules/webaudio/OWNERS</owner> <summary> Records how an AudioContext was unlocked (if it was). This is recorded when @@ -202,6 +219,7 @@ <histogram name="WebAudio.BiquadFilter.Type" enum="BiquadFilterType" expires_after="2022-12-31"> <owner>hongchan@chromium.org</owner> + <owner>mjwilson@chromium.org</owner> <owner>src/third_party/blink/renderer/modules/webaudio/OWNERS</owner> <summary> The type of the BiquadFilterNode. Recorded each time the type is set. This @@ -214,6 +232,7 @@ <histogram name="WebAudio.ConvolverNode.ImpulseResponseLength" units="ms" expires_after="2022-11-13"> <owner>hongchan@chromium.org</owner> + <owner>mjwilson@chromium.org</owner> <summary> The duration in millisec of impulse responses for a ConvolverNode. Recorded each time the impulse response is set for a ConvolverNode. @@ -223,6 +242,7 @@ <histogram name="WebAudio.IIRFilterNode.Order" units="units" expires_after="2022-12-31"> <owner>hongchan@chromium.org</owner> + <owner>mjwilson@chromium.org</owner> <summary> The order of the WebAudio IIRFilterNode. The order is one less than the number of feedback coefficients used in the denominator of the IIRFilter @@ -233,6 +253,7 @@ <histogram name="WebAudio.OfflineAudioContext.CreateTime" units="ms" expires_after="2022-10-16"> <owner>hongchan@chromium.org</owner> + <owner>mjwilson@chromium.org</owner> <owner>cduvall@chromium.org</owner> <summary> Measures the time it takes to create the OfflineAudioContext object. This is @@ -243,6 +264,7 @@ <histogram name="WebAudio.PannerNode.PanningModel" enum="PanningModelType" expires_after="2022-12-31"> <owner>hongchan@chromium.org</owner> + <owner>mjwilson@chromium.org</owner> <owner>src/third_party/blink/renderer/modules/webaudio/OWNERS</owner> <summary> The panning model for the PannerNode. Recorded once with the default value @@ -256,6 +278,7 @@ <histogram name="WebAudio.PushPullFIFO.UnderflowGlitches" enum="Boolean" expires_after="2022-10-30"> <owner>hongchan@chromium.org</owner> + <owner>mjwilson@chromium.org</owner> <summary> Captures if WebAudio caused glitches or not due to the FIFO underflow. It is recorded when PushPullFIFO is destroyed. (e.g. navigating away from the @@ -266,6 +289,7 @@ <histogram name="WebAudio.PushPullFIFO.UnderflowPercentage" units="%" expires_after="2022-12-31"> <owner>hongchan@chromium.org</owner> + <owner>mjwilson@chromium.org</owner> <owner>src/third_party/blink/renderer/modules/webaudio/OWNERS</owner> <summary> Percentage of FIFO underflow happened due to the the missed deadline of
diff --git a/ui/chromeos/styles/cros_colors.json5 b/ui/chromeos/styles/cros_colors.json5 index 5ab5c77e..afbe82ac 100644 --- a/ui/chromeos/styles/cros_colors.json5 +++ b/ui/chromeos/styles/cros_colors.json5
@@ -270,7 +270,7 @@ /* button-primary */ button_background_color_primary: "$color_prominent", button_label_color_primary: { - light: "$google_grey_200", + light: "$white", dark: "$google_grey_900", }, button_ripple_color_primary: { light: "$white", dark: "$black" },
diff --git a/ui/file_manager/file_manager/background/js/file_operation_handler.js b/ui/file_manager/file_manager/background/js/file_operation_handler.js index 8d57759..2de319c 100644 --- a/ui/file_manager/file_manager/background/js/file_operation_handler.js +++ b/ui/file_manager/file_manager/background/js/file_operation_handler.js
@@ -304,7 +304,9 @@ case util.FileOperationType.ZIP: return strf('ZIP_TARGET_EXISTS_ERROR', name); default: - return strf('TRANSFER_TARGET_EXISTS_ERROR', name); + console.warn( + `Unexpected operation type: ${event.status.operationType}`); + return strf('FILE_ERROR_GENERIC'); } case util.FileOperationErrorType.FILESYSTEM_ERROR: @@ -321,7 +323,9 @@ case util.FileOperationType.RESTORE: return str('RESTORE_FROM_TRASH_ERROR'); default: - return strf('TRANSFER_FILESYSTEM_ERROR', detail); + console.warn( + `Unexpected operation type: ${event.status.operationType}`); + return strf('FILE_ERROR_GENERIC'); } default: @@ -337,7 +341,9 @@ case util.FileOperationType.RESTORE: return str('RESTORE_FROM_TRASH_ERROR'); default: - return strf('TRANSFER_UNEXPECTED_ERROR', event.error.code); + console.warn( + `Unexpected operation type: ${event.status.operationType}`); + return strf('FILE_ERROR_GENERIC'); } } } else if (event.status.numRemainingItems === 1) { @@ -354,7 +360,9 @@ case util.FileOperationType.RESTORE: return strf('RESTORE_FROM_TRASH_FILE_NAME', name); default: - return strf('TRANSFER_FILE_NAME', name); + console.warn( + `Unexpected operation type: ${event.status.operationType}`); + return strf('FILE_ERROR_GENERIC'); } } else { const remainNumber = event.status.numRemainingItems; @@ -370,7 +378,9 @@ case util.FileOperationType.RESTORE: return strf('RESTORE_FROM_TRASH_ITEMS_REMAINING', remainNumber); default: - return strf('TRANSFER_ITEMS_REMAINING', remainNumber); + console.warn( + `Unexpected operation type: ${event.status.operationType}`); + return strf('FILE_ERROR_GENERIC'); } } } @@ -456,7 +466,9 @@ // case chrome.fileManagerPrivate.IOTaskType.RESTORE: // return str('RESTORE_FROM_TRASH_ERROR'); default: - return strf('TRANSFER_FILESYSTEM_ERROR', detail); + console.warn( + `Unexpected operation type: ${event.status.operationType}`); + return strf('FILE_ERROR_GENERIC'); } }