diff --git a/DEPS b/DEPS index 0865f50..1e6468b 100644 --- a/DEPS +++ b/DEPS
@@ -294,7 +294,7 @@ # 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': '1b4c975e89ade7fa5a50fda12f454e1a5fa35b63', + 'skia_revision': '97f7c83c88e3ed5656d2602632a93ab0c3729f44', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling V8 # and whatever else without interference from each other. @@ -378,7 +378,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': 'fc9eb7dabd0b4e75beb43c381965341e4436e566', + 'devtools_frontend_revision': '1e2143ab16eda747d16729ca9c4c11f4d45eaca0', # 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. @@ -402,7 +402,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling feed # and whatever else without interference from each other. - 'dawn_revision': '81512dc57ab642d349ba39059eeb9e73a3589d54', + 'dawn_revision': 'dc7126868fde79f680a51cfbc3e6b39b91f7b099', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling feed # and whatever else without interference from each other. @@ -506,7 +506,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling llvm-libc # and whatever else without interference from each other. - 'llvm_libc_revision': 'a1fa332d780423741206ff08eff910982298f316', + 'llvm_libc_revision': 'd2e912712fc74b4be504f92982d416700bae3a17', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling llvm-libc # and whatever else without interference from each other. @@ -1177,7 +1177,7 @@ 'packages': [ { 'package': 'chromium/chrome/android/orderfiles/arm', - 'version': '2b_ljVKcbOfTwVcnCJk3E0obIsno1vMERpcCKScYiLoC', + 'version': 'iuTqir8_biqxsLBEnwwPqb4gNOuXkeOxvYpKODFfJo8C', }, ], 'condition': 'checkout_android', @@ -1588,7 +1588,7 @@ 'packages': [ { 'package': 'chromium/chrome/test/data/variations/cipd', - 'version': 'LTjXaBRIJR7bhmRxmZlyAL6GeaH25-361RiIofMR_kQC', + 'version': '7YCGMQS1gcxLwW0L5Ou-p2mWgwUssVl8FBXT-BbbpUsC', }, ], 'dep_type': 'cipd', @@ -1599,7 +1599,7 @@ 'src/clank': { 'url': Var('chrome_git') + '/clank/internal/apps.git' + '@' + - '7d2f3648f65982f626a0f89ac88af4c2807e3494', + 'fb490d965c7d3e2e240ec42a10cb27e4f12a6644', 'condition': 'checkout_android and checkout_src_internal', }, @@ -3000,7 +3000,7 @@ Var('chromium_git') + '/webpagereplay.git' + '@' + Var('webpagereplay_revision'), 'src/third_party/webrtc': - Var('webrtc_git') + '/src.git' + '@' + 'da3b3240cbcd8765a34cf92d2f6ec53758a11ca8', + Var('webrtc_git') + '/src.git' + '@' + '45835ed4d899782383eac019514f9101d0234d20', # Wuffs' canonical repository is at github.com/google/wuffs, but we use # Skia's mirror of Wuffs, the same as in upstream Skia's DEPS file. @@ -3133,7 +3133,7 @@ 'packages': [ { 'package': 'chromeos_internal/apps/help_app/app', - 'version': 'WTfdu_h_QmWeyAVXH6H4rLZR43KfU0pNRPWI1a2z6sAC', + 'version': 'fuUXRFwjuCBWYl84qVob42kDLxuuPDKf1FfWGRj6Tg0C', }, ], 'condition': 'checkout_chromeos and checkout_src_internal', @@ -3144,7 +3144,7 @@ 'packages': [ { 'package': 'chromeos_internal/apps/media_app/app', - 'version': '6jSb9INT8tQBov_vWwFNGt8KJ1n6cKRctUirhDrcJGIC', + 'version': 'pMaWAvoqFcgCSPyi_JDqkUNXw9ka_eU11VrTh2pJ6WUC', }, ], 'condition': 'checkout_chromeos and checkout_src_internal', @@ -3763,7 +3763,7 @@ 'src/ios_internal': { 'url': Var('chrome_git') + '/chrome/ios_internal.git' + '@' + - '3e661cf76135040886141d1d6085573a7b2669f1', + '2d4d8ac1a5ffe6e4f9c0f2439e2829094de02eb9', 'condition': 'checkout_ios and checkout_src_internal', },
diff --git a/android_webview/test/data/web_tests/webexposed/global-interface-listing-expected.txt b/android_webview/test/data/web_tests/webexposed/global-interface-listing-expected.txt index 0a08189..c7053bd 100644 --- a/android_webview/test/data/web_tests/webexposed/global-interface-listing-expected.txt +++ b/android_webview/test/data/web_tests/webexposed/global-interface-listing-expected.txt
@@ -2393,6 +2393,7 @@ getter containerTiming getter containerTimingIgnore getter currentCSSZoom + getter currentPatch getter elementTiming getter firstElementChild getter headingOffset @@ -6882,6 +6883,11 @@ getter name getter password method constructor +interface PatchStatus + attribute @@toStringTag + getter finished + getter source + method constructor interface Path2D attribute @@toStringTag method addPath
diff --git a/ash/constants/ash_features.cc b/ash/constants/ash_features.cc index e849210..e2650dc 100644 --- a/ash/constants/ash_features.cc +++ b/ash/constants/ash_features.cc
@@ -2562,7 +2562,7 @@ // Enables sea pen text input translation feature. BASE_FEATURE(kSeaPenTextInputTranslation, "SeaPenTextInputTranslation", - base::FEATURE_DISABLED_BY_DEFAULT); + base::FEATURE_ENABLED_BY_DEFAULT); // Enables sea pen feature for ChromeOS demo mode. BASE_FEATURE(kSeaPenDemoMode,
diff --git a/chrome/VERSION b/chrome/VERSION index 148a276..57fde6f5 100644 --- a/chrome/VERSION +++ b/chrome/VERSION
@@ -1,4 +1,4 @@ MAJOR=140 MINOR=0 -BUILD=7308 +BUILD=7310 PATCH=0
diff --git a/chrome/app/resources/chromium_strings_km.xtb b/chrome/app/resources/chromium_strings_km.xtb index 5917d07..199fbb7 100644 --- a/chrome/app/resources/chromium_strings_km.xtb +++ b/chrome/app/resources/chromium_strings_km.xtb
@@ -134,6 +134,7 @@ <translation id="2711502716910134313">ផ្ទាំង Chromium</translation> <translation id="2718390899429598676">ដើម្បីទទួលបានសុវត្ថិភាពបន្ថែម Chromium នឹងអ៊ិនគ្រីបទិន្នន័យរបស់អ្នក។</translation> <translation id="2721354645805494590">ដើម្បីដកគណនី Google របស់អ្នកចេញពី Chromium សូមចេញពីគណនី</translation> +<translation id="2722636413143664436">ដើម្បីទទួលបានពាក្យសម្ងាត់ ចំណាំរបស់អ្នក និងអ្វីៗជាច្រើនទៀតនៅលើឧបករណ៍ទាំងអស់របស់អ្នក សូមចូលគណនី Chromium</translation> <translation id="2738871930057338499">មិនអាចភ្ជាប់ទៅអ៊ីនធឺណិតបានទេ។ បានហាមឃាត់ HTTP 403។ សូមពិនិត្យមើលការកំណត់រចនាសម្ព័ន្ធប្រូកស៊ីរបស់អ្នក។</translation> <translation id="2753623023919742414">ចុចដើម្បីស្វែងរក</translation> <translation id="2768103863314748511">កំណត់ Chromium ជាកម្មវិធីមើល PDF លំនាំដើមរបស់អ្នក</translation> @@ -405,6 +406,7 @@ <translation id="6366160072964553914">Chromium បានទប់ស្កាត់ការទាញយកនេះ ដោយសារឯកសារនេះមិនត្រូវបានទាញយកជាទូទៅទេ ហើយវាអាចបង្កគ្រោះថ្នាក់</translation> <translation id="6373523479360886564">តើអ្នកប្រាកដថាចង់លុបការតំឡើង Chromium ទេ?</translation> <translation id="6375219077595103062">បញ្ចូលផ្លូវកាត់ទៅកាន់កម្មវិធីគ្រប់គ្រងពាក្យសម្ងាត់</translation> +<translation id="6388799252195623474">ជួយខ្ញុំពាក់ព័ន្ធនឹងករណីនេះ</translation> <translation id="6390800440335263989">ដើម្បីបន្ត សូមចូលគណនី Chromium ជា <ph name="EMAIL" />។ ការធ្វើបែបនេះធានាថា អ្នកគោរពតាមគោលការណ៍របស់ស្ថាប័នអ្នក។</translation> <translation id="6400112897226594999">រូបសញ្ញា Chromium នៅក្នុងអេក្រង់កុំព្យូទ័រ។</translation> <translation id="6403826409255603130">Chromium គឺជាកម្មវិធីរុករកអ៊ីនធឺណិត ដែលដំណើរការគេហទំព័រ និងកម្មវិធីបានយ៉ាងរហ័សបំផុត។ វាលឿន មានស្ថេរភាព និងងាយស្រួលប្រើ។ រុករកគេហទំព័រប្រកបដោយសុវត្ថិភាពជាមួយការពារពីមេរោគ និងការលួចឆ្មក់យកទិន្នន័យដែលភ្ជាប់នៅក្នុង Chromium។</translation>
diff --git a/chrome/app/resources/chromium_strings_ms.xtb b/chrome/app/resources/chromium_strings_ms.xtb index 37599ac..8862c83 100644 --- a/chrome/app/resources/chromium_strings_ms.xtb +++ b/chrome/app/resources/chromium_strings_ms.xtb
@@ -133,6 +133,7 @@ <translation id="2711502716910134313">Tab Chromium</translation> <translation id="2718390899429598676">Untuk keselamatan tambahan, Chromium akan menyulitkan data anda.</translation> <translation id="2721354645805494590">Untuk mengalih keluar Google Account anda daripada Chromium, log keluar</translation> +<translation id="2722636413143664436">Untuk mendapatkan kata laluan dan penanda halaman anda serta pelbagai lagi pada semua peranti anda, log masuk ke Chromium</translation> <translation id="2738871930057338499">Tidak dapat disambungkan kepada Internet. HTTP 403 Dilarang. Sila semak konfigurasi proksi anda.</translation> <translation id="2753623023919742414">Klik untuk mencari</translation> <translation id="2768103863314748511">Tetapkan Chromium sebagai alat lihat PDF lalai anda</translation> @@ -403,6 +404,7 @@ <translation id="6366160072964553914">Chromium menyekat muat turun ini kerana fail jarang dimuat turun dan mungkin berbahaya</translation> <translation id="6373523479360886564">Adakah anda pasti mahu menyahpasang Chromium?</translation> <translation id="6375219077595103062">Tambahkan pintasan pada Password Manager</translation> +<translation id="6388799252195623474">bantu saya dengan kandungan ini</translation> <translation id="6390800440335263989">Untuk meneruskan, log masuk ke Chromium sebagai <ph name="EMAIL" />. Tindakan ini untuk memastikan bahawa anda memahami dasar organisasi anda.</translation> <translation id="6400112897226594999">Logo Chromium dalam skrin komputer.</translation> <translation id="6403826409255603130">Chromium merupakan penyemak imbas yang mengendalikan laman web dan aplikasi dengan kelajuan sepantas kilat. Chromium cepat, stabil dan mudah digunakan. Semak imbas web lebih selamat dengan perlindungan perisian hasad dan pancingan data terbina dalam Chromium.</translation>
diff --git a/chrome/app/resources/chromium_strings_th.xtb b/chrome/app/resources/chromium_strings_th.xtb index 892c49a..ea1facb0 100644 --- a/chrome/app/resources/chromium_strings_th.xtb +++ b/chrome/app/resources/chromium_strings_th.xtb
@@ -132,6 +132,7 @@ <translation id="2711502716910134313">แท็บ Chromium</translation> <translation id="2718390899429598676">เพื่อเพิ่มความปลอดภัยให้มากยิ่งขึ้น Chromium จะเข้ารหัสข้อมูลของคุณ</translation> <translation id="2721354645805494590">หากต้องการนำบัญชี Google ออกจาก Chromium ให้ออกจากระบบ</translation> +<translation id="2722636413143664436">ลงชื่อเข้าใช้ Chromium เพื่อเข้าถึงรหัสผ่าน บุ๊กมาร์ก และข้อมูลอื่นๆ ในอุปกรณ์ทุกเครื่อง</translation> <translation id="2738871930057338499">เชื่อมต่อกับอินเทอร์เน็ตไม่ได้ HTTP 403 Forbidden โปรดตรวจสอบการกำหนดค่าพร็อกซีของคุณ</translation> <translation id="2753623023919742414">คลิกเพื่อค้นหา</translation> <translation id="2768103863314748511">ตั้งค่า Chromium เป็นโปรแกรมอ่าน PDF เริ่มต้น</translation> @@ -402,6 +403,7 @@ <translation id="6366160072964553914">Chromium บล็อกการดาวน์โหลดนี้เนื่องจากไฟล์ไม่ได้มีการดาวน์โหลดกันโดยทั่วไปและอาจเป็นอันตราย</translation> <translation id="6373523479360886564">คุณแน่ใจหรือไม่ว่าต้องการถอนการติดตั้ง Chromium</translation> <translation id="6375219077595103062">เพิ่มทางลัดไปยังเครื่องมือจัดการรหัสผ่าน</translation> +<translation id="6388799252195623474">ช่วยฉันเรื่องนี้</translation> <translation id="6390800440335263989">หากต้องการดำเนินการต่อ โปรดลงชื่อเข้าใช้ Chromium ด้วย <ph name="EMAIL" /> การดำเนินการดังกล่าวจะตรวจสอบว่าคุณมีนโยบายขององค์กรแล้ว</translation> <translation id="6400112897226594999">โลโก้ Chromium ในหน้าจอคอมพิวเตอร์</translation> <translation id="6403826409255603130">Chromium เป็นเว็บเบราว์เซอร์ที่เรียกใช้หน้าเว็บและแอปพลิเคชันด้วยความเร็วสูง มีความรวดเร็ว เสถียร และง่ายในการใช้งาน เรียกดูเว็บได้อย่างปลอดภัยมากขึ้นด้วยการป้องกันมัลแวร์และฟิชชิงที่สร้างอยู่ภายใน Chromium</translation>
diff --git a/chrome/app/resources/generated_resources_km.xtb b/chrome/app/resources/generated_resources_km.xtb index 7f66653..39cc654 100644 --- a/chrome/app/resources/generated_resources_km.xtb +++ b/chrome/app/resources/generated_resources_km.xtb
@@ -671,6 +671,7 @@ <translation id="1462850958694534228">ពិនិត្យមើលការប្ដូររូបតំណាង</translation> <translation id="1463112138205428654"><ph name="FILE_NAME" /> ត្រូវបានទប់ស្កាត់ដោយការការពារកម្រិតខ្ពស់។</translation> <translation id="1464044141348608623">កុំអនុញ្ញាតឱ្យគេហទំព័រដឹងថា នៅពេលណាដែលអ្នកកំពុងប្រើឧបករណ៍របស់អ្នកយ៉ាងសកម្ម</translation> +<translation id="1464047267926346987">រក្សាទុកពាក្យសម្ងាត់ ចំណាំរបស់អ្នក និងអ្វីៗជាច្រើនទៀត</translation> <translation id="1464258312790801189">គណនីរបស់អ្នក</translation> <translation id="1464597059227482327">ប្រសិនបើអ្នកកំពុងចែករំលែកជាមួយ Chromebook ដែលមិនមាននៅក្នុងទំនាក់ទំនងរបស់អ្នកទេ សូមប្រាកដថា Chromebook នោះបានបើក “លទ្ធភាពមើលឃើញនៅជិត”។ ដើម្បីបើក “លទ្ធភាពមើលឃើញនៅជិត” សូមជ្រើសរើសជ្រុងខាងស្ដាំផ្នែកខាងក្រោម រួចជ្រើសរើសបើក “លទ្ធភាពមើលឃើញនៅជិត”។ <ph name="LINK_BEGIN" />ស្វែងយល់បន្ថែម<ph name="LINK_END" /></translation> <translation id="1464781208867302907">សម្រាប់ចំណូលចិត្តឧបករណ៍ សូមចូលទៅកាន់ការកំណត់។</translation> @@ -815,6 +816,7 @@ <translation id="1558671750917454373">បន្តការបញ្ជូនទៅ <ph name="DEVICE_NAME" /></translation> <translation id="1561331397460162942">ការធ្វើបែបនេះផ្តល់សិទ្ធិចូលប្រើទីតាំងសម្រាប់កម្មវិធី គេហទំព័រដែលមានការអនុញ្ញាតឱ្យប្រើទីតាំង និងសេវាកម្មប្រព័ន្ធ</translation> <translation id="1562119309884184621">ការបញ្ចូលទំនាក់ទំនងនេះនឹងចងចាំ នៅពេលគាត់ចែករំលែកលើកក្រោយ</translation> +<translation id="1562585387501039294">ស្ថាប័នរបស់អ្នក <ph name="ACCOUNT_MANAGER" /> តម្រូវឱ្យមានកម្រងព័ត៌មានដែលស្ថិតក្រោមការគ្រប់គ្រង ហើយនឹងអាចមើលព័ត៌មានមួយចំនួន រួមទាំង</translation> <translation id="1566049601598938765">គេហទំព័រ</translation> <translation id="15662109988763471">មិនមានម៉ាស៊ីនបោះពុម្ពដែលបានជ្រើសរើស ឬមិនត្រូវបានដំឡើងត្រឹមត្រូវទេ។ សូមពិនិត្យមើលម៉ាស៊ីនបោះពុម្ពរបស់អ្នក ឬសាកល្បងជ្រើសរើសម៉ាស៊ីនបោះពុម្ពផ្សេងទៀត។</translation> <translation id="1566329594234563241">នៅពេលអសកម្ម និងដោតភ្លើង</translation> @@ -911,6 +913,7 @@ <translation id="1616298854599875024">មិនអាចនាំចូលកម្មវិធីបន្ថែម "<ph name="IMPORT_NAME" />" បានទេ ដោយសារវាមិនមែនជាម៉ូឌុលដែលបានចែករំលែក</translation> <translation id="1617765145568323981">{NUM_FILES,plural, =0{កំពុងពិនិត្យទិន្នន័យនេះដោយប្រើគោលការណ៍សុវត្ថិភាពរបស់ស្ថាប័នអ្នក...}=1{កំពុងពិនិត្យឯកសារនេះដោយប្រើគោលការណ៍សុវត្ថិភាពរបស់ស្ថាប័នអ្នក...}other{កំពុងពិនិត្យឯកសារទាំងនេះដោយប្រើគោលការណ៍សុវត្ថិភាពរបស់ស្ថាប័នអ្នក...}}</translation> <translation id="1618102204889321535"><ph name="CURRENT_CHARACTER_COUNT" />/<ph name="MAX_CHARACTER_COUNT" /></translation> +<translation id="1618142905422922351">បច្ចុប្បន្ននេះ អ្នកមាន<ph name="NUMBERED_ITEM" /> និងអ្វីៗជាច្រើនទៀត។ ស្ថាប័នរបស់អ្នក <ph name="ACCOUNT_MANAGER" /> នឹងអាចមើលឃើញ និងគ្រប់គ្រងទិន្នន័យនេះបាន។</translation> <translation id="1618268899808219593">មជ្ឈមណ្ឌលជំនួយ</translation> <translation id="1619829618836636922">វិញ្ញាបនបត្រកុំព្យូទ័រភ្ញៀវពីប្រព័ន្ធ</translation> <translation id="1619879934359211038">មិនអាចភ្ជាប់ជាមួយ Google Play បានទេ។ សូមពិនិត្យមើលការតភ្ជាប់បណ្ដាញរបស់អ្នក រួចព្យាយាមម្ដងទៀត។ លេខកូដបញ្ហា៖ <ph name="ERROR_CODE" />។</translation> @@ -2726,6 +2729,7 @@ <translation id="2855243985454069333">លុបប្រវត្តិពីគ្រប់ឧបករណ៍ដែលបានធ្វើសមកាលកម្ម</translation> <translation id="2855812646048059450">ចូលគណនីដោយប្រើ <ph name="CREDENTIAL_PROVIDER" /></translation> <translation id="2856776373509145513">បង្កើតទម្រង់ផ្ទុកថ្មី</translation> +<translation id="2857047802954430547">ចូលគណនី ដើម្បីទទួលបានពាក្យសម្ងាត់ ចំណាំរបស់អ្នក និងអ្វីៗជាច្រើនទៀតនៅលើឧបករណ៍ទាំងអស់របស់អ្នក</translation> <translation id="2859741939921354763">នាំចូលពាក្យសម្ងាត់ទៅក្នុង<ph name="BRAND" /></translation> <translation id="2860710618359053450">ទាញថ្គាមទៅខាងស្ដាំ</translation> <translation id="2861301611394761800">ការធ្វើបច្ចុប្បន្នភាពប្រព័ន្ធបានបញ្ចប់។ សូមចាប់ផ្តើមប្រព័ន្ធឡើងវិញ។</translation> @@ -4137,6 +4141,7 @@ <translation id="3844888638014364087">បានបញ្ចូលរូបអារម្មណ៍</translation> <translation id="3846116211488856547">ទាញយកឧបករណ៍សម្រាប់ការអភិវឌ្ឍគេហទំព័រ កម្មវិធី Android និងអ្វីៗជាច្រើនទៀត។ ការដំឡើង Linux នឹងទាញយកទិន្នន័យ <ph name="DOWNLOAD_SIZE" /> ។</translation> <translation id="3847319713229060696">ជួយពង្រឹងសុវត្ថិភាពនៅលើអ៊ីនធឺណិតសម្រាប់អ្នករាល់គ្នា</translation> +<translation id="3847734730889093333"><ph name="RATE" />x</translation> <translation id="3848547754896969219">បើកនៅក្នុង&ផ្ទាំងឯកជន</translation> <translation id="3850172593216628215">ការធ្វើបច្ចុប្បន្នភាពផ្នែកសុវត្ថិភាពបានដល់ទីបញ្ចប់ហើយ។ ចំណេញបាន $50 ឬច្រើនជាងនេះសម្រាប់ Chromebook ថ្មី។</translation> <translation id="385051799172605136">ថយក្រោយ</translation> @@ -6115,6 +6120,7 @@ <translation id="5267572070504076962">បើកការរុករកដោយសុវត្ថិភាព ដើម្បីទទួលបានការការពារប្រឆាំងនឹងគេហទំព័រគ្រោះថ្នាក់</translation> <translation id="5269977353971873915">ការបោះពុម្ពបានបរាជ័យ</translation> <translation id="5271578170655641944">ដកសិទ្ធិចូលប្រើ Google ថាសឬ?</translation> +<translation id="527335345740023523">បច្ចុប្បន្ននេះ អ្នកមាន<ph name="NUMBERED_ITEM_1" />, <ph name="NUMBERED_ITEM_2" />, <ph name="NUMBERED_ITEM_3" /> និងអ្វីៗជាច្រើនទៀត។ ស្ថាប័នរបស់អ្នក <ph name="ACCOUNT_MANAGER" /> នឹងអាចមើលឃើញ និងគ្រប់គ្រងទិន្នន័យនេះបាន។</translation> <translation id="5273806377963980154">កែ URL គេហទំព័រ</translation> <translation id="5275084684151588738">វចនានុក្រមអ្នកប្រើប្រាស់</translation> <translation id="5275338516105640560">ប៊ូតុងក្រុមផ្ទាំងដែលបានរក្សាទុក</translation> @@ -6313,6 +6319,7 @@ <translation id="542073632571549028"><ph name="MEMBER_FULL_NAME" /> (<ph name="EMAIL" />) នឹងបាត់បង់សិទ្ធិចូលប្រើក្រុមផ្ទាំង “<ph name="GROUP_NAME" />” ភ្លាមៗ</translation> <translation id="5420935737933866496">ចម្លង&តំណ</translation> <translation id="5421048291985386320">&ចូលគណនីម្ដងទៀត</translation> +<translation id="542237158771780634">នៅពេលបើក ទិន្នន័យត្រូវបានរក្សាទុកនៅក្នុងគណនី Google របស់អ្នក និងអាចត្រូវបានប្រើនៅលើឧបករណ៍ទាំងអស់របស់អ្នក។ នៅពេលបិទ ទិន្នន័យត្រូវបានរក្សាទុកតែនៅលើឧបករណ៍នេះប៉ុណ្ណោះ។</translation> <translation id="5422781158178868512">សូមទោស ឧបករណ៍ផ្ទុកទិន្នន័យខាងក្រៅរបស់អ្នកមិនត្រូវបានសម្គាល់ទេ។</translation> <translation id="5423505005476604112">Crostini</translation> <translation id="5423600335480706727">នៅពេលអ្នកចូលមើលលើកក្រោយ <ph name="SITE" /> នឹងប្រើការអនុញ្ញាតលំនាំដើម</translation> @@ -6567,6 +6574,7 @@ <translation id="5600706100022181951">កំណែថ្មីនឹងត្រូវបានទាញយកដោយប្រើទិន្នន័យទូរសព្ទចល័តចំនួន <ph name="UPDATE_SIZE_MB" /> MB ។ តើអ្នកចង់បន្តដែរទេ?</translation> <translation id="5601503069213153581">លេខសម្គាល់</translation> <translation id="5601833336918638013">កុំអនុញ្ញាតឱ្យគេហទំព័ររកមើលឧបករណ៍ប៊្លូធូស</translation> +<translation id="560213628963806709">ផ្ទាំងថ្មីៗរបស់ Chrome ចំនួន <ph name="OPENINGS_COUNT" /> ត្រូវបានបើកដោយកម្មវិធីនេះ។ អ្នកអាចគ្រប់គ្រងសកម្មភាពនេះបាននៅក្រោមការអនុញ្ញាត "ផ្ទាំងលោតឡើង និងការបញ្ជូនបន្ត"។</translation> <translation id="5602586420788540146">បើកនៅក្នុងក្រុមផ្ទាំងថ្មី</translation> <translation id="5605758115928394442">ការជូនដំណឹងត្រូវបានផ្ញើទៅទូរសព្ទរបស់អ្នក ដើម្បីបញ្ជាក់ថាពិតជាអ្នក។</translation> <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{កម្មវិធីបន្ថែមនេះត្រូវបានទប់ស្កាត់}other{កម្មវិធីបន្ថែមទាំងនេះត្រូវបានទប់ស្កាត់}}</translation> @@ -7047,6 +7055,7 @@ <translation id="5952020381407136867">ផ្ទាំងប៉ះ</translation> <translation id="5953211687820750364">បញ្ជីនេះរងឥទ្ធិពលពី <ph name="BEGIN_LINK1" />{BrowserSwitcherExternalGreylistUrl}<ph name="END_LINK1" /> និង <ph name="BEGIN_LINK2" />{BrowserSwitcherUrlGreylist}<ph name="END_LINK2" /></translation> +<translation id="5955192144223994637">បន្តធ្វើការនៅក្នុងកម្រងព័ត៌មាននេះ</translation> <translation id="5955304353782037793">កម្មវិធី</translation> <translation id="5955721306465922729">គេហទំព័រចង់បើកកម្មវិធីនេះ។</translation> <translation id="5955809630138889698">ឧបករណ៍នេះប្រហែលជាមានសិទ្ធិប្រើប្រាស់មុខងារសាកល្បងពេលមានអ៊ីនធឺណិតតែប៉ុណ្ណោះ។ សូមទាក់ទងតំណាងផ្នែកជំនួយ ដើម្បីទទួលបានព័ត៌មានលម្អិតបន្ថែម។</translation> @@ -7777,6 +7786,7 @@ <translation id="6493991254603208962">បន្ថយពន្លឺ</translation> <translation id="6494327278868541139">បង្ហាញព័ត៌មានលម្អិតអំពីការការពារដែលប្រសើរជាងមុន</translation> <translation id="6494483173119160146">ឧបករណ៍នេះបានជួបប្រទះបញ្ហាដែលបណ្ដាលឱ្យមិនអាចស្ដារបាន។ សូមកំណត់ឧបករណ៍របស់អ្នកឡើងវិញ (ការធ្វើបែបនេះនឹងលុបទិន្នន័យអ្នកប្រើប្រាស់ទាំងអស់) រួចព្យាយាមម្ដងទៀត។</translation> +<translation id="6495261233408033662">បិទផ្ទាំងដែលបានបើក</translation> <translation id="6495266441917713704">មិនអាចផ្ទេរ Wi-Fi បានទេ</translation> <translation id="6495453178162183932">បានប្ដូរទម្រង់រចនាទៅ Chrome លំនាំដើម</translation> <translation id="6497784818439587832">ប្ដូរទំហំបង្ហាញ ដើម្បីធ្វើឱ្យធាតុនៅលើអេក្រង់របស់អ្នកតូចជាង ឬធំជាងមុន</translation> @@ -8034,6 +8044,7 @@ <translation id="6673898378497337661">បង្កើនពន្លឺក្ដារចុច</translation> <translation id="6674571176963658787">ដើម្បីចាប់ផ្ដើមសមកាលកម្ម សូមបញ្ចូលឃ្លាសម្ងាត់របស់អ្នក</translation> <translation id="6675665718701918026">បានភ្ជាប់ឧបករណ៍ចង្អុល</translation> +<translation id="6675717447295898330">បង្កើតកម្រងព័ត៌មានថ្មីសម្រាប់ការងារដោយគ្មានទិន្នន័យដែលមានស្រាប់របស់ខ្ញុំ</translation> <translation id="6676212663108450937">សូមពិចារណាលើការប្រើកាស ពេលកំពុងហ្វឹកហាត់សំឡេងរបស់អ្នក</translation> <translation id="6676291960742508499">URL, ចំណងជើងទំព័រ និងផ្ទាំងរបស់អ្នកត្រូវបានបញ្ជូនទៅ Google</translation> <translation id="667752334740867460">កំពុងទទួលព័ត៌មាន Wi-Fi...</translation> @@ -9092,6 +9103,7 @@ <translation id="7427348830195639090">ទំព័រផ្ទៃខាងក្រោយ៖ <ph name="BACKGROUND_PAGE_URL" /></translation> <translation id="7427729970025360383">កម្រងព័ត៌មាននេះស្ថិតក្រោមការគ្រប់គ្រង</translation> <translation id="7427798576651127129">ហៅទូរសព្ទពី <ph name="DEVICE_NAME" /></translation> +<translation id="7429004613638800673"><ph name="APP_NAME" /> បានបើកផ្ទាំងច្រើន។</translation> <translation id="7429415133937917139">ត្រាប់លទ្ធផលនៃអក្សរប្រៃយ៍ដែលអាចផ្ទុកឡើងវិញ នៅក្នុងផ្ទាំង ChromeVox ផ្នែកខាងលើអេក្រង់</translation> <translation id="7429568074268678162"><ph name="FILENAME" /> អាចបង្កគ្រោះថ្នាក់។ បញ្ចូលពាក្យសម្ងាត់ ប្រសិនបើអ្នកចង់ឱ្យ Chrome ផ្ទៀងផ្ទាត់ឯកសារនេះ ឬអ្នកអាចទាញយកឯកសារនេះដោយផ្ទាល់។</translation> @@ -9632,6 +9644,7 @@ <translation id="7796453472368605346">សញ្ញាប្ដូរសំឡេង</translation> <translation id="7797571222998226653">បិទ</translation> <translation id="7798504574384119986">មើលការអនុញ្ញាតបណ្ដាញ</translation> +<translation id="7798559336183476274">សកម្មភាពច្រើនទៀតសម្រាប់ <ph name="BUTTON_TITLE" /></translation> <translation id="7798844538707273832">បានទប់ស្កាត់ <ph name="PERMISSION" /> ដោយស្វ័យប្រវត្តិ</translation> <translation id="7799650166313181433">មានតែឧបករណ៍ដែលបានចូលគណនី <ph name="USER_EMAIL" /> ប៉ុណ្ណោះដែលអាចចែករំលែកជាមួយឧបករណ៍នេះបាន។ អ្នកនឹងមិនចាំបាច់យល់ព្រមឱ្យចែករំលែករវាងឧបករណ៍របស់អ្នកទេ។</translation> <translation id="7800485561443537737">ប្រើទិន្នន័យទូរសព្ទចល័តលើ <ph name="DEVICE_TYPE" /> របស់អ្នក ហើយក្រុមហ៊ុនសេវាទូរសព្ទរបស់អ្នកអាចគិតថ្លៃសេវាបន្ថែម។ ការប្រើប្រាស់ថ្មអាចកើនឡើង។ <ph name="BEGIN_LINK_LEARN_MORE" />ស្វែងយល់បន្ថែម<ph name="END_LINK_LEARN_MORE" /></translation> @@ -9933,6 +9946,7 @@ <translation id="8000020256436988724">របារឧបករណ៍</translation> <translation id="800117767980299235">ចំណុចសំខាន់ជាសំឡេង</translation> <translation id="8002274832045662704">ការកំណត់រចនាសម្ព័ន្ធម៉ាស៊ីនបោះពុម្ពកម្រិតខ្ពស់</translation> +<translation id="8002531372108263935">ស្ថាប័នរបស់អ្នក <ph name="ACCOUNT_MANAGER" /> នឹងមិនអាចមើលឃើញ ឬគ្រប់គ្រងទិន្នន័យនេះបានទេ។ វានឹងនៅតែស្ថិតនៅក្នុងកម្រងព័ត៌មានដែលមានស្រាប់ដដែល។</translation> <translation id="8002597610026749658">Chrome អាចបង្កើតអក្សររត់សម្រាប់ភាសាដែលបង្ហាញនៅទីនេះ</translation> <translation id="8002670234429879764">មិនអាចប្រើ <ph name="PRINTER_NAME" /> បានទៀតទេ</translation> <translation id="8004092996156083991">ប្រសិនបើពាក្យសម្ងាត់របស់អ្នករងការលុកលុយ យើងនឹងប្រាប់ឱ្យអ្នកដឹង។</translation> @@ -10818,6 +10832,7 @@ <translation id="862542460444371744">កម្មវិធីបន្ថែម</translation> <translation id="8625663000550647058">មិនអនុញ្ញាតឱ្យប្រើមីក្រូហ្វូនរបស់អ្នកទេ</translation> <translation id="8625916342247441948">មិនអនុញ្ញាតឱ្យគេហទំព័រភ្ជាប់ជាមួយឧបករណ៍ HID ទេ</translation> +<translation id="8626569226218260115">កម្រងព័ត៌មាននេះនឹងស្ថិតក្រោមការគ្រប់គ្រង</translation> <translation id="862727964348362408">ត្រូវបានបញ្ឈប់</translation> <translation id="862750493060684461">ឃ្លាំងសម្ងាត់ CSS</translation> <translation id="8627795981664801467">ការភ្ជាប់ដែលមានសុវត្ថិភាពប៉ុណ្ណោះ</translation> @@ -11232,6 +11247,7 @@ <translation id="8890529496706615641">មិនអាចប្ដូរឈ្មោះកម្រងព័ត៌មានបានទេ។ សូមព្យាយាមម្ដងទៀត ឬទាក់ទងក្រុមហ៊ុនសេវាទូរសព្ទរបស់អ្នក ដើម្បីទទួលបានជំនួយបច្ចេកទេស។</translation> <translation id="8892168913673237979">បានកំណត់ទាំងអស់ហើយ!</translation> <translation id="8892246501904593980">មើលចំណាំទាំងអស់របស់អ្នកនៅក្នុងចំណាំ និងបញ្ជី</translation> +<translation id="8893779047492837414">បច្ចុប្បន្ននេះ អ្នកមាន<ph name="NUMBERED_ITEM_1" />, <ph name="NUMBERED_ITEM_2" /> និងអ្វីៗជាច្រើនទៀត។ ស្ថាប័នរបស់អ្នក <ph name="ACCOUNT_MANAGER" /> នឹងអាចមើលឃើញ និងគ្រប់គ្រងទិន្នន័យនេះបាន។</translation> <translation id="8893801527741465188">ការលុបបានបញ្ចប់</translation> <translation id="8893928184421379330">សូមទោល ឧបករណ៍ <ph name="DEVICE_LABEL" /> មិនអាចត្រូវបានសម្គាល់ទេ។</translation> <translation id="8894761918470382415">ការការពារសិទ្ធិចូលប្រើទិន្នន័យសម្រាប់ឧបករណ៍សម្រាប់ភ្ជាប់ជាមួយកុំព្យូទ័រ</translation> @@ -11392,6 +11408,7 @@ <translation id="9003185744423389627">ការតភ្ជាប់ទៅម៉ាស៊ីនមេគ្រប់គ្រងឧបករណ៍មិនបានសម្រេចដោយមានស្ថានភាពដាក់ថា '<ph name="STATUS_TEXT" />' នៅថ្ងៃ<ph name="FAILURE_TIME" /></translation> <translation id="90033698482696970">ស្កេនរកកម្រងព័ត៌មាន eSIM ដែលមានដោយស្វ័យប្រវត្តិឬ?</translation> <translation id="9003647077635673607">អនុញ្ញាតនៅលើគេហទំព័រទាំងអស់</translation> +<translation id="9005774573776346118">ដើម្បីទទួលបានពាក្យសម្ងាត់ ចំណាំរបស់អ្នក និងអ្វីៗជាច្រើនទៀតនៅលើឧបករណ៍ទាំងអស់របស់អ្នក សូមចូលគណនីជា <ph name="EMAIL" /></translation> <translation id="9007688236643268728">&ចូលគណនីម្ដងទៀត</translation> <translation id="9008201768610948239">មិនអើពើ</translation> <translation id="9008201858626224558">ប៊ូតុងថយក្រោយនៅលើទំព័រព័ត៌មានលម្អិត <ph name="SUBPAGE_TITLE" /></translation>
diff --git a/chrome/app/resources/generated_resources_mn.xtb b/chrome/app/resources/generated_resources_mn.xtb index d66b34a9..c922199 100644 --- a/chrome/app/resources/generated_resources_mn.xtb +++ b/chrome/app/resources/generated_resources_mn.xtb
@@ -671,6 +671,7 @@ <translation id="1462850958694534228">Дүрс тэмдгийн шинэчлэлтийг шалгах</translation> <translation id="1463112138205428654">Дэвшилтэт хамгаалалт <ph name="FILE_NAME" />-г блоклосон байна.</translation> <translation id="1464044141348608623">Сайтуудад таныг төхөөрөмжөө хэзээ идэвхтэй ашиглаж буйг мэдэхийг бүү зөвшөөр</translation> +<translation id="1464047267926346987">Нууц үг, хавчуурга болон бусад зүйлээ хадгалаарай</translation> <translation id="1464258312790801189">Таны данс</translation> <translation id="1464597059227482327">Хэрэв та харилцагчдад тань байхгүй Chromebook-тэй хуваалцаж байвал тухайн Chromebook “Ойролцоо харагдац”-ыг асаасан эсэхийг шалгана уу. “Ойролцоох харагдац”-ыг асаахын тулд баруун доод буланг сонгож, дараа нь “Ойролцоо харагдац”-ыг асаахыг сонгоно уу. <ph name="LINK_BEGIN" />Нэмэлт мэдээлэл авах<ph name="LINK_END" /></translation> <translation id="1464781208867302907">Төхөөрөмжийн сонголт хийхийн тулд Тохиргоо руу очно уу.</translation> @@ -812,6 +813,7 @@ <translation id="1558671750917454373"><ph name="DEVICE_NAME" />-д дамжуулахыг үргэлжлүүлэх</translation> <translation id="1561331397460162942">Энэ нь байршлын зөвшөөрөлтэй апп, вебсайт болон системийн үйлчилгээнүүдэд байршилд хандахыг зөвшөөрнө</translation> <translation id="1562119309884184621">Энэ харилцагчийг нэмснээр түүнийг дараагийн удаа хуваалцахад нь санах болно</translation> +<translation id="1562585387501039294">Танай байгууллага <ph name="ACCOUNT_MANAGER" /> удирдлагатай профайл шаарддаг бөгөөд зарим мэдээллийг харах боломжтой болно. Үүнд дараах багтана:</translation> <translation id="1566049601598938765">Веб хуудас</translation> <translation id="15662109988763471">Сонгосон хэвлэгч боломжгүй эсвэл буруу суулгагдсан байна. Хэвлэгчээ шалгах эсвэл өөр хэвлэгч сонгож үзнэ үү.</translation> <translation id="1566329594234563241">Идэвхгүй бөгөөд залгасан үед</translation> @@ -907,6 +909,7 @@ <translation id="1616298854599875024">"<ph name="IMPORT_NAME" />" өргөтгөл нь хуваалцсан модуль биш тул үүнийг импорт хийх боломжгүй</translation> <translation id="1617765145568323981">{NUM_FILES,plural, =0{Энэ өгөгдлийг танай байгууллагын аюулгүй байдлын удирдамжуудад нийцэх эсэхийг шалгаж байна...}=1{Энэ файлыг танай байгууллагын аюулгүй байдлын удирдамжуудад нийцэх эсэхийг шалгаж байна...}other{Эдгээр файлыг танай байгууллагын аюулгүй байдлын удирдамжуудад нийцэх эсэхийг шалгаж байна...}}</translation> <translation id="1618102204889321535"><ph name="CURRENT_CHARACTER_COUNT" />/<ph name="MAX_CHARACTER_COUNT" /></translation> +<translation id="1618142905422922351">Танд одоогоор <ph name="NUMBERED_ITEM" /> болон бусад зүйл байна. Танай байгууллага <ph name="ACCOUNT_MANAGER" /> энэ өгөгдлийг харах, удирдах боломжтой болно.</translation> <translation id="1618268899808219593">Тусламжийн төв</translation> <translation id="1619829618836636922">Платформын клиентийн сертификат</translation> <translation id="1619879934359211038">Google Play-д холбогдож чадсангүй. Сүлжээний холболтоо шалгаад, дахин оролдоно уу. Алдааны код: <ph name="ERROR_CODE" />.</translation> @@ -4135,6 +4138,7 @@ <translation id="3844888638014364087">Эможиг оруулсан</translation> <translation id="3846116211488856547">Вебсайт, Android апп болон бусад зүйлийг хөгжүүлэхэд зориулсан хэрэгслийг аваарай. Linux-г суулгаснаар <ph name="DOWNLOAD_SIZE" /> өгөгдөл татаж авах болно.</translation> <translation id="3847319713229060696">Хүн бүрийн төлөө вебийн аюулгүй байдлыг сайжруулахад туслах</translation> +<translation id="3847734730889093333"><ph name="RATE" />x</translation> <translation id="3848547754896969219">&Нууцлалтай цонхонд нээх</translation> <translation id="3850172593216628215">Аюулгүй байдлын шинэчлэлтүүд дууслаа. Шинэ Chromebook-д $50 эсвэл үүнээс ихийг хэмнээрэй.</translation> <translation id="385051799172605136">Буцах</translation> @@ -6113,6 +6117,7 @@ <translation id="5267572070504076962">Аюултай сайтуудын эсрэг хамгаалалт авахын тулд Safe Browsing-г асаана уу</translation> <translation id="5269977353971873915">Хэвлэх үйлдэл амжилтгүй болсон байна</translation> <translation id="5271578170655641944">Google Драйвын хандалтыг хасах уу?</translation> +<translation id="527335345740023523">Танд одоогоор <ph name="NUMBERED_ITEM_1" />, <ph name="NUMBERED_ITEM_2" />, <ph name="NUMBERED_ITEM_3" /> болон бусад зүйл байна. Танай байгууллага <ph name="ACCOUNT_MANAGER" /> энэ өгөгдлийг харах, удирдах боломжтой болно.</translation> <translation id="5273806377963980154">Сайтын URL-г засах</translation> <translation id="5275084684151588738">Хэрэглэгчийн толь бичиг</translation> <translation id="5275338516105640560">Хадгалсан табын бүлгийн товчлуур</translation> @@ -6312,6 +6317,7 @@ <translation id="542073632571549028"><ph name="MEMBER_FULL_NAME" /> (<ph name="EMAIL" />) “<ph name="GROUP_NAME" />” табын бүлэгт хандах эрхээ тэр даруй алдана</translation> <translation id="5420935737933866496">&Холбоосыг хуулах</translation> <translation id="5421048291985386320">&Дахин нэвтэрнэ үү</translation> +<translation id="542237158771780634">Асаалттай үед өгөгдлийг Google Бүртгэлд тань хадгалдаг бөгөөд бүх төхөөрөмж дээрээ ашиглаж болно. Унтраалттай байхад өгөгдлийг зөвхөн энэ төхөөрөмжид хадгалдаг.</translation> <translation id="5422781158178868512">Уучлаарай, таны мэдээлэл хадгалах төхөөрөмжийг танихгүй байна.</translation> <translation id="5423505005476604112">Crostini</translation> <translation id="5423600335480706727">Таныг дараагийн удаа зочлоход <ph name="SITE" /> өгөгдмөл зөвшөөрлийг ашиглана</translation> @@ -6566,6 +6572,7 @@ <translation id="5600706100022181951">Шинэчлэлтийг <ph name="UPDATE_SIZE_MB" /> МБ эсвэл мобайл датагаар татна. Та үргэлжлүүлэх үү?</translation> <translation id="5601503069213153581">ПИН</translation> <translation id="5601833336918638013">Сайтуудад Bluetooth төхөөрөмж хайхыг бүү зөвшөөр</translation> +<translation id="560213628963806709">Энэ апп Chrome-н <ph name="OPENINGS_COUNT" /> шинэ табыг нээсэн байна. Та энэ үйлдлийг "Попап, дахин чиглүүлэх" зөвшөөрлийн доороос удирдаж болно.</translation> <translation id="5602586420788540146">Шинэ табын бүлэгт нээх</translation> <translation id="5605758115928394442">Таныг мөн эсэхийг баталгаажуулах зорилгоор таны утсанд мэдэгдэл илгээсэн болно.</translation> <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Энэ өргөтгөлийг блоклосон байна}other{Эдгээр өргөтгөлийг блоклосон байна}}</translation> @@ -7045,6 +7052,7 @@ <translation id="5952020381407136867">мэдрэгч самбар</translation> <translation id="5953211687820750364">Энэ жагсаалтад <ph name="BEGIN_LINK1" />{BrowserSwitcherExternalGreylistUrl}<ph name="END_LINK1" /> болон <ph name="BEGIN_LINK2" />{BrowserSwitcherUrlGreylist}<ph name="END_LINK2" /> нөлөөлсөн</translation> +<translation id="5955192144223994637">Энэ профайлд үргэлжлүүлэн ажиллах</translation> <translation id="5955304353782037793">аппликейшн</translation> <translation id="5955721306465922729">Вебсайт энэ хэрэглээний программыг нээх хүсэлтэй байна.</translation> <translation id="5955809630138889698">Энэ төхөөрөмж зөвхөн онлайн демо горимд боломжтой байж болзошгүй. Дэлгэрэнгүй мэдээлэл авахын тулд дэмжлэгийн төлөөлөгчтэйгээ холбогдоно уу.</translation> @@ -7775,6 +7783,7 @@ <translation id="6493991254603208962">Гэрэлтүүлгийг хасах</translation> <translation id="6494327278868541139">Сайжруулсан хамгаалалтын дэлгэрэнгүйг харуулах</translation> <translation id="6494483173119160146">Төхөөрөмж сэргээх боломжгүй алдаатай тулгарлаа. Төхөөрөмжөө шинэчлээд (энэ нь бүх хэрэглэгчийн өгөгдлийг устгана), дахин оролдоно уу.</translation> +<translation id="6495261233408033662">Нээлттэй табуудыг хаах</translation> <translation id="6495266441917713704">Wi-Fi-г шилжүүлэх боломжгүй</translation> <translation id="6495453178162183932">Загварыг Өгөгдмөл Chrome руу шинэчилсэн</translation> <translation id="6497784818439587832">Дэлгэц дээрх зүйлсээ жижигрүүлэх эсвэл томруулахын тулд дэлгэцийн хэмжээг өөрчлөөрэй</translation> @@ -8032,6 +8041,7 @@ <translation id="6673898378497337661">гарны гэрэлтүүлгийг нэмэгдүүлэх</translation> <translation id="6674571176963658787">Синк хийж эхлэхийн тулд нэвтрэх үгээ оруулна уу</translation> <translation id="6675665718701918026">Сонгосон төхөөрөмжийг холбосон</translation> +<translation id="6675717447295898330">Надад одоо байгаа өгөгдөлгүйгээр ажилд зориулж шинэ профайл үүсгэх</translation> <translation id="6676212663108450937">Дуу хоолойгоо таниулах явцдаа чихэвч ашиглана уу</translation> <translation id="6676291960742508499">Таны таб, хуудасны гарчиг, URL-уудыг Google-д илгээдэг</translation> <translation id="667752334740867460">Wi-Fi-н мэдээллийг хүлээн авч байна...</translation> @@ -9090,6 +9100,7 @@ <translation id="7427348830195639090">Дэвсгэр хуудас: <ph name="BACKGROUND_PAGE_URL" /></translation> <translation id="7427729970025360383">Энэ профайлыг удирддаг</translation> <translation id="7427798576651127129"><ph name="DEVICE_NAME" />-c дуудлага хийх</translation> +<translation id="7429004613638800673"><ph name="APP_NAME" /> олон таб нээсэн байна.</translation> <translation id="7429415133937917139">Дэлгэцийн дээд хэсэгт байрлах ChromeVox-н түр зуурын самбарт сэргээх боломжтой брайл дэлгэцийн гаралтыг дуурайдаг</translation> <translation id="7429568074268678162"><ph name="FILENAME" /> аюултай байж болзошгүй. Хэрэв та Chrome-с энэ файлыг баталгаажуулахыг хүсвэл нууц үг нэмнэ үү. Эсвэл та шууд татаж авах боломжтой.</translation> @@ -9629,6 +9640,7 @@ <translation id="7796453472368605346">Дуудлагын ялгах тэмдгүүд</translation> <translation id="7797571222998226653">Унтраалттай</translation> <translation id="7798504574384119986">Вебийн зөвшөөрлийг харах</translation> +<translation id="7798559336183476274"><ph name="BUTTON_TITLE" />-н бусад үйлдэл</translation> <translation id="7798844538707273832"><ph name="PERMISSION" />-г автоматаар блоклосон</translation> <translation id="7799650166313181433">Энэ төхөөрөмжтэй зөвхөн <ph name="USER_EMAIL" />-д нэвтэрсэн төхөөрөмжүүд хуваалцах боломжтой. Та төхөөрөмжүүд хооронд хуваалцахыг зөвшөөрөх шаардлагагүй.</translation> <translation id="7800485561443537737">Таны <ph name="DEVICE_TYPE" />-н мобайл датаг ашиглах бөгөөд оператор компани тань нэмэлт хураамжийн төлбөр нэхэмжилж магадгүй. Батарей ашиглалтыг нэмэгдүүлж магадгүй. <ph name="BEGIN_LINK_LEARN_MORE" />Нэмэлт мэдээлэл авах<ph name="END_LINK_LEARN_MORE" /></translation> @@ -9929,6 +9941,7 @@ <translation id="8000020256436988724">Самбар</translation> <translation id="800117767980299235">Хоолойн онцлолт</translation> <translation id="8002274832045662704">Хэвлэгчийн нарийвчилсан тохируулга</translation> +<translation id="8002531372108263935">Танай байгууллага <ph name="ACCOUNT_MANAGER" /> энэ өгөгдлийг харах, удирдах боломжгүй болно. Энэ нь одоо байгаа профайлд үлдэнэ.</translation> <translation id="8002597610026749658">Chrome энд харуулсан хэлээр тайлбар үүсгэх боломжтой</translation> <translation id="8002670234429879764"><ph name="PRINTER_NAME" /> цаашид боломжгүй байна</translation> <translation id="8004092996156083991">Таны нууц үгнүүд алдагдсан тохиолдолд бид танд мэдэгдэнэ.</translation> @@ -10813,6 +10826,7 @@ <translation id="862542460444371744">& Өргөтгөлүүд</translation> <translation id="8625663000550647058">Таны микрофоныг ашиглахыг зөвшөөрөөгүй</translation> <translation id="8625916342247441948">Сайтуудад HID төхөөрөмжүүдэд холбогдохыг бүү зөвшөөр</translation> +<translation id="8626569226218260115">Энэ профайлыг удирдана</translation> <translation id="862727964348362408">Түр саатуулсан</translation> <translation id="862750493060684461">CSS-ийн кэш</translation> <translation id="8627795981664801467">Зөвхөн аюулгүй холболтууд</translation> @@ -11225,6 +11239,7 @@ <translation id="8890529496706615641">Профайлын нэрийг өөрчлөх боломжгүй. Дахин оролдож эсвэл техникийн тусламж авахаар оператор компанитайгаа холбогдоно уу.</translation> <translation id="8892168913673237979">Бүгд тохируулагдсан!</translation> <translation id="8892246501904593980">Хавчуурга болон жагсаалтуудаас бүх хавчуургаа харна уу</translation> +<translation id="8893779047492837414">Танд одоогоор <ph name="NUMBERED_ITEM_1" />, <ph name="NUMBERED_ITEM_2" /> болон бусад зүйл байна. Танай байгууллага <ph name="ACCOUNT_MANAGER" /> энэ өгөгдлийг харах, удирдах боломжтой болно.</translation> <translation id="8893801527741465188">Амжилттай устгалаа</translation> <translation id="8893928184421379330">Уучлаарай, төхөөрөмжийг <ph name="DEVICE_LABEL" /> таних боломжгүй байна.</translation> <translation id="8894761918470382415">Захын өгөгдлийн хандалтын хамгаалалт</translation>
diff --git a/chrome/app/resources/generated_resources_ms.xtb b/chrome/app/resources/generated_resources_ms.xtb index a165d1c..cf8c87f 100644 --- a/chrome/app/resources/generated_resources_ms.xtb +++ b/chrome/app/resources/generated_resources_ms.xtb
@@ -2729,6 +2729,7 @@ <translation id="2855243985454069333">Memadamkan sejarah daripada semua peranti yang disegerakkan</translation> <translation id="2855812646048059450">Log masuk dengan <ph name="CREDENTIAL_PROVIDER" /></translation> <translation id="2856776373509145513">Buat bekas baharu</translation> +<translation id="2857047802954430547">Log masuk untuk mendapatkan kata laluan dan penanda halaman anda serta pelbagai lagi pada semua peranti anda</translation> <translation id="2859741939921354763">Import kata laluan kepada <ph name="BRAND" /></translation> <translation id="2860710618359053450">Alihkan rahang ke kanan</translation> <translation id="2861301611394761800">Kemas kini sistem selesai. Sila mulakan semula sistem.</translation> @@ -11412,6 +11413,7 @@ <translation id="9003185744423389627">Sambungan ke Pelayan Pengurusan Peranti gagal dengan status '<ph name="STATUS_TEXT" />' pada <ph name="FAILURE_TIME" /></translation> <translation id="90033698482696970">Imbas profil eSIM tersedia secara automatik?</translation> <translation id="9003647077635673607">Benarkan pada semua laman web</translation> +<translation id="9005774573776346118">Untuk mendapatkan kata laluan dan penanda halaman anda serta pelbagai lagi pada semua peranti anda, log masuk sebagai <ph name="EMAIL" /></translation> <translation id="9007688236643268728">&Log masuk sekali lagi</translation> <translation id="9008201768610948239">Abaikan</translation> <translation id="9008201858626224558">Butang kembali halaman butiran <ph name="SUBPAGE_TITLE" /></translation>
diff --git a/chrome/app/resources/generated_resources_th.xtb b/chrome/app/resources/generated_resources_th.xtb index bf71bbf..f0de3dc2 100644 --- a/chrome/app/resources/generated_resources_th.xtb +++ b/chrome/app/resources/generated_resources_th.xtb
@@ -670,6 +670,7 @@ <translation id="1462850958694534228">ตรวจสอบการอัปเดตไอคอน</translation> <translation id="1463112138205428654"><ph name="FILE_NAME" /> ถูกบล็อกโดยการปกป้องขั้นสูง</translation> <translation id="1464044141348608623">ไม่อนุญาตให้เว็บไซต์ทราบเวลาที่คุณใช้งานอุปกรณ์อยู่</translation> +<translation id="1464047267926346987">จัดเก็บรหัสผ่าน บุ๊กมาร์ก และอื่นๆ</translation> <translation id="1464258312790801189">บัญชีของคุณ</translation> <translation id="1464597059227482327">หากจะแชร์กับ Chromebook ที่ไม่ได้อยู่ในรายชื่อติดต่อของคุณ ให้ตรวจสอบว่า Chromebook เปิด "การมองเห็นใกล้เคียง" อยู่ หากต้องการเปิด "การมองเห็นใกล้เคียง" ให้เลือกมุมขวาล่าง แล้วเลือกเพื่อเปิด "การมองเห็นใกล้เคียง" <ph name="LINK_BEGIN" />ดูข้อมูลเพิ่มเติม<ph name="LINK_END" /></translation> <translation id="1464781208867302907">ไปที่การตั้งค่าเพื่อตั้งค่ากำหนดของอุปกรณ์</translation> @@ -814,6 +815,7 @@ <translation id="1558671750917454373">แคสต์ไปยัง <ph name="DEVICE_NAME" /> ต่อ</translation> <translation id="1561331397460162942">การดำเนินการนี้จะอนุญาตให้เข้าถึงตำแหน่งสำหรับแอป เว็บไซต์ที่มีสิทธิ์เข้าถึงตำแหน่ง และบริการของระบบ</translation> <translation id="1562119309884184621">การเพิ่มรายชื่อติดต่อนี้จะทำให้ระบบจำได้เมื่อรายชื่อนี้แชร์ครั้งถัดไป</translation> +<translation id="1562585387501039294">องค์กรของคุณ (<ph name="ACCOUNT_MANAGER" />) กำหนดให้ใช้โปรไฟล์ที่มีการจัดการและจะดูข้อมูลบางอย่างได้ ซึ่งรวมถึง</translation> <translation id="1566049601598938765">เว็บไซต์</translation> <translation id="15662109988763471">เครื่องพิมพ์ที่เลือกไว้ใช้ไม่ได้หรือติดตั้งไว้ไม่ถูกต้อง โปรดตรวจสอบเครื่องพิมพ์ของคุณหรือลองเลือกเครื่องพิมพ์อื่น</translation> <translation id="1566329594234563241">ขณะที่ไม่มีการใช้งานและเสียบปลั๊กอยู่</translation> @@ -910,6 +912,7 @@ <translation id="1616298854599875024">นำเข้าส่วนขยาย "<ph name="IMPORT_NAME" />" ไม่ได้เนื่องจากไม่ใช่โมดูลที่แชร์</translation> <translation id="1617765145568323981">{NUM_FILES,plural, =0{กำลังตรวจสอบข้อมูลนี้กับนโยบายความปลอดภัยขององค์กร...}=1{กำลังตรวจสอบไฟล์นี้กับนโยบายความปลอดภัยขององค์กร...}other{กำลังตรวจสอบไฟล์นี้กับนโยบายความปลอดภัยขององค์กร...}}</translation> <translation id="1618102204889321535"><ph name="CURRENT_CHARACTER_COUNT" />/<ph name="MAX_CHARACTER_COUNT" /></translation> +<translation id="1618142905422922351">ขณะนี้คุณมี <ph name="NUMBERED_ITEM" /> และอื่นๆ องค์กรของคุณ (<ph name="ACCOUNT_MANAGER" />) จะสามารถดูและจัดการข้อมูลนี้ได้</translation> <translation id="1618268899808219593">ศู&นย์ช่วยเหลือ</translation> <translation id="1619829618836636922">ใบรับรองไคลเอ็นต์จากแพลตฟอร์ม</translation> <translation id="1619879934359211038">เชื่อมต่อกับ Google Play ไม่สำเร็จ ตรวจสอบการเชื่อมต่อเครือข่ายแล้วลองอีกครั้ง รหัสข้อผิดพลาด: <ph name="ERROR_CODE" /></translation> @@ -2713,6 +2716,7 @@ <translation id="2855243985454069333">ลบประวัติการเข้าชมจากอุปกรณ์ที่ซิงค์ทั้งหมด</translation> <translation id="2855812646048059450">ลงชื่อเข้าใช้ด้วย <ph name="CREDENTIAL_PROVIDER" /></translation> <translation id="2856776373509145513">สร้างคอนเทนเนอร์ใหม่</translation> +<translation id="2857047802954430547">ลงชื่อเข้าใช้เพื่อเข้าถึงรหัสผ่าน บุ๊กมาร์ก และอื่นๆ ในอุปกรณ์ทุกเครื่อง</translation> <translation id="2859741939921354763">นำเข้ารหัสผ่านไปยัง<ph name="BRAND" /></translation> <translation id="2860710618359053450">ยักกรามด้านขวา</translation> <translation id="2861301611394761800">การอัปเดตระบบเสร็จสมบูรณ์ โปรดรีสตาร์ทระบบ</translation> @@ -4124,6 +4128,7 @@ <translation id="3844888638014364087">แทรกอีโมจิแล้ว</translation> <translation id="3846116211488856547">รับเครื่องมือสำหรับพัฒนาเว็บไซต์, แอป Android และอื่นๆ การติดตั้ง Linux จะดาวน์โหลดข้อมูลขนาด <ph name="DOWNLOAD_SIZE" /></translation> <translation id="3847319713229060696">ช่วยปรับปรุงความปลอดภัยในอินเทอร์เน็ตให้กับทุกคน</translation> +<translation id="3847734730889093333"><ph name="RATE" />x</translation> <translation id="3848547754896969219">เปิดใน&หน้าต่างที่ไม่ระบุตัวตน</translation> <translation id="3850172593216628215">การอัปเดตความปลอดภัยสิ้นสุดแล้ว ประหยัดอย่างน้อย $50 เมื่อซื้อ Chromebook เครื่องใหม่</translation> <translation id="385051799172605136">กลับ</translation> @@ -6102,6 +6107,7 @@ <translation id="5267572070504076962">เปิด Google Safe Browsing เพื่อรับการปกป้องจากเว็บไซต์ที่เป็นอันตราย</translation> <translation id="5269977353971873915">การพิมพ์ล้มเหลว</translation> <translation id="5271578170655641944">นําสิทธิ์เข้าถึง Google ไดรฟ์ออกใช่ไหม</translation> +<translation id="527335345740023523">ขณะนี้คุณมี <ph name="NUMBERED_ITEM_1" />, <ph name="NUMBERED_ITEM_2" />, <ph name="NUMBERED_ITEM_3" /> และอื่นๆ องค์กรของคุณ (<ph name="ACCOUNT_MANAGER" />) จะสามารถดูและจัดการข้อมูลนี้ได้</translation> <translation id="5273806377963980154">แก้ไข URL ของเว็บไซต์</translation> <translation id="5275084684151588738">พจนานุกรมผู้ใช้</translation> <translation id="5275338516105640560">ปุ่มกลุ่มแท็บที่บันทึกไว้</translation> @@ -6300,6 +6306,7 @@ <translation id="542073632571549028"><ph name="MEMBER_FULL_NAME" /> (<ph name="EMAIL" />) จะเสียสิทธิ์เข้าถึงกลุ่มแท็บ "<ph name="GROUP_NAME" />" ทันที</translation> <translation id="5420935737933866496">คัดลอกลิงก์</translation> <translation id="5421048291985386320">&ลงชื่อเข้าใช้อีกครั้ง</translation> +<translation id="542237158771780634">เมื่อเปิดไว้ ระบบจะบันทึกข้อมูลในบัญชี Google และใช้ในอุปกรณ์ทุกเครื่องได้ เมื่อปิดไว้ ระบบจะบันทึกข้อมูลในอุปกรณ์เครื่องนี้เท่านั้น</translation> <translation id="5422781158178868512">ขออภัย ระบบไม่รู้จักอุปกรณ์จัดเก็บข้อมูลภายนอกของคุณ</translation> <translation id="5423505005476604112">Crostini</translation> <translation id="5423600335480706727"><ph name="SITE" /> จะใช้สิทธิ์เริ่มต้นในครั้งถัดไปที่คุณเข้าชม</translation> @@ -6554,6 +6561,7 @@ <translation id="5600706100022181951">ระบบจะดาวน์โหลดอัปเดตโดยใช้อินเทอร์เน็ตมือถือ <ph name="UPDATE_SIZE_MB" /> MB คุณต้องการดำเนินการต่อไหม</translation> <translation id="5601503069213153581">PIN</translation> <translation id="5601833336918638013">ไม่อนุญาตให้เว็บไซต์ค้นหาอุปกรณ์บลูทูธ</translation> +<translation id="560213628963806709">แอปนี้ได้เปิดแท็บ Chrome ใหม่ <ph name="OPENINGS_COUNT" /> แท็บ คุณจัดการลักษณะการทำงานนี้ได้ในสิทธิ์ "ป๊อปอัปและการเปลี่ยนเส้นทาง"</translation> <translation id="5602586420788540146">เปิดในกลุ่มแท็บใหม่</translation> <translation id="5605758115928394442">เราส่งการแจ้งเตือนให้คุณทางโทรศัพท์แล้วเพื่อยืนยันตัวตน</translation> <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{ส่วนขยายนี้ถูกบล็อก}other{ส่วนขยายเหล่านี้ถูกบล็อก}}</translation> @@ -7030,6 +7038,7 @@ <translation id="5951624318208955736">จอภาพ</translation> <translation id="5952020381407136867">ทัชแพด</translation> <translation id="5953211687820750364">รายการนี้ได้รับผลกระทบจาก <ph name="BEGIN_LINK1" />{BrowserSwitcherExternalGreylistUrl}<ph name="END_LINK1" /> และ <ph name="BEGIN_LINK2" />{BrowserSwitcherUrlGreylist}<ph name="END_LINK2" /></translation> +<translation id="5955192144223994637">ทำงานในโปรไฟล์นี้ต่อไป</translation> <translation id="5955304353782037793">แอป</translation> <translation id="5955721306465922729">เว็บไซต์หนึ่งต้องการเปิดแอปพลิเคชันนี้</translation> <translation id="5955809630138889698">อุปกรณ์นี้อาจมีสิทธิ์ใช้งานในโหมดสาธิตออนไลน์เท่านั้น โปรดติดต่อตัวแทนฝ่ายสนับสนุนเพื่อขอรายละเอียดเพิ่มเติม</translation> @@ -7760,6 +7769,7 @@ <translation id="6493991254603208962">ลดความสว่าง</translation> <translation id="6494327278868541139">แสดงรายละเอียดการปกป้องที่ปรับปรุงแล้ว</translation> <translation id="6494483173119160146">อุปกรณ์พบข้อผิดพลาดที่กู้คืนไม่ได้ โปรดรีเซ็ตอุปกรณ์ (ระบบจะลบข้อมูลผู้ใช้ทั้งหมด) แล้วลองอีกครั้ง</translation> +<translation id="6495261233408033662">ปิดแท็บที่เปิดอยู่</translation> <translation id="6495266441917713704">โอน Wi-Fi ไม่ได้</translation> <translation id="6495453178162183932">อัปเดตธีมเป็น Chrome ซึ่งเป็นค่าเริ่มต้นแล้ว</translation> <translation id="6497784818439587832">เปลี่ยนขนาดการแสดงผลเพื่อทำให้รายการในหน้าจอมีขนาดเล็กลงหรือใหญ่ขึ้น</translation> @@ -8017,6 +8027,7 @@ <translation id="6673898378497337661">เพิ่มความสว่างของแป้นพิมพ์</translation> <translation id="6674571176963658787">หากต้องการเริ่มต้นการซิงค์ ให้ป้อนรหัสผ่านของคุณ</translation> <translation id="6675665718701918026">เชื่อมต่ออุปกรณ์ชี้ตำแหน่งแล้ว</translation> +<translation id="6675717447295898330">สร้างโปรไฟล์ใหม่สำหรับงานโดยไม่มีข้อมูลที่มีอยู่</translation> <translation id="6676212663108450937">โปรดพิจารณาใช้หูฟังขณะสอนให้ระบบรู้จำเสียง</translation> <translation id="6676291960742508499">ระบบจะส่งแท็บ ชื่อหน้า และ URL ไปยัง Google</translation> <translation id="667752334740867460">กำลังรับข้อมูล Wi-Fi...</translation> @@ -9076,6 +9087,7 @@ <translation id="7427348830195639090">หน้าเว็บพื้นหลัง: <ph name="BACKGROUND_PAGE_URL" /></translation> <translation id="7427729970025360383">โปรไฟล์นี้ได้รับการจัดการ</translation> <translation id="7427798576651127129">โทรจาก <ph name="DEVICE_NAME" /></translation> +<translation id="7429004613638800673"><ph name="APP_NAME" /> เปิดหลายแท็บอยู่</translation> <translation id="7429415133937917139">จำลองผลลัพธ์ของจอแสดงผลอักษรเบรลล์แบบรีเฟรชได้ในแผง ChromeVox ที่ด้านบนของหน้าจอ</translation> <translation id="7429568074268678162"><ph name="FILENAME" /> อาจเป็นอันตราย เพิ่มรหัสผ่าน หากต้องการให้ Chrome ยืนยันหรือคุณจะดาวน์โหลดโดยตรงก็ได้</translation> <translation id="7431719494109538750">ไม่พบอุปกรณ์ HID</translation> @@ -9615,6 +9627,7 @@ <translation id="7796453472368605346">เครื่องหมายเสริมสัทอักษร</translation> <translation id="7797571222998226653">ปิด</translation> <translation id="7798504574384119986">ดูสิทธิ์ของเว็บ</translation> +<translation id="7798559336183476274">การดำเนินการเพิ่มเติมสำหรับ <ph name="BUTTON_TITLE" /></translation> <translation id="7798844538707273832">บล็อก<ph name="PERMISSION" />โดยอัตโนมัติ</translation> <translation id="7799650166313181433">มีเพียงอุปกรณ์ที่ลงชื่อเข้าใช้ <ph name="USER_EMAIL" /> เท่านั้นที่จะแชร์กับอุปกรณ์นี้ได้ คุณไม่จำเป็นต้องอนุมัติการแชร์ระหว่างอุปกรณ์</translation> <translation id="7800485561443537737">ใช้อินเทอร์เน็ตของ <ph name="DEVICE_TYPE" /> และผู้ให้บริการอาจเรียกเก็บค่าธรรมเนียมเพิ่มเติม อาจมีการใช้งานแบตเตอรี่เพิ่มขึ้น <ph name="BEGIN_LINK_LEARN_MORE" />ดูข้อมูลเพิ่มเติม<ph name="END_LINK_LEARN_MORE" /></translation> @@ -9916,6 +9929,7 @@ <translation id="8000020256436988724">แถบเครื่องมือ</translation> <translation id="800117767980299235">ไฮไลต์ด้วยเสียง</translation> <translation id="8002274832045662704">การกำหนดค่าขั้นสูงของเครื่องพิมพ์</translation> +<translation id="8002531372108263935">องค์กรของคุณ (<ph name="ACCOUNT_MANAGER" />) จะดูหรือจัดการข้อมูลนี้ไม่ได้ โดยจะยังคงอยู่ในโปรไฟล์ที่มีอยู่</translation> <translation id="8002597610026749658">Chrome สร้างคำบรรยายแทนเสียงสำหรับภาษาที่แสดงที่นี่ได้</translation> <translation id="8002670234429879764"><ph name="PRINTER_NAME" /> ไม่มีให้ใช้งานแล้ว</translation> <translation id="8004092996156083991">หากรหัสผ่านถูกละเมิด เราจะแจ้งให้คุณทราบ</translation> @@ -10801,6 +10815,7 @@ <translation id="862542460444371744">&ส่วนขยาย</translation> <translation id="8625663000550647058">ไม่ได้รับอนุญาตให้ใช้ไมโครโฟน</translation> <translation id="8625916342247441948">ไม่อนุญาตให้เว็บไซต์เชื่อมต่ออุปกรณ์ HID</translation> +<translation id="8626569226218260115">โปรไฟล์นี้จะได้รับการจัดการ</translation> <translation id="862727964348362408">ระงับไว้ชั่วคราว</translation> <translation id="862750493060684461">แคช CSS</translation> <translation id="8627795981664801467">สำหรับการเชื่อมต่อที่ปลอดภัยเท่านั้น</translation> @@ -11215,6 +11230,7 @@ <translation id="8890529496706615641">เปลี่ยนชื่อโปรไฟล์ไม่ได้ โปรดลองอีกครั้งหรือติดต่อผู้ให้บริการเพื่อรับการสนับสนุนด้านเทคนิค</translation> <translation id="8892168913673237979">เรียบร้อยแล้ว!</translation> <translation id="8892246501904593980">ดูบุ๊กมาร์กทั้งหมดได้ในบุ๊กมาร์กและรายการ</translation> +<translation id="8893779047492837414">ขณะนี้คุณมี <ph name="NUMBERED_ITEM_1" />, <ph name="NUMBERED_ITEM_2" /> และอื่นๆ องค์กรของคุณ (<ph name="ACCOUNT_MANAGER" />) จะสามารถดูและจัดการข้อมูลนี้ได้</translation> <translation id="8893801527741465188">ถอนการติดตั้งเรียบร้อยแล้ว</translation> <translation id="8893928184421379330">ขออภัย ระบบไม่รู้จักอุปกรณ์ <ph name="DEVICE_LABEL" /></translation> <translation id="8894761918470382415">การป้องกันการเข้าถึงข้อมูลสำหรับอุปกรณ์ต่อพ่วง</translation> @@ -11375,6 +11391,7 @@ <translation id="9003185744423389627">การเชื่อมต่อกับเซิร์ฟเวอร์การจัดการอุปกรณ์ไม่สำเร็จโดยมีสถานะ "<ph name="STATUS_TEXT" />" เมื่อ <ph name="FAILURE_TIME" /></translation> <translation id="90033698482696970">สแกนหาโปรไฟล์ eSIM ที่ใช้ได้โดยอัตโนมัติไหม</translation> <translation id="9003647077635673607">อนุญาตบนทุกเว็บไซต์</translation> +<translation id="9005774573776346118">ลงชื่อเข้าใช้ด้วย <ph name="EMAIL" /> เพื่อเข้าถึงรหัสผ่าน บุ๊กมาร์ก และข้อมูลอื่นๆ ในอุปกรณ์ทุกเครื่อง</translation> <translation id="9007688236643268728">&ลงชื่อเข้าใช้อีกครั้ง</translation> <translation id="9008201768610948239">ไม่สนใจ</translation> <translation id="9008201858626224558">ปุ่มย้อนกลับในหน้ารายละเอียด <ph name="SUBPAGE_TITLE" /></translation>
diff --git a/chrome/app/resources/generated_resources_ur.xtb b/chrome/app/resources/generated_resources_ur.xtb index 5af8068..a91c3ae 100644 --- a/chrome/app/resources/generated_resources_ur.xtb +++ b/chrome/app/resources/generated_resources_ur.xtb
@@ -670,6 +670,7 @@ <translation id="1462850958694534228">آئیکن اپ ڈیٹ کا جائزہ لیں</translation> <translation id="1463112138205428654">اعلی تحفظ نے <ph name="FILE_NAME" /> کو مسدود کر دیا ہے۔</translation> <translation id="1464044141348608623">آپ اپنے آلے کا فعال طور پر استعمال کب کر رہے ہیں سائٹس کو یہ جاننے کی اجازت نہ دیں</translation> +<translation id="1464047267926346987">اپنے پاس ورڈز، بُک مارکس وغیرہ کو اسٹور کریں</translation> <translation id="1464258312790801189">آپ کے اکاؤنٹس</translation> <translation id="1464597059227482327">اگر آپ کسی Chromebook کے ساتھ اشتراک کر رہے ہیں جو آپ کے رابطوں میں نہیں ہے تو یقینی بنائیں کہ Chromebook میں "قریبی مرئیت" آن ہے۔ "قریبی مرئیت" کو آن کرنے کے لیے، نیچے دائیں کونے کو منتخب کریں اور پھر "قریبی مرئیت" کو آن کرنے کے لیے منتخب کریں۔ <ph name="LINK_BEGIN" />مزید جانیں<ph name="LINK_END" /></translation> <translation id="1464781208867302907">آلہ کی ترجیحات کے لیے، ترتیبات میں جائیں۔</translation> @@ -814,6 +815,7 @@ <translation id="1558671750917454373"><ph name="DEVICE_NAME" /> پر کاسٹ کرنا دوبارہ شروع کریں</translation> <translation id="1561331397460162942">یہ ایپس، مقام کی اجازت والی ویب سائٹس اور سسٹم سروسز کے لیے مقام تک رسائی کی اجازت دیتا ہے</translation> <translation id="1562119309884184621">اس رابطہ کو شامل کرنے سے اگلی بار ان کے اشتراک کرنے پر یاد رکھے گا</translation> +<translation id="1562585387501039294">آپ کی تنظیم، <ph name="ACCOUNT_MANAGER" />، کو ایک زیرِ نظم پروفائل کی ضرورت ہے اور وہ کچھ معلومات دیکھ سکے گی، بشمول</translation> <translation id="1566049601598938765">ویب سائٹ</translation> <translation id="15662109988763471">منتخب کردہ پرنٹر دستیاب نہیں ہے یا صحیح طریقے سے انسٹال نہیں ہوا ہے۔ اپنا پرنٹر چیک کریں یا دوسرا پرنٹر منتخب کر کے آزمائيں۔</translation> <translation id="1566329594234563241">غیر فعال اور پلگ ان رہتے ہوئے</translation> @@ -910,6 +912,7 @@ <translation id="1616298854599875024">ایکسٹینشن "<ph name="IMPORT_NAME" />" کو درآمد کرنے سے قاصر ہے کیونکہ یہ ایک اشتراک کردہ ماڈیول نہیں ہے</translation> <translation id="1617765145568323981">{NUM_FILES,plural, =0{آپ کی تنظیم کی سکیورٹی پالیسیز کے ساتھ اس ڈیٹا کو چیک کیا جا رہا ہے...}=1{آپ کی تنظیم کی سکیورٹی پالیسیز کے ساتھ اس فائل کو چیک کیا جا رہا ہے...}other{آپ کی تنظیم کی سکیورٹی پالیسیز کے ساتھ ان فائلز کو چیک کیا جا رہا ہے...}}</translation> <translation id="1618102204889321535"><ph name="CURRENT_CHARACTER_COUNT" />/<ph name="MAX_CHARACTER_COUNT" /></translation> +<translation id="1618142905422922351">آپ کے پاس فی الحال <ph name="NUMBERED_ITEM" /> اور مزید ہیں۔ آپ کی تنظیم، <ph name="ACCOUNT_MANAGER" /> اس ڈیٹا کو دیکھ سکے گی اور اس کا نظم کر سکے گی۔</translation> <translation id="1618268899808219593">امدادی &مرکز</translation> <translation id="1619829618836636922">پلیٹ فارم سے درآمد شدہ کلائنٹ سرٹیفکیٹس</translation> <translation id="1619879934359211038">Google Play سے منسلک نہیں ہو سکا۔ اپنا نیٹ ورک کنکشن چیک کریں اور دوبارہ کوشش کریں۔ خرابی کا کوڈ: <ph name="ERROR_CODE" />۔</translation> @@ -4126,6 +4129,7 @@ <translation id="3844888638014364087">ایموجی داخل کی گئی</translation> <translation id="3846116211488856547">ویب سائٹس، Android ایپس، اور مزید کو ڈیولپ کرنے والے ٹولز حاصل کریں۔ Linux انسٹال کرنے پر <ph name="DOWNLOAD_SIZE" /> ڈیٹا ڈاؤن لوڈ ہوگا۔</translation> <translation id="3847319713229060696">سبھی کے لیے ویب پر سیکیورٹی کو بہتر بنانے میں مدد کریں</translation> +<translation id="3847734730889093333">x<ph name="RATE" /></translation> <translation id="3848547754896969219">&پوشیدگی ونڈو میں کھولیں</translation> <translation id="3850172593216628215">سیکیورٹی اپ ڈیٹس ختم ہو گئی ہیں۔ کسی نئے Chromebook پر $50 یا اس سے زیادہ محفوظ کریں۔</translation> <translation id="385051799172605136">پیچھے</translation> @@ -6104,6 +6108,7 @@ <translation id="5267572070504076962">خطرناک سائٹس سے تحفظ حاصل کرنے کے لیے محفوظ براؤزنگ کو آن کریں</translation> <translation id="5269977353971873915">پرنٹ ناکام ہوگیا</translation> <translation id="5271578170655641944">Google Drive تک رسائی کو ہٹائیں؟</translation> +<translation id="527335345740023523">آپ کے پاس فی الحال <ph name="NUMBERED_ITEM_1" />، <ph name="NUMBERED_ITEM_2" />، <ph name="NUMBERED_ITEM_3" /> اور مزید ہیں۔ آپ کی تنظیم، <ph name="ACCOUNT_MANAGER" /> اس ڈیٹا کو دیکھ سکے گی اور اس کا نظم کر سکے گی۔</translation> <translation id="5273806377963980154">سائٹ کا URL ترمیم کریں</translation> <translation id="5275084684151588738">صارف کی لغات</translation> <translation id="5275338516105640560">محفوظ کردہ ٹیب گروپ کا بٹن</translation> @@ -6301,6 +6306,7 @@ <translation id="542073632571549028"><ph name="MEMBER_FULL_NAME" /> (<ph name="EMAIL" />) فوری طور پر "<ph name="GROUP_NAME" />" ٹیب گروپ تک رسائی سے محروم ہو جائے گا</translation> <translation id="5420935737933866496">لنک کاپی کریں</translation> <translation id="5421048291985386320">دوبارہ &سائن ان کریں</translation> +<translation id="542237158771780634">آن ہونے پر، ڈیٹا آپ کے Google اکاؤنٹ میں محفوظ ہوتا ہے اور آپ کے سبھی آلات پر اس کا استعمال کیا جا سکتا ہے۔ آف ہونے پر، ڈیٹا صرف اس آلے میں محفوظ ہوتا ہے۔</translation> <translation id="5422781158178868512">معذرت، آپ کے خارجی اسٹوریج آلہ کی شناخت نہیں ہو سکی۔</translation> <translation id="5423505005476604112">Crostini</translation> <translation id="5423600335480706727">اگلی بار آپ کے <ph name="SITE" /> ملاحظہ کرنے پر یہ ڈیفالٹ اجازتوں کا استعمال کرے گی</translation> @@ -6555,6 +6561,7 @@ <translation id="5600706100022181951">موبائل ڈیٹا <ph name="UPDATE_SIZE_MB" /> MB استعمال کرتے ہوۓ اپڈیٹ ڈاؤن لوڈ ہو جائے گا۔ کیا آپ اسے جاری رکھنا چاہتے ہيں؟</translation> <translation id="5601503069213153581">PIN</translation> <translation id="5601833336918638013">سائٹس کو بلوٹوتھ آلات تلاش کرنے کی اجازت نہ دیں</translation> +<translation id="560213628963806709">اس ایپ کے ذریعے <ph name="OPENINGS_COUNT" /> نئے Chrome ٹیبز کھولے گئے ہیں۔ آپ "پوپ - اپس اور ری ڈائریکٹس" کی اجازت کے تحت اس رویے کا نظم کر سکتے ہیں۔</translation> <translation id="5602586420788540146">نئے ٹیب گروپ میں کھولیں</translation> <translation id="5605758115928394442">اس بات کی تصدیق کرنے کیلئے کہ یہ آپ ہی ہیں، آپ کے فون پر ایک اطلاع بھیجی گئی۔</translation> <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{یہ ایکسٹینشن مسدود ہے}other{یہ ایکسٹینشنز مسدود ہیں}}</translation> @@ -7034,6 +7041,7 @@ <translation id="5952020381407136867">ٹچ پیڈ</translation> <translation id="5953211687820750364">یہ فہرست <ph name="BEGIN_LINK1" />{BrowserSwitcherExternalGreylistUrl}<ph name="END_LINK1" /> اور <ph name="BEGIN_LINK2" />{BrowserSwitcherUrlGreylist}<ph name="END_LINK2" /> سے متاثر ہے</translation> +<translation id="5955192144223994637">اس پروفائل میں کام کرنا جاری رکھیں</translation> <translation id="5955304353782037793">ایپ</translation> <translation id="5955721306465922729">ایک ویب سائٹ یہ ایپلیکیشن کھولنا چاہتی ہے۔</translation> <translation id="5955809630138889698">ہو سکتا ہے کہ یہ آلہ صرف آن لائن ڈیمو موڈ کیلئے ہی اہل ہو۔ براہ کرم مزید تفصیلات کیلئے اپنے معاون نمائندے سے رابطہ کریں۔</translation> @@ -7764,6 +7772,7 @@ <translation id="6493991254603208962">چمک کم کریں</translation> <translation id="6494327278868541139">بہتر کردہ تحفظ کی تفصیلات دکھائیں</translation> <translation id="6494483173119160146">آلے میں ایک ناقابل بازیابی کی خرابی پیش آگئی۔ براہ کرم اپنا آلہ ری سیٹ کریں (اس سے صارف کا تمام ڈیٹا مٹ جائے گا) اور دوبارہ کوشش کریں۔</translation> +<translation id="6495261233408033662">کھلے ہوئے ٹیبز کو بند کریں</translation> <translation id="6495266441917713704">Wi-Fi کو منتقل نہیں کیا جا سکتا</translation> <translation id="6495453178162183932">تھیم کو ڈیفالٹ Chrome میں اپ ڈیٹ کر دیا گیا</translation> <translation id="6497784818439587832">اپنی اسکرین پر موجود آئٹمز کو چھوٹا یا بڑا کرنے کے لیے ڈسپلے کا سائز تبدیل کریں</translation> @@ -8021,6 +8030,7 @@ <translation id="6673898378497337661">کی بورڈ کی چمک کو بڑھائیں کریں</translation> <translation id="6674571176963658787">مطابقت پذیری شروع کرنے کے لیے، اپنا پاس فریز درج کریں</translation> <translation id="6675665718701918026">پوائنٹنگ آلہ منسلک ہو گیا</translation> +<translation id="6675717447295898330">میرے موجودہ ڈیٹا کے بغیر دفتر کے لیے ایک نئی پروفائل تخلیق کریں</translation> <translation id="6676212663108450937">اپنی آواز کو تربیت دینے کے دوران، براہ کرم ہیڈ فونز استعمال کریں</translation> <translation id="6676291960742508499">آپ کے ٹیبز، صفحہ کے عنوانات اور URLs Google کو بھیجے جاتے ہیں</translation> <translation id="667752334740867460">Wi-Fi کی معلومات موصول ہو رہی ہے...</translation> @@ -9079,6 +9089,7 @@ <translation id="7427348830195639090">پس منظر کا صفحہ: <ph name="BACKGROUND_PAGE_URL" /></translation> <translation id="7427729970025360383">یہ پروفائل نظم کردہ ہے</translation> <translation id="7427798576651127129"><ph name="DEVICE_NAME" /> سے کال کریں</translation> +<translation id="7429004613638800673"><ph name="APP_NAME" /> میں متعدد ٹیبز کھلے ہیں۔</translation> <translation id="7429415133937917139">ریفریش کے قابل بریل ڈسپلے کے آؤٹ پٹ کو ChromeVox پینل میں اسکرین کے اوپر نقل کرتا ہے</translation> <translation id="7429568074268678162"><ph name="FILENAME" /> خطرناک ہو سکتا ہے۔ اگر آپ چاہتے ہیں کہ Chrome اس کی تصدیق کرے تو ایک پاس ورڈ شامل کریں یا اسے براہ راست ڈاؤن لوڈ کریں۔</translation> @@ -9619,6 +9630,7 @@ <translation id="7796453472368605346">تفریقی نشانات</translation> <translation id="7797571222998226653">آف</translation> <translation id="7798504574384119986">ویب کی اجازتیں دیکھیں</translation> +<translation id="7798559336183476274"><ph name="BUTTON_TITLE" /> کے لیے مزید کارروائیاں</translation> <translation id="7798844538707273832"><ph name="PERMISSION" /> خود کار طور پر مسدود کر دی گئی</translation> <translation id="7799650166313181433"><ph name="USER_EMAIL" /> میں سائن ان کردہ آلات ہی اس آلے کے ساتھ اشتراک کر سکتے ہیں۔ آپ کو اپنے آلات کے درمیان اشتراک کی منظوری کی ضرورت نہیں ہوگی۔</translation> <translation id="7800485561443537737">آپ کے <ph name="DEVICE_TYPE" /> آلے کا موبائل ڈیٹا استعمال کرتا ہے اور آپ کا کیریئر اضافی فیس وصول کر سکتا ہے۔ بیٹری کے استعمال کو بڑھا سکتا ہے۔ <ph name="BEGIN_LINK_LEARN_MORE" />مزید جانیں<ph name="END_LINK_LEARN_MORE" /></translation> @@ -9920,6 +9932,7 @@ <translation id="8000020256436988724">Toolbar</translation> <translation id="800117767980299235">صوتی ہائی لائٹ</translation> <translation id="8002274832045662704">پرنٹر کی جدید ترین کنفیگریشن</translation> +<translation id="8002531372108263935">آپ کی تنظیم، <ph name="ACCOUNT_MANAGER" /> اس ڈیٹا کو دیکھنے یا اس کا نظم کرنے کے اہل نہیں ہوگی۔ یہ موجودہ پروفائل میں باقی رہے گا۔</translation> <translation id="8002597610026749658">Chrome یہاں دکھائی گئی زبانوں کیلئے کیپشنز تخلیق کر سکتا ہے</translation> <translation id="8002670234429879764"><ph name="PRINTER_NAME" /> مزید دستیاب نہیں ہے</translation> <translation id="8004092996156083991">اگر آپ کے پاس ورڈز متاثرہ ہیں تو ہم آپ کو بتائیں گے۔</translation> @@ -10804,6 +10817,7 @@ <translation id="862542460444371744">&ایکسٹینشنز</translation> <translation id="8625663000550647058">آپ کے مائیکروفون کو استعمال کرنے کی اجازت نہیں ہے</translation> <translation id="8625916342247441948">سائٹس کو HID آلات سے منسلک ہونے کی اجازت نہ دیں</translation> +<translation id="8626569226218260115">اس پروفائل کا نظم کیا جائے گا</translation> <translation id="862727964348362408">معطل</translation> <translation id="862750493060684461">CSS کیش</translation> <translation id="8627795981664801467">صرف محفوظ کنکشنز</translation> @@ -11218,6 +11232,7 @@ <translation id="8890529496706615641">پروفائل کا نام تبدیل نہیں کیا جا سکا۔ براہ کرم دوبارہ کوشش کریں یا تکنیکی سپورٹ کے لیے اپنے کیرئیر سے رابطہ کریں۔</translation> <translation id="8892168913673237979">سب کچھ تیار ہے!</translation> <translation id="8892246501904593980">اپنے تمام بک مارکس کو بُک مارکس اور فہرستوں میں دیکھیں</translation> +<translation id="8893779047492837414">آپ کے پاس فی الحال <ph name="NUMBERED_ITEM_1" />، <ph name="NUMBERED_ITEM_2" /> اور مزید ہیں۔ آپ کی تنظیم، <ph name="ACCOUNT_MANAGER" /> اس ڈیٹا کو دیکھ سکے گی اور اس کا نظم کر سکے گی۔</translation> <translation id="8893801527741465188">اَن انسٹال کرنے کا عمل مکمل</translation> <translation id="8893928184421379330">معذرت، آلہ <ph name="DEVICE_LABEL" /> پہچانا نہیں جا سکا۔</translation> <translation id="8894761918470382415">پیریفیرلز کیلئے ڈیٹا تک رسائی کا پروٹیکشن</translation>
diff --git a/chrome/app/resources/google_chrome_strings_km.xtb b/chrome/app/resources/google_chrome_strings_km.xtb index a44d5c2..5c4f188 100644 --- a/chrome/app/resources/google_chrome_strings_km.xtb +++ b/chrome/app/resources/google_chrome_strings_km.xtb
@@ -106,6 +106,7 @@ <translation id="2236949375853147973">សកម្មភាពរបស់ខ្ញុំ</translation> <translation id="2290014774651636340">សោ Google API បានបាត់។ មុខងារមួយចំនួននៃ Google Chrome នឹងត្រូវបានបិទដំណើរការ។</translation> <translation id="2290095356545025170">តើអ្នកប្រាកដថាចង់លុបការតំឡើង Google Chrome ទេ?</translation> +<translation id="2301513536169703857">ដើម្បីទទួលបានពាក្យសម្ងាត់ ចំណាំរបស់អ្នក និងអ្វីៗជាច្រើនទៀតនៅលើឧបករណ៍ទាំងអស់របស់អ្នក សូមចូលគណនី Chrome</translation> <translation id="2309047409763057870">នេះគឺជាការដំឡើេង Google Chrome បន្ទាប់បន្សំ ហើយវាមិនអាចធ្វើជាកម្មវិធីរុករកលំនាំដើមរបស់អ្នកបានទេ។</translation> <translation id="2345992953227471816">Chrome បានរកឃើញថា កម្មវិធីបន្ថែមទាំងនេះមានកម្មវិធីគ្រោះថ្នាក់៖</translation> <translation id="2348335408836342058">Chrome ត្រូវការការអនុញ្ញាតដើម្បីចូលប្រើកាមេរ៉ា និងមីក្រូហ្វូនរបស់អ្នកសម្រាប់ទំព័រនេះ</translation> @@ -435,6 +436,7 @@ <translation id="6326175484149238433">ដកចេញពី Chrome</translation> <translation id="6327105987658262776">មិនមានកំណែថ្មីទេ។</translation> <translation id="6360449101159168105">នៅពេលផ្ទាំងនេះអសកម្ម អង្គចងចាំត្រូវបានសម្អាត ដើម្បីរក្សា Chrome ឱ្យដើរលឿន។ អ្នកអាចជ្រើសរើសដកគេហទំព័រនេះចេញពីភាពអសកម្មបានជានិច្ច។</translation> +<translation id="6388799252195623474">ជួយខ្ញុំពាក់ព័ន្ធនឹងករណីនេះ</translation> <translation id="6412673304250309937">ពិនិត្យ URL ធៀបនឹងបញ្ជីគេហទំព័រគ្មានសុវត្ថិភាព ដែលរក្សាទុកនៅក្នុង Chrome។ ប្រសិនបើគេហទំព័រណាមួយព្យាយាមលួចពាក្យសម្ងាត់របស់អ្នក ឬនៅពេលអ្នកទាញយកឯកសារដែលអាចបង្កគ្រោះថ្នាក់នោះ Chrome ក៏ប្រហែលជាបញ្ជូន URL រួមជាមួយផ្នែកនៃខ្លឹមសារទំព័រ ទៅការរុករកដោយសុវត្ថិភាពផងដែរ។</translation> <translation id="6417690341895039567">{COUNT,plural, =1{ស្ថាប័នរបស់អ្នកបិទ Chrome ដោយស្វ័យប្រវត្តិ នៅពេលដែលមិនប្រើប្រាស់វារយៈពេល 1 នាទី។ ទិន្នន័យរុករកត្រូវបានលុប។ ទិន្នន័យនេះអាចរួមមានប្រវត្តិ ការបំពេញស្វ័យប្រវត្តិ និងការទាញយក។}other{ស្ថាប័នរបស់អ្នកបិទ Chrome ដោយស្វ័យប្រវត្តិ នៅពេលដែលមិនប្រើប្រាស់វារយៈពេល # នាទី។ ទិន្នន័យរុករកត្រូវបានលុប។ ទិន្នន័យនេះអាចរួមមានប្រវត្តិ ការបំពេញស្វ័យប្រវត្តិ និងការទាញយក។}}</translation> <translation id="6418662306461808273">ប្ដូរទៅកម្រងព័ត៌មាន Chrome ដែលមានស្រាប់ឬ?</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ms.xtb b/chrome/app/resources/google_chrome_strings_ms.xtb index c0d6bea1f..4da60cb 100644 --- a/chrome/app/resources/google_chrome_strings_ms.xtb +++ b/chrome/app/resources/google_chrome_strings_ms.xtb
@@ -102,6 +102,7 @@ <translation id="2236949375853147973">Aktiviti Saya</translation> <translation id="2290014774651636340">Kunci API Google tiada. Sesetengah fungsi Google Chrome akan dilumpuhkan.</translation> <translation id="2290095356545025170">Adakah anda pasti anda mahu menyahpasang Google Chrome?</translation> +<translation id="2301513536169703857">Untuk mendapatkan kata laluan dan penanda halaman anda serta pelbagai lagi pada semua peranti anda, log masuk ke Chrome</translation> <translation id="2309047409763057870">Ini adalah pemasangan kedua Google Chrome dan tidak boleh dijadikan penyemak imbas lalai anda.</translation> <translation id="2345992953227471816">Chrome mendapati bahawa item ini mengandungi perisian hasad:</translation> <translation id="2348335408836342058">Chrome memerlukan kebenaran untuk mengakses kamera dan mikrofon anda bagi tapak ini</translation> @@ -428,6 +429,7 @@ <translation id="6326175484149238433">Alih keluar dari Chrome</translation> <translation id="6327105987658262776">Kemas kini tidak tersedia.</translation> <translation id="6360449101159168105">Semasa tab ini tidak aktif, memori dikosongkan untuk mengekalkan kepantasan Chrome. Anda boleh memilih untuk sentiasa mengecualikan laman ini daripada menjadi tidak aktif.</translation> +<translation id="6388799252195623474">bantu saya dengan kandungan ini</translation> <translation id="6412673304250309937">Semak URL melalui perbandingan dengan senarai tapak tidak selamat yang disimpan dalam Chrome. Jika tapak cuba mencuri kata laluan anda atau apabila anda memuat turun fail yang berbahaya, Chrome juga mungkin menghantar URL, termasuk sedikit kandungan halaman, kepada Penyemakan Imbas Selamat.</translation> <translation id="6417690341895039567">{COUNT,plural, =1{Organisasi anda akan menutup Chrome secara automatik apabila Chrome tidak digunakan selama 1 minit. Data semakan imbas dipadamkan. Pemadaman ini termasuk sejarah, autolengkap dan muat turun.}other{Organisasi anda akan menutup Chrome secara automatik apabila Chrome tidak digunakan selama # minit. Data semakan imbas dipadamkan. Pemadaman ini termasuk sejarah, autolengkap dan muat turun.}}</translation> <translation id="6418662306461808273">Tukar kepada profil Chrome yang sedia ada?</translation>
diff --git a/chrome/app/resources/google_chrome_strings_th.xtb b/chrome/app/resources/google_chrome_strings_th.xtb index bb85a6c2..ed5bf62 100644 --- a/chrome/app/resources/google_chrome_strings_th.xtb +++ b/chrome/app/resources/google_chrome_strings_th.xtb
@@ -102,6 +102,7 @@ <translation id="2236949375853147973">กิจกรรมของฉัน</translation> <translation id="2290014774651636340">คีย์ API ของ Google หายไป การทำงานบางอย่างของ Google Chrome จะถูกปิดใช้งาน</translation> <translation id="2290095356545025170">คุณแน่ใจหรือไม่ว่าต้องการยกเลิกการติดตั้ง Google Chrome</translation> +<translation id="2301513536169703857">ลงชื่อเข้าใช้ Chrome เพื่อเข้าถึงรหัสผ่าน บุ๊กมาร์ก และข้อมูลอื่นๆ ในอุปกรณ์ทุกเครื่อง</translation> <translation id="2309047409763057870">นี่เป็นการติดตั้ง Google Chrome แบบสำรอง และไม่สามารถใช้เป็นเบราว์เซอร์เริ่มต้นของคุณ</translation> <translation id="2345992953227471816">Chrome พบว่าส่วนขยายเหล่านี้มีมัลแวร์</translation> <translation id="2348335408836342058">Chrome ต้องการสิทธิ์เข้าถึงไมโครโฟนและกล้องถ่ายรูปของคุณสำหรับเว็บไซต์นี้</translation> @@ -427,6 +428,7 @@ <translation id="6326175484149238433">ลบจาก Chrome</translation> <translation id="6327105987658262776">ไม่มีอัปเดตพร้อมใช้งาน</translation> <translation id="6360449101159168105">ขณะที่แท็บนี้ไม่มีการใช้งาน ระบบจะเพิ่มพื้นที่ว่างในหน่วยความจำเพื่อให้ใช้ Chrome ได้อย่างรวดเร็วอยู่เสมอ ทั้งนี้คุณจะเลือกยกเว้นให้เว็บไซต์นี้ทำงานตลอดเวลาได้</translation> +<translation id="6388799252195623474">ช่วยฉันเรื่องนี้</translation> <translation id="6412673304250309937">ตรวจสอบ URL กับรายการเว็บไซต์ที่ไม่ปลอดภัยซึ่งจัดเก็บไว้ใน Chrome หากเว็บไซต์พยายามขโมยรหัสผ่าน หรือคุณดาวน์โหลดไฟล์ที่เป็นอันตราย Chrome อาจส่ง URL รวมถึงเนื้อหาบางส่วนในหน้าไปยัง Google Safe Browsing ด้วย</translation> <translation id="6417690341895039567">{COUNT,plural, =1{องค์กรจะปิด Chrome โดยอัตโนมัติเมื่อไม่มีการใช้งานเป็นเวลา 1 นาที ลบข้อมูลการท่องเว็บแล้ว ซึ่งอาจรวมถึงประวัติการเข้าชม การป้อนข้อความอัตโนมัติ และการดาวน์โหลด}other{องค์กรจะปิด Chrome โดยอัตโนมัติเมื่อไม่มีการใช้งานเป็นเวลา # นาที ลบข้อมูลการท่องเว็บแล้ว ซึ่งอาจรวมถึงประวัติการเข้าชม การป้อนข้อความอัตโนมัติ และการดาวน์โหลด}}</translation> <translation id="6418662306461808273">เปลี่ยนไปใช้โปรไฟล์ Chrome ที่มีอยู่ไหม</translation>
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc index 401a8e83..aaecff3 100644 --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc
@@ -12031,7 +12031,7 @@ {"enable-clipboardchange-event", flag_descriptions::kClipboardChangeEventName, flag_descriptions::kClipboardChangeEventDescription, kOsAll, - FEATURE_VALUE_TYPE(features::kClipboardChangeEvent)}, + FEATURE_VALUE_TYPE(blink::features::kClipboardChangeEvent)}, #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ BUILDFLAG(IS_CHROMEOS)
diff --git a/chrome/browser/extensions/api/mdns/mdns_api.cc b/chrome/browser/extensions/api/mdns/mdns_api.cc index 67ce30d..1f5d2dc 100644 --- a/chrome/browser/extensions/api/mdns/mdns_api.cc +++ b/chrome/browser/extensions/api/mdns/mdns_api.cc
@@ -39,11 +39,7 @@ event_router->RegisterObserver(this, mdns::OnServiceList::kEventName); } -MDnsAPI::~MDnsAPI() { - if (dns_sd_registry_) { - dns_sd_registry_->RemoveObserver(this); - } -} +MDnsAPI::~MDnsAPI() = default; // static MDnsAPI* MDnsAPI::Get(content::BrowserContext* context) { @@ -58,6 +54,12 @@ return g_mdns_api_factory.Pointer(); } +void MDnsAPI::Shutdown() { + if (dns_sd_registry_) { + dns_sd_registry_->RemoveObserver(this); + } +} + void MDnsAPI::SetDnsSdRegistryForTesting(DnsSdRegistry* dns_sd_registry) { dns_sd_registry_ = dns_sd_registry; if (dns_sd_registry_) {
diff --git a/chrome/browser/extensions/api/mdns/mdns_api.h b/chrome/browser/extensions/api/mdns/mdns_api.h index 160799cc..0254965 100644 --- a/chrome/browser/extensions/api/mdns/mdns_api.h +++ b/chrome/browser/extensions/api/mdns/mdns_api.h
@@ -45,6 +45,7 @@ // BrowserContextKeyedAPI implementation. static BrowserContextKeyedAPIFactory<MDnsAPI>* GetFactoryInstance(); + void Shutdown() override; // Used to mock out the DnsSdRegistry for testing. Does not take ownership of // |registry|.
diff --git a/chrome/browser/extensions/api/mdns/mdns_apitest.cc b/chrome/browser/extensions/api/mdns/mdns_apitest.cc index ee97f2f1..b5b5765 100644 --- a/chrome/browser/extensions/api/mdns/mdns_apitest.cc +++ b/chrome/browser/extensions/api/mdns/mdns_apitest.cc
@@ -11,9 +11,12 @@ #include "chrome/browser/media/router/test/mock_dns_sd_registry.h" #include "chrome/browser/profiles/profile.h" #include "content/public/test/browser_test.h" +#include "extensions/buildflags/buildflags.h" #include "extensions/common/switches.h" #include "extensions/test/result_catcher.h" +static_assert(BUILDFLAG(ENABLE_EXTENSIONS_CORE)); + using media_router::DnsSdRegistry; using ::testing::_; using ::testing::A; @@ -34,12 +37,25 @@ } void SetUpTestDnsSdRegistry() { - extensions::MDnsAPI* api = extensions::MDnsAPI::Get(profile()); + auto* api = extensions::MDnsAPI::Get(profile()); dns_sd_registry_ = std::make_unique<media_router::MockDnsSdRegistry>(api); EXPECT_CALL(*dns_sd_registry_, AddObserver(api)).Times(1); api->SetDnsSdRegistryForTesting(dns_sd_registry_.get()); } + void TearDownTestDnsSdRegistry() { +#if BUILDFLAG(IS_ANDROID) + // Android skips profile teardown during test shutdown, so we must manually + // shut down the KeyedService. Otherwise we can't EXPECT_CALL for functions + // called during cleanup. This can't be done in TearDownOnMainThread() as + // that occurs too late. + // TODO(crbug.com/431730098): Move this somewhere more centralized. + extensions::MDnsAPI::Get(profile())->Shutdown(); +#endif + // Don't delete `dns_sd_registry_` yet because the tests expect calls that + // happen during the profile destruction phase. + } + protected: std::unique_ptr<media_router::MockDnsSdRegistry> dns_sd_registry_; }; @@ -74,6 +90,8 @@ dns_sd_registry_->DispatchMDnsEvent("_uninteresting._tcp.local", services); dns_sd_registry_->DispatchMDnsEvent(service_type, services); EXPECT_TRUE(catcher.GetNextResult()) << catcher.message(); + + TearDownTestDnsSdRegistry(); } // Test loading extension, registering an MDNS listener and dispatching events. @@ -102,6 +120,8 @@ dns_sd_registry_->DispatchMDnsEvent(service_type, services); EXPECT_TRUE(catcher.GetNextResult()) << catcher.message(); + + TearDownTestDnsSdRegistry(); } // Test loading extension and registering multiple listeners. @@ -135,6 +155,8 @@ dns_sd_registry_->DispatchMDnsEvent(service_type, services); dns_sd_registry_->DispatchMDnsEvent(test_service_type, services); EXPECT_TRUE(catcher.GetNextResult()) << catcher.message(); + + TearDownTestDnsSdRegistry(); } // Test loading extension and registering multiple listeners. @@ -148,6 +170,8 @@ .Times(1); EXPECT_TRUE(RunExtensionTest("mdns/too_many_listeners")) << message_; + + TearDownTestDnsSdRegistry(); } // Test loading extension and registering multiple listeners.
diff --git a/chrome/browser/media/router/BUILD.gn b/chrome/browser/media/router/BUILD.gn index 74b44cc..a1801a6 100644 --- a/chrome/browser/media/router/BUILD.gn +++ b/chrome/browser/media/router/BUILD.gn
@@ -256,11 +256,25 @@ } } -if (!is_android) { - static_library("test_support") { - testonly = true - deps = [ +static_library("test_support") { + testonly = true + deps = [] + sources = [] + + if (!is_android || is_desktop_android) { + deps += [ + "//base", "//chrome/browser/media/router/discovery", + "//testing/gmock", + ] + sources += [ + "test/mock_dns_sd_registry.cc", + "test/mock_dns_sd_registry.h", + ] + } + + if (!is_android) { + deps += [ "//chrome/browser/media/router/discovery/access_code:access_code_sink_service", "//chrome/browser/media/router/discovery/access_code:discovery_resources_proto", "//chrome/test:test_support", @@ -271,10 +285,9 @@ "//components/media_router/common/providers/cast/channel", "//components/media_router/common/providers/cast/channel:capability", "//components/media_router/common/providers/cast/channel:test_support", - "//testing/gmock", ] public_deps = [ ":router" ] - sources = [ + sources += [ "discovery/access_code/access_code_test_util.cc", "discovery/access_code/access_code_test_util.h", "discovery/mdns/cast_media_sink_service_test_helpers.cc", @@ -283,8 +296,6 @@ "providers/test/test_media_route_provider.h", "test/media_router_mojo_test.cc", "test/media_router_mojo_test.h", - "test/mock_dns_sd_registry.cc", - "test/mock_dns_sd_registry.h", "test/mock_mojo_media_router.cc", "test/mock_mojo_media_router.h", "test/provider_test_helpers.cc",
diff --git a/chrome/browser/permissions/chrome_permissions_client.cc b/chrome/browser/permissions/chrome_permissions_client.cc index 339e05c4..88b684f 100644 --- a/chrome/browser/permissions/chrome_permissions_client.cc +++ b/chrome/browser/permissions/chrome_permissions_client.cc
@@ -111,6 +111,13 @@ namespace { +using PreviewParametersForHats = + permissions::PermissionHatsTriggerHelper::PreviewParametersForHats; +using permissions::PermissionPromptDisposition; +using permissions::PermissionPromptDispositionReason; +using permissions::PermissionRequest; +using permissions::PermissionRequestGestureType; + #if BUILDFLAG(IS_ANDROID) bool ShouldUseQuietUI(content::WebContents* web_contents, ContentSettingsType type) { @@ -273,8 +280,9 @@ net::registry_controlled_domains::GetDomainAndRegistry( origin, net::registry_controlled_domains::INCLUDE_PRIVATE_REGISTRIES); - if (registerable_domain.empty()) + if (registerable_domain.empty()) { registerable_domain = host; // IP address or internal hostname. + } entry.second = base::Contains(important_domains, registerable_domain, &site_engagement::ImportantSitesUtil:: ImportantDomainInfo::registerable_domain); @@ -286,8 +294,9 @@ bool ChromePermissionsClient::IsCookieDeletionDisabled( content::BrowserContext* browser_context, const GURL& origin) { - if (!Profile::FromBrowserContext(browser_context)->IsChild()) + if (!Profile::FromBrowserContext(browser_context)->IsChild()) { return false; + } return google_util::IsYoutubeDomainUrl(origin, google_util::ALLOW_SUBDOMAIN, google_util::ALLOW_NON_STANDARD_PORTS); @@ -322,8 +331,9 @@ permissions::RequestType request_type) { #if BUILDFLAG(IS_CHROMEOS) // TODO(xhwang): fix this icon, see crbug.com/446263. - if (request_type == permissions::RequestType::kProtectedMediaIdentifier) + if (request_type == permissions::RequestType::kProtectedMediaIdentifier) { return vector_icons::kProductIcon; + } #endif return PermissionsClient::GetOverrideIconId(request_type); } @@ -334,9 +344,9 @@ content::WebContents* web_contents, permissions::RequestType request_type, std::optional<permissions::PermissionAction> action, - permissions::PermissionPromptDisposition prompt_disposition, - permissions::PermissionPromptDispositionReason prompt_disposition_reason, - permissions::PermissionRequestGestureType gesture_type, + PermissionPromptDisposition prompt_disposition, + PermissionPromptDispositionReason prompt_disposition_reason, + PermissionRequestGestureType gesture_type, std::optional<base::TimeDelta> prompt_display_duration, bool is_post_prompt, const GURL& gurl, @@ -344,9 +354,7 @@ pepc_prompt_position, ContentSetting initial_permission_status, base::OnceCallback<void()> hats_shown_callback, - std::optional< - permissions::PermissionHatsTriggerHelper::PreviewParametersForHats> - preview_parameters) { + std::optional<PreviewParametersForHats> preview_parameters) { Profile* profile = Profile::FromBrowserContext(web_contents->GetBrowserContext()); std::optional<GURL> recorded_gurl = @@ -432,21 +440,22 @@ } void ChromePermissionsClient::OnPromptResolved( - permissions::RequestType request_type, + const PermissionRequest* request, permissions::PermissionAction action, - const GURL& origin, - permissions::PermissionPromptDisposition prompt_disposition, - permissions::PermissionPromptDispositionReason prompt_disposition_reason, - permissions::PermissionRequestGestureType gesture_type, + PermissionPromptDisposition prompt_disposition, + PermissionPromptDispositionReason prompt_disposition_reason, std::optional<QuietUiReason> quiet_ui_reason, base::TimeDelta prompt_display_duration, std::optional<permissions::feature_params::PermissionElementPromptPosition> pepc_prompt_position, ContentSetting initial_permission_status, - content::WebContents* web_contents, - std::optional< - permissions::PermissionHatsTriggerHelper::PreviewParametersForHats> - preview_parameters) { + content::WebContents* web_contents) { + permissions::RequestType request_type = request->request_type(); + const GURL& origin = request->requesting_origin(); + PermissionRequestGestureType gesture_type = request->GetGestureType(); + std::optional<PreviewParametersForHats> preview_parameters = + request->get_preview_parameters(); + Profile* profile = Profile::FromBrowserContext(web_contents->GetBrowserContext()); PermissionActionsHistoryFactory::GetForProfile(profile)->RecordAction( @@ -573,8 +582,9 @@ // Extensions are excluded from origin checks as currently they can request // permission from iframes when embedded in non-secure contexts // (https://crbug.com/530507). - if (requesting_origin.SchemeIs(extensions::kExtensionScheme)) + if (requesting_origin.SchemeIs(extensions::kExtensionScheme)) { return true; + } #endif // The New Tab Page is excluded from origin checks as its effective @@ -652,11 +662,11 @@ const std::vector<std::string>& required_permissions, const std::vector<std::string>& optional_permissions, PermissionsUpdatedCallback callback) { - PermissionUpdateMessageController::CreateForWebContents(web_contents); - PermissionUpdateMessageController::FromWebContents(web_contents) - ->ShowMessage(content_settings_types, filtered_content_settings_types, - required_permissions, optional_permissions, - std::move(callback)); + PermissionUpdateMessageController::CreateForWebContents(web_contents); + PermissionUpdateMessageController::FromWebContents(web_contents) + ->ShowMessage(content_settings_types, filtered_content_settings_types, + required_permissions, optional_permissions, + std::move(callback)); } int ChromePermissionsClient::MapToJavaDrawableId(int resource_id) {
diff --git a/chrome/browser/permissions/chrome_permissions_client.h b/chrome/browser/permissions/chrome_permissions_client.h index 8b9c591..6f35100f 100644 --- a/chrome/browser/permissions/chrome_permissions_client.h +++ b/chrome/browser/permissions/chrome_permissions_client.h
@@ -84,22 +84,17 @@ #endif void OnPromptResolved( - permissions::RequestType request_type, + const permissions::PermissionRequest* request, permissions::PermissionAction action, - const GURL& origin, permissions::PermissionPromptDisposition prompt_disposition, permissions::PermissionPromptDispositionReason prompt_disposition_reason, - permissions::PermissionRequestGestureType gesture_type, std::optional<QuietUiReason> quiet_ui_reason, base::TimeDelta prompt_display_duration, std::optional< permissions::feature_params::PermissionElementPromptPosition> pepc_prompt_position, ContentSetting initial_permission_status, - content::WebContents* web_contents, - std::optional< - permissions::PermissionHatsTriggerHelper::PreviewParametersForHats> - preview_parameters) override; + content::WebContents* web_contents) override; std::optional<bool> HadThreeConsecutiveNotificationPermissionDenies( content::BrowserContext* browser_context) override; std::optional<bool> HasPreviouslyAutoRevokedPermission(
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_km.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_km.xtb index 6e9ef95..253d052 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_km.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_km.xtb
@@ -240,6 +240,7 @@ <translation id="2088833076121753253">ដើម្បីបញ្ចប់ការរៀបចំការបំពេញស្វ័យប្រវត្តិ សូមចាប់ផ្ដើម Chrome ឡើងវិញឥឡូវនេះ។ ផ្ទាំងរបស់អ្នកនឹងបើកឡើងវិញដោយស្វ័យប្រវត្តិ។</translation> <translation id="2091863218454846791">បង្ហាញទិដ្ឋភាពចង្អៀតខ្លាំង</translation> <translation id="2093731487903423814">15 នាទីចុងក្រោយ</translation> +<translation id="2096577711562668473">ប្ដូរសេវាកម្មបំពេញស្វ័យប្រវត្តិដែរទេ?</translation> <translation id="2100273922101894616">ចូលស្វ័យប្រវត្តិ</translation> <translation id="2109384632594340939">រូបភាពកម្រងព័ត៌មាន</translation> <translation id="2111511281910874386">ចូលទៅកាន់ទំព័រ</translation> @@ -325,6 +326,7 @@ <translation id="2496180316473517155">ប្រវត្តិរុករក</translation> <translation id="2497852260688568942">សមកាលកម្មបានបិទដោយអ្នកគ្រប់គ្រងរបស់អ្នក</translation> <translation id="250020030759455918">អ្នកនឹងមើលឃើញស្ថានភាពចូល <ph name="SITE_NAME" />, ទិន្នន័យរុករក និងទិន្នន័យគេហទំព័ររបស់អ្នកនៅក្នុង Chrome</translation> +<translation id="2502798195266898572">បានបើកសន្លឹកខាងក្រោមមុខងារអានពេញអេក្រង់</translation> <translation id="2510106555128151389">កំពុងដំឡើង <ph name="WEBAPK_NAME" />...</translation> <translation id="2512234228327349533">ស្វែងរកជម្រើសទិញ</translation> <translation id="2513403576141822879">សម្រាប់ការកំណត់ច្រើនទៀតពាក់ព័ន្ធនឹងឯកជនភាព សុវត្ថិភាព និងការប្រមូលទិន្នន័យ សូមមើល<ph name="BEGIN_LINK" />សមកាលកម្ម និងសេវាកម្ម Google<ph name="END_LINK" /></translation> @@ -934,6 +936,7 @@ <translation id="5206168361184759344">{FILE_COUNT,plural, =1{កំពុងទាញយកឯកសារ…}other{កំពុងទាញយកឯកសារ #…}}</translation> <translation id="5210286577605176222">លោតទៅផ្ទាំងពីមុន</translation> <translation id="5210365745912300556">បិទផ្ទាំង</translation> +<translation id="5212800876504289412">ចាប់ផ្ដើម Chrome ឡើងវិញ ដើម្បីបញ្ចប់ការផ្លាស់ប្ដូរនេះ។ ផ្ទាំងបើកឡើងវិញដោយស្វ័យប្រវត្តិ នៅពេលអ្នកចាប់ផ្ដើមឡើងវិញ។</translation> <translation id="5215957675041756913">គ្រប់គ្រងទិន្នន័យ និងគណនីរបស់អ្នក</translation> <translation id="5218324087477576825">លេខកាត (តម្រូវឲ្យមាន)</translation> <translation id="5221437554987713282"><ph name="PERMISSION_1" /> <ph name="PERMISSION_2" /> និងច្រើនទៀត <ph name="SEPARATOR" /> Chrome បានដកការអនុញ្ញាតទាំងនេះចេញ ដោយសារអ្នកមិនបានចូលមើលនាពេលថ្មីៗនេះ</translation> @@ -1062,6 +1065,7 @@ <translation id="581030587084991751">{NUM_SUSPICIOUS_NOTIFICATIONS,plural, =1{បង្ហាញការជូនដំណឹង}other{បង្ហាញការជូនដំណឹង}}</translation> <translation id="5814749351757353073">តាមដានគេហទំព័រដែលអ្នកចូលចិត្ត</translation> <translation id="5823093032261493462">តើអ្នកនៅតែចង់ទាញយក "<ph name="FILE_NAME" />" ពី <ph name="DOWNLOAD_DOMAIN" /> ឬ?</translation> +<translation id="5825135637446025843">បន្ទាប់ពី Chrome ចាប់ផ្ដើមឡើងវិញ ព័ត៌មានដែលអ្នកបានរក្សាទុកពីក្រុមហ៊ុនផ្ដល់សេវាកម្មថ្មីរបស់អ្នកនឹងត្រូវបានប្រើ ដើម្បីបំពេញពាក្យសម្ងាត់ កូដសម្ងាត់ អាសយដ្ឋាន វិធីបង់ប្រាក់ និងព័ត៌មានផ្សេងទៀតដោយស្វ័យប្រវត្តិ។</translation> <translation id="5828921839638612740">អ្នកអាចលុបទិន្នន័យនៅក្នុងការកំណត់ Chrome</translation> <translation id="5829586821381540080">បានរក្សាទុកនៅក្នុង <ph name="FOLDER_NAME" /></translation> <translation id="583281660410589416">មិនស្គាល់</translation> @@ -1178,6 +1182,7 @@ <translation id="6295158916970320988">គេហទំព័រទាំងអស់</translation> <translation id="6296366034485697675">នាំចេញ រួចលុប</translation> <translation id="629730747756840877">គណនី</translation> +<translation id="6300697579369314762">បានបើកសន្លឹកខាងក្រោមមុខងារអានពាក់កណ្ដាលអេក្រង់</translation> <translation id="6301526076346731664">បើកឧបករណ៍អ្នកអភិវឌ្ឍន៍</translation> <translation id="6303969859164067831">ចាកចេញ ហើយបិទការធ្វើសមកាលកម្ម</translation> <translation id="6307241780749477694">ផ្ទៀងផ្ទាត់ថាជាអ្នក ដើម្បីយកពាក្យសម្ងាត់ទាំងអស់របស់អ្នកនៅលើឧបករណ៍នេះ</translation> @@ -1398,6 +1403,7 @@ <translation id="71503698506017927">ការអ៊ីនគ្រីបដោយប្រើឃ្លាសម្ងាត់មិនរួមបញ្ចូលវិធីបង់ប្រាក់ និងអាសយដ្ឋានពី Google Pay ទេ។ ដើម្បីប្ដូរការកំណត់នេះ សូម<ph name="BEGIN_LINK" />លុបទិន្នន័យ Chrome នៅក្នុងគណនីរបស់អ្នក<ph name="END_LINK" />។</translation> +<translation id="7151332203500147130">បានបិទសន្លឹកខាងក្រោមមុខងារអាន</translation> <translation id="7165972437814027679">ស្វែងយល់បន្ថែមអំពីមូលហេតុដែល Chrome ទប់ស្កាត់ឯកសារមួយចំនួន</translation> <translation id="7168323970702333693">បានចូលគណនីជា <ph name="USER_NAME" />។ បើកការកំណត់។</translation> <translation id="7173114856073700355">បើកការកំណត់</translation>
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 5414a78..2773f39 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
@@ -240,6 +240,7 @@ <translation id="2088833076121753253">Untuk menyelesaikan persediaan autolengkap, mulakan semula Chrome sekarang. Tab anda akan dibuka semula secara automatik.</translation> <translation id="2091863218454846791">Menunjukkan paparan sarat</translation> <translation id="2093731487903423814">15 minit yang lalu</translation> +<translation id="2096577711562668473">Tukar perkhidmatan autolengkap?</translation> <translation id="2100273922101894616">Auto Log masuk</translation> <translation id="2109384632594340939">gambar profil</translation> <translation id="2111511281910874386">Pergi ke halaman</translation> @@ -325,6 +326,7 @@ <translation id="2496180316473517155">Sejarah penyemakan imbas</translation> <translation id="2497852260688568942">Penyegerakan dilumpuhkan oleh pentadbir anda</translation> <translation id="250020030759455918">Anda akan melihat status log masuk <ph name="SITE_NAME" />, data semakan imbas dan data tapak anda dalam Chrome</translation> +<translation id="2502798195266898572">Helaian bawah mod membaca dibuka pada ketinggian penuh</translation> <translation id="2510106555128151389">Memasang <ph name="WEBAPK_NAME" />...</translation> <translation id="2512234228327349533">Cari pilihan pembelian</translation> <translation id="2513403576141822879">Untuk mendapatkan lebih banyak tetapan yang berkaitan dengan privasi, keselamatan dan pengumpulan data, lihat <ph name="BEGIN_LINK" />Penyegerakan dan perkhidmatan Google<ph name="END_LINK" /></translation> @@ -934,6 +936,7 @@ <translation id="5206168361184759344">{FILE_COUNT,plural, =1{Memuat turun fail…}other{Memuat turun # fail…}}</translation> <translation id="5210286577605176222">Lompat ke halaman sebelumnya</translation> <translation id="5210365745912300556">Tutup tab</translation> +<translation id="5212800876504289412">Mulakan semula Chrome untuk menamatkan perubahan ini. Tab akan dibuka semula secara automatik apabila anda memulakan semula.</translation> <translation id="5215957675041756913">Kawal data & akaun anda</translation> <translation id="5218324087477576825">Nombor kad, diperlukan</translation> <translation id="5221437554987713282"><ph name="PERMISSION_1" />, <ph name="PERMISSION_2" /> dan pelbagai lagi <ph name="SEPARATOR" /> Chrome telah mengalih keluar kebenaran ini kerana anda belum melawati laman web ini baru-baru ini</translation> @@ -1062,6 +1065,7 @@ <translation id="581030587084991751">{NUM_SUSPICIOUS_NOTIFICATIONS,plural, =1{Tunjukkan pemberitahuan}other{Tunjukkan pemberitahuan}}</translation> <translation id="5814749351757353073">Ikuti perkembangan laman kegemaran anda</translation> <translation id="5823093032261493462">Adakah anda masih mahu memuat turun "<ph name="FILE_NAME" />" daripada <ph name="DOWNLOAD_DOMAIN" />?</translation> +<translation id="5825135637446025843">Selepas Chrome dimulakan semula, maklumat anda yang disimpan daripada penyedia baharu akan digunakan untuk membuat autolengkap kata laluan, kunci laluan, alamat, kaedah pembayaran dan maklumat lain.</translation> <translation id="5828921839638612740">Anda boleh memadamkan data dalam Tetapan Chrome</translation> <translation id="5829586821381540080">Disimpan dalam <ph name="FOLDER_NAME" /></translation> <translation id="583281660410589416">Tidak diketahui</translation> @@ -1178,6 +1182,7 @@ <translation id="6295158916970320988">Semua tapak</translation> <translation id="6296366034485697675">Eksport dan padamkan</translation> <translation id="629730747756840877">Akaun</translation> +<translation id="6300697579369314762">Helaian bawah mod membaca dibuka pada ketinggian separuh</translation> <translation id="6301526076346731664">Buka Alatan Pembangun</translation> <translation id="6303969859164067831">Log keluar dan matikan penyegerakan</translation> <translation id="6307241780749477694">Sahkan identiti anda untuk mendapatkan akses kepada semua kata laluan anda pada peranti ini</translation> @@ -1398,6 +1403,7 @@ <translation id="71503698506017927">Penyulitan ungkapan laluan tidak termasuk kaedah pembayaran dan alamat daripada Google Pay. Untuk menukar tetapan ini, <ph name="BEGIN_LINK" />padamkan data Chrome dalam akaun anda<ph name="END_LINK" />.</translation> +<translation id="7151332203500147130">Helaian bawah mod membaca ditutup</translation> <translation id="7165972437814027679">Ketahui sebab Chrome menyekat sesetengah fail dengan lebih lanjut</translation> <translation id="7168323970702333693">Log masuk sebagai <ph name="USER_NAME" />. Membuka tetapan.</translation> <translation id="7173114856073700355">Buka Tetapan</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_th.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_th.xtb index d64dc580..58384f5 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_th.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_th.xtb
@@ -240,6 +240,7 @@ <translation id="2088833076121753253">โปรดรีสตาร์ท Chrome ตอนนี้เลยเพื่อตั้งค่าการป้อนข้อความอัตโนมัติให้เสร็จ แท็บจะเปิดขึ้นอีกครั้งโดยอัตโนมัติ</translation> <translation id="2091863218454846791">กำลังแสดงมุมมองแบบอัดแน่น</translation> <translation id="2093731487903423814">15 นาทีที่ผ่านมา</translation> +<translation id="2096577711562668473">เปลี่ยนบริการป้อนข้อความอัตโนมัติไหม</translation> <translation id="2100273922101894616">ลงชื่อเข้าใช้อัตโนมัติ</translation> <translation id="2109384632594340939">รูปโปรไฟล์</translation> <translation id="2111511281910874386">ไปที่หน้า</translation> @@ -325,6 +326,7 @@ <translation id="2496180316473517155">ประวัติการท่องเว็บ</translation> <translation id="2497852260688568942">ผู้ดูแลระบบปิดใช้การซิงค์</translation> <translation id="250020030759455918">คุณจะเห็นสถานะการลงชื่อเข้าใช้ ข้อมูลการท่องเว็บ และข้อมูลเว็บไซต์ของ <ph name="SITE_NAME" /> ใน Chrome</translation> +<translation id="2502798195266898572">Bottom Sheet ของโหมดการอ่านเปิดอยู่แบบเต็มความสูง</translation> <translation id="2510106555128151389">กำลังติดตั้ง <ph name="WEBAPK_NAME" />...</translation> <translation id="2512234228327349533">ค้นหาตัวเลือกการซื้อ</translation> <translation id="2513403576141822879">ดูการตั้งค่าเพิ่มเติมเกี่ยวกับความเป็นส่วนตัว ความปลอดภัย และการรวบรวมข้อมูลได้ที่<ph name="BEGIN_LINK" />การซิงค์และบริการต่างๆ ของ Google<ph name="END_LINK" /></translation> @@ -934,6 +936,7 @@ <translation id="5206168361184759344">{FILE_COUNT,plural, =1{กำลังดาวน์โหลดไฟล์…}other{กำลังดาวน์โหลด # ไฟล์…}}</translation> <translation id="5210286577605176222">ข้ามไปยังแท็บก่อนหน้า</translation> <translation id="5210365745912300556">ปิดแท็บ</translation> +<translation id="5212800876504289412">รีสตาร์ท Chrome เพื่อทำการเปลี่ยนแปลงนี้ให้เสร็จ แท็บจะเปิดขึ้นอีกครั้งโดยอัตโนมัติเมื่อคุณรีสตาร์ท</translation> <translation id="5215957675041756913">ควบคุมข้อมูลและบัญชีของคุณ</translation> <translation id="5218324087477576825">ต้องระบุหมายเลขบัตร</translation> <translation id="5221437554987713282"><ph name="PERMISSION_1" /> <ph name="PERMISSION_2" /> และอื่นๆ <ph name="SEPARATOR" /> Chrome นำสิทธิ์เหล่านี้ออกเนื่องจากคุณไม่ได้เข้าชมเมื่อเร็วๆ นี้</translation> @@ -1062,6 +1065,7 @@ <translation id="581030587084991751">{NUM_SUSPICIOUS_NOTIFICATIONS,plural, =1{แสดงการแจ้งเตือน}other{แสดงการแจ้งเตือน}}</translation> <translation id="5814749351757353073">ติดตามเว็บไซต์ที่คุณชื่นชอบ</translation> <translation id="5823093032261493462">คุณต้องการดาวน์โหลด "<ph name="FILE_NAME" />" จาก <ph name="DOWNLOAD_DOMAIN" /> ต่อไปไหม</translation> +<translation id="5825135637446025843">หลังจากรีสตาร์ท Chrome ระบบจะใช้ข้อมูลที่บันทึกไว้จากผู้ให้บริการรายใหม่เพื่อป้อนรหัสผ่าน พาสคีย์ ที่อยู่ วิธีการชำระเงิน และข้อมูลอื่นๆ โดยอัตโนมัติ</translation> <translation id="5828921839638612740">คุณลบข้อมูลได้ในการตั้งค่า Chrome</translation> <translation id="5829586821381540080">บันทึกใน "<ph name="FOLDER_NAME" />" แล้ว</translation> <translation id="583281660410589416">ไม่รู้จัก</translation> @@ -1178,6 +1182,7 @@ <translation id="6295158916970320988">เว็บไซต์ทั้งหมด</translation> <translation id="6296366034485697675">ส่งออกและลบ</translation> <translation id="629730747756840877">บัญชี</translation> +<translation id="6300697579369314762">Bottom Sheet ของโหมดการอ่านเปิดอยู่ครึ่งหน้าจอ</translation> <translation id="6301526076346731664">เปิดเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์</translation> <translation id="6303969859164067831">ออกจากระบบและปิดการซิงค์</translation> <translation id="6307241780749477694">โปรดยืนยันว่าเป็นคุณเพื่อรับรหัสผ่านทั้งหมดในอุปกรณ์นี้</translation> @@ -1398,6 +1403,7 @@ <translation id="71503698506017927">การเข้ารหัสด้วยรหัสผ่านไม่รวมถึงวิธีการชำระเงินและที่อยู่จาก Google Pay หากต้องการเปลี่ยนการตั้งค่านี้ ให้<ph name="BEGIN_LINK" />ลบข้อมูล Chrome ในบัญชี<ph name="END_LINK" /></translation> +<translation id="7151332203500147130">Bottom Sheet ของโหมดการอ่านปิดอยู่</translation> <translation id="7165972437814027679">ดูข้อมูลเพิ่มเติมเกี่ยวกับสาเหตุที่ Chrome บล็อกบางไฟล์</translation> <translation id="7168323970702333693">ลงชื่อเข้าใช้ด้วย <ph name="USER_NAME" /> เปิดการตั้งค่า</translation> <translation id="7173114856073700355">เปิดการตั้งค่า</translation>
diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-TW.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-TW.xtb index 032c094..e43223a 100644 --- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-TW.xtb +++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_zh-TW.xtb
@@ -356,7 +356,7 @@ <translation id="260403163289591229">追蹤中</translation> <translation id="2604446170045642109">你可以在設定中關閉網站的深色主題設定。</translation> <translation id="2605017215201958293">運用 AI 朗讀這頁內容</translation> -<translation id="2607441479295509868">已登出。重新登入即可使用帳戶中的書籤、密碼和其他資訊。</translation> +<translation id="2607441479295509868">已登出。重新登入即可使用帳戶的書籤、密碼等資訊。</translation> <translation id="2620314865574742210"><ph name="NAME" />邀請你取用一個共用項目。</translation> <translation id="2625189173221582860">已複製密碼</translation> <translation id="2630630219780173487">你可以禁止這些網站再傳送通知</translation>
diff --git a/chrome/browser/ui/views/location_bar/cookie_controls/cookie_controls_interactive_uitest.cc b/chrome/browser/ui/views/location_bar/cookie_controls/cookie_controls_interactive_uitest.cc index f855d968..a72b97c5 100644 --- a/chrome/browser/ui/views/location_bar/cookie_controls/cookie_controls_interactive_uitest.cc +++ b/chrome/browser/ui/views/location_bar/cookie_controls/cookie_controls_interactive_uitest.cc
@@ -321,8 +321,7 @@ CookieControlsUiTest, testing::Bool(), [](testing::TestParamInfo<bool> param) { - return param.param ? "BlockThirdPartyCookies" - : "AllowThirdPartyCookies"; + return param.param ? "ModeB" : "NoModeB"; }); class CookieControlsInteractiveUiNoFeedbackTest : public CookieControlsUiTest { @@ -729,10 +728,13 @@ public testing::WithParamInterface<testing::tuple<bool, bool>> { protected: std::vector<base::test::FeatureRef> DisabledFeatures() override { + std::vector<base::test::FeatureRef> disabled_features = { + privacy_sandbox::kActUserBypassUx}; if (!testing::get<1>(GetParam())) { - return {content_settings::features::kUserBypassFeedback}; + disabled_features.push_back( + content_settings::features::kUserBypassFeedback); } - return {}; + return disabled_features; } }; @@ -784,7 +786,8 @@ /*show_feedback_button*/ testing::Bool())); class CookieControlsInteractiveUiTrackingProtectionTest - : public CookieControlsInteractiveTestBase { + : public CookieControlsInteractiveTestBase, + public testing::WithParamInterface<bool> { public: CookieControlsInteractiveUiTrackingProtectionTest() = default; ~CookieControlsInteractiveUiTrackingProtectionTest() override = default; @@ -887,9 +890,9 @@ } }; -IN_PROC_BROWSER_TEST_F(CookieControlsInteractiveUiTrackingProtectionTest, +IN_PROC_BROWSER_TEST_P(CookieControlsInteractiveUiTrackingProtectionTest, CreateExceptionIncognitoAct) { - BlockThirdPartyCookies(); + BlockThirdPartyCookies(GetParam()); EnableFpProtection(); auto* const incognito_browser = CreateIncognitoBrowser(browser()->profile()); RunTestSequence(InContext( @@ -914,9 +917,9 @@ 1); } -IN_PROC_BROWSER_TEST_F(CookieControlsInteractiveUiTrackingProtectionTest, +IN_PROC_BROWSER_TEST_P(CookieControlsInteractiveUiTrackingProtectionTest, RemoveExceptionIncognitoAct) { - BlockThirdPartyCookies(); + BlockThirdPartyCookies(GetParam()); EnableFpProtection(); incognito_cookie_settings()->SetCookieSettingForUserBypass( third_party_cookie_page_url()); @@ -945,7 +948,7 @@ user_actions_.GetActionCount(kUMABubbleReenabledTrackingProtections), 1); } -IN_PROC_BROWSER_TEST_F( +IN_PROC_BROWSER_TEST_P( CookieControlsInteractiveUiTrackingProtectionTest, BubbleViewTimesOutWithoutShowingReloadingViewWhenStatusChanged) { // Test that opening the bubble and making a change results in the @@ -953,7 +956,7 @@ // // The page loaded in this test will never finish loading, so the timeout // must be configured shorter than the test timeout. - BlockThirdPartyCookies(); + BlockThirdPartyCookies(GetParam()); EnableFpProtection(); auto* const incognito_browser = CreateIncognitoBrowser(browser()->profile()); RunTestSequence(InContext( @@ -978,3 +981,10 @@ EXPECT_EQ(user_actions_.GetActionCount(kUMABubblePausedTrackingProtections), 1); } + +INSTANTIATE_TEST_SUITE_P(, + CookieControlsInteractiveUiTrackingProtectionTest, + testing::Bool(), + [](testing::TestParamInfo<bool> param) { + return param.param ? "ModeB" : "NoModeB"; + });
diff --git a/chrome/browser/ui/views/permissions/permission_prompt_chip.cc b/chrome/browser/ui/views/permissions/permission_prompt_chip.cc index fce8f06..a625ad0 100644 --- a/chrome/browser/ui/views/permissions/permission_prompt_chip.cc +++ b/chrome/browser/ui/views/permissions/permission_prompt_chip.cc
@@ -109,6 +109,8 @@ } void PermissionPromptChip::ModulatePermissionPromiseLifetime() { + // Lifetime modulation is allowed only for the quiet chip. The quiet chip is + // enabled only for `NOTIFICATIONS` and `GEOLOCATION`. DCHECK(delegate()->ShouldCurrentRequestUseQuietUI()); if (base::FeatureList::IsEnabled( @@ -116,38 +118,22 @@ delegate()->PreIgnoreQuietPrompt(); return; } - - bool is_subscribed_to_permission_change_event = true; content::PermissionController* permission_controller = web_contents()->GetBrowserContext()->GetPermissionController(); // If at least one RFH is not subscribed to the PermissionChange event, we // should not preemptively resolve a prompt. for (const auto& request : delegate()->Requests()) { - content::RenderFrameHost* rfh = - content::RenderFrameHost::FromID(request->get_requesting_frame_id()); - if (rfh == nullptr) { + DCHECK(request->request_type() == + permissions::RequestType::kNotifications || + request->request_type() == permissions::RequestType::kGeolocation); + + if (!request->IsSourceSubscribedToPermissionChangeEvent( + permission_controller)) { return; } - - ContentSettingsType type = request->GetContentSettingsType(); - - blink::PermissionType permission_type = - permissions::PermissionUtil::ContentSettingsTypeToPermissionType(type); - - // Pre-ignore is allowed only for the quiet chip. The quiet chip is - // enabled only for `NOTIFICATIONS` and `GEOLOCATION`. - DCHECK(permission_type == blink::PermissionType::NOTIFICATIONS || - permission_type == blink::PermissionType::GEOLOCATION); - - is_subscribed_to_permission_change_event &= - permission_controller->IsSubscribedToPermissionChangeEvent( - permission_type, rfh); } - - if (is_subscribed_to_permission_change_event) { - // This will resolve a promise so an origin is not waiting for the user's - // decision. - delegate()->PreIgnoreQuietPrompt(); - } + // This will resolve a promise so an origin is not waiting for the user's + // decision. + delegate()->PreIgnoreQuietPrompt(); }
diff --git a/chrome/build/android-arm32.pgo.txt b/chrome/build/android-arm32.pgo.txt index 22d5b31..7f7e4bd 100644 --- a/chrome/build/android-arm32.pgo.txt +++ b/chrome/build/android-arm32.pgo.txt
@@ -1 +1 @@ -chrome-android32-main-1752989296-b534c90671d394b55c36edd28e9a8005aad597cc-3a0e503d2bd87771c1e55103ac2a9a7b59a7411b.profdata +chrome-android32-main-1753033455-005b88be333dc57d9a25f6c70e14c8f5d5e10b8e-bec3b9381287ed1ec4b3f88074171cbb1855525d.profdata
diff --git a/chrome/build/android-arm64.pgo.txt b/chrome/build/android-arm64.pgo.txt index 84e8ce5..38bff329f 100644 --- a/chrome/build/android-arm64.pgo.txt +++ b/chrome/build/android-arm64.pgo.txt
@@ -1 +1 @@ -chrome-android64-main-1752992588-71784b1e7868eb2b850dec8eb3892985057e2191-3a4ae440e407827ac79e9e4164a5125c5363668e.profdata +chrome-android64-main-1753067516-e80495219081048cf20e646873f9c3c6fa26c238-c0b5be0e286d876be3ec67483316a6401a6bb8a8.profdata
diff --git a/chrome/build/android-desktop-x64.pgo.txt b/chrome/build/android-desktop-x64.pgo.txt index b6c1d1e..24b1a1b 100644 --- a/chrome/build/android-desktop-x64.pgo.txt +++ b/chrome/build/android-desktop-x64.pgo.txt
@@ -1 +1 @@ -chrome-android-desktop-x64-main-1752989296-9cda20c56656b489a29f9532cd48a82d6bb515b1-3a0e503d2bd87771c1e55103ac2a9a7b59a7411b.profdata +chrome-android-desktop-x64-main-1753077545-71604d5d223a26603ed04a2e656c3bc0cc8d5650-d1c33ef88cc4d918d63e4e67a9b2727c04ffb0da.profdata
diff --git a/chrome/build/mac-arm.pgo.txt b/chrome/build/mac-arm.pgo.txt index 20f9226b..f3157247 100644 --- a/chrome/build/mac-arm.pgo.txt +++ b/chrome/build/mac-arm.pgo.txt
@@ -1 +1 @@ -chrome-mac-arm-main-1752997781-83141b4a6732cfbb95626e9dcf7b9d4ffdf8ed5a-6f85df6d00a90c03f237ddd6c7b2b685c65ae43a.profdata +chrome-mac-arm-main-1753069484-9cac65ccddf023465794512224043913a58ee763-5d34f0b65bbc0c4eda3553b054e07bec4dfee8e1.profdata
diff --git a/chrome/build/mac.pgo.txt b/chrome/build/mac.pgo.txt index 2e4e251b..b8c0018 100644 --- a/chrome/build/mac.pgo.txt +++ b/chrome/build/mac.pgo.txt
@@ -1 +1 @@ -chrome-mac-main-1752989296-1218a19aedeefa4283aebbcfe12c48199acddcd1-3a0e503d2bd87771c1e55103ac2a9a7b59a7411b.profdata +chrome-mac-main-1753054492-80fde37e8d4b94dc36ed8d989efbc263a0d4d504-f432cc7263361e72796e9f45a83cefcbebc222c2.profdata
diff --git a/chrome/build/win-arm64.pgo.txt b/chrome/build/win-arm64.pgo.txt index fed65ea..ddb1e589 100644 --- a/chrome/build/win-arm64.pgo.txt +++ b/chrome/build/win-arm64.pgo.txt
@@ -1 +1 @@ -chrome-win-arm64-main-1752925901-5346e5a0aacf31cd377282767797c4a5744d8c08-c0a7e3f55ba9ef352b4f1315d911f7577cca5a11.profdata +chrome-win-arm64-main-1753054492-dc5b5c225a6766f2890c9a960e13f25eab691a0c-f432cc7263361e72796e9f45a83cefcbebc222c2.profdata
diff --git a/chrome/build/win32.pgo.txt b/chrome/build/win32.pgo.txt index 7372335..9cf0417 100644 --- a/chrome/build/win32.pgo.txt +++ b/chrome/build/win32.pgo.txt
@@ -1 +1 @@ -chrome-win32-main-1752980233-fc940e3d216c789e6924a6643f1face38a0bba0a-28c084f2cff0dda9e83704eac27b4e1e78a21321.profdata +chrome-win32-main-1753066656-05db5cb409bdb3e05ff5b29446c4cf3c0b789aa8-ed789a9ed045a46d3f068c99ded2d8fbcc0a4a32.profdata
diff --git a/chrome/build/win64.pgo.txt b/chrome/build/win64.pgo.txt index fe6fccf..dbd922d 100644 --- a/chrome/build/win64.pgo.txt +++ b/chrome/build/win64.pgo.txt
@@ -1 +1 @@ -chrome-win64-main-1752980233-cd0dca163c2f68e04d744c459d833468cba9d745-28c084f2cff0dda9e83704eac27b4e1e78a21321.profdata +chrome-win64-main-1753044763-a943fedc01123c104b5fe9b0bf60758958c30749-70755e2d2886873c0c78762afc338fd178b9934c.profdata
diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn index a11499f0..cbc6982 100644 --- a/chrome/test/BUILD.gn +++ b/chrome/test/BUILD.gn
@@ -1659,7 +1659,11 @@ "//chrome/test/data/extensions/", "//extensions/test/data/", ] - } + if (enable_service_discovery) { + sources += [ "../browser/extensions/api/mdns/mdns_apitest.cc" ] + deps += [ "../browser/media/router:test_support" ] + } + } # enable_extensions_core if (enable_pdf) { deps += [ "//pdf:features" ] @@ -5726,9 +5730,6 @@ sources += [ "../browser/first_run/first_run_internal_posix_browsertest.cc" ] } - if (enable_service_discovery) { - sources += [ "../browser/extensions/api/mdns/mdns_apitest.cc" ] - } if ((is_linux || is_chromeos) && is_asan && is_lsan) { # TODO(crbug.com/40553979): Fix the flakiness on Linux Asan Lsan bot.
diff --git a/chromeos/CHROMEOS_LKGM b/chromeos/CHROMEOS_LKGM index 84d5405..7e050bd9 100644 --- a/chromeos/CHROMEOS_LKGM +++ b/chromeos/CHROMEOS_LKGM
@@ -1 +1 @@ -16355.0.0-1070393 \ No newline at end of file +16356.0.0-1070406 \ No newline at end of file
diff --git a/clank b/clank index 7d2f364..fb490d96 160000 --- a/clank +++ b/clank
@@ -1 +1 @@ -Subproject commit 7d2f3648f65982f626a0f89ac88af4c2807e3494 +Subproject commit fb490d965c7d3e2e240ec42a10cb27e4f12a6644
diff --git a/components/device_event_log/BUILD.gn b/components/device_event_log/BUILD.gn index 6650a30..89c90f0 100644 --- a/components/device_event_log/BUILD.gn +++ b/components/device_event_log/BUILD.gn
@@ -30,4 +30,8 @@ "//testing/gtest", "//third_party/icu", ] + + # TODO(crbug.com/40031409): Fix code that adds exit-time destructors and + # enable the diagnostic by removing this line. + configs += [ "//build/config/compiler:no_exit_time_destructors" ] }
diff --git a/components/device_signals/core/browser/win/BUILD.gn b/components/device_signals/core/browser/win/BUILD.gn index 139c9d1e..dc939fd6 100644 --- a/components/device_signals/core/browser/win/BUILD.gn +++ b/components/device_signals/core/browser/win/BUILD.gn
@@ -36,4 +36,8 @@ "//testing/gmock", "//testing/gtest", ] + + # TODO(crbug.com/40031409): Fix code that adds exit-time destructors and + # enable the diagnostic by removing this line. + configs += [ "//build/config/compiler:no_exit_time_destructors" ] }
diff --git a/components/history_clusters/core/BUILD.gn b/components/history_clusters/core/BUILD.gn index 0538ad8e..22bd006 100644 --- a/components/history_clusters/core/BUILD.gn +++ b/components/history_clusters/core/BUILD.gn
@@ -158,4 +158,8 @@ "//components/history/core/browser", "//components/history/core/test", ] + + # TODO(crbug.com/40031409): Fix code that adds exit-time destructors and + # enable the diagnostic by removing this line. + configs += [ "//build/config/compiler:no_exit_time_destructors" ] }
diff --git a/components/history_embeddings/BUILD.gn b/components/history_embeddings/BUILD.gn index 67a9e57..b065d399c 100644 --- a/components/history_embeddings/BUILD.gn +++ b/components/history_embeddings/BUILD.gn
@@ -102,4 +102,8 @@ if (is_ios) { deps += [ "//components/test:history_embeddings_test_bundle_data" ] } + + # TODO(crbug.com/40031409): Fix code that adds exit-time destructors and + # enable the diagnostic by removing this line. + configs += [ "//build/config/compiler:no_exit_time_destructors" ] }
diff --git a/components/pdf/renderer/BUILD.gn b/components/pdf/renderer/BUILD.gn index 6821274f..0f3b652 100644 --- a/components/pdf/renderer/BUILD.gn +++ b/components/pdf/renderer/BUILD.gn
@@ -85,4 +85,8 @@ # from ":renderer". "//v8", ] + + # TODO(crbug.com/40031409): Fix code that adds exit-time destructors and + # enable the diagnostic by removing this line. + configs += [ "//build/config/compiler:no_exit_time_destructors" ] }
diff --git a/components/performance_manager/BUILD.gn b/components/performance_manager/BUILD.gn index ac60dfa..fe57a8f 100644 --- a/components/performance_manager/BUILD.gn +++ b/components/performance_manager/BUILD.gn
@@ -486,6 +486,10 @@ sources += [ "power/battery_level_provider_chromeos_unittest.cc" ] } + + # TODO(crbug.com/40031409): Fix code that adds exit-time destructors and + # enable the diagnostic by removing this line. + configs += [ "//build/config/compiler:no_exit_time_destructors" ] } source_set("browser_tests") {
diff --git a/components/permissions/permission_request.cc b/components/permissions/permission_request.cc index c7dfa8f..e9e86ba3 100644 --- a/components/permissions/permission_request.cc +++ b/components/permissions/permission_request.cc
@@ -17,6 +17,8 @@ #include "components/permissions/request_type.h" #include "components/strings/grit/components_strings.h" #include "components/url_formatter/elide_url.h" +#include "content/public/browser/permission_controller.h" +#include "content/public/browser/render_frame_host.h" #include "ui/base/l10n/l10n_util.h" #include "ui/gfx/text_elider.h" #include "ui/strings/grit/ui_strings.h" @@ -304,8 +306,9 @@ IDS_PERMISSIONS_WEB_INSTALL_NOT_ALLOWED_CONFIRMATION_SCREENREADER_ANNOUNCEMENT}}}); auto messages = kMessageIds->find(request_type()); - if (messages != kMessageIds->end() && messages->second[type] != -1) + if (messages != kMessageIds->end() && messages->second[type] != -1) { return l10n_util::GetStringUTF16(messages->second[type]); + } return std::nullopt; } @@ -456,8 +459,9 @@ ContentSettingsType PermissionRequest::GetContentSettingsType() const { auto type = RequestTypeToContentSettingsType(request_type()); - if (type.has_value()) + if (type.has_value()) { return type.value(); + } return ContentSettingsType::DEFAULT; } @@ -496,4 +500,21 @@ embedded_permission_element_initiated; } +bool PermissionRequest::IsSourceSubscribedToPermissionChangeEvent( + content::PermissionController* controller) const { + DCHECK(controller); + content::RenderFrameHost* rfh = + content::RenderFrameHost::FromID(get_requesting_frame_id()); + + if (rfh == nullptr) { + return false; + } + + blink::PermissionType permission_type = + permissions::PermissionUtil::ContentSettingsTypeToPermissionType( + GetContentSettingsType()); + + return controller->IsSubscribedToPermissionChangeEvent(permission_type, rfh); +} + } // namespace permissions
diff --git a/components/permissions/permission_request.h b/components/permissions/permission_request.h index 36493a8..95acbece 100644 --- a/components/permissions/permission_request.h +++ b/components/permissions/permission_request.h
@@ -23,7 +23,12 @@ #include "content/public/browser/global_routing_id.h" #include "url/gurl.h" +namespace content { +class PermissionController; +} + namespace permissions { + enum class RequestType; // Describes the interface a feature making permission requests should // implement. A class of this type is registered with the permission request @@ -191,11 +196,16 @@ // this permission request. ContentSettingsType GetContentSettingsType() const; + // Whether the source frame that is the origin of this permission request has + // a permission on status change event listener subscribed. + bool IsSourceSubscribedToPermissionChangeEvent( + content::PermissionController* controller) const; + void set_requesting_frame_id(content::GlobalRenderFrameHostId id) { data_->id.set_global_render_frame_host_id(id); } - const content::GlobalRenderFrameHostId& get_requesting_frame_id() { + const content::GlobalRenderFrameHostId& get_requesting_frame_id() const { return data_->id.global_render_frame_host_id(); }
diff --git a/components/permissions/permission_request_manager.cc b/components/permissions/permission_request_manager.cc index 566cf13..b58f4a3 100644 --- a/components/permissions/permission_request_manager.cc +++ b/components/permissions/permission_request_manager.cc
@@ -1195,13 +1195,11 @@ ? base::TimeDelta::Max() : base::Time::Now() - current_request_first_display_time_; PermissionsClient::Get()->OnPromptResolved( - request->request_type(), permission_action, - request->requesting_origin(), DetermineCurrentRequestUIDisposition(), - DetermineCurrentRequestUIDispositionReasonForUMA(), - request->GetGestureType(), quiet_ui_reason, time_since_shown, - current_request_pepc_prompt_position_, - GetRequestInitialStatus(request.get()), web_contents(), - request->get_preview_parameters()); + request.get(), permission_action, + DetermineCurrentRequestUIDisposition(), + DetermineCurrentRequestUIDispositionReasonForUMA(), quiet_ui_reason, + time_since_shown, current_request_pepc_prompt_position_, + GetRequestInitialStatus(request.get()), web_contents()); PermissionUmaUtil::RecordEmbargoStatus(RecordActionAndGetEmbargoStatus( browser_context, request.get(), permission_action));
diff --git a/components/permissions/permissions_client.cc b/components/permissions/permissions_client.cc index 1b1aede..0619cd68 100644 --- a/components/permissions/permissions_client.cc +++ b/components/permissions/permissions_client.cc
@@ -43,8 +43,9 @@ void PermissionsClient::AreSitesImportant( content::BrowserContext* browser_context, std::vector<std::pair<url::Origin, bool>>* origins) { - for (auto& entry : *origins) + for (auto& entry : *origins) { entry.second = false; + } } bool PermissionsClient::IsCookieDeletionDisabled( @@ -93,20 +94,16 @@ preview_parameters) {} void PermissionsClient::OnPromptResolved( - RequestType request_type, + const PermissionRequest* request, PermissionAction action, - const GURL& origin, PermissionPromptDisposition prompt_disposition, PermissionPromptDispositionReason prompt_disposition_reason, - PermissionRequestGestureType gesture_type, std::optional<QuietUiReason> quiet_ui_reason, base::TimeDelta prompt_display_duration, std::optional<permissions::feature_params::PermissionElementPromptPosition> pepc_prompt_position, ContentSetting initial_permission_status, - content::WebContents* web_contents, - std::optional<PermissionHatsTriggerHelper::PreviewParametersForHats> - preview_parameters) {} + content::WebContents* web_contents) {} std::optional<bool> PermissionsClient::HadThreeConsecutiveNotificationPermissionDenies(
diff --git a/components/permissions/permissions_client.h b/components/permissions/permissions_client.h index 0a1c884..3e17d09 100644 --- a/components/permissions/permissions_client.h +++ b/components/permissions/permissions_client.h
@@ -177,21 +177,17 @@ // Called for each request type when a permission prompt is resolved. virtual void OnPromptResolved( - RequestType request_type, + const PermissionRequest* request, PermissionAction action, - const GURL& origin, PermissionPromptDisposition prompt_disposition, PermissionPromptDispositionReason prompt_disposition_reason, - PermissionRequestGestureType gesture_type, std::optional<QuietUiReason> quiet_ui_reason, base::TimeDelta prompt_display_duration, std::optional< permissions::feature_params::PermissionElementPromptPosition> pepc_prompt_position, ContentSetting initial_permission_status, - content::WebContents* web_contents, - std::optional<PermissionHatsTriggerHelper::PreviewParametersForHats> - preview_parameters); + content::WebContents* web_contents); // Returns true if user has 3 consecutive notifications permission denies, // returns false otherwise.
diff --git a/components/policy/resources/policy_templates_th.xtb b/components/policy/resources/policy_templates_th.xtb index ca67fc5..917f530 100644 --- a/components/policy/resources/policy_templates_th.xtb +++ b/components/policy/resources/policy_templates_th.xtb
@@ -313,6 +313,7 @@ <ph name="IMAGE_SEARCH_SOURCE" />, <ph name="IMAGE_THUMBNAIL" />, <ph name="IMAGE_THUMBNAIL_BASE64" /></translation> +<translation id="1238150413700645698">เนื้อหาที่มีการคุ้มครอง</translation> <translation id="1238868319430505522">กําหนดค่าการทำงานของ <ph name="CLOUD_UPLOAD_NAME" /> สําหรับ <ph name="GOOGLE_DRIVE_NAME" /> และ <ph name="GOOGLE_WORKSPACE_NAME" /></translation> <translation id="1239526922294123540">ควบคุมว่าจะอนุญาตให้เว็บไซต์ส่งคำขอไปยังปลายทางเครือข่ายที่มีความเป็นส่วนตัวมากกว่าในลักษณะที่ไม่ปลอดภัยหรือไม่ @@ -600,6 +601,7 @@ เมื่อตั้งค่านโยบายนี้เป็น "เร็ว" <ph name="PRODUCT_NAME" /> จะหลีกเลี่ยงการแรสเตอร์หากทำได้ เพราะการลดปริมาณการแรสเตอร์จะช่วยลดขนาดของงานพิมพ์และเพิ่มความเร็วในการพิมพ์ เมื่อไม่ได้ตั้งค่านโยบายนี้ไว้ <ph name="PRODUCT_NAME" /> จะอยู่ในโหมด "เต็ม"</translation> +<translation id="1453707129684226879">ควบคุมนโยบายสำหรับเนื้อหาที่มีการคุ้มครอง</translation> <translation id="1455351936334569779">ระบบจะปิดใช้เครื่องพิมพ์ที่มีประเภทตรงกับในรายการปฏิเสธไม่ให้ค้นพบหรือดึงข้อมูลความสามารถได้ การใส่ประเภทเครื่องพิมพ์ทั้งหมดไว้ในรายการปฏิเสธจะปิดใช้การพิมพ์ได้อย่างมีประสิทธิภาพ เนื่องจากจะทำให้ไม่มีปลายทางให้ส่งเอกสารไปพิมพ์ @@ -2196,6 +2198,7 @@ เมื่อตั้งค่านโยบายนี้เป็น "เท็จ" ระบบจะปิดใช้ฟีเจอร์ชุดเว็บไซต์ที่เกี่ยวข้อง</translation> <translation id="2555244983262829274">ซ่อนปุ่มหน้าแรกไม่ให้แสดงในแถบเครื่องมือ</translation> <translation id="2558154810835597313">เปิดใช้การจัดสรรใบรับรองไคลเอ็นต์สำหรับผู้ใช้หรือโปรไฟล์ที่มีการจัดการ</translation> +<translation id="2559274305158103883">ปิดใช้ข้อตกลงเกี่ยวกับคีย์ในการเข้ารหัสเพื่อรักษาความปลอดภัยจากคอมพิวเตอร์ควอนตัมสำหรับ WebRTC</translation> <translation id="2562213287271514629">อนุญาตให้ใช้ "<ph name="FLASH_PLUGIN_NAME" />" ที่ล้าสมัยเป็น "<ph name="FLASH_PLUGIN_NAME" />" ปกติ</translation> <translation id="2562339630163277285">ระบุ URL ของเครื่องมือค้นหาที่ใช้ในการให้ผลการค้นหาแบบทันใจ URL ควรมีสตริง <ph name="SEARCH_TERM_MARKER" /> ซึ่งจะถูกแทนที่ด้วยข้อความที่ผู้ใช้ป้อนขณะค้นหา @@ -2742,6 +2745,14 @@ <translation id="2985927503455169394">ใช้โหมดเริ่มต้นของการเริ่มต้นใช้งาน Assistant</translation> <translation id="2987155890997901449">เปิดใช้ ARC</translation> <translation id="2987227569419001736">ควบคุมการใช้ Web Bluetooth API</translation> +<translation id="2988299727303303535">นโยบายนี้ให้การยกเว้นชั่วคราวสำหรับโดเมนที่ระบุจากลักษณะการทำงานใหม่ของคุกกี้ที่ผูกกับต้นทาง + +การเพิ่มโดเมนลงในรายการจะอนุญาตให้รูปแบบหรือพอร์ตอื่นใช้คุกกี้จากโดเมนดังกล่าว +ดูข้อมูลเพิ่มเติมได้ที่หัวข้อ <ph name="LEGACY_COOKIE_SCOPE_ENABLED_POLICY_NAME" /> + +สำหรับคุกกี้ในโดเมนที่ไม่อยู่ในรูปแบบที่ระบุไว้ที่นี่ หรือสำหรับคุกกี้ทั้งหมดในกรณีที่ไม่ได้ตั้งค่านโยบายนี้ไว้ คุกกี้จะทำงานตามลักษณะการทำงานของคุกกี้ที่ผูกกับต้นทาง + +จะมีการนำนโยบายนี้ออกในอนาคต</translation> <translation id="2989404644164421834">โหลดหน้าเว็บซ้ำ</translation> <translation id="299127280603727143">กลุ่มนโยบายที่เกี่ยวข้องกับการตั้งค่าการเข้าถึงเครือข่ายภายใน ดู https://developer.chrome.com/blog/local-network-access</translation> <translation id="299446489108785864">รายการ URL ซึ่งระบุ URL ที่จะใช้กับ <ph name="AUTO_OPEN_FILE_TYPES_POLICY_NAME" /> นโยบายนี้ไม่มีผลต่อค่าที่เปิดโดยอัตโนมัติที่ผู้ใช้กำหนดไว้ @@ -4867,6 +4878,26 @@ นโยบายนี้มีผลเฉพาะกับผู้ใช้ที่ตรวจสอบสิทธิ์ด้วย GAIA โดยไม่มี SAML เท่านั้น ควรระบุค่าของนโยบายเป็นวัน</translation> +<translation id="4523997900743255417">นโยบายสำหรับควบคุมว่าควรเปิดใช้ฟีเจอร์ <ph name="IP_PROTECTION_NAME" /> ของ <ph name="PRIVACY_SANDBOX_NAME" /> หรือไม่ + +<ph name="IP_PROTECTION_NAME" /> เป็นฟีเจอร์ที่จำกัดความพร้อมใช้งานในที่อยู่ IP เดิมของผู้ใช้สําหรับคำขอเครือข่ายของบุคคลที่สามบางรายการที่ดำเนินการขณะท่องเว็บในโหมดไม่ระบุตัวตน ซึ่งจะช่วยเพิ่มการป้องกันการติดตามข้ามเว็บไซต์ในระหว่างเซสชันการท่องเว็บแบบไม่ระบุตัวตน + +หากตั้งค่านโยบายเป็น "ปิดใช้" ระบบจะปิดใช้ <ph name="IP_PROTECTION_NAME" /> และผู้ใช้จะเปิดฟีเจอร์ดังกล่าวผ่านการตั้งค่า UI ไม่ได้ +หากตั้งค่านโยบายเป็น "เปิดใช้" ระบบจะเปิดใช้ <ph name="IP_PROTECTION_NAME" /> และผู้ใช้จะปิดฟีเจอร์ดังกล่าวผ่านการตั้งค่า UI ไม่ได้ +หากไม่ได้ตั้งค่านโยบายไว้ ระบบจะเปิดใช้ <ph name="IP_PROTECTION_NAME" /> โดยค่าเริ่มต้นและผู้ใช้จะควบคุมฟีเจอร์ในอุปกรณ์ผ่านการตั้งค่า UI ได้ + +ข้อควรพิจารณาบางประการเกี่ยวกับว่าองค์กรควรปิดใช้ <ph name="IP_PROTECTION_NAME" /> หรือไม่ ได้แก่ +- ระบบจะไม่ทำ DNS Lookup สำหรับคำขอที่ใช้พร็อกซี ซึ่งอาจส่งผลต่อการตรวจสอบหรือกรองตาม DNS + +- แอปพลิเคชันระดับองค์กรอาจหยุดทำงานเมื่อใช้ในโหมดไม่ระบุตัวตน หากแอปพลิเคชันดังกล่าวใช้คำขอไปยังโดเมน (หรือโดเมนย่อยของโดเมนเหล่านั้น) ในรายการโดเมนที่มาสก์ (<ph name="MASKED_DOMAIN_LIST_URL" />) และกำหนดให้คำขอดังกล่าวมาจากช่วงที่อยู่ IP ที่เฉพาะเจาะจง + +- อาจไม่มีการใช้พร็อกซีกับการเข้าชมในโหมดไม่ระบุตัวตนภายใต้เงื่อนไขบางประการ เช่น เมื่อผู้ใช้เปิดโหมดไม่ระบุตัวตนจากโปรไฟล์ Chrome ที่ไม่ได้ลงชื่อเข้าใช้ โดยปกติแล้วฟีเจอร์นี้กำหนดให้ผู้ใช้ต้องลงชื่อเข้าใช้ Chrome ด้วยบัญชี Google ส่วนบุคคลเมื่อเปิดโหมดไม่ระบุตัวตน + +- รายการโดเมนในรายการโดเมนที่มาสก์อาจเปลี่ยนแปลงเมื่อเวลาผ่านไป โดยระบบจะส่งเวอร์ชันใหม่ไปยังผู้ใช้โดยอัตโนมัติ ดูข้อมูลเพิ่มเติมเกี่ยวกับรายการโดเมนที่มาสก์ได้ที่ <ph name="MASKED_DOMAIN_LIST_CRITERIA_URL" /> + +ดูข้อมูลเพิ่มเติมเกี่ยวกับ <ph name="IP_PROTECTION_NAME" /> ได้ที่ <ph name="IP_PROTECTION_README_URL" /> + +<ph name="IP_PROTECTION_NAME" /> อาจเปิดตัวใน M139 หรือหลังจากนั้น</translation> <translation id="4525328580251166229">ควบคุมนโยบายที่เกี่ยวข้องกับระบบย่อย Bruschetta</translation> <translation id="4528981768990874684">ปิดใช้ฟีเจอร์ <ph name="IP_PROTECTION_NAME" /></translation> <translation id="453031441196755904">นโยบายนี้เลิกใช้งานแล้ว</translation> @@ -5102,6 +5133,7 @@ หมายเหตุ: การตั้งค่านี้จะลบล้าง <ph name="REMOTE_ACCESS_HOST_CLIENT_DOMAIN_POLICY_NAME" /> หากมี</translation> <translation id="4658380868451934335">เปิดใช้การพิมพ์ตามคำบอกในหน้าจอการเข้าสู่ระบบ</translation> +<translation id="4658420696622830453">การควบคุมเนื้อหาที่มีการคุ้มครอง</translation> <translation id="4660356908994631271">แสดงปุ่ม Google Lens ในช่องค้นหาบนหน้าแท็บใหม่</translation> <translation id="4661885151480410620">การเปลี่ยนแปลงลักษณะการทำงานอาจขึ้นอยู่กับขั้นตอนการเปิดตัวฟีเจอร์</translation> <translation id="4661889655253181651">การตั้งค่าเนื้อหาช่วยให้คุณระบุวิธีจัดการเนื้อหาบางประเภท (เช่น คุกกี้ รูปภาพ หรือ JavaScript) ได้</translation> @@ -6341,6 +6373,9 @@ <translation id="5488268615614906498">นโยบายนี้ควบคุมว่าผู้ใช้จะได้รับอนุญาตให้บันทึกไฟล์จาก Download Manager ไปยัง <ph name="GOOGLE_DRIVE_NAME" /> ได้โดยตรงหรือไม่ การตั้งค่านโยบายเป็น "เปิดใช้" หรือไม่ได้ตั้งค่าจะอนุญาตให้ผู้ใช้บันทึกไฟล์จาก Download Manager ไปยัง <ph name="GOOGLE_DRIVE_NAME" /> ได้ การตั้งค่านโยบายเป็น "ปิดใช้" จะทำให้ผู้ใช้ไม่เห็นตัวเลือกดังกล่าวใน Download Manager นโยบายนี้ยังคงอนุญาตให้ผู้ใช้บันทึกไฟล์ไปยัง <ph name="GOOGLE_DRIVE_NAME" /> โดยใช้วิธีอื่นๆ นอกเหนือจาก Download Manager ได้</translation> +<translation id="5490462588616309068">หากตั้งค่านโยบายเป็น "จริง" หรือไม่ได้ตั้งค่าไว้ ระบบจะอนุญาตให้ใช้ตัวระบุเนื้อหาที่มีการคุ้มครอง ซึ่งจะช่วยให้เล่นเนื้อหาที่มีการคุ้มครองได้ในคุณภาพที่สูงขึ้น + +หากตั้งค่านโยบายเป็น "เท็จ" ระบบจะไม่อนุญาตให้ใช้ตัวระบุเนื้อหาที่มีการคุ้มครอง</translation> <translation id="5494322570831642650">ระบุว่าผู้ใช้จะเปิดหน้าด้วยโหมดไม่ระบุตัวตนใน <ph name="PRODUCT_NAME" /> หรือไม่ หากเลือก "เปิดใช้" หรือไม่ได้ตั้งนโยบายไว้ หน้าอาจเปิดด้วยโหมดไม่ระบุตัวตน @@ -6625,6 +6660,7 @@ นโยบายนี้ถูกลบล้างสำหรับ URL บางรูปแบบได้โดยใช้นโยบาย <ph name="CLIPBOARD_ALLOWED_FOR_URLS_POLICY_NAME" /> และ <ph name="CLIPBOARD_BLOCKED_FOR_URLS_POLICY_NAME" /> นโยบายนี้มีผลเฉพาะกับการดำเนินการเกี่ยวกับคลิปบอร์ดซึ่งควบคุมโดยสิทธิ์เข้าถึงคลิปบอร์ดสำหรับเว็บไซต์ และไม่มีผลกับการเขียนคลิปบอร์ดที่มีการปรับแต่งหรือการคัดลอกและวางที่เชื่อถือได้</translation> +<translation id="5649788773465136073">ปิดการใช้ตัวระบุเนื้อหาที่มีการคุ้มครองกับเว็บไซต์ ซึ่งอาจทำให้การเล่นเนื้อหาที่มีการคุ้มครองมีคุณภาพต่ำลง</translation> <translation id="5650256117857913687">ไม่ให้ผู้ใช้ที่เข้าถึงจากระยะไกลเปิด URL ฝั่งโฮสต์ในเบราว์เซอร์ไคลเอ็นต์ในเครื่อง</translation> <translation id="5650716720715977549">ใช้ข้อจำกัดกับคำขอไปยังอุปกรณ์ปลายทางของเครือข่ายที่มีความเป็นส่วนตัวมากขึ้น</translation> <translation id="5651538748810288218">การตั้งค่านโยบายเป็น 1 จะให้เว็บไซต์เข้าถึงและใช้เซ็นเซอร์ เช่น เซ็นเซอร์ตรวจจับการเคลื่อนไหวและเซ็นเซอร์แสงได้ การตั้งค่านโยบายเป็น 2 จะทำให้ระบบปฏิเสธการเข้าถึงเซ็นเซอร์ @@ -6916,6 +6952,7 @@ หากตั้งค่านโยบายเป็น "เท็จ" หรือไม่ได้ตั้งค่าไว้ <ph name="PLUGIN_VM_NAME" /> จะไม่ได้รับอนุญาตให้เก็บรวบรวมข้อมูล หากตั้งค่าเป็น "จริง" <ph name="PLUGIN_VM_NAME" /> อาจเก็บรวบรวมข้อมูลการใช้งาน <ph name="PLUGIN_VM_NAME" /> ซึ่งต่อจากนั้นจะมีการรวมเข้าด้วยกันและวิเคราะห์อย่างถี่ถ้วนเพื่อปรับปรุงประสบการณ์การใช้งาน <ph name="PLUGIN_VM_NAME" /></translation> <translation id="5872738620659477303">เชื่อมโยงข้อมูลเข้าสู่ระบบ Google กับอุปกรณ์</translation> +<translation id="5873333871812203119">อนุญาตให้หน้าเว็บใช้ตัวระบุเพื่อวัตถุประสงค์ในการเล่นเนื้อหาที่มีการคุ้มครอง</translation> <translation id="5875873062228321803">กำหนดค่าข้อกำหนดของ <ph name="PRODUCT_OS_NAME" /> เวอร์ชันต่ำสุดที่อนุญาต เมื่อตั้งค่านโยบายนี้เป็นรายการที่ไม่ว่างเปล่า @@ -8102,10 +8139,12 @@ <translation id="6614648642325603511">อัลกอริทึมสำหรับการสร้างคู่คีย์ รองรับตัวเลือก EC ตั้งแต่เวอร์ชัน 132</translation> <translation id="661610294649586421">ไม่อนุญาตคำขอ WebAuthn API ในเว็บไซต์ที่มีใบรับรอง TLS ไม่ถูกต้อง</translation> <translation id="6617589895942747919">เวลาเริ่มต้นของระยะเวลา (รวมวันที่เริ่มต้น)</translation> +<translation id="6620966939519407082">การตั้งค่าขอบเขตคุกกี้เดิม</translation> <translation id="6621830999036927230">การตั้งค่านโยบายจะทำให้โฮสต์การเข้าถึงระยะไกลใช้ URL นี้ในการตรวจสอบโทเค็นการตรวจสอบสิทธิ์จากไคลเอ็นต์การเข้าถึงระยะไกลเพื่อยอมรับการเชื่อมต่อ หากปล่อยว่างไว้หรือไม่ได้ตั้งค่า ระบบจะปิดใช้ฟีเจอร์นี้ หมายเหตุ: ใช้นโยบายนี้กับ <ph name="REMOTE_ACCESS_HOST_TOKEN_URL_POLICY_NAME" /></translation> <translation id="6625136649067113817">ธงบูลีนที่ระบุว่าแป้นพิมพ์บนหน้าจอจะมีฟีเจอร์การตรวจตัวสะกดหรือไม่</translation> +<translation id="6625716212597516929">เปลี่ยนกลับไปใช้ลักษณะการทำงานของขอบเขตคุกกี้เดิม</translation> <translation id="6626319579493977784">การตั้งค่าโค้ดแบบไดนามิก</translation> <translation id="66265932317331474">รายงานข้อมูล CPU</translation> <translation id="6628120204569232711">รายงานสถานะของพื้นที่เก็บข้อมูล</translation> @@ -8155,6 +8194,17 @@ <translation id="6665670272107384733">กำหนดความถี่ที่ผู้ใช้ต้องป้อนรหัสผ่านเพื่อใช้การปลดล็อกด่วน</translation> <translation id="6667586534922258705">แสดงปุ่ม "แสดงรหัสผ่าน" ในหน้าจอเข้าสู่ระบบและหน้าจอล็อก</translation> <translation id="6667636336079341367">อนุญาตให้ใช้เครื่องสแกนโดยไม่ปรับปรุงโมเดล AI</translation> +<translation id="6668559639284945695">นโยบายนี้อนุญาตให้เปลี่ยนกลับไปใช้ลักษณะการทำงานเดิมสำหรับการกำหนดขอบเขตคุกกี้ + +ซึ่งหมายความว่าคุกกี้ที่ตั้งค่าไว้ในโปรโตคอล (เช่น HTTPS) หรือพอร์ตที่เฉพาะเจาะจงจะเข้าถึงได้จากโปรโตคอลหรือพอร์ตอื่น + +การตั้งค่านโยบายเป็น "เปิดใช้" จะทำให้คุกกี้ไม่ผูกกับรูปแบบและพอร์ตต้นทาง + +การตั้งค่านโยบายเป็น "ปิดใช้" หรือไม่ได้ตั้งค่าจะทำให้คุกกี้ทำงานโดยมีขอบเขตที่ผูกกับต้นทาง + +การกำหนดค่านี้จะมีผลกับโดเมนระดับบนสุด (เช่น example.com) เท่านั้น และไม่มีผลกับโดเมนย่อย (เช่น sub.example.com) + +จะมีการนำนโยบายนี้ออกในอนาคต</translation> <translation id="6669244130218275293">เลือกว่าจะเปิดใช้ฟีเจอร์การป้องกันฟิงเกอร์ปรินต์ของ <ph name="PRIVACY_SANDBOX_NAME" /> ในโหมดไม่ระบุตัวตนหรือไม่</translation> <translation id="6669691206059842248">กําหนดค่า URL เปลี่ยนเส้นทาง OAuth เพิ่มเติมต่อส่วนขยาย</translation> <translation id="6669700740683748046">ฟีเจอร์นี้จะเปิดใช้การแสดง URL แบบเต็มในแถบที่อยู่ @@ -8679,6 +8729,7 @@ <translation id="7016587686120059767">ปิดใช้โหมดผู้มาเยือน</translation> <translation id="7019805045859631636">เร็ว</translation> <translation id="7021590945154530517">เปิดใช้การตรวจสอบความสมบูรณ์ของอุปกรณ์</translation> +<translation id="7025153290982655996">เปลี่ยนกลับไปใช้ลักษณะการทำงานของขอบเขตคุกกี้เดิม</translation> <translation id="7025332601572838001">การกำหนดค่าการทำงานของข้อกำหนดในการให้บริการระหว่างการเรียกใช้ CCT ครั้งแรก</translation> <translation id="7026351325994257733">อนุญาตให้ซิงค์การกำหนดค่าเครือข่าย Wi-Fi ระหว่างอุปกรณ์ <ph name="PRODUCT_OS_NAME" /> กับโทรศัพท์ Android ที่เชื่อมต่อ</translation> <translation id="7027057540229843762">ใช้ธีมสว่าง</translation> @@ -8792,6 +8843,7 @@ หากตั้งค่านโยบายเป็น "เท็จ" หรือไม่ได้ตั้งค่า จะไม่มีการรายงานข้อมูล หากตั้งค่าเป็น "จริง" จะมีการรายงานข้อมูลพัดลมของอุปกรณ์</translation> +<translation id="7097146706461004834">คุกกี้มีขอบเขตที่ผูกกับต้นทาง</translation> <translation id="710003290625031750">คำอธิบายสคีมาแบบขยาย</translation> <translation id="7101550508196914704">ไม่แสดงทางลัดของแอปในแถบบุ๊กมาร์ก</translation> <translation id="7105084505972468353">หากตั้งค่านโยบายนี้ ระบบจะควบคุมประเภทของแว่นขยายหน้าจอที่เปิดใช้ @@ -9214,6 +9266,7 @@ หากไม่ตั้งค่านโยบายนี้ หรือตั้งค่าเป็น False ระบบจะเปิดใช้ <ph name="TLS_FALSE_START" /> หากตั้งค่าเป็น True ระบบจะปิดใช้ <ph name="TLS_FALSE_START" /></translation> <translation id="7427607504279694910">ไม่แชร์บันทึกเหตุการณ์การติดตั้งแอป Android กับ Google</translation> +<translation id="7428523340768505080">เปิดใช้ข้อตกลงเกี่ยวกับคีย์ในการเข้ารหัสเพื่อรักษาความปลอดภัยจากคอมพิวเตอร์ควอนตัมสำหรับ WebRTC</translation> <translation id="7431456748240652287">นโยบายระดับอุปกรณ์นี้กำหนดค่าว่า <ph name="PRODUCT_OS_NAME" /> จะเสนออัลกอริทึมของข้อตกลงเกี่ยวกับคีย์ในการเข้ารหัสเพื่อรักษาความปลอดภัยจากคอมพิวเตอร์ควอนตัมใน TLS โดยใช้มาตรฐาน ML-KEM NIST หรือไม่ ก่อนหน้า <ph name="PRODUCT_OS_NAME" /> 131 อัลกอริทึมคือ Kyber ซึ่งเป็นการทำซ้ำมาตรฐานฉบับร่างก่อนหน้านี้ ซึ่งจะอนุญาตให้เซิร์ฟเวอร์ที่รองรับปกป้องการรับส่งข้อมูลของผู้ใช้ไม่ให้มีการถอดรหัสในภายหลังโดยใช้คอมพิวเตอร์ควอนตัม หากเปิดใช้นโยบายนี้หรือไม่ได้ตั้งค่า <ph name="PRODUCT_OS_NAME" /> จะเสนอข้อตกลงเกี่ยวกับคีย์ในการเข้ารหัสเพื่อรักษาความปลอดภัยจากคอมพิวเตอร์ควอนตัมในการเชื่อมต่อ TLS ซึ่งส่งผลให้การรับส่งข้อมูลของผู้ใช้ได้รับการป้องกันจากการโจมตีของคอมพิวเตอร์ควอนตัมเมื่อสื่อสารกับเซิร์ฟเวอร์ที่รองรับการใช้งาน @@ -9526,6 +9579,7 @@ <translation id="7696534428021833264">เปิดใช้การ์ดไฟล์ SharePoint และ OneDrive ของ NTP</translation> <translation id="7699644797467448158">ล้าง window.name เมื่อการนำทางอยู่ในระดับบนสุด ข้ามเว็บไซต์ และเปลี่ยน BrowsingContextGroup</translation> <translation id="7701341006446125684">ตั้งค่าขนาดแคชของแอปและส่วนขยาย (เป็นไบต์)</translation> +<translation id="7701825382808690457">ใช้ค่าเริ่มต้นสำหรับข้อตกลงเกี่ยวกับคีย์ในการเข้ารหัสเพื่อรักษาความปลอดภัยจากคอมพิวเตอร์ควอนตัมสำหรับ WebRTC</translation> <translation id="7703041979684393741">ไม่อนุญาตให้รวบรวมบันทึกเหตุการณ์ของ WebRTC จากบริการของ Google</translation> <translation id="770339941914297201">ลักษณะการทำงานใหม่: แอป Chrome Kiosk จะอัปเดตโดยใช้ URL อัปเดตจากนโยบายเท่านั้น</translation> <translation id="7703737669292992839">ป้องกันกล่องโต้ตอบการเลือกไฟล์</translation> @@ -9800,6 +9854,7 @@ <translation id="7906983682927840536">ดึงข้อมูลระยะเวลา Keepalive เมื่อปิดเบราว์เซอร์</translation> <translation id="7908384265697653397">เวลาเป็นวันก่อนที่ผู้ใช้จะออกจากระบบหากเวอร์ชัน <ph name="PRODUCT_OS_NAME" /> น้อยกว่า <ph name="CHROMEOS_VERSION_PROPERTY_NAME" /> ตามที่ระบุไว้</translation> <translation id="7909751052609510518">งานพิมพ์ (รองรับตั้งแต่เวอร์ชัน 129)</translation> +<translation id="7909839744818798105">เปิดใช้ลักษณะการทำงานของขอบเขตคุกกี้เดิมสำหรับรายการโดเมน</translation> <translation id="7911685775490889216">กำหนดค่าช่วงเวลาเป็นวินาทีเพื่อแสดงรูปภาพเมื่อโปรแกรมรักษาหน้าจอสำหรับหน้าจอล็อกมีรูปภาพหลายรูปที่จะแสดง ค่าที่ใช้ได้จะอยู่ในช่วง 1-9,999 วินาที การไม่ตั้งค่านโยบายจะทำให้ <ph name="PRODUCT_OS_NAME" /> ใช้ค่าเริ่มต้นเป็น 60 วินาที @@ -10899,6 +10954,19 @@ นโยบายนี้ถูกลบล้างสำหรับ URL บางรูปแบบได้โดยใช้นโยบาย <ph name="JAVA_SCRIPT_OPTIMIZER_ALLOWED_FOR_SITES_POLICY_NAME" /> และ <ph name="JAVA_SCRIPT_OPTIMIZER_BLOCKED_FOR_SITES_POLICY_NAME" /> หากไม่ได้ตั้งค่านโยบายนี้ ระบบจะเปิดใช้การเพิ่มประสิทธิภาพ JavaScript</translation> +<translation id="8669238010996709070">นโยบายนี้อนุญาตให้ควบคุมข้อตกลงเกี่ยวกับคีย์ในการเข้ารหัสเพื่อรักษาความปลอดภัยจากคอมพิวเตอร์ควอนตัมสำหรับ WebRTC + +หากตั้งค่านโยบายนี้เป็น "เปิดใช้" ระบบจะเสนอข้อตกลงเกี่ยวกับคีย์ในการเข้ารหัสเพื่อรักษาความปลอดภัยจากคอมพิวเตอร์ควอนตัมสำหรับ WebRTC + +หากตั้งค่านโยบายนี้เป็น "ปิดใช้" ระบบจะไม่เสนอข้อตกลงเกี่ยวกับคีย์ในการเข้ารหัสเพื่อรักษาความปลอดภัยจากคอมพิวเตอร์ควอนตัมสำหรับ WebRTC + +หากไม่ได้ตั้งค่านโยบายนี้ ระบบจะตั้งค่าตามกระบวนการเปิดตัวเริ่มต้นของข้อตกลงเกี่ยวกับคีย์ในการเข้ารหัสเพื่อรักษาความปลอดภัยจากคอมพิวเตอร์ควอนตัมที่เสนอสำหรับ WebRTC + +การเสนอข้อตกลงเกี่ยวกับคีย์ในการเข้ารหัสเพื่อรักษาความปลอดภัยจากคอมพิวเตอร์ควอนตัมมีความเข้ากันได้แบบย้อนหลัง คาดว่าเพียร์ DTLS และมิดเดิลแวร์เครือข่ายที่มีอยู่จะไม่สนใจตัวเลือกใหม่ดังกล่าวและจะยังคงเลือกตัวเลือกก่อนหน้านี้อยู่ต่อไป + +อย่างไรก็ตาม อุปกรณ์ที่ไม่มีการใช้งาน DTLS อย่างถูกต้องอาจทำงานผิดพลาดเมื่อเสนอตัวเลือกใหม่นี้ เช่น อาจยกเลิกการเชื่อมต่อเมื่อพบเจอตัวเลือกที่ไม่รู้จักหรือเมื่อได้รับข้อความที่มีขนาดใหญ่ขึ้นซึ่งเป็นผลจากตัวเลือกนั้น อุปกรณ์ดังกล่าวยังไม่พร้อมสำหรับการใช้งานหลังยุคควอนตัมและจะรบกวนการเปลี่ยนระบบหลังยุคควอนตัมขององค์กร หากพบปัญหาการรบกวนดังกล่าว ผู้ดูแลระบบควรติดต่อผู้ให้บริการเพื่อแก้ไขปัญหา + +นโยบายนี้เป็นมาตรการชั่วคราวและจะถูกนำออกหลังจากเวลาผ่านไประยะหนึ่ง</translation> <translation id="8671119576957984818">เปิดใช้ฮับการแชร์เดสก์ท็อป</translation> <translation id="8671193325113134911">เปิดใช้การตรวจสอบประเภท MIME ที่เข้มงวดกับสคริปต์สำหรับผู้ปฏิบัติงาน</translation> <translation id="8671303329680827168">นโยบายนี้เลิกใช้งานไปแล้ว โปรดใช้นโยบาย "<ph name="AUTH_NEGOTIATE_DELEGATE_ALLOWLIST_POLICY_NAME" />" แทน</translation> @@ -11664,6 +11732,7 @@ <translation id="9197740283131855199">เปอร์เซ็นต์ของระดับการปรับการหน่วงเวลาการสลัวหน้าจอ หากผู้ใช้มีการใช้งานหลังจากการสลัวหน้าจอ</translation> <translation id="9200828125069750521">พารามิเตอร์สำหรับ URL รูปภาพที่ใช้ POST</translation> <translation id="9202520409249547230">ไม่อนุญาตให้ใช้การป้อนข้อความอัตโนมัติด้วย AI</translation> +<translation id="9204520300236345497">อนุญาตให้ใช้ตัวระบุเนื้อหาที่มีการคุ้มครองกับเว็บไซต์ ซึ่งจะช่วยให้เล่นเนื้อหาที่มีการคุ้มครองได้ในคุณภาพที่สูงขึ้น</translation> <translation id="9204863016826119209">แอปพลิเคชัน Android ที่ติดตั้งไว้และระบุอยู่ในนโยบายนี้จะใช้คีย์ขององค์กรได้</translation> <translation id="9206472508136116830">ไม่อนุญาตให้ใช้การสำรวจพื้นที่แชร์ไฟล์ NetBIOS</translation> <translation id="9207596996305971030">ไม่รายงานเหตุการณ์การเข้าสู่ระบบ/ออกจากระบบ</translation>
diff --git a/components/strings/components_strings_km.xtb b/components/strings/components_strings_km.xtb index 7b84fac..86ce8bf 100644 --- a/components/strings/components_strings_km.xtb +++ b/components/strings/components_strings_km.xtb
@@ -578,6 +578,7 @@ <translation id="1959001866257244765">ជួយពង្រឹងសុវត្ថិភាពនៅលើអ៊ីនធឺណិតសម្រាប់អ្នករាល់គ្នាតាមរយៈការផ្ញើ <ph name="BEGIN_WHITEPAPER_LINK" />URL របស់ទំព័រមួយចំនួនដែលអ្នកចូលមើល ព័ត៌មានប្រព័ន្ធមួយចំនួន និងខ្លឹមសារទំព័រមួយចំនួន<ph name="END_WHITEPAPER_LINK" />ទៅ Google។ <ph name="BEGIN_PRIVACY_PAGE_LINK" />គោលការណ៍ឯកជនភាព<ph name="END_PRIVACY_PAGE_LINK" /></translation> <translation id="1959445535228047762">ខ្លឹមសារជាអក្សរ និងខ្លឹមសារទំព័ររបស់អ្នកត្រូវបានផ្ញើទៅ Google និងអាចត្រូវបានប្រើ ដើម្បីកែលម្អមុខងារនេះ។ <ph name="BEGIN_LINK" />ស្វែងយល់បន្ថែម<ph name="END_LINK" /></translation> +<translation id="1960664692890490165">នៅពេលអ្នកទិញនៅក្នុង Chrome សូមមើលវិធីបង់ប្រាក់ដែលមិនប្រើកាតជាជម្រើស</translation> <translation id="196146181975453736">បញ្ចប់ការត្រួតពិនិត្យសុវត្ថិភាពតែមួយលើក ដើម្បីបង់ប្រាក់កាន់តែលឿន</translation> <translation id="1962204205936693436"><ph name="DOMAIN" /> ចំណាំ</translation> <translation id="1973335181906896915">កំហុសឆ្គងប្រតិបត្តិការជាសេរ៊ី</translation> @@ -3039,6 +3040,7 @@ <translation id="6101583188322746099">សេវាកម្មដឹកជញ្ជូនគ្រឿងទេស</translation> <translation id="6104072995492677441">JIS B6</translation> <translation id="6105460996796456817">បង្កើតគេហទំព័រ</translation> +<translation id="6105511947520166941">ទូទាត់តាម Pix ដោយផ្ទាល់នៅក្នុង Chrome នៅពេលក្រោយ</translation> <translation id="6106989379647458772">គេហទំព័រនៅ <ph name="PAGE" /> អាចមិនដំណើរការបណ្តោះអាសន្ន ឬវាអាចត្រូវបានផ្លាស់ទីទៅអាសយដ្ឋានគេហទំព័រថ្មី។</translation> <translation id="6107012941649240045">បោះផ្សាយជូន</translation> <translation id="6107864469867367783"><ph name="USER_DISPLAY_NAME" /> បានប្ដូរឈ្មោះក្រុម</translation>
diff --git a/components/strings/components_strings_mn.xtb b/components/strings/components_strings_mn.xtb index bc3bb6d..96e014b9 100644 --- a/components/strings/components_strings_mn.xtb +++ b/components/strings/components_strings_mn.xtb
@@ -576,6 +576,7 @@ <translation id="1959001866257244765"><ph name="BEGIN_WHITEPAPER_LINK" />Зарим зочилдог хуудасныхаа URL, системийн хязгаарлагдмал мэдээлэл болон зарим хуудасны контент<ph name="END_WHITEPAPER_LINK" />-ыг Google-д илгээж, хүн бүрд вебийн аюулгүй байдлыг сайжруулахад тусална уу. <ph name="BEGIN_PRIVACY_PAGE_LINK" />Нууцлалын бодлого<ph name="END_PRIVACY_PAGE_LINK" /></translation> <translation id="1959445535228047762">Таны текст болон хуудасны контентыг Google-д илгээсэн бөгөөд энэ онцлогийг сайжруулахад ашиглаж магадгүй. <ph name="BEGIN_LINK" />Нэмэлт мэдээлэл авах<ph name="END_LINK" /></translation> +<translation id="1960664692890490165">Та Chrome-д худалдан авалт хийхдээ карт бус төлбөрийн хэрэгслийг сонголт болгон хараарай</translation> <translation id="196146181975453736">Илүү хурдан төлөхийн тулд нэг удаагийн аюулгүй байдлын шалгалтыг гүйцэтгэнэ үү</translation> <translation id="1962204205936693436"><ph name="DOMAIN" /> Хавчуургууд</translation> <translation id="1973335181906896915">Цувралын алдаа</translation> @@ -3036,6 +3037,7 @@ <translation id="6101583188322746099">Хүнсний хүргэлтийн үйлчилгээнүүд</translation> <translation id="6104072995492677441">JIS B6</translation> <translation id="6105460996796456817">Сайт үүсгэх</translation> +<translation id="6105511947520166941">Дараагийн удаа Chrome-д шууд Pix-р төлөөрэй</translation> <translation id="6106989379647458772"><ph name="PAGE" />-ын веб хуудас түр хугацаанд ажиллахгүй, эсвэл шинэ хуудас болон бүрмөсөн солигдсон байж болзошгүй.</translation> <translation id="6107012941649240045">руу олгосон</translation> <translation id="6107864469867367783"><ph name="USER_DISPLAY_NAME" /> бүлгийн нэрийг өөрчилсөн</translation>
diff --git a/components/strings/components_strings_th.xtb b/components/strings/components_strings_th.xtb index 91103b4..d285d1c 100644 --- a/components/strings/components_strings_th.xtb +++ b/components/strings/components_strings_th.xtb
@@ -576,6 +576,7 @@ <translation id="1959001866257244765">ช่วยปรับปรุงความปลอดภัยในอินเทอร์เน็ตสำหรับทุกคนโดยการส่ง <ph name="BEGIN_WHITEPAPER_LINK" />URL ของหน้าเว็บบางหน้าที่คุณเข้าชม ข้อมูลระบบที่จำกัด และเนื้อหาบางส่วนของหน้า<ph name="END_WHITEPAPER_LINK" />ให้ Google <ph name="BEGIN_PRIVACY_PAGE_LINK" />นโยบายความเป็นส่วนตัว<ph name="END_PRIVACY_PAGE_LINK" /></translation> <translation id="1959445535228047762">ระบบจะส่งข้อความและเนื้อหาหน้าเว็บของคุณไปยัง Google และอาจนำไปใช้เพื่อปรับปรุงฟีเจอร์นี้ <ph name="BEGIN_LINK" />ดูข้อมูลเพิ่มเติม<ph name="END_LINK" /></translation> +<translation id="1960664692890490165">เมื่อทำการซื้อใน Chrome คุณจะเห็นวิธีการชำระเงินโดยไม่ใช้บัตรเป็นตัวเลือก</translation> <translation id="196146181975453736">ตรวจสอบความปลอดภัยแบบครั้งเดียวให้เสร็จสมบูรณ์เพื่อชำระเงินได้เร็วขึ้น</translation> <translation id="1962204205936693436">บุ๊กมาร์กของ <ph name="DOMAIN" /></translation> <translation id="1973335181906896915">ข้อผิดพลาดในการจัดเรียง</translation> @@ -3034,6 +3035,7 @@ <translation id="6101583188322746099">บริการจัดส่งของกินของใช้ในครัวเรือน</translation> <translation id="6104072995492677441">JIS B6</translation> <translation id="6105460996796456817">สร้างเว็บไซต์</translation> +<translation id="6105511947520166941">ชำระเงินด้วย Pix ใน Chrome โดยตรงในครั้งถัดไป</translation> <translation id="6106989379647458772">หน้าเว็บที่ <ph name="PAGE" /> อาจใช้งานไม่ได้ชั่วคราวหรืออาจมีการย้ายไปยังที่อยู่เว็บใหม่อย่างถาวรแล้ว</translation> <translation id="6107012941649240045">ออกให้แก่</translation> <translation id="6107864469867367783"><ph name="USER_DISPLAY_NAME" /> เปลี่ยนชื่อกลุ่มแล้ว</translation>
diff --git a/components/strings/components_strings_ur.xtb b/components/strings/components_strings_ur.xtb index 00aa213..45960a2 100644 --- a/components/strings/components_strings_ur.xtb +++ b/components/strings/components_strings_ur.xtb
@@ -576,6 +576,7 @@ <translation id="1959001866257244765"><ph name="BEGIN_WHITEPAPER_LINK" />آپ کے ملاحظہ کئے جانے والے چند صفحات کے URLs، سسٹم کی محدود معلومات اور صفحے کا کچھ مواد<ph name="END_WHITEPAPER_LINK" /> Google کو بھیج کر ہر کسی کے لیے ویب پر موجود سیکیورٹی کو بہتر کرنے میں ہماری مدد کریں۔ <ph name="BEGIN_PRIVACY_PAGE_LINK" />رازداری کی پالیسی<ph name="END_PRIVACY_PAGE_LINK" /></translation> <translation id="1959445535228047762">آپ کے ٹیکسٹ اور صفحے کے مواد کو Google کو بھیجا جاتا ہے اور اس خصوصیت کو بہتر بنانے کے لیے ان کا استعمال کیا جا سکتا ہے۔ <ph name="BEGIN_LINK" />مزید جانیں<ph name="END_LINK" /></translation> +<translation id="1960664692890490165">جب آپ Chrome میں خریداری کرتے ہیں تو ایک اختیار کے طور پر غیر کارڈ ادائیگی کے طریقے دیکھیں</translation> <translation id="196146181975453736">تیزی سے ادائیگی کرنے کے لیے یک وقتی سیکیورٹی چیک مکمل کریں</translation> <translation id="1962204205936693436"><ph name="DOMAIN" /> بک مارکس</translation> <translation id="1973335181906896915">ترتیب وار سازی کی خرابی</translation> @@ -3036,6 +3037,7 @@ <translation id="6101583188322746099">گروسری ڈیلیوری کی سروسز</translation> <translation id="6104072995492677441">JIS B6</translation> <translation id="6105460996796456817">سائٹ تخلیق کریں</translation> +<translation id="6105511947520166941">اگلی بار براہ راست Chrome میں Pix کے ساتھ ادائیگی کریں</translation> <translation id="6106989379647458772">ممکن ہے <ph name="PAGE" /> پر موجود ویب صفحہ عارضی طور پر ڈاؤن ہو یا ممکن ہے یہ مستقل طور پر ایک نئے ویب پتہ پر منتقل ہوگیا ہو۔</translation> <translation id="6107012941649240045">جاری کردہ بنام</translation> <translation id="6107864469867367783"><ph name="USER_DISPLAY_NAME" /> نے گروپ کا نام تبدیل کر دیا</translation>
diff --git a/components/sync/BUILD.gn b/components/sync/BUILD.gn index ae3277e0..b63db4ac 100644 --- a/components/sync/BUILD.gn +++ b/components/sync/BUILD.gn
@@ -312,6 +312,10 @@ "//components/policy/core/browser", ] } + + # TODO(crbug.com/40031409): Fix code that adds exit-time destructors and + # enable the diagnostic by removing this line. + configs += [ "//build/config/compiler:no_exit_time_destructors" ] } if (!is_android && !is_ios && !is_fuchsia) {
diff --git a/components/sync_preferences/BUILD.gn b/components/sync_preferences/BUILD.gn index 8362a14a..2b9df91 100644 --- a/components/sync_preferences/BUILD.gn +++ b/components/sync_preferences/BUILD.gn
@@ -113,4 +113,8 @@ if (is_chromeos) { deps += [ "//ash/constants" ] } + + # TODO(crbug.com/40031409): Fix code that adds exit-time destructors and + # enable the diagnostic by removing this line. + configs += [ "//build/config/compiler:no_exit_time_destructors" ] }
diff --git a/components/variations/variations_seed_store.cc b/components/variations/variations_seed_store.cc index c171cb9..8143811 100644 --- a/components/variations/variations_seed_store.cc +++ b/components/variations/variations_seed_store.cc
@@ -676,43 +676,6 @@ return LoadSeedResult::kSuccess; } -StoreSeedResult VariationsSeedStore::ResolveDelta( - const std::string& delta_bytes, - std::string* seed_bytes) { - DCHECK(seed_bytes); - std::string existing_seed_bytes; - LoadSeedResult read_result = - ReadSeedData(SeedType::LATEST, &existing_seed_bytes); - if (read_result != LoadSeedResult::kSuccess) - return StoreSeedResult::kFailedDeltaReadSeed; - if (!ApplyDeltaPatch(existing_seed_bytes, delta_bytes, seed_bytes)) - return StoreSeedResult::kFailedDeltaApply; - return StoreSeedResult::kSuccess; -} - -StoreSeedResult VariationsSeedStore::ResolveInstanceManipulations( - const std::string& data, - const InstanceManipulations& im, - std::string* seed_bytes) { - DCHECK(seed_bytes); - // If the data is gzip compressed, first uncompress it. - std::string ungzipped_data; - if (im.gzip_compressed) { - StoreSeedResult result = Uncompress(data, &ungzipped_data); - if (result != StoreSeedResult::kSuccess) - return result; - } else { - ungzipped_data = data; - } - - if (!im.delta_compressed) { - seed_bytes->swap(ungzipped_data); - return StoreSeedResult::kSuccess; - } - - return ResolveDelta(ungzipped_data, seed_bytes); -} - void VariationsSeedStore::OnSeedDataProcessed( base::OnceCallback<void(bool, VariationsSeed)> done_callback, SeedProcessingResult result) {
diff --git a/components/variations/variations_seed_store.h b/components/variations/variations_seed_store.h index 8139a2a2..65fdcb4c1 100644 --- a/components/variations/variations_seed_store.h +++ b/components/variations/variations_seed_store.h
@@ -354,18 +354,6 @@ std::string* seed_data, std::string* base64_seed_signature = nullptr); - // Resolves a |delta_bytes| against the latest seed. - // Returns success or an error, populating |seed_bytes| on success. - [[nodiscard]] StoreSeedResult ResolveDelta(const std::string& delta_bytes, - std::string* seed_bytes); - - // Resolves instance manipulations applied to received data. - // Returns success or an error, populating |seed_bytes| on success. - [[nodiscard]] StoreSeedResult ResolveInstanceManipulations( - const std::string& data, - const InstanceManipulations& im, - std::string* seed_bytes); - // Called on the UI thread after the seed has been processed. void OnSeedDataProcessed( base::OnceCallback<void(bool, VariationsSeed)> done_callback,
diff --git a/components/visitedlink/test/BUILD.gn b/components/visitedlink/test/BUILD.gn index e6fa5e1..77e3c46 100644 --- a/components/visitedlink/test/BUILD.gn +++ b/components/visitedlink/test/BUILD.gn
@@ -17,4 +17,8 @@ "//testing/gtest", "//third_party/blink/public/common", ] + + # TODO(crbug.com/40031409): Fix code that adds exit-time destructors and + # enable the diagnostic by removing this line. + configs += [ "//build/config/compiler:no_exit_time_destructors" ] }
diff --git a/components/web_package/BUILD.gn b/components/web_package/BUILD.gn index 788f872..ab6e5060 100644 --- a/components/web_package/BUILD.gn +++ b/components/web_package/BUILD.gn
@@ -109,6 +109,10 @@ if (is_ios) { deps += [ "//components/test:web_package_test_bundle_data" ] } + + # TODO(crbug.com/40031409): Fix code that adds exit-time destructors and + # enable the diagnostic by removing this line. + configs += [ "//build/config/compiler:no_exit_time_destructors" ] } fuzzer_test("web_bundle_parser_fuzzer") {
diff --git a/content/browser/renderer_host/clipboard_host_impl_unittest.cc b/content/browser/renderer_host/clipboard_host_impl_unittest.cc index 5931366b..722140e 100644 --- a/content/browser/renderer_host/clipboard_host_impl_unittest.cc +++ b/content/browser/renderer_host/clipboard_host_impl_unittest.cc
@@ -762,7 +762,8 @@ ClipboardHostImplChangeTest() : RenderViewHostTestHarness( base::test::TaskEnvironment::TimeSource::MOCK_TIME) { - scoped_feature_list_.InitAndEnableFeature(features::kClipboardChangeEvent); + scoped_feature_list_.InitAndEnableFeature( + features::kPlatformClipboardMonitor); ui::TestClipboard::CreateForCurrentThread(); }
diff --git a/content/browser/websockets/DIR_METADATA b/content/browser/websockets/DIR_METADATA index 8f620091..1138724 100644 --- a/content/browser/websockets/DIR_METADATA +++ b/content/browser/websockets/DIR_METADATA
@@ -1,7 +1,7 @@ monorail: { component: "Blink>Network>WebSockets" } -team_email: "blink-network-dev@chromium.org" +team_email: "net-dev@chromium.org" buganizer_public: { component_id: 1456696 }
diff --git a/content/browser/webtransport/DIR_METADATA b/content/browser/webtransport/DIR_METADATA index 7b28b3f..3af1b150 100644 --- a/content/browser/webtransport/DIR_METADATA +++ b/content/browser/webtransport/DIR_METADATA
@@ -1,7 +1,7 @@ monorail: { component: "Blink>Network>WebTransport" } -team_email: "blink-network-dev@chromium.org" +team_email: "net-dev@chromium.org" buganizer_public: { component_id: 1456904 }
diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.cc index 98e3f207..4b382218 100644 --- a/content/child/runtime_features.cc +++ b/content/child/runtime_features.cc
@@ -353,7 +353,6 @@ #endif {"CompressionDictionaryTransport", raw_ref(network::features::kCompressionDictionaryTransport)}, - {"ClipboardChangeEvent", raw_ref(features::kClipboardChangeEvent)}, {"CompressionDictionaryTransportBackend", raw_ref(network::features::kCompressionDictionaryTransportBackend)}, {"CookieDeprecationFacilitatedTesting",
diff --git a/content/public/browser/web_contents.h b/content/public/browser/web_contents.h index 04c72f70..07165bf2 100644 --- a/content/public/browser/web_contents.h +++ b/content/public/browser/web_contents.h
@@ -58,7 +58,6 @@ #include "ui/accessibility/ax_enums.mojom-shared.h" #include "ui/accessibility/ax_mode.h" #include "ui/accessibility/platform/inspect/ax_api_type.h" -#include "ui/base/cursor/mojom/cursor_type.mojom-shared.h" #include "ui/color/color_provider_key.h" #include "ui/gfx/geometry/rect.h" #include "ui/gfx/geometry/size.h"
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_km.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_km.xtb index 1d62885..526a756 100644 --- a/ios/chrome/app/strings/resources/ios_chromium_strings_km.xtb +++ b/ios/chrome/app/strings/resources/ios_chromium_strings_km.xtb
@@ -113,6 +113,7 @@ <translation id="3728124580182886854">ភ្ជាប់ Chromium និងសេវាកម្ម Google ផ្សេងទៀតសម្រាប់ការកំណត់ឱ្យមានលក្ខណៈផ្ទាល់ខ្លួន និងគោលបំណងផ្សេងទៀត</translation> <translation id="377649297473651452">ទិដ្ឋភាពពង្រីកនៃមុខងារបំពេញស្វ័យប្រវត្តិ Chromium</translation> <translation id="3780779443901618967">ប្រាប់ឱ្យអ្នកប្រុងប្រយ័ត្នចំពោះគេហទំព័រគ្រោះថ្នាក់ សូម្បីតែគេហទំព័រដែល Google មិនបានស្គាល់ពីមុនក៏ដោយ ដោយវិភាគទិន្នន័យកាន់តែច្រើនពីគេហទំព័រ បើធៀបនឹងការការពារស្តង់ដារ។ អ្នកអាចជ្រើសរើសរំលងសារប្រុងប្រយ័ត្នពី Chromium បាន។</translation> +<translation id="3804124559081428680">គន្លឹះ Chromium៖ ផ្ទៀងផ្ទាត់ថាជាអ្នក</translation> <translation id="3805899903892079518">Chromium មិនមានលទ្ធភាពចូលប្រើរូបថត និងវីដេអូរបស់អ្នកទេ។ សូមបើកដំណើរការចូលប្រើនៅក្នុងការកំណត់ iOS > ភាពឯកជន > រូបថត។</translation> <translation id="3816686541346279443">Chromium នឹងផ្ដល់ការរក្សាទុកពាក្យសម្ងាត់របស់អ្នក។</translation> <translation id="3827545470516145620">អ្នកកំពុងទទួលបានការការពារសុវត្ថិភាពស្តង់ដារនៅលើឧបករណ៍នេះ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_ms.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_ms.xtb index 32bbc7f..fe1a912 100644 --- a/ios/chrome/app/strings/resources/ios_chromium_strings_ms.xtb +++ b/ios/chrome/app/strings/resources/ios_chromium_strings_ms.xtb
@@ -113,6 +113,7 @@ <translation id="3728124580182886854">Pautkan Chromium dengan perkhidmatan Google lain untuk pemeribadian dan tujuan lain</translation> <translation id="377649297473651452">Paparan Autolengkap Chromium dikembangkan</translation> <translation id="3780779443901618967">Memberikan amaran kepada anda tentang laman berbahaya, termasuk laman yang tidak diketahui oleh Google sebelum ini, dengan menganalisis lebih banyak data daripada laman berbanding perlindungan standard. Anda boleh memilih untuk melangkau amaran Chromium.</translation> +<translation id="3804124559081428680">Petua Chromium: Sahkan identiti anda</translation> <translation id="3805899903892079518">Chromium tidak mempunyai akses kepada foto atau video anda. Dayakan akses dalam Tetapan iOS > Privasi > Foto.</translation> <translation id="3816686541346279443">Chromium akan menawarkan untuk menyimpan kata laluan anda.</translation> <translation id="3827545470516145620">Anda mendapat perlindungan keselamatan standard pada peranti ini</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_th.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_th.xtb index b4cd9ea..77b01c6a 100644 --- a/ios/chrome/app/strings/resources/ios_chromium_strings_th.xtb +++ b/ios/chrome/app/strings/resources/ios_chromium_strings_th.xtb
@@ -113,6 +113,7 @@ <translation id="3728124580182886854">ลิงก์ Chromium และบริการอื่นๆ ของ Google เพื่อการปรับเปลี่ยนในแบบของคุณและวัตถุประสงค์อื่นๆ</translation> <translation id="377649297473651452">ขยายมุมมองการป้อนข้อความอัตโนมัติของ Chromium อยู่</translation> <translation id="3780779443901618967">เตือนคุณเกี่ยวกับเว็บไซต์ที่เป็นอันตราย แม้แต่เว็บไซต์ที่ Google ไม่เคยรู้จักมาก่อนด้วยการวิเคราะห์ข้อมูลจากเว็บไซต์มากกว่าการปกป้องแบบมาตรฐาน คุณเลือกข้ามคำเตือนของ Chromium ได้</translation> +<translation id="3804124559081428680">เคล็ดลับสำหรับ Chromium: ยืนยันว่าเป็นคุณ</translation> <translation id="3805899903892079518">Chromium ไม่มีสิทธิ์เข้าถึงรูปภาพหรือวิดีโอของคุณ เปิดใช้การเข้าถึงได้ในการตั้งค่า iOS > ความเป็นส่วนตัว > รูปภาพ</translation> <translation id="3816686541346279443">Chromium จะเสนอให้บันทึกรหัสผ่าน</translation> <translation id="3827545470516145620">คุณกำลังได้รับการรักษาความปลอดภัยแบบมาตรฐานในอุปกรณ์นี้</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_km.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_km.xtb index bcfbb11..1feb288 100644 --- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_km.xtb +++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_km.xtb
@@ -118,6 +118,7 @@ <translation id="3863841106411295595">បញ្ចូល URL ដែលបានបញ្ចូលទៅបញ្ជីអានរបស់អ្នកនៅក្នុង Chrome។</translation> <translation id="3901001113120561395">ទទួលបានអត្ថប្រយោជន៍ច្រើនបំផុតពី Chrome។</translation> <translation id="3913386780052199712">បានចូល Chrome</translation> +<translation id="3932250749914183695">គន្លឹះ Chrome៖ ផ្ទៀងផ្ទាត់ថាជាអ្នក</translation> <translation id="3984746313391923992">ស្ថាប័នរបស់អ្នកតម្រូវឱ្យអ្នកនៅបន្តចេញពីគណនីនៅលើ Chrome។</translation> <translation id="3988789688219830639">Google Chrome មិនមានលទ្ធភាពចូលប្រើរូបថត និងវីដេអូរបស់អ្នកទេ។ បើកដំណើរការចូលប្រើនៅក្នុងការកំណត់ iOS > ភាពឯកជន > រូបថត។</translation> <translation id="4064699917955374540">ដើម្បីប្រើ និងរក្សាទុកទិន្នន័យ Chrome នៅក្នុងគណនី Google របស់អ្នក សូមផ្ទៀងផ្ទាត់ថាជាអ្នក។</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_ms.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_ms.xtb index 898538a..6a0da3a8 100644 --- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_ms.xtb +++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_ms.xtb
@@ -118,6 +118,7 @@ <translation id="3863841106411295595">Menambahkan URL yang diinput pada senarai bacaan anda dalam Chrome.</translation> <translation id="3901001113120561395">Manfaatkan Chrome sepenuhnya.</translation> <translation id="3913386780052199712">Dilog masuk ke Chrome</translation> +<translation id="3932250749914183695">Petua Chrome: Sahkan identiti anda</translation> <translation id="3984746313391923992">Organisasi anda menghendaki anda kekal dilog keluar daripada Chrome.</translation> <translation id="3988789688219830639">Google Chrome tidak mempunyai akses ke foto atau video anda. Dayakan akses dalam Tetapan iOS > Privasi > Foto.</translation> <translation id="4064699917955374540">Untuk menggunakan dan menyimpan data Chrome dalam Google Account anda, sahkan identiti anda.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_th.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_th.xtb index e27e18f..858b77d 100644 --- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_th.xtb +++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_th.xtb
@@ -118,6 +118,7 @@ <translation id="3863841106411295595">เพิ่ม URL ที่ป้อนลงในเรื่องรออ่านใน Chrome</translation> <translation id="3901001113120561395">รับประโยชน์สูงสุดจาก Chrome</translation> <translation id="3913386780052199712">ลงชื่อเข้าใช้ Chrome แล้ว</translation> +<translation id="3932250749914183695">เคล็ดลับสำหรับ Chrome: ยืนยันว่าเป็นคุณ</translation> <translation id="3984746313391923992">องค์กรกำหนดให้คุณออกจากระบบ Chrome ต่อไป</translation> <translation id="3988789688219830639">Google Chrome ไม่มีสิทธิ์เข้าถึงรูปภาพหรือวิดีโอของคุณ เปิดการเข้าถึงได้ในการตั้งค่า iOS > ความเป็นส่วนตัว > รูปภาพ</translation> <translation id="4064699917955374540">โปรดยืนยันว่าเป็นคุณเพื่อใช้และบันทึกข้อมูล Chrome ในบัญชี Google</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_zh-TW.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_zh-TW.xtb index 8fc6f310..27bfa19 100644 --- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_zh-TW.xtb +++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_zh-TW.xtb
@@ -144,7 +144,7 @@ <translation id="4840404732697892756">當你登入 Google 帳戶後,Google 密碼管理工具可以檢查你的密碼。</translation> <translation id="4903674399067644695">這張資訊卡會建議你如何充分運用 Chrome 的各項功能。</translation> <translation id="49200511069271369">貴機構 (<ph name="DOMAIN" />) 會管理你登入的帳戶和 Chrome 的使用方式。管理員可以設定或限制特定功能。</translation> -<translation id="4925322001044117929">使用 Chrome 做為 iPad 的預設瀏覽器</translation> +<translation id="4925322001044117929">把 Chrome 設為 iPad 的預設瀏覽器</translation> <translation id="498985224078955265">如要將這個分頁傳送到另一部裝置,請在這兩部裝置上登入 Chrome。</translation> <translation id="5030102366287574140">Chrome 可防範資料侵害事件、封鎖不安全的網站或採取其他措施,協助提升網路安全。</translation> <translation id="5109169629909011627">查看 Chrome 書籤</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_km.xtb b/ios/chrome/app/strings/resources/ios_strings_km.xtb index 20fcaaef..653c9c7 100644 --- a/ios/chrome/app/strings/resources/ios_strings_km.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_km.xtb
@@ -407,6 +407,7 @@ <translation id="2542268842667970959">លាក់ "ការពិនិត្យសុវត្ថិភាព"</translation> <translation id="2551153019974022505">បញ្ហាគណនី</translation> <translation id="2559843230610279254">ក្រុមផ្ទាំង, <ph name="GROUP_TITLE" />, <ph name="TABS_NUMBER" /> ផ្ទាំង។</translation> +<translation id="2573117291489209663">រួចរាល់</translation> <translation id="2577522251608256362">អ្នកជិតខាង</translation> <translation id="2579713773888829241">ថាសរួម</translation> <translation id="2583688836549072561">ក្រុមផ្ទាំង, <ph name="GROUP_TITLE" />, <ph name="TABS_NUMBER" /> ផ្ទាំង, សកម្មភាពថ្មី។</translation> @@ -503,6 +504,7 @@ <translation id="2962516096219646456">មើលទិន្នន័យបំពេញស្វ័យប្រវត្តិទាំងអស់</translation> <translation id="2969979262385602596">បានបរាជ័យក្នុងការចូល។ សូមព្យាយាមម្តងទៀតនៅពេលក្រោយ។</translation> <translation id="297667759942911166">សហការនៅក្នុងក្រុមផ្ទាំង</translation> +<translation id="2987670534697681860">ផ្ទៀងផ្ទាត់ថាជាអ្នក ដើម្បីចូលប្រើពាក្យសម្ងាត់ទាំងអស់របស់អ្នកនៅលើឧបករណ៍នេះ។</translation> <translation id="2989523299700148168">បានចូលទៅកាន់ថ្មីៗ</translation> <translation id="2989805286512600854">បើកនៅក្នុងផ្ទាំងថ្មី</translation> <translation id="2996291259634659425">បង្កើតឃ្លាសម្ងាត់</translation> @@ -694,6 +696,7 @@ <translation id="3850952228519377137">លាក់ "តាមដានតម្លៃពីផ្ទាំងរបស់អ្នក"</translation> <translation id="3851938967634752633">ពាក្យសម្ងាត់សម្រាប់ <ph name="WEBSITE" />, <ph name="SECOND_WEBSITE" /> និង <ph name="NUMBER_OF_ACCOUNTS" /> ផ្សេងទៀតនឹងត្រូវបានលុប។ គណនីរបស់អ្នកនឹងមិនត្រូវបានលុបទេ។</translation> <translation id="3853162385423733133">បន្តប្រើប្រាស់ និងរក្សាទុកពាក្យសម្ងាត់នៅក្នុងគណនី Google របស់អ្នក <ph name="EMAIL" /></translation> +<translation id="3853873210696342070">នាំចូល</translation> <translation id="3858860766373142691">ឈ្មោះ</translation> <translation id="3868495844258915202">បង្ហាញ URL ពេញលេញ</translation> <translation id="3875783148670536197">បង្ហាញខ្ញុំអំពីរបៀប</translation> @@ -885,6 +888,7 @@ <translation id="461440297010471931">ស្វែងរកដោយប្រើ Google</translation> <translation id="4619564267100705184">ផ្ទៀងផ្ទាត់ថាជាអ្នក</translation> <translation id="4619615317237390068">ផ្ទាំងបានពីឧបករណ៍ផ្សេងទៀត</translation> +<translation id="4621768135601674446">បើកជម្រើសមុខងារអាន</translation> <translation id="4624080227980645783">ផ្ទាំងឯកជនថ្មី</translation> <translation id="4627107755957573804">អនុញ្ញាតឱ្យគេហទំព័រ និងកម្មវិធីដំឡើងកម្រិតគណនីដែលមានស្រាប់ ដើម្បីប្រើកូដសម្ងាត់</translation> <translation id="4630212057753624203">ផ្ទាំងអណ្ដែតគំរូ</translation> @@ -925,6 +929,7 @@ <translation id="4742407542027196863">គ្រប់គ្រងពាក្យសម្ងាត់…</translation> <translation id="4744428388659507035">ដើម្បីទទួលបានចំណាំរបស់អ្នកនៅលើឧបករណ៍ទាំងអស់របស់អ្នក សូមបើក “ចំណាំ” នៅក្នុងការកំណត់។</translation> <translation id="4746926359847517643">អ្នកអាចយកផ្ទាំងទាំងនោះមកវិញនៅក្នុងប្រវត្តិបានជានិច្ច។</translation> +<translation id="4749529195026091676">{count,plural, =1{បាននាំចូលកាត {count}}other{បាននាំចូលកាត {count}}}</translation> <translation id="4751645464639803239">ផ្ទាំងឯកជនថ្មី</translation> <translation id="4752348350801431746">បិទការជូនដំណឹងអំពីការពិនិត្យសុវត្ថិភាព…</translation> <translation id="4764612367328936189">ស្ថាប័នរបស់អ្នកអនុញ្ញាតឱ្យអ្នកចូលដោយប្រើគណនីជាក់លាក់តែប៉ុណ្ណោះ។ គណនីដែលមិនមានការអនុញ្ញាតត្រូវបានលាក់។ <ph name="BEGIN_LINK" />ស្វែងយល់បន្ថែម<ph name="END_LINK" /></translation> @@ -989,6 +994,7 @@ <translation id="496392417432935267">បានបើកនៅកន្លែងផ្សេង</translation> <translation id="4970724460420203313">ការប្រើប្រាស់ Chrome តាមរយៈគណនីរបស់អ្នកដែលស្ថិតក្រោមការគ្រប់គ្រង ជួយអ្នកក្នុងការរក្សាការរុករកដែលពាក់ព័ន្ធនឹងស្ថាប័នរបស់អ្នក (រួមទាំងផ្ទាំង ប្រវត្តិ និងពាក្យសម្ងាត់) ឱ្យនៅដាច់ដោយឡែកពីការរុករកផ្សេងទៀតរបស់អ្នក</translation> <translation id="4971735654804503942">ការការពារបរិសកម្ម និងលឿនជាងមុនពីគេហទំព័រ ការទាញយក និងកម្មវិធីបន្ថែមដែលគ្រោះថ្នាក់។ ព្រមានអ្នកអំពីការបែកធ្លាយពាក្យសម្ងាត់។ តម្រូវឱ្យបញ្ជូនទិន្នន័យរុករកទៅ Google។</translation> +<translation id="4975364841282576329">{count,plural, =1{ធាតុប្រវត្តិ {count} ពីកម្រងព័ត៌មានការងារ និងកម្រងព័ត៌មានឯកជននៅលើ Safari}other{ធាតុប្រវត្តិ {count} ពីកម្រងព័ត៌មានការងារ និងកម្រងព័ត៌មានឯកជននៅលើ Safari}}</translation> <translation id="4979397965658815378">ចូលដោយប្រើគណនី Google របស់អ្នកដើម្បីទទួលយកចំណាំ ពាក្យសម្ងាត់ ប្រវត្តិ និងការកំណត់ផ្សេងទៀតរបស់អ្នកនៅលើឧបករណ៍ទាំងអស់របស់អ្នក</translation> <translation id="4985921635659180565">បន្ទាប់ពីកំណត់ពេលលុបឯកសាររួច នោះមិនអាចបោះបង់សកម្មភាពនេះបានទេ។</translation> <translation id="498624032394115435">គ្រប់គ្នាដែលមានតំណនេះអាចកែផ្ទាំងទាំងអស់បាន។</translation> @@ -1005,6 +1011,7 @@ <translation id="5024511550058813796">អ្នកនឹងមានប្រវត្តិរបស់អ្នកនៅលើឧបករណ៍ដែលបានធ្វើសមកាលកម្មទាំងអស់របស់អ្នក ដើម្បីអាចឱ្យអ្នកបន្តអ្វីដែលអ្នកបានធ្វើ</translation> <translation id="5039804452771397117">អនុញ្ញាត</translation> <translation id="5050810143224996149">ចែករំលែកពាក្យសម្ងាត់</translation> +<translation id="5055015094595227120">ទីតាំងជាក់លាក់</translation> <translation id="5056446788882570708">បានរកឃើញបញ្ហាកាលពី <ph name="TIME" />។</translation> <translation id="5059136629401106827">យល់ព្រម</translation> <translation id="5062321486222145940">ដំឡើង Google Drive</translation> @@ -1070,6 +1077,7 @@ <translation id="5295239312320826323">លុបគណនី <ph name="USER_EMAIL" /> ឬ?</translation> <translation id="5300589172476337783">បង្ហាញ</translation> <translation id="5311061401280561833">បានអនុញ្ញាតឱ្យចូលប្រើប្រាស់កាមេរ៉ា និងមីក្រូហ្វូន</translation> +<translation id="5315870524563628285">គ្មានអ្វីដែលត្រូវនាំចូលទេ</translation> <translation id="5316356981864168850">ទី <ph name="INDEX" /> នៃ <ph name="NUM_SUGGESTIONS" /></translation> <translation id="5317780077021120954">រក្សាទុក</translation> <translation id="5318298563956633672">អ្នកកំពុងតាមដានផលិតផលនេះស្រាប់ហើយ។</translation> @@ -1103,6 +1111,7 @@ <translation id="5457082343331641453">បញ្ចូលទៅការស្វែងរករបស់អ្នក</translation> <translation id="5457226814769348910">បើកកំណែគ្មានអ៊ីនធឺណិត</translation> <translation id="5467163657366219870">បិទកំណែសាកល្បងនៃកម្មវិធីផែនទី</translation> +<translation id="5475793109165786685">{count,plural, =0{មិនបាននាំចូលពាក្យសម្ងាត់ទេ}=1{បាននាំចូលពាក្យសម្ងាត់ {count}}other{បាននាំចូលពាក្យសម្ងាត់ {count}}}</translation> <translation id="5478327362747197944">បង្កើតព្រឹត្តិការណ៍ក្នុងប្រតិទិនដោយផ្ទាល់ដោយចុចលើកាលបរិច្ឆេទក្នុងទំព័របណ្ដាញ។</translation> <translation id="5482922178977937393">តើអ្នកចង់បានការជូនដំណឹងអំពីព័ត៌មាន កីឡា និងអ្វីៗជាច្រើនទៀតដោយផ្អែកលើចំណាប់អារម្មណ៍របស់អ្នកទេ?</translation> <translation id="5483838506518938965">អ្នកត្រូវបានកំណត់រួចអស់ហើយ</translation> @@ -1168,7 +1177,9 @@ <translation id="5680012489335339762">ប្ដូរគណនីឬ? ទិន្នន័យគណនីដែលមិនបានរក្សាទុកនឹងត្រូវបានលុប។</translation> <translation id="5683499062697987550">ដើម្បីប្រើ និងរក្សាទុកពាក្យសម្ងាត់នៅក្នុងគណនី Google របស់អ្នក សូមផ្ទៀងផ្ទាត់ថាជាអ្នក។</translation> <translation id="5684761169742812828">ពាក្យសម្ងាត់នេះត្រូវបានបញ្ចេញនៅក្នុងការបែកធ្លាយទិន្នន័យនៅលើអ៊ីនធឺណិត។ Google ណែនាំឱ្យរក្សាសារប្រុងប្រយ័ត្ននេះ ដើម្បីរំលឹកខ្លួនអ្នកនៅពេលក្រោយ ប្រសិនបើអ្នកមិនមានពេលក្នុងការប្ដូរវាឥឡូវនេះទេ។</translation> +<translation id="5688739340234490129">{count,plural, =1{កាត {count}}other{កាត {count}}}</translation> <translation id="5694848685995373177">បានរក្សាទុកនៅក្នុងថាសសម្រាប់ <ph name="USER_EMAIL" />។</translation> +<translation id="5701749750962143173">ប្រើទីតាំងជាក់លាក់របស់អ្នក ដើម្បីទទួលបានលទ្ធផលត្រឹមត្រូវបំផុតពី Gemini ជំនួសឱ្យទីតាំងប៉ាន់ស្មានដោយផ្អែកលើអាសយដ្ឋាន IP របស់អ្នក។ ស្វែងយល់បន្ថែម</translation> <translation id="570209299585559496">អ្នកអាចប្ដូរទិដ្ឋភាពគេហទំព័រលំនាំដើមទៅទិដ្ឋភាពកុំព្យូទ័រនៅក្នុង "ការកំណត់" បន្ទាប់មក "ការកំណត់ខ្លឹមសារ"</translation> <translation id="5702108177581350218">នៅពេលអ្នកចែករំលែកច្បាប់ចម្លងនៃឈ្មោះអ្នកប្រើប្រាស់ និងពាក្យសម្ងាត់របស់អ្នក សមាជិកគ្រួសាររបស់អ្នកអាចបំពេញព័ត៌មានទាំងនោះបានដោយប្រើកម្មវិធីគ្រប់គ្រងពាក្យសម្ងាត់។</translation> <translation id="5704908597376970822">មិនអាចចូលគណនីបានទេ។</translation> @@ -1270,6 +1281,7 @@ <translation id="6090760257419195752">សារប្រុងប្រយ័ត្នដែលបានច្រានចោល</translation> <translation id="6096965253650248286">បានរកឃើញ <ph name="COUNT" /></translation> <translation id="6100617279104942061">បានចូលគណនីក្នុងនាមជា <ph name="USER_EMAIL" />។ បើកការកំណត់។</translation> +<translation id="6100676328067737810">ទិន្នន័យរបស់អ្នកនឹងត្រូវបានរក្សាទុកនៅក្នុងគណនី Google របស់អ្នក <ph name="USER_EMAIL" /></translation> <translation id="610083648014322104">ទទួលបានចម្លើយដែលពាក់ព័ន្ធដោយផ្អែកលើខ្លឹមសារនៅលើទំព័រដែលអ្នកស្ថិតនៅ</translation> <translation id="6103540626693881831">ការអ៊ីនគ្រីបនៅលើឧបករណ៍</translation> <translation id="611361228753138223">គេហទំព័រដែលអ្នកបានចូលមើលនាពេលថ្មីៗនៅលើឧបករណ៍នេះ</translation> @@ -1467,6 +1479,7 @@ <translation id="6729493062119577923">សកម្មភាពក្រុមផ្ទាំងដែលបានចែករំលែក</translation> <translation id="6732087373923685049">កាមេរ៉ា</translation> <translation id="6746338529702829275">ពិនិត្យមើលទិន្នន័យគណនីរបស់អ្នក</translation> +<translation id="6750456911389438250">{count,plural, =1{បាននាំចូលធាតុប្រវត្តិ {count}}other{បាននាំចូលធាតុប្រវត្តិ {count}}}</translation> <translation id="6755200887046212842">គ្រប់គ្រងគណនី</translation> <translation id="6755733078693946548">ចូលប្រើពាក្យសម្ងាត់ និងកូដសម្ងាត់ពីកម្មវិធីណាក៏បាន</translation> <translation id="6759709389246683070">អ្នកអាចចុចផ្ទាំងនេះឱ្យជាប់ ដើម្បីកំណត់ការរំលឹកឱ្យចូលមើលនៅពេលក្រោយ</translation> @@ -1545,6 +1558,7 @@ <translation id="707086654079606593">គ្រប់គ្រងអាសយដ្ឋាន…</translation> <translation id="7080806333218412752">បញ្ជូន URL ទៅការរុករកដោយសុវត្ថិភាព ដើម្បីពិនិត្យមើល។ ក៏បញ្ជូនគំរូមួយចំនួនតូចនៃទំព័រ ការទាញយក សកម្មភាពកម្មវិធីបន្ថែម និងព័ត៌មានប្រព័ន្ធ ដើម្បីជួយរកមើលការគំរាមកំហែងថ្មីផងដែរ។ ភ្ជាប់ទិន្នន័យនេះជាមួយគណនី Google របស់អ្នកជាបណ្ដោះអាសន្ន នៅពេលអ្នកចូលគណនី ដើម្បីការពារអ្នកនៅលើកម្មវិធីរបស់ Google។</translation> <translation id="7082853213442715471">នៅពេលបើក បច្ចេកវិទ្យាបណ្ដាញជាក់លាក់ត្រូវបានទប់ស្កាត់ ដែលអាចបណ្តាលឱ្យគេហទំព័រមួយចំនួនផ្ទុកយឺតជាងមុន ឬមិនដំណើរការបានត្រឹមត្រូវ។</translation> +<translation id="7091023926159231962">{count,plural, =1{មិនអាចនាំចូលពាក្យសម្ងាត់ {count} បានទេ}other{មិនអាចនាំចូលពាក្យសម្ងាត់ {count} បានទេ}}</translation> <translation id="7095110968493193530">ទៅក្នុងកម្មវិធីគ្រប់គ្រងពាក្យសម្ងាត់សម្រាប់ <ph name="EMAIL" /></translation> <translation id="7097046145876891318">នៅក្នុងរបារអាសយដ្ឋាន សូមចុចលើប្រវត្តិតម្លៃ ដើម្បីមើលការប្រែប្រួលតម្លៃទៅតាមពេលវេលា</translation> <translation id="7101580180124131336">ឥឡូវនេះ អ្នកនឹងឃើញខ្លឹមសារពី និងពាក់ព័ន្ធនឹង <ph name="CHANNEL_NAME" /> នៅក្នុង "កំពុងតាមដាន"។</translation> @@ -1690,6 +1704,7 @@ <translation id="7711440461521638739">អ្នកមិនកំពុងប្រើពាក្យសម្ងាត់ណាមួយឡើងវិញទេ</translation> <translation id="7712361583414030698">កំពុងមើលកំណែគ្មានអ៊ីនធឺណិត</translation> <translation id="7719038820139380048">ចូលគណនី ដើម្បីទទួលបានខ្លឹមសារផ្អែកតាមចំណាប់អារម្មណ៍របស់អ្នក។</translation> +<translation id="7720901330179380635">កំពុងស្វែងរកដោយប្រើ <ph name="SEARCH_ENGINE" /></translation> <translation id="7724085059277147439">{count,plural, =1{បានរក្សាទុកធាតុនៅក្នុងគណនី Google របស់អ្នក {email}}other{បានរក្សាទុកធាតុនៅក្នុងគណនី Google របស់អ្នក {email}}}</translation> <translation id="7729458878441927652">ដើម្បីមើលឃើញផ្ទាំងពីឧបករណ៍ផ្សេងទៀតរបស់អ្នក សូមធ្វើសមកាលកម្មផ្ទាំង និងប្រវត្តិរបស់អ្នក។</translation> <translation id="7730020510075123961">ទេ ដាក់ទិន្នន័យចូលគ្នា</translation> @@ -1734,6 +1749,7 @@ <translation id="7887174313503389866">ធ្វើទស្សនកិច្ចស្វែងយល់អំពីការគ្រប់គ្រងសុវត្ថិភាព និងឯកជនភាពសំខាន់ៗ។ សម្រាប់ជម្រើសច្រើនទៀត សូមចូលទៅកាន់ការកំណត់នីមួយៗ។</translation> <translation id="7887198238286927132">ដើម្បីការពារឯកជនភាពរបស់អ្នក Chrome នឹងមិនបំពេញកន្លែងបញ្ចូលនេះដោយស្វ័យប្រវត្តិទេ។</translation> <translation id="7887552845761062935">ចុចពីរដង រួចសង្កត់ឱ្យជាប់ ដើម្បីបើកជម្រើសច្រើនទៀត</translation> +<translation id="7889049308054594504">ចែករំលែកខ្លឹមសារទំព័រជាមួយ Gemini ដើម្បីទទួលបានចម្លើយដែលកាន់តែពាក់ព័ន្ធ។ នៅពេលអ្នកចែករំលែកទំព័រជាមួយ Gemini ខ្លឹមសារពេញលេញ និង URL របស់ទំព័រនោះត្រូវបានបញ្ជូនទៅ Google។ ស្វែងយល់បន្ថែម</translation> <translation id="7889910613639381518">ការចូលប្រើដែលងាយស្រួល និងមានសុវត្ថិភាពតាមរយៈធាតុក្រាហ្វិកកម្មវិធីគ្រប់គ្រងពាក្យសម្ងាត់។</translation> <translation id="7899199123054742721">សម្គាល់ថាមិនទាន់អានទាំងអស់</translation> <translation id="7908957400505794782">ចុច <ph name="BEGIN_BOLD" />"រួចរាល់"<ph name="END_BOLD" />។</translation> @@ -1766,6 +1782,7 @@ <translation id="7993170188789685695">ចុចពីរដងដើម្បីបិទការជូនដំណឹងនេះ។</translation> <translation id="7993619969781047893">មុខងារនៅលើគេហទំព័រមួយចំនួនអាចដំណើរការមិនត្រឹមត្រូវ</translation> <translation id="7996239959906074962">រៀបចំ…</translation> +<translation id="8001561107130904792">ការចែករំលែកខ្លឹមសារទំព័រ</translation> <translation id="800361585186029508">បើក URL ដែលបានបញ្ចូលនៅក្នុង Google Chrome។</translation> <translation id="8005666035647241369">ទៅក្នុងកម្មវិធីគ្រប់គ្រងពាក្យសម្ងាត់ Google នៅលើឧបករណ៍នេះ</translation> <translation id="8010488806779226127">រុករកមុខងារដែលអាចជួយអ្នកធ្វើអ្វីៗជាច្រើនទៀត នៅពេលដែលអ្នករុករក</translation> @@ -1784,6 +1801,7 @@ <translation id="804427445359061970">អ្នកនឹងឃើញផ្ទាំងរបស់អ្នកពីឧបករណ៍ផ្សេងទៀតនៅទីនេះ</translation> <translation id="8049767396294520796">កម្មវិធីរុករកតាមអ៊ីនធឺណិតលំនាំដើម</translation> <translation id="8058655154417507695">ឆ្នាំផុតកំណត់</translation> +<translation id="8059312861912872211">{count,plural, =1{ចំណាំ {count}}other{ចំណាំ {count}}}</translation> <translation id="8059533439631660104">បង្រួមផ្នែកនេះ</translation> <translation id="8061584726507121204">ប្រវត្តិ</translation> <translation id="8069168488983557089">ទទួលបានព័ត៌មានស៊ីជម្រៅ និងចំណុចរៀនសូត្រសំខាន់ៗដែលជួយឱ្យអ្នកយល់អំពីប្រធានបទ</translation> @@ -1859,6 +1877,7 @@ <translation id="8343993175958086504">បម្រុងទុកទិន្នន័យរបស់អ្នក និងប្រើវានៅលើឧបករណ៍ណាក៏បាន។</translation> <translation id="8348530355586151720">ចុចម៉ឺនុយចុចបី</translation> <translation id="8349305172487531364">របាចំណាំ</translation> +<translation id="8361189290032177785">{count,plural, =1{បាននាំចូលចំណាំ {count}}other{បាននាំចូលចំណាំ {count}}}</translation> <translation id="8363484128299778310">ការស្ដារឡើងវិញជាបណ្ដោះអាសន្ន ក្នុងករណីដែលមានបញ្ហា</translation> <translation id="8364563001733875155">ដើម្បីប្ដូរកូដ PIN របស់អ្នក សូមរៀបចំលេខកូដសម្ងាត់នៅលើឧបករណ៍របស់អ្នកជាមុនសិន។</translation> <translation id="8366466717204352506">ពុំធ្លាប់ដំណើរការការពិនិត្យ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_mn.xtb b/ios/chrome/app/strings/resources/ios_strings_mn.xtb index 192c158..108f69d 100644 --- a/ios/chrome/app/strings/resources/ios_strings_mn.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_mn.xtb
@@ -885,6 +885,7 @@ <translation id="461440297010471931">Google-р хайж байна</translation> <translation id="4619564267100705184">Өөрийгөө мөн болохыг бататгах</translation> <translation id="4619615317237390068">Бусад төхөөрөмжний таб</translation> +<translation id="4621768135601674446">Унших горимын сонголтуудыг нээх</translation> <translation id="4624080227980645783">Шинэ нууцлалтай цонх</translation> <translation id="4627107755957573804">Сайт, аппад одоогийн бүртгэлийг нэвтрэх түлхүүр ашиглах болгож сайжруулахыг зөвшөөрнө үү</translation> <translation id="4630212057753624203">Жишээ бөмбөлөг</translation> @@ -1005,6 +1006,7 @@ <translation id="5024511550058813796">Таны бүх синк хийсэн төхөөрөмж дээр таны түүхийг хадгална. Ингэснээр та хийж байсан зүйлээ үргэлжлүүлэх боломжтой</translation> <translation id="5039804452771397117">Зөвшөөрөх</translation> <translation id="5050810143224996149">Нууц үг хуваалцах</translation> +<translation id="5055015094595227120">Нарийвчилсан байршил</translation> <translation id="5056446788882570708">Асуудлыг <ph name="TIME" />-д олсон</translation> <translation id="5059136629401106827">OK</translation> <translation id="5062321486222145940">Google Drive суулгах</translation> @@ -1169,6 +1171,7 @@ <translation id="5683499062697987550">Google Бүртгэлдээ нууц үгнүүд ашиглах болон тэдгээрийг хадгалахын тулд өөрийгөө мөн болохыг бататгана уу.</translation> <translation id="5684761169742812828">Энэ нууц үгийг интернэтийн өгөгдлийн зөрчилд задруулсан. Хэрэв танд үүнийг яг одоо өөрчлөх цаг байхгүй байвал Google энэ сануулгыг өөртөө дараа сануулахаар хадгалахыг зөвлөж байна.</translation> <translation id="5694848685995373177"><ph name="USER_EMAIL" />-н Драйвт хадгалсан.</translation> +<translation id="5701749750962143173">Gemini-н хамгийн үнэн зөв үр дүнг авах бол IP хаягтаа тулгуурлан тооцоолсон байршлын оронд нарийвчилсан байршлаа ашиглана уу. Нэмэлт мэдээлэл авах</translation> <translation id="570209299585559496">Та сайтын өгөгдмөл харагдах байдлыг тохиргоо, дараа нь контентын тохиргоонд дэлгэц болгож өөрчлөх боломжтой</translation> <translation id="5702108177581350218">Таныг хэрэглэгчийн нэр, нууц үгнийхээ хуулбарыг хуваалцах үед танай гэр бүлийн гишүүн Google Password Manager-г ашиглан тэдгээрийг бөглөх боломжтой.</translation> <translation id="5704908597376970822">Нэвтрэх боломжгүй.</translation> @@ -1690,6 +1693,7 @@ <translation id="7711440461521638739">Та ямар ч нууц үгийг дахин ашиглаагүй байна</translation> <translation id="7712361583414030698">Офлайн хувилбарыг харж байна</translation> <translation id="7719038820139380048">Сонирхолдоо үндэслэн контент авахын тулд нэвтэрнэ үү.</translation> +<translation id="7720901330179380635"><ph name="SEARCH_ENGINE" />-р хайж байна</translation> <translation id="7724085059277147439">{count,plural, =1{Таны {email} Google Бүртгэлд зүйлийг хадгалсан}other{Таны {email} Google Бүртгэлд зүйлсийг хадгалсан}}</translation> <translation id="7729458878441927652">Бусад төхөөрөмжийнхөө табуудыг харахын тулд табууд болон түүхээ синк хийнэ үү.</translation> <translation id="7730020510075123961">Үгүй, өгөгдлийг нэгтгэнэ үү</translation> @@ -1734,6 +1738,7 @@ <translation id="7887174313503389866">Нууцлал болон аюулгүй байдлын үндсэн хяналтын талаар хөтөчтэй аялалд хамрагдаарай. Нэмэлт сонголтуудыг харахын тулд хувийн тохиргоо руу очно уу.</translation> <translation id="7887198238286927132">Таны нууцлалыг хамгаалахын тулд Chrome энэ талбарыг автоматаар бөглөхгүй.</translation> <translation id="7887552845761062935">Бусад сонголтыг нээхийн тулд товшоод удаан дарна уу</translation> +<translation id="7889049308054594504">Илүү хамааралтай асуулт авахын тулд хуудасны агуулгыг Gemini-тай хуваалцана уу. Таныг Gemini-тай хуудас хуваалцах үед хуудасны бүтэн агуулга, URL-г Google-д илгээнэ. Нэмэлт мэдээлэл авах</translation> <translation id="7889910613639381518">Google Password Manager-н виджеттэйгээр хялбар бөгөөд аюулгүй хандалт.</translation> <translation id="7899199123054742721">Бүгдийг уншаагүй гэж тэмдэглэх</translation> <translation id="7908957400505794782"><ph name="BEGIN_BOLD" />Дууссан<ph name="END_BOLD" /> дээр товшино уу</translation> @@ -1766,6 +1771,7 @@ <translation id="7993170188789685695">Энэ мэдэгдлийг хаахын тулд хоёр товшино уу.</translation> <translation id="7993619969781047893">Зарим сайтын онцлогууд ажиллахгүй байж болзошгүй</translation> <translation id="7996239959906074962">Тохируулах…</translation> +<translation id="8001561107130904792">Хуудасны агуулгыг хуваалцах</translation> <translation id="800361585186029508">Оруулсан URL-г Google Chrome дээр нээдэг.</translation> <translation id="8005666035647241369">Энэ төхөөрөмж дээрх Google-н Нууц үгний менежерт</translation> <translation id="8010488806779226127">Танд үзэх явцдаа илүү ихийг хийхэд туслах онцлогийг судлаарай</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ms.xtb b/ios/chrome/app/strings/resources/ios_strings_ms.xtb index c8b8108..233ac35 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ms.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ms.xtb
@@ -407,6 +407,7 @@ <translation id="2542268842667970959">Sembunyikan "Pemeriksaan Keselamatan"</translation> <translation id="2551153019974022505">Ralat akaun</translation> <translation id="2559843230610279254">Kumpulan tab, <ph name="GROUP_TITLE" />, <ph name="TABS_NUMBER" /> tab.</translation> +<translation id="2573117291489209663">Selesai</translation> <translation id="2577522251608256362">Kawasan kejiranan</translation> <translation id="2579713773888829241">Drive Dikongsi</translation> <translation id="2583688836549072561">Kumpulan tab, <ph name="GROUP_TITLE" />, <ph name="TABS_NUMBER" /> tab, aktiviti baharu.</translation> @@ -503,6 +504,7 @@ <translation id="2962516096219646456">Lihat semua data autolengkap</translation> <translation id="2969979262385602596">Gagal melog masuk. Sila cuba sebentar lagi.</translation> <translation id="297667759942911166">Bekerjasama dalam kumpulan tab</translation> +<translation id="2987670534697681860">Sahkan identiti anda untuk mengakses semua kata laluan anda pada peranti ini.</translation> <translation id="2989523299700148168">Dilawati baru-baru ini</translation> <translation id="2989805286512600854">Buka dalam Tab Baharu</translation> <translation id="2996291259634659425">Buat ungkapan laluan</translation> @@ -694,6 +696,7 @@ <translation id="3850952228519377137">Sembunyikan "Jejaki harga daripada tab anda"</translation> <translation id="3851938967634752633">Kata laluan untuk <ph name="WEBSITE" />, <ph name="SECOND_WEBSITE" />dan <ph name="NUMBER_OF_ACCOUNTS" /> yang lain akan dipadamkan. Akaun anda tidak akan dipadamkan.</translation> <translation id="3853162385423733133">Kekal menggunakan dan menyimpan kata laluan dalam Google Account anda <ph name="EMAIL" /></translation> +<translation id="3853873210696342070">Import</translation> <translation id="3858860766373142691">Nama</translation> <translation id="3868495844258915202">Tunjukkan URL penuh</translation> <translation id="3875783148670536197">Tunjukkan Caranya</translation> @@ -926,6 +929,7 @@ <translation id="4742407542027196863">Urus kata laluan…</translation> <translation id="4744428388659507035">Hidupkan “Penanda halaman” dalam tetapan untuk mendapatkan penanda halaman pada semua peranti anda.</translation> <translation id="4746926359847517643">Anda boleh mendapatkan semula tab dalam sejarah pada bila-bila masa.</translation> +<translation id="4749529195026091676">{count,plural, =1{{count} kad diimport}other{{count} kad diimport}}</translation> <translation id="4751645464639803239">Tab Inkognito Baharu</translation> <translation id="4752348350801431746">Matikan pemberitahuan Semakan Keselamatan…</translation> <translation id="4764612367328936189">Organisasi anda membenarkan anda log masuk dengan akaun tertentu sahaja. Akaun yang tidak dibenarkan disembunyikan. <ph name="BEGIN_LINK" />Ketahui lebih lanjut<ph name="END_LINK" /></translation> @@ -990,6 +994,7 @@ <translation id="496392417432935267">Dibuka pada tempat lain</translation> <translation id="4970724460420203313">Penggunaan Chrome dengan akaun terurus anda membantu anda meneruskan penyemakan imbas berkaitan dengan organisasi anda (termasuk tab, sejarah dan kata laluan) berasingan daripada penyemakan imbas anda yang lain</translation> <translation id="4971735654804503942">Perlindungan proaktif yang lebih pantas terhadap laman web, muat turun dan sambungan yang berbahaya. Memberi anda amaran tentang pelanggaran kata laluan. Menghendaki data semakan imbas dihantar kepada Google.</translation> +<translation id="4975364841282576329">{count,plural, =1{{count} item sejarah daripada profil peribadi dan kerja Safari}other{{count} item sejarah daripada profil peribadi dan kerja Safari}}</translation> <translation id="4979397965658815378">Log masuk dengan Google Account anda untuk mendapatkan penanda halaman, kata laluan, sejarah dan tetapan anda yang lain pada semua peranti anda</translation> <translation id="4985921635659180565">Setelah fail dijadualkan untuk dipadamkan, tindakan tersebut tidak boleh dibatalkan.</translation> <translation id="498624032394115435">Sesiapa sahaja yang mempunyai pautan boleh mengedit semua tab.</translation> @@ -1072,6 +1077,7 @@ <translation id="5295239312320826323">Alih keluar akaun <ph name="USER_EMAIL" />?</translation> <translation id="5300589172476337783">Paparkan</translation> <translation id="5311061401280561833">Akses kamera dan mikrofon dibenarkan</translation> +<translation id="5315870524563628285">Tiada apa-apa untuk diimport</translation> <translation id="5316356981864168850"><ph name="INDEX" /> daripada <ph name="NUM_SUGGESTIONS" /></translation> <translation id="5317780077021120954">Simpan</translation> <translation id="5318298563956633672">Anda telah menjejaki produk ini.</translation> @@ -1105,6 +1111,7 @@ <translation id="5457082343331641453">Tambahkan pada carian anda</translation> <translation id="5457226814769348910">Buka Versi Luar Talian</translation> <translation id="5467163657366219870">Matikan Pratonton Peta</translation> +<translation id="5475793109165786685">{count,plural, =0{Tiada kata laluan diimport}=1{{count} kata laluan diimport}other{{count} kata laluan diimport}}</translation> <translation id="5478327362747197944">Buat acara Kalendar secara terus dengan mengklik pada tarikh dalam halaman web.</translation> <translation id="5482922178977937393">Adakah anda mahu mendapatkan pemberitahuan untuk berita, sukan dan pelbagai lagi berdasarkan minat anda?</translation> <translation id="5483838506518938965">Anda sudah sedia</translation> @@ -1170,6 +1177,7 @@ <translation id="5680012489335339762">Tukar akaun? Data akaun yang tidak disimpan akan dipadamkan.</translation> <translation id="5683499062697987550">Untuk menggunakan dan menyimpan kata laluan dalam Google Account anda, sahkan identiti anda.</translation> <translation id="5684761169742812828">Kata laluan ini terdedah kepada pelanggaran data pada Internet. Jika anda tiada masa untuk menukar kata laluan sekarang, Google mengesyorkan untuk amaran ini mengingatkan anda semula nanti.</translation> +<translation id="5688739340234490129">{count,plural, =1{{count} kad}other{{count} kad}}</translation> <translation id="5694848685995373177">Disimpan dalam Drive untuk <ph name="USER_EMAIL" />.</translation> <translation id="5701749750962143173">Gunakan lokasi tepat anda untuk hasil carian Gemini yang paling tepat, bukannya lokasi anggaran berdasarkan alamat IP anda. Ketahui lebih lanjut</translation> <translation id="570209299585559496">Anda boleh menukar paparan laman lalai pada desktop dalam tetapan kemudian tetapan kandungan</translation> @@ -1273,6 +1281,7 @@ <translation id="6090760257419195752">Amaran yang diketepikan</translation> <translation id="6096965253650248286"><ph name="COUNT" /> ditemukan</translation> <translation id="6100617279104942061">Log masuk sebagai <ph name="USER_EMAIL" />. Membuka tetapan.</translation> +<translation id="6100676328067737810">Data anda akan disimpan pada Google Account anda, <ph name="USER_EMAIL" /></translation> <translation id="610083648014322104">Dapatkan jawapan yang berkaitan berdasarkan kandungan halaman yang anda lihat</translation> <translation id="6103540626693881831">Penyulitan pada Peranti</translation> <translation id="611361228753138223">Laman yang telah anda lawati pada peranti ini baru-baru ini</translation> @@ -1470,6 +1479,7 @@ <translation id="6729493062119577923">Aktiviti kumpulan tab kongsi</translation> <translation id="6732087373923685049">kamera</translation> <translation id="6746338529702829275">Semak data akaun anda</translation> +<translation id="6750456911389438250">{count,plural, =1{{count} item sejarah diimport}other{{count} item sejarah diimport}}</translation> <translation id="6755200887046212842">Urus Akaun</translation> <translation id="6755733078693946548">Akses kata laluan & kunci laluan daripada mana-mana apl</translation> <translation id="6759709389246683070">Anda boleh menyentuh dan menahan tab ini untuk menetapkan peringatan untuk melawati semula kemudian</translation> @@ -1548,6 +1558,7 @@ <translation id="707086654079606593">Urus alamat…</translation> <translation id="7080806333218412752">Menghantar URL kepada Penyemakan Imbas Selamat untuk semakan. Turut menghantar sedikit contoh halaman, muat turun, aktiviti sambungan dan maklumat sistem untuk membantu penemuan ancaman baharu. Memautkan data ini pada Google Account anda secara sementara apabila anda log masuk, untuk melindungi anda merentas apl Google.</translation> <translation id="7082853213442715471">Apabila dihidupkan, teknologi web tertentu disekat dan boleh menyebabkan sesetengah laman web dimuatkan dengan lebih perlahan atau tidak beroperasi dengan betul.</translation> +<translation id="7091023926159231962">{count,plural, =1{Tidak dapat mengimport {count} kata laluan}other{Tidak dapat mengimport {count} kata laluan}}</translation> <translation id="7095110968493193530">Kepada Google Password Manager untuk <ph name="EMAIL" /></translation> <translation id="7097046145876891318">Dalam bar alamat, ketik sejarah harga untuk melihat perubahan harga dari semasa ke semasa</translation> <translation id="7101580180124131336">Kini anda akan dapat melihat kandungan daripada dan tentang <ph name="CHANNEL_NAME" /> dalam Diikut.</translation> @@ -1790,6 +1801,7 @@ <translation id="804427445359061970">Anda dapat menemukan tab anda daripada peranti lain di sini</translation> <translation id="8049767396294520796">Apl penyemak imbas lalai</translation> <translation id="8058655154417507695">Tahun tamat tempoh</translation> +<translation id="8059312861912872211">{count,plural, =1{{count} penanda halaman}other{{count} penanda halaman}}</translation> <translation id="8059533439631660104">Meruntuhkan bahagian.</translation> <translation id="8061584726507121204">Sejarah</translation> <translation id="8069168488983557089">Dapatkan kesimpulan utama dan cerapan yang membantu anda memahami sebarang topik</translation> @@ -1865,6 +1877,7 @@ <translation id="8343993175958086504">Sandarkan bahan anda dan gunakan bahan itu pada mana-mana peranti.</translation> <translation id="8348530355586151720">Ketik menu tiga titik</translation> <translation id="8349305172487531364">Bar penanda halaman</translation> +<translation id="8361189290032177785">{count,plural, =1{{count} penanda halaman diimport}other{{count} penanda halaman diimport}}</translation> <translation id="8363484128299778310">Pemulihan sementara sekiranya berlaku masalah</translation> <translation id="8364563001733875155">Untuk menukar PIN anda, sediakan kod laluan pada peranti anda dahulu.</translation> <translation id="8366466717204352506">Penyemakan tidak pernah dijalankan</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_th.xtb b/ios/chrome/app/strings/resources/ios_strings_th.xtb index 2dbc59d9..04808d91 100644 --- a/ios/chrome/app/strings/resources/ios_strings_th.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_th.xtb
@@ -407,6 +407,7 @@ <translation id="2542268842667970959">ซ่อน "การตรวจสอบความปลอดภัย"</translation> <translation id="2551153019974022505">ข้อผิดพลาดของบัญชี</translation> <translation id="2559843230610279254">กลุ่มแท็บ, <ph name="GROUP_TITLE" />, <ph name="TABS_NUMBER" /> แท็บ</translation> +<translation id="2573117291489209663">เสร็จสิ้น</translation> <translation id="2577522251608256362">ย่านใกล้เคียง</translation> <translation id="2579713773888829241">ไดรฟ์ที่แชร์</translation> <translation id="2583688836549072561">กลุ่มแท็บ, <ph name="GROUP_TITLE" />, <ph name="TABS_NUMBER" /> แท็บ, กิจกรรมใหม่</translation> @@ -503,6 +504,7 @@ <translation id="2962516096219646456">ดูข้อมูลการป้อนข้อความอัตโนมัติทั้งหมด</translation> <translation id="2969979262385602596">ไม่สามารถลงชื่อเข้าใช้ได้ โปรดลองอีกครั้งในภายหลัง</translation> <translation id="297667759942911166">ทำงานร่วมกันในกลุ่มแท็บ</translation> +<translation id="2987670534697681860">โปรดยืนยันว่าเป็นคุณเพื่อเข้าถึงรหัสผ่านทั้งหมดในอุปกรณ์นี้</translation> <translation id="2989523299700148168">เข้าชมล่าสุด</translation> <translation id="2989805286512600854">เปิดในแท็บใหม่</translation> <translation id="2996291259634659425">สร้างรหัสผ่าน</translation> @@ -694,6 +696,7 @@ <translation id="3850952228519377137">ซ่อน "ติดตามราคาจากแท็บ"</translation> <translation id="3851938967634752633">ระบบจะลบรหัสผ่านสําหรับ <ph name="WEBSITE" />, <ph name="SECOND_WEBSITE" /> และอีก <ph name="NUMBER_OF_ACCOUNTS" /> บัญชี โดยระบบจะไม่ลบบัญชีของคุณ</translation> <translation id="3853162385423733133">ใช้และบันทึกรหัสผ่านในบัญชี Google <ph name="EMAIL" /> ต่อไป</translation> +<translation id="3853873210696342070">นำเข้า</translation> <translation id="3858860766373142691">ชื่อ</translation> <translation id="3868495844258915202">แสดง URL แบบเต็ม</translation> <translation id="3875783148670536197">แสดงวิธีการ</translation> @@ -885,6 +888,7 @@ <translation id="461440297010471931">กำลังค้นหาด้วย Google</translation> <translation id="4619564267100705184">ยืนยันว่าเป็นคุณ</translation> <translation id="4619615317237390068">แท็บจากอุปกรณ์อื่นๆ</translation> +<translation id="4621768135601674446">เปิดตัวเลือกโหมดการอ่าน</translation> <translation id="4624080227980645783">หน้าต่างใหม่ที่ไม่ระบุตัวตน</translation> <translation id="4627107755957573804">อนุญาตให้เว็บไซต์และแอปอัปเกรดบัญชีที่มีอยู่เพื่อใช้พาสคีย์</translation> <translation id="4630212057753624203">บับเบิลตัวอย่าง</translation> @@ -925,6 +929,7 @@ <translation id="4742407542027196863">จัดการรหัสผ่าน…</translation> <translation id="4744428388659507035">หากต้องการรับบุ๊กมาร์กในอุปกรณ์ทุกเครื่อง ให้เปิด "บุ๊กมาร์ก" ในการตั้งค่า</translation> <translation id="4746926359847517643">คุณกู้คืนแท็บเหล่านี้ได้เสมอในประวัติการเข้าชม</translation> +<translation id="4749529195026091676">{count,plural, =1{นำเข้าบัตร {count} ใบแล้ว}other{นำเข้าบัตร {count} ใบแล้ว}}</translation> <translation id="4751645464639803239">แท็บไม่ระบุตัวตนใหม่</translation> <translation id="4752348350801431746">ปิดการแจ้งเตือนการตรวจสอบความปลอดภัย…</translation> <translation id="4764612367328936189">องค์กรอนุญาตให้คุณลงชื่อเข้าใช้ด้วยบัญชีบางบัญชีเท่านั้น ระบบซ่อนบัญชีที่ไม่ได้รับอนุญาตไว้ <ph name="BEGIN_LINK" />ดูข้อมูลเพิ่มเติม<ph name="END_LINK" /></translation> @@ -989,6 +994,7 @@ <translation id="496392417432935267">เปิดอยู่ที่อื่น</translation> <translation id="4970724460420203313">การใช้งาน Chrome ด้วยบัญชีที่จัดการจะช่วยแยกการท่องเว็บที่เกี่ยวข้องกับองค์กรของคุณ (รวมถึงแท็บ ประวัติการเข้าชม และรหัสผ่าน) ออกจากการท่องเว็บอื่นๆ</translation> <translation id="4971735654804503942">การปกป้องเชิงรุกอย่างรวดเร็วขึ้นจากเว็บไซต์ การดาวน์โหลด และส่วนขยายที่เป็นอันตราย เตือนคุณเรื่องการละเมิดรหัสผ่าน ต้องส่งข้อมูลการท่องเว็บให้ Google</translation> +<translation id="4975364841282576329">{count,plural, =1{รายการประวัติ {count} รายการจากโปรไฟล์ส่วนตัวและโปรไฟล์งานของ Safari}other{รายการประวัติ {count} รายการจากโปรไฟล์ส่วนตัวและโปรไฟล์งานของ Safari}}</translation> <translation id="4979397965658815378">ลงชื่อเข้าใช้บัญชี Google เพื่อรับบุ๊กมาร์ก รหัสผ่าน ประวัติการเข้าชม และการตั้งค่าอื่นๆ บนอุปกรณ์ทั้งหมดของคุณ</translation> <translation id="4985921635659180565">เมื่อตั้งเวลาลบไฟล์แล้ว จะยกเลิกไม่ได้</translation> <translation id="498624032394115435">ทุกคนที่มีลิงก์จะแก้ไขแท็บทั้งหมดได้</translation> @@ -1005,6 +1011,7 @@ <translation id="5024511550058813796">อุปกรณ์ทั้งหมดที่ซิงค์ไว้จะมีประวัติการเข้าชมของคุณอยู่ ดังนั้นคุณสามารถทำสิ่งที่ดำเนินการอยู่ต่อได้</translation> <translation id="5039804452771397117">อนุญาต</translation> <translation id="5050810143224996149">แชร์รหัสผ่าน</translation> +<translation id="5055015094595227120">ตำแหน่งที่แน่นอน</translation> <translation id="5056446788882570708">พบปัญหาเมื่อ <ph name="TIME" /></translation> <translation id="5059136629401106827">ตกลง</translation> <translation id="5062321486222145940">ติดตั้ง Google ไดรฟ์</translation> @@ -1070,6 +1077,7 @@ <translation id="5295239312320826323">นำบัญชี <ph name="USER_EMAIL" /> ออกใช่ไหม</translation> <translation id="5300589172476337783">แสดง</translation> <translation id="5311061401280561833">อนุญาตให้เข้าถึงกล้องและไมโครโฟน</translation> +<translation id="5315870524563628285">ไม่มีรายการที่จะนำเข้า</translation> <translation id="5316356981864168850"><ph name="INDEX" /> จาก <ph name="NUM_SUGGESTIONS" /></translation> <translation id="5317780077021120954">บันทึก</translation> <translation id="5318298563956633672">คุณติดตามผลิตภัณฑ์นี้อยู่แล้ว</translation> @@ -1103,6 +1111,7 @@ <translation id="5457082343331641453">เพิ่มไปยังการค้นหาของคุณ</translation> <translation id="5457226814769348910">เปิดเวอร์ชันออฟไลน์</translation> <translation id="5467163657366219870">ปิด Maps เวอร์ชันก่อนเปิดตัว</translation> +<translation id="5475793109165786685">{count,plural, =0{ไม่ได้นำเข้ารหัสผ่าน}=1{นำเข้ารหัสผ่าน {count} รายการแล้ว}other{นำเข้ารหัสผ่าน {count} รายการแล้ว}}</translation> <translation id="5478327362747197944">สร้างกิจกรรมในปฏิทินโดยตรงด้วยการคลิกวันที่ในหน้าเว็บ</translation> <translation id="5482922178977937393">ต้องการรับการแจ้งเตือนเกี่ยวกับข่าว กีฬา และอื่นๆ ตามความสนใจของคุณไหม</translation> <translation id="5483838506518938965">คุณพร้อมแล้ว</translation> @@ -1168,7 +1177,9 @@ <translation id="5680012489335339762">ต้องการเปลี่ยนบัญชีไหม ระบบจะลบข้อมูลบัญชีที่ไม่ได้บันทึก</translation> <translation id="5683499062697987550">โปรดยืนยันว่าเป็นคุณเพื่อใช้และบันทึกรหัสผ่านในบัญชี Google</translation> <translation id="5684761169742812828">รหัสผ่านนี้ถูกเปิดเผยจากการละเมิดข้อมูลบนอินเทอร์เน็ต หากคุณยังไม่มีเวลาเปลี่ยนรหัสในตอนนี้ Google ขอแนะนำให้เก็บคำเตือนนี้ไว้เพื่อช่วยเตือนคุณในภายหลัง</translation> +<translation id="5688739340234490129">{count,plural, =1{บัตร {count} ใบ}other{บัตร {count} ใบ}}</translation> <translation id="5694848685995373177">บันทึกในไดรฟ์สำหรับ <ph name="USER_EMAIL" /> แล้ว</translation> +<translation id="5701749750962143173">ใช้ตำแหน่งที่แน่นอนเพื่อให้ Gemini แสดงผลลัพธ์ที่แม่นยำที่สุด แทนที่จะใช้ตำแหน่งโดยประมาณตามที่อยู่ IP ของคุณ ดูข้อมูลเพิ่มเติม</translation> <translation id="570209299585559496">คุณเปลี่ยนมุมมองเริ่มต้นของเว็บไซต์เป็นเดสก์ท็อปได้โดยไปที่ "การตั้งค่า" ตามด้วย "การตั้งค่าเนื้อหา"</translation> <translation id="5702108177581350218">เมื่อคุณแชร์สำเนาชื่อผู้ใช้และรหัสผ่าน สมาชิกในครอบครัวจะกรอกข้อมูลเหล่านั้นได้โดยใช้เครื่องมือจัดการรหัสผ่านบน Google</translation> <translation id="5704908597376970822">ลงชื่อเข้าใช้ไม่ได้</translation> @@ -1270,6 +1281,7 @@ <translation id="6090760257419195752">คำเตือนที่ถูกปิด</translation> <translation id="6096965253650248286">พบ <ph name="COUNT" /> แท็บ</translation> <translation id="6100617279104942061">ลงชื่อเข้าใช้ด้วย <ph name="USER_EMAIL" /> เปิดการตั้งค่า</translation> +<translation id="6100676328067737810">ระบบจะบันทึกข้อมูลของคุณไว้ในบัญชี Google ซึ่งก็คือ <ph name="USER_EMAIL" /></translation> <translation id="610083648014322104">รับคำตอบที่เกี่ยวข้องตามเนื้อหาของหน้าที่คุณดูอยู่</translation> <translation id="6103540626693881831">การเข้ารหัสในอุปกรณ์</translation> <translation id="611361228753138223">เว็บไซต์ที่คุณเข้าชมเมื่อเร็วๆ นี้ในอุปกรณ์เครื่องนี้</translation> @@ -1467,6 +1479,7 @@ <translation id="6729493062119577923">กิจกรรมในกลุ่มแท็บที่แชร์</translation> <translation id="6732087373923685049">กล้อง</translation> <translation id="6746338529702829275">ตรวจสอบข้อมูลบัญชีของคุณ</translation> +<translation id="6750456911389438250">{count,plural, =1{นำเข้ารายการประวัติ {count} รายการแล้ว}other{นำเข้ารายการประวัติ {count} รายการแล้ว}}</translation> <translation id="6755200887046212842">จัดการบัญชี</translation> <translation id="6755733078693946548">เข้าถึงรหัสผ่านและพาสคีย์จากแอปใดก็ได้</translation> <translation id="6759709389246683070">คุณแตะแท็บนี้ค้างไว้เพื่อตั้งการช่วยเตือนให้กลับมาดูในภายหลังได้</translation> @@ -1545,6 +1558,7 @@ <translation id="707086654079606593">จัดการที่อยู่…</translation> <translation id="7080806333218412752">ส่ง URL ให้ Google Safe Browsing ตรวจสอบ รวมถึงส่งตัวอย่างส่วนเล็กๆ ของหน้าเว็บ การดาวน์โหลด กิจกรรมของส่วนขยาย และข้อมูลระบบ เพื่อเราช่วยค้นหาภัยคุกคามใหม่ๆ ลิงก์ข้อมูลนี้กับบัญชี Google เป็นการชั่วคราวเมื่อคุณลงชื่อเข้าใช้ เพื่อปกป้องคุณในแอปต่างๆ ของ Google</translation> <translation id="7082853213442715471">เมื่อเปิดใช้ เทคโนโลยีเว็บบางอย่างจะถูกบล็อก ซึ่งอาจทำให้บางเว็บไซต์โหลดช้าลงหรือทำงานไม่ถูกต้อง</translation> +<translation id="7091023926159231962">{count,plural, =1{นำเข้ารหัสผ่าน {count} รายการไม่ได้}other{นำเข้ารหัสผ่าน {count} รายการไม่ได้}}</translation> <translation id="7095110968493193530">ที่เครื่องมือจัดการรหัสผ่านบน Google สำหรับ <ph name="EMAIL" /></translation> <translation id="7097046145876891318">ในแถบที่อยู่ ให้แตะประวัติราคาเพื่อดูการเปลี่ยนแปลงของราคาเมื่อเวลาผ่านไป</translation> <translation id="7101580180124131336">ตอนนี้คุณจะเห็นเนื้อหาจาก และเกี่ยวกับ <ph name="CHANNEL_NAME" /> ใน "กำลังติดตาม"</translation> @@ -1690,6 +1704,7 @@ <translation id="7711440461521638739">คุณไม่ได้ใช้รหัสผ่านซ้ำ</translation> <translation id="7712361583414030698">กำลังดูเวอร์ชันออฟไลน์</translation> <translation id="7719038820139380048">ลงชื่อเข้าใช้เพื่อรับเนื้อหาตามความสนใจของคุณ</translation> +<translation id="7720901330179380635">กำลังค้นหาด้วย <ph name="SEARCH_ENGINE" /></translation> <translation id="7724085059277147439">{count,plural, =1{บันทึกรายการไว้ในบัญชี Google {email} แล้ว}other{บันทึกรายการไว้ในบัญชี Google {email} แล้ว}}</translation> <translation id="7729458878441927652">หากต้องการดูแท็บจากอุปกรณ์อื่นๆ ให้ซิงค์แท็บและประวัติการเข้าชม</translation> <translation id="7730020510075123961">ไม่ ผสานรวมข้อมูล</translation> @@ -1734,6 +1749,7 @@ <translation id="7887174313503389866">ดูทัวร์ชมพร้อมคำแนะนำเกี่ยวกับการควบคุมที่สำคัญด้านความเป็นส่วนตัวและความปลอดภัย หากต้องการดูตัวเลือกเพิ่มเติม ให้ไปที่การตั้งค่าแต่ละรายการ</translation> <translation id="7887198238286927132">Chrome จะไม่ป้อนข้อความลงในช่องนี้โดยอัตโนมัติเพื่อปกป้องความเป็นส่วนตัวของคุณ</translation> <translation id="7887552845761062935">แตะสองครั้งแล้วค้างไว้เพื่อเปิดตัวเลือกเพิ่มเติม</translation> +<translation id="7889049308054594504">แชร์เนื้อหาของหน้าเว็บกับ Gemini เพื่อรับคำตอบที่เกี่ยวข้องมากขึ้น เมื่อคุณแชร์หน้าเว็บกับ Gemini ระบบจะส่งเนื้อหาและ URL แบบเต็มของหน้าเว็บไปยัง Google ดูข้อมูลเพิ่มเติม</translation> <translation id="7889910613639381518">เข้าถึงได้ง่ายและปลอดภัยด้วยวิดเจ็ตเครื่องมือจัดการรหัสผ่านบน Google</translation> <translation id="7899199123054742721">ทำเครื่องหมายทั้งหมดว่ายังไม่ได้อ่าน</translation> <translation id="7908957400505794782">แตะ<ph name="BEGIN_BOLD" />เสร็จสิ้น<ph name="END_BOLD" /></translation> @@ -1766,6 +1782,7 @@ <translation id="7993170188789685695">แตะสองครั้งเพื่อปิดการแจ้งเตือนนี้</translation> <translation id="7993619969781047893">ฟีเจอร์ในบางเว็บไซต์อาจใช้งานไม่ได้</translation> <translation id="7996239959906074962">ตั้งค่า…</translation> +<translation id="8001561107130904792">การแชร์เนื้อหาของหน้าเว็บ</translation> <translation id="800361585186029508">เปิด URL ที่ป้อนใน Google Chrome</translation> <translation id="8005666035647241369">ที่เครื่องมือจัดการรหัสผ่านบน Google ในอุปกรณ์นี้</translation> <translation id="8010488806779226127">สำรวจฟีเจอร์ที่จะช่วยให้คุณทำสิ่งต่างๆ ได้มากขึ้นขณะท่องเว็บ</translation> @@ -1784,6 +1801,7 @@ <translation id="804427445359061970">คุณจะเห็นแท็บจากอุปกรณ์อื่นๆ ที่นี่</translation> <translation id="8049767396294520796">แอปเบราว์เซอร์เริ่มต้น</translation> <translation id="8058655154417507695">ปีที่หมดอายุ</translation> +<translation id="8059312861912872211">{count,plural, =1{บุ๊กมาร์ก {count} รายการ}other{บุ๊กมาร์ก {count} รายการ}}</translation> <translation id="8059533439631660104">ยุบส่วนนี้</translation> <translation id="8061584726507121204">ประวัติการเข้าชม</translation> <translation id="8069168488983557089">รับข้อมูลสำคัญและข้อมูลเชิงลึกที่จะช่วยให้คุณเข้าใจหัวข้อต่างๆ</translation> @@ -1859,6 +1877,7 @@ <translation id="8343993175958086504">สำรองข้อมูลและใช้ในอุปกรณ์เครื่องใดก็ได้</translation> <translation id="8348530355586151720">แตะเมนู 3 จุด</translation> <translation id="8349305172487531364">แถบบุ๊กมาร์ก</translation> +<translation id="8361189290032177785">{count,plural, =1{นำเข้าบุ๊กมาร์ก {count} รายการแล้ว}other{นำเข้าบุ๊กมาร์ก {count} รายการแล้ว}}</translation> <translation id="8363484128299778310">การกู้คืนชั่วคราวในกรณีที่มีปัญหา</translation> <translation id="8364563001733875155">หากต้องการเปลี่ยน PIN ให้ตั้งรหัสผ่านในอุปกรณ์ก่อน</translation> <translation id="8366466717204352506">ไม่เคยตรวจสอบ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ur.xtb b/ios/chrome/app/strings/resources/ios_strings_ur.xtb index 0f65f3b..8387a20 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ur.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ur.xtb
@@ -885,6 +885,7 @@ <translation id="461440297010471931">Google کے ذریعے تلاش کیا جا رہا ہے</translation> <translation id="4619564267100705184">توثیق کریں کہ یہ آپ ہیں</translation> <translation id="4619615317237390068">دیگر آلات کے ٹیبز</translation> +<translation id="4621768135601674446">ریڈنگ موڈ کے اختیارات کھولیں</translation> <translation id="4624080227980645783">نئی پوشیدگی ونڈو</translation> <translation id="4627107755957573804">سائٹس اور ایپس کو پاس کیز استعمال کرنے کے لیے موجودہ اکاؤنٹس کو اپ گریڈ کرنے کی اجازت دیں</translation> <translation id="4630212057753624203">نمونہ ببل</translation> @@ -1005,6 +1006,7 @@ <translation id="5024511550058813796">آپ کو اپنے سِنک کردہ سبھی آلات پر اپنی سرگزشت دکھائی دیں گی تاکہ آپ کیا کر رہے تھے اسے جاری رکھ سکیں</translation> <translation id="5039804452771397117">اجازت دیں</translation> <translation id="5050810143224996149">پاس ورڈ کا اشتراک کریں</translation> +<translation id="5055015094595227120">قطعی مقام</translation> <translation id="5056446788882570708"><ph name="TIME" /> مسائل کا پتا چلا۔</translation> <translation id="5059136629401106827">ٹھیک ہے</translation> <translation id="5062321486222145940">Google Drive انسٹال کریں</translation> @@ -1169,6 +1171,7 @@ <translation id="5683499062697987550">اپنے Google اکاؤنٹ میں پاس ورڈز استعمال کرنے اور محفوظ کرنے کے لیے، تصدیق کریں کہ یہ آپ ہی ہیں۔</translation> <translation id="5684761169742812828">یہ پاس ورڈ انٹرنیٹ پر ڈیٹا کی خلاف ورزی میں افشاء ہو گیا۔ اگر آپ کے پاس ابھی اسے تبدیل کرنے کا وقت نہیں ہے تو Google تجویز کرتا ہے کہ بعد میں خود کو یاد دلانے کے لیے اس وارننگ کو برقرار رکھیں۔</translation> <translation id="5694848685995373177"><ph name="USER_EMAIL" /> کے لیے Drive میں محفوظ کیا گیا۔</translation> +<translation id="5701749750962143173">اپنے IP پتہ کی بنیاد پر تخمینی مقام کے بجائے، انتہائی درست Gemini نتائج کے لیے اپنے قطعی مقام کا استعمال کریں۔ مزید جانیں</translation> <translation id="570209299585559496">آپ ترتیبات پھر مواد کی ترتیبات میں ڈیفالٹ سائٹ کے منظر کو ڈیسک ٹاپ میں تبدیل کر سکتے ہیں</translation> <translation id="5702108177581350218">جب آپ اپنے صارف نام اور پاس ورڈ کی ایک کاپی کا اشتراک کرتے ہیں تو آپ کا فیملی ممبر Google پاس ورڈ مینیجر کا استعمال کرتے ہوئے انہیں پُر کر سکتا ہے۔</translation> <translation id="5704908597376970822">سائن نہیں کیا جا سکتا۔</translation> @@ -1690,6 +1693,7 @@ <translation id="7711440461521638739">آپ کوئی پاس ورڈ دوبارہ استعمال نہیں کر رہے ہیں</translation> <translation id="7712361583414030698">آپ آف لائن ورژن دیکھ رہے ہیں</translation> <translation id="7719038820139380048">اپنی دلچسپیوں پر مبنی مواد حاصل کرنے کیلئے سائن ان کریں۔</translation> +<translation id="7720901330179380635"><ph name="SEARCH_ENGINE" /> سے تلاش کیا جا رہا ہے</translation> <translation id="7724085059277147439">{count,plural, =1{آپ کے Google اکاؤنٹ میں محفوظ کردہ آئٹم، {email}}other{آپ کے Google اکاؤنٹ میں محفوظ کردہ آئٹمز، {email}}}</translation> <translation id="7729458878441927652">اپنے دیگر آلات سے ٹیبز کو دیکھنے کے لیے، اپنے ٹیبز اور سرگزشت کو مطابقت پذیر بنائیں۔</translation> <translation id="7730020510075123961">نہیں، ڈیٹا ضم کریں</translation> @@ -1734,6 +1738,7 @@ <translation id="7887174313503389866">کلیدی رازداری اور سیکیورٹی کنٹرولز کا ایک زیر رہنمائی ٹور کریں۔ مزید اختیارات کے لیے، انفرادی ترتیبات پر جائیں۔</translation> <translation id="7887198238286927132">آپ کی رازداری کے تحفظ کے لیے، Chrome اس فیلڈ کو آٹو فل نہیں کرے گا۔</translation> <translation id="7887552845761062935">مزید اختیارات کھولنے کے لیے دو بار تھپتھپائیں اور دبائے رکھیں</translation> +<translation id="7889049308054594504">مزید متعلقہ جوابات حاصل کرنے کے لیے صفحہ کے مواد کا Gemini کے ساتھ اشتراک کریں۔ جب آپ Gemini کے ساتھ کسی صفحہ کا اشتراک کرتے ہیں تو Google کو صفحہ کا مکمل مواد اور URL بھیج دیا جاتا ہے۔ مزید جانیں</translation> <translation id="7889910613639381518">Google پاس ورڈ مینیجر ویجیٹ کی مدد سے آسان اور محفوظ رسائی۔</translation> <translation id="7899199123054742721">سبھی کو بغیر پڑھا ہوا کے بطور نشان کریں</translation> <translation id="7908957400505794782"><ph name="BEGIN_BOLD" />ہوگیا<ph name="END_BOLD" /> پر تھپتھپائیں</translation> @@ -1766,6 +1771,7 @@ <translation id="7993170188789685695">اس اطلاع کو بند کرنے کے لیے دو بار تھپتھپائیں۔</translation> <translation id="7993619969781047893">کچھ سائٹس پر خصوصیات میں خلل ہو سکتا ہے۔</translation> <translation id="7996239959906074962">سیٹ اپ کریں…</translation> +<translation id="8001561107130904792">صفحہ کے مواد کا اشتراک</translation> <translation id="800361585186029508">درج کردہ URLs کو Google Chrome میں کھولتا ہے۔</translation> <translation id="8005666035647241369">اس آلے پر Google پاس ورڈ مینیجر میں</translation> <translation id="8010488806779226127">ایسی خصوصیات دریافت کریں جو براؤز کرتے وقت آپ کی زیادہ مدد کر سکیں</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_zh-TW.xtb b/ios/chrome/app/strings/resources/ios_strings_zh-TW.xtb index 9f766831..9fe6abaf 100644 --- a/ios/chrome/app/strings/resources/ios_strings_zh-TW.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_zh-TW.xtb
@@ -15,7 +15,7 @@ <translation id="1044891598689252897">網站將正常運作</translation> <translation id="104491362976654916">離線版網頁</translation> <translation id="1049743911850919806">無痕模式</translation> -<translation id="1053651653201045802">已登出。重新登入即可使用帳戶中的書籤、密碼和其他資訊。</translation> +<translation id="1053651653201045802">已登出。重新登入即可使用帳戶的書籤、密碼等資訊。</translation> <translation id="1054745118061919935">選擇繼續即表示您同意《<ph name="BEGIN_LINK" />服務條款<ph name="END_LINK" />》。</translation> <translation id="10614374240317010">一律不儲存</translation> <translation id="1062138828266376352">你的 PIN 碼並未變更。請檢查網路連線,然後再試一次</translation> @@ -241,7 +241,7 @@ <translation id="1911619930368729126">上傳至 Google 雲端硬碟</translation> <translation id="1941314575388338491">輕觸兩下即可複製。</translation> <translation id="1943478190258551035">「選單」→「設定」</translation> -<translation id="1952728750904661634">使用受管理的帳戶登入</translation> +<translation id="1952728750904661634">使用代管帳戶登入</translation> <translation id="1955773397805078763">新增付款方式</translation> <translation id="1956138802718275401">從主畫面快速查詢密碼</translation> <translation id="1959441496380398824">按住所需日期。</translation> @@ -587,7 +587,7 @@ <translation id="3348387552617855658">你可以透過這張資訊卡追蹤包裹及查看重要的配送動態。</translation> <translation id="3349031117032695619">封鎖彈出式視窗</translation> <translation id="3349676726073650389">你追蹤的網站和搜尋內容會儲存在 Google 帳戶中,隨時可以前往設定管理追蹤項目。</translation> -<translation id="3353037916374303415">「<ph name="EMAIL" />」是受管理的帳戶</translation> +<translation id="3353037916374303415"><ph name="EMAIL" /> 是代管帳戶</translation> <translation id="3365529507898144230">儲存在相簿中</translation> <translation id="3371831930909698441">有可用的翻譯。翻譯選項的位置接近畫面底部。</translation> <translation id="3377063233124932127">你儲存的書籤、密碼等內容現在會顯示在頂端。</translation> @@ -838,7 +838,7 @@ <translation id="4405320213589929829">使用網頁上的地址取得當地資訊和路線。</translation> <translation id="441218095371040430">使用鍵盤</translation> <translation id="4415276339145661267">管理你的 Google 帳戶</translation> -<translation id="4425365312778464779">這是受管理的帳戶</translation> +<translation id="4425365312778464779">這是代管帳戶</translation> <translation id="4430277756566635951">目前已選取 <ph name="EMAIL" />。請選擇帳戶。</translation> <translation id="4430505936695785931">取得在其他應用程式中儲存的密碼</translation> <translation id="4431224949908513835">請選取要填入的付款方式。</translation> @@ -972,7 +972,7 @@ <translation id="4895540042460820904">上次開啟時間</translation> <translation id="4896467949657706481">系統已關閉分頁並將你登出</translation> <translation id="4913626501929406101">你可以安全地分享密碼副本給家庭群組的成員。<ph name="BEGIN_LINK" />瞭解詳情<ph name="END_LINK" /></translation> -<translation id="4917025507570489430">登入 <ph name="USER_EMAIL" /> 後,就能使用現有的瀏覽資料。貴機構可能會看到這項資料。</translation> +<translation id="4917025507570489430">登入 <ph name="USER_EMAIL" /> 後,就能使用現有的瀏覽資料。貴機構可能會看到這些資料。</translation> <translation id="4918086044614829423">接受</translation> <translation id="4930714375720679147">開啟</translation> <translation id="4932733599132424254">日期</translation>
diff --git a/ios/google_internal/frameworks/ChromeExtensionKeychainInternal.framework.dSYM.ios.zip.sha1 b/ios/google_internal/frameworks/ChromeExtensionKeychainInternal.framework.dSYM.ios.zip.sha1 index ca6abd4c..e262776 100644 --- a/ios/google_internal/frameworks/ChromeExtensionKeychainInternal.framework.dSYM.ios.zip.sha1 +++ b/ios/google_internal/frameworks/ChromeExtensionKeychainInternal.framework.dSYM.ios.zip.sha1
@@ -1 +1 @@ -00021748a21220e6da790da8f9387f3dc6a06516 \ No newline at end of file +15bd7c0481d3906fdb7e6800424ffaee6c35dad0 \ No newline at end of file
diff --git a/ios/google_internal/frameworks/ChromeExtensionKeychainInternal.framework.dSYM.ios_asan.zip.sha1 b/ios/google_internal/frameworks/ChromeExtensionKeychainInternal.framework.dSYM.ios_asan.zip.sha1 index d7eda61..08bd1ba 100644 --- a/ios/google_internal/frameworks/ChromeExtensionKeychainInternal.framework.dSYM.ios_asan.zip.sha1 +++ b/ios/google_internal/frameworks/ChromeExtensionKeychainInternal.framework.dSYM.ios_asan.zip.sha1
@@ -1 +1 @@ -588839964741630530226e65664254c824b9dd9b \ No newline at end of file +5fd57f7d2da1e8221e9a6d7e0932c26703a44961 \ No newline at end of file
diff --git a/ios/google_internal/frameworks/ChromeInternal.framework.dSYM.ios.zip.sha1 b/ios/google_internal/frameworks/ChromeInternal.framework.dSYM.ios.zip.sha1 index 0ea0bdcc..06d548b 100644 --- a/ios/google_internal/frameworks/ChromeInternal.framework.dSYM.ios.zip.sha1 +++ b/ios/google_internal/frameworks/ChromeInternal.framework.dSYM.ios.zip.sha1
@@ -1 +1 @@ -58702da6b1856c56897f692b03473be7e799a7ce \ No newline at end of file +0963245acca740e86f8ceec741fcd76d658a5070 \ No newline at end of file
diff --git a/ios/google_internal/frameworks/ChromeInternal.framework.dSYM.ios_asan.zip.sha1 b/ios/google_internal/frameworks/ChromeInternal.framework.dSYM.ios_asan.zip.sha1 index 098d621e..ac927e9 100644 --- a/ios/google_internal/frameworks/ChromeInternal.framework.dSYM.ios_asan.zip.sha1 +++ b/ios/google_internal/frameworks/ChromeInternal.framework.dSYM.ios_asan.zip.sha1
@@ -1 +1 @@ -9d73ca441ec853aee28d009ec113529dfebe5f12 \ No newline at end of file +c417d0fa9792a5391169eb9da0d42398f82c6104 \ No newline at end of file
diff --git a/ios/google_internal/frameworks/ChromeSSOInternal.framework.dSYM.ios.zip.sha1 b/ios/google_internal/frameworks/ChromeSSOInternal.framework.dSYM.ios.zip.sha1 index 86f6e59..d32c3ea9 100644 --- a/ios/google_internal/frameworks/ChromeSSOInternal.framework.dSYM.ios.zip.sha1 +++ b/ios/google_internal/frameworks/ChromeSSOInternal.framework.dSYM.ios.zip.sha1
@@ -1 +1 @@ -a72510f727236025840994acf85fa7ebbacb00e0 \ No newline at end of file +5e0ad218befee411499b0f70cae216d5faae70a6 \ No newline at end of file
diff --git a/ios/google_internal/frameworks/ChromeSSOInternal.framework.dSYM.ios_asan.zip.sha1 b/ios/google_internal/frameworks/ChromeSSOInternal.framework.dSYM.ios_asan.zip.sha1 index 33e59fb..6e17f0f 100644 --- a/ios/google_internal/frameworks/ChromeSSOInternal.framework.dSYM.ios_asan.zip.sha1 +++ b/ios/google_internal/frameworks/ChromeSSOInternal.framework.dSYM.ios_asan.zip.sha1
@@ -1 +1 @@ -53911d521ef854d5b71a4b186944f9dbf9d1b5c2 \ No newline at end of file +d4bf416cf75fcaa6ed778b4c926d104864fa677b \ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_extension_keychain_internal_dynamic_framework.ios.zip.sha1 b/ios/google_internal/frameworks/chrome_extension_keychain_internal_dynamic_framework.ios.zip.sha1 index ef278d3b..2424802 100644 --- a/ios/google_internal/frameworks/chrome_extension_keychain_internal_dynamic_framework.ios.zip.sha1 +++ b/ios/google_internal/frameworks/chrome_extension_keychain_internal_dynamic_framework.ios.zip.sha1
@@ -1 +1 @@ -7b8ca6cf63fe3d2bf670bc399d9a7285c7952040 \ No newline at end of file +f7c318e2bf8390fbb0bd9679f6fccd68f55dcbd3 \ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_extension_keychain_internal_dynamic_framework.ios_asan.zip.sha1 b/ios/google_internal/frameworks/chrome_extension_keychain_internal_dynamic_framework.ios_asan.zip.sha1 index 48a6053..7e659321 100644 --- a/ios/google_internal/frameworks/chrome_extension_keychain_internal_dynamic_framework.ios_asan.zip.sha1 +++ b/ios/google_internal/frameworks/chrome_extension_keychain_internal_dynamic_framework.ios_asan.zip.sha1
@@ -1 +1 @@ -c2124771328dc86c0d8afaa67eae3c7b0bce9bb6 \ No newline at end of file +25afa3a5be6930bd100c714ab5fd90eec49a6ed9 \ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_extension_keychain_internal_dynamic_framework.iossimulator.zip.sha1 b/ios/google_internal/frameworks/chrome_extension_keychain_internal_dynamic_framework.iossimulator.zip.sha1 index 4f9c3c2..e10cb17 100644 --- a/ios/google_internal/frameworks/chrome_extension_keychain_internal_dynamic_framework.iossimulator.zip.sha1 +++ b/ios/google_internal/frameworks/chrome_extension_keychain_internal_dynamic_framework.iossimulator.zip.sha1
@@ -1 +1 @@ -be7890ebd6390ae78aecff0a16c14b0e35435ef8 \ No newline at end of file +5a30bdad4c3268a10333440c5bde85272afe3f0e \ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_extension_keychain_internal_dynamic_framework.iossimulator_asan.zip.sha1 b/ios/google_internal/frameworks/chrome_extension_keychain_internal_dynamic_framework.iossimulator_asan.zip.sha1 index fd62601..e55b6fda 100644 --- a/ios/google_internal/frameworks/chrome_extension_keychain_internal_dynamic_framework.iossimulator_asan.zip.sha1 +++ b/ios/google_internal/frameworks/chrome_extension_keychain_internal_dynamic_framework.iossimulator_asan.zip.sha1
@@ -1 +1 @@ -7221e2c50c85b4853267c4085039db0f3cd193ee \ No newline at end of file +f58cd5964e1176163a22f180307c0d481782f0b7 \ No newline at end of file
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 6217b076..0bba8a40 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 @@ -1e9987388ee0fc29e822b0e803f34af9b4dc330c \ No newline at end of file +8a738b2759974c21e07b7e83319ff014733e5b03 \ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.ios_asan.zip.sha1 b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.ios_asan.zip.sha1 index fe02e1b..5581ccf 100644 --- a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.ios_asan.zip.sha1 +++ b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.ios_asan.zip.sha1
@@ -1 +1 @@ -3dc0695a4522f34942e97b900c79ab970f675278 \ No newline at end of file +fb7c38cedf2fc04c863f69e48b4a2eeec1097969 \ 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 c9c3435..5c7944a 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 @@ -e55c451d8e292ed06896b32a11337e74d97b51ed \ No newline at end of file +e3fe232d021cc70ea9924c211fbf8b78208aa0be \ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.iossimulator_asan.zip.sha1 b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.iossimulator_asan.zip.sha1 index 581a595..57fcb59c 100644 --- a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.iossimulator_asan.zip.sha1 +++ b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.iossimulator_asan.zip.sha1
@@ -1 +1 @@ -ddd9bea1d24cc9e51375325489bf97c699f58126 \ No newline at end of file +cfdec03545164793f103ada65aee7a0a75093d87 \ 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 b3fdfaa1..86b880be 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 @@ -ca0222cc4a8a89f24ddd1a0ec8319b6aecc1a545 \ No newline at end of file +335c671291b755e70be163b6b8f4c0ff73b0fe49 \ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.ios_asan.zip.sha1 b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.ios_asan.zip.sha1 index 0ec2aaba..29e9748c 100644 --- a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.ios_asan.zip.sha1 +++ b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.ios_asan.zip.sha1
@@ -1 +1 @@ -e0fc83a8ba2f11851717102ca007e89507447c6c \ No newline at end of file +36d126c5c14b2714e90b2e1a4b0c0fab73195f23 \ 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 b18af139..9640eb8e 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 @@ -b681e0e7760b6101999cb2718d7b31e7a3171ef2 \ No newline at end of file +ca5dc002b0b5cf2d5ccae2562db90ca6f7551c7c \ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.iossimulator_asan.zip.sha1 b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.iossimulator_asan.zip.sha1 index 38ab6b8..862461b 100644 --- a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.iossimulator_asan.zip.sha1 +++ b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.iossimulator_asan.zip.sha1
@@ -1 +1 @@ -e3ed20b43dca6a666712358cd145a21ecca3b729 \ No newline at end of file +95e55441e64e8b268ff97e83b13dc8deea53d064 \ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_test_internal_dynamic_framework.ios.zip.sha1 b/ios/google_internal/frameworks/chrome_test_internal_dynamic_framework.ios.zip.sha1 index 53dfdc6..72c964c9 100644 --- a/ios/google_internal/frameworks/chrome_test_internal_dynamic_framework.ios.zip.sha1 +++ b/ios/google_internal/frameworks/chrome_test_internal_dynamic_framework.ios.zip.sha1
@@ -1 +1 @@ -b320d6ce5e21045c09c3206ed65437ed4cab335e \ No newline at end of file +d00f609fa383646887d5148bb22f63749ec9be02 \ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_test_internal_dynamic_framework.iossimulator.zip.sha1 b/ios/google_internal/frameworks/chrome_test_internal_dynamic_framework.iossimulator.zip.sha1 index 924377f0..6966a66 100644 --- a/ios/google_internal/frameworks/chrome_test_internal_dynamic_framework.iossimulator.zip.sha1 +++ b/ios/google_internal/frameworks/chrome_test_internal_dynamic_framework.iossimulator.zip.sha1
@@ -1 +1 @@ -b076a0cc2ebc42cbbe3ed05633a620cd02c81737 \ No newline at end of file +d55e065f7b7ed0e7dba7ff74c8a3165ccf4994d4 \ 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 86323bb..5454b7c8 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 @@ -2b7e029b561ffd2af08ba05d7a66a27fa08480b8 \ No newline at end of file +505b0ad77c065c056753d805e760f3960411bdad \ No newline at end of file
diff --git a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.ios_asan.zip.sha1 b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.ios_asan.zip.sha1 index 3eae7a9..90f10fa 100644 --- a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.ios_asan.zip.sha1 +++ b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.ios_asan.zip.sha1
@@ -1 +1 @@ -c59ca502e71bc06f766f1c3ebbadc0f560ea4743 \ No newline at end of file +dc5c007d96acec342670dd2f4a542e491011eb52 \ 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 451ade995..ad11f86 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 @@ -48312400f099614d79aead569207014a4f06dfe9 \ No newline at end of file +84300fef47d72e273ff69fd3b217f4685714c422 \ No newline at end of file
diff --git a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.iossimulator_asan.zip.sha1 b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.iossimulator_asan.zip.sha1 index 6aa49f5f..7e474792 100644 --- a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.iossimulator_asan.zip.sha1 +++ b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.iossimulator_asan.zip.sha1
@@ -1 +1 @@ -6dae4ddffae0c4b28b17911b924e240bf6316d4d \ No newline at end of file +9b18b8389653b533c3adbc8a765536ff22aaf328 \ 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 38aebdd..b428c82f 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 @@ -030f449a9753f1e9499cc1144cc2bc48194ee231 \ No newline at end of file +f7b552fc9bbd38ce0bfdf1c3257ff4fd5292a7f9 \ No newline at end of file
diff --git a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.ios_asan.zip.sha1 b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.ios_asan.zip.sha1 index 739ffd86..cd1f8d9 100644 --- a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.ios_asan.zip.sha1 +++ b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.ios_asan.zip.sha1
@@ -1 +1 @@ -5caba050ae354997a7b14f662323b6282cd12cd7 \ No newline at end of file +de5f1d944b72a5b421cf337ea5aac6913191c18b \ 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 256519a7f..e1c9de9 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 @@ -c1ca30e0fa8b1efbade79d84142ed6c3cf7d7818 \ No newline at end of file +fe2cfad7a61273b0992722310e9797331c5551c1 \ No newline at end of file
diff --git a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.iossimulator_asan.zip.sha1 b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.iossimulator_asan.zip.sha1 index 7f3cc1f..af9acc40 100644 --- a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.iossimulator_asan.zip.sha1 +++ b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.iossimulator_asan.zip.sha1
@@ -1 +1 @@ -5e86e4058daa95c211e5e788c18c9f3d591effdb \ No newline at end of file +7c02fd15b9af5cd1776c0cd5978fb66272c02628 \ No newline at end of file
diff --git a/ios_internal b/ios_internal index 3e661cf..2d4d8ac 160000 --- a/ios_internal +++ b/ios_internal
@@ -1 +1 @@ -Subproject commit 3e661cf76135040886141d1d6085573a7b2669f1 +Subproject commit 2d4d8ac1a5ffe6e4f9c0f2439e2829094de02eb9
diff --git a/net/data/websocket/DIR_METADATA b/net/data/websocket/DIR_METADATA index 8f620091..1138724 100644 --- a/net/data/websocket/DIR_METADATA +++ b/net/data/websocket/DIR_METADATA
@@ -1,7 +1,7 @@ monorail: { component: "Blink>Network>WebSockets" } -team_email: "blink-network-dev@chromium.org" +team_email: "net-dev@chromium.org" buganizer_public: { component_id: 1456696 }
diff --git a/net/websockets/DIR_METADATA b/net/websockets/DIR_METADATA index 8f620091..1138724 100644 --- a/net/websockets/DIR_METADATA +++ b/net/websockets/DIR_METADATA
@@ -1,7 +1,7 @@ monorail: { component: "Blink>Network>WebSockets" } -team_email: "blink-network-dev@chromium.org" +team_email: "net-dev@chromium.org" buganizer_public: { component_id: 1456696 }
diff --git a/testing/variations/fieldtrial_testing_config.json b/testing/variations/fieldtrial_testing_config.json index 7f5e8e16..f916e3f 100644 --- a/testing/variations/fieldtrial_testing_config.json +++ b/testing/variations/fieldtrial_testing_config.json
@@ -5841,24 +5841,6 @@ ] } ], - "ClipboardChangeEvent": [ - { - "platforms": [ - "android", - "chromeos", - "linux", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "ClipboardChangeEvent" - ] - } - ] - } - ], "ClipboardDeemphasisAndroid": [ { "platforms": [
diff --git a/third_party/blink/public/mojom/websockets/DIR_METADATA b/third_party/blink/public/mojom/websockets/DIR_METADATA index 8f620091..1138724 100644 --- a/third_party/blink/public/mojom/websockets/DIR_METADATA +++ b/third_party/blink/public/mojom/websockets/DIR_METADATA
@@ -1,7 +1,7 @@ monorail: { component: "Blink>Network>WebSockets" } -team_email: "blink-network-dev@chromium.org" +team_email: "net-dev@chromium.org" buganizer_public: { component_id: 1456696 }
diff --git a/third_party/blink/renderer/bindings/generated_in_core.gni b/third_party/blink/renderer/bindings/generated_in_core.gni index 6fc4020..a70b64b 100644 --- a/third_party/blink/renderer/bindings/generated_in_core.gni +++ b/third_party/blink/renderer/bindings/generated_in_core.gni
@@ -1320,6 +1320,8 @@ "$root_gen_dir/third_party/blink/renderer/bindings/core/v8/v8_page_transition_event.h", "$root_gen_dir/third_party/blink/renderer/bindings/core/v8/v8_part.cc", "$root_gen_dir/third_party/blink/renderer/bindings/core/v8/v8_part.h", + "$root_gen_dir/third_party/blink/renderer/bindings/core/v8/v8_patch_status.cc", + "$root_gen_dir/third_party/blink/renderer/bindings/core/v8/v8_patch_status.h", "$root_gen_dir/third_party/blink/renderer/bindings/core/v8/v8_performance.cc", "$root_gen_dir/third_party/blink/renderer/bindings/core/v8/v8_performance.h", "$root_gen_dir/third_party/blink/renderer/bindings/core/v8/v8_performance_container_timing.cc",
diff --git a/third_party/blink/renderer/bindings/idl_in_core.gni b/third_party/blink/renderer/bindings/idl_in_core.gni index c4b0107d..7ce6db88 100644 --- a/third_party/blink/renderer/bindings/idl_in_core.gni +++ b/third_party/blink/renderer/bindings/idl_in_core.gni
@@ -556,6 +556,7 @@ "//third_party/blink/renderer/core/offscreencanvas/offscreen_canvas.idl", "//third_party/blink/renderer/core/page/color_page_popup_controller.idl", "//third_party/blink/renderer/core/page/page_popup_controller.idl", + "//third_party/blink/renderer/core/patching/patch_status.idl", "//third_party/blink/renderer/core/permissions_policy/feature_policy.idl", "//third_party/blink/renderer/core/resize_observer/resize_observer.idl", "//third_party/blink/renderer/core/resize_observer/resize_observer_entry.idl",
diff --git a/third_party/blink/renderer/core/BUILD.gn b/third_party/blink/renderer/core/BUILD.gn index 23548dd..f70ce69 100644 --- a/third_party/blink/renderer/core/BUILD.gn +++ b/third_party/blink/renderer/core/BUILD.gn
@@ -58,6 +58,7 @@ import("//third_party/blink/renderer/core/origin_trials/build.gni") import("//third_party/blink/renderer/core/page/build.gni") import("//third_party/blink/renderer/core/paint/build.gni") +import("//third_party/blink/renderer/core/patching/build.gni") import("//third_party/blink/renderer/core/permissions_policy/build.gni") import("//third_party/blink/renderer/core/preferences/build.gni") import("//third_party/blink/renderer/core/resize_observer/build.gni") @@ -273,6 +274,7 @@ sources += rebase_path(blink_core_sources_view_transition, "", "view_transition") sources += rebase_path(blink_core_sources_script_tools, "", "script_tools") + sources += rebase_path(blink_core_sources_patching, "", "patching") sources += rebase_path(blink_core_sources_dom, "", "dom") sources += rebase_path(blink_core_sources_editing, "", "editing") sources += rebase_path(blink_core_sources_events, "", "events")
diff --git a/third_party/blink/renderer/core/clipboard/system_clipboard.cc b/third_party/blink/renderer/core/clipboard/system_clipboard.cc index 8682ec0..d2326163 100644 --- a/third_party/blink/renderer/core/clipboard/system_clipboard.cc +++ b/third_party/blink/renderer/core/clipboard/system_clipboard.cc
@@ -679,10 +679,6 @@ } void SystemClipboard::StartListening(LocalDOMWindow* window) { - if (!base::FeatureList::IsEnabled(features::kClipboardChangeEvent)) { - return; - } - // If we're already listening (receiver is bound), no need to register again if (!clipboard_listener_receiver_.is_bound() && clipboard_.is_bound()) { clipboard_->RegisterClipboardListener(
diff --git a/third_party/blink/renderer/core/clipboard/system_clipboard_test.cc b/third_party/blink/renderer/core/clipboard/system_clipboard_test.cc index 85e5a2d..a450853a 100644 --- a/third_party/blink/renderer/core/clipboard/system_clipboard_test.cc +++ b/third_party/blink/renderer/core/clipboard/system_clipboard_test.cc
@@ -571,9 +571,6 @@ } TEST_F(SystemClipboardTest, ClipboardChangeNotification) { - // GIVEN: Feature flag is enabled - base::test::ScopedFeatureList scoped_feature_list; - scoped_feature_list.InitAndEnableFeature(features::kClipboardChangeEvent); auto* mock_controller = controller(); // EXPECT: Controller should receive exactly one update notification @@ -589,9 +586,6 @@ } TEST_F(SystemClipboardTest, ClipboardChangeNotification_MultipleRegistrations) { - // GIVEN: Feature flag is enabled - base::test::ScopedFeatureList scoped_feature_list; - scoped_feature_list.InitAndEnableFeature(features::kClipboardChangeEvent); auto* mock_controller = controller(); // EXPECT: Controller should receive notifications after each registration
diff --git a/third_party/blink/renderer/core/dom/element.cc b/third_party/blink/renderer/core/dom/element.cc index d69d1d3..445da15 100644 --- a/third_party/blink/renderer/core/dom/element.cc +++ b/third_party/blink/renderer/core/dom/element.cc
@@ -215,6 +215,7 @@ #include "third_party/blink/renderer/core/page/spatial_navigation.h" #include "third_party/blink/renderer/core/paint/paint_layer.h" #include "third_party/blink/renderer/core/paint/paint_layer_scrollable_area.h" +#include "third_party/blink/renderer/core/patching/patch_supplement.h" #include "third_party/blink/renderer/core/probe/core_probes.h" #include "third_party/blink/renderer/core/resize_observer/resize_observation.h" #include "third_party/blink/renderer/core/resize_observer/resize_observer_size.h" @@ -3757,6 +3758,16 @@ return kInsertionDone; } +// https://github.com/WICG/declarative-partial-updates +DOMPatchStatus* Element::currentPatch() { + PatchSupplement* supplement = PatchSupplement::FromIfExists(GetDocument()); + if (!supplement) { + return nullptr; + } + CHECK(RuntimeEnabledFeatures::DocumentPatchingEnabled()); + return supplement->CurrentPatchFor(*this); +} + void Element::MovedFrom(ContainerNode& old_parent) { Node::MovedFrom(old_parent);
diff --git a/third_party/blink/renderer/core/dom/element.h b/third_party/blink/renderer/core/dom/element.h index c0e7bf06..4b3caa7 100644 --- a/third_party/blink/renderer/core/dom/element.h +++ b/third_party/blink/renderer/core/dom/element.h
@@ -86,6 +86,7 @@ class CSSStyleDeclaration; class CustomElementDefinition; class CustomElementRegistry; +class DOMPatchStatus; class DOMRect; class DOMRectList; class DOMStringMap; @@ -1165,7 +1166,6 @@ // this triggering element. (E.g. if the popover is just open on its own and // wasn't triggered by this invoker, this will return nullptr.) HTMLElement* GetOpenPopoverTarget() const; - // Represents the current state of an interest invoker. enum class InterestState { // No interest. @@ -1507,6 +1507,9 @@ void setEditContext(EditContext* editContext, ExceptionState&); EditContext* editContext() const; + // https://github.com/WICG/declarative-partial-updates + DOMPatchStatus* currentPatch(); + // Helpers for V8DOMActivityLogger::logEvent. They call logEvent only if // the element is isConnected() and the context is an isolated world. void LogAddElementIfIsolatedWorldAndInDocument(const char element[],
diff --git a/third_party/blink/renderer/core/dom/element.idl b/third_party/blink/renderer/core/dom/element.idl index eb22e21..44fb1a2 100644 --- a/third_party/blink/renderer/core/dom/element.idl +++ b/third_party/blink/renderer/core/dom/element.idl
@@ -181,6 +181,9 @@ // Scoped Custom Element Registries [RuntimeEnabled=ScopedCustomElementRegistry] readonly attribute CustomElementRegistry? customElementRegistry; + + // Declarative document updates + [RuntimeEnabled=DocumentPatching] readonly attribute PatchStatus? currentPatch; }; Element includes ParentNode;
diff --git a/third_party/blink/renderer/core/editing/frame_selection.cc b/third_party/blink/renderer/core/editing/frame_selection.cc index bf9810d..bff538d2 100644 --- a/third_party/blink/renderer/core/editing/frame_selection.cc +++ b/third_party/blink/renderer/core/editing/frame_selection.cc
@@ -608,6 +608,23 @@ ComputeVisibleSelectionInFlatTree().End() >= focused_position) return true; + // Selection has focus if current selection matches the focused + // element's visible position and the focused element is focusable but not + // editable (e.g., tabindex="-1"). This handles cases where text selection + // should be visible in focusable but non-editable elements. + if (RuntimeEnabledFeatures:: + SelectionAndFocusedVisiblePositionMatchEnabled()) { + if (GetDocument().FocusedElement() && focused_element->IsFocusable() && + !IsEditable(*focused_element)) { + const VisiblePositionInFlatTree focused_visible_position = + CreateVisiblePosition(focused_position); + if (focused_visible_position.DeepEquivalent() == + ComputeVisibleSelectionInFlatTree().Start()) { + return true; + } + } + } + bool is_editable = IsEditable(*current); const TreeScope* tree_scope = ¤t->GetTreeScope(); do {
diff --git a/third_party/blink/renderer/core/fetch/COMMON_METADATA b/third_party/blink/renderer/core/fetch/COMMON_METADATA index 31ad696..254c57c5 100644 --- a/third_party/blink/renderer/core/fetch/COMMON_METADATA +++ b/third_party/blink/renderer/core/fetch/COMMON_METADATA
@@ -1,7 +1,7 @@ monorail: { component: "Blink>Network>FetchAPI" } -team_email: "blink-network-dev@chromium.org" +team_email: "net-dev@chromium.org" buganizer_public: { component_id: 1456853 }
diff --git a/third_party/blink/renderer/core/html/canvas/canvas_rendering_context.h b/third_party/blink/renderer/core/html/canvas/canvas_rendering_context.h index 48e518f..4ceb36a 100644 --- a/third_party/blink/renderer/core/html/canvas/canvas_rendering_context.h +++ b/third_party/blink/renderer/core/html/canvas/canvas_rendering_context.h
@@ -200,6 +200,7 @@ NOTREACHED(); } virtual bool IsPaintable() const = 0; + virtual bool IsHibernating() const { return false; } void DidDraw(CanvasPerformanceMonitor::DrawType draw_type) { const CanvasRenderingContextHost* const host = Host(); return DidDraw(host ? SkIRect::MakeWH(host->width(), host->height())
diff --git a/third_party/blink/renderer/core/html/canvas/canvas_rendering_context_host.cc b/third_party/blink/renderer/core/html/canvas/canvas_rendering_context_host.cc index 372cfe6..a6a2eda8 100644 --- a/third_party/blink/renderer/core/html/canvas/canvas_rendering_context_host.cc +++ b/third_party/blink/renderer/core/html/canvas/canvas_rendering_context_host.cc
@@ -178,12 +178,10 @@ } bool CanvasRenderingContextHost::IsAccelerated() const { - if (IsHibernating()) { - return false; - } - if (RenderingContext()) { - return RenderingContext()->IsAccelerated(); + return RenderingContext()->IsHibernating() + ? false + : RenderingContext()->IsAccelerated(); } // Whether or not to accelerate is not yet resolved, the canvas cannot be
diff --git a/third_party/blink/renderer/core/html/canvas/canvas_rendering_context_host.h b/third_party/blink/renderer/core/html/canvas/canvas_rendering_context_host.h index 987dc87..ef38d321 100644 --- a/third_party/blink/renderer/core/html/canvas/canvas_rendering_context_host.h +++ b/third_party/blink/renderer/core/html/canvas/canvas_rendering_context_host.h
@@ -105,8 +105,6 @@ bool IsValidImageSize() const; bool IsPaintable() const; - virtual bool IsHibernating() const { return false; } - virtual bool LowLatencyEnabled() const { return false; } virtual void SetTransferToGPUTextureWasInvoked() {}
diff --git a/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc b/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc index 03dfca9..a0a2b3e 100644 --- a/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc +++ b/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc
@@ -370,7 +370,7 @@ } // If hibernating but not hidden, we want to wake up from hibernation. - if (IsHibernating() && !IsPageVisible()) { + if (RenderingContext()->IsHibernating() && !IsPageVisible()) { return false; } @@ -1553,7 +1553,7 @@ bool HTMLCanvasElement::IsCompositedForCanvas2D() const { CHECK(IsRenderingContext2D()); - if (IsHibernating()) { + if (RenderingContext()->IsHibernating()) { return false; } @@ -1785,7 +1785,7 @@ } void HTMLCanvasElement::DiscardResources() { - if (IsHibernating()) { + if (RenderingContext() && RenderingContext()->IsHibernating()) { // Ensure consistency of metrics reporting across the change from the // previous code flow. CanvasHibernationHandler::ReportHibernationEvent( @@ -2241,12 +2241,6 @@ return LayoutObject::GetImageOrientation(GetLayoutObject()); } -// Temporary plumbing -bool HTMLCanvasElement::IsHibernating() const { - CanvasHibernationHandler* hibernation_handler = GetHibernationHandler(); - return hibernation_handler && hibernation_handler->IsHibernating(); -} - void HTMLCanvasElement::SetTransferToGPUTextureWasInvoked() { TransferToGPUTextureInvokedSupplement::From(GetDocument()) .SetTransferToGPUTextureWasInvoked();
diff --git a/third_party/blink/renderer/core/html/canvas/html_canvas_element.h b/third_party/blink/renderer/core/html/canvas/html_canvas_element.h index 689e7220..3a7dc33 100644 --- a/third_party/blink/renderer/core/html/canvas/html_canvas_element.h +++ b/third_party/blink/renderer/core/html/canvas/html_canvas_element.h
@@ -268,7 +268,6 @@ size_t GetMemoryUsage() const override; bool ShouldAccelerate2dContext() const override; bool LowLatencyEnabled() const override; - bool IsHibernating() const override; void SetTransferToGPUTextureWasInvoked() override; UkmParameters GetUkmParameters() override;
diff --git a/third_party/blink/renderer/core/html/html_template_element.cc b/third_party/blink/renderer/core/html/html_template_element.cc index 733f1949..c50a95c 100644 --- a/third_party/blink/renderer/core/html/html_template_element.cc +++ b/third_party/blink/renderer/core/html/html_template_element.cc
@@ -35,7 +35,9 @@ #include "third_party/blink/renderer/core/dom/node_cloning_data.h" #include "third_party/blink/renderer/core/dom/template_content_document_fragment.h" #include "third_party/blink/renderer/core/frame/web_feature.h" +#include "third_party/blink/renderer/core/patching/patch_supplement.h" #include "third_party/blink/renderer/platform/instrumentation/use_counter.h" +#include "third_party/blink/renderer/platform/runtime_enabled_features.h" namespace blink { @@ -78,7 +80,26 @@ void HTMLTemplateElement::Trace(Visitor* visitor) const { visitor->Trace(content_); visitor->Trace(override_insertion_target_); + visitor->Trace(patch_status_); HTMLElement::Trace(visitor); } +void HTMLTemplateElement::BeginPatch(ContainerNode& target) { + SetOverrideInsertionTarget(target); + // A patch replaces the existing children of the target. + target.RemoveChildren(); + patch_status_ = MakeGarbageCollected<DOMPatchStatus>(this, &target); + PatchSupplement::From(target.GetDocument())->DidStart(target, patch_status_); +} + +void HTMLTemplateElement::FinishParsingChildren() { + HTMLElement::FinishParsingChildren(); + if (!patch_status_) { + return; + } + CHECK(RuntimeEnabledFeatures::DocumentPatchingEnabled()); + patch_status_->OnComplete(); + patch_status_.Release(); +} + } // namespace blink
diff --git a/third_party/blink/renderer/core/html/html_template_element.h b/third_party/blink/renderer/core/html/html_template_element.h index 7f5c917..efc2149b 100644 --- a/third_party/blink/renderer/core/html/html_template_element.h +++ b/third_party/blink/renderer/core/html/html_template_element.h
@@ -34,6 +34,7 @@ #include "third_party/blink/renderer/core/core_export.h" #include "third_party/blink/renderer/core/dom/template_content_document_fragment.h" #include "third_party/blink/renderer/core/html/html_element.h" +#include "third_party/blink/renderer/core/patching/dom_patch_status.h" #include "third_party/blink/renderer/platform/runtime_enabled_features.h" namespace blink { @@ -76,14 +77,19 @@ override_insertion_target_ = ⌖ } + void ResetOverrideInsertionTarget() { override_insertion_target_.Release(); } + + void BeginPatch(ContainerNode& target); + private: void CloneNonAttributePropertiesFrom(const Element&, NodeCloningData&) override; void DidMoveToNewDocument(Document& old_document) override; - + void FinishParsingChildren() override; mutable Member<TemplateContentDocumentFragment> content_; Member<ContainerNode> override_insertion_target_; + Member<DOMPatchStatus> patch_status_; }; } // namespace blink
diff --git a/third_party/blink/renderer/core/html/parser/html_construction_site.cc b/third_party/blink/renderer/core/html/parser/html_construction_site.cc index 0e5f844..4a0ec08 100644 --- a/third_party/blink/renderer/core/html/parser/html_construction_site.cc +++ b/third_party/blink/renderer/core/html/parser/html_construction_site.cc
@@ -920,12 +920,9 @@ // Like with shadowrootmode, the template is discarded. should_attach_template = false; - // A patch replaces the existing children of the target. - patch_target->RemoveChildren(); - // From now on, parsed children of the template are inserted directly to // the patch target. - template_element->SetOverrideInsertionTarget(*patch_target); + template_element->BeginPatch(*patch_target); } } }
diff --git a/third_party/blink/renderer/core/loader/link_loader_test.cc b/third_party/blink/renderer/core/loader/link_loader_test.cc index 5df3904..d01bca6c 100644 --- a/third_party/blink/renderer/core/loader/link_loader_test.cc +++ b/third_party/blink/renderer/core/loader/link_loader_test.cc
@@ -510,7 +510,7 @@ EXPECT_EQ(kNotParserInserted, request.Options().ParserState()); EXPECT_EQ(params_->expected_credentials_mode, request.Options().CredentialsMode()); - EXPECT_EQ(Referrer::NoReferrer(), request.ReferrerString()); + EXPECT_EQ(Referrer::ClientReferrerString(), request.ReferrerString()); EXPECT_EQ(params_->referrer_policy, request.Options().GetReferrerPolicy()); EXPECT_EQ(params_->integrity, request.Options().GetIntegrityAttributeValue());
diff --git a/third_party/blink/renderer/core/loader/preload_helper.cc b/third_party/blink/renderer/core/loader/preload_helper.cc index e2b9466..9f048147 100644 --- a/third_party/blink/renderer/core/loader/preload_helper.cc +++ b/third_party/blink/renderer/core/loader/preload_helper.cc
@@ -700,7 +700,7 @@ params.referrer_policy, mojom::blink::FetchPriorityHint::kAuto, RenderBlockingBehavior::kNonBlocking), - Referrer::NoReferrer(), TextPosition::MinimumPosition(), + Referrer::ClientReferrerString(), TextPosition::MinimumPosition(), ModuleImportPhase::kEvaluation); // Step 13. "Fetch a modulepreload module script graph given url, destination,
diff --git a/third_party/blink/renderer/core/patching/OWNERS b/third_party/blink/renderer/core/patching/OWNERS new file mode 100644 index 0000000..4019a21 --- /dev/null +++ b/third_party/blink/renderer/core/patching/OWNERS
@@ -0,0 +1,2 @@ +nrosenthal@chromium.org +foolip@chromium.org \ No newline at end of file
diff --git a/third_party/blink/renderer/core/patching/build.gni b/third_party/blink/renderer/core/patching/build.gni new file mode 100644 index 0000000..407f555 --- /dev/null +++ b/third_party/blink/renderer/core/patching/build.gni
@@ -0,0 +1,10 @@ +# Copyright 2025 The Chromium Authors +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +blink_core_sources_patching = [ + "dom_patch_status.cc", + "dom_patch_status.h", + "patch_supplement.cc", + "patch_supplement.h", +]
diff --git a/third_party/blink/renderer/core/patching/dom_patch_status.cc b/third_party/blink/renderer/core/patching/dom_patch_status.cc new file mode 100644 index 0000000..81776b4 --- /dev/null +++ b/third_party/blink/renderer/core/patching/dom_patch_status.cc
@@ -0,0 +1,44 @@ +// Copyright 2025 The Chromium Authors +// 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/core/patching/dom_patch_status.h" + +#include "third_party/blink/renderer/bindings/core/v8/idl_types.h" +#include "third_party/blink/renderer/bindings/core/v8/v8_binding_for_core.h" +#include "third_party/blink/renderer/core/html/html_template_element.h" +#include "third_party/blink/renderer/core/patching/patch_supplement.h" +#include "third_party/blink/renderer/platform/bindings/script_state.h" +#include "third_party/blink/renderer/platform/bindings/script_wrappable.h" + +namespace blink { +DOMPatchStatus::DOMPatchStatus(HTMLTemplateElement* source, + ContainerNode* target) + : source_(source), + target_(target), + finished_( + MakeGarbageCollected<ScriptPromiseProperty<IDLUndefined, IDLAny>>( + target->GetDocument().GetExecutionContext())) {} + +ScriptPromise<IDLUndefined> DOMPatchStatus::finished( + ScriptState* script_state) { + return finished_->Promise(script_state->World()); +} + +void DOMPatchStatus::OnComplete() { + finished_->ResolveWithUndefined(); + PatchSupplement::From(GetDocument())->DidComplete(*target_); +} + +Document& DOMPatchStatus::GetDocument() { + return target_->GetDocument(); +} + +void DOMPatchStatus::Trace(Visitor* visitor) const { + visitor->Trace(source_); + visitor->Trace(target_); + visitor->Trace(finished_); + ScriptWrappable::Trace(visitor); +} + +} // namespace blink
diff --git a/third_party/blink/renderer/core/patching/dom_patch_status.h b/third_party/blink/renderer/core/patching/dom_patch_status.h new file mode 100644 index 0000000..dc3af70 --- /dev/null +++ b/third_party/blink/renderer/core/patching/dom_patch_status.h
@@ -0,0 +1,43 @@ +// Copyright 2025 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef THIRD_PARTY_BLINK_RENDERER_CORE_PATCHING_DOM_PATCH_STATUS_H_ +#define THIRD_PARTY_BLINK_RENDERER_CORE_PATCHING_DOM_PATCH_STATUS_H_ + +#include "third_party/blink/renderer/bindings/core/v8/idl_types.h" +#include "third_party/blink/renderer/bindings/core/v8/script_promise.h" +#include "third_party/blink/renderer/bindings/core/v8/script_promise_property.h" +#include "third_party/blink/renderer/bindings/core/v8/script_value.h" +#include "third_party/blink/renderer/core/dom/abort_signal.h" +#include "third_party/blink/renderer/core/dom/container_node.h" +#include "third_party/blink/renderer/core/execution_context/execution_context.h" +#include "third_party/blink/renderer/platform/bindings/script_wrappable.h" +#include "third_party/blink/renderer/platform/heap/collection_support/heap_hash_map.h" +#include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h" +#include "third_party/blink/renderer/platform/heap/garbage_collected.h" +#include "third_party/blink/renderer/platform/heap/member.h" + +namespace blink { +class HTMLTemplateElement; +class ScriptState; +class DOMPatchStatus : public ScriptWrappable { + DEFINE_WRAPPERTYPEINFO(); + + public: + DOMPatchStatus(HTMLTemplateElement* source, ContainerNode* target); + ScriptPromise<IDLUndefined> finished(ScriptState*); + HTMLTemplateElement* source() { return source_; } + void Trace(Visitor*) const override; + void OnComplete(); + Node& GetTarget() { return *target_; } + + private: + Document& GetDocument(); + Member<HTMLTemplateElement> source_; + Member<ContainerNode> target_; + Member<ScriptPromiseProperty<IDLUndefined, IDLAny>> finished_; +}; +} // namespace blink + +#endif // THIRD_PARTY_BLINK_RENDERER_CORE_PATCHING_DOM_PATCH_STATUS_H_
diff --git a/third_party/blink/renderer/core/patching/patch_status.idl b/third_party/blink/renderer/core/patching/patch_status.idl new file mode 100644 index 0000000..1c3a7aa --- /dev/null +++ b/third_party/blink/renderer/core/patching/patch_status.idl
@@ -0,0 +1,5 @@ +[Exposed=Window, RuntimeEnabled=DocumentPatching, ImplementedAs=DOMPatchStatus] +interface PatchStatus { + [SameObject, CallWith=ScriptState] readonly attribute Promise<undefined> finished; + [SameObject] readonly attribute HTMLTemplateElement source; +};
diff --git a/third_party/blink/renderer/core/patching/patch_supplement.cc b/third_party/blink/renderer/core/patching/patch_supplement.cc new file mode 100644 index 0000000..4615eae --- /dev/null +++ b/third_party/blink/renderer/core/patching/patch_supplement.cc
@@ -0,0 +1,66 @@ +// Copyright 2025 The Chromium Authors +// 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/core/patching/patch_supplement.h" + +#include <optional> + +#include "third_party/blink/renderer/core/patching/dom_patch_status.h" +#include "third_party/blink/renderer/platform/graphics/dom_node_id.h" +#include "third_party/blink/renderer/platform/heap/visitor.h" +#include "third_party/blink/renderer/platform/supplementable.h" + +namespace blink { + +// static +const char PatchSupplement::kSupplementName[] = "Patch"; + +// static +PatchSupplement* PatchSupplement::FromIfExists(const Document& document) { + return Supplement<Document>::From<PatchSupplement>(document); +} + +// static +PatchSupplement* PatchSupplement::From(Document& document) { + auto* supplement = Supplement<Document>::From<PatchSupplement>(document); + if (!supplement) { + supplement = MakeGarbageCollected<PatchSupplement>(document); + Supplement<Document>::ProvideTo(document, supplement); + } + return supplement; +} + +DOMPatchStatus* PatchSupplement::CurrentPatchFor(const Node& target) { + if (auto index = IndexOfPatch(target)) { + return patches_.at(*index); + } else { + return nullptr; + } +} + +std::optional<size_t> PatchSupplement::IndexOfPatch(const Node& target) { + for (size_t i = 0; i < patches_.size(); ++i) { + if (patches_[i]->GetTarget() == target) { + return i; + } + } + return std::nullopt; +} + +void PatchSupplement::DidStart(Node& target, DOMPatchStatus* status) { + patches_.push_back(status); +} + +void PatchSupplement::DidComplete(Node& target) { + if (auto index = IndexOfPatch(target)) { + patches_.EraseAt(*index); + } +} + +void PatchSupplement::Trace(Visitor* visitor) const { + visitor->Trace(patches_); + Supplement<Document>::Trace(visitor); +} + +} // namespace blink
diff --git a/third_party/blink/renderer/core/patching/patch_supplement.h b/third_party/blink/renderer/core/patching/patch_supplement.h new file mode 100644 index 0000000..e8d96e0 --- /dev/null +++ b/third_party/blink/renderer/core/patching/patch_supplement.h
@@ -0,0 +1,40 @@ +// Copyright 2025 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef THIRD_PARTY_BLINK_RENDERER_CORE_PATCHING_PATCH_SUPPLEMENT_H_ +#define THIRD_PARTY_BLINK_RENDERER_CORE_PATCHING_PATCH_SUPPLEMENT_H_ + +#include "third_party/blink/renderer/bindings/core/v8/script_value.h" +#include "third_party/blink/renderer/core/dom/document.h" +#include "third_party/blink/renderer/core/patching/dom_patch_status.h" +#include "third_party/blink/renderer/platform/graphics/dom_node_id.h" +#include "third_party/blink/renderer/platform/heap/collection_support/heap_hash_map.h" +#include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h" +#include "third_party/blink/renderer/platform/heap/member.h" + +namespace blink { + +class PatchSupplement : public GarbageCollected<PatchSupplement>, + public Supplement<Document> { + public: + explicit PatchSupplement(Document& document) + : Supplement<Document>(document) {} + static const char kSupplementName[]; + + // Supplement functionality. + static PatchSupplement* From(Document&); + static PatchSupplement* FromIfExists(const Document&); + void Trace(Visitor*) const override; + + DOMPatchStatus* CurrentPatchFor(const Node&); + void DidStart(Node&, DOMPatchStatus*); + void DidComplete(Node&); + + private: + std::optional<size_t> IndexOfPatch(const Node& target); + // TODO(nrosenthal): multiple patches per destination + HeapVector<Member<DOMPatchStatus>> patches_; +}; +} // namespace blink +#endif // THIRD_PARTY_BLINK_RENDERER_CORE_PATCHING_PATCH_SUPPLEMENT_H_
diff --git a/third_party/blink/renderer/core/streams/DIR_METADATA b/third_party/blink/renderer/core/streams/DIR_METADATA index 00d9be5..c57527b 100644 --- a/third_party/blink/renderer/core/streams/DIR_METADATA +++ b/third_party/blink/renderer/core/streams/DIR_METADATA
@@ -1,7 +1,7 @@ monorail: { component: "Blink>Network>StreamsAPI" } -team_email: "blink-network-dev@chromium.org" +team_email: "net-dev@chromium.org" buganizer_public: { component_id: 1456125 }
diff --git a/third_party/blink/renderer/core/url/DIR_METADATA b/third_party/blink/renderer/core/url/DIR_METADATA index 8e8b91d..935f9e45 100644 --- a/third_party/blink/renderer/core/url/DIR_METADATA +++ b/third_party/blink/renderer/core/url/DIR_METADATA
@@ -1,7 +1,7 @@ monorail: { component: "Blink>Network" } -team_email: "blink-network-dev@chromium.org" +team_email: "net-dev@chromium.org" buganizer_public: { component_id: 1456852 }
diff --git a/third_party/blink/renderer/core/xmlhttprequest/DIR_METADATA b/third_party/blink/renderer/core/xmlhttprequest/DIR_METADATA index 9c5bfd9..3ba80c3 100644 --- a/third_party/blink/renderer/core/xmlhttprequest/DIR_METADATA +++ b/third_party/blink/renderer/core/xmlhttprequest/DIR_METADATA
@@ -1,7 +1,7 @@ monorail: { component: "Blink>Network>XHR" } -team_email: "blink-network-dev@chromium.org" +team_email: "net-dev@chromium.org" buganizer_public: { component_id: 1456827 }
diff --git a/third_party/blink/renderer/modules/beacon/COMMON_METADATA b/third_party/blink/renderer/modules/beacon/COMMON_METADATA index 8e8b91d..935f9e45 100644 --- a/third_party/blink/renderer/modules/beacon/COMMON_METADATA +++ b/third_party/blink/renderer/modules/beacon/COMMON_METADATA
@@ -1,7 +1,7 @@ monorail: { component: "Blink>Network" } -team_email: "blink-network-dev@chromium.org" +team_email: "net-dev@chromium.org" buganizer_public: { component_id: 1456852 }
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc index 21b8f197..f3581f2 100644 --- a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc +++ b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc
@@ -639,7 +639,7 @@ } bool CanvasRenderingContext2D::IsCanvas2DResourceValid() { - if (Host()->IsHibernating()) { + if (IsHibernating()) { return true; } @@ -664,12 +664,11 @@ // We can get an image if either (a) there is a ResourceProvider or (b) the // canvas is hibernating (in which case there will be no resource provider // but we can get a snapshot from the hibernation handler). - bool is_hibernating = canvas() && canvas()->IsHibernating(); - if (!IsPaintable() && !is_hibernating) { + if (!IsPaintable() && !IsHibernating()) { return nullptr; } - if (canvas()->IsHibernating()) { + if (IsHibernating()) { return UnacceleratedStaticBitmapImage::Create( canvas()->GetHibernationHandler()->GetImage()); } @@ -925,6 +924,15 @@ return GetResourceProviderForCanvas2D(); } +bool CanvasRenderingContext2D::IsHibernating() const { + if (!canvas()) { + return false; + } + + auto* hibernation_handler = canvas()->GetHibernationHandler(); + return hibernation_handler && hibernation_handler->IsHibernating(); +} + Color CanvasRenderingContext2D::GetCurrentColor() const { const HTMLCanvasElement* const element = canvas(); if (!element || !element->isConnected() || !element->InlineStyle()) { @@ -949,7 +957,7 @@ SetAggressivelyFreeSharedGpuContextResourcesIfPossible(!page_is_visible); if (features::IsCanvas2DHibernationEnabled() && !page_is_visible && - !element->IsHibernating() && resource_provider && + !IsHibernating() && resource_provider && resource_provider->IsAccelerated()) { element->GetHibernationHandler()->InitiateHibernationIfNecessary(); } @@ -978,7 +986,7 @@ element->SetNeedsPushProperties(); } - if (page_is_visible && element->IsHibernating()) { + if (page_is_visible && IsHibernating()) { GetOrCreateCanvas2DResourceProvider(); // Rude awakening }
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.h b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.h index 7f04838..34d98b2d 100644 --- a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.h +++ b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.h
@@ -223,6 +223,7 @@ ExecutionContext* GetTopExecutionContext() const override; bool IsPaintable() const final; + bool IsHibernating() const final; void WillDrawImage(CanvasImageSource*, bool image_is_texture_backed) const final;
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d_test.cc b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d_test.cc index 39598b9..5789642 100644 --- a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d_test.cc +++ b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d_test.cc
@@ -2508,7 +2508,7 @@ Context2D()->GetOrCreateCanvas2DResourceProvider(); ASSERT_EQ(CanvasElement().GetRasterModeForCanvas2D(), RasterMode::kGPU); - ASSERT_FALSE(CanvasElement().IsHibernating()); + ASSERT_FALSE(Context2D()->IsHibernating()); // Verify that going to the background triggers hibernation asynchronously. { @@ -2518,7 +2518,7 @@ histogram_tester.ExpectUniqueSample( "Blink.Canvas.HibernationEvents", CanvasHibernationHandler::HibernationEvent::kHibernationScheduled, 1); - ASSERT_FALSE(CanvasElement().IsHibernating()); + ASSERT_FALSE(Context2D()->IsHibernating()); } CanvasElement().DisableAccelerationForCanvas2D(); @@ -2537,7 +2537,7 @@ CanvasHibernationHandler::HibernationEvent:: kHibernationAbortedDueToSwitchToUnacceleratedRendering, 1); - EXPECT_FALSE(CanvasElement().IsHibernating()); + EXPECT_FALSE(Context2D()->IsHibernating()); } } @@ -2550,7 +2550,7 @@ CreateContext(kNonOpaque); Context2D()->GetOrCreateCanvas2DResourceProvider(); ASSERT_EQ(CanvasElement().GetRasterModeForCanvas2D(), RasterMode::kGPU); - ASSERT_FALSE(CanvasElement().IsHibernating()); + ASSERT_FALSE(Context2D()->IsHibernating()); // Verify that going to the background triggers hibernation asynchronously. { @@ -2560,7 +2560,7 @@ histogram_tester.ExpectUniqueSample( "Blink.Canvas.HibernationEvents", CanvasHibernationHandler::HibernationEvent::kHibernationScheduled, 1); - ASSERT_FALSE(CanvasElement().IsHibernating()); + ASSERT_FALSE(Context2D()->IsHibernating()); } CanvasElement().DisableAccelerationForCanvas2D(); @@ -2570,7 +2570,7 @@ // Run hibernation task. RunIdleTasks(); - EXPECT_TRUE(CanvasElement().IsHibernating()); + EXPECT_TRUE(Context2D()->IsHibernating()); } TEST_P(CanvasRenderingContext2DTestAccelerated,
diff --git a/third_party/blink/renderer/modules/clipboard/clipboard.cc b/third_party/blink/renderer/modules/clipboard/clipboard.cc index d97789b..c127764 100644 --- a/third_party/blink/renderer/modules/clipboard/clipboard.cc +++ b/third_party/blink/renderer/modules/clipboard/clipboard.cc
@@ -68,7 +68,8 @@ RegisteredEventListener& registered_listener) { EventTarget::AddedEventListener(event_type, registered_listener); - if (!base::FeatureList::IsEnabled(features::kClipboardChangeEvent) || + if (!RuntimeEnabledFeatures::ClipboardChangeEventEnabled( + GetExecutionContext()) || event_type != event_type_names::kClipboardchange) { return; } @@ -94,7 +95,8 @@ const RegisteredEventListener& registered_listener) { EventTarget::RemovedEventListener(event_type, registered_listener); - if (!base::FeatureList::IsEnabled(features::kClipboardChangeEvent) || + if (!RuntimeEnabledFeatures::ClipboardChangeEventEnabled( + GetExecutionContext()) || event_type != event_type_names::kClipboardchange) { return; }
diff --git a/third_party/blink/renderer/modules/compression/DIR_METADATA b/third_party/blink/renderer/modules/compression/DIR_METADATA index 00d9be5..c57527b 100644 --- a/third_party/blink/renderer/modules/compression/DIR_METADATA +++ b/third_party/blink/renderer/modules/compression/DIR_METADATA
@@ -1,7 +1,7 @@ monorail: { component: "Blink>Network>StreamsAPI" } -team_email: "blink-network-dev@chromium.org" +team_email: "net-dev@chromium.org" buganizer_public: { component_id: 1456125 }
diff --git a/third_party/blink/renderer/modules/eventsource/DIR_METADATA b/third_party/blink/renderer/modules/eventsource/DIR_METADATA index 8e8b91d..935f9e45 100644 --- a/third_party/blink/renderer/modules/eventsource/DIR_METADATA +++ b/third_party/blink/renderer/modules/eventsource/DIR_METADATA
@@ -1,7 +1,7 @@ monorail: { component: "Blink>Network" } -team_email: "blink-network-dev@chromium.org" +team_email: "net-dev@chromium.org" buganizer_public: { component_id: 1456852 }
diff --git a/third_party/blink/renderer/modules/mediastream/media_stream_device_observer_test.cc b/third_party/blink/renderer/modules/mediastream/media_stream_device_observer_test.cc index ac4579f..2f5436e 100644 --- a/third_party/blink/renderer/modules/mediastream/media_stream_device_observer_test.cc +++ b/third_party/blink/renderer/modules/mediastream/media_stream_device_observer_test.cc
@@ -21,6 +21,7 @@ #include "third_party/blink/renderer/modules/mediastream/capture_controller.h" #include "third_party/blink/renderer/modules/mediastream/mock_mojo_media_stream_dispatcher_host.h" #include "third_party/blink/renderer/platform/testing/task_environment.h" +#include "third_party/blink/renderer/platform/wtf/functional.h" namespace blink { @@ -137,8 +138,8 @@ mock_dispatcher_host_.OpenDevice( kRequestId1, "device_path", blink::mojom::MediaStreamType::DEVICE_VIDEO_CAPTURE, - base::BindOnce(&MediaStreamDeviceObserverTest::OnDeviceOpened, - base::Unretained(this), run_loop1.QuitClosure())); + WTF::BindOnce(&MediaStreamDeviceObserverTest::OnDeviceOpened, + WTF::Unretained(this), run_loop1.QuitClosure())); run_loop1.Run(); String stream_label1 = stream_label_; @@ -147,8 +148,8 @@ mock_dispatcher_host_.OpenDevice( kRequestId2, "screen_capture", blink::mojom::MediaStreamType::GUM_DESKTOP_VIDEO_CAPTURE, - base::BindOnce(&MediaStreamDeviceObserverTest::OnDeviceOpened, - base::Unretained(this), run_loop2.QuitClosure())); + WTF::BindOnce(&MediaStreamDeviceObserverTest::OnDeviceOpened, + WTF::Unretained(this), run_loop2.QuitClosure())); run_loop2.Run(); String stream_label2 = stream_label_; @@ -184,8 +185,8 @@ mock_dispatcher_host_.OpenDevice( kRequestId, "device_path", blink::mojom::MediaStreamType::DEVICE_VIDEO_CAPTURE, - base::BindOnce(&MediaStreamDeviceObserverTest::OnDeviceOpened, - base::Unretained(this), run_loop1.QuitClosure())); + WTF::BindOnce(&MediaStreamDeviceObserverTest::OnDeviceOpened, + WTF::Unretained(this), run_loop1.QuitClosure())); run_loop1.Run(); EXPECT_EQ(observer_->label_stream_map_.size(), 1u); @@ -209,8 +210,8 @@ mock_dispatcher_host_.OpenDevice( kRequestId1, example_video_id1, blink::mojom::MediaStreamType::DEVICE_VIDEO_CAPTURE, - base::BindOnce(&MediaStreamDeviceObserverTest::OnDeviceOpened, - base::Unretained(this), run_loop1.QuitClosure())); + WTF::BindOnce(&MediaStreamDeviceObserverTest::OnDeviceOpened, + WTF::Unretained(this), run_loop1.QuitClosure())); run_loop1.Run(); EXPECT_EQ(observer_->label_stream_map_.size(), 1u); @@ -296,8 +297,8 @@ mock_dispatcher_host_.OpenDevice( kRequestId, "device_path", blink::mojom::MediaStreamType::DEVICE_VIDEO_CAPTURE, - base::BindOnce(&MediaStreamDeviceObserverTest::OnDeviceOpened, - base::Unretained(this), run_loop1.QuitClosure())); + WTF::BindOnce(&MediaStreamDeviceObserverTest::OnDeviceOpened, + WTF::Unretained(this), run_loop1.QuitClosure())); run_loop1.Run(); EXPECT_EQ(observer_->label_stream_map_.size(), 1u);
diff --git a/third_party/blink/renderer/modules/mediastream/media_stream_track_transfer_test.cc b/third_party/blink/renderer/modules/mediastream/media_stream_track_transfer_test.cc index 1d0f1c12..e2afbe2 100644 --- a/third_party/blink/renderer/modules/mediastream/media_stream_track_transfer_test.cc +++ b/third_party/blink/renderer/modules/mediastream/media_stream_track_transfer_test.cc
@@ -19,6 +19,7 @@ #include "third_party/blink/renderer/platform/mediastream/media_stream_source.h" #include "third_party/blink/renderer/platform/testing/io_task_runner_testing_platform_support.h" #include "third_party/blink/renderer/platform/testing/task_environment.h" +#include "third_party/blink/renderer/platform/wtf/functional.h" namespace blink { namespace { @@ -64,8 +65,8 @@ source->SetDevice(device); // RunUntilIdle is required for this task to complete. scheduler::GetSingleThreadTaskRunnerForTesting()->PostTask( - FROM_HERE, base::BindOnce(&SignalSourceReady, std::move(source_ready), - source.get())); + FROM_HERE, WTF::BindOnce(&SignalSourceReady, std::move(source_ready), + WTF::Unretained(source.get()))); return source; } };
diff --git a/third_party/blink/renderer/modules/mediastream/track_audio_renderer_test.cc b/third_party/blink/renderer/modules/mediastream/track_audio_renderer_test.cc index d8289e5a..a0a153f 100644 --- a/third_party/blink/renderer/modules/mediastream/track_audio_renderer_test.cc +++ b/third_party/blink/renderer/modules/mediastream/track_audio_renderer_test.cc
@@ -22,8 +22,12 @@ #include "third_party/blink/renderer/platform/mediastream/media_stream_audio_track.h" #include "third_party/blink/renderer/platform/mediastream/media_stream_component_impl.h" #include "third_party/blink/renderer/platform/mediastream/media_stream_source.h" +#include "third_party/blink/renderer/platform/scheduler/public/post_cross_thread_task.h" #include "third_party/blink/renderer/platform/testing/io_task_runner_testing_platform_support.h" #include "third_party/blink/renderer/platform/testing/task_environment.h" +#include "third_party/blink/renderer/platform/wtf/cross_thread_copier_media.h" +#include "third_party/blink/renderer/platform/wtf/cross_thread_functional.h" +#include "third_party/blink/renderer/platform/wtf/functional.h" #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h" namespace blink { @@ -185,11 +189,11 @@ total_frames_captured_ += frames; frames_captured_since_last_reconfig_ += frames; - IOTaskRunner()->PostTask( - FROM_HERE, base::BindOnce(&TrackAudioRendererTest::PushDataOnIO, - base::Unretained(this), - media::AudioBus::Create(channels, frames), - base::TimeTicks::Now())); + PostCrossThreadTask( + *IOTaskRunner(), FROM_HERE, + CrossThreadBindOnce( + &TrackAudioRendererTest::PushDataOnIO, CrossThreadUnretained(this), + media::AudioBus::Create(channels, frames), base::TimeTicks::Now())); } // Force sync the IO task runner, followed by the main task runner.
diff --git a/third_party/blink/renderer/modules/mediastream/user_media_client_test.cc b/third_party/blink/renderer/modules/mediastream/user_media_client_test.cc index 4869523..4d065a6 100644 --- a/third_party/blink/renderer/modules/mediastream/user_media_client_test.cc +++ b/third_party/blink/renderer/modules/mediastream/user_media_client_test.cc
@@ -576,16 +576,17 @@ // RunUntilIdle is required for this task to complete. blink::scheduler::GetSingleThreadTaskRunnerForTesting()->PostTask( FROM_HERE, - base::BindOnce(&UserMediaProcessorUnderTest::SignalSourceReady, - std::move(source_ready), source.get())); + WTF::BindOnce(&UserMediaProcessorUnderTest::SignalSourceReady, + std::move(source_ready), + WTF::Unretained(source.get()))); } else if (source_creation_status_ == SourceCreationStatus::kFailedSystemPermissionError && local_audio_source_) { blink::scheduler::GetSingleThreadTaskRunnerForTesting()->PostTask( FROM_HERE, - base::BindOnce( + WTF::BindOnce( &UserMediaProcessorUnderTest::SignalSystemPermissionError, - local_audio_source_.get())); + WTF::Unretained(local_audio_source_.get()))); } return source;
diff --git a/third_party/blink/renderer/modules/websockets/DIR_METADATA b/third_party/blink/renderer/modules/websockets/DIR_METADATA index 8f620091..1138724 100644 --- a/third_party/blink/renderer/modules/websockets/DIR_METADATA +++ b/third_party/blink/renderer/modules/websockets/DIR_METADATA
@@ -1,7 +1,7 @@ monorail: { component: "Blink>Network>WebSockets" } -team_email: "blink-network-dev@chromium.org" +team_email: "net-dev@chromium.org" buganizer_public: { component_id: 1456696 }
diff --git a/third_party/blink/renderer/modules/webtransport/COMMON_METADATA b/third_party/blink/renderer/modules/webtransport/COMMON_METADATA index 7b28b3f..3af1b150 100644 --- a/third_party/blink/renderer/modules/webtransport/COMMON_METADATA +++ b/third_party/blink/renderer/modules/webtransport/COMMON_METADATA
@@ -1,7 +1,7 @@ monorail: { component: "Blink>Network>WebTransport" } -team_email: "blink-network-dev@chromium.org" +team_email: "net-dev@chromium.org" buganizer_public: { component_id: 1456904 }
diff --git a/third_party/blink/renderer/platform/graphics/canvas_resource.h b/third_party/blink/renderer/platform/graphics/canvas_resource.h index 822e4f4..3047144 100644 --- a/third_party/blink/renderer/platform/graphics/canvas_resource.h +++ b/third_party/blink/renderer/platform/graphics/canvas_resource.h
@@ -215,9 +215,6 @@ void EndWriteAccess(); GrBackendTexture CreateGrTexture() const; - GLuint GetTextureIdForReadAccess() const { - return owning_thread_data().texture_id_for_read_access; - } GLuint GetTextureIdForWriteAccess() const { return owning_thread_data().texture_id_for_write_access; }
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 index 4ca6cbc..c18cb284 100644 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
@@ -907,7 +907,8 @@ // system clipboard // https://chromestatus.com/feature/5085102657503232 name: "ClipboardChangeEvent", - base_feature: "none", + origin_trial_feature_name: "ClipboardChangeEvent", + status: "experimental", }, // This ensures that clipboard event fires on a target node which is // focused in case no visible selection is present. @@ -4297,6 +4298,11 @@ status: "stable", }, { + // See https://crbug.com/40664519 + name: "SelectionAndFocusedVisiblePositionMatch", + status: "stable", + }, + { // See https://crbug.com/417823377 name: "SelectionDeleteFromDocumentUaShadowFix", status: "stable",
diff --git a/third_party/blink/web_tests/editing/selection/mouse-select-first-letter-span-with-tabindex.html b/third_party/blink/web_tests/editing/selection/mouse-select-first-letter-span-with-tabindex.html new file mode 100644 index 0000000..4503c77 --- /dev/null +++ b/third_party/blink/web_tests/editing/selection/mouse-select-first-letter-span-with-tabindex.html
@@ -0,0 +1,48 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<script src="../../resources/testharness.js"></script> +<script src="../../resources/testharnessreport.js"></script> +<span id="a" tabindex="-1">hello</span> +<span id="b" tabindex="-1">world</span> +<script> + const spanB = document.getElementById('b'); + const rect = spanB.getBoundingClientRect(); + + // Get coordinates for the first character + let xLeft = rect.left + 1; + let y = rect.top + rect.height / 2; + let xRight = rect.left + 10; + if (spanB.firstChild && spanB.firstChild.length > 0) { + const range = document.createRange(); + range.setStart(spanB.firstChild, 0); + range.setEnd(spanB.firstChild, 1); + const rects = range.getClientRects(); + if (rects.length > 0) { + xRight = rects[0].right; + } + } + + promise_test(() => { + return new Promise((resolve, reject) => { + assert_own_property(window, 'chrome'); + assert_own_property(window.chrome, 'gpuBenchmarking'); + chrome.gpuBenchmarking.pointerActionSequence([{ + source: 'mouse', + actions: [ + { name: 'pointerDown', x: xLeft, y: y }, + { name: 'pointerMove', x: xRight, y: y }, + { name: 'pointerUp' } + ] + }], resolve); + }).then(() => { + const sel = window.getSelection(); + assert_equals(sel.toString(), "w", "Selected text should be 'w'"); + assert_equals(sel.anchorNode, spanB.firstChild, "Selection anchor should be in spanB"); + assert_equals(sel.anchorOffset, 0, "Selection anchor offset should be 0 in spanB"); + assert_equals(sel.focusNode, spanB.firstChild, "Selection focus should be in spanB"); + assert_equals(sel.focusOffset, 1, "Selection focus offset should be 1 in spanB"); + assert_false(sel.isCollapsed, "Selection should not be collapsed"); + }); + + }, "Mouse selection of first letter in non-editable span with tabindex"); +</script> \ No newline at end of file
diff --git a/third_party/blink/web_tests/external/wpt/cors/DIR_METADATA b/third_party/blink/web_tests/external/wpt/cors/DIR_METADATA index b8c8e48d..33ab068c 100644 --- a/third_party/blink/web_tests/external/wpt/cors/DIR_METADATA +++ b/third_party/blink/web_tests/external/wpt/cors/DIR_METADATA
@@ -1,7 +1,7 @@ monorail: { component: "Blink>SecurityFeature>CORS" } -team_email: "blink-network-dev@chromium.org" +team_email: "net-dev@chromium.org" buganizer_public: { component_id: 1456518 }
diff --git a/third_party/blink/web_tests/external/wpt/eventsource/DIR_METADATA b/third_party/blink/web_tests/external/wpt/eventsource/DIR_METADATA index 8e8b91d..935f9e45 100644 --- a/third_party/blink/web_tests/external/wpt/eventsource/DIR_METADATA +++ b/third_party/blink/web_tests/external/wpt/eventsource/DIR_METADATA
@@ -1,7 +1,7 @@ monorail: { component: "Blink>Network" } -team_email: "blink-network-dev@chromium.org" +team_email: "net-dev@chromium.org" buganizer_public: { component_id: 1456852 }
diff --git a/third_party/blink/web_tests/external/wpt/fetch/DIR_METADATA b/third_party/blink/web_tests/external/wpt/fetch/DIR_METADATA index 31ad696..254c57c5 100644 --- a/third_party/blink/web_tests/external/wpt/fetch/DIR_METADATA +++ b/third_party/blink/web_tests/external/wpt/fetch/DIR_METADATA
@@ -1,7 +1,7 @@ monorail: { component: "Blink>Network>FetchAPI" } -team_email: "blink-network-dev@chromium.org" +team_email: "net-dev@chromium.org" buganizer_public: { component_id: 1456853 }
diff --git a/third_party/blink/web_tests/external/wpt/html/dom/partial-updates/tentative/current-patch.html b/third_party/blink/web_tests/external/wpt/html/dom/partial-updates/tentative/current-patch.html new file mode 100644 index 0000000..dc6a14b --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/html/dom/partial-updates/tentative/current-patch.html
@@ -0,0 +1,34 @@ +<!DOCTYPE HTML> +<meta charset="utf-8" /> +<title>HTML partial updates - reflection via element.currentPatch</title> +<link rel=help href="https://github.com/WICG/declarative-partial-updates"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> + +<script> +promise_test(async t => { + const doc = document.implementation.createHTMLDocument(); + doc.write('<div id="placeholder">Old content</div>'); + const placeholder = doc.getElementById("placeholder"); + assert_equals(placeholder.currentPatch, null, "no patch active, currentPatch should be null"); + doc.write('<template id=patchy patchfor="placeholder">'); + const {currentPatch} = placeholder; + assert_true(currentPatch instanceof PatchStatus); + const {finished, source} = currentPatch; + assert_true(source instanceof HTMLTemplateElement); + assert_equals(source.id, "patchy"); + let did_finish = false; + finished.then((() => {did_finish = true})); + await new Promise(resolve => t.step_timeout(resolve, 100)); + assert_false(did_finish, "we are not finished yet"); + doc.write("<p>content</p>"); + await new Promise(resolve => t.step_timeout(resolve, 100)); + assert_false(did_finish, "we are not finished yet"); + assert_equals(placeholder.currentPatch, currentPatch); + doc.write("</template>"); + assert_equals(placeholder.currentPatch, null, "template is closed, currentPatch is null"); + const result = await finished; + assert_equals(result, undefined); +}, "currentPatch lifecycle"); + +</script> \ No newline at end of file
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/modulepreload-cross-origin-referrerpolicy.sub.html b/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/modulepreload-cross-origin-referrerpolicy.sub.html new file mode 100644 index 0000000..2d914f3d --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/modulepreload-cross-origin-referrerpolicy.sub.html
@@ -0,0 +1,96 @@ +<!DOCTYPE html> +<html> +<head> +<title>Modulepreload Cross-Origin Referrer Policy Tests</title> +<meta name="author" title="Google" href="https://www.google.com/"> +<link rel="help" href="https://html.spec.whatwg.org/multipage/links.html#link-type-modulepreload"> +<link rel="help" href="https://w3c.github.io/webappsec-referrer-policy/"> +<meta name="assert" content="link rel=modulepreload respects the referrerpolicy attribute for cross-origin requests"> +<!-- + This test verifies that modulepreload correctly handles various referrer policies + for cross-origin requests. It tests all standard referrer policy values: + - no-referrer + - origin + - same-origin + - strict-origin + - strict-origin-when-cross-origin + - unsafe-url + + It also tests that modulepreload respects the document's default referrer policy. + + Each policy is tested by creating a modulepreload link with CORS enabled and the + specific policy, then verifying the referrer header that was sent when requesting + the resource from another origin. +--> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/common/security-features/resources/common.sub.js"></script> +<script> +// This test is more of a basic verification that the modulepreload element +// correctly handles cross-origin requests with referrer policies, rather than +// a comprehensive test of all referrer policy values. Those are tested more +// thoroughly in the standard WPT referrer-policy tests. + +setup({ + // Allow more time for cross-origin tests + explicit_timeout: true, + single_test: false +}); + +// Helper function to create a modulepreload element +function createModulePreload(url, referrerPolicy = null) { + const link = document.createElement('link'); + link.rel = 'modulepreload'; + link.href = url; + link.crossOrigin = 'anonymous'; // Enable CORS + + if (referrerPolicy !== null) { + link.referrerPolicy = referrerPolicy; + } + + return link; +} + +// Helper function to test a modulepreload element with a specific referrer policy +function testModulePreloadWithPolicy(policy, testName) { + promise_test(async t => { + // Set a timeout for this test + t.step_timeout(() => { + assert_unreached("Test timed out"); + }, 10000); + + return new Promise((resolve, reject) => { + const link = createModulePreload( + `https://{{domains[www1]}}:{{ports[https][0]}}/common/security-features/subresource/script.py`, + policy + ); + + link.onload = () => { + // If we got here, the load succeeded, which is what we want to verify + assert_true(true, "Cross-origin modulepreload with " + policy + " policy loaded successfully"); + resolve(); + }; + + link.onerror = () => { + reject(new Error("Failed to load cross-origin modulepreload with " + policy + " policy")); + }; + + document.head.appendChild(link); + }); + }, testName); +} + +// Test basic cross-origin cases with different referrer policies +testModulePreloadWithPolicy(null, "Cross-origin modulepreload with default referrer policy should load"); +testModulePreloadWithPolicy("no-referrer", "Cross-origin modulepreload with no-referrer policy should load"); +testModulePreloadWithPolicy("origin", "Cross-origin modulepreload with origin policy should load"); +testModulePreloadWithPolicy("same-origin", "Cross-origin modulepreload with same-origin policy should load"); +testModulePreloadWithPolicy("strict-origin", "Cross-origin modulepreload with strict-origin policy should load"); +testModulePreloadWithPolicy("strict-origin-when-cross-origin", "Cross-origin modulepreload with strict-origin-when-cross-origin policy should load"); +testModulePreloadWithPolicy("unsafe-url", "Cross-origin modulepreload with unsafe-url policy should load"); +</script> +</head> +<body> +<div id="log"></div> +</body> +</html> \ No newline at end of file
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/modulepreload-inline-referrerpolicy.html b/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/modulepreload-inline-referrerpolicy.html new file mode 100644 index 0000000..6a743e5 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/modulepreload-inline-referrerpolicy.html
@@ -0,0 +1,88 @@ +<!DOCTYPE html> +<html> +<head> +<title>Modulepreload Inline Referrer Policy Tests</title> +<meta name="author" title="Google" href="https://www.google.com/"> +<link rel="help" href="https://html.spec.whatwg.org/multipage/links.html#link-type-modulepreload"> +<link rel="help" href="https://w3c.github.io/webappsec-referrer-policy/"> +<meta name="assert" content="link rel=modulepreload respects the referrerpolicy attribute on inline elements"> +<!-- + This test verifies that inline modulepreload elements (statically declared in HTML) + correctly handle referrer policies. It tests: + + 1. Default behavior (no referrerpolicy attribute) - should use origin or full URL depending on implementation + 2. origin referrerpolicy - should use only origin + 3. no-referrer referrerpolicy - should not send referrer + 4. Document-level referrer policy (via meta tag) - should be respected + + Unlike the other modulepreload referrer tests that create elements dynamically, + this test uses inline link elements in the HTML. +--> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script> +// Initialize the window.referrers object that will be used by echo-referrer.py +window.referrers = {}; + +// Create unique IDs for each test +const noReferrerPolicyId = Date.now(); +const originPolicyId = Date.now() + 1; +const noReferrerId = Date.now() + 2; +const originId = Date.now() + 3; +</script> + +<!-- Test with no referrerpolicy attribute (should use document default) --> +<link rel="modulepreload" href="/preload/resources/echo-referrer.py?uid=NOPOLICY_ID"> + +<!-- Test with origin referrerpolicy attribute --> +<link rel="modulepreload" href="/preload/resources/echo-referrer.py?uid=ORIGIN_ID" referrerpolicy="origin"> + +<!-- Test with no-referrer referrerpolicy attribute --> +<link rel="modulepreload" href="/preload/resources/echo-referrer.py?uid=NOREFERRER_ID" referrerpolicy="no-referrer"> + +<!-- For document policy test, add meta tag for origin referrer policy --> +<meta name="referrer" content="origin"> +<link rel="modulepreload" href="/preload/resources/echo-referrer.py?uid=DOC_POLICY_ID"> + +<script> +// Replace placeholder IDs with actual IDs in the HTML +document.documentElement.innerHTML = document.documentElement.innerHTML + .replace('NOPOLICY_ID', noReferrerPolicyId) + .replace('ORIGIN_ID', originPolicyId) + .replace('NOREFERRER_ID', noReferrerId) + .replace('DOC_POLICY_ID', originId); +</script> +</head> +<body> +<script> +// Ensure modules are loaded by importing them +promise_test(async t => { + await Promise.all([ + import(`/preload/resources/echo-referrer.py?uid=${noReferrerPolicyId}`), + import(`/preload/resources/echo-referrer.py?uid=${originPolicyId}`), + import(`/preload/resources/echo-referrer.py?uid=${noReferrerId}`), + import(`/preload/resources/echo-referrer.py?uid=${originId}`) + ]); + + // Test that module with no specified referrerpolicy + // Note: Some implementations may send only origin for inline modulepreload requests + const expectedDefault = location.origin + "/"; + assert_equals(window.referrers[noReferrerPolicyId], expectedDefault, + "Modulepreload with no referrerpolicy should use expected referrer"); + + // Test that module with origin referrerpolicy sends only origin + assert_equals(window.referrers[originPolicyId], location.origin + "/", + "Modulepreload with origin referrerpolicy should send origin only"); + + // Test that module with no-referrer policy sends no referrer + assert_equals(window.referrers[noReferrerId], "", + "Modulepreload with no-referrer referrerpolicy should not send referrer"); + + // Test that module with no policy but document policy uses document policy + assert_equals(window.referrers[originId], location.origin + "/", + "Modulepreload with no referrerpolicy should use document's policy"); + +}, "Inline modulepreload elements should respect the referrerpolicy attribute"); +</script> +</body> +</html> \ No newline at end of file
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/modulepreload-referrer-check.html b/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/modulepreload-referrer-check.html new file mode 100644 index 0000000..4d422e79 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/modulepreload-referrer-check.html
@@ -0,0 +1,49 @@ +<!DOCTYPE html> +<html> +<head> +<title>Modulepreload Referrer Header Check</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script> +// Initialize the window.referrers object that will be used by echo-referrer.py +window.referrers = {}; +</script> +</head> +<body> +<iframe id="test-frame"></iframe> + +<script> +// This test uses a simple approach to check if modulepreload sends a referrer header +promise_test(async t => { + const importId = Date.now(); + const preloadId = Date.now() + 1; + + // Import will set window.referrers[importId] to the referrer value + await import(`/preload/resources/echo-referrer.py?uid=${importId}`); + + const link = document.createElement('link'); + link.rel = 'modulepreload'; + link.href = `/preload/resources/echo-referrer.py?uid=${preloadId}`; + + // Wait for the preload to complete using onload event + const preloadComplete = new Promise(resolve => { + link.onload = resolve; + link.onerror = () => { + assert_unreached("Modulepreload failed to load"); + }; + }); + + document.head.appendChild(link); + await preloadComplete; + + // Second import ensures the module is loaded and referrer is recorded + await import(`/preload/resources/echo-referrer.py?uid=${preloadId}`); + + // Check if referrers were recorded in the global window.referrers object + assert_equals(window.referrers[importId], location.href, "Dynamic import should have a referrer header"); + assert_equals(window.referrers[preloadId], location.href, "Modulepreload should have a referrer header"); + +}, "Modulepreload should send a referrer header"); +</script> +</body> +</html> \ No newline at end of file
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/modulepreload-referrerpolicy.html b/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/modulepreload-referrerpolicy.html new file mode 100644 index 0000000..061f076 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-script-element/module/modulepreload-referrerpolicy.html
@@ -0,0 +1,200 @@ +<!DOCTYPE html> +<html> +<head> +<title>Modulepreload Referrer Policy Tests</title> +<meta name="author" title="Google" href="https://www.google.com/"> +<link rel="help" href="https://html.spec.whatwg.org/multipage/links.html#link-type-modulepreload"> +<link rel="help" href="https://w3c.github.io/webappsec-referrer-policy/"> +<meta name="assert" content="link rel=modulepreload respects the referrerpolicy attribute"> +<!-- + This test verifies that modulepreload correctly handles various referrer policies + for same-origin requests. It tests all standard referrer policy values: + - no-referrer + - origin + - same-origin + - strict-origin + - strict-origin-when-cross-origin + - unsafe-url + Each policy is tested by creating a modulepreload link dynamically with the + specific policy and verifying the referrer header that was sent. +--> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script> +// Initialize the window.referrers object that will be used by echo-referrer.py +window.referrers = {}; +</script> +</head> +<body> +<script> +// Helper function to create a unique ID for each test +function generateUniqueId() { + return Date.now() + Math.floor(Math.random() * 1000); +} + +// Helper function to create a modulepreload element with a given referrer policy +function createModulePreload(url, referrerPolicy = null) { + const link = document.createElement('link'); + link.rel = 'modulepreload'; + link.href = url; + + if (referrerPolicy !== null) { + link.referrerPolicy = referrerPolicy; + } + + return link; +} + +// Helper function to wait for preload completion +function waitForPreload(link) { + return new Promise((resolve, reject) => { + link.onload = resolve; + link.onerror = () => reject(new Error("Modulepreload failed to load")); + }); +} + +// Test default referrer policy behavior +promise_test(async t => { + const uid = generateUniqueId(); + const url = `/preload/resources/echo-referrer.py?uid=${uid}`; + + // First import to establish baseline + await import(url); + + // Create modulepreload + const link = createModulePreload(url); + const preloadComplete = waitForPreload(link); + + document.head.appendChild(link); + await preloadComplete; + + // Import again to ensure the module is loaded + await import(url); + + // Check if referrer was sent + assert_equals(window.referrers[uid], location.href, "Modulepreload should use default referrer policy"); + +}, "Modulepreload should use default referrer policy"); + +// Test explicit no-referrer policy +promise_test(async t => { + const uid = generateUniqueId(); + const url = `/preload/resources/echo-referrer.py?uid=${uid}`; + + // Create modulepreload with no-referrer policy + const link = createModulePreload(url, 'no-referrer'); + const preloadComplete = waitForPreload(link); + + document.head.appendChild(link); + await preloadComplete; + + // Import again to ensure the module is loaded + await import(url); + + // Check if referrer was NOT sent + assert_equals(window.referrers[uid], "", "Modulepreload with no-referrer policy should not send referrer"); + +}, "Modulepreload with no-referrer policy should not send referrer"); + +// Test origin referrer policy +promise_test(async t => { + const uid = generateUniqueId(); + const url = `/preload/resources/echo-referrer.py?uid=${uid}`; + + // Create modulepreload with origin policy + const link = createModulePreload(url, 'origin'); + const preloadComplete = waitForPreload(link); + + document.head.appendChild(link); + await preloadComplete; + + // Import again to ensure the module is loaded + await import(url); + + // Check if origin-only referrer was sent + assert_equals(window.referrers[uid], location.origin + "/", "Modulepreload with origin policy should send origin-only referrer"); + +}, "Modulepreload with origin policy should send origin-only referrer"); + +// Test same-origin referrer policy +promise_test(async t => { + const uid = generateUniqueId(); + const url = `/preload/resources/echo-referrer.py?uid=${uid}`; + + // Create modulepreload with same-origin policy + const link = createModulePreload(url, 'same-origin'); + const preloadComplete = waitForPreload(link); + + document.head.appendChild(link); + await preloadComplete; + + // Import again to ensure the module is loaded + await import(url); + + // Check if full referrer was sent (for same-origin requests) + assert_equals(window.referrers[uid], location.href, "Modulepreload with same-origin policy should send full referrer for same-origin requests"); + +}, "Modulepreload with same-origin policy should send full referrer for same-origin requests"); + +// Test strict-origin referrer policy +promise_test(async t => { + const uid = generateUniqueId(); + const url = `/preload/resources/echo-referrer.py?uid=${uid}`; + + // Create modulepreload with strict-origin policy + const link = createModulePreload(url, 'strict-origin'); + const preloadComplete = waitForPreload(link); + + document.head.appendChild(link); + await preloadComplete; + + // Import again to ensure the module is loaded + await import(url); + + // Check if origin-only referrer was sent + assert_equals(window.referrers[uid], location.origin + "/", "Modulepreload with strict-origin policy should send origin-only referrer"); + +}, "Modulepreload with strict-origin policy should send origin-only referrer"); + +// Test strict-origin-when-cross-origin referrer policy +promise_test(async t => { + const uid = generateUniqueId(); + const url = `/preload/resources/echo-referrer.py?uid=${uid}`; + + // Create modulepreload with strict-origin-when-cross-origin policy + const link = createModulePreload(url, 'strict-origin-when-cross-origin'); + const preloadComplete = waitForPreload(link); + + document.head.appendChild(link); + await preloadComplete; + + // Import again to ensure the module is loaded + await import(url); + + // For same-origin requests, full URL should be sent + assert_equals(window.referrers[uid], location.href, "Modulepreload with strict-origin-when-cross-origin policy should send full referrer for same-origin requests"); + +}, "Modulepreload with strict-origin-when-cross-origin policy should send full referrer for same-origin requests"); + +// Test unsafe-url referrer policy +promise_test(async t => { + const uid = generateUniqueId(); + const url = `/preload/resources/echo-referrer.py?uid=${uid}`; + + // Create modulepreload with unsafe-url policy + const link = createModulePreload(url, 'unsafe-url'); + const preloadComplete = waitForPreload(link); + + document.head.appendChild(link); + await preloadComplete; + + // Import again to ensure the module is loaded + await import(url); + + // Check if full referrer was sent + assert_equals(window.referrers[uid], location.href, "Modulepreload with unsafe-url policy should send full referrer"); + +}, "Modulepreload with unsafe-url policy should send full referrer"); +</script> +</body> +</html> \ No newline at end of file
diff --git a/third_party/blink/web_tests/external/wpt/streams/DIR_METADATA b/third_party/blink/web_tests/external/wpt/streams/DIR_METADATA index 8fe190d..1ddf59e1 100644 --- a/third_party/blink/web_tests/external/wpt/streams/DIR_METADATA +++ b/third_party/blink/web_tests/external/wpt/streams/DIR_METADATA
@@ -1,7 +1,7 @@ monorail: { component: "Blink>Network>StreamsAPI" } -team_email: "blink-network-dev@chromium.org" +team_email: "net-dev@chromium.org" wpt: { notify: YES }
diff --git a/third_party/blink/web_tests/external/wpt/url/DIR_METADATA b/third_party/blink/web_tests/external/wpt/url/DIR_METADATA index 8e8b91d..935f9e45 100644 --- a/third_party/blink/web_tests/external/wpt/url/DIR_METADATA +++ b/third_party/blink/web_tests/external/wpt/url/DIR_METADATA
@@ -1,7 +1,7 @@ monorail: { component: "Blink>Network" } -team_email: "blink-network-dev@chromium.org" +team_email: "net-dev@chromium.org" buganizer_public: { component_id: 1456852 }
diff --git a/third_party/blink/web_tests/external/wpt/websockets/DIR_METADATA b/third_party/blink/web_tests/external/wpt/websockets/DIR_METADATA index 8f620091..1138724 100644 --- a/third_party/blink/web_tests/external/wpt/websockets/DIR_METADATA +++ b/third_party/blink/web_tests/external/wpt/websockets/DIR_METADATA
@@ -1,7 +1,7 @@ monorail: { component: "Blink>Network>WebSockets" } -team_email: "blink-network-dev@chromium.org" +team_email: "net-dev@chromium.org" buganizer_public: { component_id: 1456696 }
diff --git a/third_party/blink/web_tests/external/wpt/xhr/DIR_METADATA b/third_party/blink/web_tests/external/wpt/xhr/DIR_METADATA index 9c5bfd9..3ba80c3 100644 --- a/third_party/blink/web_tests/external/wpt/xhr/DIR_METADATA +++ b/third_party/blink/web_tests/external/wpt/xhr/DIR_METADATA
@@ -1,7 +1,7 @@ monorail: { component: "Blink>Network>XHR" } -team_email: "blink-network-dev@chromium.org" +team_email: "net-dev@chromium.org" buganizer_public: { component_id: 1456827 }
diff --git a/third_party/blink/web_tests/fast/beacon/DIR_METADATA b/third_party/blink/web_tests/fast/beacon/DIR_METADATA index 8e8b91d..935f9e45 100644 --- a/third_party/blink/web_tests/fast/beacon/DIR_METADATA +++ b/third_party/blink/web_tests/fast/beacon/DIR_METADATA
@@ -1,7 +1,7 @@ monorail: { component: "Blink>Network" } -team_email: "blink-network-dev@chromium.org" +team_email: "net-dev@chromium.org" buganizer_public: { component_id: 1456852 }
diff --git a/third_party/blink/web_tests/fast/domurl/DIR_METADATA b/third_party/blink/web_tests/fast/domurl/DIR_METADATA index 8e8b91d..935f9e45 100644 --- a/third_party/blink/web_tests/fast/domurl/DIR_METADATA +++ b/third_party/blink/web_tests/fast/domurl/DIR_METADATA
@@ -1,7 +1,7 @@ monorail: { component: "Blink>Network" } -team_email: "blink-network-dev@chromium.org" +team_email: "net-dev@chromium.org" buganizer_public: { component_id: 1456852 }
diff --git a/third_party/blink/web_tests/fast/eventsource/DIR_METADATA b/third_party/blink/web_tests/fast/eventsource/DIR_METADATA index 8e8b91d..935f9e45 100644 --- a/third_party/blink/web_tests/fast/eventsource/DIR_METADATA +++ b/third_party/blink/web_tests/fast/eventsource/DIR_METADATA
@@ -1,7 +1,7 @@ monorail: { component: "Blink>Network" } -team_email: "blink-network-dev@chromium.org" +team_email: "net-dev@chromium.org" buganizer_public: { component_id: 1456852 }
diff --git a/third_party/blink/web_tests/fast/xmlhttprequest/DIR_METADATA b/third_party/blink/web_tests/fast/xmlhttprequest/DIR_METADATA index 9c5bfd9..3ba80c3 100644 --- a/third_party/blink/web_tests/fast/xmlhttprequest/DIR_METADATA +++ b/third_party/blink/web_tests/fast/xmlhttprequest/DIR_METADATA
@@ -1,7 +1,7 @@ monorail: { component: "Blink>Network>XHR" } -team_email: "blink-network-dev@chromium.org" +team_email: "net-dev@chromium.org" buganizer_public: { component_id: 1456827 }
diff --git a/third_party/blink/web_tests/http/tests/eventsource/DIR_METADATA b/third_party/blink/web_tests/http/tests/eventsource/DIR_METADATA index 8e8b91d..935f9e45 100644 --- a/third_party/blink/web_tests/http/tests/eventsource/DIR_METADATA +++ b/third_party/blink/web_tests/http/tests/eventsource/DIR_METADATA
@@ -1,7 +1,7 @@ monorail: { component: "Blink>Network" } -team_email: "blink-network-dev@chromium.org" +team_email: "net-dev@chromium.org" buganizer_public: { component_id: 1456852 }
diff --git a/third_party/blink/web_tests/http/tests/fetch/chromium/DIR_METADATA b/third_party/blink/web_tests/http/tests/fetch/chromium/DIR_METADATA index 31ad696..254c57c5 100644 --- a/third_party/blink/web_tests/http/tests/fetch/chromium/DIR_METADATA +++ b/third_party/blink/web_tests/http/tests/fetch/chromium/DIR_METADATA
@@ -1,7 +1,7 @@ monorail: { component: "Blink>Network>FetchAPI" } -team_email: "blink-network-dev@chromium.org" +team_email: "net-dev@chromium.org" buganizer_public: { component_id: 1456853 }
diff --git a/third_party/blink/web_tests/http/tests/fetch/referrer/DIR_METADATA b/third_party/blink/web_tests/http/tests/fetch/referrer/DIR_METADATA index 31ad696..254c57c5 100644 --- a/third_party/blink/web_tests/http/tests/fetch/referrer/DIR_METADATA +++ b/third_party/blink/web_tests/http/tests/fetch/referrer/DIR_METADATA
@@ -1,7 +1,7 @@ monorail: { component: "Blink>Network>FetchAPI" } -team_email: "blink-network-dev@chromium.org" +team_email: "net-dev@chromium.org" buganizer_public: { component_id: 1456853 }
diff --git a/third_party/blink/web_tests/http/tests/fetch/script-tests/thorough/DIR_METADATA b/third_party/blink/web_tests/http/tests/fetch/script-tests/thorough/DIR_METADATA index 31ad696..254c57c5 100644 --- a/third_party/blink/web_tests/http/tests/fetch/script-tests/thorough/DIR_METADATA +++ b/third_party/blink/web_tests/http/tests/fetch/script-tests/thorough/DIR_METADATA
@@ -1,7 +1,7 @@ monorail: { component: "Blink>Network>FetchAPI" } -team_email: "blink-network-dev@chromium.org" +team_email: "net-dev@chromium.org" buganizer_public: { component_id: 1456853 }
diff --git a/third_party/blink/web_tests/http/tests/fetch/serviceworker-proxied/thorough/DIR_METADATA b/third_party/blink/web_tests/http/tests/fetch/serviceworker-proxied/thorough/DIR_METADATA index 31ad696..254c57c5 100644 --- a/third_party/blink/web_tests/http/tests/fetch/serviceworker-proxied/thorough/DIR_METADATA +++ b/third_party/blink/web_tests/http/tests/fetch/serviceworker-proxied/thorough/DIR_METADATA
@@ -1,7 +1,7 @@ monorail: { component: "Blink>Network>FetchAPI" } -team_email: "blink-network-dev@chromium.org" +team_email: "net-dev@chromium.org" buganizer_public: { component_id: 1456853 }
diff --git a/third_party/blink/web_tests/http/tests/fetch/serviceworker/DIR_METADATA b/third_party/blink/web_tests/http/tests/fetch/serviceworker/DIR_METADATA index 31ad696..254c57c5 100644 --- a/third_party/blink/web_tests/http/tests/fetch/serviceworker/DIR_METADATA +++ b/third_party/blink/web_tests/http/tests/fetch/serviceworker/DIR_METADATA
@@ -1,7 +1,7 @@ monorail: { component: "Blink>Network>FetchAPI" } -team_email: "blink-network-dev@chromium.org" +team_email: "net-dev@chromium.org" buganizer_public: { component_id: 1456853 }
diff --git a/third_party/blink/web_tests/http/tests/fetch/window/DIR_METADATA b/third_party/blink/web_tests/http/tests/fetch/window/DIR_METADATA index 31ad696..254c57c5 100644 --- a/third_party/blink/web_tests/http/tests/fetch/window/DIR_METADATA +++ b/third_party/blink/web_tests/http/tests/fetch/window/DIR_METADATA
@@ -1,7 +1,7 @@ monorail: { component: "Blink>Network>FetchAPI" } -team_email: "blink-network-dev@chromium.org" +team_email: "net-dev@chromium.org" buganizer_public: { component_id: 1456853 }
diff --git a/third_party/blink/web_tests/http/tests/fetch/workers/DIR_METADATA b/third_party/blink/web_tests/http/tests/fetch/workers/DIR_METADATA index 31ad696..254c57c5 100644 --- a/third_party/blink/web_tests/http/tests/fetch/workers/DIR_METADATA +++ b/third_party/blink/web_tests/http/tests/fetch/workers/DIR_METADATA
@@ -1,7 +1,7 @@ monorail: { component: "Blink>Network>FetchAPI" } -team_email: "blink-network-dev@chromium.org" +team_email: "net-dev@chromium.org" buganizer_public: { component_id: 1456853 }
diff --git a/third_party/blink/web_tests/http/tests/security/mixedContent/websocket/DIR_METADATA b/third_party/blink/web_tests/http/tests/security/mixedContent/websocket/DIR_METADATA index a206cdd..5cda015 100644 --- a/third_party/blink/web_tests/http/tests/security/mixedContent/websocket/DIR_METADATA +++ b/third_party/blink/web_tests/http/tests/security/mixedContent/websocket/DIR_METADATA
@@ -1,2 +1,2 @@ -team_email: "blink-network-dev@chromium.org" +team_email: "net-dev@chromium.org"
diff --git a/third_party/blink/web_tests/http/tests/sendbeacon/DIR_METADATA b/third_party/blink/web_tests/http/tests/sendbeacon/DIR_METADATA index 8e8b91d..935f9e45 100644 --- a/third_party/blink/web_tests/http/tests/sendbeacon/DIR_METADATA +++ b/third_party/blink/web_tests/http/tests/sendbeacon/DIR_METADATA
@@ -1,7 +1,7 @@ monorail: { component: "Blink>Network" } -team_email: "blink-network-dev@chromium.org" +team_email: "net-dev@chromium.org" buganizer_public: { component_id: 1456852 }
diff --git a/third_party/blink/web_tests/http/tests/streams/DIR_METADATA b/third_party/blink/web_tests/http/tests/streams/DIR_METADATA index 00d9be5..c57527b 100644 --- a/third_party/blink/web_tests/http/tests/streams/DIR_METADATA +++ b/third_party/blink/web_tests/http/tests/streams/DIR_METADATA
@@ -1,7 +1,7 @@ monorail: { component: "Blink>Network>StreamsAPI" } -team_email: "blink-network-dev@chromium.org" +team_email: "net-dev@chromium.org" buganizer_public: { component_id: 1456125 }
diff --git a/third_party/blink/web_tests/http/tests/websocket/DIR_METADATA b/third_party/blink/web_tests/http/tests/websocket/DIR_METADATA index 8f620091..1138724 100644 --- a/third_party/blink/web_tests/http/tests/websocket/DIR_METADATA +++ b/third_party/blink/web_tests/http/tests/websocket/DIR_METADATA
@@ -1,7 +1,7 @@ monorail: { component: "Blink>Network>WebSockets" } -team_email: "blink-network-dev@chromium.org" +team_email: "net-dev@chromium.org" buganizer_public: { component_id: 1456696 }
diff --git a/third_party/blink/web_tests/http/tests/xmlhttprequest/DIR_METADATA b/third_party/blink/web_tests/http/tests/xmlhttprequest/DIR_METADATA index 9c5bfd9..3ba80c3 100644 --- a/third_party/blink/web_tests/http/tests/xmlhttprequest/DIR_METADATA +++ b/third_party/blink/web_tests/http/tests/xmlhttprequest/DIR_METADATA
@@ -1,7 +1,7 @@ monorail: { component: "Blink>Network>XHR" } -team_email: "blink-network-dev@chromium.org" +team_email: "net-dev@chromium.org" buganizer_public: { component_id: 1456827 }
diff --git a/third_party/blink/web_tests/webexposed/element-instance-property-listing-expected.txt b/third_party/blink/web_tests/webexposed/element-instance-property-listing-expected.txt index 9390192a..b8411024 100644 --- a/third_party/blink/web_tests/webexposed/element-instance-property-listing-expected.txt +++ b/third_party/blink/web_tests/webexposed/element-instance-property-listing-expected.txt
@@ -115,6 +115,7 @@ property contains property contentEditable property currentCSSZoom + property currentPatch property dataset property dir property dispatchEvent @@ -1405,6 +1406,7 @@ property containerTimingIgnore property contains property currentCSSZoom + property currentPatch property dataset property dispatchEvent property elementTiming
diff --git a/third_party/blink/web_tests/webexposed/global-interface-listing-expected.txt b/third_party/blink/web_tests/webexposed/global-interface-listing-expected.txt index a1c6117..22fa8192 100644 --- a/third_party/blink/web_tests/webexposed/global-interface-listing-expected.txt +++ b/third_party/blink/web_tests/webexposed/global-interface-listing-expected.txt
@@ -2488,6 +2488,7 @@ getter containerTiming getter containerTimingIgnore getter currentCSSZoom + getter currentPatch getter elementTiming getter firstElementChild getter headingOffset @@ -7190,6 +7191,11 @@ getter name getter password method constructor +interface PatchStatus + attribute @@toStringTag + getter finished + getter source + method constructor interface Path2D attribute @@toStringTag method addPath
diff --git a/third_party/blink/web_tests/webexposed/global-interface-listing-platform-specific-expected.txt b/third_party/blink/web_tests/webexposed/global-interface-listing-platform-specific-expected.txt index 9fb0948..bab9103 100644 --- a/third_party/blink/web_tests/webexposed/global-interface-listing-platform-specific-expected.txt +++ b/third_party/blink/web_tests/webexposed/global-interface-listing-platform-specific-expected.txt
@@ -92,6 +92,12 @@ attribute @@toStringTag method constructor interface Clipboard : EventTarget + getter onclipboardchange + setter onclipboardchange +interface ClipboardChangeEvent : Event + attribute @@toStringTag + getter types + method constructor interface Navigator getter bluetooth interface Notification : EventTarget
diff --git a/third_party/dawn b/third_party/dawn index 81512dc..dc71268 160000 --- a/third_party/dawn +++ b/third_party/dawn
@@ -1 +1 @@ -Subproject commit 81512dc57ab642d349ba39059eeb9e73a3589d54 +Subproject commit dc7126868fde79f680a51cfbc3e6b39b91f7b099
diff --git a/third_party/devtools-frontend/src b/third_party/devtools-frontend/src index fc9eb7d..1e2143a 160000 --- a/third_party/devtools-frontend/src +++ b/third_party/devtools-frontend/src
@@ -1 +1 @@ -Subproject commit fc9eb7dabd0b4e75beb43c381965341e4436e566 +Subproject commit 1e2143ab16eda747d16729ca9c4c11f4d45eaca0
diff --git a/third_party/llvm-libc/src b/third_party/llvm-libc/src index a1fa332..d2e9127 160000 --- a/third_party/llvm-libc/src +++ b/third_party/llvm-libc/src
@@ -1 +1 @@ -Subproject commit a1fa332d780423741206ff08eff910982298f316 +Subproject commit d2e912712fc74b4be504f92982d416700bae3a17
diff --git a/third_party/pywebsocket3/DIR_METADATA b/third_party/pywebsocket3/DIR_METADATA index 8f620091..1138724 100644 --- a/third_party/pywebsocket3/DIR_METADATA +++ b/third_party/pywebsocket3/DIR_METADATA
@@ -1,7 +1,7 @@ monorail: { component: "Blink>Network>WebSockets" } -team_email: "blink-network-dev@chromium.org" +team_email: "net-dev@chromium.org" buganizer_public: { component_id: 1456696 }
diff --git a/third_party/skia b/third_party/skia index 1b4c975..97f7c83 160000 --- a/third_party/skia +++ b/third_party/skia
@@ -1 +1 @@ -Subproject commit 1b4c975e89ade7fa5a50fda12f454e1a5fa35b63 +Subproject commit 97f7c83c88e3ed5656d2602632a93ab0c3729f44
diff --git a/third_party/webrtc b/third_party/webrtc index da3b324..45835ed 160000 --- a/third_party/webrtc +++ b/third_party/webrtc
@@ -1 +1 @@ -Subproject commit da3b3240cbcd8765a34cf92d2f6ec53758a11ca8 +Subproject commit 45835ed4d899782383eac019514f9101d0234d20
diff --git a/tools/metrics/actions/pretty_print.py b/tools/metrics/actions/pretty_print.py index 1a1a61c..b24fb49 100755 --- a/tools/metrics/actions/pretty_print.py +++ b/tools/metrics/actions/pretty_print.py
@@ -3,7 +3,7 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -import logging +import argparse import os import sys @@ -11,10 +11,33 @@ sys.path.append(os.path.join(os.path.dirname(__file__), '..', 'common')) import presubmit_util -def main(argv): - presubmit_util.DoPresubmitMain(argv, 'actions.xml', 'actions.old.xml', + +def main(): + """Pretty-prints the User Actions in actions.xml file. + + Args: + --non-interactive: (Optional) Does not print log info messages and does not + prompt user to accept the diff. + --presubmit: (Optional) Simply prints a message if the input is not + formatted correctly instead of modifying the file. + --diff: (Optional) Prints diff to stdout rather than modifying the file. + --cleanup: (Optional) Removes any backup file created during the execution. + + Example usage: + pretty_print.py --diff --cleanup + """ + parser = argparse.ArgumentParser() + # The following optional flags are used by common/presubmit_util.py + parser.add_argument('--non-interactive', action="store_true") + parser.add_argument('--presubmit', action="store_true") + parser.add_argument('--diff', action="store_true") + parser.add_argument('--cleanup', + action="store_true", + help="Remove the backup file after a successful run.") + + presubmit_util.DoPresubmitMain(sys.argv, 'actions.xml', 'actions.old.xml', extract_actions.UpdateXml) -if '__main__' == __name__: - sys.exit(main(sys.argv)) +if __name__ == '__main__': + sys.exit(main())
diff --git a/tools/metrics/dwa/pretty_print.py b/tools/metrics/dwa/pretty_print.py index de85c6d..96f9a5b5 100755 --- a/tools/metrics/dwa/pretty_print.py +++ b/tools/metrics/dwa/pretty_print.py
@@ -5,6 +5,7 @@ import os import sys +import argparse import dwa_model @@ -12,10 +13,32 @@ import presubmit_util -def main(argv): - presubmit_util.DoPresubmitMain(argv, 'dwa.xml', 'dwa.old.xml', +def main(): + """Pretty-prints the DWA Chrome metrics in dwa.xml file. + + Args: + --non-interactive: (Optional) Does not print log info messages and does not + prompt user to accept the diff. + --presubmit: (Optional) Simply prints a message if the input is not + formatted correctly instead of modifying the file. + --diff: (Optional) Prints diff to stdout rather than modifying the file. + --cleanup: (Optional) Removes any backup file created during the execution. + + Example usage: + pretty_print.py --diff --cleanup + """ + parser = argparse.ArgumentParser() + # The following optional flags are used by common/presubmit_util.py + parser.add_argument('--non-interactive', action="store_true") + parser.add_argument('--presubmit', action="store_true") + parser.add_argument('--diff', action="store_true") + parser.add_argument('--cleanup', + action="store_true", + help="Remove the backup file after a successful run.") + + presubmit_util.DoPresubmitMain(sys.argv, 'dwa.xml', 'dwa.old.xml', dwa_model.PrettifyXML) -if '__main__' == __name__: - sys.exit(main(sys.argv)) +if __name__ == '__main__': + sys.exit(main())
diff --git a/tools/metrics/histograms/metadata/blink/histograms.xml b/tools/metrics/histograms/metadata/blink/histograms.xml index fce608d..cb78f7c 100644 --- a/tools/metrics/histograms/metadata/blink/histograms.xml +++ b/tools/metrics/histograms/metadata/blink/histograms.xml
@@ -883,7 +883,7 @@ expires_after="2026-01-04"> <owner>gjc@chromium.org</owner> <owner>loading-dev@chromium.org</owner> - <owner>blink-network-dev@chromium.org</owner> + <owner>net-dev@chromium.org</owner> <improvement direction="LOWER_IS_BETTER"/> <summary> Time spent for parsing the stylesheet. Recorded when the stylesheet finishes @@ -2463,7 +2463,7 @@ <histogram name="Blink.Fonts.BackgroundDecodeTime" units="microseconds" expires_after="2024-08-17"> <owner>horo@chromium.org</owner> - <owner>blink-network-dev@chromium.org</owner> + <owner>net-dev@chromium.org</owner> <summary> Time spent for decoding the fonts on the background thread. Recorded when a font resource creates its decoded data. This histogram is only logged in @@ -2474,7 +2474,7 @@ <histogram name="Blink.Fonts.DecodeTime" units="microseconds" expires_after="2025-12-28"> <owner>gjc@chromium.org</owner> - <owner>blink-network-dev@chromium.org</owner> + <owner>net-dev@chromium.org</owner> <summary> Time spent for decoding the fonts. Recorded when a font resource creates its decoded data. This histogram is only logged in platforms with
diff --git a/tools/metrics/histograms/metadata/tab/histograms.xml b/tools/metrics/histograms/metadata/tab/histograms.xml index 84e614e..b25ad1d 100644 --- a/tools/metrics/histograms/metadata/tab/histograms.xml +++ b/tools/metrics/histograms/metadata/tab/histograms.xml
@@ -2354,7 +2354,7 @@ <histogram name="Tabs.NewNavigationWithSameOriginTab" enum="Boolean" expires_after="2024-02-11"> <owner>gjc@google.com</owner> - <owner>blink-network-dev@chromium.org</owner> + <owner>net-dev@chromium.org</owner> <summary> Whether another tab under the same origin can be found when a tab has finished a navigation to a new security origin. This can happen when a new
diff --git a/tools/metrics/structured/pretty_print.py b/tools/metrics/structured/pretty_print.py index 9e997caa..3644dae 100755 --- a/tools/metrics/structured/pretty_print.py +++ b/tools/metrics/structured/pretty_print.py
@@ -3,6 +3,7 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. +import argparse import os import sys @@ -11,13 +12,37 @@ sys.path.append(os.path.join(os.path.dirname(__file__), '..', 'common')) import presubmit_util -def main(argv): + +def main(): + """Pretty-prints the structured metrics in structured.xml file. + + Args: + --non-interactive: (Optional) Does not print log info messages and does not + prompt user to accept the diff. + --presubmit: (Optional) Simply prints a message if the input is not + formatted correctly instead of modifying the file. + --diff: (Optional) Prints diff to stdout rather than modifying the file. + --cleanup: (Optional) Removes any backup file created during the execution. + + Example usage: + pretty_print.py --diff --cleanup + """ + parser = argparse.ArgumentParser() + # The following optional flags are used by common/presubmit_util.py + parser.add_argument('--non-interactive', action="store_true") + parser.add_argument('--presubmit', action="store_true") + parser.add_argument('--diff', action="store_true") + parser.add_argument('--cleanup', + action="store_true", + help="Remove the backup file after a successful run.") + dirname = os.path.dirname(os.path.realpath(__file__)) xml = dirname + '/sync/structured.xml' old_xml = dirname + '/sync/structured.old.xml' - presubmit_util.DoPresubmitMain(argv, xml, old_xml, + + presubmit_util.DoPresubmitMain(sys.argv, xml, old_xml, lambda x: repr(model.Model(x, 'chrome'))) -if '__main__' == __name__: - sys.exit(main(sys.argv)) +if __name__ == '__main__': + sys.exit(main())
diff --git a/tools/metrics/ukm/pretty_print.py b/tools/metrics/ukm/pretty_print.py index ee9c20d..5b7d93e 100755 --- a/tools/metrics/ukm/pretty_print.py +++ b/tools/metrics/ukm/pretty_print.py
@@ -5,17 +5,41 @@ import os import sys +import argparse import ukm_model + sys.path.append(os.path.join(os.path.dirname(__file__), '..', 'common')) import presubmit_util -def main(argv): - presubmit_util.DoPresubmitMain(argv, 'ukm.xml', 'ukm.old.xml', +def main(): + """Pretty-prints the Chrome UKM events in ukm.xml file. + + Args: + --non-interactive: (Optional) Does not print log info messages and does not + prompt user to accept the diff. + --presubmit: (Optional) Simply prints a message if the input is not + formatted correctly instead of modifying the file. + --diff: (Optional) Prints diff to stdout rather than modifying the file. + --cleanup: (Optional) Removes any backup file created during the execution. + + Example usage: + pretty_print.py --diff --cleanup + """ + parser = argparse.ArgumentParser() + # The following optional flags are used by common/presubmit_util.py + parser.add_argument('--non-interactive', action="store_true") + parser.add_argument('--presubmit', action="store_true") + parser.add_argument('--diff', action="store_true") + parser.add_argument('--cleanup', + action="store_true", + help="Remove the backup file after a successful run.") + + presubmit_util.DoPresubmitMain(sys.argv, 'ukm.xml', 'ukm.old.xml', ukm_model.PrettifyXmlAndTrimObsolete) -if '__main__' == __name__: - sys.exit(main(sys.argv)) +if __name__ == '__main__': + sys.exit(main())
diff --git a/ui/aura/BUILD.gn b/ui/aura/BUILD.gn index 8cb1fe1..fe6ca57 100644 --- a/ui/aura/BUILD.gn +++ b/ui/aura/BUILD.gn
@@ -335,6 +335,7 @@ "//ui/gl:test_support", "//ui/platform_window", "//ui/platform_window/stub", + "//ui/resources:ui_test_pak", "//ui/wm", ] @@ -349,5 +350,8 @@ ] } - data_deps = [ "//third_party/angle:includes" ] + data_deps = [ + "//third_party/angle:includes", + "//ui/resources:ui_test_pak_data", + ] }
diff --git a/ui/aura/test/run_all_unittests.cc b/ui/aura/test/run_all_unittests.cc index 2f6b8f4..40b7742 100644 --- a/ui/aura/test/run_all_unittests.cc +++ b/ui/aura/test/run_all_unittests.cc
@@ -3,12 +3,14 @@ // found in the LICENSE file. #include "base/functional/bind.h" +#include "base/path_service.h" #include "base/test/launcher/unit_test_launcher.h" #include "base/test/test_suite.h" #include "mojo/core/embedder/embedder.h" #include "ui/aura/env.h" #include "ui/aura/test/aura_test_suite.h" #include "ui/base/resource/resource_bundle.h" +#include "ui/base/ui_base_paths.h" #include "ui/gl/gl_surface.h" #include "ui/gl/test/gl_surface_test_support.h" @@ -38,9 +40,10 @@ gl::GLSurfaceTestSupport::InitializeOneOff(); env_ = aura::Env::CreateInstance(); - ui::ResourceBundle::InitSharedInstanceWithLocale( - "en-US", /*delegate=*/nullptr, - ui::ResourceBundle::DO_NOT_LOAD_COMMON_RESOURCES); + ui::RegisterPathProvider(); + base::FilePath ui_test_pak_path; + ASSERT_TRUE(base::PathService::Get(ui::UI_TEST_PAK, &ui_test_pak_path)); + ui::ResourceBundle::InitSharedInstanceWithPakPath(ui_test_pak_path); } void Shutdown() override {
diff --git a/ui/base/clipboard/clipboard_android.cc b/ui/base/clipboard/clipboard_android.cc index 6d56feb9..c8eb6ed 100644 --- a/ui/base/clipboard/clipboard_android.cc +++ b/ui/base/clipboard/clipboard_android.cc
@@ -485,7 +485,7 @@ // sequence number, last modified time and notify the ClipboardMonitor if // monitoring external clipboard changes. GetClipboardMap().OnPrimaryClipTimestampInvalidated(timestamp); - if (base::FeatureList::IsEnabled(features::kClipboardChangeEvent)) { + if (base::FeatureList::IsEnabled(features::kPlatformClipboardMonitor)) { ClipboardMonitor::GetInstance()->NotifyClipboardDataChanged(); } }
diff --git a/ui/base/clipboard/clipboard_mac.mm b/ui/base/clipboard/clipboard_mac.mm index 41f3c75..e2a9a63 100644 --- a/ui/base/clipboard/clipboard_mac.mm +++ b/ui/base/clipboard/clipboard_mac.mm
@@ -117,7 +117,7 @@ // ClipboardMac implementation. ClipboardMac::ClipboardMac() { DCHECK(CalledOnValidThread()); - if (base::FeatureList::IsEnabled(features::kClipboardChangeEvent)) { + if (base::FeatureList::IsEnabled(features::kPlatformClipboardMonitor)) { ClipboardMonitor::GetInstance()->SetNotifier(this); } }
diff --git a/ui/base/clipboard/clipboard_mac_unittest.mm b/ui/base/clipboard/clipboard_mac_unittest.mm index fb80f21..d3eabec 100644 --- a/ui/base/clipboard/clipboard_mac_unittest.mm +++ b/ui/base/clipboard/clipboard_mac_unittest.mm
@@ -128,6 +128,16 @@ /*privacy_types=*/0); } + // Helper method to run assertion with given count value + void AssertClipboardObserverCount(TestClipboardObserver& observer, + int expected_count) { + ASSERT_TRUE(base::test::RunUntil([&observer, expected_count]() { + return observer.data_changed_count() == expected_count; + })) << "Timeout waiting for the clipboardMonitor to be notified. Expected " + "count: " + << expected_count << " but got " << observer.data_changed_count(); + } + private: base::test::TaskEnvironment task_environment_; }; @@ -234,7 +244,8 @@ WritePortableAndPlatformRepresentations( clipboard_mac, std::make_unique<DataTransferEndpoint>(google_url), pasteboard->get()); - ASSERT_EQ(observer.data_changed_count(), 1); + + AssertClipboardObserverCount(observer, 1); auto source = GetSource(clipboard_mac, pasteboard->get()); ASSERT_TRUE(source); @@ -245,7 +256,6 @@ WritePortableAndPlatformRepresentations( clipboard_mac, std::make_unique<DataTransferEndpoint>(chromium_url), pasteboard->get()); - ASSERT_EQ(observer.data_changed_count(), 2); source = GetSource(clipboard_mac, pasteboard->get()); ASSERT_TRUE(source); @@ -258,7 +268,8 @@ TEST_F(ClipboardMacTest, ClipboardChangeAPI_BrowserTriggered) { base::test::ScopedFeatureList scoped_feature_list_; - scoped_feature_list_.InitAndEnableFeature(features::kClipboardChangeEvent); + scoped_feature_list_.InitAndEnableFeature( + features::kPlatformClipboardMonitor); TestClipboardObserver observer; @@ -276,16 +287,15 @@ clipboard_mac, std::make_unique<DataTransferEndpoint>(google_url), nspasteboard); - ASSERT_TRUE(base::test::RunUntil([&observer]() { - return observer.data_changed_count() == 1; - })) << "Timeout waiting for the clipboardMonitor to be notified"; + AssertClipboardObserverCount(observer, 1); Clear(clipboard_mac, nspasteboard); } TEST_F(ClipboardMacTest, ClipboardChangeAPI_ExternallyTriggered) { base::test::ScopedFeatureList scoped_feature_list_; - scoped_feature_list_.InitAndEnableFeature(features::kClipboardChangeEvent); + scoped_feature_list_.InitAndEnableFeature( + features::kPlatformClipboardMonitor); TestClipboardObserver observer; @@ -299,9 +309,7 @@ [nspasteboard clearContents]; [nspasteboard setString:text forType:NSPasteboardTypeString]; - ASSERT_TRUE(base::test::RunUntil([&observer]() { - return observer.data_changed_count() == 1; - })) << "Timeout waiting for the clipboardMonitor to be notified"; + AssertClipboardObserverCount(observer, 1); Clear(clipboard_mac, nspasteboard); }
diff --git a/ui/base/clipboard/clipboard_win.cc b/ui/base/clipboard/clipboard_win.cc index 0f3ef217..98f4626 100644 --- a/ui/base/clipboard/clipboard_win.cc +++ b/ui/base/clipboard/clipboard_win.cc
@@ -237,7 +237,7 @@ if (base::CurrentUIThread::IsSet()) clipboard_owner_ = std::make_unique<base::win::MessageWindow>(); - if (base::FeatureList::IsEnabled(features::kClipboardChangeEvent)) { + if (base::FeatureList::IsEnabled(features::kPlatformClipboardMonitor)) { ui::ClipboardMonitor::GetInstance()->SetNotifier(this); } }
diff --git a/ui/base/clipboard/clipboard_win_unittest.cc b/ui/base/clipboard/clipboard_win_unittest.cc index e904cdd..93ff6b7 100644 --- a/ui/base/clipboard/clipboard_win_unittest.cc +++ b/ui/base/clipboard/clipboard_win_unittest.cc
@@ -33,6 +33,14 @@ int data_changed_count() const { return data_changed_count_; } + // Helper method to wait for data_changed_count to reach expected value + void WaitForDataChangedCount(int expected_count) { + ASSERT_TRUE(base::test::RunUntil([&]() { + return data_changed_count() == expected_count; + })) << "Timeout waiting for data_changed_count to reach " + << expected_count << ", actual count: " << data_changed_count(); + } + private: base::test::TaskEnvironment task_environment_{ base::test::TaskEnvironment::MainThreadType::UI}; @@ -46,29 +54,29 @@ ScopedClipboardWriter writer(ClipboardBuffer::kCopyPaste); writer.WriteText(u"text"); } - ASSERT_EQ(data_changed_count(), 1); + WaitForDataChangedCount(1); { ScopedClipboardWriter writer(ClipboardBuffer::kCopyPaste); writer.WriteHTML(u"html", "https://source.com/"); writer.WriteSvg(u"svg"); } - ASSERT_EQ(data_changed_count(), 2); + WaitForDataChangedCount(2); { ScopedClipboardWriter writer(ClipboardBuffer::kCopyPaste); writer.WriteRTF("rtf"); } - ASSERT_EQ(data_changed_count(), 3); + WaitForDataChangedCount(3); { ScopedClipboardWriter writer(ClipboardBuffer::kCopyPaste); writer.WriteImage(gfx::test::CreateBitmap(2, 3)); } - ASSERT_EQ(data_changed_count(), 4); + WaitForDataChangedCount(4); Clipboard::GetForCurrentThread()->Clear(ClipboardBuffer::kCopyPaste); - ASSERT_EQ(data_changed_count(), 5); + WaitForDataChangedCount(5); } TEST_F(ClipboardWinTest, NoDataChangedNotificationOnRead) { @@ -130,21 +138,18 @@ } // Test that the ClipboardMonitor sends a notification when data is written to -// the clipboard when ClipboardChangeEvent API is enabled. With the API enabled, -// the ClipboardMonitor gets notified of clipboard changes via the OS's +// the clipboard when platform clipboard monitoring is enabled. With the API +// enabled, the ClipboardMonitor gets notified of clipboard changes via the OS's // clipboard change notification mechanism. (On Windows, this is done via the // WM_CLIPBOARDUPDATE message.) TEST_F(ClipboardWinTest, DataChangedNotificationOnWriteWithClipboardChangeAPI) { - base::test::ScopedFeatureList scoped_feature_list_; - scoped_feature_list_.InitAndEnableFeature(features::kClipboardChangeEvent); { ScopedClipboardWriter writer(ClipboardBuffer::kCopyPaste); writer.WriteText(u"text"); } // Since the WM_CLIPBOARDUPDATE message is sent on the same thread, we // need to wait for the thread to process the message. - ASSERT_TRUE(base::test::RunUntil([&]() { return data_changed_count() == 1; })) - << "Timeout waiting for the clipboardMonitor to be notified"; + WaitForDataChangedCount(1); } } // namespace ui
diff --git a/ui/base/ime/win/tsf_text_store.cc b/ui/base/ime/win/tsf_text_store.cc index 73301406..6e944066 100644 --- a/ui/base/ime/win/tsf_text_store.cc +++ b/ui/base/ime/win/tsf_text_store.cc
@@ -27,6 +27,7 @@ #include "ui/base/ime/text_input_client.h" #include "ui/base/ime/text_input_flags.h" #include "ui/base/ime/win/tsf_input_scope.h" +#include "ui/base/ui_base_features.h" #include "ui/display/win/screen_win.h" #include "ui/events/event_dispatcher.h" #include "ui/gfx/geometry/rect.h" @@ -652,6 +653,9 @@ current_lock_type_ = (lock_flags & TS_LF_READWRITE); edit_flag_ = false; + if (features::IsHandleIMESpanChangesOnUpdateCompositionEnabled()) { + on_update_composition_called_ = false; + } // if there is not already some composition text, they we are about to start // composition. we need to set last_composition_start to the selection start. // Otherwise we are updating an existing composition, we should use the cached @@ -783,7 +787,9 @@ previous_composition_string_ != composition_string || !previous_composition_selection_range_.EqualsIgnoringDirection( selection_) || - previous_text_spans_ != text_spans_)) || + ((!features::IsHandleIMESpanChangesOnUpdateCompositionEnabled() || + on_update_composition_called_) && + previous_text_spans_ != text_spans_))) || ((wparam_keydown_fired_ != 0) && text_input_client_->HasCompositionText() && composition_string.empty())) { @@ -959,6 +965,9 @@ HRESULT TSFTextStore::OnUpdateComposition(ITfCompositionView* composition_view, ITfRange* range) { + if (features::IsHandleIMESpanChangesOnUpdateCompositionEnabled()) { + on_update_composition_called_ = true; + } return S_OK; }
diff --git a/ui/base/ime/win/tsf_text_store.h b/ui/base/ime/win/tsf_text_store.h index c92dc29..ce31bc6 100644 --- a/ui/base/ime/win/tsf_text_store.h +++ b/ui/base/ime/win/tsf_text_store.h
@@ -378,6 +378,10 @@ // called duriing current edit session. bool on_start_composition_called_ = false; + // `on_update_composition_called_` indicates that OnUpdateComposition() is + // called during ITextStoreACPSink::OnLockGranted(). + bool on_update_composition_called_ = false; + // |previous_composition_string_| indicicates composition string in last // edit session during same composition. |previous_composition_start_| // indicates composition start in last session during same composition. If
diff --git a/ui/base/ime/win/tsf_text_store_unittest.cc b/ui/base/ime/win/tsf_text_store_unittest.cc index 2c001016..774e6d5 100644 --- a/ui/base/ime/win/tsf_text_store_unittest.cc +++ b/ui/base/ime/win/tsf_text_store_unittest.cc
@@ -20,6 +20,7 @@ #include "base/memory/ref_counted.h" #include "base/memory/weak_ptr.h" +#include "base/notreached.h" #include "base/strings/utf_string_conversions.h" #include "base/win/scoped_com_initializer.h" #include "base/win/scoped_variant.h" @@ -240,6 +241,9 @@ ImeTextSpans* text_spans() { return &text_store_->text_spans_; } gfx::Range* composition_range() { return &text_store_->composition_range_; } bool* has_composition_range() { return &text_store_->has_composition_range_; } + bool* on_update_composition_called() { + return &text_store_->on_update_composition_called_; + } void SetInternalState(const std::u16string& new_string_buffer, LONG new_composition_start, @@ -3282,7 +3286,6 @@ EXPECT_EQ(S_OK, result); } -// regression tests for crbug.com/1006067. // We should call |TextInputClient::SetCompositionText()| if ImeTextSpans are // changed from previous edit session during same composition even though // composition string and composition selection remain unchanged. @@ -3315,6 +3318,7 @@ text_span_2.background_color = SK_ColorTRANSPARENT; text_spans()->push_back(text_span_2); *edit_flag() = true; + *on_update_composition_called() = true; *composition_start() = 0; composition_range()->set_start(0); composition_range()->set_end(2); @@ -3336,8 +3340,8 @@ SetHasCompositionText(true); } - // Only change underline thickness in IME spans. Other states (composition - // string, selection) remain unchanged. + // Only change underline thickness in IME spans and `OnUpdateComposition` is + // called. Other states (composition string, selection) remain unchanged. HRESULT LockGranted2(DWORD flags) { GetTextTest(0, -1, L"aa", 2); @@ -3358,6 +3362,7 @@ text_spans()->push_back(text_span_2); *edit_flag() = true; + *on_update_composition_called() = true; *composition_start() = 0; composition_range()->set_start(0); composition_range()->set_end(2); @@ -3399,8 +3404,48 @@ EXPECT_EQ(u"aa", text); SetHasCompositionText(false); } + + // Only change underline thickness in IME spans but `OnUpdateComposition` is + // not called. Other states (composition string, selection) remain unchanged. + HRESULT LockGranted4(DWORD flags) { + GetTextTest(0, -1, L"aa", 2); + + text_spans()->clear(); + ImeTextSpan text_span_1; + text_span_1.start_offset = 0; + text_span_1.end_offset = 1; + text_span_1.underline_color = SK_ColorBLACK; + text_span_1.thickness = ImeTextSpan::Thickness::kThin; + text_span_1.underline_style = ImeTextSpan::UnderlineStyle::kDot; + text_span_1.background_color = SK_ColorTRANSPARENT; + text_spans()->push_back(text_span_1); + ImeTextSpan text_span_2; + text_span_2.start_offset = 1; + text_span_2.end_offset = 2; + text_span_2.underline_color = SK_ColorBLACK; + text_span_2.thickness = ImeTextSpan::Thickness::kThick; + text_span_2.underline_style = ImeTextSpan::UnderlineStyle::kDot; + text_span_2.background_color = SK_ColorTRANSPARENT; + text_spans()->push_back(text_span_2); + + // When only `OnEndEdit` was called and `OnUpdateComposition` was not called + // during `ITextStoreACPSink::OnLockGranted`. + *edit_flag() = true; + *composition_start() = 0; + composition_range()->set_start(0); + composition_range()->set_end(2); + + text_store_->OnKeyTraceUp(65u, 1966081u); + text_store_->OnKeyTraceDown(65u, 1966081u); + return S_OK; + } + + void SetCompositionText4(const ui::CompositionText& composition) { + NOTREACHED() << "SetCompositionText4 should not be called."; + } }; +// regression test for crbug.com/1006067. TEST_F(TSFTextStoreTest, RegressionTest5) { EXPECT_CALL(text_input_client_, GetTextInputType()) .WillRepeatedly(Return(TEXT_INPUT_TYPE_TEXT)); @@ -3434,6 +3479,33 @@ EXPECT_EQ(S_OK, result); } +// regression test for crbug.com/426433182. +// Test that we do not call `TextInputClient::SetCompositionText` if only +// ImeTextSpans are changed from previous edit session during same composition +// but `TSFTextStore::OnUpdateComposition` was not called during +// `ITextStoreACPSink::OnLockGranted`. +TEST_F(TSFTextStoreTest, RegressionTest5WithoutOnUpdateComposition) { + EXPECT_CALL(text_input_client_, GetTextInputType()) + .WillRepeatedly(Return(TEXT_INPUT_TYPE_TEXT)); + RegressionTest5Callback callback(text_store_.get()); + + EXPECT_CALL(*sink_, OnLockGranted(_)) + .WillOnce(Invoke(&callback, &RegressionTest5Callback::LockGranted1)) + .WillOnce(Invoke(&callback, &RegressionTest5Callback::LockGranted4)); + + HRESULT result = kInvalidResult; + EXPECT_EQ(S_OK, text_store_->RequestLock(TS_LF_READWRITE, &result)); + EXPECT_EQ(S_OK, result); + + ON_CALL(text_input_client_, SetCompositionText(_)) + .WillByDefault( + Invoke(&callback, &RegressionTest5Callback::SetCompositionText4)); + + result = kInvalidResult; + EXPECT_EQ(S_OK, text_store_->RequestLock(TS_LF_READWRITE, &result)); + EXPECT_EQ(S_OK, result); +} + // regression tests for crbug.com/1013472. // We should reset |new_text_inserted_| at the end of // |TSFTextStore::RequestLock| since the text should have been already
diff --git a/ui/base/ui_base_features.cc b/ui/base/ui_base_features.cc index f9dd490..60abe61 100644 --- a/ui/base/ui_base_features.cc +++ b/ui/base/ui_base_features.cc
@@ -143,7 +143,7 @@ COMPONENT_EXPORT(UI_BASE_FEATURES) BASE_FEATURE(kOverrideDefaultOzonePlatformHintToAuto, "OverrideDefaultOzonePlatformHintToAuto", - base::FEATURE_ENABLED_BY_DEFAULT); + base::FEATURE_DISABLED_BY_DEFAULT); #endif // BUILDFLAG(IS_LINUX) // Uses a stylus-specific tap slop region parameter for gestures. Stylus taps @@ -461,10 +461,10 @@ "AsyncFullscreenWindowState", base::FEATURE_DISABLED_BY_DEFAULT); -// Feature flag for enabling the clipboardchange event. -BASE_FEATURE(kClipboardChangeEvent, - "ClipboardChangeEvent", - base::FEATURE_DISABLED_BY_DEFAULT); +// Feature flag for enabling platform clipboard monitoring. +BASE_FEATURE(kPlatformClipboardMonitor, + "PlatformClipboardMonitor", + base::FEATURE_ENABLED_BY_DEFAULT); // If enabled, all draw commands recorded on canvas are done in pixel aligned // measurements. This also enables scaling of all elements in views and layers @@ -482,4 +482,13 @@ return base::FeatureList::IsEnabled(features::kEnablePixelCanvasRecording); } +BASE_FEATURE(kHandleIMESpanChangesOnUpdateComposition, + "HandleIMESpanChangesOnUpdateComposition", + base::FEATURE_ENABLED_BY_DEFAULT); + +bool IsHandleIMESpanChangesOnUpdateCompositionEnabled() { + return base::FeatureList::IsEnabled( + features::kHandleIMESpanChangesOnUpdateComposition); +} + } // namespace features
diff --git a/ui/base/ui_base_features.h b/ui/base/ui_base_features.h index e4c74a5..8ee45f8e 100644 --- a/ui/base/ui_base_features.h +++ b/ui/base/ui_base_features.h
@@ -230,13 +230,19 @@ // Enable ClipboardChange event API // https://chromestatus.com/feature/5085102657503232 COMPONENT_EXPORT(UI_BASE_FEATURES) -BASE_DECLARE_FEATURE(kClipboardChangeEvent); +BASE_DECLARE_FEATURE(kPlatformClipboardMonitor); COMPONENT_EXPORT(UI_BASE_FEATURES) BASE_DECLARE_FEATURE(kEnablePixelCanvasRecording); bool COMPONENT_EXPORT(UI_BASE_FEATURES) IsPixelCanvasRecordingEnabled(); +COMPONENT_EXPORT(UI_BASE_FEATURES) +BASE_DECLARE_FEATURE(kHandleIMESpanChangesOnUpdateComposition); + +COMPONENT_EXPORT(UI_BASE_FEATURES) +bool IsHandleIMESpanChangesOnUpdateCompositionEnabled(); + } // namespace features #endif // UI_BASE_UI_BASE_FEATURES_H_